dlang / tools

Ancillary tools for the D programming language compiler

Home Page:http://dlang.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rename dman in the Debian .deb package to prevent conflict with Debian package debian-goodies

dlang-bugzilla-migration opened this issue · comments

Transferred from: https://issues.dlang.org/show_bug.cgi?id=17569

User @quickfur reported (2017-Jun-28 17:49:19):

This was reported on the forum:

Installing dmd if debian-goodies is installed fails. Both try to write a file
named '/usr/bin/dman'

[...snip...]

$ sudo dpkg -i dmd_2.074.1-0_amd64.1.deb
(Reading database ... 224610 files and directories currently installed.)
Preparing to unpack dmd_2.074.1-0_amd64.1.deb ...
Unpacking dmd (2.074.1-0) ...
dpkg: error processing archive dmd_2.074.1-0_amd64.1.deb (--install):
 trying to overwrite '/usr/bin/dman', which is also in package debian-goodies 0.74
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)

$ sudo dpkg -i dmd_2.075.0~b1-0_amd64.deb
(Reading database ... 224610 files and directories currently installed.)
Preparing to unpack dmd_2.075.0~b1-0_amd64.deb ...
Unpacking dmd (2.075.0~b1-0) ...
dpkg: error processing archive dmd_2.075.0~b1-0_amd64.deb (--install):
 trying to overwrite '/usr/bin/dman', which is also in package debian-goodies 0.74
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)

The package debian-goodies also ships a binary named dman, with this description:

  dman               - Fetch manpages from online manpages.debian.org service

Since this is something shipped with Debian itself, I recommend either (1) renaming our dman utility to something less ambiguous, or (2) excluding it from the .deb package for dmd altogether.

And on that note, just in case, I highly recommend against putting a Conflicts: line in the debian/control file, because there is no good reason why the debian-goodies package should be excluded by the dmd package. If anything, we should be the ones to give up the dman utility (I have never found a need for it, and I question whether anyone actually uses it besides the D developers).

I'm marking this as a major bug, because the conflict means that any Debian user who wants to try out D for the first time may get immediately turned away by the installation failure due to some silly marginal utility being unfortunately named, just because he happens to have the debian-goodies package installed.

User @MartinNowak responded (2017-Aug-08 20:37:47):

Another reported conflict is deepin-manual http://forum.dlang.org/post/zwusavzzulksmekovwos@forum.dlang.org.

User @WalterBright responded (2017-Aug-10 20:19:48):

Just rename it to dmanual

Debian doesn't impose any rules on externally created packages - there are best practices that make sense to be followed by external packagers as well though, and of course there's some information for upstream projects in general.

That said, if the package would go into Debian, the binary would have to be renamed in order for the package to be accepted into the distribution. We have a process for resolving name conflicts, but the result of that is often that none of the binaries keeps a generic name and both are renamed, or in case of a name transition between two unrelated packages, there has to be a Debian release with no package claiming the binary name before a new package can take it. That may result in a 6-year delay at worst before a name change is final (that's one of the reasons why the APT CLI tool was named "apt-get" for so long and "apt" only appeared at a late time).
IMHO challenging an existing name is really not worth the trouble, and dmanual would be just as descriptive - and that name isn't taken yet. That name could be kept when the package ends up in Debian, and you have the additional benefit that the external dmd package is installable on more Debian systems since the name clash is avoided.

(Btw, the only reason we don't have dmd or more D tools in Debian is lack of maintainers and helpers in the D team ;-) - Any help is appreciated, as I don't really have the time to push D further in Debian. I can help non-DDs maintain their packages within Debian though).