Re: Revisiting header-only packages and noarch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have submitted a Packaging Draft:

https://pagure.io/packaging-committee/pull-request/1140
https://pagure.io/packaging-committee/issue/1141

On 12/9/21 09: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
_______________________________________________
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




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Forum]     [KDE Users]

  Powered by Linux