Heads up: Noarch Subpackages
Panu Matilainen
pmatilai at laiskiainen.org
Sat Feb 14 16:19:31 UTC 2009
On Fri, 13 Feb 2009, Ralf Corsepius wrote:
> Panu Matilainen wrote:
>> On Fri, 13 Feb 2009, Michael DeHaan wrote:
>>
>>> Florian Festi wrote:
>>>> Ville Skyttä wrote:
>
>>>> As another solution for this problem we (ehm, Panu) will backport a check
>>>> that will make noarch packages (both regular and noarch) fail to build if
>>>> they contain binaries (==colored files==the right thing to do even for
>>>> emulators, bioses, cross compilers, ...[1]). This additional check will
>>>> be in place before koji will be updated [2].
>
>>> I would prefer that, at least, there was a way to bypass this binary file
>>> check in the specfile for apps that have a legitimate reason to do it.
>>
>> Yes, there's an override, precisely for these kind of reasons:
>>
>> # Should binaries in noarch packages terminate a build?
>> %_binaries_in_noarch_packages_terminate_build 1
>>
>> Turning that off in spec will make binaries in noarch packages
> How is "binary" defined?
Currently it's only ELF executables and DSO's.
> [Related to it: The current definition as being used by the debug-info
> generation/build-id checks in Fedora's rpm are a PITA when it comes to
> packaging cross-tools/cross-libraries]
You'd need to have debugedit and various other pieces available for the
cross target and setup rpmbuild to use those instead of the native ones
when cross-building. Should mostly be possible even as it is, but most
likely find-debuginfo.sh and friends could use some further
parametrization to make it easier to do. Or just disable the
debuginfo/build-id & friends for cross-tools/libraries.
>> a warning, and it serves as documentation "yes we're doing something a bit
>> special, this is intentional" too.
> Why does this check + warning exit all?
>
> IMO, by marking a package/sub-package "noarch" the package's author has
> clearly noted his intentions to be wanting the arch to be ignored. Of cause
> this carries a risk of accidentally packaging native binaries into supposed
> to be "noarch" packages, but these can pretty easily be distinguished from
> "foreign binaries" by other means (e.g. by restricting such checks to certain
> PATHs).
It's just a packaging sanity check, just like unpackaged / missing files
and such. Noarch package carrying arch-dependent binaries is a pretty
grave package error except for some corner cases such as where the
binaries are carried as "content", not something to execute on the host.
- Panu -
More information about the fedora-devel-list
mailing list