It's been a while since I played with the koji buildsystem so since I've a spare box in the backroom doing nothing and I'm between projects, I thought I'd have a shot at getting a standalone system up and running using a clean minimal fc13 image.

  koji-1.4.0-2.fc13.noarch
  postgresql-8.4.4-1.fc13.x86_64
  httpd-2.2.16-1.fc13.x86_64
  mock-1.1.3-1.fc13.noarch

I've a fairly large chain of scripts that automatically sets up the initial system, ie the users, the postgresql schema's (and upgrades), the ssl configs, certificate files, the config file changes, firewall changes, preloading the repo's and other tweaks so that I can easily trash the system and rebuild it from scratch without getting mired in the lengthy set-up procedure and that has worked fine for fc11/fc12

In fc13, when koji starts creating the FS structures for the chroot under /var/lib/mock, it will attempt to create a /var/cache/mock/<tag-X-Y>/filesystems file which it can't do since /var/cache/mock/<tag-X-Y> was never created. The cheap way out of that is to set config_opts['cache_topdir'] = '/var/lib/mock' instead of /var/cache/mock. That option didn't need fiddling with in fc12 so I'm unsure if this was a change in koji's code base or something unrelated.

The following is the product of being unable to email a notification because it can't connect to the mail host... I can think of dozens of reasons why this could occur but it may be better to stick in an exception to queue them up internally for retry or at least spit out 'Hey! I can't talk to your mailhost!" and fail the BuildNotify task
Traceback (most recent call last):
  File "/usr/sbin/kojid", line 1437, in runTask
    response = (handler.run(),)
  File "/usr/sbin/kojid", line 1513, in run
    return self.handler(*self.params,**self.opts)
  File "/usr/sbin/kojid", line 3651, in handler
    server = smtplib.SMTP(options.smtphost)
  File "/usr/lib64/python2.6/smtplib.py", line 239, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib64/python2.6/smtplib.py", line 295, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib64/python2.6/smtplib.py", line 273, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "/usr/lib64/python2.6/socket.py", line 514, in create_connection
    raise error, msg
error: [Errno 111] Connection refused

The main problem I keep hitting, is mainly with noarch packages.
   BuildError: error building package (arch noarch), mock exited with status 1; see build.log for more information
however when I go to look all I see in the log is the single line
  Mock Version: 1.1.3
The root.log doesn't show anything interesting either

however if I manually poke the rpm through with mock, it works.
ie
  [root@whitebishop ~]# mock -r koji/el5-ga-build-9-44 --rebuild ~/buildsys-macros-5-2.ovs.src.rpm

  [root@whitebishop ~]# ls -l  /var/lib/mock/el5-ga-build-9-44/result
  total 48
  -rw-rw-r--. 1 root mock  2593 Aug 19 11:57 build.log
  -rw-r--r--. 1 root mock  2283 Aug 19 11:57 buildsys-macros-5-2.ovs.noarch.rpm
  -rw-r--r--. 1 root mock  2147 Aug 19 11:57 buildsys-macros-5-2.ovs.src.rpm
  -rw-rw-r--. 1 root mock 32152 Aug 19 11:57 root.log
  -rw-rw-r--. 1 root mock   193 Aug 19 11:57 state.log

  [root@whitebishop ~]# cat   /var/lib/mock/el5-ga-build-9-44/result/build.log
  Mock Version: 1.1.3
  ENTER do(['bash', '--login', '-c', 'rpmbuild -bs --target i386 --nodeps builddir/build/SPECS/buildsys-macros.spec'], False, '/var/lib/mock/el5-ga-build-9-44/root/', None, 86400, True, 0, 0, 484, None, logger=<mock.trace_decorator.getLog object at 0x1f2abd0>)
  Executing command: ['bash', '--login', '-c', 'rpmbuild -bs --target i386 --nodeps builddir/build/SPECS/buildsys-macros.spec']
  warning: Could not canonicalize hostname: whitebishop
  Building target platforms: i386
  Building for target i386
  Wrote: /builddir/build/SRPMS/buildsys-macros-5-2.ovs.src.rpm
  Child returncode was: 0
  LEAVE do -->


I can't reason out why there would be any difference unless it's passing --arch noarch.. in which case
  [root@whitebishop ~]# mock -r koji/el5-ga-build-9-44 --arch noarch --rebuild ~/buildsys-macros-5-2.ovs.src.rpm
  ERROR: Cannot build target noarch on arch x86_64

But then I'd expect to have the error line in the build.log which I don't... so I'm a bit flummoxed if this is what has happened or not.

Ideas?

Phil
=--=