On 09. 12. 21 15:03, Ben Beasley wrote:
Currently, the packaging guidelines say the following[1] regarding header-only
libraries:
Do not use noarch
It may be tempting to make the header library package noarch, since
the header files themselves are simply text. However, a library should
have tests which should be run on all architectures. Also, the install
process may modify the installed headers depending on the build
architecture. For these reasons, header-only packages must not be
marked noarch.
I’d like to collect feedback on the idea of revising this guidance to clarify
that the *base* package, which in a header-only library package typically has
no %files section and does not produce a binary RPM, must be arched, but that
any subpackages, specifically including the -devel package, may be noarch.
This would address both of the justifications for the general prohibition in
the guidelines:
- The package will still be built, and any tests executed, on all
architectures so long as the base package is not noarch
- Differences in the installed headers depending on the build
architecture would be detected by koji[2], failing the build
(and thereby indicating the need to drop “noarch”)
However, it would confer the following benefits:
- The vast majority of header-only packages could produce noarch
binary rpms. This would:
* save storage and bandwidth
* be less surprising and confusing to packagers and users, who
normally expect arch-independent content to appear in noarch
packages
I have created a PR[3] on the “atomic-queue” package as an example. In the
associated scratch build, you can see that builds occur on all architectures,
but only a single noarch RPM is produced.
If feedback here is positive, I’ll open a Packaging Draft[4] with specific
proposed text.
[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_do_not_use_noarch
[2] https://docs.pagure.org/koji/misc/#how-noarch-sub-packages-are-built
[3] https://src.fedoraproject.org/rpms/atomic-queue/pull-request/1
[4] https://fedoraproject.org/wiki/Packaging_Committee#Step_One:_Draft_Guidelines
I like this, but it should mention that this is not always possible. Some
header-only libraries install stuff to %{_libdir} (e.g. cmake files or pkgconfig).
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
_______________________________________________
packaging mailing list -- packaging@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to packaging-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/packaging@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure