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/handle 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
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.
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
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@lists.fedoraproject.org