On 8/19/2015 4:16 PM, Adrian Schröter wrote:
On Tuesday 18 August 2015, 23:23:32 wrote Wanghui:
> 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">
> 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
> Third, create another project names test, in its Meta I add below
> <repository name="standard">
> <path project="CentOS7" repository="standard"/>
Sorry, I mistaked, all above <arch>i586</arch> is actually
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
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
looks like it can't find glibc-2.17-55.el7.i686.rpm which provides glibc(x86-32)
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
name for different architectures installed in parallel in OBS (and usually also in real
Therefore we usually build the -32bit packages just providing a subset of libraries which
not be installed in parallel.
Yes, in suse, we find 32bit packages were provided as <name>-32bit like
But in centos, you can install glibc.i686 while glibc.x86_64 was installed. just type
"yum install glibc.i686", and so the others. Below command was executed on my
[root@localhost Packages]# rpm -qa | grep glibc
Compile gcc.x86_64 needs both glibc.x86_64 and glibc.i686 so that gcc.x86_64 can also
32bit program with the option -m32.
But this works only for libs. Header files and executabels usually have the same
on disk and would replace the files. So the build script (or rpm) will abort with file
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
can build 32bit program, also "rpmbuild --target i686 glibc.spec" can
i686 rpm on centos.
How can I cross build i686 package using x86_64 enviroment?
You may have some success using
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
I suppose so, but centos doesn't provide gcc.i686, sigh.
Anyway I will try Target: i686, thank you very much.
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe(a)opensuse.org
To contact the owner, e-mail: opensuse-buildservice+owner(a)opensuse.org