I’m trying to get a new Koji deployment up and running atop Fedora 21.  I’m mostly there (I think).  I was able to “koji regen-repo …” but my first build attempts were failing due to not having the useradd tool in the build root, despite this:

 

koji list-groups dist-fedora21-build

build  [dist-fedora21-build]

  bash: None, default  [dist-fedora21-build]

  bzip2: None, default  [dist-fedora21-build]

  coreutils: None, default  [dist-fedora21-build]

  cpio: None, default  [dist-fedora21-build]

  diffutils: None, default  [dist-fedora21-build]

  fedora-release: None, default  [dist-fedora21-build]

  findutils: None, default  [dist-fedora21-build]

  gawk: None, default  [dist-fedora21-build]

  gcc: None, default  [dist-fedora21-build]

  gcc-c++: None, default  [dist-fedora21-build]

  grep: None, default  [dist-fedora21-build]

  gzip: None, default  [dist-fedora21-build]

  info: None, default  [dist-fedora21-build]

  make: None, default  [dist-fedora21-build]

  patch: None, default  [dist-fedora21-build]

  redhat-rpm-config: None, default  [dist-fedora21-build]

  rpm-build: None, default  [dist-fedora21-build]

  sed: None, default  [dist-fedora21-build]

  shadow-utils: None, default  [dist-fedora21-build]

  tar: None, default  [dist-fedora21-build]

  unzip: None, default  [dist-fedora21-build]

  util-linux: None, default  [dist-fedora21-build]

  which: None, default  [dist-fedora21-build]

  xz: None, default  [dist-fedora21-build]

srpm-build  [dist-fedora21-build]

  bash: None, default  [dist-fedora21-build]

  curl: None, default  [dist-fedora21-build]

  cvs: None, default  [dist-fedora21-build]

  fedora-release: None, default  [dist-fedora21-build]

  fedpkg-minimal: None, default  [dist-fedora21-build]

  gnupg2: None, default  [dist-fedora21-build]

  make: None, default  [dist-fedora21-build]

  redhat-rpm-config: None, default  [dist-fedora21-build]

  rpm-build: None, default  [dist-fedora21-build]

  shadow-utils: None, default  [dist-fedora21-build

 

I thus reasoned this is because yum has no idea where to get shadow-utils from which I could rectify by setting up an external-repo pointing to our local mirror of the Fedora 21 repo.  Keeping it simple, I ignored updates and stuck to the base release repo only for the moment.  With the ext. repo added, I tried the regen-repo command again and now I see from the mergerepos.log:

 

$ /usr/libexec/kojid/mergerepos -a x86_64 -b /mnt/koji/repos/dist-fedora21-build/20/x86_64/blocklist -o /var/tmp/koji/tasks/66/66/repo -g /mnt/koji/repos/dist-fedora21-build/20/groups/comps.xml -r file:///var/tmp/koji/tasks/66/66/repo_20_premerge/ -r http://mdct-00fs.dartcontainer.com/ftp/pub/fedora/21/Everything/x86_64/os/

JF: Set self.yumbase.conf.cachedir: /tmp/tmpyXkTJb

Adding repo: file:///var/tmp/koji/tasks/66/66/repo_20_premerge/

Adding repo: http://mdct-00fs.dartcontainer.com/ftp/pub/fedora/21/Everything/x86_64/os/

JF: Writing origins: /tmp/tmpyXkTJb/pkgorigins

Traceback (most recent call last):

  File "/usr/libexec/kojid/mergerepos", line 278, in <module>

    main(sys.argv[1:])

  File "/usr/libexec/kojid/mergerepos", line 272, in main

    merge.merge_repos()

  File "/usr/libexec/kojid/mergerepos", line 162, in merge_repos

    self.sort_and_filter()

  File "/usr/libexec/kojid/mergerepos", line 232, in sort_and_filter

    origins.write('%s\t%s\n' % (pkg_nvra, repo.urls[0]))

IOError: [Errno 28] No space left on device

 

The lines prefixed “JF: “ are my own added messages since the original error didn’t provide any details about what device was full.  Looking at RepoMerge.__init__(),  I don’t see any configurable way to change where the cachedir is located and since /tmp is tmpfs this currently seems doomed.  Have I missed something or done something stupid or is this a bug?

 

--

John Florian