Mailinglist Archive: opensuse-buildservice (136 mails)

< Previous Next >
Re: [opensuse-buildservice] questions about rebuild centos7 with openbuild service
On Tuesday 18 August 2015, 23:23:32 wrote Wanghui:
Hi,

I am rebuilding centos7 using a local openbuild service server,
which version is 2.6.2. Both server and worker are sles11 sp3.

First, I create a project names CentOS7, then put the content
below to Meta sheet through web page.

<repository name="standard">
<arch>x86_64</arch>
<arch>i586</arch>
</repository>

Second, I connect the server, find the project repos, then create
":full" directory under x86_64 and i686 folder. After that, I copy
all x86_64 and noarch rpm packages to x86_64/:full, i686 and noarch
rpm packages to i686/:full. These rpm packages are from
CentOS-7-x86_64-Everything-1503-01.iso

Third, create another project names test, in its Meta I add below
<repository name="standard">
<path project="CentOS7" repository="standard"/>
<arch>x86_64</arch>
<arch>i586</arch>
</repository>

Here comes my questions.
1. I uploaded gcc's source, but it can't be built.
In x86_64 architecture the status is unresolvable with hint
"nothing provides /usr/bin/pod2man, nothing provides /lib/libc.so.6,
nothing provides /usr/lib/libc.so, nothing provides /lib64/libc.so.6,
nothing provides /usr/lib64/libc.so"

gcc.spec has BuildRequires that directly point to file like below
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6
/usr/lib64/libc.so

this is only supported via FileProvides: in project config


http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_config.html

but openbuild service looks like can't analysis this kind BuildRequires,
so I
changed gcc.spec into
BuildRequires: glibc(x86-64) glibc(x86-32)

then hint changed into "nothing provides /usr/bin/pod2man, nothing
provides glibc(x86-32)"
looks like it can't find glibc-2.17-55.el7.i686.rpm which provides
glibc(x86-32)

Question:
How can I find 32bit BuildRequires while build x86_64 rpm packages?

this works only when using a different name for the package. You can't have the
same package
name for different architectures installed in parallel in OBS (and usually also
in real life).

Therefore we usually build the -32bit packages just providing a subset of
libraries which can
not be installed in parallel.

But this works only for libs. Header files and executabels usually have the
same location
on disk and would replace the files. So the build script (or rpm) will abort
with file conflicts.

2. I uploaded glibc's source, x86_64 architecture was ok but can't build i686
package
The status was also unresolvable, the hint is
"nothing provides gcc>=3.2 ………………"

seems build glibc.i686 rpm need gcc.i686, but actually, use gcc.x86_64
with option -m32
can build 32bit program, also "rpmbuild --target i686 glibc.spec" can
generate glibc's
i686 rpm on centos.

Question:
How can I cross build i686 package using x86_64 enviroment?

You may have some success using

Target: i686

in prjconf. But note that all packages in that repo will attempt to cross build.

Maybe it is easier to build it inside of i586 scheduler arch, but export the
result to
x86_64 repo using

ExportFilter:

syntax
--

Adrian Schroeter
email: adrian@xxxxxxx

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284
(AG Nürnberg)

Maxfeldstraße 5
90409 Nürnberg
Germany


--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >
References