extras-buildsys/builder CONFIG.py,1.6,1.7 builder.py,1.22,1.23
Daniel Williams (dcbw)
fedora-extras-commits at redhat.com
Fri Jul 22 02:54:04 UTC 2005
Author: dcbw
Update of /cvs/fedora/extras-buildsys/builder
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv30683/builder
Modified Files:
CONFIG.py builder.py
Log Message:
2005-07-21 Dan Williams <dcbw at redhat.com>
* builder/CONFIG.py
builder/builder.py
- You must now specify a target/arch -> mock buildroot name
mapping in the config file
* server/UserInterface.py
server/CONFIG.py
- Add client target alias support so people don't have to
know the exact target name
- Add rowlimit support to job listing
Index: CONFIG.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/builder/CONFIG.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- CONFIG.py 13 Jul 2005 19:36:06 -0000 1.6
+++ CONFIG.py 22 Jul 2005 02:54:01 -0000 1.7
@@ -5,26 +5,39 @@
config_opts['builder_cmd'] = "/usr/bin/mock"
-# Distro and Repo:
-#
-# The builder constructs the buildroot name that it
-# passes to mock from a few things. The format is:
-#
-# <distro_name>-<target>-<arch>-<repo_name>
+config_opts['ssl_buildserver'] = True
+config_opts['fileserver_port'] = 8889
+config_opts['xmlrpc_port'] = 8888
+config_opts['hostname'] = 'localhost'
+
+# distro and repo
#
-# both <target> and <arch> come from the build server.
-# This constructed name NEEDS to match a mock config
-# file in /etc/mock.
+# These will eventually go away...
config_opts['distro_name'] = "fedora"
config_opts['repo_name'] = "core"
-config_opts['ssl_buildserver'] = True
-config_opts['fileserver_port'] = 8889
-config_opts['xmlrpc_port'] = 8888
-config_opts['hostname'] = 'localhost'
+# Targets
+#
+# These targets are maps of (target, arch) -> "mock buildroot name"
+# Mock buildroot names must currently match the buildroot config files
+# found in /etc/mock
+
+config_opts['mock_buildroot_map'] = {
+ ('fedora', 'development', 'i386', 'core') : "fedora-development-i386-core",
+ ('fedora', 'development', 'x86_64', 'core') : "fedora-development-x86_64-core",
+ ('fedora', '5', 'i386', 'core') : "fedora-5-i386-core",
+ ('fedora', '5', 'x86_64', 'core') : "fedora-5-x86_64-core"
+}
+
+# Arches
+#
+# A list of all architectures and sub-architectures that this builder
+# can build.
config_opts['arches'] = ['i386', 'i486', 'i586', 'i686']
+
+
BUILDER_DIR = "/etc/plague/builder"
# SSL Certs and keys
Index: builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/builder/builder.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- builder.py 20 Jul 2005 14:51:48 -0000 1.22
+++ builder.py 22 Jul 2005 02:54:01 -0000 1.23
@@ -30,6 +30,7 @@
import fcntl
import urllib
import errno
+import exceptions
from plague import ArchUtils
from plague import FileDownloader
from plague import AuthedXMLRPCServer
@@ -396,44 +397,54 @@
return False
+def resolve_buildroot_name(target, arch):
+ buildroot_map = config_opts['mock_buildroot_map']
+ try:
+ return buildroot_map[(config_opts['distro_name'], target, arch, config_opts['repo_name'])]
+ except KeyError:
+ raise InvalidTargetError()
+
+
+class InvalidTargetError(exceptions.Exception): pass
+
class i386Arch(BuilderMock):
def __init__(self, uniqid, target, buildarch, srpm_url):
- self.buildroot = '%s-%s-i386-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+ self.buildroot = resolve_buildroot_name(target, 'i386')
self.buildarch = buildarch
self.arch_command = '/usr/bin/setarch i686'
BuilderMock.__init__(self, uniqid, target, srpm_url)
class x86_64Arch(BuilderMock):
def __init__(self, uniqid, target, buildarch, srpm_url):
- self.buildroot = '%s-%s-x86_64-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+ self.buildroot = resolve_buildroot_name(target, 'x86_64')
self.buildarch = buildarch
self.arch_command = ''
BuilderMock.__init__(self, uniqid, target, srpm_url)
class PPCArch(BuilderMock):
def __init__(self, uniqid, target, buildarch, srpm_url):
- self.buildroot = '%s-%s-ppc-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+ self.buildroot = resolve_buildroot_name(target, 'ppc')
self.buildarch = buildarch
self.arch_command = ''
BuilderMock.__init__(self, uniqid, target, srpm_url)
class PPC64Arch(BuilderMock):
def __init__(self, uniqid, target, buildarch, srpm_url):
- self.buildroot = '%s-%s-ppc64-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+ self.buildroot = resolve_buildroot_name(target, 'ppc64')
self.buildarch = buildarch
self.arch_command = ''
BuilderMock.__init__(self, uniqid, target, srpm_url)
class SparcArch(BuilderMock):
def __init__(self, uniqid, target, buildarch, srpm_url):
- self.buildroot = '%s-%s-sparc-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+ self.buildroot = resolve_buildroot_name(target, 'sparc')
self.buildarch = buildarch
self.arch_command = '/usr/bin/sparc32'
BuilderMock.__init__(self, uniqid, target, srpm_url)
class Sparc64Arch(BuilderMock):
def __init__(self, uniqid, target, buildarch, srpm_url):
- self.buildroot = '%s-%s-sparc64-%s' % (config_opts['distro_name'], target, config_opts['repo_name'])
+ self.buildroot = resolve_buildroot_name(target, 'sparc64')
self.buildarch = buildarch
self.arch_command = '/usr/bin/sparc64'
BuilderMock.__init__(self, uniqid, target, srpm_url)
@@ -609,23 +620,10 @@
return 0
-def read_mock_configs(allowed_arches):
- MOCK_CONFIG_DIR = "/etc/mock/"
- tmp_list = os.listdir(MOCK_CONFIG_DIR)
+def get_target_arches(allowed_arches):
target_arches = {}
- for f in tmp_list:
- if not f.endswith(".cfg"):
- continue
- try:
- t = f.index("-")
- except ValueError:
- continue
- cfg_name = f[:len(f)-4]
- try:
- (distro, target, arch, repo) = cfg_name.split('-')
- except ValueError:
- print "Unrecognized config %s, ignoring." % cfg_name
- continue
+ for t in config_opts['mock_buildroot_map'].keys():
+ (distro, target, arch, repo) = t
if distro == config_opts['distro_name'] and repo == config_opts['repo_name']:
# 'arch' is by definition the "master" arch, ie i386 or x86_64,
# not i486/i586/ia32e/etc. We want to add on the "sub" arches
@@ -693,9 +691,9 @@
print "Arch '%s' specified in the config file is not supported." % arch
sys.exit(1)
- target_arch_dict = read_mock_configs(config_opts['arches'])
+ target_arch_dict = get_target_arches(config_opts['arches'])
if len(target_arch_dict) == 0:
- print "No mock configuration files were found. Exiting."
+ print "No useable mock buildroot names configured. Exiting."
sys.exit(1)
if opts.daemon:
More information about the fedora-extras-commits
mailing list