This enables yum's multilib_policy=all setting, as opposed to the
default of multilib_policy=best.
---
pykickstart/parser.py | 4 ++++
pykickstart/sections.py | 4 ++++
tests/packages.py | 6 ++++++
3 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
index f59b694..8a665f9 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
@@ -280,6 +280,7 @@ class Packages(KickstartObject):
packageList -- A list of all the packages specified in the
%packages section.
instLangs -- A list of languages to install.
+ multiLib -- Whether to use yum's "all" multilib policy.
"""
KickstartObject.__init__(self, *args, **kwargs)
@@ -292,6 +293,7 @@ class Packages(KickstartObject):
self.handleMissing = constants.KS_MISSING_PROMPT
self.packageList = []
self.instLangs = None
+ self.multiLib = False
def __str__(self):
"""Return a string formatted for output to a kickstart
file."""
@@ -333,6 +335,8 @@ class Packages(KickstartObject):
retval += " --ignoremissing"
if self.instLangs:
retval += " --instLangs=%s" % self.instLangs
+ if self.multiLib:
+ retval += " --multilib"
if ver >= version.F8:
return retval + "\n" + pkgs + "\n%end\n"
diff --git a/pykickstart/sections.py b/pykickstart/sections.py
index 44df856..6790ed6 100644
--- a/pykickstart/sections.py
+++ b/pykickstart/sections.py
@@ -227,6 +227,8 @@ class PackageSection(Section):
default=False, introduced=F7)
op.add_option("--instLangs", dest="instLangs",
type="string",
default="", introduced=F9)
+ op.add_option("--multilib", dest="multiLib",
action="store_true",
+ default=False, introduced=F18)
(opts, extra) = op.parse_args(args=args[1:], lineno=lineno)
@@ -242,3 +244,5 @@ class PackageSection(Section):
if opts.instLangs:
self.handler.packages.instLangs = opts.instLangs
+
+ self.handler.packages.multiLib = opts.multiLib
diff --git a/tests/packages.py b/tests/packages.py
index 9294d72..522ca4a 100644
--- a/tests/packages.py
+++ b/tests/packages.py
@@ -143,5 +143,11 @@ vim-enhanced
%end""", strip(str(pkgs)))
+class MultiLib_TestCase(CommandTest):
+ def runTest(self):
+ pkgs = Packages()
+ pkgs.multiLib = True
+ self.assertEqual("%%packages --multilib", str(pkgs).strip())
+
if __name__ == "__main__":
unittest.main()
--
1.7.7.6