On 07/09/2015 03:07 PM, Dan Horák wrote:
On Thu, 9 Jul 2015 10:49:01 +0000 (UTC)
Petr Pisar <ppisar@xxxxxxxxxx> wrote:
On 2015-07-09, Jan Chaloupka <jchaloup@xxxxxxxxxx> wrote:
# Define arches for PA and SA
%golang_arches %{ix86} x86_64 %{arm}
[...]
Recommended use in spec file:
1) To choose the correct compiler:
%ifarch %{golang_arches}
BuildRequires: golang
%else
BuildRequires: gcc-go >= %{gccgo_min_vers}
%endif
This will not work. A source package is built on random architecture,
thus using %ifarch to define BuildRequire will provide random results.
(And maybe while building a source package, the RPM architecture is
redefined to `noarch' value.)
I don't have any real analysis at hand, but we use %ifarch-ed
BuildRequires regularly and it works as expected. Secondary arches do
builds from imported srpms that are created on primary arches. A problem
is when Source or Patch are %ifarch-ed and this is forbidden by the
Guidelines.
Talking to Dan Mach (CC'ing) he confirmed the srpm is rebuilt on a
concrete architecture before rpm is built. So the workflow is:
1) build srpm on random architecture
2) once rpm is about to be built on a concrete architecture (noarch or
arch-dep), rebuild srpm on the architecture
3) build rpm from the rebuilt srpm.
And I think you are right with the "noarch" set as the architecture
when srpm is being created in the BuildSRPMFromSCM task.
Dan
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct