summaryrefslogtreecommitdiffstats
path: root/system/virt-manager/Add-Slackware-to-OS-choices.patch
blob: 18aadb62cf6b4d8478a1e3aa0c16e3b92caed6fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
diff -Nur virt-manager-1.5.0.orig/virtinst/osdict.py virt-manager-1.5.0/virtinst/osdict.py
--- virt-manager-1.5.0.orig/virtinst/osdict.py	2018-01-27 14:57:20.000000000 -0600
+++ virt-manager-1.5.0/virtinst/osdict.py	2018-02-19 00:52:00.750416744 -0600
@@ -159,6 +159,7 @@
         "rhel5": "rhel5.0",
         "rhel6": "rhel6.0",
         "rhel7": "rhel7.0",
+        "slackware": "slackware14.2",
         "ubuntuhardy": "ubuntu8.04",
         "ubuntuintrepid": "ubuntu8.10",
         "ubuntujaunty": "ubuntu9.04",
@@ -373,7 +374,7 @@
         # EOL date. So assume None == EOL, add some manual work arounds.
         # We should fix this in a new libosinfo version, and then drop
         # this hack
-        if self._is_related_to(["fedora24", "rhel7.0", "debian6",
+        if self._is_related_to(["slackware14.2", "fedora24", "rhel7.0", "debian6",
             "ubuntu13.04", "win8", "win2k12", "mageia5", "centos7.0"],
             check_clones=False, check_derives=False):
             return True
diff -Nur virt-manager-1.5.0.orig/virtinst/urlfetcher.py virt-manager-1.5.0/virtinst/urlfetcher.py
--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py	2018-01-27 14:57:20.000000000 -0600
+++ virt-manager-1.5.0/virtinst/urlfetcher.py	2018-02-19 00:52:00.751416752 -0600
@@ -1379,6 +1379,43 @@
         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 = []