Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Fedora Build System (http://www.linux-archive.org/fedora-build-system/)
-   -   Building EL6 with koji/mock on a EL5.5 host (http://www.linux-archive.org/fedora-build-system/468830-building-el6-koji-mock-el5-5-host.html)

12-23-2010 10:10 PM

Building EL6 with koji/mock on a EL5.5 host
 
Hi All,

I'm trying to build el6 on a koji build host that is el5.5.

I'm running into issues in the mock environment with rpm and what version of BDB it is using. Basically, I was originally having issues with yum failing on deps of rpmlib(PayLoadIsXZ), so after a little research I found this link from a list: http://infrastructure.fedoraproject.org/builder-rpms/x86_64/. These rpms (basically a intermediate version of rpm that supports XZ compression) got me around the missing rpm libs and on to mock exiting complaining about not being able to read the rpm __db files. I believe that I have correctly diagnosed the issue here; that the versions of __db files that the rpm 4.6 (from the link) produces is not liked by the rpm (4.8) of the el6 mock root. From what I've gleaned about mock is that there is no easy way to get around this rpm db incompatibility. And there is no such mock option that will let you do the equivalent of "rpm /var/lib/rpm/__db* && rpm --rebuilddb". Has anyone run into this before? And if so how did you address/ha
ndle it?

I believe that what I may want to do is create a el6 build host and use channels to control which host builds the el6 dist tag. However, I cannot seem to find information on how to create and use custom channels with koji and only vague references to the concept of channels in koji. For instance my questions would be:

How to create a new channel?
How to associate a tag/target/dist with a channel?
I'm assuming that the koji add-host-to-channel command would add the new el6 host correctly, but how to then remove the the new host from the "default" channel so that it doesn't build el5 and which,. I suspect, would have the same rpm db issues in reverse.

Thanks,
Brian
--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys

Mike McLean 01-03-2011 07:36 PM

Building EL6 with koji/mock on a EL5.5 host
 
On 12/23/2010 06:10 PM, Brian_Kosick@McAfee.com wrote:
> Hi All,
>
> I'm trying to build el6 on a koji build host that is el5.5.

The stock rhel5 version of rpm cannot handle this. You'll need to build
your own.

> I believe that what I may want to do is create a el6 build host and
> use channels to control which host builds the el6 dist tag.
> However, I cannot seem to find information on how to create and use
> custom channels with koji and only vague references to the concept of
> channels in koji. For instance my questions would be:

This will work also. To direct different builds to different channels,
you'll need to write a custom channel policy. You can read more about
that here: https://fedoraproject.org/wiki/Koji/Policies

$ koji help --admin |grep channel
add-host-to-channel Add a host to a channel
remove-host-from-channel Remove a host from a channel

In koji-1.5.0 and later, the add-host-to-channel command supports a
--new option that will create the channel. Otherwise, you can add it in
the db manually with a simple insert... something like: insert into
channels(name) values('my-new-channel').

For your channel policy, you'll want to go with a small variation of the
default, so something like:

channel =
has req_channel :: req
is_child_task :: parent
method build && match target dist-6E-* :: use my-new-channel
all :: use default

> How to create a new channel? How to associate a tag/target/dist with
> a channel? I'm assuming that the koji add-host-to-channel command
> would add the new el6 host correctly, but how to then remove the the
> new host from the "default" channel so that it doesn't build el5 and
> which,. I suspect, would have the same rpm db issues in reverse.

The reverse issue does not occur. An el6 box can build el5 packages just
fine.

However, if you still want to remove hosts from a channel, you can use
the remove-host-from-channel command.
--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys

01-06-2011 04:43 AM

Building EL6 with koji/mock on a EL5.5 host
 
Fantastic, that really helped, I upgraded my koji instance from 1.4->1.6, built/added a RH6 builder box and added the [policy] entry to hub.conf... It works beautifully. (Also I noticed that there wasn't a 1.5->1.6 schema file. I'm assuming that there weren't any schema changes) I just need to figure out this build error on the el6 builder box.

Traceback (most recent call last):
File "/usr/sbin/mock", line 783, in <module>
main(retParams)
File "/usr/sbin/mock", line 693, in main
uid=chroot.chrootuid, gid=chroot.chrootgid, cwd=options.cwd)
File "/usr/lib/python2.6/site-packages/mock/backend.py", line 422, in doChroot
shell=shell, *args, **kargs )
File "<peak.util.decorators.rewrap wrapping mock.util.do at 0x00DB0488>", line 3, in do
File "/usr/lib/python2.6/site-packages/mock/trace_decorator.py", line 70, in trace
result = func(*args, **kw)
File "/usr/lib/python2.6/site-packages/mock/util.py", line 281, in do
preexec_fn = preexec,
File "/usr/lib64/python2.6/subprocess.py", line 633, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1139, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
Running the command manually and adding the --trace and -vvv flags...
/usr/bin/mock -r koji/el6-extras-build-3660-5581 --no-clean --unpriv --cwd /tmp/scmroot/postgresql-9.0.2 --chroot make sources -vvvvv --trace
.....
DEBUG: mount -n -t sysfs mock_chroot_sysfs /var/lib/mock/el6-extras-build-3660-5581/root/sys
INFO: ENTER do('mount -n -t sysfs mock_chroot_sysfs /var/lib/mock/el6-extras-build-3660-5581/root/sys', True, None, None, 0, True, 0, None, None, None, )
DEBUG: Executing command: mount -n -t sysfs mock_chroot_sysfs /var/lib/mock/el6-extras-build-3660-5581/root/sys
DEBUG: Child returncode was: 0
INFO: LEAVE do -->

INFO: LEAVE _mountall --> None

INFO: ENTER makeChrootPath(<mock.backend.Root object at 0x1237b50>, )
INFO: LEAVE makeChrootPath --> /var/lib/mock/el6-extras-build-3660-5581/root/

INFO: ENTER do(['make', 'sources'], False, '/var/lib/mock/el6-extras-build-3660-5581/root/', '/tmp/scmroot/postgresql-9.0.2', 0, True, 0, 500, 495, None, )
DEBUG: Executing command: ['make', 'sources']
INFO: EXCEPTION: [Errno 13] Permission denied
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/mock/trace_decorator.py", line 70, in trace
result = func(*args, **kw)
File "/usr/lib/python2.6/site-packages/mock/util.py", line 281, in do
preexec_fn = preexec,
File "/usr/lib64/python2.6/subprocess.py", line 633, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1139, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
INFO: LEAVE do --> EXCEPTION RAISED

.......
I verified that my kojibuilder user is added to the mock group. Anyone have a suggestion? I also noticed that there's new koji-vm code. The rpm description says "koji-vm contains a supplemental build daemon that executes certain tasks in a virtual machine." I was wondering where I could find more info on this.

Brian

On Jan 3, 2011, at 1:36 PM, Mike McLean wrote:

> On 12/23/2010 06:10 PM, Brian_Kosick@McAfee.com wrote:
>> Hi All,
>>
>> I'm trying to build el6 on a koji build host that is el5.5.
>
> The stock rhel5 version of rpm cannot handle this. You'll need to build
> your own.
>
>> I believe that what I may want to do is create a el6 build host and
>> use channels to control which host builds the el6 dist tag.
>> However, I cannot seem to find information on how to create and use
>> custom channels with koji and only vague references to the concept of
>> channels in koji. For instance my questions would be:
>
> This will work also. To direct different builds to different channels,
> you'll need to write a custom channel policy. You can read more about
> that here: https://fedoraproject.org/wiki/Koji/Policies
>
> $ koji help --admin |grep channel
> add-host-to-channel Add a host to a channel
> remove-host-from-channel Remove a host from a channel
>
> In koji-1.5.0 and later, the add-host-to-channel command supports a
> --new option that will create the channel. Otherwise, you can add it in
> the db manually with a simple insert... something like: insert into
> channels(name) values('my-new-channel').
>
> For your channel policy, you'll want to go with a small variation of the
> default, so something like:
>
> channel =
> has req_channel :: req
> is_child_task :: parent
> method build && match target dist-6E-* :: use my-new-channel
> all :: use default
>
>> How to create a new channel? How to associate a tag/target/dist with
>> a channel? I'm assuming that the koji add-host-to-channel command
>> would add the new el6 host correctly, but how to then remove the the
>> new host from the "default" channel so that it doesn't build el5 and
>> which,. I suspect, would have the same rpm db issues in reverse.
>
> The reverse issue does not occur. An el6 box can build el5 packages just
> fine.
>
> However, if you still want to remove hosts from a channel, you can use
> the remove-host-from-channel command.
> --
> buildsys mailing list
> buildsys@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/buildsys

--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys

Mike Bonnet 01-06-2011 01:31 PM

Building EL6 with koji/mock on a EL5.5 host
 
On 01/06/2011 12:43 AM, Brian_Kosick@McAfee.com wrote:
> Fantastic, that really helped, I upgraded my koji instance from 1.4->1.6, built/added a RH6 builder box and added the [policy] entry to hub.conf... It works beautifully. (Also I noticed that there wasn't a 1.5->1.6 schema file. I'm assuming that there weren't any schema changes) I just need to figure out this build error on the el6 builder box.
>
> Traceback (most recent call last):
> File "/usr/sbin/mock", line 783, in <module>
> main(retParams)
> File "/usr/sbin/mock", line 693, in main
> uid=chroot.chrootuid, gid=chroot.chrootgid, cwd=options.cwd)
> File "/usr/lib/python2.6/site-packages/mock/backend.py", line 422, in doChroot
> shell=shell, *args, **kargs )
> File "<peak.util.decorators.rewrap wrapping mock.util.do at 0x00DB0488>", line 3, in do
> File "/usr/lib/python2.6/site-packages/mock/trace_decorator.py", line 70, in trace
> result = func(*args, **kw)
> File "/usr/lib/python2.6/site-packages/mock/util.py", line 281, in do
> preexec_fn = preexec,
> File "/usr/lib64/python2.6/subprocess.py", line 633, in __init__
> errread, errwrite)
> File "/usr/lib64/python2.6/subprocess.py", line 1139, in _execute_child
> raise child_exception
> OSError: [Errno 13] Permission denied

Make sure "make" is in the srpm-build group for your build tag. "koji
list-groups <build-tag>" will tell you what's currently in the group.

> Running the command manually and adding the --trace and -vvv flags...
> /usr/bin/mock -r koji/el6-extras-build-3660-5581 --no-clean --unpriv --cwd /tmp/scmroot/postgresql-9.0.2 --chroot make sources -vvvvv --trace
> .....
> DEBUG: mount -n -t sysfs mock_chroot_sysfs /var/lib/mock/el6-extras-build-3660-5581/root/sys
> INFO: ENTER do('mount -n -t sysfs mock_chroot_sysfs /var/lib/mock/el6-extras-build-3660-5581/root/sys', True, None, None, 0, True, 0, None, None, None, )
> DEBUG: Executing command: mount -n -t sysfs mock_chroot_sysfs /var/lib/mock/el6-extras-build-3660-5581/root/sys
> DEBUG: Child returncode was: 0
> INFO: LEAVE do -->
>
> INFO: LEAVE _mountall --> None
>
> INFO: ENTER makeChrootPath(<mock.backend.Root object at 0x1237b50>, )
> INFO: LEAVE makeChrootPath --> /var/lib/mock/el6-extras-build-3660-5581/root/
>
> INFO: ENTER do(['make', 'sources'], False, '/var/lib/mock/el6-extras-build-3660-5581/root/', '/tmp/scmroot/postgresql-9.0.2', 0, True, 0, 500, 495, None, )
> DEBUG: Executing command: ['make', 'sources']
> INFO: EXCEPTION: [Errno 13] Permission denied
> Traceback (most recent call last):
> File "/usr/lib/python2.6/site-packages/mock/trace_decorator.py", line 70, in trace
> result = func(*args, **kw)
> File "/usr/lib/python2.6/site-packages/mock/util.py", line 281, in do
> preexec_fn = preexec,
> File "/usr/lib64/python2.6/subprocess.py", line 633, in __init__
> errread, errwrite)
> File "/usr/lib64/python2.6/subprocess.py", line 1139, in _execute_child
> raise child_exception
> OSError: [Errno 13] Permission denied
> INFO: LEAVE do --> EXCEPTION RAISED
>
> .......
> I verified that my kojibuilder user is added to the mock group. Anyone have a suggestion? I also noticed that there's new koji-vm code. The rpm description says "koji-vm contains a supplemental build daemon that executes certain tasks in a virtual machine." I was wondering where I could find more info on this.
>
> Brian
>
> On Jan 3, 2011, at 1:36 PM, Mike McLean wrote:
>
>> On 12/23/2010 06:10 PM, Brian_Kosick@McAfee.com wrote:
>>> Hi All,
>>>
>>> I'm trying to build el6 on a koji build host that is el5.5.
>>
>> The stock rhel5 version of rpm cannot handle this. You'll need to build
>> your own.
>>
>>> I believe that what I may want to do is create a el6 build host and
>>> use channels to control which host builds the el6 dist tag.
>>> However, I cannot seem to find information on how to create and use
>>> custom channels with koji and only vague references to the concept of
>>> channels in koji. For instance my questions would be:
>>
>> This will work also. To direct different builds to different channels,
>> you'll need to write a custom channel policy. You can read more about
>> that here: https://fedoraproject.org/wiki/Koji/Policies
>>
>> $ koji help --admin |grep channel
>> add-host-to-channel Add a host to a channel
>> remove-host-from-channel Remove a host from a channel
>>
>> In koji-1.5.0 and later, the add-host-to-channel command supports a
>> --new option that will create the channel. Otherwise, you can add it in
>> the db manually with a simple insert... something like: insert into
>> channels(name) values('my-new-channel').
>>
>> For your channel policy, you'll want to go with a small variation of the
>> default, so something like:
>>
>> channel =
>> has req_channel :: req
>> is_child_task :: parent
>> method build && match target dist-6E-* :: use my-new-channel
>> all :: use default
>>
>>> How to create a new channel? How to associate a tag/target/dist with
>>> a channel? I'm assuming that the koji add-host-to-channel command
>>> would add the new el6 host correctly, but how to then remove the the
>>> new host from the "default" channel so that it doesn't build el5 and
>>> which,. I suspect, would have the same rpm db issues in reverse.
>>
>> The reverse issue does not occur. An el6 box can build el5 packages just
>> fine.
>>
>> However, if you still want to remove hosts from a channel, you can use
>> the remove-host-from-channel command.
>> --
>> buildsys mailing list
>> buildsys@lists.fedoraproject.org
>> https://admin.fedoraproject.org/mailman/listinfo/buildsys
>
> --
> buildsys mailing list
> buildsys@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/buildsys

--
buildsys mailing list
buildsys@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/buildsys


All times are GMT. The time now is 07:45 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.