summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClark Williams <williams@redhat.com>2009-02-01 09:13:35 -0600
committerClark Williams <williams@redhat.com>2009-02-01 09:13:35 -0600
commit43b9b5a58bc1533c245202bde51e8f091d25b440 (patch)
tree4678d068e72fafa325e39935e5823eeb0ed4b2af
parent9eb2dc48fb1097416a42fe4835274b9c4d8a9ad9 (diff)
parentfd41e6e363e0a08ba1f71670ad9a1206b7982ed0 (diff)
downloadmock-43b9b5a58bc1533c245202bde51e8f091d25b440.tar.gz
mock-43b9b5a58bc1533c245202bde51e8f091d25b440.tar.xz
mock-43b9b5a58bc1533c245202bde51e8f091d25b440.zip
Merge branch 'master' into clark
-rw-r--r--.gitignore14
-rw-r--r--Makefile.am4
-rw-r--r--etc/mock/epel-5-i386.cfg3
-rw-r--r--etc/mock/epel-5-ppc.cfg3
-rw-r--r--etc/mock/epel-5-x86_64.cfg3
-rw-r--r--etc/mock/fedora-10-s390x.cfg37
-rw-r--r--etc/mock/fedora-10-sparc.cfg39
-rw-r--r--etc/mock/fedora-10-sparc64.cfg37
-rw-r--r--etc/mock/fedora-9-s390x.cfg37
-rw-r--r--etc/mock/fedora-9-sparc.cfg39
-rw-r--r--etc/mock/fedora-9-sparc64.cfg37
-rw-r--r--etc/mock/fedora-rawhide-s390x.cfg29
-rw-r--r--etc/mock/fedora-rawhide-sparc.cfg31
-rw-r--r--etc/mock/fedora-rawhide-sparc64.cfg29
-rw-r--r--etc/mock/site-defaults.cfg4
-rw-r--r--mock.spec.in4
-rwxr-xr-xpy/mock.py10
-rw-r--r--py/mock/backend.py7
-rw-r--r--py/mock/exception.py14
-rw-r--r--py/mock/util.py1
20 files changed, 365 insertions, 17 deletions
diff --git a/.gitignore b/.gitignore
index 25290b8..e93b95d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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)
diff --git a/py/mock.py b/py/mock.py
index d04c859..19af14c 100755
--- a/py/mock.py
+++ b/py/mock.py
@@ -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