Bug 26639 - Man pages from extra sources don't get installed
Summary: Man pages from extra sources don't get installed
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: David GEIGER
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-18 11:09 CEST by Mario Blättermann
Modified: 2024-04-01 00:28 CEST (History)
5 users (show)

See Also:
Source RPM: man-pages-5.06-1.mga8.src.rpm
CVE:
Status comment:


Attachments

Description Mario Blättermann 2020-05-18 11:09:10 CEST
Description of problem:


The spec file of man-pages shows me that some man pages actually should be taken from additional sources:

Source2: rpcgen.1
Source3: ld.so.8
Source4: ldd.1
Source5: ldconfig.8
Source6: man-pages-extralocale.tar.bz2
Source8: man9-19971126.tar.bz2
Source9: man2.tar.bz2
Source10: strptime.3
Source11: ifcfg.5

Then they should be installed:

cp -a %SOURCE2 man1
cp -a %SOURCE3 man8
cp -a %SOURCE4 man1
cp -a %SOURCE5 man8
cp -a %SOURCE10 man3
cp -a %SOURCE11 man5

But no one of these files is part of the resulting noarch package. Obviously this happens because the extra files get copied first and then removed again by the following commands:

# those conflict with ld.so package
# this one conflicts with bind-utils
rm -rf man5/resolver.5

# this conflicts with ldconfig -- Geoff
rm -f man8/ldconfig.8

# those conflict with glibc{,-devel}
rm -f man1/{getent,iconv,ldd,locale,localedef,sprof}.1
rm -f man8/{ld.so,rpcinfo}.8
rm -f man1/rpcgen.1

# remove man pages deprecated by libxcrypt (#1610307)
rm -f man3/crypt{,_r}.3

# this conflict with glibc
rm -f man1/rpcgen.1.bz2 

Unfortunately, I can't reproduce the build on my own system. I don't use Mageia. I stumbled upon the missing files while translating the man pages for the manpages-l10n project [1] which also supports Mageia Cauldron.

[1] https://salsa.debian.org/manpages-l10n-team/manpages-l10n
Comment 1 Nicolas Lécureuil 2020-05-18 12:41:16 CEST
this is strange because i don't see any conflict for rpcgen

$ urpmf rpcgen.1
man-pages-ja:/usr/share/man/ja/man1/rpcgen.1.xz


nor ld.so.8
man-pages-hu:/usr/share/man/hu/man8/ld.so.8.xz
man-pages-es:/usr/share/man/es/man8/ld.so.8.xz
man-pages-ru:/usr/share/man/ru/man8/ld.so.8.xz
man-pages-ja:/usr/share/man/ja/man8/ld.so.8.xz


i think we need to take a more deeper look.

CC: (none) => mageia

Comment 2 Mario Blättermann 2020-05-18 12:56:02 CEST
Just seen, there are actually no man pages in any glibc* package, so the following doesn't make sense:

# those conflict with glibc{,-devel}
rm -f man1/{getent,iconv,ldd,locale,localedef,sprof}.1
rm -f man8/{ld.so,rpcinfo}.8
rm -f man1/rpcgen.1

Maybe all of the possible file conflicts (which the spec file tries to fix) need to be reviewed.
Comment 4 Dave Hodgins 2020-05-18 18:37:55 CEST
On Mageia 7 ...
# urpmf man/|grep glib|sort -u
glib2.0-common:/usr/share/man/man1/gapplication.1.xz
glib2.0-common:/usr/share/man/man1/gdbus.1.xz
glib2.0-common:/usr/share/man/man1/gio.1.xz
glib2.0-common:/usr/share/man/man1/gio-querymodules.1.xz
glib2.0-common:/usr/share/man/man1/glib-compile-resources.1.xz
glib2.0-common:/usr/share/man/man1/glib-compile-schemas.1.xz
glib2.0-common:/usr/share/man/man1/gresource.1.xz
glib2.0-common:/usr/share/man/man1/gsettings.1.xz
glib-gettextize:/usr/share/man/man1/glib-gettextize.1.xz
json-glib:/usr/share/man/man1/json-glib-format.1.xz
json-glib:/usr/share/man/man1/json-glib-validate.1.xz
lib64dbus-glib-devel:/usr/share/man/man1/dbus-binding-tool.1.xz
lib64glib2.0-devel:/usr/share/man/man1/gdbus-codegen.1.xz
lib64glib2.0-devel:/usr/share/man/man1/glib-genmarshal.1.xz
lib64glib2.0-devel:/usr/share/man/man1/glib-mkenums.1.xz
lib64glib2.0-devel:/usr/share/man/man1/gobject-query.1.xz
lib64glib2.0-devel:/usr/share/man/man1/gtester.1.xz
lib64glib2.0-devel:/usr/share/man/man1/gtester-report.1.xz
lib64hwloc-devel:/usr/share/man/man3/hwlocality_glibc_sched.3.xz
lib64hwloc-devel:/usr/share/man/man3/hwloc_cpuset_from_glibc_sched_affinity.3.xz
lib64hwloc-devel:/usr/share/man/man3/hwloc_cpuset_to_glibc_sched_affinity.3.xz
libdbus-glib-devel:/usr/share/man/man1/dbus-binding-tool.1.xz
libglib2.0-devel:/usr/share/man/man1/gdbus-codegen.1.xz
libglib2.0-devel:/usr/share/man/man1/glib-genmarshal.1.xz
libglib2.0-devel:/usr/share/man/man1/glib-mkenums.1.xz
libglib2.0-devel:/usr/share/man/man1/gobject-query.1.xz
libglib2.0-devel:/usr/share/man/man1/gtester.1.xz
libglib2.0-devel:/usr/share/man/man1/gtester-report.1.xz
libhwloc-devel:/usr/share/man/man3/hwlocality_glibc_sched.3.xz
libhwloc-devel:/usr/share/man/man3/hwloc_cpuset_from_glibc_sched_affinity.3.xz
libhwloc-devel:/usr/share/man/man3/hwloc_cpuset_to_glibc_sched_affinity.3.xz
man-pages-ja:/usr/share/man/ja/man7/glibc.7.xz
man-pages-ru:/usr/share/man/ru/man7/glibc.7.xz
man-pages:/usr/share/man/man7/glibc.7.xz

So man pages for glibc depends on the language, but there are other glib
packages with man pages too.

CC: (none) => davidwhodgins

Comment 5 Lewis Smith 2020-05-18 21:54:16 CEST
Thank you for jumping on this (which I do not understand), Nicolas. You will excuse me for assigning it to you.
And thanks for your post, Dave.

Assignee: bugsquad => mageia

Comment 6 r howard 2020-05-19 01:38:34 CEST
I checked some of the man pages that the original poster mentioned and the English language versions are missing. (Note that I have more to this comment after the list). The following is the results for rpcgen, ld.so and ldd: 


-bash-4.4$ urpmf man/|grep rpcgen|sort -u
man-pages-ja:/usr/share/man/ja/man1/rpcgen.1.xz
-bash-4.4$ 
-bash-4.4$ urpmf man/|grep ld.so|sort -u
man-pages-es:/usr/share/man/es/man8/ld.so.8.xz
man-pages-fr:/usr/share/man/fr/man8/ld.so.8.xz
man-pages-hu:/usr/share/man/hu/man8/ld.so.8.xz
man-pages-ja:/usr/share/man/ja/man8/ld.so.8.xz
man-pages-pl:/usr/share/man/pl/man8/ld.so.8.xz
man-pages-ru:/usr/share/man/ru/man8/ld.so.8.xz
systemd:/usr/share/man/man8/systemd-journald.socket.8.xz
-bash-4.4$ 
-bash-4.4$ 
-bash-4.4$ urpmf man/|grep ldd|sort -u
dcfldd:/usr/share/man/man1/dcfldd.1.xz
debhelper:/usr/share/man/de/man1/dh_builddeb.de.1.xz
debhelper:/usr/share/man/es/man1/dh_builddeb.es.1.xz
debhelper:/usr/share/man/fr/man1/dh_builddeb.fr.1.xz
debhelper:/usr/share/man/ja/man1/dh_builddeb.ja.1.xz
debhelper:/usr/share/man/man1/dh_builddeb.1.xz
debhelper:/usr/share/man/pt/man1/dh_builddeb.pt.1.xz
dnf-plugins-core:/usr/share/man/man8/dnf.plugin.builddep.8.xz
dnf-utils:/usr/share/man/man1/yum-builddep.1.xz
dpkg:/usr/share/man/de/man1/dpkg-checkbuilddeps.1.xz
dpkg:/usr/share/man/fr/man1/dpkg-checkbuilddeps.1.xz
dpkg:/usr/share/man/man1/dpkg-checkbuilddeps.1.xz
dpkg:/usr/share/man/nl/man1/dpkg-checkbuilddeps.1.xz
man-pages-cs:/usr/share/man/cs/man1/ldd.1.xz
man-pages-de:/usr/share/man/de/man1/yum-builddep.1.xz
man-pages-es:/usr/share/man/es/man1/ldd.1.xz
man-pages-fr:/usr/share/man/fr/man1/dh_builddeb.1.xz
man-pages-fr:/usr/share/man/fr/man1/ldd.1.xz
man-pages-hu:/usr/share/man/hu/man1/ldd.1.xz
man-pages-it:/usr/share/man/it/man1/ldd.1.xz
man-pages-ja:/usr/share/man/ja/man1/ldd.1.xz
man-pages-ja:/usr/share/man/ja/man1/pldd.1.xz
man-pages-ko:/usr/share/man/ko/man1/ldd.1.xz
man-pages-pl:/usr/share/man/pl/man1/ldd.1.xz
man-pages-ru:/usr/share/man/ru/man1/ldd.1.xz
man-pages-ru:/usr/share/man/ru/man1/pldd.1.xz
man-pages:/usr/share/man/man1/pldd.1.xz
man-pages-zh:/usr/share/man/zh_CN/man1/ldd.1.xz
man-pages-zh:/usr/share/man/zh_TW/man1/ldd.1.xz
perl-MondoRescue:/usr/share/man/man1/mr-process-ldd.1.xz
ruby-olddoc:/usr/share/gems/gems/olddoc-1.6.0/man/olddoc.1
ruby-olddoc:/usr/share/gems/gems/olddoc-1.6.0/man/olddoc.5
yum-utils:/usr/share/man/man1/yum-builddep-deprecated.1.xz


The main source is supposed to be from the man7 repository.  If I look at the web instance of man7, http://man7.org/linux/man-pages/index.html I can find the entries for rpcgen, ld.so and ldd, etc., in English which are missing in Mageia.

The spec files specifies that the man7 repository which is hosted by kernel.org be used as the primary source. I suspect that the deletions are being made after the man7 pages have been copied. The deletions from the supplementary sources  should be made before the man7 pages are copied, as the man7 pages are supposed to be the most complete and up to date versions of the man pages data.

This brings me to another point the man7 pages periodically add additional man page projects to it. This needs to be kept track of to prevent conflicts with the supplementary source for man pages that Mageia uses.

I hope the above makes sense.

CC: (none) => rihoward1

Comment 7 Nicolas Lécureuil 2020-05-20 00:56:00 CEST
i think they can be removed from man pages are translations are now handled by man-pages-l10n.

some parts are not yet available for us, when the rpm get built we obtain errors like: 

./generate-manpage.sh mageia-cauldron man8/ld.so.8.po
The original manpage for 'man8/ld.so.8' could not be found in 'mageia-cauldron'.

Assignee: mageia => geiger.david68210

Comment 8 Nicolas Lécureuil 2020-05-20 01:06:49 CEST
sorry my previous comment is wrong as this is for translations only.
Comment 9 Nicolas Lécureuil 2020-05-20 01:23:36 CEST
for rpcgen other distributions does not seems to enable obsolete rpc and build rpcgen from https://github.com/thkukuk/rpcsvc-proto ( it provides the man page ).

@thomas, i don't know this ( i just look for the manpage issue ) but what about rpcsvc-proto in mageia ?

CC: (none) => tmb

Comment 10 Nicolas Lécureuil 2020-05-20 01:31:23 CEST
it does not seems that there is any man pages in glibc package anymore.
Comment 11 r howard 2020-05-20 05:19:51 CEST
Nicolas the reason there are no man pages in the glibc packages is that glibc has given that responsibility to the Linux man-pages project. (Otherwise known in its web incarnation as man7.org). See http://www.gnu.org/software/libc/documentation.html.  It seems some of the glibc API calls are documented in the man section3 but until you read the description of the call you will not know if it is one that originated in glibc. glibc is itself described in man section 7 in a page that is a redirect to libc.
Comment 12 w unruh 2024-03-31 20:12:20 CEST
This is still a problem in Mga 9. 4 years after this report!
Eg man ldconfig does not exist except in the Japanese man pages(??)

CC: (none) => unruh

Comment 13 Dave Hodgins 2024-03-31 20:40:56 CEST
If I understand the situation correctly, the problem is that those commands
are part of the glibc package, which comes from
https://www.gnu.org/software/libc/

The package only has the man page libc, which is duplicated as glibc.
$ ls -l /usr/share/man/man7/*libc*
-rw-r--r-- 1 root man   72 Feb 12  2023 /usr/share/man/man7/glibc.7.xz
-rw-r--r-- 1 root man 1792 Feb 12  2023 /usr/share/man/man7/libc.7.xz

The various man pages produced for the commands included in the glibc package
in other distributions are coming from other parties, so may or may not be kept
in sync with any changes in glibc.

While the Janpanese translator of the man pages chose to provide man pages
for the commands, they are not official pages from the gnu project.

Adding man pages for the commands should be requested upstream at gnu.org
and/or at kernel.org which produces the man-pages package.
Comment 14 w unruh 2024-03-31 22:24:35 CEST
I think a slightly old man page would be better than none at all. The glibc linux people have fallen down on the job.
Comment 15 Dave Hodgins 2024-03-31 23:22:40 CEST
Most of the commands support either the --help or -h options.
Comment 16 w unruh 2024-04-01 00:22:28 CEST
Well, the man page for glibc says
"... It is  also the C library whose  details  are
       documented  in  the relevant pages of the man-pages project (primarily in Section 3 of the manual) "

They are not AFAIK. And the -h often is so sparse as to be almost useless (as with the ldconfig --help). It is good as a reminder, but not as an explanation.
Comment 17 w unruh 2024-04-01 00:28:20 CEST
Also, looking at the "examples" in /etc/ld.so.conf.d/ one gets the totally unhelpful:
"# This file is knowingly empty since the libraries are in standard search
# path. Please do not remove this file.
"

No they are not sometimes, as you pointed out!

Note You need to log in before you can comment on or make changes to this bug.