On 08/06/16 08:38 +0000, Petr Pisar wrote:
On 2016-06-08, Jonathan Wakely <jwak...@fedoraproject.org> wrote:
On 08/06/16 07:37 +0000, Petr Pisar wrote:
Guidelines require devel packages to be architecture specific (no
BuildArch: noarch). Guidelines require having dependencies between
architecture specific packages restricted to the architecture
(Requires: foo-devel%{?_isa}). C guildelines require depending on "gcc"
for standard C library header files.

Files in devel packages usually include standard C library header
files, thus one needs to "Require: gcc%{?_isa}" from the devel packages.

Why?

Because "#include <stdlib.h>" fails without stdlib.h on the system,
you need to depend on something that provides the stdlib.h. And
guidelines says the provider is "gcc".

So you should require gcc, not gcc%{?_isa}

But it's not possible to install gcc.x86_64 and gcc.i686 at the same
time (they conflicts on /usr/libexec/getconf/default).

So the final question: When gcc package will be multilib-safe? Without
multlib-safe gcc package, all the aim in all the other packages is
useless because all the dependencies lead to gcc.

Which dependencies?

"Requires: gcc%{?_isa}" in *-devel packages.

Don't do that then.

The 'gcc' package doesn't install any multilib headers, so why do you
need gcc%{?_isa} ?

<https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequires_and_Requires>.

That doesn't answer my question :-)

That page doesn't say to require gcc.%{_isa}.

I can see how you might need libstdc++-devel%{?_isa} or other
components of GCC, but those *are* multilibbed, so you can have both
libstdc++-devel.i686 and libstdc++-devel.x86_64 installed at the same
time.

Last I was those are implementation details and I should depend on GCC
instead. You should know because you were involved in the discussion
that leads to the C packaging guidelines.

The guidelines say:

"You need not include a BuildRequires or Requires on glibc-headers, or
any other core C or C++ implementation package unless you have a
specific and special need"

A 64-bit package which requires 32-bit compilation seems like a fairly
specific need, so it seems reasonable to require glibc-headers.i686
directly in that case (or more accurately, glibc-headers%{arch32}
where that macro is set appropriately).

What other problems are you trying to solve?

In any case, the solution is not to make gcc multilib-installable (as
has been explained repeatedly, that isn't useful, the 'gcc' binaries
installed by gcc.x86_64 already support 32-bit compilation perfectly
well).
--
devel mailing list
devel@lists.fedoraproject.org
https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to