Fwd: info dir conflict installing emacs from source

jeff stern <[email protected]> Sat, 26 Sep 2015 19:11:44 -0700
Newsgroups gmane.comp.gnu.stow.bugs
Message-ID <CALMHRHGd1vukw8fRc6LOBsEwmdactudsY3HmdWEcHnvTAwrfxw@mail.gmail.com>
--001a11409ede306da10520b11a4d
Content-Type: text/plain; charset=UTF-8

Sorry, there were several crucial pathname errors in last email message. I
have corrected them. Please delete previous message. Here is the corrected
message:

Hello,

Using stow when compiling and installing emacs from source today, following
the instructions at (*) and (+) was almost a no-brainer for me, except for
one thing: a conflict when trying to run stow.  It turns out stow had a
conflict with dir files (you probably know about this already..?)

   /usr/local/stow/emacs-24.5/share/info/dir  <--- /usr/local/share/info/dir

But stow could not make the above symlink from /usr/local/share/info/dir
because /usr/local/share/info/dir already existed (and I already had info
files in that dir).

Therefore, when I finished compiling emacs successfully and installing
under /usr/local/stow/emacs-24.5, and then ran stow, I got an error:

=========================================================
$ ./configure --with-xft --with-x-toolkit=lucid
$ make
$ sudo make install prefix=/usr/local/stow/emacs-24.5
$ cd /usr/local/stow
$ sudo stow --verbose=3 emacs-24.5
WARNING! stowing emacs-24.5 would cause conflicts:
  * existing target is neither a link nor a directory: share/info/dir
All operations aborted.
$ _
=========================================================

..and it took me most of the afternoon to figure out what it was (being a
first-time user of stow).

The conflict was not with "share/info/dir" nor with "
/usr/local/stow/emacs-24.5/share/info/dir". It was with a previously
existing file, "/usr/local/share/info/dir".  Again, as a first time user of
stow, I did not know this and could not tell easily from the error message
because of the incomplete path listed.

Suggestion #1: It would save me time if in future versions of stow, the
error message were more explicit in 4 ways:


   1. use full pathnames,
   2. say what action exactly stow was trying to take
   3. mention BOTH the source and the target files involved, and
   4. tell the user what action they can now take.


For instance, ideally I would have seen an error message like the following:

Conflict: I cannot create a symlink from /usr/local/share/info/dir to
/usr/local/stow/emacs-24.5/share/info/dir because there is a file already
existing at /usr/local/share/info/dir. Please rectify this conflict by hand
(perhaps merging the two files into /usr/local/stow/emacs-24.5/share/info/dir
, then removing or moving
/usr/local/share/info/dir out of the way), and run stow again.


Suggestion #2: Is it possible to merge 2 dir files into 1?

It seems to me that my previously-existing dir file (
/usr/local/share/info/dir) and the new one coming in from the emacs
compilation (/usr/local/stow/emacs-24.5/share/info/dir) really needed to be
merged into a single file. So..

2a) Can install-info merge two "dir" files? (I don't know enough about
install-info).

2b) If so, would it be possible to enhance stow so that if it sees a dir
file conflict it calls install-info intelligently the background to merge
them?

Thanks,
Let me know if there is any additional information I can provide.

Jeff Stern [email protected]

(*) http://www.emacswiki.org/emacs/BuildingEmacs#toc2
(+) https://gist.github.com/favadi/18438172892bc4178b27

additional system info, per instructions
<http://www.gnu.org/software/stow/manual/stow.html#Reporting-Bugs> ..

   - stow (GNU Stow) version 2.2.0
   - perl v5.18.2) built for x86_64-linux-gnu-thread-multi
   - Linux tonka 3.13.0-63-lowlatency #103-Ubuntu SMP PREEMPT Fri Aug 14
   22:23:32 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
   - Ubuntu 14.04 LTS (distro: "KXStudio")

--001a11409ede306da10520b11a4d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Sorry, there were several crucial pathname errors in last =
email message. I have corrected them. Please delete previous message. Here =
is the corrected message:<div><br><div class=3D"gmail_quote"><div dir=3D"lt=
r">Hello,<div><br><div>Using <font face=3D"monospace, monospace">stow</font=
> when compiling and installing emacs from source today, following the inst=
ructions at (*) and (+) was almost a no-brainer for me, except for one thin=
g: a conflict when trying to run <font face=3D"monospace, monospace">stow</=
font>.=C2=A0 It turns out <font face=3D"monospace, monospace">stow</font> h=
ad a conflict with <font face=3D"monospace, monospace">dir</font> files (yo=
u probably know about this already..?)</div><div><br></div><div><span style=
=3D"font-family:monospace,monospace">=C2=A0 =C2=A0/usr/local/stow/emacs-24.=
5/share/info/dir =C2=A0&lt;--- /usr/local/share/info/dir</span><br></div><d=
iv><br></div><div>But <font face=3D"monospace, monospace">stow</font> could=
 not make the above symlink from <font face=3D"monospace, monospace">/usr/l=
ocal/share/info/dir</font> because <font face=3D"monospace, monospace">/usr=
/local/share/info/dir</font> already existed (and I already had info files =
in that dir).</div><div><br></div><div>Therefore, when I finished compiling=
 emacs successfully and installing under <font face=3D"monospace, monospace=
">/usr/local/stow/emacs-24.5</font>, and then ran <font face=3D"monospace, =
monospace">stow</font>, I got an error:</div><div><br></div><div>=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D<br></div><div><div><font face=3D"monospace, monospace">$ ./con=
figure --with-xft=C2=A0</font><span style=3D"font-family:monospace,monospac=
e">--with-x-toolkit=3Dlucid</span></div><div><font face=3D"monospace, monos=
pace">$ make</font></div><div><font face=3D"monospace, monospace">$ sudo ma=
ke install prefix=3D/usr/local/stow/emacs-24.5<br></font></div><div><font f=
ace=3D"monospace, monospace">$ cd /usr/local/stow</font></div><div><font fa=
ce=3D"monospace, monospace">$ sudo stow --verbose=3D3 emacs-24.5</font></di=
v><div><font face=3D"monospace, monospace">WARNING! stowing emacs-24.5 woul=
d cause conflicts:</font></div><div><font face=3D"monospace, monospace">=C2=
=A0 * existing target is neither a link nor a directory: share/info/dir</fo=
nt></div><div><font face=3D"monospace, monospace">All operations aborted.</=
font></div><div><font face=3D"monospace, monospace">$ _</font></div></div><=
div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D<br></div><div><br></div><div>..and it took me m=
ost of the afternoon to figure out what it was (being a first-time user of =
<font face=3D"monospace, monospace">stow</font>).</div><div><br></div><div>=
The conflict was not with &quot;<font face=3D"monospace, monospace">share/i=
nfo/dir</font>&quot; nor with &quot;<font face=3D"monospace, monospace">/us=
r/local/stow/emacs-24.5/share/info/dir</font>&quot;. It was with a previous=
ly existing file, &quot;<font face=3D"monospace, monospace">/usr/local/shar=
e/info/dir</font>&quot;.=C2=A0 Again, as a first time user of <font face=3D=
"monospace, monospace">stow</font>, I did not know this and could not tell =
easily from the error message because of the incomplete path listed.</div><=
div><br></div><div>Suggestion #1: It would save me time if in future versio=
ns of <font face=3D"monospace, monospace">stow</font>, the error message we=
re more explicit in 4 ways:</div><div><br></div><div><ol><li>use full pathn=
ames,<br></li><li>say what action exactly stow was trying to take<br></li><=
li>mention BOTH the source and the target files involved, and<br></li><li>t=
ell the user what action they can now take.<br></li></ol></div><div><br></d=
iv><div>For instance, ideally I would have seen an error message like the f=
ollowing:</div><div><br></div></div><blockquote style=3D"margin:0px 0px 0px=
 40px;border:none;padding:0px"><div><font face=3D"monospace, monospace">Con=
flict: I cannot create a symlink from /usr/local/share/info/dir to /usr/loc=
al/stow/emacs-24.5/share/info/dir because there is a file already existing =
at /usr/local/share/info/dir. Please rectify this conflict by hand (perhaps=
 merging the two files into=C2=A0</font><span style=3D"font-family:monospac=
e,monospace">/usr/local/stow/emacs-24.5/share/info/dir , then removing or m=
oving=C2=A0</span></div><span style=3D"font-family:monospace,monospace">/us=
r/local/share/info/dir out of the way)</span><span style=3D"font-family:mon=
ospace,monospace">, and run stow again.</span></blockquote><div><div><br></=
div><div>Suggestion #2: Is it possible to merge 2=C2=A0<font face=3D"monosp=
ace, monospace">dir</font> files into 1?</div><div><br></div><div>It seems =
to me that my previously-existing <font face=3D"monospace, monospace">dir</=
font> file (<font face=3D"monospace, monospace">/usr/local/share/info/dir</=
font>) and the new one coming in from the emacs compilation (<font face=3D"=
monospace, monospace">/usr/local/stow/emacs-24.5/share/info/dir</font>) rea=
lly needed to be merged into a single file. So..</div><div><br></div><div>2=
a) Can <font face=3D"monospace, monospace">install-info</font> merge two &q=
uot;<font face=3D"monospace, monospace">dir</font>&quot; files? (I don&#39;=
t know enough about <font face=3D"monospace, monospace">install-info</font>=
).</div><div><br></div><div>2b) If so, would it be possible to enhance <fon=
t face=3D"monospace, monospace">stow</font> so that if it sees a <font face=
=3D"monospace, monospace">dir</font> file conflict it calls <font face=3D"m=
onospace, monospace">install-info</font>=C2=A0intelligently the background =
to merge them?</div><div><br></div><div>Thanks,</div><div>Let me know if th=
ere is any additional information I can provide.</div><div><br></div><div>J=
eff Stern <a href=3D"mailto:[email protected]" target=3D"_blank">jas.6180=
[email protected]</a></div><div><br></div><div>(*)=C2=A0<a href=3D"http://www.ema=
cswiki.org/emacs/BuildingEmacs#toc2" target=3D"_blank">http://www.emacswiki=
.org/emacs/BuildingEmacs#toc2</a></div><div>(+)=C2=A0<a href=3D"https://gis=
t.github.com/favadi/18438172892bc4178b27" target=3D"_blank">https://gist.gi=
thub.com/favadi/18438172892bc4178b27</a></div></div><div><br></div><div>add=
itional system info, per=C2=A0<a href=3D"http://www.gnu.org/software/stow/m=
anual/stow.html#Reporting-Bugs" target=3D"_blank">instructions</a>=C2=A0..<=
/div><div><ul><li>stow (GNU Stow) version 2.2.0<br></li><li>perl v5.18.2) b=
uilt for x86_64-linux-gnu-thread-multi<br></li><li>Linux tonka 3.13.0-63-lo=
wlatency #103-Ubuntu SMP PREEMPT Fri Aug 14 22:23:32 UTC 2015 x86_64 x86_64=
 x86_64 GNU/Linux</li><li>Ubuntu 14.04 LTS (distro: &quot;KXStudio&quot;)</=
li></ul></div></div>
</div><br></div></div>

--001a11409ede306da10520b11a4d--