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

[Fedora-packaging] To noarch or arch for arch specific script packages?

There exists packages that are written in say python, but are used for arch 
specific task.  Consider python scripts that deal with grub (i386/x86_64), or 
other such things.  Do we want to continue considering these 'noarch' 
packages, or do we want to mark them as arch specific?  They'll already have 
the ExclusiveArch: i386 x86_64 or ExcludeArch in the spec.

The reason I bring this up as it has tickled a possible bug in Brew, Red Hat's 
build software.  Currently brew will look at BuildArch and ExclusiveArch / 
ExcludeArch, and the configured arches for a build target to decide where to 
build the package at.  In one package case, it has BuildArch: noarch, and 
ExclusiveArch: i386 x86_64.  Combining the two, brew is complaining that 
Architecture is not included 'noarch'.  A (ugly) work around was to 
add 'noarch' to the ExclusiveArch list, or use ExcludeArch and list a bunch 
of arches this package wouldn't work for, but this can break distribution 
composes that query ExclusiveArch to figure out what packages should be 
included in which arches for composes or produce very ugly spec files with a 
ton of arches listed under ExcludeArch.  An ExclusiveArch of noarch would 
mean that the package gets included on EVERY arch when we compose the 

There are two camps here, one is that "If your package only WORKS on a 
particular arch, it should be BuildArch'd there as to be tagged as such".  
The other camp is "If your package is comprised of noarch files (scripts), it 
must be marked as such." (and really a third workaround camp that is "You 
should use ExcludeArch rather than ExclusiveArch.)

The build software team is on the fence about this, especially as it echos to 
packaging guidelines and we'd like to see some discussion out in the 
community regarding this issue, and hopefully some policy that we can follow.

The way I see it, if your package is comprised of non-compiled arch 
independent content, it MUST be noarch.  We can make our build system honor 
BuildArch: noarch and ExclusiveArch: i386 x86_64.  This would be somewhat 
inline with doing BuildArch: noarch, ExcludeArch: foo bar baz baal, because 
ExcludeArch would still have 'noarch' in the list.  I just don't want to see 
either A) having to list out every single possible arch this package may be 
built for, or B) screwing over folks like Aurora by only ExcludeArching the 
arches our build system would attempt, forcing folks like Aurora to edit spec 
files to do their rebuilds.

A side question is, what does plague do in this scenario?
Jesse Keating
Release Engineer: Fedora

Attachment: pgpcy4Ptw0V4x.pgp
Description: PGP signature

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