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

Reply via email to