Merge "Parallel builds in the same rpmbuild directory don't seem to work always."

This commit is contained in:
Jenkins
2013-08-02 01:03:42 +00:00
committed by Gerrit Code Review
2 changed files with 15 additions and 7 deletions

View File

@@ -62,7 +62,6 @@ class YumInstallHelper(base.InstallHelper):
class YumDependencyHandler(base.DependencyHandler):
OPENSTACK_EPOCH = 2
SPEC_TEMPLATE_DIR = "packaging/specs"
RPM_BUILD_FLAGS_TEMPLATE = "--rebuild --define '_topdir %s'"
API_NAMES = {
"nova": "Compute",
"glance": "Image",
@@ -165,10 +164,12 @@ class YumDependencyHandler(base.DependencyHandler):
self._move_srpms("anvil")
@staticmethod
def _move_files(source_dir, target_dir):
def _move_rpm_files(source_dir, target_dir):
if not sh.isdir(source_dir):
return
for filename in sh.listdir(source_dir, recursive=True, files_only=True):
if not filename.lower().endswith(".rpm"):
continue
sh.move(filename, target_dir, force=True)
def build_binary(self):
@@ -213,13 +214,14 @@ class YumDependencyHandler(base.DependencyHandler):
marks_dir = sh.joinpths(self.deps_dir, "marks-binary")
if not sh.isdir(marks_dir):
sh.mkdirslist(marks_dir, tracewriter=self.tracewriter)
rpmbuild_flags = self.RPM_BUILD_FLAGS_TEMPLATE % self.rpmbuild_dir
rpmbuild_flags = "--rebuild"
if self.opts.get("usr_only", False):
rpmbuild_flags += " --define 'usr_only 1'"
params = {
"SRC_REPO_DIR": src_repo_dir,
"RPMBUILD_FLAGS": rpmbuild_flags,
"LOGS_DIR": self.log_dir,
'RPMTOP_DIR': self.rpmbuild_dir,
}
(_fn, content) = utils.load_template(sh.joinpths("packaging", "makefiles"), "binary.mk")
sh.write_file(makefile_path, utils.expand_template(content, params),
@@ -227,7 +229,9 @@ class YumDependencyHandler(base.DependencyHandler):
with sh.remove_before_after(self.rpmbuild_dir):
self._create_rpmbuild_subdirs()
self._execute_make(makefile_path, marks_dir)
self._move_files(sh.joinpths(self.rpmbuild_dir, "RPMS"), repo_dir)
for d in sh.listdir(self.rpmbuild_dir, dirs_only=True):
self._move_rpm_files(sh.joinpths(d, "RPMS"), repo_dir)
self._move_rpm_files(sh.joinpths(self.rpmbuild_dir, "RPMS"), repo_dir)
self._create_repo(repo_name)
def _execute_make(self, filename, marks_dir):
@@ -239,7 +243,7 @@ class YumDependencyHandler(base.DependencyHandler):
src_repo_name = self.SRC_REPOS[repo_name]
src_repo_dir = sh.joinpths(self.anvil_repo_dir, src_repo_name)
sh.mkdirslist(src_repo_dir, tracewriter=self.tracewriter)
self._move_files(sh.joinpths(self.rpmbuild_dir, "SRPMS"), src_repo_dir)
self._move_rpm_files(sh.joinpths(self.rpmbuild_dir, "SRPMS"), src_repo_dir)
def _create_repo(self, repo_name):
repo_dir = sh.joinpths(self.anvil_repo_dir, repo_name)