From aef23d6edb86739638cdaf08e7892683681392b1 Mon Sep 17 00:00:00 2001 From: Tomasz Sterna Date: Fri, 19 Oct 2018 08:02:11 +0200 Subject: [PATCH] anaconda: add Qubes installclass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Frédéric Pierret --- pyanaconda/installclasses/qubes.py | 93 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 pyanaconda/installclasses/qubes.py diff --git a/pyanaconda/installclasses/qubes.py b/pyanaconda/installclasses/qubes.py new file mode 100644 index 000000000..e98912b63 --- /dev/null +++ b/pyanaconda/installclasses/qubes.py @@ -0,0 +1,93 @@ +# +# qubes.py +# +# Copyright (C) 2011 Invisible Things Lab All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + + +from pyanaconda.installclass import BaseInstallClass +from pyanaconda.constants import * +from pyanaconda.product import * +from pyanaconda import network +from pyanaconda.i18n import N_ +import os, types +import blivet.platform + +from blivet.size import Size +from blivet.platform import platform +from decimal import Decimal + +class InstallClass(BaseInstallClass): + # name has underscore used for mnemonics, strip if you dont need it + id = "qubes" + name = N_("Qubes") + _description = N_("The default installation of %s is a minimal install. " + "You can optionally select a different set of software " + "now.") + _descriptionFields = (productName,) + sortPriority = 20000 + hidden = 0 + efi_dir = 'qubes' + _l10n_domain = "anaconda" + installUpdates = False + + bootloaderTimeoutDefault = 5 + + tasks = [(N_("Minimal"), ["base", "base-x", "kde-desktop-qubes", "qubes" ]) ] + + help_placeholder = "QubesPlaceholder.html" + help_placeholder_with_links = "QubesPlaceholderWithLinks.html" + + def getPackagePaths(self, uri): + if not type(uri) == types.ListType: + uri = [uri,] + + return {'Installation Repo': uri} + + def configure(self, anaconda): + BaseInstallClass.configure(self, anaconda) + self.setDefaultPartitioning(anaconda.storage) + + def setDefaultPartitioning(self, storage): + BaseInstallClass.setDefaultPartitioning(self, + storage) + for autoreq in storage.autopart_requests: + if autoreq.mountpoint == "/": + autoreq.max_size=None + autoreq.required_space=Size("10GiB") + if autoreq.mountpoint == "/home": + storage.autopart_requests.remove(autoreq) + if autoreq.mountpoint == "/boot/efi": + autoreq.max_size=Size("500MiB") + if autoreq.mountpoint == "/boot" and \ + isinstance(platform, blivet.platform.EFI): + # xen.efi don't need /boot + storage.autopart_requests.remove(autoreq) + + def productMatches(self, oldprod): + if oldprod is None: + return False + + if oldprod.startswith(productName): + return True + + return False + + def versionMatches(self, oldver): + return True + + def __init__(self): + BaseInstallClass.__init__(self) -- 2.14.4