Re: arched BuildRequires?

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

 



On Wed, 2015-01-28 at 02:01 +0400, Konstantin Andreev wrote:
> On 14/06/2013 17:07, Michael Schwendt wrote:
> > On Fri, 14 Jun 2013 15:26:59 +0300, Panu Matilainen wrote:
> >> [... skip ...]
> >> The requires of src.rpm only reflect what build-requires were
> active during the creation of that specific src.rpm file, ...
> >
> > Which is nearly what I've been preaching. "The spec file's
> BuildRequires become the src.rpm's Requires" depending on the
> environment the src.rpm is built within.
>
> Michael,
> 
> building 32-bit software on x86_64 systems is *very* important,
> completely legal, and fully supported use case, right ?
> (RedHat-provided gcc, binutils, etc for x86_64 always support 32-bit
> targets.)

 Fully supported by whom, and in what capacity? This is not an
idle/weird question, there are a lot of things that an "upstream" will
support that Fedora/FPC do not.
 For instance, lots of upstreams think that static linking or bundling
is a great idea. This is not the view of Fedora policy though.

> Given that, on x86_64 system, obviously,
> 
>    * building 32-bit `foo' package requires 32-bit glibc-devel.
>    * building 64-bit `foo' package requires 64-bit glibc-devel.

 And "BuildRequires: glibc-devel" will do the right thing with mock,
koji and yum-builddep. And just as relevantly
"BuildRequires: glibc-devel%{_isa}" will not DTRT with any of those
tools ... and those are the tools Fedora uses.

> Given that, how would I write a single spec for these to work on the same x86_64 system :
> 
>     $ rpmbuild --rebuild               foo.src.rpm
>     $ rpmbuild --rebuild --target i686 foo.src.rpm
> 
> without arched BR's ?

 You can't, and if you have some environment that needs to do that but
doesn't need createrepo'd data of the BuildRequires then feel free to
use arch'd BuildRequires. But Fedora doesn't use that environment, and
does need createrepo'd data of the BuildRequires.

> Dont' mention mock and preparing same-target build environment.

 Why? That's the recommend way of doing local builds in Fedora.

>  If rpmbuild had not designed for [target arch != build arch]
> condition, it wouldn't has had `--target' option.

 Again, this is a difference between what options upstream gives you and
supports vs. what Fedora supports. rpm also supports --relocate, but
that isn't valid in Fedora either.

> As regards storing build requirements in *.src.rpm files. It's wrong asking
> 
>    - What this .src.rpm requires ?
> 
> Correct asking is
> 
>    - What this .src.rpm requires when building *for <some particular> arch* ?

 Not in Fedora, in Fedora the target arch and the generic .src.rpm are
the inputs. If you want to change this you need to speak to
rel-eng/FESCO.

--
packaging mailing list
packaging@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/packaging





[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Forum]     [KDE Users]

  Powered by Linux