[virt-tools-list] [PATCH] Add Slackware to OS choices

ponce matteo.bernardini at gmail.com
Thu Sep 11 16:37:12 UTC 2014


From: Matteo Bernardini <ponce at slackbuilds.org>

Signed-off-by: Matteo Bernardini <ponce at slackbuilds.org>
Reviewed-by: Robby Workman <rworkman at slackware.com>
---
 virtinst/osdict.py     |  6 ++++--
 virtinst/urlfetcher.py | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/virtinst/osdict.py b/virtinst/osdict.py
index 4277578..e70445f 100644
--- a/virtinst/osdict.py
+++ b/virtinst/osdict.py
@@ -48,6 +48,7 @@ _aliases = {
     "rhel5" : "rhel5.0",
     "rhel6" : "rhel6.0",
     "rhel7" : "rhel7.0",
+    "slackware" : "slackware14.1",
     "ubuntuhardy" : "ubuntu8.04",
     "ubuntuintrepid" : "ubuntu8.10",
     "ubuntujaunty" : "ubuntu9.04",
@@ -444,8 +445,9 @@ class _OsVariantOsInfo(_OSVariant):
         # We should fix this in a new libosinfo version, and then drop
         # this hack
         if name in ["rhel7.0", "rhel7.1", "fedora19", "fedora20", "fedora21",
-            "debian6", "debian7", "ubuntu13.04", "ubuntu13.10", "ubuntu14.04",
-            "ubuntu14.10", "win8", "win8.1", "win2k12", "win2k12r2"]:
+            "debian6", "debian7", "slackware14.1", "ubuntu13.04", "ubuntu13.10",
+            "ubuntu14.04", "ubuntu14.10", "win8", "win8.1", "win2k12",
+            "win2k12r2"]:
             return True
         return False
 
diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py
index 0c1b5cd..5dedde5 100644
--- a/virtinst/urlfetcher.py
+++ b/virtinst/urlfetcher.py
@@ -1022,6 +1022,43 @@ class ALTLinuxDistro(Distro):
         return False
 
 
+class SlackwareDistro(Distro):
+    # slackware doesn't have installable URLs, so this is just for a
+    # mounted ISO
+    name = "Slackware"
+    urldistro = "slackware"
+    os_variant = "linux"
+
+    _boot_iso_paths = []
+    _xen_kernel_paths = []
+
+    def __init__(self, *args, **kwargs):
+        Distro.__init__(self, *args, **kwargs)
+        if re.match(r'i[4-9]86', self.arch):
+            self.arch = 'i486'
+            self.kname = 'hugesmp.s'
+        else:
+            self.arch = 'x86_64'
+            self.kname = 'huge.s'
+
+        self._hvm_kernel_paths = [("kernels/%s/bzImage" % self.kname,
+                                    "isolinux/initrd.img")]
+
+    def isValidStore(self):
+        # Don't support any paravirt installs
+        if self.type is not None and self.type != "hvm":
+            return False
+
+        # Slackware website / media appear to have a Slackware-HOWTO
+        # file in top level which we can use as our 'magic'
+        # check for validity
+        if not self.fetcher.hasFile("Slackware-HOWTO"):
+            return False
+
+        logging.debug("Regex didn't match, not a %s distro", self.name)
+        return False
+
+
 # Build list of all *Distro classes
 def _build_distro_list():
     allstores = []
-- 
2.1.0




More information about the virt-tools-list mailing list