FS#73728 - Installing mandoc uninstalls certain doc-only packages (dependency issue)

Attached to Project: Community Packages
Opened by Kelvin Klann (kmk3) - Thursday, 10 February 2022, 23:23 GMT
Last edited by Toolybird (Toolybird) - Monday, 06 February 2023, 06:03 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Andreas Radke (AndyRTR)
Jaroslav Lichtblau (Dragonlord)
Caleb Maclennan (alerque)
George Rawlinson (rawlinsong)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Both man-db and mandoc provide "man" and also conflict with each other.

And there are documentation-only packages which depend on "man-db" rather than
on just "man":

$ LC_ALL=C pacman -Sii man-db | grep '^Required By'
Required By : bat-extras man-pages-cs man-pages-da man-pages-de man-pages-es man-pages-fr man-pages-hu man-pages-it man-pages-mk man-pages-nl man-pages-pl man-pages-pt_br man-pages-ro man-pages-zh_cn man-pages-zh_tw man2html posix xorg-docs

This prevents installing both mandoc (instead of man-db) and these
documentation-only packages at the same time.

Note: "man-db" provides only man(1) and related tools; the "default" man pages
themselves are provided by "man-pages".

Suggested fix: Change all of the following packages to depend on "man" rather
than on "man-db":

$ LC_ALL=C pacman -Sii man-db | grep '^Required By' | cut -f 2 -d : |
sed -e 's/^ //' -e 's/ / /g' -e 's/ /\n/g'
bat-extras
man-pages-cs
man-pages-da
man-pages-de
man-pages-es
man-pages-fr
man-pages-hu
man-pages-it
man-pages-mk
man-pages-nl
man-pages-pl
man-pages-pt_br
man-pages-ro
man-pages-zh_cn
man-pages-zh_tw
man2html
posix
xorg-docs
This task depends upon

Closed by  Toolybird (Toolybird)
Monday, 06 February 2023, 06:03 GMT
Reason for closing:  Fixed
Additional comments about closing:  (mostly) see comments.
Comment by Daurnimator (daurnimator) - Friday, 11 February 2022, 10:33 GMT
The `posix` package wants to a `man` executable to exist. I believe it is correct.
Comment by Kelvin Klann (kmk3) - Saturday, 12 February 2022, 20:58 GMT
> The `posix` package wants to a `man` executable to exist. I believe it is
> correct.

Yes, that was an error on my end, sorry. This was fixed on commit f45603ad44
("upgpkg: posix 2017-2: permit mandoc as man-db alternative", 2021-03-24)[1].

I think "posix" was included in the output because "Required by" also includes
everything that depends on just "man" as well.

I now checked each package manually to make sure and the following packages
were fixed yesterday on commit c4d5698c9f ("upgpkg: man-pages-l10n 4.12.1-2 -
 FS#73728  fix", 2022-02-11)[2]:

* man-pages-cs
* man-pages-da
* man-pages-de
* man-pages-es
* man-pages-fr
* man-pages-hu
* man-pages-it
* man-pages-mk
* man-pages-nl
* man-pages-pl
* man-pages-pt_br
* man-pages-ro

But these do still depend on man-db:

* bat-extras
* man-pages-zh_cn
* man-pages-zh_tw
* man2html
* xorg-docs

Note: While the other packages are documentation-only, bat-extras and man2html
provide programs, so they may possibly call man(1) directly and thus
potentially depend on GNU man specifically. With this in mind, they are not
essential for closing this (though if someone can confirm that they work with
other man(1) implementations, it would be nice to change them as well).

[1] https://github.com/archlinux/svntogit-community/commit/f45603ad441e27b3bf387a8216bbe40adebdcd2f
[2] https://github.com/archlinux/svntogit-community/commit/c4d5698c9f031547039a10f62bcce7a6653a94c8
Comment by George Rawlinson (rawlinsong) - Sunday, 13 February 2022, 18:11 GMT
bat-extras does invoke man directly, I'm unsure what other implementations of man exist.

Having said that, I don't have an issue with depending on man instead of man-db. Unless of course, alternative implementations diverge from GNU man drastically!

Thank you for the report. :)
Comment by Kelvin Klann (kmk3) - Monday, 14 February 2022, 19:51 GMT
> bat-extras does invoke man directly, I'm unsure what other implementations of
> man exist.

I'm only aware of man-db and mandoc. The wiki only mentions them as well:

https://wiki.archlinux.org/title/Man_page

> man-db implements man on Arch Linux, and less is the default pager used with
> man. mandoc can also be used.

---

> Having said that, I don't have an issue with depending on man instead of
> man-db. Unless of course, alternative implementations diverge from GNU man
> drastically!

I think it would only potentially be a problem if it uses any tool
programatically (because of custom flags, etc). If it only calls man(1) like
it would call something like $EDITOR, then it seems safe to depend on just
"man".

> Thank you for the report. :)

No problem :)
Comment by Kelvin Klann (kmk3) - Thursday, 15 December 2022, 09:43 GMT
So more packages were fixed:

* community/bat-extras[1]
* extra/xorg-docs[2] [3]

The following packages remain:

* community/man-pages-zh (Maintainer: @felixonmars)
* extra/man2html (Maintainer: @AndyRTR)

Can someone ping them? Should I open more bug reports about this?

Note: I had tried sending an email to arch-general (including the relevant
maintainers in the recipients) and also tried emailing patches directly to the
maintainers in the following dates, but got no responses:

* 2022-03-08: Email to arch-general[4] (+@AndyRTR +@felixonmars +@foutrelis)
* 2022-04-27: Patch for extra/xorg-docs (to @AndyRTR)
* 2022-04-28: Patch for community/man-pages-zh (to @felixonmars)

[1]: https://github.com/archlinux/svntogit-community/commit/c79b07ccfa1389d58bb698fdc4bc69544b7405e2
[2]: https://bugs.archlinux.org/task/76783
[3]: https://github.com/archlinux/svntogit-packages/commit/318c6d1840b481f249b8bfaf3ef6d7422411c1a8
[4]: https://lists.archlinux.org/pipermail/arch-general/2022-March/thread.html
Comment by Andreas Radke (AndyRTR) - Thursday, 15 December 2022, 10:11 GMT
fixed man2html 3.0.1-9
Comment by Kelvin Klann (kmk3) - Saturday, 04 February 2023, 08:13 GMT
Created the following task for the remaining packages:

* https://bugs.archlinux.org/task/77379

Loading...