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

Mike Bonnet mikeb at redhat.com
Thu Jan 6 14:31:05 UTC 2011


On 01/06/2011 12:43 AM, Brian_Kosick at 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 at 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 at lists.fedoraproject.org
>> https://admin.fedoraproject.org/mailman/listinfo/buildsys
> 
> --
> buildsys mailing list
> buildsys at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/buildsys



More information about the buildsys mailing list