Discussion:
Inclusion of all manual pages in all architecture releases
Fernando Apesteguía
2021-05-26 15:04:08 UTC
Permalink
I don't know what list this should be sent to, apologies if the
audience is too wide.

For some time now, we have not included all manual pages in every
FreeBSD packaged release. For instance, i386 man pages are not
included in the FreeBSD amd64 distribution.

This causes a number of problems:

* The https://www.freebsd.org/cgi/man.cgi is incomplete. As an
example, it does not show results for pae(4). The reason for this is
that the cgi interface runs on FreeBSD amd64.

* In FreeBSD amd64 some manual pages have broken X-refs. See hptrr(4)
for an example.

* Also, we have broken links in our Release Notes. This is a
consequence of the first point. See
https://www.freebsd.org/releases/13.0R/hardware/#proc-i386.

Is there a specific reason for this?

Cheers.
Ian Lepore
2021-05-26 15:22:57 UTC
Permalink
Post by Fernando Apesteguía
I don't know what list this should be sent to, apologies if the
audience is too wide.
For some time now, we have not included all manual pages in every
FreeBSD packaged release. For instance, i386 man pages are not
included in the FreeBSD amd64 distribution.
* The https://www.freebsd.org/cgi/man.cgi is incomplete. As an
example, it does not show results for pae(4). The reason for this is
that the cgi interface runs on FreeBSD amd64.
* In FreeBSD amd64 some manual pages have broken X-refs. See hptrr(4)
for an example.
* Also, we have broken links in our Release Notes. This is a
consequence of the first point. See
https://www.freebsd.org/releases/13.0R/hardware/#proc-i386.
Is there a specific reason for this?
Cheers.
I have tried multiple times to get the people who adminster
freebsd.org's man.cgi to include all arches. I added the ability to
generate and install all of them by setting MAN_ARCH=all (or to a list
of arches) on the build command line years ago. But I haven't had any
success in getting that used to install all the arches for the website
and man.cgi updated to make the arch selection list on the webpage
actually work.

-- Ian
Fernando Apesteguía
2021-05-27 06:40:09 UTC
Permalink
Post by Ian Lepore
Post by Fernando Apesteguía
I don't know what list this should be sent to, apologies if the
audience is too wide.
For some time now, we have not included all manual pages in every
FreeBSD packaged release. For instance, i386 man pages are not
included in the FreeBSD amd64 distribution.
* The https://www.freebsd.org/cgi/man.cgi is incomplete. As an
example, it does not show results for pae(4). The reason for this is
that the cgi interface runs on FreeBSD amd64.
* In FreeBSD amd64 some manual pages have broken X-refs. See hptrr(4)
for an example.
* Also, we have broken links in our Release Notes. This is a
consequence of the first point. See
https://www.freebsd.org/releases/13.0R/hardware/#proc-i386.
Is there a specific reason for this?
Cheers.
I have tried multiple times to get the people who adminster
freebsd.org's man.cgi to include all arches. I added the ability to
generate and install all of them by setting MAN_ARCH=all (or to a list
of arches) on the build command line years ago. But I haven't had any
success in getting that used to install all the arches for the website
and man.cgi updated to make the arch selection list on the webpage
actually work.
Hi Ian,

Thanks for the explanation. That would fix the man.cgi and
consequently the Release Notes issues.
However, in order to fix the broken X-refs in the manual pages of the
release distributions, wouldn't we need to build them with
MAN_ARCH=all?
According to make.conf(5), MAN_ARCH defaults to MACHINE and
MACHINE_ARCH. Would it be possible to change the default value to
"all"?

diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index f7626c80eeb1..583c4a4b9bb9 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -897,9 +897,7 @@ _cgem.4= cgem.4
MLINKS+=cgem.4 if_cgem.4
.endif

-.if empty(MAN_ARCH)
-__arches= ${MACHINE} ${MACHINE_ARCH} ${MACHINE_CPUARCH}
-.elif ${MAN_ARCH} == "all"
+.if empty(MAN_ARCH) || ${MAN_ARCH} == "all"
__arches= ${:!/bin/sh -c "/bin/ls -d ${.CURDIR}/man4.*"!:E}
.else
__arches= ${MAN_ARCH}

This way, the released distributions will have all the man pages (we
have some PRs related to this) and would also fix man.cgi regardless
of the FreeBSD version the service runs on.

I am assuming here that we do not explicitly set MAN_ARCH to a
specific architecture when building the releases but we take the
default value.

Cheers.
Post by Ian Lepore
-- Ian
John-Mark Gurney
2021-05-31 07:07:22 UTC
Permalink
Post by Fernando Apesteguía
Post by Ian Lepore
Post by Fernando Apesteguía
I don't know what list this should be sent to, apologies if the
audience is too wide.
For some time now, we have not included all manual pages in every
FreeBSD packaged release. For instance, i386 man pages are not
included in the FreeBSD amd64 distribution.
* The https://www.freebsd.org/cgi/man.cgi is incomplete. As an
example, it does not show results for pae(4). The reason for this is
that the cgi interface runs on FreeBSD amd64.
* In FreeBSD amd64 some manual pages have broken X-refs. See hptrr(4)
for an example.
* Also, we have broken links in our Release Notes. This is a
consequence of the first point. See
https://www.freebsd.org/releases/13.0R/hardware/#proc-i386.
Is there a specific reason for this?
Cheers.
I have tried multiple times to get the people who adminster
freebsd.org's man.cgi to include all arches. I added the ability to
generate and install all of them by setting MAN_ARCH=all (or to a list
of arches) on the build command line years ago. But I haven't had any
success in getting that used to install all the arches for the website
and man.cgi updated to make the arch selection list on the webpage
actually work.
Hi Ian,
Thanks for the explanation. That would fix the man.cgi and
consequently the Release Notes issues.
However, in order to fix the broken X-refs in the manual pages of the
release distributions, wouldn't we need to build them with
MAN_ARCH=all?
According to make.conf(5), MAN_ARCH defaults to MACHINE and
MACHINE_ARCH. Would it be possible to change the default value to
"all"?
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index f7626c80eeb1..583c4a4b9bb9 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -897,9 +897,7 @@ _cgem.4= cgem.4
MLINKS+=cgem.4 if_cgem.4
.endif
-.if empty(MAN_ARCH)
-__arches= ${MACHINE} ${MACHINE_ARCH} ${MACHINE_CPUARCH}
-.elif ${MAN_ARCH} == "all"
+.if empty(MAN_ARCH) || ${MAN_ARCH} == "all"
__arches= ${:!/bin/sh -c "/bin/ls -d ${.CURDIR}/man4.*"!:E}
.else
__arches= ${MAN_ARCH}
This way, the released distributions will have all the man pages (we
have some PRs related to this) and would also fix man.cgi regardless
of the FreeBSD version the service runs on.
I am assuming here that we do not explicitly set MAN_ARCH to a
specific architecture when building the releases but we take the
default value.
I would like to see this change made myself. It'd nice to be able to
use your amd64 build box to be able to get information on other systems
by default. The extra space is minimal.

I have cc'd -arch to get a wider audience.
--
John-Mark Gurney Voice: +1 415 225 5579

"All that I will do, has been done, All that I have, has not."
Ceri Davies
2021-05-31 16:17:56 UTC
Permalink
Post by John-Mark Gurney
Post by Fernando Apesteguía
Hi Ian,
Thanks for the explanation. That would fix the man.cgi and
consequently the Release Notes issues.
However, in order to fix the broken X-refs in the manual pages of the
release distributions, wouldn't we need to build them with
MAN_ARCH=all?
According to make.conf(5), MAN_ARCH defaults to MACHINE and
MACHINE_ARCH. Would it be possible to change the default value to
"all"?
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index f7626c80eeb1..583c4a4b9bb9 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -897,9 +897,7 @@ _cgem.4= cgem.4
MLINKS+=cgem.4 if_cgem.4
.endif
-.if empty(MAN_ARCH)
-__arches= ${MACHINE} ${MACHINE_ARCH} ${MACHINE_CPUARCH}
-.elif ${MAN_ARCH} == "all"
+.if empty(MAN_ARCH) || ${MAN_ARCH} == "all"
__arches= ${:!/bin/sh -c "/bin/ls -d ${.CURDIR}/man4.*"!:E}
.else
__arches= ${MAN_ARCH}
This way, the released distributions will have all the man pages (we
have some PRs related to this) and would also fix man.cgi regardless
of the FreeBSD version the service runs on.
I am assuming here that we do not explicitly set MAN_ARCH to a
specific architecture when building the releases but we take the
default value.
I would like to see this change made myself. It'd nice to be able to
use your amd64 build box to be able to get information on other systems
by default. The extra space is minimal.
Agreed.  I would prefer if architecture specific pages went into their
own section, and were then hardlinked into the existing architecture's
standard sections (this would preserve current behaviour, and allow each
architecture its own namespace if needed).

Ceri
--
That must be wonderful! I don't understand it at all.
-- Moliere
Wolfram Schneider
2021-05-26 15:24:23 UTC
Permalink
Post by Fernando Apesteguía
I don't know what list this should be sent to, apologies if the
audience is too wide.
For some time now, we have not included all manual pages in every
FreeBSD packaged release. For instance, i386 man pages are not
included in the FreeBSD amd64 distribution.
* The https://www.freebsd.org/cgi/man.cgi is incomplete. As an
example, it does not show results for pae(4). The reason for this is
that the cgi interface runs on FreeBSD amd64.
* In FreeBSD amd64 some manual pages have broken X-refs. See hptrr(4)
for an example.
* Also, we have broken links in our Release Notes. This is a
consequence of the first point. See
https://www.freebsd.org/releases/13.0R/hardware/#proc-i386.
Is there a specific reason for this?
I think this is a bug in our build system, starting at FreeBSD 10.x

NetBSD ships all manual pages for all architectures in their package
sets, and we should do the same.

-Wolfram
--
Wolfram Schneider <***@FreeBSD.org> https://wolfram.schneider.org
Continue reading on narkive:
Loading...