On 06/08/2016 10:21 AM, Jonathan Wakely wrote:
> If this is so, I will go to FPC with request the ammend the C
guidelines
> with explicit discourage of %{?_isa} on gcc because the main
> architecture supports the secondary targets and because gcc is not
> multilib safe.
I think -devel packages should not "Require: gcc" at all. Not with
%_isa and not without it.
Agreed.
To actually compile something using those headers you need the C (or
C++) build environment installed anyway, i.e. you need 'gcc' (or
'gcc-c++') installed so there's no benefit to the package giving it as
a requirement.
Agreed.
If you want to install the foobar-devel.i686 package on x86_64 and
compile 32-bit software with those 32-bit headers you'll need to
manually install glibc-headers.i686, but that's true even if you just
want to compile a "Hello, world!" as a 32-bit C program on x86_64.
Right. It's a "specific and special need" which we should clarify in
the "C and C++" application specific guideline.
So simply don't add a Requires to -devel packages for the build
env.
Don't Require: gcc and don't Require: glibc-headers. If a -devel
package currently has Requires: glibc-headers%{?_isa} then IMHO that
Requires should be removed, not replaced with gcc or gcc%{?_isa}
(unless for some special reason the package really does need
glibc-headers explicitly, not just in order to provide a working build
env).
Agreed. Last year I filed bugs against all packages I found that were using
"Require: glibc-headers" and we are about 60% complete the fixes.
https://bugzilla.redhat.com/show_bug.cgi?id=1230505
I'll update the draft for V2 of the C/C++ Packaging Guidelines to
say
that.
Awesome!
--
Cheers,
Carlos.