From c7083098f0ba2700ed7b2c0c0abe71f2de020123 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Wed, 1 Jun 2016 23:01:31 -0400 Subject: Support using DNF instead of urpmi for buildrpm --- MgaRepo/commands/buildrpm.py | 2 ++ MgaRepo/rpmutil.py | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/MgaRepo/commands/buildrpm.py b/MgaRepo/commands/buildrpm.py index 421ece0..79653e8 100644 --- a/MgaRepo/commands/buildrpm.py +++ b/MgaRepo/commands/buildrpm.py @@ -14,6 +14,7 @@ Options: -I Don't automatically try install missing build dependencies -l Disable rpmlint check of packages built -P USER Define the RPM packager information to USER + -d Use DNF -q Quiet build output -s Jump to specific build stage (--short-circuit) @@ -25,6 +26,7 @@ def parse_options(): parser.add_option("-I", dest="installdeps", action="store_false", default=True) parser.add_option("-l", dest="rpmlint", action="store_false", default=True) parser.add_option("-P", dest="packager", default="") + parser.add_option("-d", "--dnf", dest="use_dnf", action="store_true", default=False) parser.add_option("-q", "--quiet", dest="verbose", action="store_false", default=True) parser.add_option("-s", "--short-circuit", dest="short_circuit", action="store_true", default=False) opts, args = parser.parse_args() diff --git a/MgaRepo/rpmutil.py b/MgaRepo/rpmutil.py index a9dfa7b..bb9964a 100644 --- a/MgaRepo/rpmutil.py +++ b/MgaRepo/rpmutil.py @@ -381,6 +381,7 @@ def build_rpm(build_cmd="b", short_circuit=False, packager = None, installdeps = True, + use_dnf = False, macros = []): top = os.getcwd() topdir = "_topdir %s" % top @@ -428,17 +429,23 @@ def build_rpm(build_cmd="b", else: if verbose: print("Installing missing build dependencies") + if use_dnf: + pkg_mgr_base = ["dnf"] + pkg_mgr_builddep = pkg_mgr_base + ["--assume-yes", "--setopt=install_weak_deps=False", "builddep"] + else: + pkg_mgr_base = ["urpmi"] + pkg_mgr_builddep = pkg_mgr_base + ["--auto", "--buildrequires", "--no-recommends"] if os.getuid() != 0: - print("Trying to obtain privileges for urpmi:") - sudocheck = ["sudo", "-l", "urpmi"] + print("Trying to obtain privileges for installing build dependencies:") + sudocheck = ["sudo", "-l"] + pkg_mgr_base status, output = execcmd(*sudocheck, collecter=True, noerror=True) if status: raise Error("%s\nFailed! Cannot proceed without, aborting..." % output.splitlines()[-1]) - urpmi = ["sudo", "urpmi"] + cmd_base = ["sudo"] + pkg_mgr_builddep else: - urpmi = ["urpmi"] - cmd = urpmi + ["--auto", "--buildrequires", "--no-recommends", spec] + cmd_base = pkg_mgr_builddep + cmd = cmd_base + [spec] status, output = execcmd(*cmd, show=verbose, collecter=True, noerror=True) status, output = execcmd(*args + ["-b"+build_cmd], show=verbose) -- cgit v1.2.1