From 99dd5deeb560fbf42bc8f64c49f813e8d4303327 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Mon, 4 Aug 2014 03:35:44 -0500 Subject: [PATCH] add some extra patches we need --- 0001-fix-distro-behavior-for-rhel-5.patch | 28 ++++++++++ 0002-compress-docker-tarball-properly.patch | 26 +++++++++ ...-upload-the-tdl-priority-to-building.patch | 54 +++++++++++++++++++ ...before-the-try-in-case-of-an-earlier.patch | 33 ++++++++++++ 0005-put-ova-options-in-its-own-section.patch | 39 ++++++++++++++ 0006-use-offline-icicle-generation.patch | 26 +++++++++ 0007-include-multilib-packages-in-repos.patch | 44 +++++++++++++++ 0008-bump-install-timeout-to-2-hours.patch | 25 +++++++++ koji.spec | 22 ++++++-- 9 files changed, 293 insertions(+), 4 deletions(-) create mode 100644 0001-fix-distro-behavior-for-rhel-5.patch create mode 100644 0002-compress-docker-tarball-properly.patch create mode 100644 0003-upload-the-tdl-priority-to-building.patch create mode 100644 0004-define-bld_info-before-the-try-in-case-of-an-earlier.patch create mode 100644 0005-put-ova-options-in-its-own-section.patch create mode 100644 0006-use-offline-icicle-generation.patch create mode 100644 0007-include-multilib-packages-in-repos.patch create mode 100644 0008-bump-install-timeout-to-2-hours.patch diff --git a/0001-fix-distro-behavior-for-rhel-5.patch b/0001-fix-distro-behavior-for-rhel-5.patch new file mode 100644 index 0000000..2eb869f --- /dev/null +++ b/0001-fix-distro-behavior-for-rhel-5.patch @@ -0,0 +1,28 @@ +From 2e587154eb101ae4b2015a3b47bbb18e53d393dd Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Tue, 15 Apr 2014 14:31:10 -0400 +Subject: [PATCH 1/8] fix distro behavior for rhel 5 + +--- + builder/kojid | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/builder/kojid b/builder/kojid +index 4163f49..1691a54 100755 +--- a/builder/kojid ++++ b/builder/kojid +@@ -2654,7 +2654,10 @@ class OzImageTask(BaseTaskHandler): + image on. + """ + if distro.startswith('RHEL'): +- return distro.split('.') ++ major, minor = distro.split('.') ++ if major == 'RHEL-5': ++ minor = 'U' + minor ++ return major, minor + elif distro.startswith('Fedora'): + return distro.split('-') + elif distro.startswith('CentOS'): +-- +2.0.4 + diff --git a/0002-compress-docker-tarball-properly.patch b/0002-compress-docker-tarball-properly.patch new file mode 100644 index 0000000..2ce299e --- /dev/null +++ b/0002-compress-docker-tarball-properly.patch @@ -0,0 +1,26 @@ +From 073bdb69e73e8943f3fb031f56b3d3ca66412edc Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Tue, 15 Apr 2014 14:45:40 -0400 +Subject: [PATCH 2/8] compress docker tarball properly + +--- + builder/kojid | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/builder/kojid b/builder/kojid +index 1691a54..cee7637 100755 +--- a/builder/kojid ++++ b/builder/kojid +@@ -2824,7 +2824,8 @@ class BaseImageTask(OzImageTask): + + # target-image type images + if 'docker' in self.formats: +- targ = do_target_image(base.base_image.identifier, 'docker') ++ targ = do_target_image(base.base_image.identifier, 'docker', ++ ova_opts={'compress': 'gzip'}) + images['docker'] = {'image': targ.target_image.data} + + ova_opts = {} +-- +2.0.4 + diff --git a/0003-upload-the-tdl-priority-to-building.patch b/0003-upload-the-tdl-priority-to-building.patch new file mode 100644 index 0000000..70e2dd2 --- /dev/null +++ b/0003-upload-the-tdl-priority-to-building.patch @@ -0,0 +1,54 @@ +From b566eba6f83b151fcc058906a0630f4d9e303490 Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Wed, 16 Apr 2014 11:18:53 -0400 +Subject: [PATCH 3/8] upload the tdl priority to building + +--- + builder/kojid | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/builder/kojid b/builder/kojid +index cee7637..32400c6 100755 +--- a/builder/kojid ++++ b/builder/kojid +@@ -2813,13 +2813,7 @@ class BaseImageTask(OzImageTask): + lxml = self.fixImageXML('raw', imgname, + 'libvirt-%s-%s.xml' % ('raw', arch), + base.base_image.parameters['libvirt_xml']) +- tdl_path = os.path.join(self.workdir, 'tdl-%s.xml' % arch) +- tdl = open(tdl_path, 'w') +- tdl.write(base.base_image.template) +- tdl.close() +- self.uploadFile(tdl_path) + images['raw'] = {'image': base.base_image.data, 'libvirt': lxml, +- 'tdl': os.path.basename(tdl_path), + 'icicle': base.base_image.icicle} + + # target-image type images +@@ -2889,6 +2883,12 @@ class BaseImageTask(OzImageTask): + self.logger.debug('IF config object: %s' % config) + ApplicationConfiguration(configuration=config) + ++ tdl_path = os.path.join(self.workdir, 'tdl-%s.xml' % arch) ++ tdl = open(tdl_path, 'w') ++ tdl.write(template) ++ tdl.close() ++ self.uploadFile(tdl_path) ++ + # ImageFactory picks a port to the guest VM using a rolling integer. + # This is a problem for concurrency, so we override the port it picks + # here using the task ID. (not a perfect solution but good enough: +@@ -2900,9 +2900,9 @@ class BaseImageTask(OzImageTask): + + # invoke the image builds + images = self.do_images(arch, template, ozlog, imgname) ++ images['raw']['tdl'] = os.path.basename(tdl_path), + + # structure the results to pass back to the hub: +- tdl_path = images['raw']['tdl'] + imgdata = { + 'arch': arch, + 'task_id': self.id, +-- +2.0.4 + diff --git a/0004-define-bld_info-before-the-try-in-case-of-an-earlier.patch b/0004-define-bld_info-before-the-try-in-case-of-an-earlier.patch new file mode 100644 index 0000000..b3a279c --- /dev/null +++ b/0004-define-bld_info-before-the-try-in-case-of-an-earlier.patch @@ -0,0 +1,33 @@ +From 7a1d6c4cd42f6efe8a3833a77a4475b6cfe9da43 Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Wed, 16 Apr 2014 12:00:33 -0400 +Subject: [PATCH 4/8] define bld_info before the try in case of an earlier + exception + +--- + builder/kojid | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builder/kojid b/builder/kojid +index 32400c6..fa5daca 100755 +--- a/builder/kojid ++++ b/builder/kojid +@@ -1824,6 +1824,7 @@ class BuildBaseImageTask(BuildImageTask): + raise koji.ApplianceError, 'ImageFactory functions not available' + + # build image(s) ++ bld_info = None + try: + release = opts.get('release') + if not release: +@@ -1832,7 +1833,6 @@ class BuildBaseImageTask(BuildImageTask): + raise koji.ApplianceError('The Version may not have a hyphen') + if '-' in release: + raise koji.ApplianceError('The Release may not have a hyphen') +- bld_info = None + if not opts.get('scratch'): + bld_info = self.initImageBuild(name, version, release, + target_info, opts) +-- +2.0.4 + diff --git a/0005-put-ova-options-in-its-own-section.patch b/0005-put-ova-options-in-its-own-section.patch new file mode 100644 index 0000000..64f9e78 --- /dev/null +++ b/0005-put-ova-options-in-its-own-section.patch @@ -0,0 +1,39 @@ +From 20bb3e15265499d129cb85b6cd41a8724e037082 Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Wed, 16 Apr 2014 14:00:17 -0400 +Subject: [PATCH 5/8] put ova options in its own section + +--- + cli/koji | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/cli/koji b/cli/koji +index 088c505..504b4ba 100755 +--- a/cli/koji ++++ b/cli/koji +@@ -5074,14 +5074,17 @@ def handle_image_build(options, session, args): + if config.has_option(section, arg): + setattr(task_options, arg, config.get(section, arg).split(',')) + config.remove_option(section, arg) +- # ova_option is newline separated, handle that +- if config.has_option(section, 'ova_option'): +- task_options.ova_option = \ +- config.get(section, 'ova_option').splitlines() +- config.remove_option(section, 'ova_option') + # handle everything else + for k, v in config.items(section): + setattr(task_options, k, v) ++ ++ # ova-options belong in their own section ++ section = 'ova-options' ++ if config.has_section(section): ++ task_options.ova_option = [] ++ for k, v in config.items(section): ++ task_options.ova_option.append('%s=%s' % (k, v)) ++ + else: + if len(args) < 5: + parser.error(_("At least five arguments are required: a name, " + +-- +2.0.4 + diff --git a/0006-use-offline-icicle-generation.patch b/0006-use-offline-icicle-generation.patch new file mode 100644 index 0000000..10377e4 --- /dev/null +++ b/0006-use-offline-icicle-generation.patch @@ -0,0 +1,26 @@ +From 61c1737652544150fe962921b9dfd3708e1d256e Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Thu, 17 Apr 2014 18:59:41 -0400 +Subject: [PATCH 6/8] use offline icicle generation + +--- + builder/kojid | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/builder/kojid b/builder/kojid +index fa5daca..4712cc5 100755 +--- a/builder/kojid ++++ b/builder/kojid +@@ -2787,7 +2787,8 @@ class BaseImageTask(OzImageTask): + tlog.setLevel(logging.DEBUG) + tlog.addHandler(fhandler) + images = {} +- params = {'install_script': str(self.ks.handler)} #ks contents ++ params = {'install_script': str(self.ks.handler), ++ 'offline_icicle': True} + random.seed() # necessary to ensure a unique mac address + try: + base = bd.builder_for_base_image(template, parameters=params) +-- +2.0.4 + diff --git a/0007-include-multilib-packages-in-repos.patch b/0007-include-multilib-packages-in-repos.patch new file mode 100644 index 0000000..0603ff7 --- /dev/null +++ b/0007-include-multilib-packages-in-repos.patch @@ -0,0 +1,44 @@ +From 794abb71b1cd5662354475e2beafbab0f287b409 Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Thu, 17 Apr 2014 19:00:08 -0400 +Subject: [PATCH 7/8] include multilib packages in repos + +--- + builder/mergerepos | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/builder/mergerepos b/builder/mergerepos +index b873ccd..fecbc4b 100755 +--- a/builder/mergerepos ++++ b/builder/mergerepos +@@ -48,6 +48,12 @@ EXPAND_ARCHES = { + 'sh4': ['sh4a'] + } + ++MULTILIB_ARCHES = { ++ 'x86_64': 'i386', ++ 'ppc64': 'ppc', ++ 's390x': 's390' ++ } ++ + def parse_args(args): + """Parse our opts/args""" + usage = """ +@@ -78,6 +84,14 @@ def parse_args(args): + if EXPAND_ARCHES.has_key(arch): + opts.arches.extend(EXPAND_ARCHES[arch]) + ++ # support multilib repos ++ for arch in opts.arches[:]: ++ multilib_arch = MULTILIB_ARCHES.get(arch) ++ if multilib_arch: ++ opts.arches.append(multilib_arch) ++ if multilib_arch in EXPAND_ARCHES: ++ opts.arches.extend(EXPAND_ARCHES[multilib_arch]) ++ + # always include noarch + if not 'noarch' in opts.arches: + opts.arches.append('noarch') +-- +2.0.4 + diff --git a/0008-bump-install-timeout-to-2-hours.patch b/0008-bump-install-timeout-to-2-hours.patch new file mode 100644 index 0000000..c4387cd --- /dev/null +++ b/0008-bump-install-timeout-to-2-hours.patch @@ -0,0 +1,25 @@ +From 1fbbf825ab7962e68d0059ab86b0955312997035 Mon Sep 17 00:00:00 2001 +From: Jay Greguske +Date: Thu, 8 May 2014 11:34:51 -0400 +Subject: [PATCH 8/8] bump install timeout to 2 hours + +--- + builder/kojid | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/builder/kojid b/builder/kojid +index 4712cc5..90ff2bd 100755 +--- a/builder/kojid ++++ b/builder/kojid +@@ -2608,7 +2608,7 @@ class OzImageTask(BaseTaskHandler): + 'imgdir': os.path.join(self.workdir, 'scratch_images'), + 'tmpdir': os.path.join(self.workdir, 'oz-tmp'), + 'verbose' : True, +- 'timeout': 3600, ++ 'timeout': 7200, + 'output': 'log', + 'raw': False, + 'debug': True, +-- +2.0.4 + diff --git a/koji.spec b/koji.spec index f3ebd45..881768c 100644 --- a/koji.spec +++ b/koji.spec @@ -10,10 +10,17 @@ Group: Applications/System URL: http://fedorahosted.org/koji Patch0: fedora-config.patch Patch1: 0001-move-workdir-from-tmp-koji-to-var-tmp-koji.patch -Patch2: compress-docker.patch -Patch3: 0001-refactor-image-build-handlers-in-kojid.patch -Patch4: 0002-refactor-do_images.patch -Patch5: 0003-add-raw-xz-option.patch +Patch2: 0001-fix-distro-behavior-for-rhel-5.patch +Patch3: 0002-compress-docker-tarball-properly.patch +Patch4: 0003-upload-the-tdl-priority-to-building.patch +Patch5: 0004-define-bld_info-before-the-try-in-case-of-an-earlier.patch +Patch6: 0005-put-ova-options-in-its-own-section.patch +Patch7: 0006-use-offline-icicle-generation.patch +Patch8: 0007-include-multilib-packages-in-repos.patch +Patch9: 0008-bump-install-timeout-to-2-hours.patch +Patch10: 0001-refactor-image-build-handlers-in-kojid.patch +Patch11: 0002-refactor-do_images.patch +Patch12: 0003-add-raw-xz-option.patch Source: https://fedorahosted.org/released/koji/koji-%{version}.tar.bz2 @@ -136,6 +143,13 @@ koji-web is a web UI to the Koji system. %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 %build