This is likely a popular thread (if I'm not mistaken ;-).
Permitting rpmbuild to produce noarch sub-packages is mostly as simple
as changing the "arch" argument to headerAddEntry() in build/
parseSpec.c:612
(void) headerAddEntry(pkg->header, RPMTAG_ARCH,
RPM_STRING_TYPE, arch, 1);
So an implementation permitting noarch (or any other arch) sub-packages
is quite feasible, always has been, an easy hack.
The harder issue wrto "noarch" subpkgs is guaranteeing the "noarch"
semantic,
that indeed the contents of a noarch package can be installed
anywhere, that
there are no elf binaries, or other platform specific goop, etc, etc
etc within a
noarch package.
That guarantee can be preserved without forbidding "noarch" subpkgs.
For quite some time, rpmbuild has been attaching file(1) magic
strings to
files. The strings can be used with filter patterns to preserve the
guarantee
that, indeed, "noarch" is noarch.
If anyone would like to start devising the actual patterns that are
necessary
for guaranteeing that "noarch" is noarch, I will take care of the
rest of the
necessary implementation details.
What is needed is a flat file of patterns, 1 per line. Patterns that
start with '!'
will invert the sense of the pattern match.
Any "noarch" package contents that fail to match against all noarch
patterns will fail the build.
73 de Jeff
______________________________________________________________________
RPM Package Manager http://rpm5.org
Developer Communication List rpm-devel@rpm5.org