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
$ 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:
- use full pathnames,
- say what action exactly stow was trying to take
- mention BOTH the source and the target files involved, and
- tell the user what action they can now take.
For instance, ideally I would have seen an error message like the following:
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?
Let me know if there is any additional information I can provide.