Talk:BuildingMPD
Back to page
Hi,
I'm running Ubuntu 8.10 and have noticed that after following this procedure, the manpage for mpd that's displayed is the one for the system-installed version of mpd, and not the local version that I installed by following this procedure. This I found to be true for mpc as well, after following a similar route to build and install it.
The problem is that man-db considers symlinked manpages to be effectively derivative versions of the "originals" (the files targeted by the manpage symlinks). Stow doesn't add the originals (eg /usr/local/stow/mpd/share/man/) to the system-wide manpath. This could be done, for example, by editing /etc/manpath.config. Since it can't find the originals in the manpath, man-db prefers less-derivative versions of the manpage, like the ones for the system-wide installation of mpd.
Uninstalling the system-wide installation of mpd should fix this, but it introduces another problem. This will break the /etc/init.d script, at least on my distro, because it checks to see if the mpd daemon executable exists _before_ sourcing /etc/default/mpd, which sets the location of the daemon to the local installation. So /etc/init.d/mpd start bombs out because it is under the impression that mpd is no longer installed.
Workarounds include
- doing man -M /usr/local/share/man mp[cd] each time you want to read the manual
- adding /usr/local/stow/mp[dc]/share/man to the list of manpaths in /etc/manpath.conf
- replacing the symlinked manpages /usr/local/share/man/man1/mp[dc].1 with copies of the files they point to.. which kind of defeats the point of using stow
- ? patching man-db so that it provides an option to consider symlinks equivalent to the files they reference. This seems likely to be a decent option since the code is mostly there but there's no way to trigger the setting through command line / configuration file / environment variable options. From the looks of it you could just hack the declaration of ult_flags in src/man.c and it would work. There don't seem to be any changes in the man-db repo that affect this, so updating probably wouldn't help.
- ? updating to a newer version of stow that handles this in a graceful way?
- not using stow
In any case it seems like a good idea to let people know to make sure they're seeing the newer manpages. I jumped from mpc version 0.12.1 to 0.18 and was kind of disappointed that there were no new options.
Intui.ted 22:55, October 6, 2009 (UTC)
patching man-db
Edit
I ended up patching my version of man-db so that it will use the symlinked versions of stowed manpages as though they were regular files.
Instructions are here.
Intui.ted 00:11, October 7, 2009 (UTC)
Automated transfer of Problem Report #25538
Edit
The following message was left by Intui.ted via PR #25538 on 2009-09-21 03:28:36 UTC
...continued from my previous message... 3. Under Ubuntu 8.10, having previously had version 0.13.something installed, the lingering /etc/init.d/mpd script checks for the existence of the DAEMON (variable's contents) before sourcing /etc/default/mpd, so this doesn't work if the previous version of mpd has been uninstalled. I guess I shouldn't uninstall it, then.