aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeal Gompa <ngompa13@gmail.com>2016-06-01 23:01:31 -0400
committerNeal Gompa <ngompa13@gmail.com>2016-06-01 23:01:31 -0400
commitc7083098f0ba2700ed7b2c0c0abe71f2de020123 (patch)
tree295c863549ff2006d4efa5fc9ba93854462ec54a
parent06a32f511caa32ed72e999aae0c0d09afb59d493 (diff)
downloadmgarepo-c7083098f0ba2700ed7b2c0c0abe71f2de020123.tar
mgarepo-c7083098f0ba2700ed7b2c0c0abe71f2de020123.tar.gz
mgarepo-c7083098f0ba2700ed7b2c0c0abe71f2de020123.tar.bz2
mgarepo-c7083098f0ba2700ed7b2c0c0abe71f2de020123.tar.xz
mgarepo-c7083098f0ba2700ed7b2c0c0abe71f2de020123.zip
Support using DNF instead of urpmi for buildrpm
-rw-r--r--MgaRepo/commands/buildrpm.py2
-rw-r--r--MgaRepo/rpmutil.py17
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)