diff options
author | Clark Williams <williams@redhat.com> | 2009-02-01 09:13:35 -0600 |
---|---|---|
committer | Clark Williams <williams@redhat.com> | 2009-02-01 09:13:35 -0600 |
commit | 43b9b5a58bc1533c245202bde51e8f091d25b440 (patch) | |
tree | 4678d068e72fafa325e39935e5823eeb0ed4b2af | |
parent | 9eb2dc48fb1097416a42fe4835274b9c4d8a9ad9 (diff) | |
parent | fd41e6e363e0a08ba1f71670ad9a1206b7982ed0 (diff) | |
download | mock-43b9b5a58bc1533c245202bde51e8f091d25b440.tar.gz mock-43b9b5a58bc1533c245202bde51e8f091d25b440.tar.xz mock-43b9b5a58bc1533c245202bde51e8f091d25b440.zip |
Merge branch 'master' into clark
-rw-r--r-- | .gitignore | 14 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | etc/mock/epel-5-i386.cfg | 3 | ||||
-rw-r--r-- | etc/mock/epel-5-ppc.cfg | 3 | ||||
-rw-r--r-- | etc/mock/epel-5-x86_64.cfg | 3 | ||||
-rw-r--r-- | etc/mock/fedora-10-s390x.cfg | 37 | ||||
-rw-r--r-- | etc/mock/fedora-10-sparc.cfg | 39 | ||||
-rw-r--r-- | etc/mock/fedora-10-sparc64.cfg | 37 | ||||
-rw-r--r-- | etc/mock/fedora-9-s390x.cfg | 37 | ||||
-rw-r--r-- | etc/mock/fedora-9-sparc.cfg | 39 | ||||
-rw-r--r-- | etc/mock/fedora-9-sparc64.cfg | 37 | ||||
-rw-r--r-- | etc/mock/fedora-rawhide-s390x.cfg | 29 | ||||
-rw-r--r-- | etc/mock/fedora-rawhide-sparc.cfg | 31 | ||||
-rw-r--r-- | etc/mock/fedora-rawhide-sparc64.cfg | 29 | ||||
-rw-r--r-- | etc/mock/site-defaults.cfg | 4 | ||||
-rw-r--r-- | mock.spec.in | 4 | ||||
-rwxr-xr-x | py/mock.py | 10 | ||||
-rw-r--r-- | py/mock/backend.py | 7 | ||||
-rw-r--r-- | py/mock/exception.py | 14 | ||||
-rw-r--r-- | py/mock/util.py | 1 |
20 files changed, 365 insertions, 17 deletions
@@ -3,3 +3,17 @@ dist \#* .\#* *~ +*.py[co] +*.rpm +AUTHORS +ChangeLog +Makefile +Makefile.in +aclocal.m4 +autom4te.cache +build +config.log +config.status +configure +mock.spec +noarch diff --git a/Makefile.am b/Makefile.am index aefcad8..4fe1e7d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -58,10 +58,10 @@ CLEANFILES += py/*.pyc py/mock/*.pyc py/mock/plugins/*.pyc dist: ChangeLog AUTHORS ChangeLog: - (GIT_DIR=.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) + (GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) AUTHORS: - (GIT_DIR=.git git-log | grep ^Author | sort |uniq > .authors.tmp && mv .authors.tmp AUTHORS; rm -f .authors.tmp) || (touch AUTHORS; echo 'git directory not found: installing possibly empty AUTHORS.' >&2) + (GIT_DIR=.git git log | grep ^Author | sort |uniq > .authors.tmp && mv .authors.tmp AUTHORS; rm -f .authors.tmp) || (touch AUTHORS; echo 'git directory not found: installing possibly empty AUTHORS.' >&2) REPLACE_VARS_ON_INSTALL=$(sbindir)/mock.py install-exec-hook: diff --git a/etc/mock/epel-5-i386.cfg b/etc/mock/epel-5-i386.cfg index 30c66ee..9b9b6ef 100644 --- a/etc/mock/epel-5-i386.cfg +++ b/etc/mock/epel-5-i386.cfg @@ -3,9 +3,6 @@ config_opts['target_arch'] = 'i386' config_opts['chroot_setup_cmd'] = 'install buildsys-build' config_opts['dist'] = 'el5' # only useful for --resultdir variable subst -# ccache not available on epel5 -config_opts['plugin_conf']['ccache_enable'] = False - config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum diff --git a/etc/mock/epel-5-ppc.cfg b/etc/mock/epel-5-ppc.cfg index b07d136..1bd72a7 100644 --- a/etc/mock/epel-5-ppc.cfg +++ b/etc/mock/epel-5-ppc.cfg @@ -3,9 +3,6 @@ config_opts['target_arch'] = 'ppc' config_opts['chroot_setup_cmd'] = 'install buildsys-build' config_opts['dist'] = 'el5' # only useful for --resultdir variable subst -# ccache not available on epel5 -config_opts['plugin_conf']['ccache_enable'] = False - config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum diff --git a/etc/mock/epel-5-x86_64.cfg b/etc/mock/epel-5-x86_64.cfg index d0a8cde..0fe89d4 100644 --- a/etc/mock/epel-5-x86_64.cfg +++ b/etc/mock/epel-5-x86_64.cfg @@ -3,9 +3,6 @@ config_opts['target_arch'] = 'x86_64' config_opts['chroot_setup_cmd'] = 'install buildsys-build' config_opts['dist'] = 'el5' # only useful for --resultdir variable subst -# ccache not available on epel5 -config_opts['plugin_conf']['ccache_enable'] = False - config_opts['yum.conf'] = """ [main] cachedir=/var/cache/yum diff --git a/etc/mock/fedora-10-s390x.cfg b/etc/mock/fedora-10-s390x.cfg new file mode 100644 index 0000000..576aaf2 --- /dev/null +++ b/etc/mock/fedora-10-s390x.cfg @@ -0,0 +1,37 @@ +config_opts['root'] = 'fedora-10-s390x'
+config_opts['target_arch'] = 's390x'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc10' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-10&arch=s390x
+failovermethod=priority
+
+[updates-released]
+name=updates
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f10&arch=s390x
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://s390.koji.fedoraproject.org/static-repos/dist-f10-build-current/s390x/
+cost=2000
+enabled=0
+"""
+
+
+
diff --git a/etc/mock/fedora-10-sparc.cfg b/etc/mock/fedora-10-sparc.cfg new file mode 100644 index 0000000..f71bc8c --- /dev/null +++ b/etc/mock/fedora-10-sparc.cfg @@ -0,0 +1,39 @@ +config_opts['root'] = 'fedora-10-sparc'
+config_opts['target_arch'] = 'sparcv9'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc10' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+#exclude=*.sparc64
+# The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora.
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-10&arch=sparc
+failovermethod=priority
+
+[updates-released]
+name=updates
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f10&arch=sparc
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://sparc.koji.fedoraproject.org/static-repos/dist-f10-build-current/sparc/
+cost=2000
+enabled=0
+"""
+
+
+
diff --git a/etc/mock/fedora-10-sparc64.cfg b/etc/mock/fedora-10-sparc64.cfg new file mode 100644 index 0000000..7a6af9d --- /dev/null +++ b/etc/mock/fedora-10-sparc64.cfg @@ -0,0 +1,37 @@ +config_opts['root'] = 'fedora-10-sparc64'
+config_opts['target_arch'] = 'sparc64'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc10' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-10&arch=sparc64
+failovermethod=priority
+
+[updates-released]
+name=updates
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f10&arch=sparc64
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://sparc.koji.fedoraproject.org/static-repos/dist-f10-build-current/sparc64/
+cost=2000
+enabled=0
+"""
+
+
+
diff --git a/etc/mock/fedora-9-s390x.cfg b/etc/mock/fedora-9-s390x.cfg new file mode 100644 index 0000000..85eb30b --- /dev/null +++ b/etc/mock/fedora-9-s390x.cfg @@ -0,0 +1,37 @@ +config_opts['root'] = 'fedora-9-s390x'
+config_opts['target_arch'] = 's390x'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc9' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-9&arch=s390x
+failovermethod=priority
+
+[updates-released]
+name=updates
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f9.newkey&arch=s390x
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://s390.koji.fedoraproject.org/static-repos/dist-f9-build-current/s390x/
+cost=2000
+enabled=0
+"""
+
+
+
diff --git a/etc/mock/fedora-9-sparc.cfg b/etc/mock/fedora-9-sparc.cfg new file mode 100644 index 0000000..a3be166 --- /dev/null +++ b/etc/mock/fedora-9-sparc.cfg @@ -0,0 +1,39 @@ +config_opts['root'] = 'fedora-9-sparc'
+config_opts['target_arch'] = 'sparcv9'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc9' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+#exclude=*.sparc64
+# The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora.
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-9&arch=sparc
+failovermethod=priority
+
+[updates-released]
+name=updates
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f9.newkey&arch=sparc
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://sparc.koji.fedoraproject.org/static-repos/dist-f9-build-current/sparc/
+cost=2000
+enabled=0
+"""
+
+
+
diff --git a/etc/mock/fedora-9-sparc64.cfg b/etc/mock/fedora-9-sparc64.cfg new file mode 100644 index 0000000..b7606aa --- /dev/null +++ b/etc/mock/fedora-9-sparc64.cfg @@ -0,0 +1,37 @@ +config_opts['root'] = 'fedora-9-sparc64'
+config_opts['target_arch'] = 'sparc64'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc9' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-9&arch=sparc64
+failovermethod=priority
+
+[updates-released]
+name=updates
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f9.newkey&arch=sparc64
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://sparc.koji.fedoraproject.org/static-repos/dist-f9-build-current/sparc64/
+cost=2000
+enabled=0
+"""
+
+
+
diff --git a/etc/mock/fedora-rawhide-s390x.cfg b/etc/mock/fedora-rawhide-s390x.cfg new file mode 100644 index 0000000..fd64134 --- /dev/null +++ b/etc/mock/fedora-rawhide-s390x.cfg @@ -0,0 +1,29 @@ +config_opts['root'] = 'fedora-rawhide-s390x'
+config_opts['target_arch'] = 's390x'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc11' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=s390x
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://s390.koji.fedoraproject.org/static-repos/dist-rawhide-current/s390x/
+cost=2000
+enabled=0
+"""
diff --git a/etc/mock/fedora-rawhide-sparc.cfg b/etc/mock/fedora-rawhide-sparc.cfg new file mode 100644 index 0000000..73770a4 --- /dev/null +++ b/etc/mock/fedora-rawhide-sparc.cfg @@ -0,0 +1,31 @@ +config_opts['root'] = 'fedora-rawhide-sparc'
+config_opts['target_arch'] = 'sparcv9'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc11' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+#exclude=*.sparc64
+# The above is not needed anymore with yum multilib policy of "best" which is the default in Fedora.
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=sparc
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://sparc.koji.fedoraproject.org/static-repos/dist-rawhide-current/sparc/
+cost=2000
+enabled=0
+"""
diff --git a/etc/mock/fedora-rawhide-sparc64.cfg b/etc/mock/fedora-rawhide-sparc64.cfg new file mode 100644 index 0000000..e3d85b1 --- /dev/null +++ b/etc/mock/fedora-rawhide-sparc64.cfg @@ -0,0 +1,29 @@ +config_opts['root'] = 'fedora-rawhide-sparc64'
+config_opts['target_arch'] = 'sparc64'
+config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
+config_opts['dist'] = 'fc11' # only useful for --resultdir variable subst
+
+config_opts['yum.conf'] = """
+[main]
+cachedir=/var/cache/yum
+debuglevel=1
+reposdir=/dev/null
+logfile=/var/log/yum.log
+retries=20
+obsoletes=1
+gpgcheck=0
+assumeyes=1
+
+# repos
+
+[fedora]
+name=fedora
+mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=sparc64
+failovermethod=priority
+
+[local]
+name=local
+baseurl=http://sparc.koji.fedoraproject.org/static-repos/dist-rawhide-current/sparc64/
+cost=2000
+enabled=0
+"""
diff --git a/etc/mock/site-defaults.cfg b/etc/mock/site-defaults.cfg index f47ebbf..92f5562 100644 --- a/etc/mock/site-defaults.cfg +++ b/etc/mock/site-defaults.cfg @@ -16,7 +16,9 @@ # Things that we recommend you set in defaults.cfg: # # config_opts['basedir'] = '/var/lib/mock/' -# config_opts['cache_topdir'] = '/var/lib/mock/cache' +# config_opts['cache_topdir'] = '/var/cache/mock' +# Note: the path pointed to by basedir and cache_topdir must be owned +# by group 'mock' and must have mode: g+rws # config_opts['rpmbuild_timeout'] = 0 # config_opts['use_host_resolv'] = True diff --git a/mock.spec.in b/mock.spec.in index 9264de4..e4bc0d0 100644 --- a/mock.spec.in +++ b/mock.spec.in @@ -42,6 +42,7 @@ make rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install mkdir -p $RPM_BUILD_ROOT/var/lib/mock +mkdir -p $RPM_BUILD_ROOT/var/cache/mock ln -s consolehelper $RPM_BUILD_ROOT/usr/bin/mock # compatibility symlinks @@ -92,6 +93,9 @@ fi # build dir %attr(02775, root, mock) %dir /var/lib/mock +# cache dir +%attr(02775, root, mock) %dir /var/cache/mock + %changelog * Thu Nov 06 2008 Jesse Keating <jkeating@redhat.com> - 0.9.13-1 - Add configs for F10 (jkeating) @@ -191,9 +191,10 @@ decorate(traceLog()) def setup_default_config_opts(config_opts, unprivUid): "sets up default configuration." # global - config_opts['basedir'] = '/var/lib/mock/' # root name is automatically added to this + config_opts['version'] = __VERSION__ + config_opts['basedir'] = '/var/lib/mock' # root name is automatically added to this config_opts['resultdir'] = '%(basedir)s/%(root)s/result' - config_opts['cache_topdir'] = '/var/lib/mock/cache' + config_opts['cache_topdir'] = '/var/cache/mock' config_opts['clean'] = True config_opts['chroothome'] = '/builddir' config_opts['log_config_file'] = 'logging.ini' @@ -652,6 +653,11 @@ if __name__ == '__main__': exitStatus = 7 log.error("Exiting on user interrupt, <CTRL>-C") + except (mock.exception.ResultDirNotAccessible,), exc: + exitStatus = exc.resultcode + log.error(str(exc)) + killOrphans = 0 + except (mock.exception.BadCmdline, mock.exception.BuildRootLocked), exc: exitStatus = exc.resultcode log.error(str(exc)) diff --git a/py/mock/backend.py b/py/mock/backend.py index 6cfd603..f259afe 100644 --- a/py/mock/backend.py +++ b/py/mock/backend.py @@ -31,6 +31,7 @@ class Root(object): self.preExistingDeps = "" self.logging_initialized = False self.buildrootLock = None + self.version = config['version'] self.sharedRootName = config['root'] if config.has_key('unique-ext'): @@ -169,8 +170,9 @@ class Root(object): self.uidManager.dropPrivsTemp() try: mock.util.mkdirIfAbsent(self.resultdir) - except OSError: - pass + except (OSError,), e: + if e.errno == 13: + raise mock.exception.ResultDirNotAccessible( ResultDirNotAccessible.__doc__ % self.resultdir ) self.uidManager.restorePrivs() # lock this buildroot so we dont get stomped on. @@ -544,6 +546,7 @@ class Root(object): fh.setFormatter(formatter) fh.setLevel(logging.NOTSET) log.addHandler(fh) + log.info("Mock Version: %s" % self.version) finally: self.uidManager.restorePrivs() diff --git a/py/mock/exception.py b/py/mock/exception.py index d02bddb..3c84606 100644 --- a/py/mock/exception.py +++ b/py/mock/exception.py @@ -35,6 +35,7 @@ class Error(Exception): # 40 = some error in the pkg we're building # 50 = tried to fork a subcommand and it errored out # 60 = buildroot locked +# 70 = result dir could not be created class BuildError(Error): "rpmbuild failed." @@ -77,3 +78,16 @@ class BadCmdline(Error): Error.__init__(self, msg) self.msg = msg self.resultcode = 05 + +class ResultDirNotAccessible(Error): + """ +Could not create output directory for built rpms. The directory specified was: + %s + +Try using the --resultdir= option to select another location. Recommended location is --resultdir=~/mock/. +""" + def __init__(self, msg): + Error.__init__(self, msg) + self.msg = msg + self.resultcode = 70 + diff --git a/py/mock/util.py b/py/mock/util.py index 42f7ba6..f52003e 100644 --- a/py/mock/util.py +++ b/py/mock/util.py @@ -10,7 +10,6 @@ import ctypes import fcntl import os import os.path -import popen2 import rpm import rpmUtils import rpmUtils.transaction |