Hi,
Quoting Helmut Grohne (2025-08-31 21:55:27)
I think this is most commonly known as "the help2man problem". The
TL;DR is that there are no nice solutions. Your bad options are:
* Write a real manual page.
* Generate the manual page before creating the source package and do
not render it at build time.
* If you have few Build-Depends, you may duplicate them all as :native
and perform an additional native build just for generating the manual
page.
* You might Build-Depends: $yourself <cross> and run the installed
native version of the tool to generate the manual page.
* You may write some code parsing the Rust source (e.g. using Perl) and
extract the manual page without actually building it.
* You may compromise on reproducibility and skip installing a manual
page for cross builds (or only support cross building with a nodoc
profile).
* You may split manual pages into an Arch:all package.
* You may decide that the convenience of having a manual page is more
important than spending effort on cross building.
So yeah, you do have lots of options, but they're all bad.
I chose to go for another bad option in my package vcmi:
https://sources.debian.org/src/vcmi/1.6.5%2Bdfsg-2/debian/rules#L50
All manpages are stored in ./debian but during a native build, help2man is run
to verify that their contents are still up-to-date. During a cross build, they
are just copied into the binary package and not re-created.
Thanks!