From 591961f489f1a6bbf06a26bd762ff58c9ffd4106 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Thu, 25 Aug 2011 07:52:25 +0200 Subject: [PATCH] [bin] add bump_kernel_tag_mods_inject tool for bumping non-sabayon kernel mod packages --- bin/bump_kernel_tag_mods_inject | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 bin/bump_kernel_tag_mods_inject diff --git a/bin/bump_kernel_tag_mods_inject b/bin/bump_kernel_tag_mods_inject new file mode 100755 index 0000000..5dac0fb --- /dev/null +++ b/bin/bump_kernel_tag_mods_inject @@ -0,0 +1,63 @@ +#!/usr/bin/python2 +import sys +import subprocess +import os +import tempfile + +args = sys.argv[1:] + +if len(args) < 3: + print("bump_kernel_tag_mods ") + raise SystemExit(1) + +kernel_tag = args.pop(0) +compile_tag = args.pop(0) +source_repo = args.pop(0) +dest_repo = args.pop(0) + +sys.argv.append("--no-pid-handling") + +os.environ['KERNEL_DIR'] = "/usr/src/linux-" + compile_tag +os.environ['ETP_REPO'] = source_repo +import entropy.dep +from entropy.server.interfaces import Server +srv = Server() +pkgs_map = {} +try: + repo = srv.open_repository(srv.repository()) + pkg_ids = repo.searchTaggedPackages(kernel_tag) + if not pkg_ids: + print("!!! no packages for kernel_tag") + + injected_atoms = [entropy.dep.remove_tag(repo.retrieveAtom(pkg_id)) for pkg_id in pkg_ids] +finally: + srv.shutdown() + +if injected_atoms: + print("packages: %s" % (' '.join(injected_atoms),)) +else: + print("nothing to do !!") + raise SystemExit(0) + +tmp_dir = tempfile.mkdtemp() +os.environ['PKGDIR'] = tmp_dir +rc = subprocess.call(["emerge", "-Bav", "--keep-going"] + ["~" + x for x in injected_atoms]) +if rc != 0: + raise SystemExit(rc) +tbz2s = [] +for category in os.listdir(tmp_dir): + path = os.path.join(tmp_dir, category) + if not os.path.isdir(path): + continue + for sub_file in os.listdir(path): + if not sub_file.endswith(".tbz2"): + continue + tbz2s.append(os.path.join(path, sub_file)) + +if tbz2s: + os.environ['ETP_REPO'] = dest_repo + rc = subprocess.call(["eit", "fit"] + tbz2s) + if rc != 0: + raise SystemExit(rc) + +raise SystemExit(0)