[PATCH] koji import-comps
by Michael Schwendt
> #for import-comps handler (currently disabled)
> #from rhpl.comps import Comps
I've ported this to FC6 yum.comps to make it work for the buildroot list,
but it's only rudimentary, because I didn't find anything about the
"biarchonly" attribute. The "basearchonly" attribute, on the other hand,
is not evaluated by yum.comps. Plus, I couldn't find any groupreq and
metapkg support in yum.comps either.
16 years, 11 months
[PATCH koji] Set proper permissions (0666) when creating files
by Enrico Scholz
Currently, os.open() is used without specifying the third argument.
Hence, all files will be created with 0777 perms (minus umask).
Because only datafiles will be uploaded, the exec-bit should be removed.
Signed-off-by: Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de>
---
builder/kojid | 2 +-
hub/kojihub.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/builder/kojid b/builder/kojid
index 6243edd..9a82c60 100755
--- a/builder/kojid
+++ b/builder/kojid
@@ -109,7 +109,7 @@ def log_output(path, args, outfile, uploadpath, cwd=None, logerror=0, append=0,
flags = os.O_CREAT | os.O_WRONLY
if append:
flags |= os.O_APPEND
- fd = os.open(outfile, flags)
+ fd = os.open(outfile, flags, 0666)
os.dup2(fd, 1)
if logerror:
os.dup2(fd, 2)
diff --git a/hub/kojihub.py b/hub/kojihub.py
index a3bbe5f..03cb76f 100644
--- a/hub/kojihub.py
+++ b/hub/kojihub.py
@@ -3958,7 +3958,7 @@ class RootExports(object):
# elif offset == 0:
# #first chunk, so file should not exist yet
# raise koji.GenericError, "file already exists: %s" % fn
- fd = os.open(fn, os.O_RDWR | os.O_CREAT)
+ fd = os.open(fn, os.O_RDWR | os.O_CREAT, 0666)
# log_error("fd=%r" %fd)
try:
if offset == 0 or (offset == -1 and size == len(contents)):
16 years, 11 months
[PATCH mock] Enhancements of the config_opts['macros'] handling
by Enrico Scholz
This patch allows filling of ~/.rpmmacros by using dictionaries or
lists instead of a single strings. You can write e.g.
| config_opts['macros'] = [
| config_opts['macros'],
| {
| '%dist' : 'foo',
| '%packager' : 'bar'
| }]
This adds old/predefined macros first and then new '%dist' and
'%packager' ones.
For backward compatibility strings are still supported; to retain a
certain order of macros, they can be specified as tuples or lists too.
Signed-off-by: Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de>
---
mock.py | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/mock.py b/mock.py
index e20dbf0..573bb6e 100644
--- a/mock.py
+++ b/mock.py
@@ -767,6 +767,19 @@ class Root:
self.homedir, self.config['chrootuser'])
self.do_chroot(cmd, fatal = True)
+ def _expand_macro_string(self, macros):
+ res = []
+ if isinstance(macros, dict):
+ for (key,v) in macros.items():
+ res.append('%s\t%s' % (key,v))
+ elif isinstance(macros, basestring):
+ res = [macros]
+ else:
+ for v in macros:
+ res.append(self._expand_macro_string(v))
+
+ return '\n'.join(res) + '\n'
+
def _build_dir_setup(self):
# purge the builddir, if it exists
bd_out = '%s%s' % (self.rootdir, self.builddir)
@@ -788,8 +801,12 @@ class Root:
macrofile_out = '%s%s/.rpmmacros' % (self.rootdir, self.homedir)
if not os.path.exists(macrofile_out):
rpmmacros = open(macrofile_out, 'w')
- self.config['macros'] = self.config['macros'] + "\n%%_rpmlock_path %s/var/lib/rpm/__db.000" % self.basedir
- rpmmacros.write(self.config['macros'])
+
+ rpmmacros.write(self._expand_macro_string(self.config['macros']))
+ rpmmacros.write(self._expand_macro_string(
+ {"%_rpmlock_path" : "%s/var/lib/rpm/__db.000" % self.basedir}
+ ))
+
rpmmacros.close()
16 years, 11 months
[PATCH koji] Allow untracked packages in the buildroot
by Enrico Scholz
When using koji to build a local repository, it is often unwanted to
import the >4000 packages of Fedora 6/7. Although direct support for this
mode is missing, it is easy to add it (e.g. I use a wrapper around mock
which generates a new configuration with additional repositories).
Unfortunately, koji will refuse to build packages because buildroot
contains untracked packages. This patch makes koji ignore such packages.
Signed-off-by: Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de>
---
hub/kojihub.py | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/hub/kojihub.py b/hub/kojihub.py
index 2830ad1..a3bbe5f 100644
--- a/hub/kojihub.py
+++ b/hub/kojihub.py
@@ -5565,7 +5565,12 @@ class BuildRoot(object):
VALUES (%(brootid)s,%(rpm_id)s,%(update)s)"""
rpm_ids = []
for an_rpm in rpmlist:
- rpm_id = get_rpm(an_rpm, strict=True)['id']
+ rpm_id = get_rpm(an_rpm, strict=False)
+ if rpm_id == None:
+ #ignore unknown packages (e.g. from untracked repositories)
+ continue
+
+ rpm_id = rpm_id['id']
if update and current.has_key(rpm_id):
#ignore duplicate packages for updates
continue
--
1.5.0.6
16 years, 11 months
[PATCH mock] bind-mount the /var/lib/rpm from the chroot into the root directory
by Enrico Scholz
This patch should not be needed when rpm would work properly... There was
already a try to fix this but setting '%_rpmlock_path'. But this never
worked because these macros will not be evaluated at 'yum install' time.
Last hunk requires the "Enhancements of the config_opts['macros'] handling"
patch.
Signed-off-by: Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de>
---
mock.py | 10 +++-------
1 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/mock.py b/mock.py
index 6061907..df05920 100644
--- a/mock.py
+++ b/mock.py
@@ -502,6 +502,9 @@ class Root:
self._mount('none --bind -o ro', self.config['dev-template'], 'dev')
self._mount('none --bind', os.path.join(self.statedir, 'rpm'), '/etc/rpm')
+ # provide our view of /var/lib/rpm
+ self._mount('none --bind', os.path.join(self.rootdir, 'var/lib/rpm'), '/var/lib/rpm')
+
# mount /dev/pts
self._mount('devpts', 'dev/pts', 'dev/pts')
@@ -834,14 +837,7 @@ class Root:
macrofile_out = '%s%s/.rpmmacros' % (self.rootdir, self.homedir)
if not os.path.exists(macrofile_out):
rpmmacros = open(macrofile_out, 'w')
-
rpmmacros.write(self._expand_macro_string(self.config['macros']))
- rpmmacros.write(self._expand_macro_string(
- {"%_rpmlock_path" : "%s/var/lib/rpm/__db.000" % self.basedir}
- ))
-
- rpmmacros.close()
-
def _prep_build(self):
"""prep the chroot for building packages"""
16 years, 11 months
[PATCH mock] Bind-mount a precreated /dev filesystem instead of using mknod(2)
by Enrico Scholz
This patch adds a 'dev-template' configuration options which points to a
directory with a preconfigured /dev directory. This makes it possible to
use mock in environments where 'mknod(2)' operations are prohibited (e.g.
in vservers).
Usually, this directory is a mounted read-only and e.g. a cramfs. The
'create-template.sh' script will create such a cramfs image which must be
added to the host's /etc/fstab e.g. as
| /usr/share/mock/mock-dev.ramfs /usr/share/mock/dev-template cramfs dev
and added to mock configuration as
| config_opts['dev-template'] = '/usr/share/mock/dev-template'
The changes in the spec file are suggestions only and the cramfs image
can not be created during the normal build because it requires superuser
capabilities.
Signed-off-by: Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de>
---
Makefile | 2 ++
create-template.sh | 29 ++++++++++++++++++++++
mock-dev.ramfs | Bin
mock.py | 69 +++++++++++++++++++++++++++++-----------------------
mock.spec | 16 ++++++++++++
5 files changed, 85 insertions(+), 31 deletions(-)
diff --git a/Makefile b/Makefile
index bee4ad4..a2a5d0b 100644
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,8 @@ subdirs:
install:
install -D mock.py $(DESTDIR)/usr/libexec/mock.py
install -D mock-yum $(DESTDIR)/usr/libexec/mock-yum
+ install -D -m644 mock-dev.ramfs $(DESTDIR)/usr/share/mock/mock-dev.ramfs
+ install -d -m755 $(DESTDIR)/usr/share/mock/dev-template
mkdir -p $(DESTDIR)/var/lib/mock
for d in $(SUBDIRS); do make DESTDIR=`cd $(DESTDIR); pwd` -C $$d install; [ $$? = 0 ] || exit 1; done
diff --git a/create-template.sh b/create-template.sh
new file mode 100755
index 0000000..75e2529
--- /dev/null
+++ b/create-template.sh
@@ -0,0 +1,29 @@
+#! /bin/bash
+
+MKNOD=mknod
+MKCRAMFS=/sbin/mkfs.cramfs
+
+set -e
+
+d=$(mktemp -t -d mockdev.XXXXXX)
+trap "rm -rf $d" EXIT
+
+dev=$d/dev
+mkdir -p $dev
+
+$MKNOD -m666 $dev/null c 1 3
+$MKNOD -m644 $dev/urandom c 1 9
+$MKNOD -m644 $dev/random c 1 8
+$MKNOD -m666 $dev/full c 1 7
+$MKNOD -m666 $dev/ptmx c 5 2
+$MKNOD -m666 $dev/tty c 5 0
+$MKNOD -m666 $dev/zero c 1 5
+
+ln -s /proc/self/fd $dev/fd
+ln -s /proc/self/fd/0 $dev/stdin
+ln -s /proc/self/fd/1 $dev/stdout
+ln -s /proc/self/fd/2 $dev/stderr
+
+mkdir $dev/pts
+
+$MKCRAMFS $dev "$1"
diff --git a/mock-dev.ramfs b/mock-dev.ramfs
new file mode 100644
index 0000000..03851ca
Binary files /dev/null and b/mock-dev.ramfs differ
diff --git a/mock.py b/mock.py
index b06156c..3762324 100644
--- a/mock.py
+++ b/mock.py
@@ -497,6 +497,10 @@ class Root:
# mount /proc
self._mount('proc', 'proc', 'proc')
+ # mount /dev
+ if self.config.get('dev-template'):
+ self._mount('none --bind -o ro', self.config['dev-template'], 'dev')
+
# mount /dev/pts
self._mount('devpts', 'dev/pts', 'dev/pts')
@@ -536,7 +540,38 @@ class Root:
# poof, no more file
if os.path.exists(mf):
os.unlink(mf)
+
+ def __mknodall(self):
+ # we need stuff
+ devices = [('null', 'c', '1', '3', '666'),
+ ('urandom', 'c', '1', '9', '644'),
+ ('random', 'c', '1', '9', '644'),
+ ('full', 'c', '1', '7', '666'),
+ ('ptmx', 'c', '5', '2', '666'),
+ ('tty', 'c', '5', '0', '666'),
+ ('zero', 'c', '1', '5', '666')]
+
+ for (dev, devtype, major, minor, perm) in devices:
+ devpath = os.path.join(self.rootdir, 'dev', dev)
+ cmd = '%s %s -m %s %s %s %s' % (self.config['mknod'],
+ devpath, perm, devtype, major, minor)
+ if not os.path.exists(devpath):
+ (retval, output) = self.do_elevated(cmd)
+ if retval != 0:
+ raise RootError, "could not mknod error was: %s" % output
+
+ # link fd to ../proc/self/fd
+ devpath = os.path.join(self.rootdir, 'dev/fd')
+ if not os.path.exists(devpath):
+ os.symlink('../proc/self/fd', devpath)
+ fd = 0
+ for item in ('stdin', 'stdout', 'stderr'):
+ devpath = os.path.join(self.rootdir, 'dev', item)
+ if not os.path.exists(devpath):
+ fdpath = os.path.join('../proc/self/fd', str(fd))
+ os.symlink(fdpath, devpath)
+ fd += 1
def do(self, command):
"""execute given command outside of chroot"""
@@ -679,39 +714,11 @@ class Root:
os.path.join(self.rootdir, 'var/tmp'),
os.path.join(self.rootdir, 'etc/yum.repos.d')]:
self._ensure_dir(item)
-
- self._mountall()
- # we need stuff
- devices = [('null', 'c', '1', '3', '666'),
- ('urandom', 'c', '1', '9', '644'),
- ('random', 'c', '1', '9', '644'),
- ('full', 'c', '1', '7', '666'),
- ('ptmx', 'c', '5', '2', '666'),
- ('tty', 'c', '5', '0', '666'),
- ('zero', 'c', '1', '5', '666')]
-
- for (dev, devtype, major, minor, perm) in devices:
- devpath = os.path.join(self.rootdir, 'dev', dev)
- cmd = '%s %s -m %s %s %s %s' % (self.config['mknod'],
- devpath, perm, devtype, major, minor)
- if not os.path.exists(devpath):
- (retval, output) = self.do_elevated(cmd)
- if retval != 0:
- raise RootError, "could not mknod error was: %s" % output
+ self._mountall()
- # link fd to ../proc/self/fd
- devpath = os.path.join(self.rootdir, 'dev/fd')
- if not os.path.exists(devpath):
- os.symlink('../proc/self/fd', devpath)
-
- fd = 0
- for item in ('stdin', 'stdout', 'stderr'):
- devpath = os.path.join(self.rootdir, 'dev', item)
- if not os.path.exists(devpath):
- fdpath = os.path.join('../proc/self/fd', str(fd))
- os.symlink(fdpath, devpath)
- fd += 1
+ if not self.config.get('dev-template'):
+ self.__mknodall()
for item in [os.path.join(self.rootdir, 'etc', 'mtab'),
os.path.join(self.rootdir, 'etc', 'fstab'),
diff --git a/mock.spec b/mock.spec
index db59881..309e290 100644
--- a/mock.spec
+++ b/mock.spec
@@ -33,6 +33,7 @@ if [ -f fedora-%{fedora}-%{_target_cpu}-core.cfg ]; then
fi
%endif
+
# if we haven't created a default link yet, try to do so as devel
if [ ! -f default.cfg ]; then
if [ -f fedora-development-%{_target_cpu}-core.cfg ]; then
@@ -54,6 +55,12 @@ if [ $1 -eq 1 ]; then
groupadd -r mock >/dev/null 2>&1 || :
fi
+%post
+mkdir -p -m0755 %_datadir/mock/dev-template
+
+%preun
+test $1 != 0 || rmdir %_datadir/mock/dev-template || :
+
%files
%defattr(-, root, root)
%doc README ChangeLog buildsys-build.spec
@@ -65,6 +72,15 @@ fi
%attr(02775, root, mock) %dir /var/lib/mock
%{_libdir}/libselinux-mock.so
+# Do not ship the dev-template directory; it might be mounted during
+# upgrades which will cpio errors. Adding it to %%_netsharedpath is a
+# solution but requires manual editing of /etc/rpm/macros.
+#
+# Hence, create and remove this directory in scriptlets
+%dir %_datadir/mock
+%dir %_datadir/mock/*.ramfs
+%ghost %dir %_datadir/mock/dev-template
+
%changelog
* Mon Jan 8 2007 Clark Williams <williams(a)redhat.com>
- Added Josh Boyer's EPEL config files
16 years, 11 months
[PATCH mock] Fixup of *pack() methods
by Enrico Scholz
Cache operations do not seem to work and use deprecated options; e.g.
| DEBUG: Executing tar -zlcf /var/lib/mock/root-cache/fedora-development-i386-core.tar.gz root
| tar: Semantics of -l option will change in the future releases.
| tar: Please use --one-file-system option instead.
| tar: root: Cannot stat: No such file or directory
| tar: Error exit delayed from previous errors
This patch fixes caching operations and enhances them in some aspects
(e.g. do not cache downloaded packages).
Signed-off-by: Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de>
---
mock.py | 49 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/mock.py b/mock.py
index 573bb6e..3762324 100644
--- a/mock.py
+++ b/mock.py
@@ -239,15 +239,29 @@ class Root:
else:
return self._state
- def unpack(self):
- self.state('unpack_cache')
+ def __get_tar_compress_opts(self):
if self.cache_file.find(".bz2") != -1:
- opts = "-jxpf"
+ return ["-j",]
elif self.cache_file.find(".gz") != -1:
- opts = "-zxpf"
+ return ["-z",]
else:
- opts = "-xpf"
- cmd = '%s %s %s %s' % (self.config['unpack_cmd'], opts, self.basedir, self.cache_file)
+ return []
+
+ def unpack(self):
+ self.state('unpack_cache')
+
+ opts=self.__get_tar_compress_opts()
+ opts.extend([
+ '-xpf',
+ self.cache_file,
+ '-C',
+ self.basedir])
+
+ # the quoting by map(...) is hacky; it would be better to use
+ # correct datatypes for the do*() methods
+ cmd = '%s %s' % (self.config['unpack_cmd'],
+ ' '.join(map(lambda x: '"%s"' % x, opts)))
+
self.debug("unpacking cache: %s" % cmd)
(retval, output) = self.do_elevated(cmd)
return retval
@@ -255,13 +269,22 @@ class Root:
def pack(self):
self.state('create_cache')
self._ensure_dir(os.path.join(self.config['basedir'], self.config['cache_topdir']))
- if self.cache_file.find(".bz2") != -1:
- opts = "-jlcf"
- elif self.cache_file.find(".gz") != -1:
- opts = "-zlcf"
- else:
- opts = "-clf"
- cmd = '%s %s %s root' % (self.config['pack_cmd'], opts, self.cache_file)
+
+ opts=self.__get_tar_compress_opts()
+ opts.extend([
+ '-cf',
+ self.cache_file,
+ '--one-file-system',
+ '--exclude=__db*',
+ '--exclude=root/var/cache/yum/*/headers',
+ '--exclude=root/var/cache/yum/*/packages',
+ 'root'
+ ])
+
+ cmd = 'cd "%s" && %s %s' % (self.basedir,
+ self.config['pack_cmd'],
+ ' '.join(map(lambda x: '"%s"' % x, opts)))
+
self.debug("creating cache: %s" % cmd)
(retval, output) = self.do_elevated(cmd)
return retval
16 years, 11 months
[PATCH koji] Made 'mockpath' configurable for kojid
by Enrico Scholz
Trying to set 'mockpath' in the configuration file results into an
| unknown config option: mockpath
error.
Signed-off-by: Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de>
---
builder/kojid | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/builder/kojid b/builder/kojid
index 7a66bfc..6243edd 100755
--- a/builder/kojid
+++ b/builder/kojid
@@ -338,7 +338,7 @@ class BuildRoot(object):
def mock(self, args, skip_setarch=False):
"""Run mock"""
global options
- mockpath = getattr(options,"mockpath","/usr/bin/mock")
+ mockpath = getattr(options,"mockpath")
cmd = [mockpath, "-r", self.mockcfg]
if not skip_setarch:
if self.br_arch.startswith('sparc64'):
@@ -2366,6 +2366,7 @@ def get_options():
'workdir': '/tmp/koji',
'mockdir': '/var/lib/mock',
'mockuser': 'kojibuilder',
+ 'mockpath': '/usr/bin/mock',
'packager': 'Koji',
'vendor': 'Koji',
'mockhost': 'koji-linux-gnu',
--
1.5.0.6
16 years, 11 months
Errors F7 updated today and pungi
by Phil Meyer
This is a fresh install of F7.
Updated this morning. Ran a test of the default minimal. All went
well. Added custom files, and -- this is what I got. Very un-obvious
where my mistake is.
The intent was to roll a developer desktop including some things from
livna as well as a bunch of development tools. The list of added
packages is from my FC6 installs that are used for developers here at
work. This is not a 'for public consumption' distro. I am not
distributing ...
The FC6 pungi worked mostly, but I am following some issues in pungi
that are only available on F7, so that is why I am trying to move my
build system to F7.
A build of FC6 on this system today produced the exact same errors, so I
reproduced it from all F7 sources.
Copied:
comps-f7.xml from F-6.93-i386-DVD.iso to /etc/pungi.
Added:
/etc/pungi-developer.conf
% cat pungi-developer.conf
[default]
product_name = Fedora ; The name used during install
product_path = Fedora ; The directory where RPMS go
iso_basename = F ; The first part of the iso file name
bugurl = http://bugzilla.redhat.com ; Used for betanag
comps = /etc/pungi/comps-f7.xml ; Used to define package groupings and
default installs
manifest = /etc/pungi/developer-manifest ; Used to determine what to
bring in. Supports Kickstart syntax
yumconf = /etc/pungi/yum.conf.i386 ; Used to determine where to gather
packages from
destdir = /srv/pungi/Developer ; Top level compose directory, must be clean
cachedir = /srv/pungi/cache ; Cache used for repeat runs
arch = i386 ; What arch to compose (must be same arch as system)
version = F7 ; Used both in install and part of the dest tree
flavor = Custom ; Further define a given cut of the package set
discs = 6 ; Number of discs needed to fit data.
#cdsize = 4608.0 ; Not used if disc count is 1
getsource = No ; Used to determine if we want source packages or not
Added:
/etc/developer-manifest
% cat developer-manifest
aalib
anaconda
anaconda-runtime
apr-devel
apr-util-devel
aquamarine
autossh
beryl
beryl-core-devel
beryl-dbus
beryl-gnome
beryl-kde
beryl-manager
beryl-plugins
beryl-settings
beryl-settings-simple
bind-utils
busybox-anaconda
cdrdao
compat-gcc-34
compat-gcc-34-c++
divx4linux
expect
expect-devel
faad2
flash-plugin
gkrellm
gkrellm-hddtemp
gkrellmms
gkrellm-themes
gkrellm-wireless
gnome-libs-devel
graphviz
gstreamer
gstreamer-devel
gstreamer-ffmpeg
gstreamer-plugins-base
gstreamer-plugins-base-devel
gstreamer-plugins-farsight
gstreamer-plugins-good
gstreamer-plugins-good-devel
gstreamer-plugins-pulse
gstreamer-plugins-ugly
gstreamer-plugins-ugly-devel
gstreamer-python
gstreamer-tools
gtweakui
heliodor
httpd-devel
id3lib
id3lib-devel
imlib
Installing
ipw2200-firmware
jedit
julie
k3b
k3b-extras
k3b-extras-nonfree
kawa
kawa-javadoc
kdemultimedia-extras
kdewebdev
kdewebdev-devel
kernel-devel
kmymoney2
kmymoney2-devel
lame
lame-mp3x
libc-client
libdvdcss
libdvdcss-devel
libdvdnav
libdvdnav-devel
libdvdplay
libdvdplay-devel
libdvdread
libdvdread-devel
libfame
libmad
libmad-devel
libpostproc
libtool-ltdl-devel
lzo
mplayer
mplayer-fonts
mplayer-gui
mplayer-mencoder
mrtg
msttcorefonts
mysql-devel
nautilus-open-terminal
phil
php
php-cli
php-common
php-imap
php-mysql
php-pdo
php-pear
pungi
radvd
rpmdevtools
rpmlint
sharutils
tcl
tidy
tk
tomcat5-admin-webapps
transcode
usbutils
xine
xine-lib
xine-lib-devel
xine-lib-extras
xine-lib-extras-nonfree
xmms
xmms-flac
xmms-mp3
xmms-skins
xvidcore
Some of these come from livna. Livna is enabled.
Linked yum.conf.i386 to /etc/yum.conf to enable all enabled repos.
ran:
% sudo pungi -c /etc/pungi/pungi-developer.conf --all-stages
Traceback (most recent call last):
File "/usr/bin/pungi", line 183, in <module>
main()
File "/usr/bin/pungi", line 115, in main
mypungi.doPackageorder()
File "/usr/lib/python2.5/site-packages/pypungi/pungi.py", line 146, in
doPackageorder
self._doRunCommand(pkgorder, output=pkgorderfile)
File "/usr/lib/python2.5/site-packages/pypungi/pungi.py", line 77, in
_doRunCommand
raise OSError, "Got an error from %s" % command[0]
OSError: Got an error from /usr/lib/anaconda-runtime/pkgorder
End of logfile shows:
INFO:pypungi.pungi:Running /usr/lib/anaconda-runtime/pkgorder
/srv/pungi/Developer/FC6/Custom/i386/os i386 Fedora
ERROR:pypungi.pungi:Got an error from /usr/lib/anaconda-runtime/pkgorder
ERROR:pypungi.pungi:Traceback (most recent call last):
File "/usr/lib/anaconda-runtime/pkgorder", line 169, in <module>
addGroups(ds, ["core", "base", "text-internet"])
File "/usr/lib/anaconda-runtime/pkgorder", line 103, in addGroups
map(ds.selectGroup, filter(lambda x: ds.comps.has_group(x), groupLst))
File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 1448, in
selectGroup
txmbrs = self.install(name = pkg)
File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 1800, in
install
tx_return.extend(self.tsInfo.getMembers(pkgtup=po.pkgtup))
File "/usr/lib/anaconda/sortedtransaction.py", line 33, in getMembers
return TransactionData.getMembers(self, pkgtup, output_states)
TypeError: getMembers() takes at most 2 arguments (3 given)
16 years, 12 months