diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..4dbb3d71 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "qubes-release"] + path = qubes-release + url = https://github.com/QubesOS/qubes-qubes-release diff --git a/.travis.yml b/.travis.yml index 275f9e7f..4bd23f44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,9 +9,9 @@ after_script: - tail -n 100 ~/qubes-builder/build-logs/installer-qubes-os-iso-*.log - ls -l ~/qubes-builder/iso env: - - DIST_DOM0=fc25 INSTALLER_KICKSTART=/tmp/qubes-installer/conf/travis-iso-full.ks USE_QUBES_REPO_VERSION=4.0 RPM_BUILD_DEFINES=--nocheck - - DIST_DOM0=fc25 INSTALLER_KICKSTART=/tmp/qubes-installer/conf/travis-iso-unsigned.ks USE_QUBES_REPO_VERSION=4.0 EXPECT_FAILURE=./expected-failure - - DIST_DOM0=fc25 INSTALLER_KICKSTART=/tmp/qubes-installer/conf/travis-iso-unknown-key.ks USE_QUBES_REPO_VERSION=4.0 EXPECT_FAILURE=./expected-failure + - DIST_DOM0=fc29 INSTALLER_KICKSTART=/tmp/qubes-installer/conf/travis-iso-full.ks USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 RPM_BUILD_DEFINES=--nocheck + - DIST_DOM0=fc29 INSTALLER_KICKSTART=/tmp/qubes-installer/conf/travis-iso-unsigned.ks USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 EXPECT_FAILURE=./expected-failure + - DIST_DOM0=fc29 INSTALLER_KICKSTART=/tmp/qubes-installer/conf/travis-iso-unknown-key.ks USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 EXPECT_FAILURE=./expected-failure # don't build tags which are meant for code signing only branches: diff --git a/Makefile b/Makefile index 1ea986bc..82b49ab1 100644 --- a/Makefile +++ b/Makefile @@ -30,6 +30,7 @@ else ISO_VERSION := $(shell date +%Y%m%d) endif PUNGI_OPTS += --ver="$(ISO_VERSION)" +PUNGI_OPTS += --rootfs-size=4 INSTALLER_KICKSTART ?= $(PWD)/conf/qubes-kickstart.cfg LIVE_KICKSTART ?= $(PWD)/conf/liveusb.ks @@ -81,6 +82,9 @@ clean-repos: clean: sudo rm -fr build/* +get-sources: + git submodule update --init --recursive + ifeq ($(ISO_LIVEUSB),1) get-sources: $(MAKE) -C livecd-tools get-sources diff --git a/Makefile.builder b/Makefile.builder index e897b558..43f3cecf 100644 --- a/Makefile.builder +++ b/Makefile.builder @@ -1,14 +1,3 @@ -RPM_SPEC_FILES.dom0 := \ - pykickstart/pykickstart.spec \ - blivet/python-blivet.spec \ - lorax/lorax.spec \ - lorax-templates-qubes/lorax-templates-qubes.spec \ - pungi/pungi.spec \ - anaconda/anaconda.spec \ - qubes-anaconda-addon/qubes-anaconda-addon.spec \ - qubes-release/qubes-release.spec \ - qubes-release/qubes-dom0-dist-upgrade.spec - ifeq ($(ISO_LIVEUSB),1) RPM_SPEC_FILES.dom0 += \ livecd-tools/livecd-tools.spec \ diff --git a/anaconda/0001-anaconda-add-Qubes-installclass.patch b/anaconda/0001-anaconda-add-Qubes-installclass.patch deleted file mode 100644 index 2042bf8e..00000000 --- a/anaconda/0001-anaconda-add-Qubes-installclass.patch +++ /dev/null @@ -1,116 +0,0 @@ -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 list(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 - diff --git a/anaconda/0002-anaconda-add-Qubes-post-scripts.patch b/anaconda/0002-anaconda-add-Qubes-post-scripts.patch deleted file mode 100644 index edce2339..00000000 --- a/anaconda/0002-anaconda-add-Qubes-post-scripts.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 0cb13168feb3dfd4b9510c89ed3bc005a23795ca Mon Sep 17 00:00:00 2001 -From: Tomasz Sterna -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: add Qubes post-scripts -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - data/post-scripts/40-qubes-alt-kernels.ks | 20 ++++++++++++++++++++ - data/post-scripts/50-qubes.ks | 5 +++++ - data/post-scripts/60-systemd-preset.ks | 13 +++++++++++++ - data/post-scripts/Makefile.am | 2 +- - 4 files changed, 39 insertions(+), 1 deletion(-) - create mode 100644 data/post-scripts/40-qubes-alt-kernels.ks - create mode 100644 data/post-scripts/50-qubes.ks - create mode 100644 data/post-scripts/60-systemd-preset.ks - -diff --git a/data/post-scripts/40-qubes-alt-kernels.ks b/data/post-scripts/40-qubes-alt-kernels.ks -new file mode 100644 -index 000000000..4909a99ee ---- /dev/null -+++ b/data/post-scripts/40-qubes-alt-kernels.ks -@@ -0,0 +1,20 @@ -+%post --nochroot -+ -+for pkg in /run/install/repo/extrakernels/*.rpm; do -+ name=`basename $pkg .rpm` -+ rpm --root=$ANA_INSTALL_PATH -q $name > /dev/null || rpm --root=$ANA_INSTALL_PATH -i --oldpackage $pkg -+done -+ -+# Set grub default to the current kernel if running not the latest one -+latest=`basename /run/install/repo/Packages/k/kernel-[0-9]*.rpm .rpm|cut -d- -f2-` -+if [ "$latest" != "`uname -r`" ]; then -+ rootdev=`grep " $ANA_INSTALL_PATH " /proc/mounts | cut -f 1 -d ' '` -+ sysid=`blkid -o value -s UUID $rootdev` -+ xenver=`dmesg | grep 'Xen version:' | sed -e 's/.*version: \([0-9.]\+\).*/\1/'` -+ grubid="gnulinux-advanced-$sysid" -+ grubid="$grubid>xen-hypervisor-$xenver-$sysid" -+ grubid="$grubid>xen-gnulinux-`uname -r`-advanced-$sysid" -+ grub2-set-default --boot-directory=$ANA_INSTALL_PATH/boot "$grubid" -+fi -+ -+%end -diff --git a/data/post-scripts/50-qubes.ks b/data/post-scripts/50-qubes.ks -new file mode 100644 -index 000000000..1b9238b40 ---- /dev/null -+++ b/data/post-scripts/50-qubes.ks -@@ -0,0 +1,5 @@ -+%post -+ -+rpm --import /etc/pki/rpm-gpg/* -+ -+%end -diff --git a/data/post-scripts/60-systemd-preset.ks b/data/post-scripts/60-systemd-preset.ks -new file mode 100644 -index 000000000..9e6cb3f3a ---- /dev/null -+++ b/data/post-scripts/60-systemd-preset.ks -@@ -0,0 +1,13 @@ -+%post -+ -+# preset all services, to not worry about package installation order (preset -+# files vs services) -+systemctl preset-all -+ -+systemctl enable initial-setup.service -+ -+# systemctl preset-all disables default target -+# (https://bugzilla.redhat.com/1316387), re-enable it manually -+systemctl set-default graphical.target -+ -+%end -diff --git a/data/post-scripts/Makefile.am b/data/post-scripts/Makefile.am -index 7d78d4bc3..ad2f6497d 100644 ---- a/data/post-scripts/Makefile.am -+++ b/data/post-scripts/Makefile.am -@@ -16,5 +16,5 @@ - # along with this program. If not, see . - - postscriptsdir = $(datadir)/$(PACKAGE_NAME)/post-scripts --dist_postscripts_DATA = 80-setfilecons.ks 90-copy-screenshots.ks 99-copy-logs.ks -+dist_postscripts_DATA = 40-qubes-alt-kernels.ks 50-qubes.ks 60-systemd-preset.ks 80-setfilecons.ks 90-copy-screenshots.ks 99-copy-logs.ks - MAINTAINERCLEANFILES = Makefile.in --- -2.14.4 - diff --git a/anaconda/0003-anaconda-remove-other-installclasses.patch b/anaconda/0003-anaconda-remove-other-installclasses.patch deleted file mode 100644 index 8a4b6c6b..00000000 --- a/anaconda/0003-anaconda-remove-other-installclasses.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 5ccbe4b9f6265ac4e07f0539da39db809fc8020a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= - -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: remove other installclasses -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/installclasses/fedora.py | 58 --------------------------------- - pyanaconda/installclasses/rhel.py | 64 ------------------------------------- - 2 files changed, 122 deletions(-) - delete mode 100644 pyanaconda/installclasses/fedora.py - delete mode 100644 pyanaconda/installclasses/rhel.py - -diff --git a/pyanaconda/installclasses/fedora.py b/pyanaconda/installclasses/fedora.py -deleted file mode 100644 -index c9ced65fd..000000000 ---- a/pyanaconda/installclasses/fedora.py -+++ /dev/null -@@ -1,58 +0,0 @@ --# --# fedora.py --# --# Copyright (C) 2007 Red Hat, Inc. 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.product import productName --from pyanaconda import network --from pyanaconda import nm -- --class FedoraBaseInstallClass(BaseInstallClass): -- name = "Fedora" -- sortPriority = 10000 -- if productName.startswith("Red Hat "): # pylint: disable=no-member -- hidden = True -- -- _l10n_domain = "anaconda" -- -- efi_dir = "fedora" -- -- help_placeholder = "FedoraPlaceholder.html" -- help_placeholder_with_links = "FedoraPlaceholderWithLinks.html" -- -- def configure(self, anaconda): -- BaseInstallClass.configure(self, anaconda) -- BaseInstallClass.setDefaultPartitioning(self, anaconda.storage) -- -- def setNetworkOnbootDefault(self, ksdata): -- if any(nd.onboot for nd in ksdata.network.network if nd.device): -- return -- # choose first wired device having link -- for dev in nm.nm_devices(): -- if nm.nm_device_type_is_wifi(dev): -- continue -- try: -- link_up = nm.nm_device_carrier(dev) -- except (nm.UnknownDeviceError, nm.PropertyNotFoundError): -- continue -- if link_up: -- network.update_onboot_value(dev, True, ksdata=ksdata) -- break -- -- def __init__(self): -- BaseInstallClass.__init__(self) -diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py -deleted file mode 100644 -index 7e907e4bd..000000000 ---- a/pyanaconda/installclasses/rhel.py -+++ /dev/null -@@ -1,64 +0,0 @@ --# --# rhel.py --# --# Copyright (C) 2010 Red Hat, Inc. 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.product import productName --from pyanaconda import network --from pyanaconda import nm -- --class RHELBaseInstallClass(BaseInstallClass): -- name = "Red Hat Enterprise Linux" -- sortPriority = 10000 -- if not productName.startswith("Red Hat "): # pylint: disable=no-member -- hidden = True -- defaultFS = "xfs" -- -- bootloaderTimeoutDefault = 5 -- -- ignoredPackages = ["ntfsprogs"] -- -- installUpdates = False -- -- _l10n_domain = "comps" -- -- efi_dir = "redhat" -- -- help_placeholder = "RHEL7Placeholder.html" -- help_placeholder_with_links = "RHEL7PlaceholderWithLinks.html" -- -- def configure(self, anaconda): -- BaseInstallClass.configure(self, anaconda) -- BaseInstallClass.setDefaultPartitioning(self, anaconda.storage) -- -- def setNetworkOnbootDefault(self, ksdata): -- if any(nd.onboot for nd in ksdata.network.network if nd.device): -- return -- # choose the device used during installation -- # (ie for majority of cases the one having the default route) -- dev = network.default_route_device() \ -- or network.default_route_device(family="inet6") -- if not dev: -- return -- # ignore wireless (its ifcfgs would need to be handled differently) -- if nm.nm_device_type_is_wifi(dev): -- return -- network.update_onboot_value(dev, True, ksdata=ksdata) -- -- def __init__(self): -- BaseInstallClass.__init__(self) --- -2.14.4 - diff --git a/anaconda/0004-anaconda-do-not-start-network-during-install-set-def.patch b/anaconda/0004-anaconda-do-not-start-network-during-install-set-def.patch deleted file mode 100644 index e568551a..00000000 --- a/anaconda/0004-anaconda-do-not-start-network-during-install-set-def.patch +++ /dev/null @@ -1,1820 +0,0 @@ -From 7d67dbbb889a754c71a878fa69fcf2aa18fcdbb7 Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: do not start network during install, set default - hostname and write minimal network configuration -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/network.py | 14 +- - pyanaconda/ui/gui/spokes/network.py | 1750 ----------------------------------- - 2 files changed, 8 insertions(+), 1756 deletions(-) - delete mode 100644 pyanaconda/ui/gui/spokes/network.py - -diff --git a/pyanaconda/network.py b/pyanaconda/network.py -index b92fb8acf..5d3dcd604 100644 ---- a/pyanaconda/network.py -+++ b/pyanaconda/network.py -@@ -54,7 +54,7 @@ networkConfFile = "%s/network" % (sysconfigDir) - hostnameFile = "/etc/hostname" - ipv6ConfFile = "/etc/sysctl.d/anaconda.conf" - ifcfgLogFile = "/tmp/ifcfg.log" --DEFAULT_HOSTNAME = "localhost.localdomain" -+DEFAULT_HOSTNAME = "dom0" - - ifcfglog = None - -@@ -1191,24 +1191,26 @@ def write_sysconfig_network(rootpath, overwrite=False): - - with open(cfgfile, "w") as f: - f.write("# Created by anaconda\n") -+ f.write("NETWORKING=no\n") - return True - - def write_network_config(storage, ksdata, instClass, rootpath): - # overwrite previous settings for LiveCD or liveimg installations - overwrite = flags.livecdInstall or ksdata.method.method == "liveimg" - -- write_hostname(rootpath, ksdata, overwrite=overwrite) -+ write_hostname(rootpath, ksdata, overwrite=flags.livecdInstall) - if ksdata.network.hostname != DEFAULT_HOSTNAME: - set_hostname(ksdata.network.hostname) -- write_sysconfig_network(rootpath, overwrite=overwrite) -+ write_sysconfig_network(rootpath, overwrite=flags.livecdInstall) - disableIPV6(rootpath) - copyIfcfgFiles(rootpath) - copyDhclientConfFiles(rootpath) - copyFileToPath("/etc/resolv.conf", rootpath, overwrite=overwrite) -- instClass.setNetworkOnbootDefault(ksdata) -- autostartFCoEDevices(rootpath, storage, ksdata) - --def update_hostname_data(ksdata, hostname): -+def update_hostname_data(ksdata, hostname=None): -+ if not hostname: -+ # Default to 'dom0' in Qubes -+ hostname = 'dom0' - log.debug("updating host name %s", hostname) - hostname_found = False - for nd in ksdata.network.network: -diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py -deleted file mode 100644 -index a15a07ccb..000000000 ---- a/pyanaconda/ui/gui/spokes/network.py -+++ /dev/null -@@ -1,1750 +0,0 @@ --# Network configuration spoke classes --# --# Copyright (C) 2011 Red Hat, Inc. --# --# This copyrighted material is made available to anyone wishing to use, --# modify, copy, or redistribute it subject to the terms and conditions of --# the GNU General Public License v.2, or (at your option) any later version. --# This program is distributed in the hope that it will be useful, but WITHOUT --# ANY WARRANTY expressed or implied, including the implied warranties 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, write to the --# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA --# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the --# source code or documentation are not subject to the GNU General Public --# License and may only be used or replicated with the express permission of --# Red Hat, Inc. --# -- --import gi --gi.require_version("Gtk", "3.0") --gi.require_version("GLib", "2.0") --gi.require_version("GObject", "2.0") --gi.require_version("Pango", "1.0") --gi.require_version("Gio", "2.0") --gi.require_version("NM", "1.0") -- --from gi.repository import Gtk --from gi.repository import GLib, GObject, Pango, Gio, NM -- --from pyanaconda.flags import can_touch_runtime_system --from pyanaconda.i18n import _, N_, C_, CN_ --from pyanaconda.flags import flags as anaconda_flags --from pyanaconda.ui.communication import hubQ --from pyanaconda.ui.gui import GUIObject --from pyanaconda.ui.gui.spokes import NormalSpoke, StandaloneSpoke --from pyanaconda.ui.categories.system import SystemCategory --from pyanaconda.ui.gui.hubs.summary import SummaryHub --from pyanaconda.ui.gui.utils import gtk_call_once, escape_markup, really_hide, really_show --from pyanaconda.ui.common import FirstbootSpokeMixIn --from pyanaconda.iutil import startProgram --from pyanaconda.constants import ANACONDA_ENVIRON -- --from pyanaconda import network --from pyanaconda import nm -- --import dbus --import dbus.service --# Used for ascii_letters and hexdigits constants --import string # pylint: disable=deprecated-module --from uuid import uuid4 -- --from dbus.mainloop.glib import DBusGMainLoop --DBusGMainLoop(set_as_default=True) -- --import logging --log = logging.getLogger("anaconda") -- --NM._80211ApFlags = getattr(NM, "80211ApFlags") --NM._80211ApSecurityFlags = getattr(NM, "80211ApSecurityFlags") --NM._80211Mode = getattr(NM, "80211Mode") -- --NM_SERVICE = "org.freedesktop.NetworkManager" --NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION = 0x1 --SECRET_AGENT_IFACE = 'org.freedesktop.NetworkManager.SecretAgent' --AGENT_MANAGER_IFACE = 'org.freedesktop.NetworkManager.AgentManager' --AGENT_MANAGER_PATH = "/org/freedesktop/NetworkManager/AgentManager" -- --IPV4_CONFIG = "IPv4" --IPV6_CONFIG = "IPv6" -- --DEVICES_COLUMN_TITLE = 2 --DEVICES_COLUMN_OBJECT = 3 -- --nmclient = NM.Client.new() -- --def localized_string_of_device_state(device, state): -- s = _("Status unknown (missing)") -- -- if state == NM.DeviceState.UNKNOWN: -- s = _("Status unknown") -- elif state == NM.DeviceState.UNMANAGED: -- s = _("Unmanaged") -- elif state == NM.DeviceState.UNAVAILABLE: -- if not device: -- s = _("Unavailable") -- elif device.get_firmware_missing(): -- s = _("Firmware missing") -- else: -- s = _("Unavailable") -- elif state == NM.DeviceState.DISCONNECTED: -- if (device and device.get_device_type() == NM.DeviceType.ETHERNET -- and not device.get_carrier()): -- s = _("Cable unplugged") -- else: -- s = _("Disconnected") -- elif state in (NM.DeviceState.PREPARE, -- NM.DeviceState.CONFIG, -- NM.DeviceState.IP_CONFIG, -- NM.DeviceState.IP_CHECK): -- s = _("Connecting") -- elif state == NM.DeviceState.NEED_AUTH: -- s = _("Authentication required") -- elif state == NM.DeviceState.ACTIVATED: -- s = _("Connected") -- elif state == NM.DeviceState.DEACTIVATING: -- s = _("Disconnecting") -- elif state == NM.DeviceState.FAILED: -- s = _("Connection failed") -- -- return s -- --__all__ = ["NetworkSpoke", "NetworkStandaloneSpoke"] -- --class CellRendererSignal(Gtk.CellRendererPixbuf): -- -- __gtype_name__ = "CellRendererSignal" -- __gproperties__ = { -- "signal": (GObject.TYPE_UINT, -- "Signal", "Signal", -- 0, GObject.G_MAXUINT, 0, -- GObject.PARAM_READWRITE), -- } -- -- def __init__(self): -- Gtk.CellRendererPixbuf.__init__(self) -- self.signal = 0 -- -- -- def do_get_property(self, prop): -- if prop.name == 'signal': -- return self.signal -- else: -- raise AttributeError('unknown property %s' % prop.name) -- -- def do_set_property(self, prop, value): -- if prop.name == 'signal': -- self.signal = value -- self._set_icon_name(value) -- else: -- raise AttributeError('unknown property %s' % prop.name) -- -- def _set_icon_name(self, value): -- -- if value == 0: -- self.set_property("gicon", None) -- -- if value < 20: -- icon_name = "network-wireless-signal-none-symbolic" -- elif value < 40: -- icon_name = "network-wireless-signal-weak-symbolic" -- elif value < 50: -- icon_name = "network-wireless-signal-ok-symbolic" -- elif value < 80: -- icon_name = "network-wireless-signal-good-symbolic" -- else: -- icon_name = "network-wireless-signal-excellent-symbolic" -- -- icon = Gio.ThemedIcon.new_with_default_fallbacks(icon_name) -- self.set_property("gicon", icon) -- -- --NM_AP_SEC_UNKNOWN = 0 --NM_AP_SEC_NONE = 1 --NM_AP_SEC_WEP = 2 --NM_AP_SEC_WPA = 3 --NM_AP_SEC_WPA2 = 4 -- --class CellRendererSecurity(Gtk.CellRendererPixbuf): -- -- __gtype_name__ = "CellRendererSecurity" -- __gproperties__ = { -- "security": (GObject.TYPE_UINT, -- "Security", "Security", -- 0, GObject.G_MAXUINT, 0, -- GObject.PARAM_READWRITE), -- } -- -- def __init__(self): -- Gtk.CellRendererPixbuf.__init__(self) -- self.security = NM_AP_SEC_UNKNOWN -- self.icon_name = "" -- -- def do_get_property(self, prop): -- if prop.name == 'security': -- return self.security -- else: -- raise AttributeError('unknown property %s' % prop.name) -- -- def do_set_property(self, prop, value): -- if prop.name == 'security': -- self.security = value -- self._set_icon_name(value) -- else: -- raise AttributeError('unknown property %s' % prop.name) -- -- def _set_icon_name(self, security): -- self.icon_name = "" -- if security not in (NM_AP_SEC_NONE, NM_AP_SEC_UNKNOWN): -- self.icon_name = "network-wireless-encrypted-symbolic" -- -- self.set_property("icon-name", self.icon_name) -- --class DeviceConfiguration(object): -- -- setting_types = { -- '802-11-wireless': NM.DeviceType.WIFI, -- '802-3-ethernet': NM.DeviceType.ETHERNET, -- 'vlan': NM.DeviceType.VLAN, -- 'bond': NM.DeviceType.BOND, -- 'team': NM.DeviceType.TEAM, -- 'bridge': NM.DeviceType.BRIDGE, -- } -- -- def __init__(self, device=None, con=None): -- self.device = device -- self.con = con -- -- def get_device_type(self): -- if self.device: -- return self.device.get_device_type() -- elif self.con: -- return self.setting_types.get(self.con.get_connection_type(), None) -- else: -- return None -- -- def get_iface(self): -- iface = None -- if self.device: -- iface = self.device.get_iface() -- elif self.con: -- iface = self.con.get_setting_connection().get_interface_name() -- wired_setting = self.con.get_setting_wired() -- if not iface and wired_setting: -- mac = wired_setting.get_mac_address() -- if mac: -- iface = nm.nm_hwaddr_to_device_name(mac) -- return iface -- -- def get_uuid(self): -- return self.con and self.con.get_uuid() -- --class NetworkControlBox(GObject.GObject): -- -- __gsignals__ = { -- "nm-state-changed": (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, []), -- "device-state-changed": (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, [str, int, int, int]), -- "apply-hostname": (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, []), -- } -- -- supported_device_types = [ -- NM.DeviceType.ETHERNET, -- NM.DeviceType.WIFI, -- NM.DeviceType.TEAM, -- NM.DeviceType.BOND, -- NM.DeviceType.VLAN, -- NM.DeviceType.BRIDGE, -- ] -- -- wired_ui_device_types = [ -- NM.DeviceType.ETHERNET, -- NM.DeviceType.TEAM, -- NM.DeviceType.BOND, -- NM.DeviceType.VLAN, -- NM.DeviceType.BRIDGE, -- ] -- -- device_type_sort_value = { -- NM.DeviceType.ETHERNET : "1", -- NM.DeviceType.WIFI : "2", -- } -- -- device_type_name = { -- NM.DeviceType.UNKNOWN: N_("Unknown"), -- NM.DeviceType.ETHERNET: N_("Ethernet"), -- NM.DeviceType.WIFI: N_("Wireless"), -- NM.DeviceType.BOND: N_("Bond"), -- NM.DeviceType.VLAN: N_("VLAN"), -- NM.DeviceType.TEAM: N_("Team"), -- NM.DeviceType.BRIDGE: N_("Bridge"), -- } -- -- def __init__(self, builder, client, spoke=None): -- -- GObject.GObject.__init__(self) -- -- self.builder = builder -- self._running_nmce = None -- self.spoke = spoke -- self.client = client -- -- # button for creating of virtual bond and vlan devices -- self.builder.get_object("add_toolbutton").set_sensitive(True) -- self.builder.get_object("add_toolbutton").connect("clicked", -- self.on_add_device_clicked) -- self.builder.get_object("remove_toolbutton").set_sensitive(False) -- self.builder.get_object("remove_toolbutton").connect("clicked", -- self.on_remove_device_clicked) -- -- not_supported = ["start_hotspot_button", -- "stop_hotspot_button", -- "heading_hotspot_network_name", -- "heading_hotspot_security_key", -- "label_hotspot_network_name", -- "label_hotspot_security_key", -- "hbox54", -- ] -- -- do_not_show_in_refresh = ["heading_wireless_network_name", -- "combobox_wireless_network_name"] -- do_not_show_in_refresh += ["%s_%s_%s" % (widget, ty, value) -- for widget in ["heading", "label"] -- for ty in ["wired", "wireless"] -- for value in ["ipv4", "ipv6", "dns", "route"]] -- do_not_show_in_refresh += ["%s_wired_%s" % (widget, value) -- for widget in ["heading", "label"] -- for value in ["slaves", "vlanid", "parent"]] -- -- for ident in not_supported + do_not_show_in_refresh: -- self.builder.get_object(ident).set_no_show_all(True) -- self.builder.get_object(ident).hide() -- -- self.builder.get_object("notebook_types").set_show_tabs(False) -- -- # to prevent UI update signals races -- self._updating_device = False -- -- # devices list -- # limited to wired and wireless -- treeview = self.builder.get_object("treeview_devices") -- self._add_device_columns(treeview) -- self.dev_cfg_store = self.builder.get_object("liststore_devices") -- self.dev_cfg_store.set_sort_column_id(2, Gtk.SortType.ASCENDING) -- selection = treeview.get_selection() -- selection.set_mode(Gtk.SelectionMode.BROWSE) -- selection.connect("changed", self.on_device_selection_changed) -- -- # wireless APs list -- combobox = self.builder.get_object("combobox_wireless_network_name") -- self._add_ap_icons(combobox) -- model = combobox.get_model() -- model.set_sort_column_id(2, Gtk.SortType.ASCENDING) -- combobox.connect("changed", self.on_wireless_ap_changed_cb) -- self.selected_ap = None -- -- self.builder.get_object("device_wired_off_switch").connect("notify::active", -- self.on_device_off_toggled) -- self.builder.get_object("device_wireless_off_switch").connect("notify::active", -- self.on_device_off_toggled) -- self.builder.get_object("button_wired_options").connect("clicked", -- self.on_edit_connection) -- self.builder.get_object("button_wireless_options").connect("clicked", -- self.on_edit_connection) -- self.entry_hostname = self.builder.get_object("entry_hostname") -- self.label_current_hostname = self.builder.get_object("label_current_hostname") -- self.button_apply_hostname = self.builder.get_object("button_apply_hostname") -- self.button_apply_hostname.connect("clicked", self.on_apply_hostname) -- -- @property -- def vbox(self): -- return self.builder.get_object("networkControlBox_vbox") -- -- -- def _add_ap_icons(self, combobox): -- cell = CellRendererSecurity() -- cell.set_padding(4, 0) -- combobox.pack_start(cell, False) -- combobox.add_attribute(cell, "security", 5) -- -- cell = CellRendererSignal() -- cell.set_padding(4, 0) -- #cell.set_property("xalign", 1.0) -- combobox.pack_start(cell, False) -- combobox.add_attribute(cell, "signal", 3) -- -- def _add_device_columns(self, treeview): -- rnd = Gtk.CellRendererPixbuf() -- rnd.set_property("stock-size", Gtk.IconSize.DND) -- # TODO Gtk3 icon-name? (also at other places) -- col = Gtk.TreeViewColumn("Icon", rnd, **{"icon-name":0}) -- treeview.append_column(col) -- -- rnd = Gtk.CellRendererText() -- rnd.set_property("wrap-mode", Pango.WrapMode.WORD) -- col = Gtk.TreeViewColumn("Text", rnd, markup=2) -- col.set_sort_column_id(2) -- col.set_expand(True) -- treeview.append_column(col) -- -- def add_connection_to_list(self, con): -- uuid = con.get_uuid() -- if self.dev_cfg(uuid=uuid): -- log.debug("network: GUI, not adding connection %s, already in list", uuid) -- return False -- con_setting = con.get_setting_connection() -- if con_setting and con_setting.get_read_only(): -- log.debug("network: GUI, not adding read-only connection %s", uuid) -- return False -- dev_cfg = DeviceConfiguration(con=con) -- if network.is_libvirt_device(dev_cfg.get_iface() or ""): -- log.debug("network: GUI, not adding %s", dev_cfg.get_iface()) -- return False -- if network.is_ibft_configured_device(dev_cfg.get_iface() or ""): -- log.debug("network: GUI, not adding %s configured from iBFT", dev_cfg.get_iface()) -- return False -- if dev_cfg.get_device_type() not in self.supported_device_types: -- log.debug("network: GUI, not adding connection %s of unsupported type", uuid) -- return False -- if dev_cfg.get_device_type() == NM.DeviceType.ETHERNET: -- if con_setting and con_setting.get_master(): -- log.debug("network: GUI, not adding slave connection %s", uuid) -- return False -- # Wireless settings are handled in scope of its device's dev_cfg -- if dev_cfg.get_device_type() == NM.DeviceType.WIFI: -- log.debug("network: GUI, not adding wireless connection %s", uuid) -- return False -- existing_dev_cfg = self.dev_cfg(iface=dev_cfg.get_iface()) -- if existing_dev_cfg: -- if existing_dev_cfg.con: -- log.debug("network: GUI, not adding connection %s, already have %s for device %s", -- uuid, existing_dev_cfg.get_uuid(), existing_dev_cfg.device.get_iface()) -- return False -- else: -- log.debug("network: GUI, attaching connection %s to device %s", -- uuid, existing_dev_cfg.device.get_iface()) -- existing_dev_cfg.con = con -- else: -- log.debug("network: GUI, adding connection %s", uuid) -- self.add_dev_cfg(dev_cfg) -- return True -- -- def initialize(self): -- self.client.connect("device-added", self.on_device_added) -- self.client.connect("device-removed", self.on_device_removed) -- self.client.connect("connection-added", self.on_connection_added) -- self.client.connect("notify::%s" % NM.CLIENT_WIRELESS_ENABLED, -- self.on_wireless_enabled) -- self.client.connect("notify::%s" % NM.CLIENT_STATE, -- self.on_nm_state_changed) -- -- for device in self.client.get_devices(): -- self.add_device_to_list(device) -- -- for con in self.client.get_connections(): -- self.add_connection_to_list(con) -- -- # select the first device -- treeview = self.builder.get_object("treeview_devices") -- selection = treeview.get_selection() -- itr = self.dev_cfg_store.get_iter_first() -- if itr: -- selection.select_iter(itr) -- -- def refresh(self): -- self.refresh_ui() -- -- # Signal handlers. -- def on_nm_state_changed(self, *args): -- self.emit("nm-state-changed") -- -- def on_device_selection_changed(self, *args): -- self.refresh_ui() -- -- def on_device_state_changed(self, device, new_state, *args): -- self.emit("device-state-changed", device.get_iface(), new_state, *args) -- if new_state == NM.DeviceState.SECONDARIES: -- return -- self._refresh_carrier_info() -- dev_cfg = self.selected_dev_cfg() -- if dev_cfg and dev_cfg.device == device: -- self.refresh_ui(state=new_state) -- -- def on_device_config_changed(self, device, *args): -- dev_cfg = self.selected_dev_cfg() -- if dev_cfg and dev_cfg.device == device: -- self.refresh_ui() -- -- def on_wireless_ap_changed_cb(self, combobox, *args): -- if self._updating_device: -- return -- itr = combobox.get_active_iter() -- if not itr: -- return -- -- dev_cfg = self.selected_dev_cfg() -- if not dev_cfg: -- return -- -- device = dev_cfg.device -- -- ap, ssid_target = combobox.get_model().get(itr, 0, 1) -- self.selected_ap = ap -- -- log.info("network: selected access point: %s", ssid_target) -- -- cons = ap.filter_connections(device.filter_connections(self.client.get_connections())) -- if cons: -- con = cons[0] -- self.client.activate_connection_async(con, device, ap.get_path(), None) -- else: -- if self._ap_is_enterprise(ap): -- # Create a connection for the ap and [Configure] it later with nm-c-e -- con = NM.SimpleConnection.new() -- s_con = NM.SettingConnection.new() -- s_con.set_property('uuid', str(uuid4())) -- s_con.set_property('id', ssid_target) -- s_con.set_property('type', '802-11-wireless') -- s_wireless = NM.SettingWireless.new() -- s_wireless.set_property('ssid', ap.get_ssid()) -- s_wireless.set_property('mode', 'infrastructure') -- log.debug("network: adding connection for WPA-Enterprise AP %s", ssid_target) -- con.add_setting(s_con) -- con.add_setting(s_wireless) -- persistent = True -- self.client.add_connection_async(con, persistent, None) -- self.builder.get_object("button_wireless_options").set_sensitive(True) -- else: -- self.client.add_and_activate_connection_async(None, device, ap.get_path(), None) -- -- def on_connection_added(self, client, connection): -- self.add_connection_to_list(connection) -- -- def on_device_added(self, client, device, *args): -- # We need to wait for valid state before adding the device to our list -- if device.get_state() == NM.DeviceState.UNKNOWN: -- device.connect("state-changed", self.on_added_device_state_changed) -- else: -- self.add_device_to_list(device) -- -- def on_added_device_state_changed(self, device, new_state, *args): -- # We need to wait for valid state before adding the device to our list -- if new_state != NM.DeviceState.UNKNOWN: -- device.disconnect_by_func(self.on_added_device_state_changed) -- self.add_device_to_list(device) -- -- def on_device_removed(self, client, device, *args): -- self.remove_device(device) -- -- def _find_first_ap_setting(self, device, ap): -- for con in device.filter_connections(self.client.get_connections()): -- wireless_setting = con.get_setting_wireless() -- if not wireless_setting or not wireless_setting.get_ssid(): -- # setting is None or non-broadcast AP, we ignore these -- return -- if wireless_setting.get_ssid().get_data() == ap.get_ssid().get_data(): -- return con -- -- def on_edit_connection(self, *args): -- dev_cfg = self.selected_dev_cfg() -- if not dev_cfg: -- return -- -- device = dev_cfg.device -- con = dev_cfg.con -- activate = None -- ssid = "" -- -- if dev_cfg.get_device_type() == NM.DeviceType.WIFI: -- if not self.selected_ap: -- return -- ssid = self.selected_ap.get_ssid().get_data() -- con = self._find_first_ap_setting(device, self.selected_ap) -- if not con: -- log.debug("network: on_edit_connection: connection for ap %s not found", self.selected_ap) -- return -- # 871132 auto activate wireless connection after editing if it is not -- # already activated (assume entering secrets) -- condition = lambda: self.selected_ap != device.get_active_access_point() -- activate = (con, device, condition) -- else: -- if not con: -- log.debug("network: on_edit_connection: connection for device %s not found", device.get_iface()) -- if dev_cfg.get_device_type() == NM.DeviceType.ETHERNET: -- # Create default connection for the device and run nm-c-e on it -- default_con = self._default_eth_con(device.get_iface(), autoconnect=False) -- persistent = False -- log.info("network: creating new connection for %s device", dev_cfg.get_iface()) -- self.client.add_connection_async(default_con, persistent, None, -- self._default_connection_added_cb, activate) -- return -- -- if device and device.get_state() == NM.DeviceState.ACTIVATED: -- # Reactivate the connection after configuring it (if it changed) -- settings = con.to_dbus(NM.ConnectionSerializationFlags.ALL) -- settings_changed = lambda: settings != con.to_dbus(NM.ConnectionSerializationFlags.ALL) -- activate = (con, device, settings_changed) -- -- log.info("network: configuring connection %s device %s ssid %s", -- con.get_uuid(), dev_cfg.get_iface(), ssid) -- self._run_nmce(con.get_uuid(), activate) -- -- def _default_connection_added_cb(self, client, result, activate): -- con = client.add_connection_finish(result) -- uuid = con.get_setting_connection().get_uuid() -- log.info("network: configuring new connection %s", uuid) -- self._run_nmce(uuid, activate) -- -- def _run_nmce(self, uuid, activate): -- self.kill_nmce(msg="Configure button clicked") -- proc = startProgram(["nm-connection-editor", "--keep-above", "--edit", "%s" % uuid], reset_lang=False) -- self._running_nmce = proc -- -- GLib.child_watch_add(proc.pid, self.on_nmce_exited, activate) -- -- def _default_eth_con(self, iface, autoconnect): -- con = NM.SimpleConnection.new() -- s_con = NM.SettingConnection.new() -- s_con.set_property('uuid', str(uuid4())) -- s_con.set_property('id', iface) -- s_con.set_property('interface-name', iface) -- s_con.set_property('autoconnect', autoconnect) -- s_con.set_property('type', '802-3-ethernet') -- s_wired = NM.SettingWired.new() -- con.add_setting(s_con) -- con.add_setting(s_wired) -- return con -- -- def kill_nmce(self, msg=""): -- if not self._running_nmce: -- return False -- -- log.debug("network: killing running nm-c-e %s: %s", self._running_nmce.pid, msg) -- self._running_nmce.kill() -- self._running_nmce = None -- return True -- -- def on_nmce_exited(self, pid, condition, activate=None): -- # waitpid() has been called, make sure we don't do anything else with the proc -- self._running_nmce = None -- log.debug("nm-c-e exited with status %s", condition) -- -- # nm-c-e was closed normally, not killed by anaconda -- if condition == 0: -- if activate: -- # The default of None confuses pylint -- con, device, activate_condition = activate # pylint: disable=unpacking-non-sequence -- if activate_condition(): -- gtk_call_once(self._activate_connection_cb, con, device) -- network.logIfcfgFiles("nm-c-e run") -- -- def _activate_connection_cb(self, con, device): -- self.client.activate_connection_async(con, device, None, None) -- if self.spoke: -- self.spoke.networking_changed = True -- -- def on_wireless_enabled(self, *args): -- switch = self.builder.get_object("device_wireless_off_switch") -- self._updating_device = True -- switch.set_active(self.client.wireless_get_enabled()) -- self._updating_device = False -- -- def on_device_off_toggled(self, switch, *args): -- if self._updating_device: -- return -- -- active = switch.get_active() -- dev_cfg = self.selected_dev_cfg() -- if not dev_cfg: -- return -- device = dev_cfg.device -- con = dev_cfg.con -- -- log.info("network: device %s switched %s", dev_cfg.get_iface(), "on" if active else "off") -- -- if dev_cfg.get_device_type() == NM.DeviceType.WIFI: -- self.client.wireless_set_enabled(active) -- else: -- if active: -- if not con: -- log.debug("network: on_device_off_toggled: no connection for %s", -- dev_cfg.get_iface()) -- return -- -- self.client.activate_connection_async(con, device, None, None) -- else: -- if not device: -- log.debug("network: on_device_off_toggled: no device for %s", dev_cfg.get_iface()) -- return -- device.disconnect(None) -- -- if self.spoke: -- self.spoke.networking_changed = True -- -- def on_add_device_clicked(self, *args): -- dialog = self.builder.get_object("add_device_dialog") -- with self.spoke.main_window.enlightbox(dialog): -- rc = dialog.run() -- dialog.hide() -- if rc == 1: -- ai = self.builder.get_object("combobox_add_device").get_active_iter() -- model = self.builder.get_object("liststore_add_device") -- dev_type = model[ai][1] -- self.add_device(dev_type) -- -- def on_remove_device_clicked(self, *args): -- selection = self.builder.get_object("treeview_devices").get_selection() -- model, itr = selection.get_selected() -- if not itr: -- return None -- dev_cfg = model[itr][DEVICES_COLUMN_OBJECT] -- model.remove(itr) -- if dev_cfg.con: -- dev_cfg.con.delete() -- -- def on_apply_hostname(self, *args): -- self.emit("apply-hostname") -- -- def add_device(self, ty): -- log.info("network: adding device of type %s", ty) -- self.kill_nmce(msg="Add device button clicked") -- proc = startProgram(["nm-connection-editor", "--keep-above", "--create", "--type=%s" % ty], reset_lang=False) -- self._running_nmce = proc -- -- GLib.child_watch_add(proc.pid, self.on_nmce_exited) -- -- def selected_dev_cfg(self): -- selection = self.builder.get_object("treeview_devices").get_selection() -- model, itr = selection.get_selected() -- if not itr: -- return None -- return model[itr][DEVICES_COLUMN_OBJECT] -- -- def add_dev_cfg(self, dev_cfg): -- log.debug("network: GUI, device configuration added: connection %s device %s", -- dev_cfg.get_uuid(), dev_cfg.get_iface()) -- self.dev_cfg_store.append([ -- self._dev_icon_name(dev_cfg), -- self.device_type_sort_value.get(dev_cfg.get_device_type(), "100"), -- self._dev_title(dev_cfg), -- dev_cfg -- ]) -- -- def add_device_to_list(self, device): -- if device.get_device_type() not in self.supported_device_types: -- return -- if network.is_libvirt_device(device.get_iface()): -- log.debug("network: not adding %s", device.get_iface()) -- return -- # ignore fcoe vlan devices -- # (can be chopped off to IFNAMSIZ kernel limit) -- if device.get_iface().endswith(('-fcoe', '-fco', '-fc', '-f', '-')): -- return -- if network.is_ibft_configured_device(device.get_iface() or ""): -- log.debug("network: not adding connection for device %s configured from iBFT", device.get_iface()) -- return False -- -- # Ignore devices with active read-only connections (created by NM for iBFT VLAN) -- ac = device.get_active_connection() -- if ac: -- rc = ac.get_connection() -- # Getting of NMRemoteConnection can fail (None), isn't it a bug in NM? -- if rc: -- con_setting = rc.get_setting_connection() -- if con_setting and con_setting.get_read_only(): -- log.debug("network: not adding read-only connection " -- "(assuming iBFT) for device %s", device.get_iface()) -- return -- else: -- log.debug("network: can't get remote connection of active connection " -- "of device %s", device.get_iface()) -- -- # Find the connection for the device (assuming existence of single ifcfg actually) -- con = None -- # Wifi connections are stored in wifi tab combobox -- if device.get_device_type() != NM.DeviceType.WIFI: -- cons = device.get_available_connections() -- for c in cons: -- if c.get_setting_connection() and not c.get_setting_connection().get_slave_type(): -- con = c -- if len(cons) != 1: -- log.warning("network: %s has unexpected number of connections: %s", -- device.get_iface(), [c.get_uuid() for c in cons]) -- -- if con and self.dev_cfg(uuid=con.get_uuid()): -- # If we already have a connection for the device -- # it is a virtual device appearing -- self.dev_cfg(uuid=con.get_uuid()).device = device -- # it might be too late for the callbacks below so refresh now -- self.refresh_ui() -- else: -- self.add_dev_cfg(DeviceConfiguration(device=device, con=con)) -- -- device.connect("notify::ip4-config", self.on_ip_obj_changed, IPV4_CONFIG) -- device.connect("notify::ip6-config", self.on_ip_obj_changed, IPV6_CONFIG) -- device.connect("state-changed", self.on_device_state_changed) -- -- def on_ip_obj_changed(self, device, *args): -- """Callback when ipX-config objects will be changed. -- -- Register callback on properties (IP address, gateway...) of these ipX-config -- objects when they are created. -- """ -- log.debug("network: %s object changed", args[1]) -- self.on_device_config_changed(device) -- if args[1] == IPV4_CONFIG: -- config = device.props.ip4_config -- else: -- config = device.props.ip6_config -- -- if config: -- # register callback when inner NMIP[4,6]Config object changed -- config.connect("notify::addresses", self.on_config_changed, device) -- config.connect("notify::gateway", self.on_config_changed, device) -- config.connect("notify::nameservers", self.on_config_changed, device) -- -- def on_config_changed(self, config, *args): -- """Callback on property change of ipX-config objects. -- -- Call method which show changed properties (IP, gateway...) to an user. -- """ -- self.on_device_config_changed(args[1]) -- -- def _dev_icon_name(self, dev_cfg): -- icon_name = "" -- if dev_cfg.get_device_type() in self.wired_ui_device_types: -- if dev_cfg.device: -- if dev_cfg.device.get_state() == NM.DeviceState.UNAVAILABLE: -- icon_name = "network-wired-disconnected" -- else: -- icon_name = "network-wired" -- else: -- icon_name = "network-wired-disconnected" -- elif dev_cfg.get_device_type() == NM.DeviceType.WIFI: -- icon_name = "network-wireless" -- -- return icon_name -- -- def _dev_title(self, dev_cfg): -- unplugged = '' -- -- if dev_cfg.device: -- if (dev_cfg.device.get_state() == NM.DeviceState.UNAVAILABLE -- and dev_cfg.device.get_device_type() == NM.DeviceType.ETHERNET -- and not dev_cfg.device.get_carrier()): -- # TRANSLATORS: ethernet cable is unplugged -- unplugged = ', %s' % escape_markup(_("unplugged")) -- # pylint: disable=unescaped-markup -- title = '%s (%s%s)' % \ -- (escape_markup(_(self.device_type_name.get(dev_cfg.get_device_type(), ""))), -- escape_markup(dev_cfg.get_iface()), -- unplugged) -- -- if dev_cfg.device: -- title += '\n%s %s' % \ -- (escape_markup(dev_cfg.device.get_vendor() or ""), -- escape_markup(dev_cfg.device.get_product() or "")) -- return title -- -- def dev_cfg(self, uuid=None, device=None, iface=None): -- for row in self.dev_cfg_store: -- dev_cfg = row[DEVICES_COLUMN_OBJECT] -- if uuid: -- if dev_cfg.get_uuid() != uuid: -- continue -- if device: -- if not dev_cfg.device \ -- or dev_cfg.device.get_udi() != device.get_udi(): -- continue -- if iface: -- if not dev_cfg.device \ -- or dev_cfg.device.get_iface() != iface: -- continue -- return dev_cfg -- return None -- -- def remove_device(self, device): -- # This should not concern wifi and ethernet devices, -- # just virtual devices e.g. vpn probably -- log.debug("network: GUI, device removed: %s", device.get_iface()) -- if self.spoke: -- self.spoke.networking_changed = True -- dev_cfg = self.dev_cfg(device=device) -- if dev_cfg: -- dev_cfg.device = None -- -- def refresh_ui(self, state=None): -- -- dev_cfg = self.selected_dev_cfg() -- if not dev_cfg: -- # the list is empty (no supported devices) -- notebook = self.builder.get_object("notebook_types") -- notebook.set_current_page(5) -- return -- -- self._refresh_device_type_page(dev_cfg.get_device_type()) -- self._refresh_header_ui(dev_cfg, state) -- self._refresh_slaves(dev_cfg) -- self._refresh_parent_vlanid(dev_cfg) -- self._refresh_speed_hwaddr(dev_cfg, state) -- self._refresh_ap(dev_cfg, state) -- self._refresh_device_cfg(dev_cfg) -- -- def _refresh_device_cfg(self, dev_cfg): -- -- if dev_cfg.get_device_type() in self.wired_ui_device_types: -- dt = "wired" -- elif dev_cfg.get_device_type() == NM.DeviceType.WIFI: -- dt = "wireless" -- -- if dev_cfg.device: -- ipv4cfg = dev_cfg.device.get_ip4_config() -- ipv6cfg = dev_cfg.device.get_ip6_config() -- else: -- ipv4cfg = ipv6cfg = None -- -- if ipv4cfg: -- addr_str = ",".join("%s/%d" % (a.get_address(), a.get_prefix()) -- for a in ipv4cfg.get_addresses()) -- gateway_str = ipv4cfg.get_gateway() -- dnss_str = ",".join(ipv4cfg.get_nameservers()) -- else: -- addr_str = dnss_str = gateway_str = None -- self._set_device_info_value(dt, "ipv4", addr_str) -- self._set_device_info_value(dt, "dns", dnss_str) -- self._set_device_info_value(dt, "route", gateway_str) -- -- addr6_str = "" -- if ipv6cfg: -- addr6_str = ",".join("%s/%d" % (a.get_address(), a.get_prefix()) -- for a in ipv6cfg.get_addresses() -- # Do not display link-local addresses -- if not a.get_address().startswith("fe80:")) -- self._set_device_info_value(dt, "ipv6", addr6_str.strip() or None) -- -- if ipv4cfg and addr6_str: -- self.builder.get_object("heading_%s_ipv4" % dt).set_label(_("IPv4 Address")) -- self.builder.get_object("heading_%s_ipv6" % dt).set_label(_("IPv6 Address")) -- elif ipv4cfg: -- self.builder.get_object("heading_%s_ipv4" % dt).set_label(_("IP Address")) -- elif addr6_str: -- self.builder.get_object("heading_%s_ipv6" % dt).set_label(_("IP Address")) -- -- return False -- -- def _refresh_ap(self, dev_cfg, state=None): -- if dev_cfg.get_device_type() != NM.DeviceType.WIFI: -- return -- -- if state is None: -- state = dev_cfg.device.get_state() -- if state == NM.DeviceState.UNAVAILABLE: -- ap_str = None -- else: -- active_ap = dev_cfg.device.get_active_access_point() -- if active_ap: -- ap_str = self._ap_security_string(active_ap) -- else: -- ap_str = "" -- -- self._set_device_info_value("wireless", "security", ap_str) -- -- if state == NM.DeviceState.UNAVAILABLE: -- self.builder.get_object("heading_wireless_network_name").hide() -- self.builder.get_object("combobox_wireless_network_name").hide() -- else: -- self.builder.get_object("heading_wireless_network_name").show() -- self.builder.get_object("combobox_wireless_network_name").show() -- -- store = self.builder.get_object("liststore_wireless_network") -- self._updating_device = True -- store.clear() -- aps = self._get_strongest_unique_aps(dev_cfg.device.get_access_points()) -- for ap in aps: -- self._add_ap(ap, active_ap == ap) -- # TODO: add access point other... -- if active_ap: -- combobox = self.builder.get_object("combobox_wireless_network_name") -- for i in combobox.get_model(): -- if i[0] == active_ap: -- combobox.set_active_iter(i.iter) -- self.selected_ap = active_ap -- break -- self._updating_device = False -- -- def _refresh_slaves(self, dev_cfg): -- if dev_cfg.get_device_type() in [NM.DeviceType.BOND, -- NM.DeviceType.TEAM, -- NM.DeviceType.BRIDGE]: -- slaves = "" -- if dev_cfg.device: -- slaves = ",".join(s.get_iface() for s in dev_cfg.device.get_slaves()) -- self._set_device_info_value("wired", "slaves", slaves) -- -- def _refresh_parent_vlanid(self, dev_cfg): -- if dev_cfg.get_device_type() == NM.DeviceType.VLAN: -- if dev_cfg.device: -- vlanid = dev_cfg.device.get_vlan_id() -- else: -- vlanid = dev_cfg.con.get_setting_vlan().get_id() -- parent = dev_cfg.con.get_setting_vlan().get_parent() -- self._set_device_info_value("wired", "vlanid", str(vlanid)) -- self._set_device_info_value("wired", "parent", parent) -- -- def _refresh_speed_hwaddr(self, dev_cfg, state=None): -- dev_type = dev_cfg.get_device_type() -- if dev_type in self.wired_ui_device_types: -- dt = "wired" -- elif dev_type == NM.DeviceType.WIFI: -- dt = "wireless" -- -- # Speed -- speed = None -- if dev_cfg.device: -- if dev_type == NM.DeviceType.ETHERNET: -- speed = dev_cfg.device.get_speed() -- elif dev_type == NM.DeviceType.WIFI: -- speed = dev_cfg.device.get_bitrate() / 1000 -- if state is None: -- state = dev_cfg.device.get_state() -- -- if not dev_cfg.device or state == NM.DeviceState.UNAVAILABLE: -- speed_str = None -- elif speed: -- speed_str = _("%d Mb/s") % speed -- else: -- speed_str = "" -- self._set_device_info_value(dt, "speed", speed_str) -- # Hardware address -- hwaddr = dev_cfg.device and dev_cfg.device.get_hw_address() -- self._set_device_info_value(dt, "mac", hwaddr) -- -- def _refresh_device_type_page(self, dev_type): -- notebook = self.builder.get_object("notebook_types") -- if dev_type == NM.DeviceType.ETHERNET: -- notebook.set_current_page(0) -- self.builder.get_object("heading_wired_slaves").hide() -- self.builder.get_object("label_wired_slaves").hide() -- self.builder.get_object("heading_wired_vlanid").hide() -- self.builder.get_object("label_wired_vlanid").hide() -- self.builder.get_object("heading_wired_parent").hide() -- self.builder.get_object("label_wired_parent").hide() -- self.builder.get_object("remove_toolbutton").set_sensitive(False) -- elif dev_type in [NM.DeviceType.BOND, -- NM.DeviceType.TEAM, -- NM.DeviceType.BRIDGE]: -- notebook.set_current_page(0) -- self.builder.get_object("heading_wired_slaves").show() -- self.builder.get_object("label_wired_slaves").show() -- self.builder.get_object("heading_wired_vlanid").hide() -- self.builder.get_object("label_wired_vlanid").hide() -- self.builder.get_object("heading_wired_parent").hide() -- self.builder.get_object("label_wired_parent").hide() -- self.builder.get_object("remove_toolbutton").set_sensitive(True) -- elif dev_type == NM.DeviceType.VLAN: -- notebook.set_current_page(0) -- self.builder.get_object("heading_wired_slaves").hide() -- self.builder.get_object("label_wired_slaves").hide() -- self.builder.get_object("heading_wired_vlanid").show() -- self.builder.get_object("label_wired_vlanid").show() -- self.builder.get_object("heading_wired_parent").show() -- self.builder.get_object("label_wired_parent").show() -- self.builder.get_object("remove_toolbutton").set_sensitive(True) -- elif dev_type == NM.DeviceType.WIFI: -- notebook.set_current_page(1) -- self.builder.get_object("button_wireless_options").set_sensitive(self.selected_ap is not None) -- -- def _refresh_carrier_info(self): -- for i in self.dev_cfg_store: -- i[DEVICES_COLUMN_TITLE] = self._dev_title(i[DEVICES_COLUMN_OBJECT]) -- -- def _refresh_header_ui(self, dev_cfg, state=None): -- if dev_cfg.get_device_type() in self.wired_ui_device_types: -- dev_type_str = "wired" -- elif dev_cfg.get_device_type() == NM.DeviceType.WIFI: -- dev_type_str = "wireless" -- -- if dev_type_str == "wired": -- # update icon according to device status -- img = self.builder.get_object("image_wired_device") -- img.set_from_icon_name(self._dev_icon_name(dev_cfg), Gtk.IconSize.DIALOG) -- -- # TODO: is this necessary? Isn't it static from glade? -- device_type_label = _(self.device_type_name.get(dev_cfg.get_device_type(), "")) -- self.builder.get_object("label_%s_device" % dev_type_str).set_label( -- "%s (%s)" % (device_type_label, dev_cfg.get_iface())) -- -- if state is None: -- if not dev_cfg.device: -- state = NM.DeviceState.DISCONNECTED -- else: -- state = dev_cfg.device.get_state() -- -- self.builder.get_object("label_%s_status" % dev_type_str).set_label( -- localized_string_of_device_state(dev_cfg.device, state)) -- -- switch = self.builder.get_object("device_%s_off_switch" % dev_type_str) -- if dev_type_str == "wired": -- switch.set_visible(state not in (NM.DeviceState.UNAVAILABLE, -- NM.DeviceState.UNMANAGED)) -- self._updating_device = True -- switch.set_active(state not in (NM.DeviceState.UNMANAGED, -- NM.DeviceState.UNAVAILABLE, -- NM.DeviceState.DISCONNECTED, -- NM.DeviceState.DEACTIVATING, -- NM.DeviceState.FAILED)) -- self._updating_device = False -- elif dev_type_str == "wireless": -- self.on_wireless_enabled() -- -- def _set_device_info_value(self, dev_type_str, info, value_str): -- heading = self.builder.get_object("heading_%s_%s" % (dev_type_str, info)) -- value_label = self.builder.get_object("label_%s_%s" % (dev_type_str, info)) -- if value_str is None: -- really_hide(heading) -- really_hide(value_label) -- else: -- really_show(heading) -- really_show(value_label) -- value_label.set_label(value_str) -- -- def _add_ap(self, ap, active=False): -- ssid = ap.get_ssid() -- if not ssid: -- # get_ssid can return None if AP does not broadcast. -- return -- ssid = ssid.get_data() -- if not ssid: -- return -- -- mode = ap.get_mode() -- if not mode: -- return -- -- security = self._ap_security(ap) -- -- store = self.builder.get_object("liststore_wireless_network") -- -- # Decode the SSID (a byte sequence) into something resembling a string -- ssid_str = NM.utils_ssid_to_utf8(ssid) -- -- # the third column is for sorting -- itr = store.append([ap, -- ssid_str, -- ssid_str, -- ap.get_strength(), -- mode, -- security]) -- if active: -- self.builder.get_object("combobox_wireless_network_name").set_active_iter(itr) -- -- def _get_strongest_unique_aps(self, access_points): -- strongest_aps = {} -- for ap in access_points: -- if not ap.get_ssid(): -- # non-broadcasting AP. We don't do anything with these -- continue -- ssid = ap.get_ssid().get_data() -- if ssid in strongest_aps: -- if ap.get_strength() > strongest_aps[ssid].get_strength(): -- strongest_aps[ssid] = ap -- else: -- strongest_aps[ssid] = ap -- -- return strongest_aps.values() -- -- def _ap_security(self, ap): -- ty = NM_AP_SEC_UNKNOWN -- -- flags = ap.get_flags() -- wpa_flags = ap.get_wpa_flags() -- rsn_flags = ap.get_rsn_flags() -- -- if (not (flags & NM._80211ApFlags.PRIVACY) and -- wpa_flags == NM._80211ApSecurityFlags.NONE and -- rsn_flags == NM._80211ApSecurityFlags.NONE): -- ty = NM_AP_SEC_NONE -- elif (flags & NM._80211ApFlags.PRIVACY and -- wpa_flags == NM._80211ApSecurityFlags.NONE and -- rsn_flags == NM._80211ApSecurityFlags.NONE): -- ty = NM_AP_SEC_WEP -- elif (not (flags & NM._80211ApFlags.PRIVACY) and -- wpa_flags != NM._80211ApSecurityFlags.NONE and -- rsn_flags != NM._80211ApSecurityFlags.NONE): -- ty = NM_AP_SEC_WPA -- else: -- ty = NM_AP_SEC_WPA2 -- -- return ty -- -- def _ap_security_string(self, ap): -- -- flags = ap.get_flags() -- wpa_flags = ap.get_wpa_flags() -- rsn_flags = ap.get_rsn_flags() -- -- sec_str = "" -- -- if ((flags & NM._80211ApFlags.PRIVACY) and -- wpa_flags == NM._80211ApSecurityFlags.NONE and -- rsn_flags == NM._80211ApSecurityFlags.NONE): -- sec_str += "%s, " % _("WEP") -- -- if wpa_flags != NM._80211ApSecurityFlags.NONE: -- sec_str += "%s, " % _("WPA") -- -- if rsn_flags != NM._80211ApSecurityFlags.NONE: -- sec_str += "%s, " % _("WPA2") -- -- if ((wpa_flags & NM._80211ApSecurityFlags.KEY_MGMT_802_1X) or -- (rsn_flags & NM._80211ApSecurityFlags.KEY_MGMT_802_1X)): -- sec_str += "%s, " % _("Enterprise") -- -- if sec_str: -- sec_str = sec_str[:-2] -- else: -- sec_str = _("None") -- -- return sec_str -- -- def _ap_is_enterprise(self, ap): -- wpa_flags = ap.get_wpa_flags() -- rsn_flags = ap.get_rsn_flags() -- return ((wpa_flags & NM._80211ApSecurityFlags.KEY_MGMT_802_1X) or -- (rsn_flags & NM._80211ApSecurityFlags.KEY_MGMT_802_1X)) -- -- @property -- def dev_cfgs(self): -- return [row[DEVICES_COLUMN_OBJECT] for -- row in self.dev_cfg_store] -- -- @property -- def hostname(self): -- return self.entry_hostname.get_text() -- -- @hostname.setter -- def hostname(self, value): -- if not value: -- return -- self.entry_hostname.set_text(value) -- -- @property -- def current_hostname(self): -- return self.label_current_hostname.get_text() -- -- @current_hostname.setter -- def current_hostname(self, value): -- if not value: -- return -- self.label_current_hostname.set_text(value) -- -- def disconnect_client_callbacks(self): -- for cb in [self.on_device_added, self.on_device_removed, -- self.on_connection_added, self.on_wireless_enabled, -- self.on_nm_state_changed]: -- _try_disconnect(self.client, cb) -- -- for device in self.client.get_devices(): -- _try_disconnect(device, self.on_device_config_changed) -- _try_disconnect(device, self.on_device_state_changed) -- _try_disconnect(device, self.on_ip_obj_changed) -- for config in self._get_ip_configs(device): -- _try_disconnect(config, self.on_config_changed) -- -- def _get_ip_configs(self, device): -- out = [] -- try: -- out.append(self.props.ip4_config) -- except AttributeError: -- pass -- try: -- out.append(self.props.ip6_config) -- except AttributeError: -- pass -- -- return out -- --def _try_disconnect(obj, callback): -- try: -- obj.disconnect_by_func(callback) -- except TypeError as e: -- if not "nothing connected" in str(e): -- log.debug("network: %s", e) -- --class SecretAgentDialog(GUIObject): -- builderObjects = ["secret_agent_dialog"] -- mainWidgetName = "secret_agent_dialog" -- uiFile = "spokes/network.glade" -- -- def __init__(self, *args, **kwargs): -- self._content = kwargs.pop('content', {}) -- GUIObject.__init__(self, *args, **kwargs) -- self.builder.get_object("label_message").set_text(self._content['message']) -- self._connect_button = self.builder.get_object("connect_button") -- -- def initialize(self): -- self._entries = {} -- grid = Gtk.Grid() -- grid.set_row_spacing(6) -- grid.set_column_spacing(6) -- -- for row, secret in enumerate(self._content['secrets']): -- label = Gtk.Label(label=secret['label'], halign=Gtk.Align.START) -- entry = Gtk.Entry(hexpand=True) -- entry.set_text(secret['value']) -- if secret['key']: -- self._entries[secret['key']] = entry -- else: -- entry.set_sensitive(False) -- if secret['password']: -- entry.set_visibility(False) -- self._validate(entry, secret) -- entry.connect("changed", self._validate, secret) -- entry.connect("activate", self._password_entered_cb) -- label.set_use_underline(True) -- label.set_mnemonic_widget(entry) -- grid.attach(label, 0, row, 1, 1) -- grid.attach(entry, 1, row, 1, 1) -- -- self.builder.get_object("password_box").add(grid) -- -- def run(self): -- self.initialize() -- self.window.show_all() -- rc = self.window.run() -- for secret in self._content['secrets']: -- if secret['key']: -- secret['value'] = self._entries[secret['key']].get_text() -- self.window.destroy() -- return rc -- -- @property -- def valid(self): -- return all(secret.get('valid', False) for secret in self._content['secrets']) -- -- def _validate(self, entry, secret): -- secret['value'] = entry.get_text() -- if secret['validate']: -- secret['valid'] = secret['validate'](secret) -- else: -- secret['valid'] = len(secret['value']) > 0 -- self._update_connect_button() -- -- def _password_entered_cb(self, entry): -- if self._connect_button.get_sensitive() and self.valid: -- self.window.response(1) -- -- def _update_connect_button(self): -- self._connect_button.set_sensitive(self.valid) -- --secret_agent = None -- --class NotAuthorizedException(dbus.DBusException): -- _dbus_error_name = SECRET_AGENT_IFACE + '.NotAuthorized' -- --class SecretAgent(dbus.service.Object): -- def __init__(self, spoke): -- self._bus = dbus.SystemBus() -- self.spoke = spoke -- dbus.service.Object.__init__(self, self._bus, "/org/freedesktop/NetworkManager/SecretAgent") -- -- @dbus.service.method(SECRET_AGENT_IFACE, -- in_signature='a{sa{sv}}osasb', -- out_signature='a{sa{sv}}', -- sender_keyword='sender') -- def GetSecrets(self, connection_hash, connection_path, setting_name, hints, flags, sender=None): -- if not sender: -- raise NotAuthorizedException("Internal error: couldn't get sender") -- uid = self._bus.get_unix_user(sender) -- if uid != 0: -- raise NotAuthorizedException("UID %d not authorized" % uid) -- -- log.debug("network: secrets requested path '%s' setting '%s' hints '%s' new %d", -- connection_path, setting_name, str(hints), flags) -- if not (flags & NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION): -- return -- -- content = self._get_content(setting_name, connection_hash) -- dialog = SecretAgentDialog(self.spoke.data, content=content) -- with self.spoke.main_window.enlightbox(dialog.window): -- rc = dialog.run() -- -- secrets = dbus.Dictionary() -- if rc == 1: -- for secret in content['secrets']: -- if secret['key']: -- secrets[secret['key']] = secret['value'] -- -- settings = dbus.Dictionary({setting_name: secrets}) -- -- return settings -- -- def _get_content(self, setting_name, connection_hash): -- content = {} -- connection_type = connection_hash['connection']['type'] -- if connection_type == "802-11-wireless": -- content['title'] = _("Authentication required by wireless network") -- content['message'] = _("Passwords or encryption keys are required to access\n" -- "the wireless network '%(network_id)s'.") \ -- % {'network_id':str(connection_hash['connection']['id'])} -- content['secrets'] = self._get_wireless_secrets(setting_name, connection_hash) -- else: -- log.info("Connection type %s not supported by secret agent", connection_type) -- -- return content -- -- def _get_wireless_secrets(self, setting_name, connection_hash): -- key_mgmt = connection_hash['802-11-wireless-security']['key-mgmt'] -- original_secrets = connection_hash[setting_name] -- secrets = [] -- if key_mgmt in ['wpa-none', 'wpa-psk']: -- secrets.append({'label' : C_('GUI|Network|Secrets Dialog', '_Password:'), -- 'key' : 'psk', -- 'value' : original_secrets.get('psk', ''), -- 'validate' : self._validate_wpapsk, -- 'password' : True}) -- # static WEP -- elif key_mgmt == 'none': -- key_idx = str(original_secrets.get('wep_tx_keyidx', '0')) -- secrets.append({'label' : C_('GUI|Network|Secrets Dialog', '_Key:'), -- 'key' : 'wep-key%s' % key_idx, -- 'value' : original_secrets.get('wep-key%s' % key_idx, ''), -- 'wep_key_type': original_secrets.get('wep-key-type', ''), -- 'validate' : self._validate_staticwep, -- 'password' : True}) -- # WPA-Enterprise -- elif key_mgmt == 'wpa-eap': -- eap = original_secrets['eap'][0] -- if eap in ('md5', 'leap', 'ttls', 'peap'): -- secrets.append({'label' : _('User name: '), -- 'key' : None, -- 'value' : original_secrets.get('identity', ''), -- 'validate' : None, -- 'password' : False}) -- secrets.append({'label' : _('Password: '), -- 'key' : 'password', -- 'value' : original_secrets.get('password', ''), -- 'validate' : None, -- 'password' : True}) -- elif eap == 'tls': -- secrets.append({'label' : _('Identity: '), -- 'key' : None, -- 'value' : original_secrets.get('identity', ''), -- 'validate' : None, -- 'password' : False}) -- secrets.append({'label' : _('Private key password: '), -- 'key' : 'private-key-password', -- 'value' : original_secrets.get('private-key-password', ''), -- 'validate' : None, -- 'password' : True}) -- else: -- log.info("Unsupported wireless key management: %s", key_mgmt) -- -- return secrets -- -- def _validate_wpapsk(self, secret): -- value = secret['value'] -- if len(value) == 64: -- # must be composed of hexadecimal digits only -- return all(c in string.hexdigits for c in value) -- else: -- return 8 <= len(value) <= 63 -- -- def _validate_staticwep(self, secret): -- value = secret['value'] -- if secret['wep_key_type'] == NM.WepKeyType.KEY: -- if len(value) in (10, 26): -- return all(c in string.hexdigits for c in value) -- elif len(value) in (5, 13): -- return all(c in string.ascii_letters for c in value) -- else: -- return False -- elif secret['wep_key_type'] == NM.WepKeyType.PASSPHRASE: -- return 0 <= len(value) <= 64 -- else: -- return True -- --def register_secret_agent(spoke): -- -- if not can_touch_runtime_system("register anaconda secret agent"): -- return False -- -- global secret_agent -- if not secret_agent: -- # Ignore an error from pylint incorrectly analyzing types in dbus-python -- secret_agent = SecretAgent(spoke) # pylint: disable=no-value-for-parameter -- bus = dbus.SystemBus() -- proxy = bus.get_object(NM_SERVICE, AGENT_MANAGER_PATH) -- proxy.Register("anaconda", dbus_interface=AGENT_MANAGER_IFACE) -- else: -- secret_agent.spoke = spoke -- -- return True -- -- --class NetworkSpoke(FirstbootSpokeMixIn, NormalSpoke): -- """ -- .. inheritance-diagram:: NetworkSpoke -- :parts: 3 -- """ -- builderObjects = ["networkWindow", "liststore_wireless_network", "liststore_devices", "add_device_dialog", "liststore_add_device"] -- mainWidgetName = "networkWindow" -- uiFile = "spokes/network.glade" -- helpFile = "NetworkSpoke.xml" -- -- title = CN_("GUI|Spoke", "_NETWORK & HOST NAME") -- icon = "network-transmit-receive-symbolic" -- -- category = SystemCategory -- -- def __init__(self, *args, **kwargs): -- NormalSpoke.__init__(self, *args, **kwargs) -- self.networking_changed = False -- self.network_control_box = NetworkControlBox(self.builder, nmclient, spoke=self) -- self.network_control_box.hostname = self.data.network.hostname -- self.network_control_box.current_hostname = network.current_hostname() -- self.network_control_box.connect("nm-state-changed", -- self.on_nm_state_changed) -- self.network_control_box.connect("device-state-changed", -- self.on_device_state_changed) -- self.network_control_box.connect("apply-hostname", -- self.on_apply_hostname) -- -- def apply(self): -- _update_network_data(self.data, self.network_control_box) -- log.debug("network: apply ksdata %s", self.data.network) -- -- # if installation media or hdd aren't used and settings have changed -- # try if source is available -- if self.networking_changed: -- if ANACONDA_ENVIRON in anaconda_flags.environs and self.payload.needsNetwork: -- log.debug("network spoke (apply) refresh payload") -- from pyanaconda.packaging import payloadMgr -- payloadMgr.restartThread(self.storage, self.data, self.payload, self.instclass, -- fallback=not anaconda_flags.automatedInstall) -- else: -- log.debug("network spoke (apply), payload refresh skipped (running outside of installation environment)") -- self.networking_changed = False -- else: -- log.debug("network spoke (apply), no changes detected") -- self.network_control_box.kill_nmce(msg="leaving network spoke") -- -- @property -- def completed(self): -- # TODO: check also if source requires updates when implemented -- return (not can_touch_runtime_system("require network connection") -- or nm.nm_activated_devices()) -- -- @property -- def mandatory(self): -- # the network spoke should be mandatory only if it is running -- # during the installation and if the installation source requires network -- return ANACONDA_ENVIRON in anaconda_flags.environs and self.payload.needsNetwork -- -- @property -- def status(self): -- """ A short string describing which devices are connected. """ -- return network.status_message() -- -- def initialize(self): -- register_secret_agent(self) -- NormalSpoke.initialize(self) -- self.network_control_box.initialize() -- if not can_touch_runtime_system("hide hint to use network configuration in DE"): -- self.builder.get_object("network_config_vbox").set_no_show_all(True) -- self.builder.get_object("network_config_vbox").hide() -- else: -- self.builder.get_object("live_hint_label").set_no_show_all(True) -- self.builder.get_object("live_hint_label").hide() -- -- if not self.data.network.seen: -- _update_network_data(self.data, self.network_control_box) -- -- def refresh(self): -- NormalSpoke.refresh(self) -- self.network_control_box.refresh() -- self.network_control_box.current_hostname = network.current_hostname() -- -- def on_nm_state_changed(self, *args): -- gtk_call_once(self._update_status) -- gtk_call_once(self._update_hostname) -- -- def on_device_state_changed(self, source, device, new_state, *args): -- if new_state in (NM.DeviceState.ACTIVATED, -- NM.DeviceState.DISCONNECTED, -- NM.DeviceState.UNAVAILABLE): -- gtk_call_once(self._update_status) -- -- def on_apply_hostname(self, *args): -- hostname = self.network_control_box.hostname -- (valid, error) = network.sanityCheckHostname(hostname) -- if not valid: -- self.clear_info() -- msg = _("Host name is not valid: %s") % error -- self.set_warning(msg) -- self.network_control_box.entry_hostname.grab_focus() -- else: -- self.clear_info() -- network.set_hostname(hostname) -- self._update_hostname() -- -- def _update_status(self): -- hubQ.send_message(self.__class__.__name__, self.status) -- -- def _update_hostname(self): -- self.network_control_box.current_hostname = network.current_hostname() -- -- def on_back_clicked(self, button): -- hostname = self.network_control_box.hostname -- (valid, error) = network.sanityCheckHostname(hostname) -- if not valid: -- self.clear_info() -- msg = _("Host name is not valid: %s") % error -- self.set_warning(msg) -- self.network_control_box.entry_hostname.grab_focus() -- else: -- self.clear_info() -- NormalSpoke.on_back_clicked(self, button) -- -- def finished(self): -- """Disconnect callbacks -- -- Called when leaving summary hub -- """ -- self.network_control_box.kill_nmce(msg="finished with network spoke") -- self.network_control_box.disconnect_client_callbacks() -- --class NetworkStandaloneSpoke(StandaloneSpoke): -- """ -- .. inheritance-diagram:: NetworkStandaloneSpoke -- :parts: 3 -- """ -- builderObjects = ["networkStandaloneWindow", "networkControlBox_vbox", "liststore_wireless_network", "liststore_devices", "add_device_dialog", "liststore_add_device"] -- mainWidgetName = "networkStandaloneWindow" -- uiFile = "spokes/network.glade" -- -- preForHub = SummaryHub -- priority = 10 -- -- def __init__(self, *args, **kwargs): -- StandaloneSpoke.__init__(self, *args, **kwargs) -- self.network_control_box = NetworkControlBox(self.builder, nmclient, spoke=self) -- self.network_control_box.hostname = self.data.network.hostname -- self.network_control_box.current_hostname = network.current_hostname() -- parent = self.builder.get_object("AnacondaStandaloneWindow-action_area5") -- parent.add(self.network_control_box.vbox) -- -- self.network_control_box.connect("nm-state-changed", -- self.on_nm_state_changed) -- self.network_control_box.connect("apply-hostname", -- self.on_apply_hostname) -- -- self._initially_available = self.completed -- log.debug("network standalone spoke (init): completed: %s", self._initially_available) -- self._now_available = False -- -- def apply(self): -- _update_network_data(self.data, self.network_control_box) -- -- log.debug("network: apply ksdata %s", self.data.network) -- -- self._now_available = self.completed -- -- log.debug("network standalone spoke (apply) payload: %s completed: %s", self.payload.baseRepo, self._now_available) -- if (not self.payload.baseRepo and not self._initially_available -- and self._now_available and self.payload.needsNetwork): -- from pyanaconda.packaging import payloadMgr -- payloadMgr.restartThread(self.storage, self.data, self.payload, self.instclass, -- fallback=not anaconda_flags.automatedInstall) -- -- self.network_control_box.kill_nmce(msg="leaving standalone network spoke") -- self.network_control_box.disconnect_client_callbacks() -- -- @property -- def completed(self): -- return (not can_touch_runtime_system("require network connection") -- or nm.nm_activated_devices() -- or self.data.method.method not in ("url", "nfs")) -- -- def initialize(self): -- register_secret_agent(self) -- StandaloneSpoke.initialize(self) -- self.network_control_box.initialize() -- -- def refresh(self): -- StandaloneSpoke.refresh(self) -- self.network_control_box.refresh() -- self.network_control_box.current_hostname = network.current_hostname() -- -- def _on_continue_clicked(self, window, user_data=None): -- hostname = self.network_control_box.hostname -- (valid, error) = network.sanityCheckHostname(hostname) -- if not valid: -- self.clear_info() -- msg = _("Host name is not valid: %s") % error -- self.set_warning(msg) -- self.network_control_box.entry_hostname.grab_focus() -- else: -- self.clear_info() -- StandaloneSpoke._on_continue_clicked(self, window, user_data) -- -- # Use case: slow dhcp has connected when on spoke -- def on_nm_state_changed(self, *args): -- gtk_call_once(self._update_hostname) -- -- def on_apply_hostname(self, *args): -- hostname = self.network_control_box.hostname -- (valid, error) = network.sanityCheckHostname(hostname) -- if not valid: -- self.clear_info() -- msg = _("Host name is not valid: %s") % error -- self.set_warning(msg) -- self.network_control_box.entry_hostname.grab_focus() -- else: -- self.clear_info() -- network.set_hostname(hostname) -- self._update_hostname() -- -- def _update_hostname(self): -- self.network_control_box.current_hostname = network.current_hostname() -- --def _update_network_data(data, ncb): -- data.network.network = [] -- for i, dev_cfg in enumerate(ncb.dev_cfgs): -- devname = dev_cfg.get_iface() -- nd = network.ksdata_from_ifcfg(devname, dev_cfg.get_uuid()) -- if not nd: -- continue -- if devname in nm.nm_activated_devices(): -- nd.activate = True -- else: -- # First network command defaults to --activate so we must -- # use --no-activate explicitly to prevent the default -- if i == 0: -- nd.activate = False -- -- data.network.network.append(nd) -- hostname = ncb.hostname -- network.update_hostname_data(data, hostname) -- -- --def test(): -- win = Gtk.Window() -- win.connect("delete-event", Gtk.main_quit) -- -- builder = Gtk.Builder() -- import os -- ui_file_path = os.environ.get('UIPATH')+'spokes/network.glade' -- builder.add_from_file(ui_file_path) -- -- n = NetworkControlBox(builder, nmclient) -- n.initialize() -- n.refresh() -- -- n.vbox.reparent(win) -- -- win.show_all() -- Gtk.main() -- --if __name__ == "__main__": -- test() --- -2.14.4 - diff --git a/anaconda/0005-anaconda-remove-network-setup-from-text-interface.patch b/anaconda/0005-anaconda-remove-network-setup-from-text-interface.patch deleted file mode 100644 index 9428fe4f..00000000 --- a/anaconda/0005-anaconda-remove-network-setup-from-text-interface.patch +++ /dev/null @@ -1,387 +0,0 @@ -From 9eb4146449147e8aaccc386823c8d805c276bd17 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Sat, 20 Oct 2018 11:23:40 +0200 -Subject: [PATCH] anaconda: remove network setup from text interface -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We have network disabled. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/tui/spokes/network.py | 361 ------------------------------------ - 1 file changed, 361 deletions(-) - delete mode 100644 pyanaconda/ui/tui/spokes/network.py - -diff --git a/pyanaconda/ui/tui/spokes/network.py b/pyanaconda/ui/tui/spokes/network.py -deleted file mode 100644 -index 56ab1173b..000000000 ---- a/pyanaconda/ui/tui/spokes/network.py -+++ /dev/null -@@ -1,361 +0,0 @@ --# Network configuration spoke classes --# --# Copyright (C) 2013 Red Hat, Inc. --# --# This copyrighted material is made available to anyone wishing to use, --# modify, copy, or redistribute it subject to the terms and conditions of --# the GNU General Public License v.2, or (at your option) any later version. --# This program is distributed in the hope that it will be useful, but WITHOUT --# ANY WARRANTY expressed or implied, including the implied warranties 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, write to the --# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA --# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the --# source code or documentation are not subject to the GNU General Public --# License and may only be used or replicated with the express permission of --# Red Hat, Inc. --# -- -- --from pyanaconda.flags import can_touch_runtime_system, flags --from pyanaconda.ui.categories.system import SystemCategory --from pyanaconda.ui.tui.spokes import EditTUISpoke, OneShotEditTUIDialog --from pyanaconda.ui.tui.spokes import EditTUISpokeEntry as Entry --from pyanaconda.ui.tui.simpleline import TextWidget, ColumnWidget --from pyanaconda.ui.common import FirstbootSpokeMixIn --from pyanaconda.i18n import N_, _ --from pyanaconda import network --from pyanaconda import nm -- --from pyanaconda.regexes import IPV4_PATTERN_WITHOUT_ANCHORS, IPV4_NETMASK_WITHOUT_ANCHORS --from pyanaconda.constants_text import INPUT_PROCESSED --from pyanaconda.constants import ANACONDA_ENVIRON -- --import logging --log = logging.getLogger("anaconda") -- --import re -- --__all__ = ["NetworkSpoke"] -- -- --class NetworkSpoke(FirstbootSpokeMixIn, EditTUISpoke): -- """ Spoke used to configure network settings. -- -- .. inheritance-diagram:: NetworkSpoke -- :parts: 3 -- """ -- title = N_("Network configuration") -- category = SystemCategory -- -- def __init__(self, app, data, storage, payload, instclass): -- EditTUISpoke.__init__(self, app, data, storage, payload, instclass) -- self.hostname_dialog = OneShotEditTUIDialog(app, data, storage, payload, instclass) -- self.hostname_dialog.value = self.data.network.hostname -- self.supported_devices = [] -- self.errors = [] -- self._apply = False -- -- def initialize(self): -- self._load_new_devices() -- -- EditTUISpoke.initialize(self) -- if not self.data.network.seen: -- self._update_network_data() -- -- def _load_new_devices(self): -- devices = nm.nm_devices() -- intf_dumped = network.dumpMissingDefaultIfcfgs() -- if intf_dumped: -- log.debug("Dumped interfaces: %s", intf_dumped) -- -- for name in devices: -- if name in self.supported_devices: -- continue -- if network.is_ibft_configured_device(name): -- continue -- if nm.nm_device_type_is_ethernet(name): -- # ignore slaves -- if nm.nm_device_setting_value(name, "connection", "slave-type"): -- continue -- self.supported_devices.append(name) -- -- @property -- def completed(self): -- """ Check whether this spoke is complete or not. Do an additional -- check if we're installing from CD/DVD, since a network connection -- should not be required in this case. -- """ -- return (not can_touch_runtime_system("require network connection") -- or nm.nm_activated_devices()) -- -- @property -- def mandatory(self): -- # the network spoke should be mandatory only if it is running -- # during the installation and if the installation source requires network -- return ANACONDA_ENVIRON in flags.environs and self.payload.needsNetwork -- -- @property -- def status(self): -- """ Short msg telling what devices are active. """ -- return network.status_message() -- -- def _summary_text(self): -- """Devices cofiguration shown to user.""" -- msg = "" -- activated_devs = nm.nm_activated_devices() -- for name in self.supported_devices: -- if name in activated_devs: -- msg += self._activated_device_msg(name) -- else: -- msg += _("Wired (%(interface_name)s) disconnected\n") \ -- % {"interface_name": name} -- return msg -- -- def _activated_device_msg(self, devname): -- msg = _("Wired (%(interface_name)s) connected\n") \ -- % {"interface_name": devname} -- -- ipv4config = nm.nm_device_ip_config(devname, version=4) -- ipv6config = nm.nm_device_ip_config(devname, version=6) -- -- if ipv4config and ipv4config[0]: -- addr_str, prefix, gateway_str = ipv4config[0][0] -- netmask_str = network.prefix2netmask(prefix) -- dnss_str = ",".join(ipv4config[1]) -- else: -- addr_str = dnss_str = gateway_str = netmask_str = "" -- msg += _(" IPv4 Address: %(addr)s Netmask: %(netmask)s Gateway: %(gateway)s\n") % \ -- {"addr": addr_str, "netmask": netmask_str, "gateway": gateway_str} -- msg += _(" DNS: %s\n") % dnss_str -- -- if ipv6config and ipv6config[0]: -- for ipv6addr in ipv6config[0]: -- addr_str, prefix, gateway_str = ipv6addr -- # Do not display link-local addresses -- if not addr_str.startswith("fe80:"): -- msg += _(" IPv6 Address: %(addr)s/%(prefix)d\n") % \ -- {"addr": addr_str, "prefix": prefix} -- -- dnss_str = ",".join(ipv6config[1]) -- -- return msg -- -- def refresh(self, args=None): -- """ Refresh screen. """ -- self._load_new_devices() -- EditTUISpoke.refresh(self, args) -- -- summary = self._summary_text() -- self._window += [TextWidget(summary), ""] -- hostname = _("Host Name: %s\n") % self.data.network.hostname -- self._window += [TextWidget(hostname), ""] -- current_hostname = _("Current host name: %s\n") % network.current_hostname() -- self._window += [TextWidget(current_hostname), ""] -- -- # if we have any errors, display them -- while len(self.errors) > 0: -- self._window += [TextWidget(self.errors.pop()), ""] -- -- def _prep(i, w): -- """ Mangle our text to make it look pretty on screen. """ -- number = TextWidget("%2d)" % (i + 1)) -- return ColumnWidget([(4, [number]), (None, [w])], 1) -- -- _opts = [_("Set host name")] -- for devname in self.supported_devices: -- _opts.append(_("Configure device %s") % devname) -- text = [TextWidget(o) for o in _opts] -- -- # make everything presentable on screen -- choices = [_prep(i, w) for i, w in enumerate(text)] -- displayed = ColumnWidget([(78, choices)], 1) -- self._window.append(displayed) -- -- return True -- -- def input(self, args, key): -- """ Handle the input. """ -- try: -- num = int(key) -- except ValueError: -- return key -- -- if num == 1: -- # set hostname -- self.app.switch_screen_modal(self.hostname_dialog, Entry(_("Host Name"), -- "hostname", re.compile(".*$"), True)) -- self.apply() -- return INPUT_PROCESSED -- elif 2 <= num <= len(self.supported_devices) + 1: -- # configure device -- devname = self.supported_devices[num-2] -- ndata = network.ksdata_from_ifcfg(devname) -- if not ndata: -- try: -- nm.nm_device_setting_value(devname, "connection", "uuid") -- except nm.SettingsNotFoundError: -- pass -- else: -- log.debug("network: dumping ifcfg file for in-memory connection %s", devname) -- nm.nm_update_settings_of_device(devname, [['connection', 'id', devname, None]]) -- ndata = network.ksdata_from_ifcfg(devname) -- -- if not ndata: -- log.debug("network: can't find any connection for %s", devname) -- self.errors.append(_("Configuration of device not found")) -- return INPUT_PROCESSED -- -- newspoke = ConfigureNetworkSpoke(self.app, self.data, self.storage, -- self.payload, self.instclass, ndata) -- self.app.switch_screen_modal(newspoke) -- -- if ndata.ip == "dhcp": -- ndata.bootProto = "dhcp" -- ndata.ip = "" -- else: -- ndata.bootProto = "static" -- if not ndata.netmask: -- self.errors.append(_("Configuration not saved: netmask missing in static configuration")) -- return INPUT_PROCESSED -- -- if ndata.ipv6 == "ignore": -- ndata.noipv6 = True -- ndata.ipv6 = "" -- else: -- ndata.noipv6 = False -- -- network.update_settings_with_ksdata(devname, ndata) -- network.update_onboot_value(devname, ndata.onboot, ksdata=None, root_path="") -- -- if ndata._apply: -- self._apply = True -- uuid = nm.nm_device_setting_value(devname, "connection", "uuid") -- try: -- nm.nm_activate_device_connection(devname, uuid) -- except (nm.UnmanagedDeviceError, nm.UnknownConnectionError): -- self.errors.append(_("Can't apply configuration, device activation failed.")) -- -- self.apply() -- return INPUT_PROCESSED -- else: -- return key -- -- def apply(self): -- """Apply all of our settings.""" -- self._update_network_data() -- log.debug("network: apply ksdata %s", self.data.network) -- -- if self._apply: -- self._apply = False -- if ANACONDA_ENVIRON in flags.environs: -- from pyanaconda.packaging import payloadMgr -- payloadMgr.restartThread(self.storage, self.data, self.payload, -- self.instclass, checkmount=False) -- -- def _update_network_data(self): -- hostname = self.data.network.hostname -- -- self.data.network.network = [] -- for i, name in enumerate(nm.nm_devices()): -- if network.is_ibft_configured_device(name): -- continue -- nd = network.ksdata_from_ifcfg(name) -- if not nd: -- continue -- if name in nm.nm_activated_devices(): -- nd.activate = True -- else: -- # First network command defaults to --activate so we must -- # use --no-activate explicitly to prevent the default -- if i == 0: -- nd.activate = False -- self.data.network.network.append(nd) -- -- (valid, error) = network.sanityCheckHostname(self.hostname_dialog.value) -- if valid: -- hostname = self.hostname_dialog.value -- else: -- self.errors.append(_("Host name is not valid: %s") % error) -- self.hostname_dialog.value = hostname -- network.update_hostname_data(self.data, hostname) -- --def check_ipv6_config(value): -- if value in ["auto", "dhcp", "ignore"]: -- return (True, None) -- addr, _slash, prefix = value.partition("/") -- if prefix: -- try: -- if not 1 <= int(prefix) <= 128: -- return (False, None) -- except ValueError: -- return (False, None) -- return check_ipv6_address(addr) -- --def check_ipv6_address(value): -- return (network.check_ip_address(value, version=6), None) -- --def check_nameservers(value): -- addresses = [str.strip(i) for i in value.split(",")] -- if not addresses: -- return (False, None) -- -- for ip in addresses: -- if not network.check_ip_address(ip): -- return (False, None) -- return (True, None) -- --class ConfigureNetworkSpoke(EditTUISpoke): -- """ Spoke to set various configuration options for net devices. """ -- title = N_("Device configuration") -- category = "network" -- -- edit_fields = [ -- Entry(N_('IPv4 address or %s for DHCP') % '"dhcp"', "ip", -- re.compile("^(?:" + IPV4_PATTERN_WITHOUT_ANCHORS + "|dhcp)$"), True), -- Entry(N_("IPv4 netmask"), "netmask", re.compile("^" + IPV4_NETMASK_WITHOUT_ANCHORS + "$"), True), -- Entry(N_("IPv4 gateway"), "gateway", re.compile("^" + IPV4_PATTERN_WITHOUT_ANCHORS + "$"), True), -- Entry(N_('IPv6 address[/prefix] or %(auto)s for automatic, %(dhcp)s for DHCP, %(ignore)s to turn off') -- % {"auto": '"auto"', "dhcp": '"dhcp"', "ignore": '"ignore"'}, "ipv6", -- check_ipv6_config, True), -- Entry(N_("IPv6 default gateway"), "ipv6gateway", check_ipv6_address, True), -- Entry(N_("Nameservers (comma separated)"), "nameserver", check_nameservers, True), -- Entry(N_("Connect automatically after reboot"), "onboot", EditTUISpoke.CHECK, True), -- Entry(N_("Apply configuration in installer"), "_apply", EditTUISpoke.CHECK, True), -- ] -- -- def __init__(self, app, data, storage, payload, instclass, ndata): -- EditTUISpoke.__init__(self, app, data, storage, payload, instclass) -- self.args = ndata -- if self.args.bootProto == "dhcp": -- self.args.ip = "dhcp" -- if self.args.noipv6: -- self.args.ipv6 = "ignore" -- self.args._apply = False -- -- def refresh(self, args=None): -- """ Refresh window. """ -- EditTUISpoke.refresh(self, args) -- message = _("Configuring device %s.") % self.args.device -- self._window += [TextWidget(message), ""] -- return True -- -- def input(self, args, key): -- self.dialog.wrong_input_message = _("Bad format of the IP address") -- try: -- field = self.visible_fields[int(key)-1] -- except (ValueError, IndexError): -- pass -- else: -- if field.attribute == "netmask": -- self.dialog.wrong_input_message = _("Bad format of the netmask") -- return EditTUISpoke.input(self, args, key) -- -- @property -- def indirect(self): -- return True -- -- def apply(self): -- """ Apply our changes. """ -- # this is done at upper level by updating ifcfg file --- -2.14.4 - diff --git a/anaconda/0006-anaconda-fix-grub-config-setup-by-removing-non-xen-o.patch b/anaconda/0006-anaconda-fix-grub-config-setup-by-removing-non-xen-o.patch deleted file mode 100644 index dfae1e3c..00000000 --- a/anaconda/0006-anaconda-fix-grub-config-setup-by-removing-non-xen-o.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 383217cc20f6da8030e98891e34cccd7b03d40c0 Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: fix grub config setup by removing non-xen options -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index a37f91b9a..68fca98bf 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1558,6 +1558,9 @@ class GRUB2(GRUB): - except (BootLoaderError, OSError, RuntimeError) as e: - log.error("boot loader password setup failed: %s", e) - -+ # disable non-xen entries -+ os.chmod("%s/etc/grub.d/10_linux" % iutil.getSysroot(), 0o644) -+ - # make sure the default entry is the OS we are installing - if self.default is not None: - # find the index of the default image --- -2.14.4 - diff --git a/anaconda/0007-anaconda-make-encrypted-partitions-by-default.patch b/anaconda/0007-anaconda-make-encrypted-partitions-by-default.patch deleted file mode 100644 index c68de1ca..00000000 --- a/anaconda/0007-anaconda-make-encrypted-partitions-by-default.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 2cdfe3b92b5997d03f22521a2d4edb1d42ea443f Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: make encrypted partitions by default -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/kickstart.py | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py -index dc58d9b65..7d67bf1a6 100644 ---- a/pyanaconda/kickstart.py -+++ b/pyanaconda/kickstart.py -@@ -252,6 +252,11 @@ class Authconfig(commands.authconfig.FC3_Authconfig): - log.error("Error running %s %s: %s", cmd, args, msg) - - class AutoPart(commands.autopart.F21_AutoPart): -+ def __init__(self, writePriority=100, *args, **kwargs): -+ if 'encrypted' not in kwargs: -+ kwargs['encrypted'] = True -+ super(AutoPart, self).__init__(writePriority=writePriority, *args, **kwargs) -+ - def parse(self, args): - retval = commands.autopart.F21_AutoPart.parse(self, args) - --- -2.14.4 - diff --git a/anaconda/0008-anaconda-set-default-grub-theme.patch b/anaconda/0008-anaconda-set-default-grub-theme.patch deleted file mode 100644 index b44643b0..00000000 --- a/anaconda/0008-anaconda-set-default-grub-theme.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0bfebcf148078e9d43cfabd13ceb92ffad6274d2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: set default grub theme -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 68fca98bf..b6488c5fd 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1401,7 +1401,7 @@ class GRUB2(GRUB): - _config_file = "grub.cfg" - _config_dir = "grub2" - defaults_file = "/etc/default/grub" -- terminal_type = "console" -+ terminal_type = "gfxterm" - stage2_max_end = None - - # requirements for boot devices -@@ -1503,7 +1503,7 @@ class GRUB2(GRUB): - log.info("bootloader.py: used boot args: %s ", self.boot_args) - defaults.write("GRUB_CMDLINE_LINUX=\"%s\"\n" % self.boot_args) - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") -- #defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") -+ defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") - defaults.close() - - def _encrypt_password(self): --- -2.14.4 - diff --git a/anaconda/0009-anaconda-add-options-can_dual_boot-and-can_update-to.patch b/anaconda/0009-anaconda-add-options-can_dual_boot-and-can_update-to.patch deleted file mode 100644 index f552ce3b..00000000 --- a/anaconda/0009-anaconda-add-options-can_dual_boot-and-can_update-to.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 4efdab482cd1b73f58abf4f6cf16be4965ab49ee Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= - -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: add options can_dual_boot and can_update to grub -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index b6488c5fd..083b99f1a 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1403,6 +1403,8 @@ class GRUB2(GRUB): - defaults_file = "/etc/default/grub" - terminal_type = "gfxterm" - stage2_max_end = None -+ can_dual_boot = True -+ can_update = True - - # requirements for boot devices - stage2_device_types = ["partition", "mdarray", "lvmlv"] --- -2.14.4 - diff --git a/anaconda/0010-anaconda-efimgr-specify-root-iutil.getSysroot.patch b/anaconda/0010-anaconda-efimgr-specify-root-iutil.getSysroot.patch deleted file mode 100644 index 62ce7204..00000000 --- a/anaconda/0010-anaconda-efimgr-specify-root-iutil.getSysroot.patch +++ /dev/null @@ -1,31 +0,0 @@ -From b0d781737479e11c4b138ef6df4d372d8fbd2503 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= - -Date: Fri, 19 Oct 2018 08:02:11 +0200 -Subject: [PATCH] anaconda: efimgr specify root=iutil.getSysroot() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 083b99f1a..acdfb8322 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1743,7 +1743,8 @@ class EFIBase(object): - log.warning("failed to parse efi boot slot (%s)", slot) - continue - -- rc = self.efibootmgr("-b", slot_id, "-B") -+ rc = self.efibootmgr("-b", slot_id, "-B", -+ root=iutil.getSysroot()) - if rc: - raise BootLoaderError("failed to remove old efi boot entry. This is most likely a kernel or firmware bug.") - --- -2.14.4 - diff --git a/anaconda/0011-anaconda-generate-xen-efi-configuration.patch b/anaconda/0011-anaconda-generate-xen-efi-configuration.patch deleted file mode 100644 index 65b2fca2..00000000 --- a/anaconda/0011-anaconda-generate-xen-efi-configuration.patch +++ /dev/null @@ -1,121 +0,0 @@ -From f53f5fdcaf10bdd2f64bd144b78052561ae15aa6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: generate xen efi configuration -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 79 +++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 78 insertions(+), 1 deletion(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index acdfb8322..908020ad0 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -21,6 +21,7 @@ - import collections - import os - import re -+import shutil - import blivet - from parted import PARTITION_BIOS_GRUB - from glob import glob -@@ -1828,6 +1829,82 @@ class EFIGRUB(EFIBase, GRUB2): - class Aarch64EFIGRUB(EFIGRUB): - _serial_consoles = ["ttyAMA", "ttyS"] - -+class XenEFI(EFIGRUB): -+ packages = ["efibootmgr"] -+ _config_file = 'xen.cfg' -+ -+ # stage2 not used at all, so allow any type -+ stage2_device_types = ["partition", "mdarray", "lvmlv"] -+ -+ def __init__(self): -+ super(XenEFI, self).__init__() -+ self.efi_dir = 'qubes' -+ -+ def add_efi_boot_target(self): -+ if self.stage1_device.type == "partition": -+ boot_disk = self.stage1_device.disk -+ boot_part_num = self.stage1_device.parted_partition.number -+ elif self.stage1_device.type == "mdarray": -+ # FIXME: I'm just guessing here. This probably needs the full -+ # treatment, ie: multiple targets for each member. -+ boot_disk = self.stage1_device.parents[0].disk -+ boot_part_num = self.stage1_device.parents[0].parted_partition.number -+ boot_part_num = str(boot_part_num) -+ -+ if not os.path.exists( -+ "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi")): -+ xen_efi = [x for x in os.listdir(iutil.getSysroot() + self.config_dir) if -+ x.startswith('xen-') and x.endswith('.efi')][0] -+ shutil.copy("{}/{}".format(iutil.getSysroot() + self.config_dir, xen_efi), -+ "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi")) -+ rc = self.efibootmgr("-c", "-w", "-L", productName, -+ "-d", boot_disk.path, "-p", boot_part_num, -+ "-l", -+ self.efi_dir_as_efifs_dir + "\\xen.efi", -+ root=iutil.getSysroot()) -+ if rc: -+ raise BootLoaderError("failed to set new efi boot target") -+ -+ def add_image(self, image): -+ super(XenEFI, self).add_image(image) -+ shutil.copy("{}/boot/{}".format(iutil.getSysroot(), image.kernel), -+ os.path.normpath( -+ "{}/{}".format(iutil.getSysroot() + self.config_dir, -+ image.kernel))) -+ if image.initrd is not None: -+ shutil.copy("{}/boot/{}".format(iutil.getSysroot(), image.initrd), -+ os.path.normpath( -+ "{}/{}".format(iutil.getSysroot() + self.config_dir, -+ image.initrd))) -+ -+ def write_config_header(self, config): -+ config.write("[global]\n") -+ config.write("default={}\n".format(self.default.version)) -+ -+ def write_config_images(self, config): -+ for image in self.images: -+ config.write("\n") -+ config.write("[{}]\n".format(image.version)) -+ config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M\n") -+ config.write("kernel={} root={} {}\n".format( -+ image.kernel, -+ image.device.fstab_spec, -+ self.boot_args)) -+ config.write("ramdisk={}\n".format(image.initrd)) -+ -+ def write_config_console(self, config): -+ pass -+ -+ def write_config_post(self): -+ pass -+ -+ def is_valid_stage2_device(self, device, linux=True, non_linux=False): -+ """ XenEFI doesn't use stage2 at all, so allow anything here """ -+ return True -+ -+ write_config = BootLoader.write_config -+ -+ - class MacEFIGRUB(EFIGRUB): - def mactel_config(self): - if os.path.exists(iutil.getSysroot() + "/usr/libexec/mactel-boot-setup"): -@@ -2342,7 +2419,7 @@ class EXTLINUX(BootLoader): - # every platform that wants a bootloader needs to be in this dict - bootloader_by_platform = { - platform.X86: GRUB2, -- platform.EFI: EFIGRUB, -+ platform.EFI: XenEFI, - platform.MacEFI: MacEFIGRUB, - platform.PPC: GRUB2, - platform.IPSeriesPPC: IPSeriesGRUB2, --- -2.14.4 - diff --git a/anaconda/0012-anaconda-fix-dracut-module-to-work-with-reduced-depe.patch b/anaconda/0012-anaconda-fix-dracut-module-to-work-with-reduced-depe.patch deleted file mode 100644 index 16b92373..00000000 --- a/anaconda/0012-anaconda-fix-dracut-module-to-work-with-reduced-depe.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 1c37fe7581a01b93d1f46b8eb03b37f5cb09bb0e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: fix dracut module to work with reduced dependencies -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Do not fail because of not present url-lib. Also 'loop' module requires manual -loading now. - -Signed-off-by: Frédéric Pierret ---- - dracut/anaconda-diskroot | 2 ++ - dracut/module-setup.sh | 2 +- - dracut/parse-anaconda-options.sh | 6 +++++- - 3 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/dracut/anaconda-diskroot b/dracut/anaconda-diskroot -index 7e52e052b..230b20418 100755 ---- a/dracut/anaconda-diskroot -+++ b/dracut/anaconda-diskroot -@@ -43,6 +43,8 @@ kickstart="$(getarg ks= inst.ks=)" - - [ -e "/dev/root" ] && exit 1 # we already have a root device! - -+modprobe -q loop -+ - # If we're waiting for a cdrom kickstart, the user might need to swap discs. - # So if this is a CDROM drive, make a note of it, but don't mount it (yet). - # Once we get the kickstart either the udev trigger or disk-reinsertion will -diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh -index 184036188..9f4e9d48c 100755 ---- a/dracut/module-setup.sh -+++ b/dracut/module-setup.sh -@@ -7,7 +7,7 @@ check() { - } - - depends() { -- echo livenet nfs img-lib convertfs ifcfg -+ echo img-lib dmsquash-live - case "$(uname -m)" in - s390*) echo cms ;; - esac -diff --git a/dracut/parse-anaconda-options.sh b/dracut/parse-anaconda-options.sh -index fa1455f8b..8fce64aed 100755 ---- a/dracut/parse-anaconda-options.sh -+++ b/dracut/parse-anaconda-options.sh -@@ -2,7 +2,11 @@ - # parse-anaconda-options.sh - parse installer-specific options - - . /lib/anaconda-lib.sh --. /lib/url-lib.sh -+if [ -r /lib/url-lib.sh ]; then -+ . /lib/url-lib.sh -+else -+ alias set_http_header=: -+fi - - # create the repodir and isodir that anaconda will look for - mkdir -p $repodir $isodir --- -2.14.4 - diff --git a/anaconda/0013-anaconda-use-installer-kernel-parameters-as-default-.patch b/anaconda/0013-anaconda-use-installer-kernel-parameters-as-default-.patch deleted file mode 100644 index 7e4439fd..00000000 --- a/anaconda/0013-anaconda-use-installer-kernel-parameters-as-default-.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 66a87473c6360bac0f47e14fca6293cda8c15bc7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: use installer kernel parameters as default for - installed system -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This way if any kernel parameter was need to boot Qubes on particular hardware, it will also be set to installed system - -Fixes QubesOS/qubes-issues#1650 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 18 ++++++++---------- - 1 file changed, 8 insertions(+), 10 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 908020ad0..963af46f9 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -229,14 +229,13 @@ class BootLoader(object): - def stage2_format_types(self): - return ["ext4", "ext3", "ext2"] - -- # this is so stupid... -- global_preserve_args = ["speakup_synth", "apic", "noapic", "apm", "ide", -- "noht", "acpi", "video", "pci", "nodmraid", -- "nompath", "nomodeset", "noiswmd", "fips", -- "selinux", "biosdevname", "ipv6.disable", -- "net.ifnames"] - preserve_args = [] - -+ global_no_preserve_args = ["stage2", "root", "rescue", -+ "rd.live.check", "ip", "repo", "ks", -+ "rd.lvm", "rd.md", "rd.luks", "rd.dm", -+ "rd.lvm.lv"] -+ - _trusted_boot = False - - def __init__(self): -@@ -870,11 +869,10 @@ class BootLoader(object): - self.boot_args.add("iscsi_firmware") - - # -- # preservation of some of our boot args -- # FIXME: this is stupid. -+ # preservation of most of our boot args - # -- for opt in self.global_preserve_args + self.preserve_args: -- if opt not in flags.cmdline: -+ for opt in flags.cmdline.keys(): -+ if opt in self.global_no_preserve_args: - continue - - arg = flags.cmdline.get(opt) --- -2.14.4 - diff --git a/anaconda/0014-anaconda-use-kernel-install-instead-of-grubby-to-reg.patch b/anaconda/0014-anaconda-use-kernel-install-instead-of-grubby-to-reg.patch deleted file mode 100644 index 67bb0686..00000000 --- a/anaconda/0014-anaconda-use-kernel-install-instead-of-grubby-to-reg.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 73b928fd84acfde8a8f20ddf20241da9085b87b2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: use kernel-install instead of grubby to regenerate - initrd/grub.conf -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Since we have own hook there, it properly handles Xen. This means we no longer need post scripts in kickstart for that. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/packaging/__init__.py | 11 +++-------- - 1 file changed, 3 insertions(+), 8 deletions(-) - -diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py -index a99fbe973..8332ce0e5 100644 ---- a/pyanaconda/packaging/__init__.py -+++ b/pyanaconda/packaging/__init__.py -@@ -608,23 +608,18 @@ class Payload(object): - # prevent boot on some systems - - def recreateInitrds(self): -- """ Recreate the initrds by calling new-kernel-pkg -+ """ Recreate the initrds by calling kernel-install - - This needs to be done after all configuration files have been - written, since dracut depends on some of them. - - :returns: None - """ -- if not os.path.exists(iutil.getSysroot() + "/usr/sbin/new-kernel-pkg"): -- log.error("new-kernel-pkg does not exist - grubby wasn't installed? skipping") -- return -- - for kernel in self.kernelVersionList: - log.info("recreating initrd for %s", kernel) - if not flags.imageInstall: -- iutil.execInSysroot("new-kernel-pkg", -- ["--mkinitrd", "--dracut", -- "--depmod", "--update", kernel]) -+ iutil.execInSysroot("kernel-install", -+ ["add", kernel, "/boot/vmlinuz-%s" % kernel]) - else: - # hostonly is not sensible for disk image installations - # using /dev/disk/by-uuid/ is necessary due to disk image naming --- -2.14.4 - diff --git a/anaconda/0015-anaconda-Fix-a-regular-expression-determining-Releas.patch b/anaconda/0015-anaconda-Fix-a-regular-expression-determining-Releas.patch deleted file mode 100644 index 4174f85b..00000000 --- a/anaconda/0015-anaconda-Fix-a-regular-expression-determining-Releas.patch +++ /dev/null @@ -1,33 +0,0 @@ -From c10dd05e7957cc188b69c302e7a9b4c2c8249ce6 Mon Sep 17 00:00:00 2001 -From: "M. Vefa Bicakci" -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: Fix a regular expression determining Release -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Without the start-of-line matcher, other lines are matched as well, causing invalid PACKAGE_RELEASE variable substitutions within the Makefiles. - -Signed-off-by: Frédéric Pierret ---- - configure.ac | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index df1d206b3..b36cf53ec 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -97,7 +97,9 @@ SHUT_UP_GCC="-Wno-unused-result" - # Add remaining compiler flags we want to use - CFLAGS="$CFLAGS -Wall -Werror $SHUT_UP_GCC" - --AC_SUBST(PACKAGE_RELEASE, [1]) -+# Get the release number from the spec file -+rel="`awk '/^Release:/ { split($2, r, "%"); print r[[1]] }' $srcdir/anaconda.spec`" -+AC_SUBST(PACKAGE_RELEASE, [$rel]) - - # Perform arch related tests - AC_CANONICAL_BUILD --- -2.14.4 - diff --git a/anaconda/0016-anaconda-Do-not-fail-during-initramfs-start-up-due-t.patch b/anaconda/0016-anaconda-Do-not-fail-during-initramfs-start-up-due-t.patch deleted file mode 100644 index a39ac1b1..00000000 --- a/anaconda/0016-anaconda-Do-not-fail-during-initramfs-start-up-due-t.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 40992b40f344685a755f39813f0f2afd9f56e7b6 Mon Sep 17 00:00:00 2001 -From: "M. Vefa Bicakci" -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: Do not fail during initramfs start-up due to - missing url-lib -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - dracut/anaconda-ks-sendheaders.sh | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/dracut/anaconda-ks-sendheaders.sh b/dracut/anaconda-ks-sendheaders.sh -index 7bc97393b..39fa0ce0d 100755 ---- a/dracut/anaconda-ks-sendheaders.sh -+++ b/dracut/anaconda-ks-sendheaders.sh -@@ -2,7 +2,15 @@ - # anaconda-ks-sendheaders.sh - set various HTTP headers for kickstarting - - [ -f /tmp/.ks_sendheaders ] && return --command -v set_http_header >/dev/null || . /lib/url-lib.sh -+ -+if ! command -v set_http_header >/dev/null; then -+ if ! [ -r /lib/url-lib.sh ]; then -+ alias set_http_header=: -+ return -+ fi -+ -+ . /lib/url-lib.sh -+fi - - # inst.ks.sendmac: send MAC addresses in HTTP headers - if getargbool 0 kssendmac inst.ks.sendmac; then --- -2.14.4 - diff --git a/anaconda/0017-anaconda-Disable-the-NTP-configuration-spoke.patch b/anaconda/0017-anaconda-Disable-the-NTP-configuration-spoke.patch deleted file mode 100644 index 7740ecd0..00000000 --- a/anaconda/0017-anaconda-Disable-the-NTP-configuration-spoke.patch +++ /dev/null @@ -1,733 +0,0 @@ -From dc6d56efd644de06468ddd225c436bd3610a6527 Mon Sep 17 00:00:00 2001 -From: "M. Vefa Bicakci" -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: Disable the NTP configuration spoke -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/datetime_spoke.glade | 300 +---------------------- - pyanaconda/ui/gui/spokes/datetime_spoke.py | 332 -------------------------- - 2 files changed, 2 insertions(+), 630 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.glade b/pyanaconda/ui/gui/spokes/datetime_spoke.glade -index 9179640fe..fab5ad067 100644 ---- a/pyanaconda/ui/gui/spokes/datetime_spoke.glade -+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.glade -@@ -1,14 +1,9 @@ - -- -+ - - - - -- -- True -- False -- list-add-symbolic -- - - - -@@ -26,11 +21,6 @@ - True - - -- -- True -- False -- system-run-symbolic -- - - - -@@ -91,221 +81,6 @@ - - - -- -- False -- 6 -- dialog -- False -- -- -- False -- vertical -- 6 -- -- -- False -- end -- -- -- _Cancel -- True -- True -- True -- True -- -- -- False -- True -- 0 -- -- -- -- -- _OK -- True -- True -- True -- True -- -- -- False -- True -- 1 -- -- -- -- -- False -- True -- end -- 4 -- -- -- -- -- True -- False -- 0 -- Add and mark for usage NTP servers -- -- -- -- -- -- False -- True -- 0 -- -- -- -- -- True -- False -- -- -- True -- True -- -- -- -- New NTP Server -- -- -- -- -- True -- True -- 0 -- -- -- -- -- True -- True -- True -- addImage -- -- -- -- Add NTP Server -- -- -- -- -- False -- True -- 4 -- 1 -- -- -- -- -- False -- True -- 1 -- -- -- -- -- This URL refers to a pool of NTP servers -- True -- True -- False -- 0 -- True -- -- -- False -- True -- 3 -- -- -- -- -- True -- True -- never -- in -- -- -- True -- True -- serversStore -- False -- 0 -- -- -- -- -- -- Host Name -- True -- -- -- True -- -- -- -- 0 -- -- -- -- -- -- -- Pool -- -- -- -- -- -- 1 -- -- -- -- -- -- -- Working -- -- -- -- -- -- -- -- Use -- -- -- -- -- -- 3 -- -- -- -- -- -- -- -- -- True -- True -- 4 -- -- -- -- -- -- cancelButton -- okButton -- -- -- -- Configure NTP -- -- -- - - True - False -@@ -463,78 +238,7 @@ - - - -- -- True -- False -- 1 -- 0.20000000298023224 -- 24 -- -- -- True -- False -- end -- -- -- True -- False -- _Network Time -- True -- networkTimeSwitch -- -- -- False -- True -- 3 -- 0 -- -- -- -- -- True -- True -- -- -- -- Use Network Time -- -- -- -- -- False -- True -- 1 -- 1 -- -- -- -- -- True -- True -- True -- configImage -- -- -- -- Configure NTP -- -- -- -- -- False -- True -- 1 -- 2 -- -- -- -- -- -- -- True -- True -- 4 -- -+ - - - -diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.py b/pyanaconda/ui/gui/spokes/datetime_spoke.py -index 0a1b0b5a8..5fffb670a 100644 ---- a/pyanaconda/ui/gui/spokes/datetime_spoke.py -+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.py -@@ -45,7 +45,6 @@ from pyanaconda import iutil - from pyanaconda import isys - from pyanaconda import network - from pyanaconda import nm --from pyanaconda import ntp - from pyanaconda import flags - from pyanaconda import constants - from pyanaconda.threads import threadMgr, AnacondaThread -@@ -149,247 +148,6 @@ def _new_date_field_box(store): - - return (box, combo, suffix_label) - --class NTPconfigDialog(GUIObject, GUIDialogInputCheckHandler): -- builderObjects = ["ntpConfigDialog", "addImage", "serversStore"] -- mainWidgetName = "ntpConfigDialog" -- uiFile = "spokes/datetime_spoke.glade" -- -- def __init__(self, *args): -- GUIObject.__init__(self, *args) -- -- # Use GUIDIalogInputCheckHandler to manipulate the sensitivity of the -- # add button, and check for valid input in on_entry_activated -- add_button = self.builder.get_object("addButton") -- GUIDialogInputCheckHandler.__init__(self, add_button) -- -- #epoch is increased when serversStore is repopulated -- self._epoch = 0 -- self._epoch_lock = threading.Lock() -- -- @property -- def working_server(self): -- for row in self._serversStore: -- if row[SERVER_WORKING] == constants.NTP_SERVER_OK and row[SERVER_USE]: -- #server is checked and working -- return row[SERVER_HOSTNAME] -- -- return None -- -- @property -- def pools_servers(self): -- pools = list() -- servers = list() -- -- for used_row in (row for row in self._serversStore if row[SERVER_USE]): -- if used_row[SERVER_POOL]: -- pools.append(used_row[SERVER_HOSTNAME]) -- else: -- servers.append(used_row[SERVER_HOSTNAME]) -- -- return (pools, servers) -- -- def _render_working(self, column, renderer, model, itr, user_data=None): -- value = model[itr][SERVER_WORKING] -- -- if value == constants.NTP_SERVER_QUERY: -- return "dialog-question" -- elif value == constants.NTP_SERVER_OK: -- return "emblem-default" -- else: -- return "dialog-error" -- -- def initialize(self): -- self.window.set_size_request(500, 400) -- -- workingColumn = self.builder.get_object("workingColumn") -- workingRenderer = self.builder.get_object("workingRenderer") -- override_cell_property(workingColumn, workingRenderer, "icon-name", -- self._render_working) -- -- self._serverEntry = self.builder.get_object("serverEntry") -- self._serversStore = self.builder.get_object("serversStore") -- -- self._addButton = self.builder.get_object("addButton") -- -- self._poolCheckButton = self.builder.get_object("poolCheckButton") -- -- # Validate the server entry box -- self._serverCheck = self.add_check(self._serverEntry, self._validateServer) -- self._serverCheck.update_check_status() -- -- self._initialize_store_from_config() -- -- def _initialize_store_from_config(self): -- self._serversStore.clear() -- -- if self.data.timezone.ntpservers: -- pools, servers = ntp.internal_to_pools_and_servers(self.data.timezone.ntpservers) -- else: -- try: -- pools, servers = ntp.get_servers_from_config() -- except ntp.NTPconfigError: -- log.warning("Failed to load NTP servers configuration") -- return -- -- for pool in pools: -- self._add_server(pool, True) -- for server in servers: -- self._add_server(server, False) -- -- -- def _validateServer(self, inputcheck): -- server = self.get_input(inputcheck.input_obj) -- -- # If not set, fail the check to keep the button insensitive, but don't -- # display an error -- if not server: -- return InputCheck.CHECK_SILENT -- -- (valid, error) = network.sanityCheckHostname(server) -- if not valid: -- return "'%s' is not a valid hostname: %s" % (server, error) -- else: -- return InputCheck.CHECK_OK -- -- def refresh(self): -- self._serverEntry.grab_focus() -- -- def refresh_servers_state(self): -- itr = self._serversStore.get_iter_first() -- while itr: -- self._refresh_server_working(itr) -- itr = self._serversStore.iter_next(itr) -- -- def run(self): -- self.window.show() -- rc = self.window.run() -- self.window.hide() -- -- #OK clicked -- if rc == 1: -- new_pools, new_servers = self.pools_servers -- -- if flags.can_touch_runtime_system("save NTP servers configuration"): -- ntp.save_servers_to_config(new_pools, new_servers) -- iutil.restart_service(NTP_SERVICE) -- -- #Cancel clicked, window destroyed... -- else: -- self._epoch_lock.acquire() -- self._epoch += 1 -- self._epoch_lock.release() -- -- self._initialize_store_from_config() -- -- return rc -- -- def _set_server_ok_nok(self, itr, epoch_started): -- """ -- If the server is working, set its data to NTP_SERVER_OK, otherwise set its -- data to NTP_SERVER_NOK. -- -- :param itr: iterator of the $server's row in the self._serversStore -- -- """ -- -- @gtk_action_nowait -- def set_store_value(arg_tuple): -- """ -- We need a function for this, because this way it can be added to -- the MainLoop with thread-safe GLib.idle_add (but only with one -- argument). -- -- :param arg_tuple: (store, itr, column, value) -- -- """ -- -- (store, itr, column, value) = arg_tuple -- store.set_value(itr, column, value) -- -- orig_hostname = self._serversStore[itr][SERVER_HOSTNAME] -- server_working = ntp.ntp_server_working(self._serversStore[itr][SERVER_HOSTNAME]) -- -- #do not let dialog change epoch while we are modifying data -- self._epoch_lock.acquire() -- -- #check if we are in the same epoch as the dialog (and the serversStore) -- #and if the server wasn't changed meanwhile -- if epoch_started == self._epoch: -- actual_hostname = self._serversStore[itr][SERVER_HOSTNAME] -- -- if orig_hostname == actual_hostname: -- if server_working: -- set_store_value((self._serversStore, -- itr, SERVER_WORKING, constants.NTP_SERVER_OK)) -- else: -- set_store_value((self._serversStore, -- itr, SERVER_WORKING, constants.NTP_SERVER_NOK)) -- self._epoch_lock.release() -- -- @gtk_action_nowait -- def _refresh_server_working(self, itr): -- """ Runs a new thread with _set_server_ok_nok(itr) as a taget. """ -- -- self._serversStore.set_value(itr, SERVER_WORKING, constants.NTP_SERVER_QUERY) -- threadMgr.add(AnacondaThread(prefix=constants.THREAD_NTP_SERVER_CHECK, -- target=self._set_server_ok_nok, -- args=(itr, self._epoch))) -- -- def _add_server(self, server, pool=False): -- """ -- Checks if a given server is a valid hostname and if yes, adds it -- to the list of servers. -- -- :param server: string containing hostname -- -- """ -- -- itr = self._serversStore.append([server, pool, constants.NTP_SERVER_QUERY, True]) -- -- #do not block UI while starting thread (may take some time) -- self._refresh_server_working(itr) -- -- def on_entry_activated(self, entry, *args): -- # Check that the input check has passed -- if self._serverCheck.check_status == InputCheck.CHECK_OK: -- self._add_server(entry.get_text(), self._poolCheckButton.get_active()) -- entry.set_text("") -- self._poolCheckButton.set_active(False) -- -- def on_add_clicked(self, *args): -- self._serverEntry.emit("activate") -- -- def on_use_server_toggled(self, renderer, path, *args): -- itr = self._serversStore.get_iter(path) -- old_value = self._serversStore[itr][SERVER_USE] -- -- self._serversStore.set_value(itr, SERVER_USE, not old_value) -- -- def on_pool_toggled(self, renderer, path, *args): -- itr = self._serversStore.get_iter(path) -- old_value = self._serversStore[itr][SERVER_POOL] -- -- self._serversStore.set_value(itr, SERVER_POOL, not old_value) -- -- def on_server_edited(self, renderer, path, new_text, *args): -- if not path: -- return -- -- (valid, error) = network.sanityCheckHostname(new_text) -- if not valid: -- log.error("'%s' is not a valid hostname: %s", new_text, error) -- return -- -- itr = self._serversStore.get_iter(path) -- -- if self._serversStore[itr][SERVER_HOSTNAME] == new_text: -- return -- -- self._serversStore.set_value(itr, SERVER_HOSTNAME, new_text) -- self._serversStore.set_value(itr, SERVER_WORKING, constants.NTP_SERVER_QUERY) -- -- self._refresh_server_working(itr) -- - class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke): - """ - .. inheritance-diagram:: DatetimeSpoke -@@ -480,8 +238,6 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke): - self._year_format, suffix = formats[widgets.index(year_box)] - year_label.set_text(suffix) - -- self._ntpSwitch = self.builder.get_object("networkTimeSwitch") -- - self._regions_zones = get_all_regions_and_timezones() - - # Set the initial sensitivity of the AM/PM toggle based on the time-type selected -@@ -490,9 +246,6 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke): - if not flags.can_touch_runtime_system("modify system time and date"): - self._set_date_time_setting_sensitive(False) - -- self._config_dialog = NTPconfigDialog(self.data) -- self._config_dialog.initialize() -- - threadMgr.add(AnacondaThread(name=constants.THREAD_DATE_TIME, - target=self._initialize)) - -@@ -574,8 +327,6 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke): - self.data.timezone.seen = False - self._kickstarted = False - -- self.data.timezone.nontp = not self._ntpSwitch.get_active() -- - def execute(self): - if self._update_datetime_timer_id is not None: - GLib.source_remove(self._update_datetime_timer_id) -@@ -610,20 +361,6 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke): - - self._update_datetime() - -- has_active_network = nm.nm_is_connected() -- if not has_active_network: -- self._show_no_network_warning() -- else: -- self.clear_info() -- gtk_call_once(self._config_dialog.refresh_servers_state) -- -- if flags.can_touch_runtime_system("get NTP service state"): -- ntp_working = has_active_network and iutil.service_running(NTP_SERVICE) -- else: -- ntp_working = not self.data.timezone.nontp -- -- self._ntpSwitch.set_active(ntp_working) -- - @gtk_action_wait - def _set_timezone(self, timezone): - """ -@@ -1078,72 +815,3 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke): - #contains all date/time setting widgets - footer_alignment = self.builder.get_object("footerAlignment") - footer_alignment.set_sensitive(sensitive) -- -- def _show_no_network_warning(self): -- self.set_warning(_("You need to set up networking first if you "\ -- "want to use NTP")) -- -- def _show_no_ntp_server_warning(self): -- self.set_warning(_("You have no working NTP server configured")) -- -- def on_ntp_switched(self, switch, *args): -- if switch.get_active(): -- #turned ON -- if not flags.can_touch_runtime_system("start NTP service"): -- #cannot touch runtime system, not much to do here -- return -- -- if not nm.nm_is_connected(): -- self._show_no_network_warning() -- switch.set_active(False) -- return -- else: -- self.clear_info() -- -- working_server = self._config_dialog.working_server -- if working_server is None: -- self._show_no_ntp_server_warning() -- else: -- #we need a one-time sync here, because chronyd would not change -- #the time as drastically as we need -- ntp.one_time_sync_async(working_server) -- -- ret = iutil.start_service(NTP_SERVICE) -- self._set_date_time_setting_sensitive(False) -- -- #if starting chronyd failed and chronyd is not running, -- #set switch back to OFF -- if (ret != 0) and not iutil.service_running(NTP_SERVICE): -- switch.set_active(False) -- -- else: -- #turned OFF -- if not flags.can_touch_runtime_system("stop NTP service"): -- #cannot touch runtime system, nothing to do here -- return -- -- self._set_date_time_setting_sensitive(True) -- ret = iutil.stop_service(NTP_SERVICE) -- -- #if stopping chronyd failed and chronyd is running, -- #set switch back to ON -- if (ret != 0) and iutil.service_running(NTP_SERVICE): -- switch.set_active(True) -- -- self.clear_info() -- -- def on_ntp_config_clicked(self, *args): -- self._config_dialog.refresh() -- -- with self.main_window.enlightbox(self._config_dialog.window): -- response = self._config_dialog.run() -- -- if response == 1: -- pools, servers = self._config_dialog.pools_servers -- self.data.timezone.ntpservers = ntp.pools_servers_to_internal(pools, servers) -- -- if self._config_dialog.working_server is None: -- self._show_no_ntp_server_warning() -- else: -- self.clear_info() -- --- -2.14.4 - diff --git a/anaconda/0018-anaconda-drop-useless-on-Qubes-dependencies-on-netwo.patch b/anaconda/0018-anaconda-drop-useless-on-Qubes-dependencies-on-netwo.patch deleted file mode 100644 index 2358c058..00000000 --- a/anaconda/0018-anaconda-drop-useless-on-Qubes-dependencies-on-netwo.patch +++ /dev/null @@ -1,37 +0,0 @@ -From dfa00956589ebcb0b8c7f4faca9f5a833945b74c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: drop useless on Qubes dependencies on network - filesystems -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Installing Qubes on network drive is not supported, so drop those dependencies. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/kickstart.py | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py -index 7d67bf1a6..1121e0928 100644 ---- a/pyanaconda/kickstart.py -+++ b/pyanaconda/kickstart.py -@@ -2155,12 +2155,6 @@ def parseKickstart(f): - - # We need this so all the /dev/disk/* stuff is set up before parsing. - udev.trigger(subsystem="block", action="change") -- # So that drives onlined by these can be used in the ks file -- blivet.iscsi.iscsi.startup() -- blivet.fcoe.fcoe.startup() -- blivet.zfcp.zfcp.startup() -- # Note we do NOT call dasd.startup() here, that does not online drives, but -- # only checks if they need formatting, which requires zerombr to be known - - try: - ksparser.readKickstart(f) --- -2.14.4 - diff --git a/anaconda/0019-anaconda-skip-NTP-installation-and-setup-in-dom0.patch b/anaconda/0019-anaconda-skip-NTP-installation-and-setup-in-dom0.patch deleted file mode 100644 index b40c5772..00000000 --- a/anaconda/0019-anaconda-skip-NTP-installation-and-setup-in-dom0.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 29313be0db3cd1498629e9f5ff9a1b64b5fceec3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: skip NTP installation and setup in dom0 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Dom0 has no direct network access, to this doesn't make sense anyway. - -Fixes QubesOS/qubes-issues#2110 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/kickstart.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py -index 1121e0928..5ac54b4fd 100644 ---- a/pyanaconda/kickstart.py -+++ b/pyanaconda/kickstart.py -@@ -1715,6 +1715,9 @@ class Timezone(commands.timezone.F25_Timezone): - self._disabled_chrony = False - - def setup(self, ksdata): -+ ### Skip the whole NTP setup in Qubes dom0 -+ return -+ - # do not install and use NTP package - if self.nontp or NTP_PACKAGE in ksdata.packages.excludedList: - if iutil.service_running(NTP_SERVICE) and \ --- -2.14.4 - diff --git a/anaconda/0020-anaconda-add-skip_grub-parameter-and-allow-boot-encr.patch b/anaconda/0020-anaconda-add-skip_grub-parameter-and-allow-boot-encr.patch deleted file mode 100644 index 3bf84740..00000000 --- a/anaconda/0020-anaconda-add-skip_grub-parameter-and-allow-boot-encr.patch +++ /dev/null @@ -1,56 +0,0 @@ -From fd7575cbd24f9f72447755995cd9e6694e23f149 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: add skip_grub parameter and allow boot encryption and the lvmlv format -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -On coreboot systems, as grub2 can be used a payload it is possible to have all the partitions encrypted. - -Based on commits bf803e7 and 62cb1ca. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 963af46f9..fa56b532a 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -43,6 +43,8 @@ from blivet.size import Size - from pyanaconda.i18n import _, N_ - - import logging -+import subprocess -+ - log = logging.getLogger("anaconda") - - class serial_opts(object): -@@ -1411,16 +1413,15 @@ class GRUB2(GRUB): - raid.RAID5, raid.RAID6, raid.RAID10] - stage2_raid_metadata = ["0", "0.90", "1.0", "1.2"] - -- @property -- def stage2_format_types(self): -- if productName.startswith("Red Hat "): # pylint: disable=no-member -- return ["xfs", "ext4", "ext3", "ext2", "btrfs"] -- else: -- return ["ext4", "ext3", "ext2", "btrfs", "xfs"] -+ stage2_format_types = ["ext4", "ext3", "ext2", "btrfs", "xfs"] - - def __init__(self): - super(GRUB2, self).__init__() - -+ self.encryption_support = True -+ self.stage2_format_types += ["lvmlv"] -+ self.skip_bootloader = flags.cmdline.getbool("skip_grub", False) -+ - # XXX we probably need special handling for raid stage1 w/ gpt disklabel - # since it's unlikely there'll be a bios boot partition on each disk - --- -2.14.4 - diff --git a/anaconda/0021-anaconda-switch-default-partitioning-scheme-to-LVM-T.patch b/anaconda/0021-anaconda-switch-default-partitioning-scheme-to-LVM-T.patch deleted file mode 100644 index a471a973..00000000 --- a/anaconda/0021-anaconda-switch-default-partitioning-scheme-to-LVM-T.patch +++ /dev/null @@ -1,65 +0,0 @@ -From efeff13f25e049159c556d40511f953e25aa3dc5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: switch default partitioning scheme to LVM Thin - Provisioning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -QubesOS/qubes-issues#2412 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/storage.py | 4 ++-- - pyanaconda/ui/tui/spokes/storage.py | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py -index 87a923657..7feda7db3 100644 ---- a/pyanaconda/ui/gui/spokes/storage.py -+++ b/pyanaconda/ui/gui/spokes/storage.py -@@ -75,7 +75,7 @@ from pyanaconda import constants, iutil, isys - from pyanaconda.bootloader import BootLoaderError - from pyanaconda.storage_utils import on_disk_storage - --from pykickstart.constants import CLEARPART_TYPE_NONE, AUTOPART_TYPE_LVM -+from pykickstart.constants import CLEARPART_TYPE_NONE, AUTOPART_TYPE_LVM, AUTOPART_TYPE_LVM_THINP - from pykickstart.errors import KickstartParseError - - import sys -@@ -553,7 +553,7 @@ class StorageSpoke(NormalSpoke, StorageChecker): - self.autopart = self.data.autopart.autopart - self.autoPartType = self.data.autopart.type - if self.autoPartType is None: -- self.autoPartType = AUTOPART_TYPE_LVM -+ self.autoPartType = AUTOPART_TYPE_LVM_THINP - self.encrypted = self.data.autopart.encrypted - self.passphrase = self.data.autopart.passphrase - -diff --git a/pyanaconda/ui/tui/spokes/storage.py b/pyanaconda/ui/tui/spokes/storage.py -index fd6d7a505..d8ec992b9 100644 ---- a/pyanaconda/ui/tui/spokes/storage.py -+++ b/pyanaconda/ui/tui/spokes/storage.py -@@ -42,7 +42,7 @@ from pyanaconda.constants_text import INPUT_PROCESSED - from pyanaconda.i18n import _, P_, N_, C_ - from pyanaconda.bootloader import BootLoaderError - --from pykickstart.constants import CLEARPART_TYPE_ALL, CLEARPART_TYPE_LINUX, CLEARPART_TYPE_NONE, AUTOPART_TYPE_LVM -+from pykickstart.constants import CLEARPART_TYPE_ALL, CLEARPART_TYPE_LINUX, CLEARPART_TYPE_NONE, AUTOPART_TYPE_LVM, AUTOPART_TYPE_LVM_THINP - from pykickstart.errors import KickstartParseError - - from collections import OrderedDict -@@ -351,7 +351,7 @@ class StorageSpoke(NormalTUISpoke): - self.data.clearpart.drives = self.selected_disks[:] - - if self.data.autopart.type is None: -- self.data.autopart.type = AUTOPART_TYPE_LVM -+ self.data.autopart.type = AUTOPART_TYPE_LVM_THINP - - if self.autopart: - self.clearPartType = CLEARPART_TYPE_ALL --- -2.14.4 - diff --git a/anaconda/0022-anaconda-add-console-none-Xen-parameter.patch b/anaconda/0022-anaconda-add-console-none-Xen-parameter.patch deleted file mode 100644 index 336dbee6..00000000 --- a/anaconda/0022-anaconda-add-console-none-Xen-parameter.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9891905a9d0b3ae52fafdfeae35b062a9b94bccb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: add "console=none" Xen parameter -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index fa56b532a..0e5a9a062 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1504,6 +1504,7 @@ class GRUB2(GRUB): - # boot arguments - log.info("bootloader.py: used boot args: %s ", self.boot_args) - defaults.write("GRUB_CMDLINE_LINUX=\"%s\"\n" % self.boot_args) -+ defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none\"\n") - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") - defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") - defaults.close() --- -2.14.4 - diff --git a/anaconda/0023-anaconda-add-dom0_mem-min-1024M-to-default-xen-cmdli.patch b/anaconda/0023-anaconda-add-dom0_mem-min-1024M-to-default-xen-cmdli.patch deleted file mode 100644 index fcf03d91..00000000 --- a/anaconda/0023-anaconda-add-dom0_mem-min-1024M-to-default-xen-cmdli.patch +++ /dev/null @@ -1,34 +0,0 @@ -From dfa27101877f13bf3d0c6b7cc2715bf355c9f6e5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: add dom0_mem=min:1024M to default xen cmdline -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This will solve #959 for new installations. - -Related to qubesos/qubes-issues#959 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 0e5a9a062..e726517fe 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1504,7 +1504,7 @@ class GRUB2(GRUB): - # boot arguments - log.info("bootloader.py: used boot args: %s ", self.boot_args) - defaults.write("GRUB_CMDLINE_LINUX=\"%s\"\n" % self.boot_args) -- defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none\"\n") -+ defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M\"\n") - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") - defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") - defaults.close() --- -2.14.4 - diff --git a/anaconda/0024-anaconda-limit-dom0-maxmem-to-4GB-to-limit-its-overh.patch b/anaconda/0024-anaconda-limit-dom0-maxmem-to-4GB-to-limit-its-overh.patch deleted file mode 100644 index 15f903c5..00000000 --- a/anaconda/0024-anaconda-limit-dom0-maxmem-to-4GB-to-limit-its-overh.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 8aa4e95d549833bb481fad948ff241838cc02dcf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: limit dom0 maxmem to 4GB to limit its overhead on - big systems -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Linux kernel have some memory overhead depending on maxmem. Dom0 isn't meant to use that much memory (most should be assigned to AppVMs), so on big systems this will be pure waste. - -QubesOS/qubes-issues#1136 -Fixes QubesOS/qubes-issues#1313 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index e726517fe..26a48fc7a 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1504,7 +1504,7 @@ class GRUB2(GRUB): - # boot arguments - log.info("bootloader.py: used boot args: %s ", self.boot_args) - defaults.write("GRUB_CMDLINE_LINUX=\"%s\"\n" % self.boot_args) -- defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M\"\n") -+ defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M\"\n") - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") - defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") - defaults.close() --- -2.14.4 - diff --git a/anaconda/0025-anaconda-disable-iommu-for-IGFX.patch b/anaconda/0025-anaconda-disable-iommu-for-IGFX.patch deleted file mode 100644 index 8b6e6430..00000000 --- a/anaconda/0025-anaconda-disable-iommu-for-IGFX.patch +++ /dev/null @@ -1,49 +0,0 @@ -From bc8defc9d1f4e07685d4535ae47659aae8f29aed Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: disable iommu for IGFX -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Many Intel processors (and BIOSes) have invalid IOMMU configuration for -IGFX, which cause multiple problems - from screen glitches, to system -hang. -Since IGFX currently is still in dom0 (isn't isolated from other system -components), disabling IOMMU for it doesn't lower overall security. -When GUI domain will be implemented, we need to re-enable IOMMU here and -hope hardware manufacturers will fix it in the meantime. - -Fixes QubesOS/qubes-issues#2836 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 26a48fc7a..b0db4a087 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1504,7 +1504,7 @@ class GRUB2(GRUB): - # boot arguments - log.info("bootloader.py: used boot args: %s ", self.boot_args) - defaults.write("GRUB_CMDLINE_LINUX=\"%s\"\n" % self.boot_args) -- defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M\"\n") -+ defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx\"\n") - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") - defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") - defaults.close() -@@ -1885,7 +1885,7 @@ class XenEFI(EFIGRUB): - for image in self.images: - config.write("\n") - config.write("[{}]\n".format(image.version)) -- config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M\n") -+ config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx\n") - config.write("kernel={} root={} {}\n".format( - image.kernel, - image.device.fstab_spec, --- -2.14.4 - diff --git a/anaconda/0026-anaconda-check-for-virtualization-features.patch b/anaconda/0026-anaconda-check-for-virtualization-features.patch deleted file mode 100644 index 20947e7f..00000000 --- a/anaconda/0026-anaconda-check-for-virtualization-features.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 1e8e3f8cef09f30e31f878ef4ccade45cb00a6d1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: check for virtualization features -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Warn if the hardware lack features required for proper Qubes OS operation. - -Fixes QubesOS/qubes-issues#2977 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/iutil.py | 17 +++++++++++++++++ - pyanaconda/ui/gui/spokes/welcome.glade | 2 +- - pyanaconda/ui/gui/spokes/welcome.py | 8 ++++++-- - pyanaconda/ui/tui/spokes/warnings_spoke.py | 16 ++++++++-------- - 4 files changed, 32 insertions(+), 11 deletions(-) - -diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py -index d966ca65c..20ed54302 100644 ---- a/pyanaconda/iutil.py -+++ b/pyanaconda/iutil.py -@@ -1098,6 +1098,23 @@ def is_unsupported_hw(): - tainted = 0 - - status = bool(tainted & UNSUPPORTED_HW) -+ try: -+ xl_info = subprocess.check_output(['xl', 'info']) -+ xl_dmesg = subprocess.check_output(['xl', 'dmesg']) -+ except subprocess.CalledProcessError: -+ status = 'xl call failed' -+ else: -+ missing_features = [] -+ for line in xl_info.splitlines(): -+ if line.startswith(b'virt_caps'): -+ if b'hvm' not in line: -+ missing_features.append('HVM/VT-x/AMD-V') -+ if b'hvm_directio' not in line: -+ missing_features.append('IOMMU/VT-d/AMD-Vi') -+ if b'HVM: Hardware Assisted Paging (HAP) detected' not in xl_dmesg: -+ missing_features.append('HAP/SLAT/EPT/RVI') -+ status = ', '.join(missing_features) -+ - if status: - log.debug("Installing on Unsupported Hardware") - return status -diff --git a/pyanaconda/ui/gui/spokes/welcome.glade b/pyanaconda/ui/gui/spokes/welcome.glade -index 2373a75f1..87e5bf0e9 100644 ---- a/pyanaconda/ui/gui/spokes/welcome.glade -+++ b/pyanaconda/ui/gui/spokes/welcome.glade -@@ -507,7 +507,7 @@ - True - False - start -- This hardware (or a combination thereof) is not supported by Red Hat. For more information on supported hardware, please refer to http://www.redhat.com/hardware. -+ This hardware lack features required by Qubes OS. Missing features: %(features)s. For more information on supported hardware, please refer to https://www.qubes-os.org/system-requirements/ - True - - -diff --git a/pyanaconda/ui/gui/spokes/welcome.py b/pyanaconda/ui/gui/spokes/welcome.py -index c77e36214..802a2179b 100644 ---- a/pyanaconda/ui/gui/spokes/welcome.py -+++ b/pyanaconda/ui/gui/spokes/welcome.py -@@ -295,9 +295,13 @@ class WelcomeLanguageSpoke(LangLocaleHandler, StandaloneSpoke): - sys.exit(0) - - # pylint: disable=no-member -- if productName.startswith("Red Hat ") and \ -- is_unsupported_hw() and not self.data.unsupportedhardware.unsupported_hardware: -+ unsupported_status = is_unsupported_hw() -+ if unsupported_status: -+ # Fedora kickstart do not have unsupported_hardware option: -+ # and not self.data.unsupportedhardware.unsupported_hardware: - dlg = self.builder.get_object("unsupportedHardwareDialog") -+ msg = self.builder.get_object("unsupportedHardwareDesc") -+ msg.set_text(_(msg.get_text()) % {'features': unsupported_status}) - with self.main_window.enlightbox(dlg): - rc = dlg.run() - dlg.destroy() -diff --git a/pyanaconda/ui/tui/spokes/warnings_spoke.py b/pyanaconda/ui/tui/spokes/warnings_spoke.py -index 6334c656c..8aed09625 100644 ---- a/pyanaconda/ui/tui/spokes/warnings_spoke.py -+++ b/pyanaconda/ui/tui/spokes/warnings_spoke.py -@@ -43,15 +43,15 @@ class WarningsSpoke(StandaloneTUISpoke): - def __init__(self, *args, **kwargs): - StandaloneTUISpoke.__init__(self, *args, **kwargs) - -- self._message = _("This hardware (or a combination thereof) is not " -- "supported by Red Hat. For more information on " -- "supported hardware, please refer to " -- "http://www.redhat.com/hardware.") -+ self._message = _("This hardware lack features required by Qubes OS. " -+ "Missing features: %(features)s. " -+ "For more information on supported hardware, " -+ "please refer to https://www.qubes-os.org/system-requirements/") - # Does anything need to be displayed? - # pylint: disable=no-member -- self._unsupported = productName.startswith("Red Hat ") and \ -- is_unsupported_hw() and \ -- not self.data.unsupportedhardware.unsupported_hardware -+ # self._unsupported = not self.data.unsupportedhardware.unsupported_hardware \ -+ # and is_unsupported_hw() -+ self._unsupported = is_unsupported_hw() - - @property - def completed(self): -@@ -60,7 +60,7 @@ class WarningsSpoke(StandaloneTUISpoke): - def refresh(self, args=None): - StandaloneTUISpoke.refresh(self, args) - -- self._window += [TextWidget(self._message), ""] -+ self._window += [TextWidget(self._message % {'features': self._unsupported}), ""] - - return True - --- -2.14.4 - diff --git a/anaconda/0027-anaconda-generate-proper-extlinux.conf.patch b/anaconda/0027-anaconda-generate-proper-extlinux.conf.patch deleted file mode 100644 index 7b392272..00000000 --- a/anaconda/0027-anaconda-generate-proper-extlinux.conf.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 2f453961a603a30bd132d7883701dfe8320ee95b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: generate proper extlinux.conf -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes QubesOS/qubes-issues#2902 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index b0db4a087..b1e9ff421 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -2352,6 +2352,8 @@ class EXTLINUX(BootLoader): - - def write_config_images(self, config): - self.write_config_console(config) -+ xen_gz = [x for x in os.listdir(iutil.getSysroot() + self.config_dir) if -+ x.startswith('xen-') and x.endswith('.gz')][0] - for image in self.images: - args = Arguments() - args.update(["root=%s" % image.device.fstab_spec, "ro"]) -@@ -2364,10 +2366,12 @@ class EXTLINUX(BootLoader): - label = "%s(%s)" % (self.image_label(image), image.version) - label = label.replace(" ", "") - stanza = ("label %(label)s\n" -- "\tkernel %(boot_prefix)s/%(kernel)s\n" -- "\tinitrd %(boot_prefix)s/%(initrd)s\n" -- "\tappend %(args)s\n\n" -+ "\tkernel mboot.c32\n" -+ "\tappend %(boot_prefix)s/%(xen)s --- " -+ "%(boot_prefix)s/%(kernel)s %(args)s --- " -+ "%(boot_prefix)s/%(initrd)s\n" - % {"label": label, -+ "xen": xen_gz, - "kernel": image.kernel, - "initrd": image.initrd, - "args": args, --- -2.14.4 - diff --git a/anaconda/0028-anaconda-don-t-crash-when-no-target-disk-is-availabl.patch b/anaconda/0028-anaconda-don-t-crash-when-no-target-disk-is-availabl.patch deleted file mode 100644 index 1897fe1e..00000000 --- a/anaconda/0028-anaconda-don-t-crash-when-no-target-disk-is-availabl.patch +++ /dev/null @@ -1,51 +0,0 @@ -From c247cc5c37932dbe1c1db85d7d948a4b83da112e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: don't crash when no target disk is available -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -self.storage.root_device may be None in such case. Instead, allow proper reporting that no space is available. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/lib/space.py | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/pyanaconda/ui/lib/space.py b/pyanaconda/ui/lib/space.py -index 3679a33eb..9b15c474f 100644 ---- a/pyanaconda/ui/lib/space.py -+++ b/pyanaconda/ui/lib/space.py -@@ -75,8 +75,11 @@ class FileSystemSpaceChecker(object): - log.info("fs space: %s needed: %s", free, needed) - self.success = (free > needed) - if not self.success: -- dev_required_size = self.payload.requiredDeviceSize(self.storage.root_device.format) -- self.deficit = dev_required_size - self.storage.root_device.size -+ if self.storage.root_device: -+ dev_required_size = self.payload.requiredDeviceSize(self.storage.root_device.format) -+ self.deficit = dev_required_size - self.storage.root_device.size -+ else: -+ self.deficit = needed - free - self.error_message = _(self.error_template) % self.deficit - - return self.success -@@ -107,8 +110,11 @@ class DirInstallSpaceChecker(FileSystemSpaceChecker): - log.info("fs space: %s needed: %s", free, needed) - self.success = (free > needed) - if not self.success: -- dev_required_size = self.payload.requiredDeviceSize(self.storage.root_device.format) -- self.deficit = dev_required_size - self.storage.root_device.size -+ if self.storage.root_device: -+ dev_required_size = self.payload.requiredDeviceSize(self.storage.root_device.format) -+ self.deficit = dev_required_size - self.storage.root_device.size -+ else: -+ self.deficit = needed - free - self.error_message = _(self.error_template) % self.deficit - - return self.success --- -2.14.4 - diff --git a/anaconda/0029-anaconda-consider-Interrupt-Remapping-as-required-fe.patch b/anaconda/0029-anaconda-consider-Interrupt-Remapping-as-required-fe.patch deleted file mode 100644 index bcf33170..00000000 --- a/anaconda/0029-anaconda-consider-Interrupt-Remapping-as-required-fe.patch +++ /dev/null @@ -1,32 +0,0 @@ -From faf9c486b086a3af05047fa63a07ad2fd9de4477 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: consider Interrupt Remapping as required feature -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -QubesOS/qubes-issues#2977 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/iutil.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py -index 20ed54302..e3fb28862 100644 ---- a/pyanaconda/iutil.py -+++ b/pyanaconda/iutil.py -@@ -1113,6 +1113,8 @@ def is_unsupported_hw(): - missing_features.append('IOMMU/VT-d/AMD-Vi') - if b'HVM: Hardware Assisted Paging (HAP) detected' not in xl_dmesg: - missing_features.append('HAP/SLAT/EPT/RVI') -+ if b'Intel VT-d Interrupt Remapping enabled' not in xl_dmesg: -+ missing_features.append('Interrupt Remapping') - status = ', '.join(missing_features) - - if status: --- -2.14.4 - diff --git a/anaconda/0030-anaconda-lock-root-account-by-default.patch b/anaconda/0030-anaconda-lock-root-account-by-default.patch deleted file mode 100644 index befdf886..00000000 --- a/anaconda/0030-anaconda-lock-root-account-by-default.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0ac6e123eb37cec6e5f5849e861e2e6d76f3be05 Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: lock root account by default -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/kickstart.py | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py -index 5ac54b4fd..c0db1b614 100644 ---- a/pyanaconda/kickstart.py -+++ b/pyanaconda/kickstart.py -@@ -1665,6 +1665,11 @@ class ReqPart(commands.reqpart.F23_ReqPart): - do_reqpart(storage, reqs) - - class RootPw(commands.rootpw.F18_RootPw): -+ def __init__(self, writePriority=100, *args, **kwargs): -+ if 'lock' not in kwargs: -+ kwargs['lock'] = True -+ super(RootPw, self).__init__(writePriority=writePriority, *args, **kwargs) -+ - def execute(self, storage, ksdata, instClass, users): - if not self.password and not flags.automatedInstall: - self.lock = True --- -2.14.4 - diff --git a/anaconda/0031-anaconda-add-option-to-lock-root-account.patch b/anaconda/0031-anaconda-add-option-to-lock-root-account.patch deleted file mode 100644 index 3539e721..00000000 --- a/anaconda/0031-anaconda-add-option-to-lock-root-account.patch +++ /dev/null @@ -1,161 +0,0 @@ -From bb3d9ee61f69488c18035d16c804af5ff079b7b7 Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: add option to lock root account -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Not only default setting, so one could leave account locked if entered -password setting spoke. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/password.glade | 18 +++++++++++- - pyanaconda/ui/gui/spokes/password.py | 51 +++++++++++++++++++++++---------- - 2 files changed, 53 insertions(+), 16 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/password.glade b/pyanaconda/ui/gui/spokes/password.glade -index 1a4e77720..1f1fe5837 100644 ---- a/pyanaconda/ui/gui/spokes/password.glade -+++ b/pyanaconda/ui/gui/spokes/password.glade -@@ -40,6 +40,22 @@ - - False - vertical -+ -+ -+ Lock root account -+ True -+ True -+ False -+ 0 -+ True -+ -+ -+ -+ False -+ True -+ 0 -+ -+ - - - True -@@ -174,7 +190,7 @@ - - False - True -- 0 -+ 1 - - - -diff --git a/pyanaconda/ui/gui/spokes/password.py b/pyanaconda/ui/gui/spokes/password.py -index 92acfa8f3..3e8ada1cc 100644 ---- a/pyanaconda/ui/gui/spokes/password.py -+++ b/pyanaconda/ui/gui/spokes/password.py -@@ -56,6 +56,7 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - def __init__(self, *args): - NormalSpoke.__init__(self, *args) - GUISpokeInputCheckHandler.__init__(self) -+ self._lock = self.data.rootpw.lock - self._kickstarted = False - - def initialize(self): -@@ -63,6 +64,7 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - # place holders for the text boxes - self.pw = self.builder.get_object("pw") - self.confirm = self.builder.get_object("confirmPW") -+ self.lock = self.builder.get_object("lock") - - # Install the password checks: - # - Has a password been specified? -@@ -119,17 +121,31 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - # Enable the input checks in case they were disabled on the last exit - for check in self.checks: - check.enabled = True -- -- self.pw.grab_focus() -+ self.lock.set_active(self._lock) -+ self.on_lock_clicked(self.lock) - self.pw.emit("changed") - self.confirm.emit("changed") - -+ def on_lock_clicked(self, lock): -+ self.pw.set_sensitive(not lock.get_active()) -+ self.confirm.set_sensitive(not lock.get_active()) -+ if not lock.get_active(): -+ self.pw.grab_focus() -+ -+# Caps lock detection isn't hooked up right now -+# def setCapsLockLabel(self): -+# if isCapsLockEnabled(): -+# self.capslock.set_text("" + _("Caps Lock is on.") + "") -+# self.capslock.set_use_markup(True) -+# else: -+# self.capslock..set_text("") -+ - @property - def status(self): -- if self.data.rootpw.password: -- return _("Root password is set") -- elif self.data.rootpw.lock: -+ if self.data.rootpw.lock: - return _("Root account is disabled") -+ elif self.data.rootpw.password: -+ return _("Root password is set") - else: - return _("Root password is not set") - -@@ -145,15 +161,10 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - self.data.rootpw.seen = False - self._kickstarted = False - -- self.data.rootpw.lock = False -- -- if not pw: -- self.data.rootpw.password = '' -- self.data.rootpw.isCrypted = False -- return -- -- self.data.rootpw.password = cryptPassword(pw) -- self.data.rootpw.isCrypted = True -+ if pw: -+ self.data.rootpw.password = cryptPassword(pw) -+ self.data.rootpw.isCrypted = True -+ self.data.rootpw.lock = self._lock - - self.pw.set_placeholder_text("") - self.confirm.set_placeholder_text("") -@@ -173,6 +184,8 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - # If the password was set by kickstart, skip this check - if self._kickstarted and not self.policy.changesok: - return InputCheck.CHECK_OK -+ if self.lock.get_active(): -+ return InputCheck.CHECK_OK - - if not self.get_input(inputcheck.input_obj): - if inputcheck.input_obj == self.pw: -@@ -187,9 +200,17 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - - pw = self.pw.get_text() - confirm = self.confirm.get_text() -+ lock = self.lock.get_active() -+ -+ if lock: -+ self._lock = True -+ self._password = None -+ self.clear_info() -+ self._error = False -+ result = InputCheck.CHECK_OK - - # Skip the check if no password is required -- if (not pw and not confirm) and self._kickstarted: -+ elif (not pw and not confirm) and self._kickstarted: - result = InputCheck.CHECK_OK - elif confirm and (pw != confirm): - result = _(PASSWORD_CONFIRM_ERROR_GUI) --- -2.14.4 - diff --git a/anaconda/0032-anaconda-check-add-user-to-wheel-and-qubes-groups.patch b/anaconda/0032-anaconda-check-add-user-to-wheel-and-qubes-groups.patch deleted file mode 100644 index cf2c49b7..00000000 --- a/anaconda/0032-anaconda-check-add-user-to-wheel-and-qubes-groups.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9a037670677088cf8c7b67b8b1d03e09b39932c7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: check/add user to 'wheel' and 'qubes' groups -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Originally from 378cfc44dd218c61b838f4f9011dcfd790df59eb by Marek Marczykowski-Górecki - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/user.py | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/pyanaconda/ui/gui/spokes/user.py b/pyanaconda/ui/gui/spokes/user.py -index bb2ec15e1..e954292c7 100644 ---- a/pyanaconda/ui/gui/spokes/user.py -+++ b/pyanaconda/ui/gui/spokes/user.py -@@ -380,6 +380,11 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - self._user.name = self.username.get_text() - self._user.gecos = self.fullname.get_text() - -+ if "wheel" not in self._user.groups: -+ self._user.groups.append("wheel") -+ if "qubes" not in self._user.groups: -+ self._user.groups.append("qubes") -+ - # Copy the spoke data back to kickstart - # If the user name is not set, no user will be created. - if self._user.name: --- -2.14.4 - diff --git a/anaconda/0033-anaconda-Modify-user-configuration-spoke-for-QubesOS.patch b/anaconda/0033-anaconda-Modify-user-configuration-spoke-for-QubesOS.patch deleted file mode 100644 index b0546a59..00000000 --- a/anaconda/0033-anaconda-Modify-user-configuration-spoke-for-QubesOS.patch +++ /dev/null @@ -1,389 +0,0 @@ -From cd70689b0642d41dcbdb826df4fc9f79b1ef899e Mon Sep 17 00:00:00 2001 -From: "M. Vefa Bicakci" -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: Modify user configuration spoke for QubesOS -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/user.glade | 96 +++++++------------------------------ - pyanaconda/ui/gui/spokes/user.py | 57 +++------------------- - pyanaconda/ui/tui/spokes/user.py | 21 ++------ - 3 files changed, 28 insertions(+), 146 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/user.glade b/pyanaconda/ui/gui/spokes/user.glade -index 2873ff2d9..e6700657d 100644 ---- a/pyanaconda/ui/gui/spokes/user.glade -+++ b/pyanaconda/ui/gui/spokes/user.glade -@@ -1,5 +1,5 @@ - -- -+ - - - -@@ -53,33 +53,15 @@ - False - 8 - 9 -- -- -- True -- False -- 1 -- 10 -- _Full name -- True -- t_fullname -- -- -- -- -- -- 0 -- 0 -- -- - - - True - False -- 1 - 10 - _User name - True - t_username -+ 1 - - - -@@ -89,29 +71,12 @@ - 1 - - -- -- -- True -- True -- False -- -- -- -- Full Name -- -- -- -- -- 1 -- 0 -- -- - - - True - True -- - -+ - - - User Name -@@ -127,11 +92,11 @@ - - True - False -- 1 - 10 - _Password - True - t_password -+ 1 - - - -@@ -145,11 +110,11 @@ - - True - False -- 1 - 10 - _Confirm password - True - t_verifypassword -+ 1 - - - -@@ -166,7 +131,7 @@ - False - - -- -+ - - - Password -@@ -184,7 +149,7 @@ - True - False - -- -+ - - - Confirm Password -@@ -200,9 +165,9 @@ - - True - False -- 0 - <b>Tip:</b> Keep your user name shorter than 32 characters and do not use spaces. - True -+ 0 - - - 1 -@@ -268,45 +233,16 @@ - - - -- -- _Make this user administrator -- True -- True -- False -- True -- 0 -- True -- -- -- -- 1 -- 3 -- -+ - - -- -- True -- False -- -- -- _Advanced... -- True -- False -- True -- True -- True -- -- -- -- 0 -- 0 -- -- -- -- -- 1 -- 8 -- -+ -+ -+ -+ -+ -+ -+ - - - -diff --git a/pyanaconda/ui/gui/spokes/user.py b/pyanaconda/ui/gui/spokes/user.py -index e954292c7..dac6ba3e5 100644 ---- a/pyanaconda/ui/gui/spokes/user.py -+++ b/pyanaconda/ui/gui/spokes/user.py -@@ -38,7 +38,7 @@ from pyanaconda.constants import ANACONDA_ENVIRON, FIRSTBOOT_ENVIRON,\ - PW_ASCII_CHARS, PASSWORD_ASCII - from pyanaconda.regexes import GECOS_VALID, GROUPNAME_VALID, GROUPLIST_FANCY_PARSE - --__all__ = ["UserSpoke", "AdvancedUserDialog"] -+__all__ = ["UserSpoke"] - - class AdvancedUserDialog(GUIObject, GUIDialogInputCheckHandler): - """ -@@ -214,7 +214,7 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - builderObjects = ["userCreationWindow"] - - mainWidgetName = "userCreationWindow" -- focusWidgetName = "t_fullname" -+ focusWidgetName = "t_username" - uiFile = "spokes/user.glade" - helpFile = "UserSpoke.xml" - -@@ -252,14 +252,16 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - else: - self._user = self.data.UserData() - -+ self._wheel = self.data.GroupData(name="wheel") -+ self._qubes = self.data.GroupData(name="qubes") -+ -+ self._groupDict = {"wheel": self._wheel, "qubes": self._qubes} -+ - # placeholders for the text boxes -- self.fullname = self.builder.get_object("t_fullname") - self.username = self.builder.get_object("t_username") - self.pw = self.builder.get_object("t_password") - self.confirm = self.builder.get_object("t_verifypassword") -- self.admin = self.builder.get_object("c_admin") - self.usepassword = self.builder.get_object("c_usepassword") -- self.b_advanced = self.builder.get_object("b_advanced") - - # Counters for checks that ask the user to click Done to confirm - self._waiveStrengthClicks = 0 -@@ -306,8 +308,6 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - - self.add_check(self.username, self._checkUsername) - -- self.add_re_check(self.fullname, GECOS_VALID, _("Full name cannot contain colon characters")) -- - # Modify the GUI based on the kickstart and policy information - # This needs to happen after the input checks have been created, since - # the Gtk signal handlers use the input check variables. -@@ -323,9 +323,6 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - # User isn't allowed to change whether password is required or not - self.usepassword.set_sensitive(False) - -- self._advanced = AdvancedUserDialog(self._user, self.data) -- self._advanced.initialize() -- - # set the visibility of the password entries - set_password_visibility(self.pw, False) - set_password_visibility(self.confirm, False) -@@ -336,8 +333,6 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - check.enabled = True - - self.username.set_text(self._user.name) -- self.fullname.set_text(self._user.gecos) -- self.admin.set_active("wheel" in self._user.groups) - - self.pw.emit("changed") - self.confirm.emit("changed") -@@ -378,7 +373,6 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - self._password_kickstarted = False - - self._user.name = self.username.get_text() -- self._user.gecos = self.fullname.get_text() - - if "wheel" not in self._user.groups: - self._user.groups.append("wheel") -@@ -469,34 +463,10 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - def username_changed(self, editable, data=None): - """Called by Gtk on all username changes.""" - -- # Disable the advanced user dialog button when no username is set -- if editable.get_text(): -- self.b_advanced.set_sensitive(True) -- else: -- self.b_advanced.set_sensitive(False) -- - # Re-run the password checks against the new username - self.pw.emit("changed") - self.confirm.emit("changed") - -- def full_name_changed(self, editable, data=None): -- """Called by Gtk callback when the full name field changes.""" -- -- if self.guesser: -- fullname = editable.get_text() -- username = guess_username(fullname) -- -- with blockedHandler(self.username, self.on_username_set_by_user): -- self.username.set_text(username) -- -- def on_admin_toggled(self, togglebutton, data=None): -- # Add or remove "wheel" from the grouplist on changes to the admin checkbox -- if togglebutton.get_active(): -- if "wheel" not in self._user.groups: -- self._user.groups.append("wheel") -- elif "wheel" in self._user.groups: -- self._user.groups.remove("wheel") -- - def _checkPasswordEmpty(self, inputcheck): - """Check whether a password has been specified at all. - -@@ -612,19 +582,6 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - else: - return msg or _("Invalid user name") - -- def on_advanced_clicked(self, _button, data=None): -- """Handler for the Advanced.. button. It starts the Advanced dialog -- for setting homedit, uid, gid and groups. -- """ -- -- self._user.name = self.username.get_text() -- -- self._advanced.refresh() -- with self.main_window.enlightbox(self._advanced.window): -- self._advanced.run() -- -- self.admin.set_active("wheel" in self._user.groups) -- - def on_back_clicked(self, button): - # If the failed check is for non-ASCII characters, - # add a click to the counter and check again -diff --git a/pyanaconda/ui/tui/spokes/user.py b/pyanaconda/ui/tui/spokes/user.py -index 1005852db..834b82cbf 100644 ---- a/pyanaconda/ui/tui/spokes/user.py -+++ b/pyanaconda/ui/tui/spokes/user.py -@@ -40,11 +40,9 @@ class UserSpoke(FirstbootSpokeMixIn, EditTUISpoke): - - edit_fields = [ - Entry("Create user", "_create", EditTUISpoke.CHECK, True), -- Entry("Fullname", "gecos", GECOS_VALID, lambda self, args: args._create), - Entry("Username", "name", check_username, lambda self, args: args._create), - Entry("Use password", "_use_password", EditTUISpoke.CHECK, lambda self, args: args._create), - Entry("Password", "_password", EditTUISpoke.PASSWORD, lambda self, args: args._use_password and args._create), -- Entry("Administrator", "_admin", EditTUISpoke.CHECK, lambda self, args: args._create), - Entry("Groups", "_groups", GROUPLIST_SIMPLE_VALID, lambda self, args: args._create) - ] - -@@ -84,7 +82,6 @@ class UserSpoke(FirstbootSpokeMixIn, EditTUISpoke): - self.errors = [] - - def refresh(self, args=None): -- self.args._admin = "wheel" in self.args.groups - self.args._groups = ", ".join(self.args.groups) - - # if we have any errors, display them -@@ -146,22 +143,14 @@ class UserSpoke(FirstbootSpokeMixIn, EditTUISpoke): - return EditTUISpoke.input(self, args, key) - - def apply(self): -- if self.args.gecos and not self.args.name: -- username = guess_username(self.args.gecos) -- valid, msg = check_username(username) -- if not valid: -- self.errors.append(_("Invalid user name: %(name)s.\n%(error_message)s") -- % {"name": username, "error_message": msg}) -- else: -- self.args.name = guess_username(self.args.gecos) -- - self.args.groups = [g.strip() for g in self.args._groups.split(",") if g] - -- # Add or remove the user from wheel group -- if self.args._admin and "wheel" not in self.args.groups: -+ # Add the user to the wheel and qubes groups -+ if "wheel" not in self.args.groups: - self.args.groups.append("wheel") -- elif not self.args._admin and "wheel" in self.args.groups: -- self.args.groups.remove("wheel") -+ -+ if "qubes" not in self.args.groups: -+ self.args.groups.append("qubes") - - # Add or remove the user from userlist as needed - if self.args._create and (self.args not in self.data.user.userList and self.args.name): --- -2.14.4 - diff --git a/anaconda/0034-anaconda-Make-sure-that-a-user-is-created-at-install.patch b/anaconda/0034-anaconda-Make-sure-that-a-user-is-created-at-install.patch deleted file mode 100644 index c3c8ef33..00000000 --- a/anaconda/0034-anaconda-Make-sure-that-a-user-is-created-at-install.patch +++ /dev/null @@ -1,94 +0,0 @@ -From b93178bff8ecb1e362c79e845c2e7ceec08c682e Mon Sep 17 00:00:00 2001 -From: "M. Vefa Bicakci" -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: Make sure that a user is created at installation - time -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/user.py | 8 ++------ - pyanaconda/ui/tui/spokes/user.py | 10 +++------- - 2 files changed, 5 insertions(+), 13 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/user.py b/pyanaconda/ui/gui/spokes/user.py -index dac6ba3e5..dd281f8e4 100644 ---- a/pyanaconda/ui/gui/spokes/user.py -+++ b/pyanaconda/ui/gui/spokes/user.py -@@ -26,7 +26,6 @@ from pyanaconda.users import cryptPassword, validatePassword, guess_username, ch - from pyanaconda.ui.gui.spokes import NormalSpoke - from pyanaconda.ui.gui import GUIObject - from pyanaconda.ui.categories.user_settings import UserSettingsCategory --from pyanaconda.ui.common import FirstbootSpokeMixIn - from pyanaconda.ui.helpers import InputCheck - from pyanaconda.ui.gui.helpers import GUISpokeInputCheckHandler, GUIDialogInputCheckHandler - from pyanaconda.ui.gui.utils import blockedHandler, set_password_visibility -@@ -206,7 +205,7 @@ class AdvancedUserDialog(GUIObject, GUIDialogInputCheckHandler): - - return False - --class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): -+class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - """ - .. inheritance-diagram:: UserSpoke - :parts: 3 -@@ -348,10 +347,7 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler): - - @property - def mandatory(self): -- """ Only mandatory if the root pw hasn't been set in the UI -- eg. not mandatory if the root account was locked in a kickstart -- """ -- return not self.data.rootpw.password and not self.data.rootpw.lock -+ return True - - def apply(self): - # set the password only if the user enters anything to the text entry -diff --git a/pyanaconda/ui/tui/spokes/user.py b/pyanaconda/ui/tui/spokes/user.py -index 834b82cbf..baa3ac203 100644 ---- a/pyanaconda/ui/tui/spokes/user.py -+++ b/pyanaconda/ui/tui/spokes/user.py -@@ -20,7 +20,6 @@ - from pyanaconda.ui.categories.user_settings import UserSettingsCategory - from pyanaconda.ui.tui.spokes import EditTUISpoke - from pyanaconda.ui.tui.spokes import EditTUISpokeEntry as Entry --from pyanaconda.ui.common import FirstbootSpokeMixIn - from pyanaconda.users import guess_username, check_username - from pyanaconda.flags import flags - from pyanaconda.i18n import N_, _ -@@ -30,7 +29,7 @@ from pyanaconda.regexes import GECOS_VALID, GROUPLIST_SIMPLE_VALID - - __all__ = ["UserSpoke"] - --class UserSpoke(FirstbootSpokeMixIn, EditTUISpoke): -+class UserSpoke(EditTUISpoke): - """ - .. inheritance-diagram:: UserSpoke - :parts: 3 -@@ -64,8 +63,8 @@ class UserSpoke(FirstbootSpokeMixIn, EditTUISpoke): - return False - - def __init__(self, app, data, storage, payload, instclass): -- FirstbootSpokeMixIn.__init__(self) - EditTUISpoke.__init__(self, app, data, storage, payload, instclass, "user") -+ - if self.data.user.userList: - self.args = self.data.user.userList[0] - self.args._create = True -@@ -108,10 +107,7 @@ class UserSpoke(FirstbootSpokeMixIn, EditTUISpoke): - - @property - def mandatory(self): -- """ Only mandatory if the root pw hasn't been set in the UI -- eg. not mandatory if the root account was locked in a kickstart -- """ -- return not self.data.rootpw.password and not self.data.rootpw.lock -+ return True - - @property - def status(self): --- -2.14.4 - diff --git a/anaconda/0035-anaconda-xen.efi-upgraded-during-each-install.patch b/anaconda/0035-anaconda-xen.efi-upgraded-during-each-install.patch deleted file mode 100644 index 6d2343fa..00000000 --- a/anaconda/0035-anaconda-xen.efi-upgraded-during-each-install.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5c3b0d8d2319f323d5437bf51356b2988262e84f Mon Sep 17 00:00:00 2001 -From: Freddie Rice -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: xen.efi upgraded during each install -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index b1e9ff421..27c7ed34a 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1851,12 +1851,15 @@ class XenEFI(EFIGRUB): - boot_part_num = self.stage1_device.parents[0].parted_partition.number - boot_part_num = str(boot_part_num) - -- if not os.path.exists( -- "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi")): -- xen_efi = [x for x in os.listdir(iutil.getSysroot() + self.config_dir) if -- x.startswith('xen-') and x.endswith('.efi')][0] -- shutil.copy("{}/{}".format(iutil.getSysroot() + self.config_dir, xen_efi), -- "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi")) -+ # could be an old version, replace in case -+ xen_efi_target = "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi") -+ if os.path.exists(xen_efi_target): -+ os.remove(xen_efi_target) -+ -+ xen_efi = [x for x in os.listdir(iutil.getSysroot() + self.config_dir) if -+ x.startswith('xen-') and x.endswith('.efi')][0] -+ shutil.copy("{}/{}".format(iutil.getSysroot() + self.config_dir, xen_efi), -+ "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi")) - rc = self.efibootmgr("-c", "-w", "-L", productName, - "-d", boot_disk.path, "-p", boot_part_num, - "-l", --- -2.14.4 - diff --git a/anaconda/0036-anaconda-make-sure-the-latest-version-is-placed-as-x.patch b/anaconda/0036-anaconda-make-sure-the-latest-version-is-placed-as-x.patch deleted file mode 100644 index 34ebc2c3..00000000 --- a/anaconda/0036-anaconda-make-sure-the-latest-version-is-placed-as-x.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 53204d90309574fddbb0576d7a153657996eef33 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: make sure the latest version is placed as xen.efi -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -os.listdir returns files in filesystem order, not sorted. - -QubesOS/qubes-issues#2990 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 27c7ed34a..ad8e8c2e7 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1856,10 +1856,10 @@ class XenEFI(EFIGRUB): - if os.path.exists(xen_efi_target): - os.remove(xen_efi_target) - -- xen_efi = [x for x in os.listdir(iutil.getSysroot() + self.config_dir) if -- x.startswith('xen-') and x.endswith('.efi')][0] -+ xen_efi = [x for x in sorted(os.listdir(iutil.getSysroot() + self.config_dir)) if -+ x.startswith('xen-') and x.endswith('.efi')][-1] - shutil.copy("{}/{}".format(iutil.getSysroot() + self.config_dir, xen_efi), -- "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi")) -+ xen_efi_target) - rc = self.efibootmgr("-c", "-w", "-L", productName, - "-d", boot_disk.path, "-p", boot_part_num, - "-l", --- -2.14.4 - diff --git a/anaconda/0037-anaconda-update-message-about-unusupported-hardware.patch b/anaconda/0037-anaconda-update-message-about-unusupported-hardware.patch deleted file mode 100644 index 74f970e6..00000000 --- a/anaconda/0037-anaconda-update-message-about-unusupported-hardware.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0a627aa765eb6fa7e9adbc0ec76ebb1e745c3941 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: update message about unusupported hardware -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Advise to not continue. - -Fixes QubesOS/qubes-issues#3208 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/welcome.glade | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyanaconda/ui/gui/spokes/welcome.glade b/pyanaconda/ui/gui/spokes/welcome.glade -index 87e5bf0e9..8daed92af 100644 ---- a/pyanaconda/ui/gui/spokes/welcome.glade -+++ b/pyanaconda/ui/gui/spokes/welcome.glade -@@ -507,7 +507,7 @@ - True - False - start -- This hardware lack features required by Qubes OS. Missing features: %(features)s. For more information on supported hardware, please refer to https://www.qubes-os.org/system-requirements/ -+ This hardware lacks features required by Qubes OS. Missing features: %(features)s. Without these features, Qubes OS will not function normally. It is recommended that only developers and power users proceed with the installation. For more information on supported hardware, please refer to https://www.qubes-os.org/system-requirements/ - True - - --- -2.14.4 - diff --git a/anaconda/0038-anaconda-check-also-for-message-about-AMD-interrupt-.patch b/anaconda/0038-anaconda-check-also-for-message-about-AMD-interrupt-.patch deleted file mode 100644 index 40928fb7..00000000 --- a/anaconda/0038-anaconda-check-also-for-message-about-AMD-interrupt-.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9d9ba78cef13cbfb00af08fddfa122488763a8e9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: check also for message about AMD interrupt - remapping -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes QubesOS/qubes-issues#3208 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/iutil.py | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py -index e3fb28862..166626a67 100644 ---- a/pyanaconda/iutil.py -+++ b/pyanaconda/iutil.py -@@ -1113,7 +1113,9 @@ def is_unsupported_hw(): - missing_features.append('IOMMU/VT-d/AMD-Vi') - if b'HVM: Hardware Assisted Paging (HAP) detected' not in xl_dmesg: - missing_features.append('HAP/SLAT/EPT/RVI') -- if b'Intel VT-d Interrupt Remapping enabled' not in xl_dmesg: -+ # slightly different wording for Intel and AMD -+ if b'Intel VT-d Interrupt Remapping enabled' not in xl_dmesg \ -+ and 'Interrupt remapping enabled' not in xl_dmesg: - missing_features.append('Interrupt Remapping') - status = ', '.join(missing_features) - --- -2.14.4 - diff --git a/anaconda/0039-anaconda-Remove-in-memory-kickstart-representation-f.patch b/anaconda/0039-anaconda-Remove-in-memory-kickstart-representation-f.patch deleted file mode 100644 index 83cd379f..00000000 --- a/anaconda/0039-anaconda-Remove-in-memory-kickstart-representation-f.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 477f57c5661c58537e675e1d8cfa20c7430f826f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: Remove in-memory kickstart representation from - traceback file (#1519895) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We have been doing this filtering already, but some paths have likely -changed and the filter was no longer effective. - -So add two new filter strings: -"_intf.storage.ksdata" -"_intf.data" - -After adding these two I was no longer able to find the plaintext password -anywhere in the traceback after manually triggering a crash with: - -kill -USR1 `cat /var/run/anaconda.pid` - -Resolves: rhbz#1519895 -Signed-off-by: Frédéric Pierret ---- - pyanaconda/exception.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/pyanaconda/exception.py b/pyanaconda/exception.py -index c283a605a..483cd51c4 100644 ---- a/pyanaconda/exception.py -+++ b/pyanaconda/exception.py -@@ -274,7 +274,9 @@ def initExceptionHandling(anaconda): - "_intf._currentAction._spokes[\"UserSpoke\"]._oldweak", - "_intf.storage.bootloader.password", - "_intf.storage.data", -+ "_intf.storage.ksdata", - "_intf.storage.encryption_passphrase", -+ "_intf.data", - "_bootloader.encrypted_password", - "_bootloader.password", - "payload._groups"], --- -2.14.4 - diff --git a/anaconda/0040-anaconda-fix-default-scheme-in-custom-partitioning.patch b/anaconda/0040-anaconda-fix-default-scheme-in-custom-partitioning.patch deleted file mode 100644 index 64a502df..00000000 --- a/anaconda/0040-anaconda-fix-default-scheme-in-custom-partitioning.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 4c4c8e2f14c53e1a79edd9545e73945aba66c876 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:12 +0200 -Subject: [PATCH] anaconda: fix default scheme in custom partitioning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Update to LVM Thin Provisioning there too. - -Fixes QubesOS/qubes-issues#3225 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/constants.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pyanaconda/constants.py b/pyanaconda/constants.py -index 3531fdca6..0e6270451 100644 ---- a/pyanaconda/constants.py -+++ b/pyanaconda/constants.py -@@ -27,7 +27,7 @@ SELINUX_DEFAULT = -1 - # where to look for 3rd party addons - ADDON_PATHS = ["/usr/share/anaconda/addons"] - --from pykickstart.constants import AUTOPART_TYPE_LVM -+from pykickstart.constants import AUTOPART_TYPE_LVM_THINP - - # common string needs to be easy to change - from pyanaconda import product -@@ -169,7 +169,7 @@ SCREENSHOTS_TARGET_DIRECTORY = "/root/anaconda-screenshots" - # cmdline arguments that append instead of overwrite - CMDLINE_APPEND = ["modprobe.blacklist", "ifname"] - --DEFAULT_AUTOPART_TYPE = AUTOPART_TYPE_LVM -+DEFAULT_AUTOPART_TYPE = AUTOPART_TYPE_LVM_THINP - - # Default to these units when reading user input when no units given - SIZE_UNITS_DEFAULT = "MiB" --- -2.14.4 - diff --git a/anaconda/0041-anaconda-fix-interrupt-remapping-detection.patch b/anaconda/0041-anaconda-fix-interrupt-remapping-detection.patch deleted file mode 100644 index c078c10e..00000000 --- a/anaconda/0041-anaconda-fix-interrupt-remapping-detection.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 2d405103c8e9f04049dffed0af1bd03e47a8d79e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: fix interrupt remapping detection -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/iutil.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py -index 166626a67..c83bcddee 100644 ---- a/pyanaconda/iutil.py -+++ b/pyanaconda/iutil.py -@@ -1115,7 +1115,7 @@ def is_unsupported_hw(): - missing_features.append('HAP/SLAT/EPT/RVI') - # slightly different wording for Intel and AMD - if b'Intel VT-d Interrupt Remapping enabled' not in xl_dmesg \ -- and 'Interrupt remapping enabled' not in xl_dmesg: -+ and b'Interrupt remapping enabled' not in xl_dmesg: - missing_features.append('Interrupt Remapping') - status = ', '.join(missing_features) - --- -2.14.4 - diff --git a/anaconda/0042-anaconda-Fix-macOS-EFI-Installation.patch b/anaconda/0042-anaconda-Fix-macOS-EFI-Installation.patch deleted file mode 100644 index 57d7b9c2..00000000 --- a/anaconda/0042-anaconda-Fix-macOS-EFI-Installation.patch +++ /dev/null @@ -1,276 +0,0 @@ -From a1980ee725fc73e367bde3706c327684ac5e35ee Mon Sep 17 00:00:00 2001 -From: Eric Duncan -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: Fix macOS EFI Installation -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Typical GRUB2 installations would execute the script -located at /usr/libexec/mactel-boot-setup which would -modify the HFS+ ESP files and bless the specified efi. -However, we are not using GRUB at this time which would -cause that script to exit earlier. - -These changes will execute the relevant commands -to symlink the efi file in the /System directory as well -the cfg file. Lastly, macOS requires the bootable efi -file to be blessed. - -We also attempt to place some user-friendly icons -for Qubes to show to the user. - -Lastly, we add a README with some instructions on how -to get into rescue mode from macOS. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 220 +++++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 215 insertions(+), 5 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index ad8e8c2e7..821eb2100 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1908,16 +1908,208 @@ class XenEFI(EFIGRUB): - write_config = BootLoader.write_config - - --class MacEFIGRUB(EFIGRUB): -+class MacEFIGRUB(XenEFI): -+ """Special EFI handling for macOS HFS+ ESP partition. -+ -+ Typical GRUB2 installations would execute the script -+ located at /usr/libexec/mactel-boot-setup which would -+ modify the HFS+ ESP files and bless the specified efi. -+ -+ However, we are not using GRUB at this time which would -+ cause that script to exit earlier. -+ -+ In this class, we will execute the relevant commands -+ to symlink the efi file in the /System directory as well -+ the cfg file. Lastly, macOS requires the bootable efi -+ file to be blessed. -+ """ -+ -+ def __init__(self): -+ super(MacEFIGRUB, self).__init__() -+ self._mountpoint = "/boot/efi" # fixme: extract from writeBootLoader() -+ self._system_label = "Qubes OS" -+ self._mactel_sys_dir = "{}/{}".format(self._mountpoint, "/System/Library/Coreservices") -+ self._mactel_artwork_dir = "{}/{}".format("/usr/share/pixmaps/bootloader/apple", self.efi_dir) -+ - def mactel_config(self): -- if os.path.exists(iutil.getSysroot() + "/usr/libexec/mactel-boot-setup"): -- rc = iutil.execInSysroot("/usr/libexec/mactel-boot-setup", []) -- if rc: -- log.error("failed to configure Mac boot loader") -+ """Modifies the HFS+ ESP partition to be bootable. -+ -+ Based on the /usr/libexec/mactel-boot-setup script, -+ we will create two symlinks pointing to the Qubes -+ Xen version that is installed and configured for -+ the system. We also need to run hfs-bless on -+ the specific EFI file we allow to be bootable. -+ """ -+ -+ log.info("mactel configure MacEFI boot partition") -+ -+ not_ready = False -+ xen_efi_file = "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.efi") -+ if not os.path.exists(xen_efi_file): -+ log.waring("mactel efi file not found: %s", xen_efi_file) -+ not_ready = True -+ xen_cfg_file = "{}/{}".format(iutil.getSysroot() + self.config_dir, "xen.cfg") -+ if not os.path.exists(xen_cfg_file): -+ log.warning("mactel efi cfg not found: %s", xen_cfg_file) -+ not_ready = True -+ if not_ready: -+ log.error("mactel cannot continue with mactel_config. see log for details.") -+ return -+ -+ sys_dir = iutil.getSysroot() + self._mactel_sys_dir -+ if not os.path.exists(sys_dir): -+ try: -+ os.makedirs(sys_dir) -+ except Exception as error: -+ log.warning("mactel tried to create sys_dir %s but received error: %s", sys_dir, error) -+ -+ src_efi = "{}/{}".format("../../../EFI/" + self.efi_dir, "xen.efi") -+ sys_efi = "{}/{}".format(sys_dir, "boot.efi") -+ self._symlink(src_efi, sys_efi) -+ -+ src_cfg = "{}/{}".format("../../../EFI/" + self.efi_dir, "xen.cfg") -+ sys_cfg = "{}/{}".format(sys_dir, "xen.cfg") # convention for Xen's cfg lookup -+ self._symlink(src_cfg, sys_cfg) -+ -+ result_code = iutil.execInSysroot("touch", ["{}/{}".format(self._mountpoint, "mach_kernel")]) -+ if result_code: -+ log.error("mactel failed to touch: %s", "{}/{}".format(self._mountpoint, "mach_kernel")) -+ -+ text = """ -+ -+ -+ -+ ProductBuildVersion -+ -+ ProductName -+ Linux -+ ProductVersion -+ {} -+ -+""".format(self._system_label) -+ sys_ver_file_name = "{}/{}".format(sys_dir, "SystemVersion.plist") -+ try: -+ with open(sys_ver_file_name, "w") as sys_version_file: -+ sys_version_file.write(text) -+ except IOError as error: -+ log.error("mactel failed to open %s for write: %s", sys_ver_file_name, error) -+ cfg_ver_file_name = "{}/{}".format(iutil.getSysroot() + self.config_dir, "SystemVersion.plist") -+ self._copy_file(sys_ver_file_name, cfg_ver_file_name) -+ -+ bless_file = "{}/{}".format(self.config_dir, "xen.efi") -+ result_code = iutil.execInSysroot("hfs-bless", [bless_file]) -+ if result_code: -+ log.error("mactel failed to run 'hfs-bless %s'", bless_file) -+ -+ # make the partition macOS friendly (e.g. to set rescue mode from macOS) -+ fseventsd = "{}/{}".format(iutil.getSysroot() + self._mountpoint, ".fseventsd") -+ try: -+ os.makedirs(fseventsd) -+ except Exception as error: -+ log.error("mactel could not make directory %s: %s", fseventsd, error) -+ touch_files = [ -+ "{}/{}/{}".format(self._mountpoint, ".fseventsd", "no_log"), -+ "{}/{}".format(self._mountpoint, ".metadata_never_index"), -+ "{}/{}".format(self._mountpoint, ".Trashes")] -+ result_code = iutil.execInSysroot("touch", touch_files) -+ if result_code: -+ log.error("mactel failed to touch: %s", touch_files) -+ -+ text = """Qubes OS -+ -+CAUTION -+-- -+This partition is used to boot Qubes OS on a macOS machine. -+Modifying the contents could render your installation unbootable. -+ -+RESCUE / RECOVERY MODE -+-- -+In the event that you need to boot into Rescue mode, you will need -+to change the default Xen configuration. -+ -+0. Backup your xen.cfg. -+ -+ cp /EFI/qubes/xen.cfg /EFI/qubes/xen.cfg~ -+ -+1. Open /EFI/qubes/xen.cfg - -+2. Look at the sections with the named headers. One may already be -+ named "qubes-rescue", which we will use in Step 4 below. -+ -+ If not, we will need to make one. Copy your current configuration -+ to another entry. But change the kernel line to only have "rescue" -+ at the end. As an example only: -+ -+ [qubes-rescue] -+ options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx -+ kernel=vmlinuz-4.14.13-2.pvops.qubes.x86_64 rescue -+ ramdisk=initramfs-4.14.13-2.pvops.qubes.x86_64.img -+ -+ Do not simply copy this section above. You will need to make sure -+ all of your existing parameters, vmlinuz and initramfs versions match -+ your current kernel(s) you are booting. -+ -+3. At the top of the file, edit the default link to use your new entry. -+ -+ [global] -+ default=qubes-rescue -+ -+Now when you reboot using Boot Camp and select "Qubes OS", it will boot -+into Rescue mode. -+ -+To revert, change the default entry back to the original first entry name.""" -+ readme = "{}/{}".format(iutil.getSysroot() + self._mountpoint, "00-README.txt") -+ try: -+ with open(readme, "w") as readme_file: -+ readme_file.write(text) -+ except IOError as error: -+ log.error("mactel failed to open %s for write: %s", readme, error) -+ -+ def mactel_install_qubes_artwork(self): -+ """Configures the Qubes logo and label for macOS boot selector. -+ -+ Shows during boot selection options. -+ -+ .disk_label is defined as a text representation of the volume -+ label converted to a special image. See this link for -+ more details: http://refit.sourceforge.net/info/vollabel.html -+ -+ .VolumeIcon.icns is defined as an ICNS image format of 512x512. -+ """ -+ -+ log.info("mactel creating Qubes Artwork") -+ -+ artwork_dir = self._mactel_artwork_dir -+ if not os.path.exists(artwork_dir): -+ log.debug("mactel using sysroot for artwork prefix") -+ artwork_dir = iutil.getSysroot() + artwork_dir -+ if not os.path.exists(artwork_dir): -+ log.warning("mactel artwork missing from: %s", artwork_dir) -+ return -+ -+ icon_src = artwork_dir + ".icns" -+ if os.path.exists(icon_src): -+ icon_dst_fil = "{}/{}".format(iutil.getSysroot() + self._mountpoint, ".VolumeIcon.icns") -+ self._copy_file(icon_src, icon_dst_fil) -+ else: -+ log.warning("mactel volume icon not found: %s", icon_src) -+ -+ src_files = os.listdir(artwork_dir) -+ for file_name in src_files: -+ full_file_name = "{}/{}".format(artwork_dir, file_name) -+ if os.path.isfile(full_file_name): -+ sys_dir_file_name = "{}/{}".format(iutil.getSysroot() + self._mactel_sys_dir, "." + file_name) -+ self._copy_file(full_file_name, sys_dir_file_name) -+ config_dir = iutil.getSysroot() + self.config_dir -+ if os.path.exists(config_dir): -+ dest = "{}/{}".format(config_dir, "." + file_name) -+ self._copy_file(full_file_name, dest) -+ - def install(self, args=None): - super(MacEFIGRUB, self).install() -+ log.info("Installing mactel MacEFI") - self.mactel_config() -+ self.mactel_install_qubes_artwork() - - def is_valid_stage1_device(self, device, early=False): - valid = super(MacEFIGRUB, self).is_valid_stage1_device(device, early) -@@ -1932,6 +2124,24 @@ class MacEFIGRUB(EFIGRUB): - log.debug("MacEFIGRUB.is_valid_stage1_device(%s) returning %s", device.name, valid) - return valid - -+ @staticmethod -+ def _symlink(source="", target=""): -+ """Creates a symlink between source and target.""" -+ try: -+ os.symlink(source, target) -+ except OSError as error: -+ log.error("mactel failed to symlink %s -> %s : %s", source, target, error) -+ -+ @staticmethod -+ def _copy_file(source="", target=""): -+ """Copies source to target using shutil. -+ -+ Also chmod to 0644.""" -+ try: -+ shutil.copy(source, target) -+ os.chmod(target, 0o644) -+ except OSError as error: -+ log.error("mactel failed to copy %s to %s: %s", source, target, error) - - # Inherit abstract methods from BootLoader - # pylint: disable=abstract-method --- -2.14.4 - diff --git a/anaconda/0043-anaconda-use-proper-subvolume-argument-when-booting-.patch b/anaconda/0043-anaconda-use-proper-subvolume-argument-when-booting-.patch deleted file mode 100644 index 0f180fe3..00000000 --- a/anaconda/0043-anaconda-use-proper-subvolume-argument-when-booting-.patch +++ /dev/null @@ -1,46 +0,0 @@ -From bcb258acbfb3b21c44422bdd9490e5f57c1e03fe Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: use proper subvolume argument when booting from - btrfs (EFI) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Kernel command line in legacy mode is constructed by grub scripts and -properly handle btrfs subvolumes. For EFI, it is built directly by -anaconda and 'rootflags=subvol=...' argument need to be added manually. - -Fixes QubesOS/qubes-issues#1871 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 821eb2100..c68b8b1e8 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1886,12 +1886,15 @@ class XenEFI(EFIGRUB): - - def write_config_images(self, config): - for image in self.images: -+ root_args = 'root=' + image.device.fstab_spec -+ if image.device.type == "btrfs subvolume": -+ root_args += " rootflags=subvol=%s" % image.device.name - config.write("\n") - config.write("[{}]\n".format(image.version)) - config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx\n") -- config.write("kernel={} root={} {}\n".format( -+ config.write("kernel={} {} {}\n".format( - image.kernel, -- image.device.fstab_spec, -+ root_args, - self.boot_args)) - config.write("ramdisk={}\n".format(image.initrd)) - --- -2.14.4 - diff --git a/anaconda/0044-anaconda-enable-discard-option-for-dom0-filesystems-.patch b/anaconda/0044-anaconda-enable-discard-option-for-dom0-filesystems-.patch deleted file mode 100644 index 81287cac..00000000 --- a/anaconda/0044-anaconda-enable-discard-option-for-dom0-filesystems-.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 99ea01b31f1733910123eff96a226f1183458839 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: enable discard option for dom0 filesystems by - default -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This may have performance impact on some older SSD, but on the other -hand, without this option it's pretty easy to fill the whole LVM thin -pool even if there is plenty free space in dom0. -Note that this doesn't enable it on LUKS layer, this is still disabled -by default. - -Fixes QubesOS/qubes-issues#3226 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/install.py | 11 +++++++++++ - pyanaconda/kickstart.py | 12 ++++++++++++ - 2 files changed, 23 insertions(+) - -diff --git a/pyanaconda/install.py b/pyanaconda/install.py -index a11b6b43b..324e136c7 100644 ---- a/pyanaconda/install.py -+++ b/pyanaconda/install.py -@@ -211,6 +211,17 @@ def doInstall(storage, payload, ksdata, instClass): - wait_for_entropy=entropy_wait_clbk) - - turn_on_filesystems(storage, mount_only=flags.flags.dirInstall, callbacks=callbacks_reg) -+ -+ # For autopart, actual partition related objects (especially -+ # blivet.format.FS objects) are created by the above call. And autopart -+ # does not provide any way to specify default mount options (unlike manual -+ # partitioning). Because of this, patch it now to add 'discard' option. -+ if storage.root_device.format.options and \ -+ 'discard' not in storage.root_device.format.options: -+ storage.root_device.format.options += ',discard' -+ else: -+ storage.root_device.format.options = 'defaults,discard' -+ - payload.writeStorageEarly() - - # Run %pre-install scripts with the filesystem mounted and no packages -diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py -index c0db1b614..5cd86d5fb 100644 ---- a/pyanaconda/kickstart.py -+++ b/pyanaconda/kickstart.py -@@ -885,6 +885,10 @@ class LogVolData(commands.logvol.F23_LogVolData): - self.mountpoint = "" - ty = None - -+ if self.mountpoint.startswith('/') and not self.fsopts: -+ # enable discard for normal filesystems in dom0 -+ self.fsopts = "defaults,discard" -+ - # Sanity check mountpoint - if self.mountpoint != "" and self.mountpoint[0] != '/': - raise KickstartParseError(formatErrorMsg(self.lineno, -@@ -1245,6 +1249,10 @@ class PartitionData(commands.partition.F23_PartData): - else: - ty = storage.default_fstype - -+ if self.mountpoint.startswith('/') and not self.fsopts: -+ # enable discard for normal filesystems in dom0 -+ self.fsopts = "defaults,discard" -+ - if not size and self.size: - try: - size = Size("%d MiB" % self.size) -@@ -1490,6 +1498,10 @@ class RaidData(commands.raid.F25_RaidData): - else: - ty = storage.default_fstype - -+ if self.mountpoint.startswith('/') and not self.fsopts: -+ # enable discard for normal filesystems in dom0 -+ self.fsopts = "defaults,discard" -+ - # Sanity check mountpoint - if self.mountpoint != "" and self.mountpoint[0] != '/': - raise KickstartParseError(formatErrorMsg(self.lineno, --- -2.14.4 - diff --git a/anaconda/0045-anaconda-Add-ucode-scan-to-default-Xen-command-line.patch b/anaconda/0045-anaconda-Add-ucode-scan-to-default-Xen-command-line.patch deleted file mode 100644 index 1e10abd5..00000000 --- a/anaconda/0045-anaconda-Add-ucode-scan-to-default-Xen-command-line.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 93611849f490f249b7ecf5c5cdce8852c526c73d Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: Add ucode=scan to default Xen command line -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Try to update microcode as early as possible if provided. -This option will scan all multiboot modules besides dom0 kernel. In our -case this is perfect - there is only one other module and it is -initramfs which have microcode early cpio prepended. - -QubesOS/qubes-issues#3703 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index c68b8b1e8..27cc480b5 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1504,7 +1504,7 @@ class GRUB2(GRUB): - # boot arguments - log.info("bootloader.py: used boot args: %s ", self.boot_args) - defaults.write("GRUB_CMDLINE_LINUX=\"%s\"\n" % self.boot_args) -- defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx\"\n") -+ defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx ucode=scan\"\n") - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") - defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") - defaults.close() -@@ -1891,7 +1891,7 @@ class XenEFI(EFIGRUB): - root_args += " rootflags=subvol=%s" % image.device.name - config.write("\n") - config.write("[{}]\n".format(image.version)) -- config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx\n") -+ config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx ucode=scan\n") - config.write("kernel={} {} {}\n".format( - image.kernel, - root_args, --- -2.14.4 - diff --git a/anaconda/0046-anaconda-avoid-adding-duplicated-kernel-entries.patch b/anaconda/0046-anaconda-avoid-adding-duplicated-kernel-entries.patch deleted file mode 100644 index 7f199c2c..00000000 --- a/anaconda/0046-anaconda-avoid-adding-duplicated-kernel-entries.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 5136f7c2142166360108c104fdf9244cdca91820 Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: avoid adding duplicated kernel entries -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -List kernel versions without duplicates, even when there are multiple -files related to the same kernel version. -Duplicated kernel versions here caused regenerating initramfs multiple -times and duplicated entries in xen.cfg. - -QubesOS/qubes-issues#3624 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/packaging/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py -index 8332ce0e5..26eb953d4 100644 ---- a/pyanaconda/packaging/__init__.py -+++ b/pyanaconda/packaging/__init__.py -@@ -829,7 +829,7 @@ class PackagePayload(Payload): - if fnmatch(f, "/boot/vmlinuz-*") or - fnmatch(f, "/boot/efi/EFI/%s/vmlinuz-*" % self.instclass.efi_dir))) - -- return sorted(files, key=functools.cmp_to_key(versionCmp)) -+ return sorted(set(files), key=functools.cmp_to_key(versionCmp)) - - @property - def rpmMacros(self): --- -2.14.4 - diff --git a/anaconda/0047-anaconda-Fix-System-Requirements-URL-and-typo-in-har.patch b/anaconda/0047-anaconda-Fix-System-Requirements-URL-and-typo-in-har.patch deleted file mode 100644 index 34489884..00000000 --- a/anaconda/0047-anaconda-Fix-System-Requirements-URL-and-typo-in-har.patch +++ /dev/null @@ -1,51 +0,0 @@ -From fb3d98cebb67a468e37c036b1dd2c1707cc731bd Mon Sep 17 00:00:00 2001 -From: Andrew David Wong -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: Fix System Requirements URL and typo in hardware - warnings -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes QubesOS/qubes-issues#3932 -Related to QubesOS/qubes-issues#3208 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/welcome.glade | 2 +- - pyanaconda/ui/tui/spokes/warnings_spoke.py | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/welcome.glade b/pyanaconda/ui/gui/spokes/welcome.glade -index 8daed92af..3bd04fe08 100644 ---- a/pyanaconda/ui/gui/spokes/welcome.glade -+++ b/pyanaconda/ui/gui/spokes/welcome.glade -@@ -507,7 +507,7 @@ - True - False - start -- This hardware lacks features required by Qubes OS. Missing features: %(features)s. Without these features, Qubes OS will not function normally. It is recommended that only developers and power users proceed with the installation. For more information on supported hardware, please refer to https://www.qubes-os.org/system-requirements/ -+ This hardware lacks features required by Qubes OS. Missing features: %(features)s. Without these features, Qubes OS will not function normally. It is recommended that only developers and power users proceed with the installation. For more information on supported hardware, please refer to https://www.qubes-os.org/doc/system-requirements/ - True - - -diff --git a/pyanaconda/ui/tui/spokes/warnings_spoke.py b/pyanaconda/ui/tui/spokes/warnings_spoke.py -index 8aed09625..a0e750914 100644 ---- a/pyanaconda/ui/tui/spokes/warnings_spoke.py -+++ b/pyanaconda/ui/tui/spokes/warnings_spoke.py -@@ -43,10 +43,10 @@ class WarningsSpoke(StandaloneTUISpoke): - def __init__(self, *args, **kwargs): - StandaloneTUISpoke.__init__(self, *args, **kwargs) - -- self._message = _("This hardware lack features required by Qubes OS. " -+ self._message = _("This hardware lacks features required by Qubes OS. " - "Missing features: %(features)s. " - "For more information on supported hardware, " -- "please refer to https://www.qubes-os.org/system-requirements/") -+ "please refer to https://www.qubes-os.org/doc/system-requirements/") - # Does anything need to be displayed? - # pylint: disable=no-member - # self._unsupported = not self.data.unsupportedhardware.unsupported_hardware \ --- -2.14.4 - diff --git a/anaconda/0048-anaconda-save-keyboard-layout-to-udev.patch b/anaconda/0048-anaconda-save-keyboard-layout-to-udev.patch deleted file mode 100644 index 1bb14931..00000000 --- a/anaconda/0048-anaconda-save-keyboard-layout-to-udev.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 9c52b9b77378282cf25c87744ff86935f529e345 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: save keyboard layout to udev -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Xorg loads keyboard layout for new devices (or existing one re-detected) -only from its config, ignoring runtime changes done in the meantime -(setxkbmap etc). Since installation process calls udevadm trigger -somewhere, all input devices are re-discovered and reverted to default -keyboard layout (us). Avoid this by configuring current keyboard layout -also as udev rules, which are loaded by Xorg while discovering device. - -Fixes QubesOS/qubes-issues#3352 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/xkl_wrapper.py | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/pyanaconda/ui/gui/xkl_wrapper.py b/pyanaconda/ui/gui/xkl_wrapper.py -index a2f14ce75..73178310b 100644 ---- a/pyanaconda/ui/gui/xkl_wrapper.py -+++ b/pyanaconda/ui/gui/xkl_wrapper.py -@@ -307,6 +307,8 @@ class XklWrapper(object): - raise XklWrapperError("Failed to add layout '%s (%s)'" % (layout, - variant)) - -+ self.save_layouts_to_udev(self._rec.layouts, self._rec.variants) -+ - @gtk_action_wait - def remove_layout(self, layout): - """ -@@ -341,6 +343,8 @@ class XklWrapper(object): - raise XklWrapperError("Failed to remove layout '%s (%s)'" % (layout, - variant)) - -+ self.save_layouts_to_udev(new_layouts, new_variants) -+ - @gtk_action_wait - def replace_layouts(self, layouts_list): - """ -@@ -368,6 +372,8 @@ class XklWrapper(object): - msg = "Failed to replace layouts with: %s" % ",".join(layouts_list) - raise XklWrapperError(msg) - -+ self.save_layouts_to_udev(new_layouts, new_variants) -+ - @gtk_action_wait - def set_switching_options(self, options): - """ -@@ -391,3 +397,26 @@ class XklWrapper(object): - msg = "Failed to set switching options to: %s" % ",".join(options) - raise XklWrapperError(msg) - -+ def save_layouts_to_udev(self, layouts, variants): -+ """ -+ Sets layouts to udev, so it will also apply to newly connected -+ keyboards (or existing after udevadm trigger). Otherwise Xorg setup -+ them based on xorg.conf with a fallback to hardcoded values. -+ -+ :param layouts: list of layouts -+ :param variants: list of layout variants, matching *layouts* -+ """ -+ -+ udev_rules_dir = '/run/udev/rules.d' -+ udev_rules_path = udev_rules_dir + '/90-keyboard-layout.rules' -+ try: -+ iutil.mkdirChain(udev_rules_dir) -+ except FileExistsError: -+ pass -+ with open(udev_rules_path, 'w') as rules: -+ rules.write('ENV{{ID_INPUT_KEYBOARD}}=="1", ' -+ 'ENV{{xkblayout}}="{layouts}", ' -+ 'ENV{{xkbvariant}}="{variants}"\n'.format( -+ layouts=','.join(layouts), variants=','.join(variants))) -+ -+ iutil.startProgram(['udevadm', 'control', '-R']).communicate() --- -2.14.4 - diff --git a/anaconda/0049-anaconda-fix-root-password-dialog.patch b/anaconda/0049-anaconda-fix-root-password-dialog.patch deleted file mode 100644 index 1f2b5a3e..00000000 --- a/anaconda/0049-anaconda-fix-root-password-dialog.patch +++ /dev/null @@ -1,67 +0,0 @@ -From ee52e579dee7e8b33c932a61d27151826e47a97e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: fix root password dialog -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Properly save 'lock' state. Previously if it was unchecked, new password -was saved, but remained locked. - -Fixes QubesOS/qubes-issues#3327 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/password.py | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/password.py b/pyanaconda/ui/gui/spokes/password.py -index 3e8ada1cc..646e7f7c1 100644 ---- a/pyanaconda/ui/gui/spokes/password.py -+++ b/pyanaconda/ui/gui/spokes/password.py -@@ -99,6 +99,8 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - self.pw.set_placeholder_text(_("The password is set.")) - self.confirm.set_placeholder_text(_("The password is set.")) - -+ self._lock = self.data.rootpw.lock -+ - self.pw_bar = self.builder.get_object("password_bar") - self.pw_label = self.builder.get_object("password_label") - -@@ -131,6 +133,7 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - self.confirm.set_sensitive(not lock.get_active()) - if not lock.get_active(): - self.pw.grab_focus() -+ self._lock = lock.get_active() - - # Caps lock detection isn't hooked up right now - # def setCapsLockLabel(self): -@@ -161,10 +164,12 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - self.data.rootpw.seen = False - self._kickstarted = False - -- if pw: -+ if self._lock: -+ self.data.rootpw.lock = True -+ elif pw: -+ self.data.rootpw.lock = False - self.data.rootpw.password = cryptPassword(pw) - self.data.rootpw.isCrypted = True -- self.data.rootpw.lock = self._lock - - self.pw.set_placeholder_text("") - self.confirm.set_placeholder_text("") -@@ -265,7 +270,7 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke, GUISpokeInputCheckHandler) - return InputCheck.CHECK_OK - - # If the password is empty, clear the strength bar and skip this check -- if not pw and not confirm: -+ if self.lock.get_active() or (not pw and not confirm): - self._updatePwQuality(True, 0) - return InputCheck.CHECK_OK - --- -2.14.4 - diff --git a/anaconda/0050-anaconda-mark-qubes-user-name-as-reserved.patch b/anaconda/0050-anaconda-mark-qubes-user-name-as-reserved.patch deleted file mode 100644 index 7b7c8e24..00000000 --- a/anaconda/0050-anaconda-mark-qubes-user-name-as-reserved.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 2522cc68bb55ca668ca5a71abc9497fdd0114d21 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: mark 'qubes' user name as reserved -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -'qubes' group is used internally, but useradd want to create a new group -named as new user, so 'qubes' user name should also be avoided. - -Fixes QubesOS/qubes-issues#3777 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/users.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyanaconda/users.py b/pyanaconda/users.py -index 366d6226f..1b4424be8 100644 ---- a/pyanaconda/users.py -+++ b/pyanaconda/users.py -@@ -123,7 +123,7 @@ def validatePassword(pw, user="root", settings=None, minlen=None): - return (valid, strength, message) - - def check_username(name): -- if name in os.listdir("/") + ["root", "home", "daemon", "system"]: -+ if name in os.listdir("/") + ["root", "home", "daemon", "system", "qubes"]: - return (False, _("User name is reserved for system: %s") % name) - - if name.startswith("-"): --- -2.14.4 - diff --git a/anaconda/0051-anaconda-add-smt-off-xen-option-during-installation.patch b/anaconda/0051-anaconda-add-smt-off-xen-option-during-installation.patch deleted file mode 100644 index bc79689d..00000000 --- a/anaconda/0051-anaconda-add-smt-off-xen-option-during-installation.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3bf0a8b70e34c5019adf39b1a7439efa93e28ac6 Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: add smt=off xen option during installation -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Defaults set during package installation do not apply, as booloader -configuration doesn't exist at that stage yet. - -Reported by @rustybird -QubesOS/qubes-issues#4252 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index 27cc480b5..deab41cf1 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1504,7 +1504,7 @@ class GRUB2(GRUB): - # boot arguments - log.info("bootloader.py: used boot args: %s ", self.boot_args) - defaults.write("GRUB_CMDLINE_LINUX=\"%s\"\n" % self.boot_args) -- defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx ucode=scan\"\n") -+ defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx ucode=scan smt=off\"\n") - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") - defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") - defaults.close() -@@ -1891,7 +1891,7 @@ class XenEFI(EFIGRUB): - root_args += " rootflags=subvol=%s" % image.device.name - config.write("\n") - config.write("[{}]\n".format(image.version)) -- config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx ucode=scan\n") -+ config.write("options=loglvl=all dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx ucode=scan smt=off\n") - config.write("kernel={} {} {}\n".format( - image.kernel, - root_args, --- -2.14.4 - diff --git a/anaconda/0052-anaconda-update-Qubes-specific-code-for-Fedora-21-ve.patch b/anaconda/0052-anaconda-update-Qubes-specific-code-for-Fedora-21-ve.patch deleted file mode 100644 index 3e3db48e..00000000 --- a/anaconda/0052-anaconda-update-Qubes-specific-code-for-Fedora-21-ve.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 8914364af4e9724852ad91ef583d425e5b0b53fa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: update Qubes-specific code for Fedora 21 version -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Frédéric Pierret ---- - data/help/en-US/QubesPlaceholder.html | 5 +++++ - data/help/en-US/QubesPlaceholderWithLinks.html | 13 +++++++++++++ - 2 files changed, 18 insertions(+) - create mode 100644 data/help/en-US/QubesPlaceholder.html - create mode 100644 data/help/en-US/QubesPlaceholderWithLinks.html - -diff --git a/data/help/en-US/QubesPlaceholder.html b/data/help/en-US/QubesPlaceholder.html -new file mode 100644 -index 000000000..6811a3871 ---- /dev/null -+++ b/data/help/en-US/QubesPlaceholder.html -@@ -0,0 +1,5 @@ -+ -+

The Anaconda built-in help

-+

...is not yet available for this screen.

-+

You can check the Anaconda wiki page, the Qubes Installation Guide or other online help resources instead.

-+ -diff --git a/data/help/en-US/QubesPlaceholderWithLinks.html b/data/help/en-US/QubesPlaceholderWithLinks.html -new file mode 100644 -index 000000000..0f7d7dcd5 ---- /dev/null -+++ b/data/help/en-US/QubesPlaceholderWithLinks.html -@@ -0,0 +1,13 @@ -+ -+

The Anaconda built-in help

-+

...is not yet available for this screen.

-+

You can check the Anaconda wiki page, the Qubes Installation Guide or other online help resources instead:

-+

-+

-+

-+ --- -2.14.4 - diff --git a/anaconda/0053-anaconda-require-user-password-being-set.patch b/anaconda/0053-anaconda-require-user-password-being-set.patch deleted file mode 100644 index 784a2c40..00000000 --- a/anaconda/0053-anaconda-require-user-password-being-set.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 757f6c7095362f2b71321bc94ed67f290a6ff8db Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: require user password being set -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Drop selectable option 'Require a password to use this account'. Make it -required. - -QubesOS/qubes-issues#2574 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/user.glade | 17 --------------- - pyanaconda/ui/gui/spokes/user.py | 43 ++++++------------------------------- - 2 files changed, 7 insertions(+), 53 deletions(-) - -diff --git a/pyanaconda/ui/gui/spokes/user.glade b/pyanaconda/ui/gui/spokes/user.glade -index e6700657d..79283a948 100644 ---- a/pyanaconda/ui/gui/spokes/user.glade -+++ b/pyanaconda/ui/gui/spokes/user.glade -@@ -174,23 +174,6 @@ - 2 - -
-- -- -- _Require a password to use this account -- True -- True -- False -- True -- 0 -- True -- True -- -- -- -- 1 -- 4 -- -- - - - True -diff --git a/pyanaconda/ui/gui/spokes/user.py b/pyanaconda/ui/gui/spokes/user.py -index dd281f8e4..7db7e44d4 100644 ---- a/pyanaconda/ui/gui/spokes/user.py -+++ b/pyanaconda/ui/gui/spokes/user.py -@@ -260,7 +260,6 @@ class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - self.username = self.builder.get_object("t_username") - self.pw = self.builder.get_object("t_password") - self.confirm = self.builder.get_object("t_verifypassword") -- self.usepassword = self.builder.get_object("c_usepassword") - - # Counters for checks that ask the user to click Done to confirm - self._waiveStrengthClicks = 0 -@@ -311,16 +310,8 @@ class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - # This needs to happen after the input checks have been created, since - # the Gtk signal handlers use the input check variables. - if self._password_kickstarted: -- self.usepassword.set_active(True) - self.pw.set_placeholder_text(_("The password was set by kickstart.")) - self.confirm.set_placeholder_text(_("The password was set by kickstart.")) -- elif not self.policy.emptyok: -- # Policy is that a non-empty password is required -- self.usepassword.set_active(True) -- -- if not self.policy.emptyok: -- # User isn't allowed to change whether password is required or not -- self.usepassword.set_sensitive(False) - - # set the visibility of the password entries - set_password_visibility(self.pw, False) -@@ -352,21 +343,12 @@ class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - def apply(self): - # set the password only if the user enters anything to the text entry - # this should preserve the kickstart based password -- if self.usepassword.get_active(): -- if self.pw.get_text(): -- self._password_kickstarted = False -- self._user.password = cryptPassword(self.pw.get_text()) -- self._user.isCrypted = True -- self.pw.set_placeholder_text("") -- self.confirm.set_placeholder_text("") -- -- # reset the password when the user unselects it -- else: -+ if self.pw.get_text(): -+ self._password_kickstarted = False -+ self._user.password = cryptPassword(self.pw.get_text()) -+ self._user.isCrypted = True - self.pw.set_placeholder_text("") - self.confirm.set_placeholder_text("") -- self._user.password = "" -- self._user.isCrypted = False -- self._password_kickstarted = False - - self._user.name = self.username.get_text() - -@@ -419,17 +401,6 @@ class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - self.pw_bar.set_value(val) - self.pw_label.set_text(text) - -- def usepassword_toggled(self, togglebutton=None, data=None): -- """Called by Gtk callback when the "Use password" check -- button is toggled. It will make password entries in/sensitive.""" -- -- self.pw.set_sensitive(togglebutton.get_active()) -- self.confirm.set_sensitive(togglebutton.get_active()) -- -- # Re-check the password -- self.pw.emit("changed") -- self.confirm.emit("changed") -- - def password_changed(self, editable=None, data=None): - """Update the password strength level bar""" - # Reset the counters used for the "press Done twice" logic -@@ -474,7 +445,7 @@ class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - return InputCheck.CHECK_OK - - # Skip the check if no password is required -- if (not self.usepassword.get_active()) or self._password_kickstarted: -+ if self._password_kickstarted: - return InputCheck.CHECK_OK - elif not self.get_input(inputcheck.input_obj): - if inputcheck.input_obj == self.pw: -@@ -488,7 +459,7 @@ class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - """If the user has entered confirmation data, check whether it matches the password.""" - - # Skip the check if no password is required -- if (not self.usepassword.get_active()) or self._password_kickstarted: -+ if self._password_kickstarted: - result = InputCheck.CHECK_OK - elif self.confirm.get_text() and (self.pw.get_text() != self.confirm.get_text()): - result = _(PASSWORD_CONFIRM_ERROR_GUI) -@@ -506,7 +477,7 @@ class UserSpoke(NormalSpoke, GUISpokeInputCheckHandler): - """ - - # Skip the check if no password is required -- if not self.usepassword.get_active or self._password_kickstarted: -+ if self._password_kickstarted: - return InputCheck.CHECK_OK - - # If the password is empty, clear the strength bar and skip this check --- -2.14.4 - diff --git a/anaconda/0054-anaconda-abort-installation-on-X-startup-fail.patch b/anaconda/0054-anaconda-abort-installation-on-X-startup-fail.patch deleted file mode 100644 index 847fb8ad..00000000 --- a/anaconda/0054-anaconda-abort-installation-on-X-startup-fail.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 6b1e2472eb4b495ac6e65ff5b39c3f42cfde50b1 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: abort installation on X startup fail -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Do not fallback to text mode, which cannot property install the system -without kickstart file (missing LUKS passphrase prompt). - -Fixes QubesOS/qubes-issues#2996 - -Signed-off-by: Frédéric Pierret ---- - anaconda.py | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/anaconda.py b/anaconda.py -index 25eba4b0a..f5c7fdb7f 100755 ---- a/anaconda.py -+++ b/anaconda.py -@@ -543,10 +543,13 @@ def setupDisplay(anaconda, options, addons=None): - doStartupX11Actions() - except (OSError, RuntimeError) as e: - log.warning("X startup failed: %s", e) -- stdoutLog.warning("X startup failed, falling back to text mode") -- anaconda.displayMode = 't' -- graphical_failed = 1 -- time.sleep(2) -+ stdoutLog.warning("X startup failed, aborting installation") -+ stdoutLog.error("X startup failed, aborting installation") -+ print(_("The installation cannot continue and the system will be rebooted")) -+ print(_("Press ENTER to continue")) -+ input() -+ iutil.ipmi_report(constants.IPMI_ABORTED) -+ sys.exit(1) - - if not graphical_failed: - doExtraX11Actions(options.runres) --- -2.14.4 - diff --git a/anaconda/0055-anaconda-fix-encryption-passphrase-check.patch b/anaconda/0055-anaconda-fix-encryption-passphrase-check.patch deleted file mode 100644 index b9d1f626..00000000 --- a/anaconda/0055-anaconda-fix-encryption-passphrase-check.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 94957794abf433c8a1ab48cace77fa6b4998eaa8 Mon Sep 17 00:00:00 2001 -From: Wojtek Porczyk -Date: Fri, 19 Oct 2018 08:02:13 +0200 -Subject: [PATCH] anaconda: fix encryption passphrase check -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The installer checks if there is password for autopart. It should check -that only if autopart is actually in use. - -QubesOS/qubes-issues#2180 - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/ui/gui/spokes/storage.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py -index 7feda7db3..b812dc543 100644 ---- a/pyanaconda/ui/gui/spokes/storage.py -+++ b/pyanaconda/ui/gui/spokes/storage.py -@@ -372,7 +372,7 @@ class StorageSpoke(NormalSpoke, StorageChecker): - # on the off-chance dasdfmt is running, we can't proceed further - threadMgr.wait(constants.THREAD_DASDFMT) - hubQ.send_message(self.__class__.__name__, _("Saving storage configuration...")) -- if flags.automatedInstall and self.data.autopart.encrypted and not self.data.autopart.passphrase: -+ if flags.automatedInstall and self.data.autopart.autopart and self.data.autopart.encrypted and not self.data.autopart.passphrase: - self.autopart_missing_passphrase = True - StorageChecker.errors = [_("Passphrase for autopart encryption not specified.")] - self._ready = True --- -2.14.4 - diff --git a/anaconda/0056-anaconda-disable-os-prober.patch b/anaconda/0056-anaconda-disable-os-prober.patch deleted file mode 100644 index d2069baa..00000000 --- a/anaconda/0056-anaconda-disable-os-prober.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e1e51562a8a25892f8c6027b428ce06b0465ac0b Mon Sep 17 00:00:00 2001 -From: Marek Marczykowski -Date: Sat, 20 Oct 2018 11:16:05 +0200 -Subject: [PATCH] anaconda: disable os prober -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It tries to mount every existing block device, including VM images. - -Signed-off-by: Frédéric Pierret ---- - pyanaconda/bootloader.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py -index deab41cf1..9a4defb9f 100644 ---- a/pyanaconda/bootloader.py -+++ b/pyanaconda/bootloader.py -@@ -1507,6 +1507,7 @@ class GRUB2(GRUB): - defaults.write("GRUB_CMDLINE_XEN_DEFAULT=\"console=none dom0_mem=min:1024M dom0_mem=max:4096M iommu=no-igfx ucode=scan smt=off\"\n") - defaults.write("GRUB_DISABLE_RECOVERY=\"true\"\n") - defaults.write("GRUB_THEME=\"/boot/grub2/themes/system/theme.txt\"\n") -+ defaults.write("GRUB_DISABLE_OS_PROBER=\"true\"\n") - defaults.close() - - def _encrypt_password(self): --- -2.14.4 - diff --git a/anaconda/anaconda-25.20.9.tar.bz2 b/anaconda/anaconda-25.20.9.tar.bz2 deleted file mode 100644 index 7293fc82..00000000 Binary files a/anaconda/anaconda-25.20.9.tar.bz2 and /dev/null differ diff --git a/anaconda/anaconda.spec b/anaconda/anaconda.spec deleted file mode 100644 index 47027f94..00000000 --- a/anaconda/anaconda.spec +++ /dev/null @@ -1,1955 +0,0 @@ -%define livearches %{ix86} x86_64 ppc ppc64 ppc64le - -Summary: Graphical system installer -Name: anaconda -Version: 25.20.9 -Release: 14%{?dist} -License: GPLv2+ and MIT -Epoch: 1000 -Group: Applications/System -URL: http://fedoraproject.org/wiki/Anaconda - -# To generate Source0 do: -# git clone https://github.com/rhinstaller/anaconda -# git checkout -b archive-branch anaconda-%%{version}-%%{release} -# ./autogen.sh -# make dist -Source0: %{name}-%{version}.tar.bz2 - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Patch1: 0001-anaconda-add-Qubes-installclass.patch -Patch2: 0002-anaconda-add-Qubes-post-scripts.patch -Patch3: 0003-anaconda-remove-other-installclasses.patch -Patch4: 0004-anaconda-do-not-start-network-during-install-set-def.patch -Patch5: 0005-anaconda-remove-network-setup-from-text-interface.patch -Patch6: 0006-anaconda-fix-grub-config-setup-by-removing-non-xen-o.patch -Patch7: 0007-anaconda-make-encrypted-partitions-by-default.patch -Patch8: 0008-anaconda-set-default-grub-theme.patch -Patch9: 0009-anaconda-add-options-can_dual_boot-and-can_update-to.patch -Patch10: 0010-anaconda-efimgr-specify-root-iutil.getSysroot.patch -Patch11: 0011-anaconda-generate-xen-efi-configuration.patch -Patch12: 0012-anaconda-fix-dracut-module-to-work-with-reduced-depe.patch -Patch13: 0013-anaconda-use-installer-kernel-parameters-as-default-.patch -Patch14: 0014-anaconda-use-kernel-install-instead-of-grubby-to-reg.patch -Patch15: 0015-anaconda-Fix-a-regular-expression-determining-Releas.patch -Patch16: 0016-anaconda-Do-not-fail-during-initramfs-start-up-due-t.patch -Patch17: 0017-anaconda-Disable-the-NTP-configuration-spoke.patch -Patch18: 0018-anaconda-drop-useless-on-Qubes-dependencies-on-netwo.patch -Patch19: 0019-anaconda-skip-NTP-installation-and-setup-in-dom0.patch -Patch20: 0020-anaconda-add-skip_grub-parameter-and-allow-boot-encr.patch -Patch21: 0021-anaconda-switch-default-partitioning-scheme-to-LVM-T.patch -Patch22: 0022-anaconda-add-console-none-Xen-parameter.patch -Patch23: 0023-anaconda-add-dom0_mem-min-1024M-to-default-xen-cmdli.patch -Patch24: 0024-anaconda-limit-dom0-maxmem-to-4GB-to-limit-its-overh.patch -Patch25: 0025-anaconda-disable-iommu-for-IGFX.patch -Patch26: 0026-anaconda-check-for-virtualization-features.patch -Patch27: 0027-anaconda-generate-proper-extlinux.conf.patch -Patch28: 0028-anaconda-don-t-crash-when-no-target-disk-is-availabl.patch -Patch29: 0029-anaconda-consider-Interrupt-Remapping-as-required-fe.patch -Patch30: 0030-anaconda-lock-root-account-by-default.patch -Patch31: 0031-anaconda-add-option-to-lock-root-account.patch -Patch32: 0032-anaconda-check-add-user-to-wheel-and-qubes-groups.patch -Patch33: 0033-anaconda-Modify-user-configuration-spoke-for-QubesOS.patch -Patch34: 0034-anaconda-Make-sure-that-a-user-is-created-at-install.patch -Patch35: 0035-anaconda-xen.efi-upgraded-during-each-install.patch -Patch36: 0036-anaconda-make-sure-the-latest-version-is-placed-as-x.patch -Patch37: 0037-anaconda-update-message-about-unusupported-hardware.patch -Patch38: 0038-anaconda-check-also-for-message-about-AMD-interrupt-.patch -Patch39: 0039-anaconda-Remove-in-memory-kickstart-representation-f.patch -Patch40: 0040-anaconda-fix-default-scheme-in-custom-partitioning.patch -Patch41: 0041-anaconda-fix-interrupt-remapping-detection.patch -Patch42: 0042-anaconda-Fix-macOS-EFI-Installation.patch -Patch43: 0043-anaconda-use-proper-subvolume-argument-when-booting-.patch -Patch44: 0044-anaconda-enable-discard-option-for-dom0-filesystems-.patch -Patch45: 0045-anaconda-Add-ucode-scan-to-default-Xen-command-line.patch -Patch46: 0046-anaconda-avoid-adding-duplicated-kernel-entries.patch -Patch47: 0047-anaconda-Fix-System-Requirements-URL-and-typo-in-har.patch -Patch48: 0048-anaconda-save-keyboard-layout-to-udev.patch -Patch49: 0049-anaconda-fix-root-password-dialog.patch -Patch50: 0050-anaconda-mark-qubes-user-name-as-reserved.patch -Patch51: 0051-anaconda-add-smt-off-xen-option-during-installation.patch -Patch52: 0052-anaconda-update-Qubes-specific-code-for-Fedora-21-ve.patch -Patch53: 0053-anaconda-require-user-password-being-set.patch -Patch54: 0054-anaconda-abort-installation-on-X-startup-fail.patch -Patch55: 0055-anaconda-fix-encryption-passphrase-check.patch -Patch56: 0056-anaconda-disable-os-prober.patch - -# Versions of required components (done so we make sure the buildrequires -# match the requires versions of things). - -%define gettextver 0.19.8 -%define pykickstartver 2.32-1 -%define dnfver 0.6.4 -%define dnfmaxver 2.0.0 -%define partedver 1.8.1 -%define pypartedver 2.5-2 -%define nmver 0.9.9.0-10.git20130906 -%define dbusver 1.2.3 -%define mehver 0.23-1 -%define firewalldver 0.3.5-1 -%define utillinuxver 2.15.1 -%define dracutver 034-7 -%define isomd5sum 1.0.10 -%define fcoeutilsver 1.0.12-3.20100323git -%define iscsiver 6.2.0.873-26 -%define rpmver 4.10.0 -%define libarchivever 3.0.4 -%define langtablever 0.0.34 -%define libxklavierver 5.4 -%define libtimezonemapver 0.4.1-2 -%define helpver 22.1-1 - -BuildRequires: audit-libs-devel -BuildRequires: gettext >= %{gettextver} -BuildRequires: gettext-devel -BuildRequires: gtk3-devel -BuildRequires: gtk-doc -BuildRequires: gtk3-devel-docs -BuildRequires: glib2-doc -BuildRequires: gobject-introspection-devel -BuildRequires: glade-devel -BuildRequires: libgnomekbd-devel -BuildRequires: libxklavier-devel >= %{libxklavierver} -BuildRequires: pango-devel -BuildRequires: python3-kickstart >= %{pykickstartver} -%if ! 0%{?rhel} -BuildRequires: python3-bugzilla -%endif -BuildRequires: python3-devel -BuildRequires: python3-nose -BuildRequires: systemd -# rpm and libarchive are needed for driver disk handling -BuildRequires: rpm-devel >= %{rpmver} -BuildRequires: libarchive-devel >= %{libarchivever} -%ifarch %livearches -BuildRequires: desktop-file-utils -%endif -%ifarch s390 s390x -BuildRequires: s390utils-devel -%endif -BuildRequires: libtimezonemap-devel >= %{libtimezonemapver} - -# Tools used by the widgets resource bundle generation -BuildRequires: gdk-pixbuf2-devel -BuildRequires: libxml2 - -Requires: anaconda-core = %{epoch}:%{version}-%{release} -Requires: anaconda-gui = %{epoch}:%{version}-%{release} -Requires: anaconda-tui = %{epoch}:%{version}-%{release} - -%description -The anaconda package is a metapackage for the Anaconda installer. - -%package core -Summary: Core of the Anaconda installer -Requires: python3-dnf >= %{dnfver}, python3-dnf < %{dnfmaxver} -Requires: python3-blivet >= 1:2.1.6-3 -Requires: python3-meh >= %{mehver} -Requires: libreport-anaconda >= 2.0.21-1 -Requires: libselinux-python3 -Requires: rpm-python3 >= %{rpmver} -Requires: parted >= %{partedver} -Requires: python3-pyparted >= %{pypartedver} -Requires: python3-requests -Requires: python3-requests-file -Requires: python3-requests-ftp -Requires: python3-kickstart >= %{pykickstartver} -Requires: langtable-data >= %{langtablever} -Requires: langtable-python3 >= %{langtablever} -Requires: authconfig -Requires: util-linux >= %{utillinuxver} -Requires: python3-dbus -Requires: python3-pwquality - -# pwquality only "recommends" the dictionaries it needs to do anything useful, -# which is apparently great for containers but unhelpful for the rest of us -Requires: cracklib-dicts - -Requires: python3-pytz -Requires: realmd -Requires: teamd -%ifarch %livearches -Requires: usermode -%endif -%ifarch s390 s390x -Requires: openssh -%endif -Requires: isomd5sum >= %{isomd5sum} -Requires: createrepo_c -Requires: NetworkManager >= %{nmver} -Requires: NetworkManager-glib >= %{nmver} -Requires: NetworkManager-team -Requires: dhclient -Requires: kbd -Requires: python3-ntplib -Requires: rsync -Requires: systemd -%ifarch %{ix86} x86_64 -%if ! 0%{?rhel} -Requires: hfsplus-tools -%endif -%endif -Requires: python3-pid -Requires: python3-ordered-set >= 2.0.0 -Requires: python3-wrapt -Requires: dmidecode - -Requires: python3-coverage >= 4.0-0.12.b3 - -# required because of the rescue mode and VNC question -Requires: anaconda-tui = %{epoch}:%{version}-%{release} - -# Make sure we get the en locale one way or another -Requires: glibc-langpack-en - -# check for supported hardware on Qubes OS require xl binary -Requires: xen-runtime - -Obsoletes: anaconda-images <= 10 -Provides: anaconda-images = %{version}-%{release} -Obsoletes: anaconda-runtime < %{version}-%{release} -Provides: anaconda-runtime = %{version}-%{release} -Obsoletes: booty <= 0.107-1 - -%description core -The anaconda-core package contains the program which was used to install your -system. - -%package gui -Summary: Graphical user interface for the Anaconda installer -Requires: anaconda-core = %{epoch}:%{version}-%{release} -Requires: anaconda-widgets = %{epoch}:%{version}-%{release} -Requires: python3-meh-gui >= %{mehver} -Requires: adwaita-icon-theme -Requires: system-logos -Requires: tigervnc-server-minimal -Requires: libxklavier >= %{libxklavierver} -Requires: libgnomekbd -Requires: libtimezonemap >= %{libtimezonemapver} -Requires: nm-connection-editor -%ifarch %livearches -Requires: zenity -%endif -Requires: keybinder3 -%ifnarch s390 s390x -Requires: NetworkManager-wifi -%endif -Requires: anaconda-user-help >= %{helpver} -Requires: yelp -Requires: python3-gobject-base - -# Needed to compile the gsettings files -BuildRequires: gsettings-desktop-schemas -BuildRequires: metacity - -%description gui -This package contains graphical user interface for the Anaconda installer. - -%package tui -Summary: Textual user interface for the Anaconda installer -Requires: anaconda-core = %{epoch}:%{version}-%{release} - -%description tui -This package contains textual user interface for the Anaconda installer. - -%package widgets -Summary: A set of custom GTK+ widgets for use with anaconda -Group: System Environment/Libraries -Requires: python3 - -%description widgets -This package contains a set of custom GTK+ widgets used by the anaconda installer. - -%package widgets-devel -Summary: Development files for anaconda-widgets -Group: Development/Libraries -Requires: glade -Requires: %{name}-widgets%{?_isa} = %{epoch}:%{version}-%{release} - -%description widgets-devel -This package contains libraries and header files needed for writing the anaconda -installer. It also contains Python and Glade support files, as well as -documentation for working with this library. - -%package dracut -Summary: The anaconda dracut module -Requires: dracut >= %{dracutver} -Requires: dracut-network -Requires: dracut-live -Requires: xz -Requires: python3-kickstart - -%description dracut -The 'anaconda' dracut module handles installer-specific boot tasks and -options. This includes driver disks, kickstarts, and finding the anaconda -runtime on NFS/HTTP/FTP servers or local disks. - -%prep -%autosetup -p1 - -%build -autoreconf -v --install . -%configure -%{__make} %{?_smp_mflags} - -%install -%{make_install} -find %{buildroot} -type f -name "*.la" | xargs %{__rm} - -# Create an empty directory for addons -mkdir %{buildroot}%{_datadir}/anaconda/addons - -%ifarch %livearches -desktop-file-install ---dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/liveinst.desktop -%endif -# NOTE: If you see "error: Installed (but unpackaged) file(s) found" that include liveinst files, -# check the IS_LIVEINST_ARCH in configure.ac to make sure your architecture is properly defined - -# If no langs found, keep going -%find_lang %{name} || : - -%post widgets -p /sbin/ldconfig -%postun widgets -p /sbin/ldconfig - - -%ifarch %livearches -%post -update-desktop-database &> /dev/null || : -%endif - -%ifarch %livearches -%postun -update-desktop-database &> /dev/null || : -%endif - -%files - -# Allow the lang file to be empty -%define _empty_manifest_terminate_build 0 - -%files core -f %{name}.lang -%license COPYING -%{_unitdir}/* -%{_prefix}/lib/systemd/system-generators/* -%{_bindir}/instperf -%{_bindir}/anaconda-disable-nm-ibft-plugin -%{_sbindir}/anaconda -%{_sbindir}/handle-sshpw -%{_datadir}/anaconda -%{_prefix}/libexec/anaconda -%exclude %{_prefix}/libexec/anaconda/dd_* -%{python3_sitearch}/pyanaconda/* -%exclude %{python3_sitearch}/pyanaconda/rescue.py* -%exclude %{python3_sitearch}/pyanaconda/__pycache__/rescue.* -%exclude %{python3_sitearch}/pyanaconda/ui/gui/* -%exclude %{python3_sitearch}/pyanaconda/ui/tui/* -%{_bindir}/analog -%{_bindir}/anaconda-cleanup -%ifarch %livearches -%{_bindir}/liveinst -%{_sbindir}/liveinst -%config(noreplace) %{_sysconfdir}/pam.d/* -%config(noreplace) %{_sysconfdir}/security/console.apps/* -%{_libexecdir}/liveinst-setup.sh -%{_datadir}/applications/*.desktop -%{_sysconfdir}/xdg/autostart/*.desktop -%endif - -%files gui -%{python3_sitearch}/pyanaconda/ui/gui/* -%{_datadir}/themes/Anaconda/* - -%files tui -%{python3_sitearch}/pyanaconda/rescue.py -%{python3_sitearch}/pyanaconda/__pycache__/rescue.* -%{python3_sitearch}/pyanaconda/ui/tui/* - -%files widgets -%{_libdir}/libAnacondaWidgets.so.* -%{_libdir}/girepository*/AnacondaWidgets*typelib -%{python3_sitearch}/gi/overrides/* - -%files widgets-devel -%{_libdir}/libAnacondaWidgets.so -%{_includedir}/* -%{_datadir}/glade/catalogs/AnacondaWidgets.xml -%{_datadir}/gtk-doc - -%files dracut -%dir %{_prefix}/lib/dracut/modules.d/80%{name} -%{_prefix}/lib/dracut/modules.d/80%{name}/* -%{_prefix}/libexec/anaconda/dd_* - -%changelog -* Wed Dec 14 2016 Martin Kolman - 25.20.9-1 -- rpmostreepayload: Rework binds to be recursive (walters) -- Merge pull request #876 from jkonecny12/f25-dev-fix-can-touch-runtime-call - (jkonecny) -- Fix calling of can_touch_runtime_system function (jkonecny) -- Merge pull request #864 from M4rtinK/f25-devel-no_uic_on_image_dir_install - (martin.kolman) -- Fix user interaction config handling in image & directory install modes - (#1379106) (mkolman) - -* Tue Nov 08 2016 Martin Kolman - 25.20.8-1 -- Merge pull request #863 from AdamWill/relax-blivet-dep (martin.kolman) -- Relax blivet dependency to >= 2.1.6-3 (awilliam) - -* Mon Nov 07 2016 Martin Kolman - 25.20.7-1 -- Merge pull request #857 from snbueno/1335046-f25 (martin.kolman) -- Bump required Blivet version (#1378156) (mkolman) -- Merge pull request #862 from jkonecny12/f25-dev-fix-iscsi-timeout (jkonecny) -- Merge pull request #850 from AdamWill/iscsi-node-auth (jkonecny) -- Fix bad exception handling from blivet in iscsi (#1378156) (jkonecny) -- iSCSI: adjust to change in blivet auth info (#1378156) (awilliam) -- Add some error checking when users don't provide input for DASD devices. - (sbueno+anaconda) -- Add some error checking when users don't provide input for zFCP devices. - (sbueno+anaconda) -- Merge pull request #846 from jkonecny12/f25-rel-fix-mock (jkonecny) -- Merge pull request #849 from AdamWill/iscsi-singleton (jkonecny) -- Merge pull request #848 from AdamWill/device-links (jkonecny) -- use blivet iSCSI singleton directly in storage spoke (awilliam) -- Correct deviceLinks to device_links (blivet renamed it) (awilliam) -- Change mock from Rawhide to Fedora 25 (jkonecny) - -* Fri Oct 28 2016 Samantha N. Bueno - 25.20.6-1 -- Merge pull request #847 from snbueno/1384532-v02 (snbueno) -- Merge pull request #845 from poncovka/f25-devel-tui_software_group_selection - (vponcova) -- tui: Add software group selection (vponcova) -- Merge pull request #844 from jkonecny12/f25-dev-fix-space_check_skip - (jkonecny) -- Merge pull request #839 from jkonecny12/f25-dev-improve-logging (jkonecny) -- Instantiate the zFCP object ourselves now. (#1384532) (sbueno+anaconda) -- Fix the way DASD list is determined. (#1384532) (sbueno+anaconda) -- Add tests for payload location picking (#1328151) (jkonecny) -- Fix picking mountpoint for package download (#1328151) (jkonecny) -- Merge pull request #842 from jkonecny12/f25-dev-rm-zanata-main-extra-pot - (jkonecny) -- Remove main and extra pot files before zanata push (jkonecny) -- Don't send intermediate pot files to zanata (gh#791) (awilliam) -- Merge pull request #831 from poncovka/f25-devel-show_password_option - (vponcova) -- Improve packaging logs without DEBUG logging (jkonecny) -- Add option to show password in password field (vponcova) - -* Thu Oct 13 2016 Samantha N. Bueno - 25.20.5-1 -- Merge pull request #824 from snbueno/1378338 (snbueno) -- Generate a list of DASDs in GUI storage spoke. (#1378338) (sbueno+anaconda) - -* Tue Oct 04 2016 Samantha N. Bueno - 25.20.4-1 -- Merge pull request #817 from rvykydal/f25-devel-installation-from-live-iso- - to-disk-usb (rvykydal) -- Merge pull request #813 from M4rtinK/f25-devel-no_mandatory_network_in_IS - (martin.kolman) -- Skip live image on usb when checking storage for mounted partitions - (#1369786) (rvykydal) -- Fix network spoke being incorrectly marked as mandatory (#1374864) (mkolman) -- Merge pull request #812 from dwlehman/udev-cruft-removal (dlehman) -- Merge pull request #811 from M4rtinK/f25-devel-improved_driver_disk_copying - (martin.kolman) -- Improved driver disk copying (#1269915) (mkolman) -- Merge pull request #810 from M4rtinK/f25-devel-fix_screenshot_taking - (martin.kolman) -- Don't deactivate all storage in anaconda-cleanup. (#1225184) (dlehman) -- Stop setting ANACONDA udev environment variable. (#1225184) (dlehman) -- Fix screenshot taking logic (#1327456) (mkolman) -- Merge pull request #807 from jkonecny12/master-add-mod-reload-dependencies - (jkonecny) -- Change blank lines to pep8 for Dracut DUD test (jkonecny) -- Tweak lambda use in Dracut test (jkonecny) -- Add Dracut test for reloading mod dependencies (jkonecny) - -* Wed Sep 21 2016 Samantha N. Bueno - 25.20.3-1 -- Merge pull request #806 from M4rtinK/f25-devel-fix_tui_ntp_server_listing - (martin.kolman) -- Fix NTP server list fetching when running in IS (#1374810) (mkolman) -- Merge pull request #804 from rvykydal/f25-devel-cgwalters-rpmostree-fix- - remote (rvykydal) -- rpmostreepayload: Clean up use of sysroot files a bit (walters) -- rpmostreepayload: Fix remote handling to use correct sysroot (walters) - -* Mon Sep 19 2016 Samantha N. Bueno - 25.20.2-1 -- Merge pull request #801 from rvykydal/f25-devel-rhbz-1309661 (rvykydal) -- Merge pull request #802 from rvykydal/f25-devel-rhbz-1234849 (rvykydal) -- Merge pull request #797 from jkonecny12/f25-dev-fix-text-repo-option-checker - (jkonecny) -- Merge pull request #796 from jkonecny12/f25-dev-fix-net-when-dud-unload - (jkonecny) -- Merge pull request #798 from rvykydal/f25-devel-rhbz-1371188 (rvykydal) -- network: set onboot correctly for vlan on bond device in ks (#1234849) - (rvykydal) -- network: don't show ibft configured devices in UI (#1309661) (rvykydal) -- Merge pull request #765 from rvykydal/f25-devel-port-rhel-1325134-1252879 - (rvykydal) -- iscsi: don't generate kickstart iscsi commands for offload devices (#1252879) - (rvykydal) -- iscsi: allow installing bootloader on offload iscsi disks (qla4xxx) - (#1325134) (rvykydal) -- network: adapt to changed NM ibft plugin enablement configuration (#1371188) - (rvykydal) -- Merge pull request #795 from rvykydal/f25-devel-rhbz-1268792 (rvykydal) -- Merge pull request #794 from rvykydal/f25-devel-rhbz-1321288 (rvykydal) -- Merge pull request #793 from rvykydal/f25-devel-rhbz-1358795 (rvykydal) -- network: don't activate bond/team devices regardless of --activate (#1358795) - (rvykydal) -- Merge pull request #771 from rvykydal/f25-devel-1277975-add-network-no- - activate-option (rvykydal) -- Fix traceback when payload have None as url (#1371494) (jkonecny) -- Add new Dracut test and fix another ones (#1101653) (jkonecny) -- Fix bug when we add set to list (#1101653) (jkonecny) -- Add new helper script files to build system (#1101653) (jkonecny) -- Document new helper scripts to the DriverDisk README (#1101653) (jkonecny) -- Fix driver unload is disabling network settings (#1101653) (jkonecny) -- dud: fix multiple inst.dd=http:// instances stalling in dracut (#1268792) - (rvykydal) -- network: fix ksdata generating for for non-active virtual devices (#1321288) - (rvykydal) -- network: update kickstart data also with bond bridge slaves (#1321288) - (rvykydal) -- network: add support for bridge bond slaves (#1321288) (rvykydal) -- Merge pull request #790 from cgwalters/sam-evaluation (martin.kolman) -- screen_access: Ensure we write config to real sysroot (walters) -- network: add support for --no-activate kickstart opton (#1277975) (rvykydal) - -* Thu Sep 08 2016 Samantha N. Bueno - 25.20.1-1 -- Update zanata.xml file for f25. (sbueno+anaconda) -- Fix a small typo in makebumpver script. (sbueno+anaconda) -- Merge pull request #778 from M4rtinK/f25-release-zanata_branch_hotfix - (martin.kolman) -- Fix the git branch name/Zanata branch name mismatch (mkolman) -- Merge pull request #769 from rvykydal/f25-devel-port-1370099 (rvykydal) -- Merge pull request #743 from M4rtinK/f25-devel-how_to_merge (martin.kolman) -- Add git merging examples to the contribution guidelines (mkolman) -- network: don't stumble upon new Device.Statistics NM dbus iface (#1370099) - (rvykydal) -- Merge pull request #760 from jkonecny12/f25-reaplly-dev-fix-dnf-change - (jkonecny) -- Current Anaconda is not compatible with DNF 2.0.0 (jkonecny) -- Fix replacement of deprecated DNF method (jkonecny) -- Replace deprecated method of DNF (jmracek) -- Merge pull request #751 from M4rtinK/f25-devel-fix_systemd_sysroot - (martin.kolman) -- Translate press-c-to-continue correctly in TUI (#1364539) (mkolman) -- Merge pull request #744 from jkonecny12/f25-dev-fix-bootloader-bootpart - (jkonecny) -- Fix bootDrive driveorder fallback (#1355795) (jkonecny) -- Fix bootloader when re-using existing /boot part (#1355795) (jkonecny) -- Add support for device specification variants (#1200833) (mkolman) -- Revert "Update zanata.xml for f25-devel branch." (sbueno+anaconda) -- Update zanata.xml for f25-devel branch. (sbueno+anaconda) -- Merge pull request #736 from jkonecny12/master-fix-net-reset-payload - (jkonecny) -- network: don't require gateway for static ipv4 config in TUI (#1365532) - (rvykydal) -- Merge pull request #732 from jkonecny12/master-fix-ana-pre-service (jkonecny) -- Improve connection network change detection (jkonecny) -- Revert "Revalidate source only if nm-con-ed change settings (#1270354)" - (jkonecny) -- Fix anaconda-pre.service wasn't properly installed (#1255659) (jkonecny) -- Merge pull request #704 from snbueno/contributing (snbueno) -- Rename function for better consistency (#1259284) (rvykydal) -- Update error message for consistency (#1259284) (rvykydal) -- Add more specific username check messages also to gui (#1360334) (rvykydal) -- fix style guide test false positive on username variable (#1350375) - (rvykydal) -- tui: use functions instead of fake REs for checking values (#1350375) - (rvykydal) -- tui: get proper index of entry we are handling in input (#1331054) (rvykydal) -- tui: fix user name validity checking (#1350375) (rvykydal) -- More descriptive message on invalid username (kvalek) -- Fix another pep8 name issue (jkonecny) -- iscsi: fix getting iscsi target iface of bound target (#1359739) (rvykydal) -- Fix needsNetwork testing only additional repositories (#1358788) (jkonecny) -- Fix restart payload only when repo needs network (#1358788) (jkonecny) -- Cleanup remaining runlevel references (mkolman) -- Clarify a nosave related log message (mkolman) -- Use Screen Access Manager (mkolman) -- Add screen entry/exit callbacks (mkolman) -- Add screen access manager (mkolman) -- A simple formatting fix (mkolman) -- Fix another blivet-2.0 pep8 error (jkonecny) -- Quickfix of failing test (japokorn) -- Some docstring refactoring & typo fixes for the TUI base classes (mkolman) -- Add a file about contributing. (sbueno+anaconda) -- Store logs before anaconda starts (#1255659) (japokorn) -- DD can now replace existing drivers (#1101653) (japokorn) -- Use the F25 timezone kickstart command version (mkolman) -- Use sshd-keygen.target instead of hardcoded sshd-keygen script (jjelen) -- Make it possible to disable sshd service from running. (#1262707) - (sbueno+anaconda) -- Change bootloader boot drive fallback (jkonecny) -- Merge pull request #702 from japokorn/master_quickfix (japokorn) -- Fix of Python3x uncompatible commands (japokorn) -- Add NTP server configuration to the TUI (#1269399) (mkolman) -- Move the NTP server checking constants to constants.py (mkolman) -- Use a constant for the NTP check thread name prefix (mkolman) -- Fix another victim of the python 2->3 conversion. (#1354020) (dshea) -- Attempt to unload modules updated by a driver disk (dshea) -- Fix the processing of device nodes as driver disks (dshea) - -* Fri Jul 08 2016 Brian C. Lane - 25.20-1 -- Allow kickstart users to ignore the free space error (dshea) -- Stop kickstart when space check fails (bcl) -- Service anaconda-nm-config is missing type oneshot (jkonecny) -- Fix dhcpclass to work both via kickstart and the boot cmdline. (clumens) -- network: handle also ifcfg files of not activated virtual devices (#1313173) - (rvykydal) -- network: check onboot value in ksdata, not NM connections (#1313173) - (rvykydal) -- network: do not activate device on kickstart --onboot="yes" (#1341636) - (rvykydal) - -* Fri Jun 24 2016 Brian C. Lane - 25.19-1 -- hostname: don't set installer env hostname to localhost.localdomain - (#1290858) (rvykydal) -- hostname: add tooltip to Apply button (#1290858) (rvykydal) -- hostname: fix accelerator collision (#1290858) (rvykydal) -- hostname: don't set hostname in initrafms of target system (#1290858) - (rvykydal) -- hostname: set current hostname from target system hostname on demand - (#1290858) (rvykydal) -- hostname: suggest current hostname for storage containers (#1290858) - (rvykydal) -- hostname: don't set target system static hostname to current hostname - (#1290858) (rvykydal) -- network tui: do not activate device when setting its onboot value (#1261864) - (rvykydal) -- network tui: edit persistent configuration, not active connection (#1261864) - (rvykydal) -- network: validate netmask in tui (#1331054) (rvykydal) -- Add wordwrap to text mode and use it by default (#1267881) (rvykydal) -- Fix adding new VG in Custom spoke can't be applied (#1263715) (jkonecny) -- Fix SimpleConfigFile file permissions (#1346364) (bcl) -- Re-configure proxy when updateBaseRepo is called (#1332472) (bcl) - -* Fri Jun 17 2016 Brian C. Lane - 25.18-1 -- Only use <> for markup (#1317297) (bcl) -- Update iscsi dialog for Blivet 2.0 API change (bcl) -- Use the signal handlers to set initial widget sensitivies (dshea) -- Fix bad sensitivity on boxes in source spoke (jkonecny) -- Fix install-buildrequires (bcl) -- Added optional [/prefix] as pattern (kvalek) -- Require network for network-based driver disks (dshea) -- Add missing pkgs to install-buildrequires (#612) (phil) -- Increase the required version of gettext (dshea) -- Fix the name sensitivity in the custom spoke. (dshea) - -* Fri Jun 10 2016 Brian C. Lane - 25.17-1 -- Revert "Temporarily disable translations" (bcl) -- Change where to look for the iscsi object (#1344131) (dshea) -- Fix old blivet identifiers (#1343907) (dshea) -- Fix a covscan warning about fetch-driver-net (#1269915) (bcl) -- Fix crash when NM get_setting* methods return None (#1273497) (jkonecny) -- Overwrite network files when using ks liveimg (#1342639) (bcl) -- Stop using undocumented DNF logging API (bcl) -- Use the LUKS device for encrypted swap on RAID (dshea) -- Keep the subdir in driver disk update paths (dshea) -- Warn about broken keyboard layout switching in VNC (#1274228) (jkonecny) -- Make the anaconda-generator exit early outside of the installation - environment (#1289179) (mkolman) - -* Fri Jun 03 2016 Brian C. Lane - 25.16-1 -- Add a button to refresh the disk list. (dlehman) -- Only try to restart payload in the Anaconda environment (mkolman) -- Make current runtime environment identifiers available via flags (mkolman) -- Display storage errors that cause no disks to be selected (#1340240) (bcl) -- Fix the SourceSwitchHandler pylint errors differently. (clumens) -- Fix pylint errors. (clumens) -- Update the disk summary on Ctrl-A (dshea) -- Revert "Refresh the view of on-disk storage state every 30 seconds." - (dlehman) -- Refresh the view of on-disk storage state every 30 seconds. (dlehman) -- Handle unsupported disklabels. (dlehman) -- Use a blivet method to remove everything from a device. (dlehman) -- Tighten up ResizeDialog._recursive_remove a bit. (dlehman) -- Only look for partitions on partitioned disks. (dlehman) -- NFS DDs installation now works correctly (#1269915) (japokorn) -- Remove unused on_proxy_ok_clicked from Source spoke (jkonecny) -- send all layouts to localed for keymap conversion (#1333998) (awilliam) -- Small cleanup (mkolman) - -* Fri May 27 2016 Brian C. Lane - 25.15-1 -- Resolve shortcut conflict between "Desired Capacity" and "Done" (yaneti) -- network: don't crash on devices with zero MAC address (#1334632) (rvykydal) -- Remove Authors lines from the tops of all files. (clumens) -- Related: rhbz#1298444 (rvykydal) -- New Anaconda documentation - 25.14 (bcl) -- Catch DNF MarkingError during group installation (#1337731) (bcl) -- Fix TUI ErrorDialog processing (#1337427) (bcl) -- Clean up yelp processes (#1282432) (dshea) - -* Fri May 20 2016 Brian C. Lane - 25.14-1 -- Temporarily disable translations (bcl) -- Don't crash when selecting the same hdd ISO again (#1275771) (mkolman) - -* Thu May 19 2016 Brian C. Lane - 25.13-1 -- Fix writeStorageLate for live installations (#1334019) (bcl) -- Remove the locale list from zanata.xml (dshea) -- Ditch autopoint. (dshea) -- Ditch intltool. (dshea) -- Rename fedora-welcome to fedora-welcome.js (dshea) -- Fix UEFI installation after EFIBase refactor (bcl) -- Fix error handling for s390 bootloader errors (sbueno+anaconda) -- Deselect all addons correctly (#1333505) (bcl) -- gui-testing needs isys to be compiled. (clumens) -- Add more to the selinux check in tests/gui/base.py. (clumens) - -* Fri May 13 2016 Brian C. Lane - 25.12-1 -- Add single language mode (#1235726) (mkolman) -- Move default X keyboard setting out of the Welcome spoke (mkolman) -- Rerun writeBootLoader on Live BTRFS installs (bcl) -- Check for mounted partitions as part of sanity_check (#1330820) (bcl) -- Merge pull request #620 from dashea/new-canary (dshea) -- Update the required pykickstart version. (dshea) -- Implement %%packages --excludeWeakdeps (#1331100) (james) -- Fix bad addon handling when addon import failed (jkonecny) -- Add retry when downloading .treeinfo (#1292613) (jkonecny) -- Return xprogressive delay back (jkonecny) -- Change where tests on translated strings are run. (dshea) -- Merge the latest from translation-canary (dshea) -- Squashed 'translation-canary/' changes from 5a45c19..3bc2ad6 (dshea) -- Add new Makefile target for gui tests (atodorov) -- Define missing srcdir in run_gui_tests.sh and enable coverage (atodorov) -- Split gui test running out into its own script. (clumens) -- Look higher for the combobox associated with an entry (#1333530) (dshea) -- Use createrepo_c in the ci target. (dshea) -- Compile glib schema overrides with --strict. (dshea) - -* Fri May 06 2016 Brian C. Lane - 25.11-1 -- Don't join two absolute paths (#1249598) (mkolman) -- Don't crash when taking a screenshot on the hub (#1327456) (mkolman) -- Fix pylint errors. (phil) -- Factor out common grub1/grub2 stuff into mixin, and other factoring (phil) -- Add GRUB1 (legacy) support back to Anaconda (phil) - -* Fri Apr 29 2016 Brian C. Lane - 25.10-1 -- Handle unmounting ostree when exiting (bcl) -- ostree: Use bind mounts to setup ostree root (bcl) -- ostree: Skip root= setup when using --dirinstall (bcl) -- disable_service: Specify string format args as logging params. (clumens) -- Ignore failure when disable services that do not exist (phil) -- Get rid of an unused variable in the network spoke. (clumens) -- Revalidate source only if nm-con-ed change settings (#1270354) (jkonecny) -- Merge solutions for test source when network change (#1270354) (jkonecny) -- Changes in network state revalidate sources rhbz#1270354 (riehecky) - -* Wed Apr 27 2016 Brian C. Lane - 25.9-1 -- Use the iutil functions for interacting with systemd services. (dshea) -- Add methods to enable and disable systemd services. (dshea) -- Do not add .service to the end of service names. (dshea) -- Remove detach-client from tmux.conf (dshea) -- Use Blivet 2.0 for set_default_fstype (#607) (sgallagh) -- Remove dnf from the list of required packages. (#605) (dshea) -- Add access to the payload from addons (#1288636) (jkonecny) -- Disable pylint warnings related to the log handler fixer. (dshea) -- Allow the metacity config dir to be overriden. (dshea) -- Do not include /usr/share/anaconda files in the gui package. (dshea) -- Work around logging's crummy lock behavior. (dshea) -- Use rm -r to remove the temporary python site directory. (dshea) -- Remove the subnet label for wired devices. (#1327615) (dshea) -- Fix how unusued network labels are hidden (#1327615) (dshea) -- Remove yum_logger (bcl) -- Remove the lock loglevel (bcl) -- Use a temporary user-site directory for the tests. (dshea) -- Build everything for make ci. (dshea) -- Ignore some E1101 no-member errors when running pylint (bcl) -- Sprinkle the code with pylint no-member disable statements (bcl) -- Catch GLib.GError instead of Exception (bcl) -- Update storage test for Blivet 2.0 API change. (bcl) -- Initialize missing private methods in BasePage class (bcl) -- Update kickstart.py for Blivet 2.0 API change. (bcl) -- Use namedtuple correctly in kexec.py (bcl) -- Add more requires to make password checking still work. (#1327411) (dshea) -- Rename isS390 to match the renames in blivet. (dshea) -- Suppress signal handling when setting zone from location (#1322648) (dshea) -- Refresh metadata when updates checkbox changes (#1211907) (bcl) - -* Fri Apr 15 2016 Brian C. Lane - 25.8-1 -- network: handle null wireless AP SSID object (#1262556) (awilliam) -- Change new_tmpfs to new_tmp_fs. (clumens) -- Add support for kickstart %%onerror scripts. (clumens) -- Show network spoke in the TUI reconfig mode (#1302165) (mkolman) -- network: copy static routes configured in installer to system (#1255801) - (rvykydal) -- network: fix vlan over bond in kickstart (#1234849) (rvykydal) -- network: use NAME to find ifcfg on s390 with net.ifnames=0 (#1249750) - (rvykydal) -- Get rid of the reimport of MultipathDevice. (clumens) -- Fix iSCSI kickstart options aren't generated (#1252879) (jkonecny) -- Fix adding offload iSCSI devices (vtrefny) -- Make the list-harddrives script mode robust (mkolman) - -* Fri Apr 08 2016 Brian C. Lane - 25.7-1 -- Blivet API change getDeviceBy* is now get_device_by_* (bcl) -- network: don't set 803-3-ethernet.name setting (#1323589) (rvykydal) -- Log non-critical user/group errors (#1308679) (bcl) -- Fix btrfs metadata raid level kwarg. (dlehman) -- docs: Add release building document (bcl) -- Minor improvements - README and test dependencies (atodorov) -- Add more matches for network connectivity (atodorov) - -* Mon Apr 04 2016 Brian C. Lane - 25.6-1 -- Remove an unused import from anaconda-cleanup. (clumens) -- Don't use booleans in Requires (#1323314) (dshea) -- Set CSS names on all of the anaconda classes. (#1322036) (dshea) -- Don't crash if no groups are specified (#1316816) (dshea) -- Fix only one address is shown in anaconda (#1264400) (jkonecny) -- Fix call to update optical media format. (#1322943) (dlehman) -- Reset invalid disk selection before proceeding. (dlehman) -- Multiple Dogtail tests improvements (atodorov) -- Do not allow liveinst with --image or --dirinstall (#1276349) (dshea) -- New Anaconda documentation - 25.5 (bcl) - -* Wed Mar 30 2016 Brian C. Lane - 25.5-1 -- Don't provide subclasses of the multipath or dmraid commands. (clumens) -- Add support for chunksize raid kickstart parameter. (vtrefny) -- Convert to blivet-2.0 API. (dlehman) - -* Thu Mar 24 2016 Brian C. Lane - 25.4-1 -- Require that the English locale data be available. (#1315494) (dshea) -- Revert "Change the default locale to C.UTF-8 (#1312607)" (#1315494) (dshea) -- Make windows in metacity closable (#1319590) (dshea) -- Fix the use of CSS psuedo-classes in the widgets. (dshea) -- Add reason when logging invalid repository (#1240379) (jkonecny) - -* Sat Mar 19 2016 Brian C. Lane - 25.3-1 -- Apply language attributes to all labels within anaconda. (dshea) -- Add a function to apply a PangoAttrLanguage to a label. (dshea) -- Add functions to watch changes to a container widget. (dshea) -- Switch to the adwaita icon theme. (dshea) -- Fix duplicate network settings in dracut (#1293539) (jkonecny) -- Fix create device with bad name when parsing KS (#1293539) (jkonecny) -- Use a lock for repoStore access (#1315414) (bcl) -- Add missing inst prefix to the nokill option in docs (mkolman) -- Merge pull request #551 from wgwoods/master-multiple-initrd-dd-fix (wwoods) -- fix multiple inst.dd= args (rhbz#1268792) (wwoods) - -* Fri Mar 11 2016 Brian C. Lane - 25.2-1 -- Load the system-wide Xresources (#1241724) (dshea) -- Use an icon that exists in Adwaita for the dasd confirmation (dshea) -- Make it possible to skip saving of kickstarts and logs (#1285519) (mkolman) -- Add a function for empty file creation (#1285519) (mkolman) -- Run actions for argparse arguments (#1285519) (mkolman) - -* Wed Mar 09 2016 Brian C. Lane - 25.1-1 -- don't install kernel-PAE on x86_64 (#1313957) (awilliam) -- except block in py3.5 undefines the variable (bcl) -- Remove some history from the liveinst setup. (dshea) -- Do not run the liveinst setup if not in a live environment. (dshea) -- Set GDK_BACKEND=x11 before running anaconda from liveinst. (dshea) -- Run zz-liveinst as an autostart application (dshea) -- Translate the help button. (dshea) -- Translate the required space labes in resize.py (dshea) - -* Fri Mar 04 2016 Brian C. Lane - 25.0-1 -- Add device id to dasdfmt screen. (#1269174) (sbueno+anaconda) -- Unify displayed columns in custom spoke dialogs. (#1289577) (sbueno+anaconda) -- Show some confirmation to users if adding a DASD was successful. (#1259016) - (sbueno+anaconda) -- Hotfix for missing storage in payload class (#1271657) (jkonecny) -- Check to see if DD repo is already in addOn list (#1268357) (bcl) -- Use the default levelbar offset values. (dshea) -- Do not change the GUI language to a missing locale. (#1312607) (dshea) -- Don't crash when setting an unavailable locale (#1312607) (dshea) -- Change the default locale to C.UTF-8 (#1312607) (dshea) -- Update the libtool version-info. (dshea) -- Use CSS to style the internal widgets. (dshea) -- Move the widgets pixmaps into resources. (dshea) -- Add a resource bundle to libAnacondaWidgets (dshea) -- Rename show_arrow and chosen_changed to show-arrow and chosen-changed (dshea) -- Remove an invalid transfer notation. (dshea) -- Stop using SGML in the docs. (dshea) -- Change the install test URL. (dshea) -- Fix nfs source crash when options change (#1264071) (bcl) -- makebumpver: Add a --dry-run option (bcl) -- NTP should have better behavior (#1309396) (jkonecny) -- Manually set clock shifts on UI idle (#1251044) (rmarshall) -- Don't remove selected shared part when Delete all (#1183880) (jkonecny) -- Don't delete shared/boot parts in deleteAll (#1183880) (jkonecny) - -* Fri Feb 19 2016 Brian C. Lane - 24.13-1 -- tests/gui enhancements (atodorov) -- Fix gui tests for anaconda move to anaconda.py (atodorov) -- Use a different ipmi command to log events. (clumens) -- Clarify that a string in list-screens is actually a regex. (clumens) -- Merge pull request #513 from wgwoods/update-dd-docs (wwoods) -- updated driver updates docs (wwoods) -- Add specification for the user interaction config file (mkolman) -- Update zanata webui URL in translation doc. (dlehman) -- Tweak partition removal in Custom spoke (jkonecny) -- Do not skip evaluation after removing partitions (jkonecny) -- Import iutil earlier so we can use ipmi_report from check_for_ssh. (clumens) -- Make disconnect_client_callbacks more resilient (#1307063). (clumens) -- Move the langpacks install into to a separate function. (dshea) -- Fix _find_by_title method in Accordion (jkonecny) - -* Fri Feb 12 2016 Brian C. Lane - 24.12-1 -- Use host storage for directory or image install dnf download (bcl) -- Log payloadError so we know why installation failed. (bcl) -- Add the addons directory to the rpm. (dshea) -- Use the packaged version of ordered-set (dshea) -- Remove an unused import (dshea) -- Add an uninstall hook for the renamed anaconda (dshea) -- Make langpack work in DNF (#1297823) (jsilhan) -- New Anaconda documentation - 24.11 (bcl) - -* Fri Feb 05 2016 Brian C. Lane - 24.11-1 -- Fix makeupdates for anaconda move to anaconda.py (bcl) -- Rename ./anaconda to ./anaconda.py to work around coverage.py #425 (atodorov) -- Remove special handling for interruptible system calls. (dshea) -- Handle PEP 3101 strings in the gettext context check (dshea) -- Improve RHS summary strings in multiselection (#1265620) (jkonecny) -- Increase GI version required of AnacondaWidgets (jkonecny) -- Increment version of g-introspection for widgets (jkonecny) -- Increment the AnacondaWidgets version (jkonecny) -- Switch to the new Initial Setup unit name (#1299210) (mkolman) -- Uncomment self.check_lang_locale_views in tests/gui/ (atodorov) -- Add dogtail to test requirements (atodorov) -- Add config for easier combining of kickstart and Jenkins coverage data - (atodorov) -- Apply the fallback style to anaconda selectors. (dshea) -- Redo the stylesheet for Gtk 3.19+ (dshea) -- Directly overwrite /usr/share/anaconda/anaconda-gtk.css (dshea) -- Merge pull request #463 from dashea/translation-tests (dshea) -- Display the name of the addon while executing it (bcl) -- Add page selection summary to the right side (#1265620) (jkonecny) -- Ask when removing new items in multiselection (#1265620) (jkonecny) -- Add multiselection with SHIFT key (#1265620) (jkonecny) -- Use show_arrow feature implemented in Selector (#1265620) (jkonecny) -- Add new property to show/hide arrow in Selector (#1265620) (jkonecny) -- Change selection logic when opening Page (#1265620) (jkonecny) -- Add new BasePage class (#1265620) (jkonecny) -- Add signal and methods to MountpointSelector (#1265620) (jkonecny) -- Fix errors with multiselection (#1265620) (jkonecny) -- Accordion class now process events for selectors (#1265620) (jkonecny) -- Change cammel case for accordion.py to new pep8 (jkonecny) -- Move selection logic from custom spoke to accordion (#1265620) (jkonecny) -- Modify ConfirmDeleteDialog now the checkbox is optional (#1265620) (jkonecny) -- Multiselection works in GUI with remove (#1265620) (jkonecny) -- Add multiselection to Accordion with control key (#1265620) (jkonecny) -- Remove bad translations from the source tarball. (dshea) -- Treat warnings from xgettext as errors. (dshea) -- Run translation-canary tests from make check. (dshea) -- Do not run pylint on translation-canary (dshea) -- Squashed 'translation-canary/' content from commit 5a45c19 (dshea) - -* Fri Jan 29 2016 Brian C. Lane - 24.10-1 -- Add a finished method to spokes (#1300499) (bcl) -- Handle DeviceConfiguration with con = None (#1300499) (bcl) -- Log detailed information about installed packages (bcl) -- s/KickstartValueError/KickstartParseError. (clumens) -- Move requiredDeviceSize to the main Payload class (#1297905) (dshea) - -* Fri Jan 08 2016 Brian C. Lane - 24.9-1 -- Handle unexpected DNF exit (bcl) -- Fix bad space needed messages (jkonecny) -- nosetests-3.5 is now the right version. (clumens) -- Ignore a pylint error about how we're using Popen (dshea) -- Mark an unused variable as unused (dshea) -- Ignore type-related errors for types pylint can't figure out (dshea) -- Import errors are just regular errors now (dshea) -- Replace the remaining log.warn calls with log.warning. (dshea) -- Fix an erroneously bare raise statement (dshea) -- Replace the deprecated assertEquals with assertEqual (dshea) -- Don't add a None to the list of things to unmount on ostree installs. - (clumens) - -* Wed Dec 02 2015 Brian C. Lane - 24.8-1 -- Fix pylint problems in the gui testing code. (clumens) -- Merge 9c5e02392d0401a3bd0adecedea03535595773ef into - 67b569253c724639c2490f5fab70f7111f699b3f (atodorov) -- Fix the replacement suggestion for "hostname" (dshea) -- Automatically generate sr (dshea) -- Fix PropertyNotFoundError PermHwAddress (#1269298) (jkonecny) -- Make sure python3.5 code can run in early initrd (bcl) -- Replace .delete() with .remove() in user.py (sujithpandel) -- Rename everything that still refers to LiveCD (atodorov) -- Updates to progress and storage tests (atodorov) -- Multiple changes to DogtailTestCase (atodorov) -- Move all Python files into the main gui/ directory (atodorov) -- Simplify tests by removing OutsideMixin and update Creator (atodorov) -- Modify existing tests to match latest anaconda behavior and environment - (atodorov) -- Temporary disable test code which doesn't work (atodorov) -- Make tests/gui/ execute ./anaconda from git (atodorov) -- Add window title (#1280077) (mkolman) -- Replace execReadlines with check_output in parse-kickstart_test.py (bcl) -- Fix a spelling error in the hardware error message (#1284165). (clumens) - -* Wed Nov 18 2015 Brian C. Lane - 24.7-1 -- Collect test-suite.log from all 'make check' invocations. Closes #452 - (atodorov) -- Fix parse-kickstart_test.py. (clumens) -- Remove mkdud.py. (clumens) -- Remove the kickstart_tests directory. (clumens) -- Always quote values in ifcfg- files (#1279131) (bcl) -- Include original kickstart in /root/original-ks.cfg (#1227939) (bcl) -- strip spaces from extlinux label and default (#1185624) (bcl) -- Report kernel failures during kickstart tests. (clumens) -- Make sure unicode in kickstart works. (dshea) -- Set the window icon (dshea) -- Only run space check in TUI if spokes are complete. (#1279413) - (sbueno+anaconda) -- Allow a user's primary group to be created in --groups (#1279041) (dshea) -- Remove uses of broad-except. (dshea) -- Add a test for all that container minimization stuff. (clumens) -- Use the partition command in one of the kickstart_tests. (clumens) -- Don't clear the _currentIsoFile if another iso was selected (bcl) -- makeupdates: Include utils/handle-sshpw (bcl) -- Add --sshkey to kickstart sshpw command (#1274104) (bcl) -- Split exception description from exception traceback (jkonecny) -- Show DNF exception instead of silent exit (jkonecny) -- Combine results from all gettext_tests into one log file (atodorov) -- Try to run make ci with real translations. (dshea) -- Untranslate undisplayed TreeView column headers. (dshea) -- Add a test for hidden translatable strings (dshea) -- Add the translated string to markup error messages. (dshea) -- Test glade translations by default (dshea) -- Change the way glade tests are run. (dshea) -- Remove the accelerator test. (dshea) -- Add the test lib directory to $PYTHONPATH in the commit hook (dshea) -- network: create ifcfg files in tui if needed (#1268155) (rvykydal) -- Do not limit ONBOOT default setting to url and nfs installation methods - (#1269264) (rvykydal) -- ibft: fix setting dracut boot args for static ibft nic configuration - (#1267526) (rvykydal) -- network: Don't set --device link default for hostname only network cmd - (#1272274) (rvykydal) -- network: assume --device=link as default also for ks on hd (#1085310) - (rvykydal) -- network: use ibftx interface for iSCSI from iBFT in dracut (#1077291) - (rvykydal) -- network: add s390 options to default ifcfg files (#1074570) (rvykydal) - -* Fri Nov 06 2015 Brian C. Lane - 24.6-1 -- Fix a pylint error in the previous commits. (clumens) -- Honor ANACONDA_WIDGETS_OVERRIDES (atodorov) -- Load anaconda-gtk.css from ANACONDA_DATA if specified (atodorov) -- Use the correct path for ui categories (atodorov) -- Typo fix, it's ANACONDA_WIDGETS_DATA not ANACONDA_WIDGETS_DATADIR (atodorov) -- Allow wired network properties more grid space. (dshea) -- Improve language selection at low resolutions. (dshea) -- Make reclaim work with small screens and big labels (dshea) -- allow repo with only a name if it's a pre-defined one (#1277638) (awilliam) -- Only raise thread exceptions once (#1276579) (bcl) -- Use py3.4 crypt and salt (bcl) -- Be more careful with incomplete device types (#1256582) (dshea) -- Fix an import error in rpmostreepayload.py. (clumens) -- Fix Testing docs inclusion in Sphinx (bcl) -- Ignore interfaces with invalid VLAN IDs. (dshea) -- Cleaner logging of .treeinfo return conditions in dependant function. - (riehecky) -- Update link to upstream kickstart docs (opensource) -- rpmostreepayload: Also unmount internal mounts during shutdown (walters) -- rpmostreepayload: Fix two issues with mounting (walters) -- Add a README for kickstart tests. (clumens) -- Make the documentation match the environment variable. (clumens) -- Check that cache PVs (if any) are in the VG the LV belongs to (#1263258) - (vpodzime) -- Fix the alignment of the "Label" label in custom (dshea) -- Use unsafe caching during kickstart tests. (clumens) - -* Wed Oct 28 2015 Brian C. Lane - 24.5-1 -- Improve install space required estimation (#1224048) (jkonecny) -- Update the on-disk snapshot of storage when adv. disks are added (#1267944) - (vpodzime) -- Check that ipv6 kickstart outputs the right ip= (dshea) -- Change a variable name for pylint. (dshea) -- Do not run time_initialize for image and directory installations (#1274103) - (bcl) -- Remove unused properties (dshea) -- Do not modify the kickstart user data until apply() (dshea) -- Make AdvancedUserDialog.run() more readable (dshea) -- Improve the behavior of the home directory input. (dshea) -- Stop setting inappropriate properties in ksdata. (dshea) -- Update the password strength bar during the password strength check. (dshea) -- Remove unnecessary grab_focus and set_sensitive calls (dshea) -- Use signal handlers in the user spoke more sensibly. (dshea) -- Fix potential issues with the username guesser. (dshea) -- Make kickstart tests growing LVs stricter (vpodzime) -- Point coverage.py to the full path of pyanaconda/ (atodorov) -- Don't set BOOTPROTO= when it isn't set (jbacik) -- Pass strings to blockdev.dasd_format, not a DASDDevice object. (#1273553) - (sbueno+anaconda) -- Revert "Use yum to install the mock buildroot for now." (dshea) -- decode package name for /etc/sysconfig/kernel (RHBZ #1261569) (awilliam) -- Add tests for the more complicated command line options (dshea) -- Store fewer kinds of things in the dirinstall option. (dshea) -- Fix the parsing of selinux=0 (#1258569) (dshea) -- Include a local $ANACONDA_DATADIR in the test environment. (dshea) -- Move the command line arguments to anaconda_argparse. (dshea) -- Don't crash while logging binary output. (dshea) -- Decode program output even if there is no output (#1273145) (dshea) -- Add a test for _run_program with binary output (dshea) -- Test execWithCapture when the command outputs nothing. (dshea) -- Fix a long line in kickstart_tests/functions.sh. (clumens) -- Merge pull request #414 from vpodzime/master-lvm_log (vpodzime) -- Save the lvm.log Blivet may produce (vpodzime) - -* Fri Oct 16 2015 Brian C. Lane - 24.4-1 -- Hide the places sidebar in the ISO chooser widget. (dshea) -- Use GtkResponseType values in the iso chooser dialog (dshea) -- Do not use deprecated getDevicesByInstance method (vtrefny) -- By default, skip those kickstart tests we know to be failing. (clumens) -- Fix pylint unused import (jkonecny) -- network: handle bridge device appearing before its connection (#1265593) - (rvykydal) -- Use $KSTEST_URL in tests that still had dl.fp.o hardcoded. (dshea) -- Support CONNECT in the test proxy server. (dshea) -- Extract the file used by liveimg as a prereq (dshea) -- Convert the proxy script to a prereq. (dshea) -- Add a prereqs function to kickstart tests. (dshea) -- Fix traceback when trying to create list of unformatted DASDs. (#1268764) - (sbueno+anaconda) -- network: handle missing connections of a device configured in GUI better - (rvykydal) -- network: don't set NM_CONTROLLED=no for root on SAN. (rvykydal) -- Add support for other systemd units to kickstart service command (bcl) -- Merge pull request #388 from wgwoods/dd-in-initrd-fix (wwoods) -- Set the password checkbox for empty kickstart passwords. (dshea) -- Do not set the password input text with unencrypted passwords. (dshea) -- Install input checks before modifying the user GUI (#1256065) (dshea) -- Fix a lying error message in style_guide.py (dshea) -- Use "Enter" instead of "Return" for the keyboard key. (dshea) -- New Anaconda documentation - 24.3 (bcl) -- Include missing test files and scripts in Makefile.am/tarball (atodorov) -- dracut: accept inst.dd=[file:]/dd.iso (#1268792) (wwoods) -- Do not override StorageChecker.errors in StorageSpoke (#1252596) (vtrefny) -- Lookup IPv6 address without brackets (#1267872) (bcl) -- Mangle the boot device differently for systemd (#1241704) (dshea) -- Fail the media check if the systemd service failed to start. (dshea) - -* Fri Oct 02 2015 Brian C. Lane - 24.3-1 -- Properly translate c-to-continue on the root selection screen (mkolman) -- Check minimal memory requirements properly (#1267673) (jstodola) -- Allow users to be created with an existing GID. (dshea) -- Add a test for creating a user with an existing GID. (dshea) -- Add tests for gids embmedded in the user groups list. (dshea) -- Allow the kickstart --groups list to specify GIDs. (dshea) -- Add a --groups argument to the user ks test. (dshea) -- Fix the locale pattern packages-instlangs-3 looks for. (dshea) -- Raise an error if osimg cannot be found (#1248673) (bcl) -- Use the bootloader raid levels for bootloader installation (#1266898) (bcl) -- Use otps.display_mode during early startup (#1267140) (mkolman) -- Mount stage2 cdrom after running driver-updates (#1266478) (bcl) -- Get rid of an unused import in the user spoke. (clumens) -- Log crashes from the signal handler. (dshea) -- Save a core file when anaconda crashes. (dshea) -- Keep environment selection when reentering the software spoke (#1261393) - (mkolman) -- Only show the user spoke if no users are specified in kickstart (#1253672) - (mkolman) -- Fix 'cat: /tmp/dd_disk: No such file or directory' (#1251394) (jkonecny) -- Do not display curl 404 errors that can be safely ignored (vtrefny) -- Catch blkid failure in driver-updates (#1262963) (bcl) -- Add kickstart tests for %%packages --instLangs (dshea) -- Do not display markup in showDetailedError. (dshea) -- Skip OEMDRV if interactive DD is requested (#1254270) (bcl) -- Drivers are simply under /run/install/DD-x/ (#1254270) (bcl) -- Fix branding when iso is downloaded from nfs or hd (#1252756) (jkonecny) -- Use yum to install the mock buildroot for now. (dshea) -- Rename the gettext tests (dshea) -- Bring back the KSTEST_HTTP_ADDON_REPO substitution in nfs-repo-and-addon.sh - (clumens) -- Run substitution checks on the right kickstart file. (clumens) -- Tell gettext that anaconda is not a GNU package. (dshea) -- Ignore environment modification warnings in docs/conf.py (dshea) -- Check for unsubstituted strings before running a test. (dshea) -- Autopart use 90%% of disk capacity for required space compare (#1224048) - (jkonecny) -- Fix include packages install size when downloading on root (#1224048) - (jkonecny) -- Enable and improve the check for swap LV size in LVM cache kickstart tests - (vpodzime) -- make-sphinx-docs: Add modules needed to document tests (bcl) -- Add test documentation (atodorov) -- Fix how the reqpart test checks for /boot, again. (clumens) -- Add a way to get default settings when running the kickstart_tests. (clumens) -- Change how we ignore non-tests in kickstart_tests. (clumens) -- Various fixes to substitution strings in kickstart_tests. (clumens) -- Move kickstart_test .ks files to .ks.in. (clumens) - -* Fri Sep 11 2015 Brian C. Lane - 24.2-1 -- Handle driver rpms retrieved via network (#1257916) (bcl) -- Fix the types passed to chown_dir_tree (#1260318) (dshea) -- Add a test for home directory reuse (dshea) -- Use MDRaidArrayDevice.members instead of .devices (dshea) -- Make sure anaconda reads in ks file from OEMDRV device. (#1057271) - (sbueno+anaconda) -- Try to deal with expected errors from devicetree.populate (#1257648) - (vpodzime) -- Revert "Temporarily disable generating a coverage report." (clumens) -- Fix a DBus InvalidProperty handling (jkonecny) -- Fix another bash syntax problem in kickstart-genrules.sh (#1057271) - (sbueno+anaconda) -- Add a test for the rootpw kickstart command (dshea) -- Add tests for setRootPassword (dshea) -- Add a /boot partition to the reqpart test. (clumens) -- Fix up a statement that's not assigned to anything. (clumens) -- Temporarily disable generating a coverage report. (clumens) -- Don't try to concatenate a list with a string (#1252444) (mkolman) -- Activate coverage for tests executed with sudo (atodorov) -- set sysroot correctly when setting root password (#1260875) (awilliam) -- Add a test for kickstarts that %%include a URL (dshea) -- Add missing python dependencies for requests. (#1259506) (dshea) -- Serve the http addon repos from the test tmpdir (dshea) -- Make make-addon-pkgs easier to use from within a test (dshea) -- Add a simple http server for use in kickstart tests. (dshea) -- Add a script to print an IP address for the host. (dshea) -- Add a cleanup hook that can be defined by kickstart tests (dshea) -- Move kickstart test support files into a separate directory. (dshea) -- Fix a python3 related error in the pre-commit hook (dshea) -- network: gui spoke TODO cleanup (rvykydal) -- libnm in spoke: add missing connection for eth device with Configure - (rvykydal) -- libnm in spoke: allow adding missing connection for eth device externally - (rvykydal) -- libnm in spoke: wait for valid state of added device before adding to list - (rvykydal) -- libnm in spoke: use libmn objects instead of names an uuids (device on/off) - (rvykydal) -- libnm in spoke: to check if device is activated just use its object - (rvykydal) -- libnm in spoke: use connnection objects instead of uuids (edit connection) - (rvykydal) -- libnm in spoke: refresh early when device is added (rvykydal) -- libnm in spoke: use connection object instead of uuid (DeviceConfiguration) - (rvykydal) -- libnm in spoke: share nm client in standalone and normal spoke (rvykydal) -- libnm in spoke: add enterprise wpa connection using libnm client (rvykydal) -- libnm in spoke: use AccessPoint object in place of ssid bytearray (rvykydal) -- libnm in spoke: delete connection using libnm client (rvykydal) -- libnm in spoke: replace python-dbus workaround calls for ap security flags - (rvykydal) -- libnm in spoke: call get_data() on ap.get_ssid() result to get ssid bytes - (rvykydal) -- libnm in spoke: showing ip configuration of a device (rvykydal) -- libnm in spoke: NMClient -> NM.Client (rvykydal) -- libnm in spoke: gi.NetworkManager -> gi.NM (rvykydal) -- libnm in spoke: Revert "Fix crash when new device appear in Welcome screen - (#1245960)" (rvykydal) -- libnm in spoke: Revert "Fix crash when connections are changing (#1245960)" - (rvykydal) -- Add an ignoredisk --drives= test. (clumens) -- Add a test for the reqpart command. (clumens) -- Grab anaconda.coverage on tests that reimplement validate(). (clumens) -- Install driver-updates (dshea) -- Fix a typo in service enablement in kickstart.py. (clumens) -- Get rid of the extraneous cats and greps in user.ks. (clumens) -- Add sshkey testing to the user kickstart_test. (clumens) -- Add a kickstart test in Arabic. (clumens) -- Verify Initial Setup services are present before turning them ON/OFF - (#1252444) (mkolman) -- Don't crash if the Japanese PC-98 keyboard is selected (#1190589) (mkolman) -- Report on all local files and exclude what we don't need instead of - explicitly including paths we may not be aware of. (atodorov) -- Change "failed to download" messages from critical to warning. (clumens) -- getcode -> status_code in a live payload error message. (clumens) -- Fix a bash error in kickstart-genrules.sh (#1057271) (sbueno+anaconda) -- specify if=virtio,cache=none for VM drives (atodorov) -- update the test b/c latest anaconda doesn't allow weak passwords (atodorov) -- Specify format=raw to avoid warning from qemu (atodorov) -- update for Python3 nose (atodorov) -- Add a services.sh file to match the existing services.ks. (clumens) -- Add types to all existing kickstart tests. (clumens) -- Add the ability to mark kickstart tests with a type. (clumens) -- Run nm-connection-editor with the --keep-above flag (#1231856) (mkolman) - -* Mon Aug 31 2015 Brian C. Lane - 24.1-1 -- Add a test for the user and group creation functions. (dshea) -- Get rid of libuser. (#1255066) (dshea) -- s/$releasever/rawhide/ (clumens) -- LVM on RAID kickstart test (vpodzime) -- unbuffered read in python3 only works for binary (bcl) -- don't crash if no environment set in interactive (#1257036) (awilliam) -- network: compare with ssid bytes, not str (rvykydal) -- Add dependencies for running the tests/gui tests (atodorov) -- Fix first run environment setup in software spoke (#1257036) (jkonecny) -- Stop pretending liveinst+rescue is supported (#1256061). (clumens) -- Defer to Fedora distro-wide settings for password strength (#1250746) (dshea) -- New Anaconda documentation - 24.0 (bcl) -- Do a better job reporting failures from kickstart_tests. (clumens) -- Preserve coverage results from running the kickstart_tests. (clumens) - -* Mon Aug 24 2015 Brian C. Lane - 24.0-1 -- Remove from the docs repo=hd installation with installable tree (jkonecny) -- Fix a race between a window continuing and the next starting (#1004477) - (dshea) -- Start hubs with the buttons insensitive. (dshea) -- Do not replace the standard streams if not necessary. (dshea) -- Fix inst.repo=hd: is not working (#1252902) (jkonecny) -- Kickstart: Added SELinux test. (kvalek) -- Kickstart tests related to SELinux. (kvalek) -- Package install and debug message logging. (kvalek) -- Don't crash if incorrect environment is set in kickstart (#1234890) (mkolman) -- Fix I/O issues when anaconda is started without a locale. (dshea) -- Move locale environment logic into localization.py (dshea) -- network: fix configuring team in kickstart pre (#1254929) (rvykydal) -- Merge pull request #311 from atodorov/add_local_coverage (clumens) -- Merge pull request #308 from atodorov/rawhide_missing_deps (clumens) -- Enable test coverage in CI (atodorov) -- Fix the single-spoke TUI message for Python 3. (dshea) -- Merge pull request #291 from atodorov/update_coverage_switch (clumens) -- Add missing requirements (atodorov) -- Add basic kickstart tests for LVM Thin Provisioning (vpodzime) -- Use the default mirrorlist instead of fixed repo URL in kickstart tests - (vpodzime) -- Destroy the keyboard layout dialog when finished (#1254150) (dshea) -- Do not encode the geoloc timezone to bytes (#1240812) (dshea) -- use inst.debug as alternative option to start coverage (atodorov) - -* Mon Aug 17 2015 Brian C. Lane - 23.20-1 -- Skip source url checks when network is off (#1251130) (bcl) -- Don't set net.device to link if there is no ksdevice (#1085310) (bcl) -- Reading carrier while link is down raises IOError (#1085310) (bcl) -- Don't write nfs repos to the target system (#1246212) (bcl) -- Make sure username entered in TUI if create a user chosen. (#1249660) - (sbueno+anaconda) -- Write the empty dnf langpacks.conf to the right directory (#1253469) (dshea) -- Add pyanaconda test for network.check_ip_address (jkonecny) -- Replace IPy package by ipaddress (jkonecny) -- Correctly check return code when running rpm from makeupdates (mkolman) -- Fix crash when new device appear in Welcome screen (#1245960) (jkonecny) -- Fix crash when connections are changing (#1245960) (jkonecny) -- Make LVM cache kickstart tests more robust (vpodzime) -- product.img buildstamp should override distribution buildstamp (#1240238) - (bcl) -- On incomplete ks, don't automatically proceed with install. (#1034282) - (sbueno+anaconda) -- Update the translation doc with zanata branching incantations. - (sbueno+anaconda) -- Merge pull request #287 from kparal/patch-1 (clumens) -- boot-options.rst: add a note about nfsiso (kamil.paral) -- Few fixes and amendments for the boot_options.rst file (vpodzime) -- Prevent issues with encrypted LVs on renamed VGs (#1224045) (vpodzime) -- Create and use snapshot of on-disk storage with no modifications (#1166598) - (vpodzime) -- Implement the class for storage snapshots (vpodzime) -- Prevent any changes in the StorageSpoke if just going back (vpodzime) -- Make StorageSpoke's on_back_clicked less complicated (vpodzime) -- Add kickstart tests for the LVM cache kickstart support (vpodzime) -- Disable packages-multilib, for now. (clumens) -- Make sure the liveimg test shuts down when it finishes. (clumens) -- Change how success is checked for the basic-ostree test. (clumens) - -* Fri Aug 07 2015 Brian C. Lane - 23.19-1 -- Add basic support for LVM cache creation in kickstart (vpodzime) -- Use labels for the rest of the non-autopart test results. (dshea) -- Use a disk label to find the filesystem for escrow results (dshea) -- Use someone else's code for PID file management. (dshea) -- Prevent incomplete translations from making the TUI unusable (#1235617) - (mkolman) -- Apply the environment substitutions more liberally in nfs-repo-and-addon - (dshea) -- Use stage2=hd: instead of stage2=live: (dshea) -- Add test for liveimg kickstart command (bcl) -- Fix pre-install script execution (bcl) -- test pre-install kickstart section (bcl) -- Use sys.exit() instead of the exit() created by site.py. (dshea) -- Call ipmi_report before sys.exit (dshea) -- Add a test for proxy authentication (dshea) -- Add optional authentication to the proxy server (dshea) -- Add more tests to proxy-kickstart (dshea) -- Show an alternative prompt if a hub contains only a single spoke (#1199234) - (mkolman) -- Add few docs and improvement in check_ip_address (jkonecny) -- Check whether files actually contain translatable strings. (dshea) -- Add specific error string to TUI user dialog (#1248421) (bcl) -- Make EditTUIDialog error generic (#1248421) (bcl) -- Fix and expand nfs-repo-and-addon.ks (dshea) -- Added a script to make the packages used by nfs-repo-and-addon (dshea) -- Implement the rest of the repo options in dnfpayload. (dshea) -- Fix kickstart test for bond interface creation (jkonecny) - -* Fri Jul 31 2015 Brian C. Lane - 23.18-1 -- Move the proxy server script into a common file. (dshea) -- Use python3 for the proxy server and remove python2 compatibility (dshea) -- makePickle now needs to return bytes (bcl) -- gi.require_version raises ValueError (bcl) -- Remove duplicate signal setup block (bcl) -- Fix three bugs discovered by driverdisk-disk.ks (clumens) -- Fix error with OEMDRV ks auto-load check. (#1057271) (sbueno+anaconda) -- Make sure TUI is readable for non-latin languages (#1182562) (mkolman) -- Equalize capacity & mount point entries (#1212615) (dshea) -- Disable GRUB os_prober on POWER (#1193281) (rmarshall) -- Cancel Container Edit Sensitizes Update (#1168656) (rmarshall) -- Fix SoftwareSpoke._kickstarted. (dshea) -- Disable a Pylint false-positive (#1234896) (mkolman) -- Add support for autostep and --autoscreenshot (#1234896) (mkolman) -- Escape \'s in doc strings (dshea) -- Ellipsize the file system type combo box (#1212615) (dshea) -- Add graphviz to make-sphinx-doc script (jkonecny) -- Remove many of a documentation compilation errors (jkonecny) -- Add class diagrams to existing spokes and hubs (jkonecny) -- Add class diagram settings to documentation (jkonecny) -- Fix the UnusuableConfigurationError dialog (#1246915) (dshea) -- Chase pygobject's stupid moving target (dshea) -- Add missing translation contexts (dshea) -- Actually translate the container type labels (dshea) -- Check whether a translated string requires a context or comment. (dshea) -- Clean up the temporary pools virt-install makes. (clumens) -- Return the same object for repeated calls to __get__ (#1245423) (dshea) -- Use sys.exit instead of os._exit. (clumens) -- Add parentheses around the IPV6 regex fragment. (dshea) -- Add tests for IPv6 literals in URLs (dshea) -- Modify Installation Source Proxy Label (#11688554) (rmarshall) - -* Fri Jul 24 2015 Brian C. Lane - 23.17-1 -- Fix Initial PPC PReP Boot Selector Name (#1172755) (rmarshall) -- Require a newer version of pykickstart (vpodzime) -- Use dictionaries is thread-safe manner. (dshea) -- Merge pull request #234 from wgwoods/master (wwoods) -- Auto-load ks.cfg if OEMDRV volume available. (#1057271) (sbueno+anaconda) -- Check the encrypt checkbox when encrypted specified in KS (vtrefny) -- Do not raise KickstartValueError for missing passphrase (vtrefny) -- Ask for encryption passphrase when not specified in ks (#1213096) (vtrefny) -- dracut: minor cleanup (wwoods) -- dracut: fix missing messages for inst.ks=cdrom (wwoods) -- Wait forever for kickstarts on CDROM (#1168902) (wwoods) -- Use abs_builddir instead of builddir so paths will look more reasonable. - (clumens) -- Add a new makefile target that does everything needed for jenkins. (clumens) -- Merge pull request #228 from AdamWill/logind (dshea) -- Fix crash when mirrorlist checkbox is checked (jkonecny) -- Fix crash when user start typing proxy credentials (jkonecny) -- Check repository URL before leaving Source Spoke (jkonecny) -- Add IDs to identify addon repositories (jkonecny) -- Repositories can be checked without a selection (jkonecny) -- Consolidate the language environment variables. (dshea) -- Change the generated API indices slightly (dshea) -- Ignore "mountpoint" used a format specifier (dshea) -- filesystems -> file systems, per the style guide (dshea) -- Properly parameterize a translated string (dshea) -- Fix pylint errors in rescue.py. (dshea) -- Remove unused imports (dshea) -- Remove text.py from spec file (#965985) (sbueno+anaconda) -- Merge pull request #220 from AdamWill/1243962 (dshea) -- Fix adding 'boot=' option in FIPS mode (vtrefny) -- anaconda.target: Wants systemd-logind.service (#1222413) (awilliam) -- Remove the last usage of newt and get rid of it as a dependency (#965985) - (sbueno+anaconda) -- Enable anaconda to use the new rescue mode. (#965985) (sbueno+anaconda) -- Get rid of unnecessary constants in constants_text. (#965985) - (sbueno+anaconda) -- Get rid of some unnecessary files. (#965985) (sbueno+anaconda) -- Display verbose packaging errors to the user (bcl) -- Show source errors from refresh method (bcl) -- Fix the validate functions in the btrfs kickstart_tests. (clumens) -- Connect kickstart lang data to dnf-langpacks (#1051816) (dshea) -- Add simple_replace config file function (bcl) -- Remove some vestiges of the old packaging module (dshea) -- Remove window boot block detection functions. (dshea) -- Remove iutil.xprogressive_delay. (dshea) -- Simplify iutil.mkdirChain. (dshea) -- Decode wifi SSIDs into strings. (#1240398) (dshea) -- Actually use the temp directory so test files get cleaned up (dshea) -- Disable the output from rpmbuild (dshea) -- Remove stray references to python2. (dshea) -- Fix possible to start installation without network (#1221109) (jkonecny) -- Fix 'q' (to quit) do not work in TUI hub (jkonecny) -- act on the right objects when stripping URL protocols (#1243962) (awilliam) -- Fix 'App' object has no attribute 'queue' (#1243316) (jkonecny) - -* Thu Jul 16 2015 Brian C. Lane - 23.16-1 -- fix storage writing for live and ostree installs (#1236937) (awilliam) -- Add O_CREAT to the open flags when extracting rpm files. (dshea) -- Move ostree gobject version check next to the import (#1243543) (bcl) -- Remove rpmfluff from the buildrequires. (dshea) -- Only import readline if readline is necessary. (dshea) -- use the right baseurl in run_install_test.sh. (clumens) -- Don't copy the environment when starting metacity. (dshea) -- Fix the use of a temporary file in SimpleConfig.write (dshea) -- Add a test for SimpleConfig.write(use_tmp=True). (dshea) -- Remove an unnecessary chmod when creating chrony.conf (dshea) -- Fix some bad uses of chmod. (dshea) -- Add a function to open a file with specific permission bits (dshea) -- Don't ask to start vnc if user specifies text mode. (#1202277) - (sbueno+anaconda) -- New Anaconda documentation - 23.15 (bcl) -- Add a helper for building Sphinx docs using mock. (bcl) -- Update Sphinx configuration for python3 (bcl) -- Running without a GUI can also raise ValueError in errors.py (bcl) -- parse-kickstart_test.py: fix driverdisk_test() (wwoods) -- Fix the spelling of "version" (dshea) - -* Mon Jul 13 2015 Brian C. Lane - 23.15-1 -- Some dracut modules anaconda needs have been split into their own package. - (clumens) -- User operation kickstart tests. (kvalek) -- Kickstart tests for UTC and LOCAL hwclock. (kvalek) -- Kickstart firewall tests. (kvalek) -- Fix Repository New_Repository has no mirror or baseurl (#1215963) (jkonecny) - -* Fri Jul 10 2015 Brian C. Lane - 23.14-1 -- Catch blivet formatDevice ValueError in custom (#1240226) (bcl) -- There's now a python3-rpmfluff, so revert this. (clumens) -- Fix a couple other pylint problems in the driver disk tests. (clumens) -- Merge pull request #194 from wgwoods/master (wwoods) -- dracut: fix boot failure waiting for finished/dd.sh (wwoods) -- Use builddir instead of srcdir to find the dd utils (dshea) -- Fix the dd_test for python3. (dshea) -- Fix %%files to deal with compiled python3 modules (dshea) -- Add a bunch of gi.require_version calls (dshea) -- Temporarily disable the error about not importing rpmfluff. (clumens) -- Don't try to iterate over threads directly in wait_all. (clumens) -- Update the btrfs kickstart tests to use functions.sh. (clumens) -- Merge pull request #182 from wgwoods/dd-refactor (wwoods) -- driver_updates: fixes from patch review (wwoods) -- Don't be too picky about what name is --device=link (dshea) -- Ignore stderr output from parse-kickstart. (dshea) -- Add an option to execReadlines to filter out stderr. (dshea) -- Ignore interruptible system calls in the dd test (dshea) -- Fix an undefined variable in writeStorageLate (dshea) -- Connect zfcp entries to the discovery buttons (dshea) -- Connect iscsi activations to buttons (dshea) -- Connect the dasd number entry to the discovery buttons. (dshea) -- Add keyboard layouts on the row-activated signal. (dshea) -- Connect dialog inputs to default actions. (dshea) -- Remove unnecessary GtkNotebooks. (dshea) -- Re-save some dialog glade files. (dshea) -- Merge pull request #181 from wgwoods/master (wwoods) -- dd-refactor: dracut + build bits (wwoods) -- Add kickstart test for RAID1 (bcl) -- pass PYTHONPATH to the kickstart test framework (bcl) -- Write servers to chronyd.conf even if it's off (#1197575) (wwoods) -- Refresh advanced disks after disk summary dialog (#1226354) (bcl) -- parse-kickstart: just emit 'inst.dd=XXX' for driverdisk (wwoods) -- parse-kickstart: pylint fixes (wwoods) -- dd-refactor: new driver_updates.py + tests (wwoods) -- payload: fix driverdisk repos (wwoods) -- dracut: fix boot with inst.ks and no inst.{repo,stage2} (#1238987) (wwoods) -- Use the most recent versions of the btrfs, logvol, part, and raid commands. - (clumens) -- Allow /boot partition on iscsi with ibft (#1164195) (jkonecny) -- Add kickstart tests to test btrfs installation (vtrefny) -- Fix broken test by infiniband patch (#1177032) (jkonecny) - -* Thu Jul 02 2015 Brian C. Lane - 23.13-1 -- Add a switch for the Airplane Mode label (dshea) -- Connect labels with keyboard accelerators to a widget (dshea) -- Add a test for dangling keyboard accelerators. (dshea) -- Use pocketlint for translation and markup checking (dshea) -- Flatten the glade test directory. (dshea) -- Add support for specifying arbitrary mkfs options. (clumens) -- Fix kickstart install with infiniband (#1177032) (jkonecny) -- anaconda-dracut: Fix sysroot mount for netroot (#1232411) (bcl) -- Add RAID swaps to /etc/fstab (#1234469) (bcl) -- network: catch another race when calling dbus methods on invalid devices - (rvykydal) -- network: GUI, add connection even when virtual device activation failed - (#1179276) (rvykydal) -- Fix IP / hostname mismatches when showing VNC server address (#1186726) - (rvykydal) -- Check also ipv6 default routes when looking for onboot=yes device (#1185280) - (rvykydal) -- Merge pull request #157 from wgwoods/master_dd_fixes (wwoods) -- Do not check dependencies on invalid payloads (dshea) -- network: don't set onboot=False for default autoconnections (#1212009) - (rvykydal) -- Fix the types used to write anaconda-tb-all.log (dshea) -- dd: drop unnecessary archive_read_data_skip (wwoods) -- dd_extract: -l should not extract modules+firmware (wwoods) -- dd: fix permissions on extracted files (#1222056) (wwoods) -- tests: add dd_tests (wwoods) - -* Fri Jun 26 2015 Brian C. Lane - 23.12-1 -- Revert "Add an optional conditional to progress_report." (bcl) -- Fix inconsistencies in the payload messages. (dshea) -- Fix install-requires and install-buildrequires (dshea) -- anaconda-dracut: Mount /dev/mapper/live-rw (#1232411) (bcl) -- Eliminate some false test results when running glade tests. (atodorov) -- Move the knowledge about network packages into ksdata.network. (clumens) -- Add an optional conditional to progress_report. (clumens) -- Move the big block of late storage writing out of install.py. (clumens) -- The attribute is named ostreesetup.nogpg. (clumens) -- Use the index in grubenv (#1209678) (bcl) -- Do not raise an exception on EINTR from os.close or os.dup2 (dshea) -- Merge pull request #154 from mulkieran/master-959701 (mulkieran) -- Improve focus behavior in the advanced user dialog (dshea) -- Re-save advanced_user.glade (dshea) -- Depsolve kickstarted packages on the summary hub (#961280) (dshea) -- Add a kickstart test for %%packages --ignoremissing (dshea) -- Remove descriptions for RAID levels (#959701) (amulhern) -- No kexec-tools on aarch64 (bcl) - -* Fri Jun 19 2015 Brian C. Lane - 23.11-1 -- Do not import iutil from flags (dshea) -- Ignore EINTR errors in files unlikely to encounter them (dshea) -- Reimplement the open override for the dracut scripts (dshea) -- Wrap the only non-open call found by the new pocketlint checks (dshea) -- Redefine open to retry on EINTR (dshea) -- Remove __future__ imports (dshea) -- Use python 3's OSError subclasses instead of checking errno (dshea) -- Allow kwargs in eintr_retry_call (dshea) -- Remove explicit uses of /dev/null (dshea) -- Do not retry calls to close or dup2 (dshea) -- Remove another function from isys (dshea) -- Make dialogs behave better with timed input validation (dshea) -- Fix the password/confirm checks to work with delayed validation (dshea) -- Move the URL protocol removal out of the input check (dshea) -- Remove the vestigal capslock label from the password spoke (dshea) -- Re-saved a few glade files (dshea) -- Run set_status unconditionally from update_check_status (dshea) -- Do not run input checks for every keystroke of input (#1206307) (dshea) -- Add a method to execute timed actions early (dshea) -- Use comps.environments instead of comps.environments_iter (#1221736) (dshea) -- Merge pull request #83 from mulkieran/master-requires (mulkieran) -- Only show supported autopart choices in choices combo. (amulhern) -- Strip out device types that blivet is not able to support. (amulhern) -- Update blivet required version. (amulhern) -- Fix nfs4 stage2 and repo handling (#1230329) (bcl) -- Update upd-kernel so that it actually works (#1166535) (bcl) -- Fix passing ,nfsvers=3 to dracut (#1161820) (bcl) -- Require the python3 version of iscsi-initiator-utils (dshea) -- Fix the pylint pre-commit hook for python3 and pocketlint (dshea) -- Fix a type check to work with python 3. (dshea) -- Do not log Xorg output to tty5 (dshea) - -* Wed Jun 10 2015 Brian C. Lane - 23.10-1 -- Deal with encrypted partitions not being readable by virt-cat. (clumens) -- Make use of the restore_signals Popen argument (dshea) -- Don't allow /boot on iSCSI. (#1164195) (sbueno+anaconda) -- Merge pull request #127 from mulkieran/master-kickstart (mulkieran) -- Actually distribute the clickable message test, too (dshea) -- Fix disk argument passing to virt-cat in the ostree test. (clumens) -- Relabel all password and group files in %%post (#1228489) (dshea) -- Deal with the order of ifcfg files not being guaranteed. (clumens) -- Add a __init__.py to fix up an error when running iutil_test.py. (clumens) -- Actually run the clickable message test (dshea) -- Add a false positive to pylint checking for S390Error. (clumens) -- Let the excludedocs test pass if there are only directories left. (clumens) -- Allow successful kstest results to provide more details. (clumens) -- The escrow_cert test cannot use autopart. (clumens) -- Don't warn on PyInit__isys being unused. (clumens) -- Test that root LV is encrypted. (amulhern) -- Deal with subprocess returning bytes in tests/lib/filelist.py, too. (clumens) -- Make anaconda+python3+pocketlint work. (clumens) -- Start using our new shared pylint framework in anaconda. (clumens) -- Remove our extra pylint checkers. (clumens) -- Remove a duplicate libselinux-python3 requires. (clumens) -- Run makeupdates with Python 2 for now (mkolman) -- Don't use the _safechars private property (#1014220) (mkolman) -- Make sure directory size is returned as int (#1014220) (mkolman) -- Only warn about missing yum-utils (#1014220) (mkolman) -- Make sure set_system_time() gets an integer (#1014220) (mkolman) -- Make sure the column number in TUI is an integer (#1141242) (mkolman) -- Python 3 compatible sorting fixes (#1014220) (mkolman) -- Make version comparison Python 3 compatible (#1014220) (mkolman) -- Don't apply numeric comparison on None (#1141242) (mkolman) -- Avoid comparing None to an integer (#1141242) (mkolman) -- Handle urllib split (#1014220) (mkolman) -- Don't try to decode strings (#1014220) (mkolman) -- Rename function attributes (#1014220) (mkolman) -- Replace raw_input() with input() (#1014220) (mkolman) -- Make iterators and their usage Python 3 compatible (#1014220) (mkolman) -- Convert Python 2 metaclass magic to Python 3 metaclass magic (#1014220) - (mkolman) -- Make the raise syntax Python 3 compatible (#1014220) (mkolman) -- Python 3 no longer does tuple parameter unpacking (#1014220) (mkolman) -- Make isys Python 3 compatible (#1014220) (mkolman) -- Set a correct mode for the tempfile (#1014220) (mkolman) -- Python 3 temp files no longer reflect external changes (#1014220) (mkolman) -- Make print usage Python 3 compatible (#1014220) (mkolman) -- Rename the warnings spoke to warnings_spoke (#1014220) (mkolman) -- Replace list comprehension with for at class level (mkolman) -- Make gettext usage Python 3 compatible (#1014220) (mkolman) -- Do not open tty5 for writing in the "a" mode (#1014220) (vpodzime) -- Do not use pykickstart's RepoData as a key in a dict (#1014220) (vpodzime) -- Do not run repo attrs' checks if they are not set up yet (#1014220) - (vpodzime) -- Don't depend on side effects of map() (#1141242) (mkolman) -- Don't use exceptions' message attribute (#1014220) (vpodzime) -- Addapt to string type changes (#1014220) (mkolman) -- Handle modules returning bytes in Python 3 (#1014220) (mkolman) -- Add and use function that makes sure we work with strings (#1014220) - (vpodzime) -- Handle modules requiring different string types in Python 3 (#1014220) - (mkolman) -- Remove sitecustomize (#1014220) (mkolman) -- Make ASCII conversions Python compatible (#1014220) (mkolman) -- Remove "is Unicode" tests (#1014220) (mkolman) -- Fix ASCII conversion tests (#1014220) (mkolman) -- Return a string when calling a program (#1014220) (mkolman) -- Handle subprocess returning bytes (#1014220) (mkolman) -- Handle latin-1 strings in locale -a output (#1014220) (mkolman) -- Open the VNC password file for binary writing (#1014220) (mkolman) -- Update parse-kickstart for python3 (#1014220) (bcl) -- Update driver-updates for python3 (#1014220) (bcl) -- Update python-deps for python3 (#1014220) (bcl) -- Add a test for parse-kickstart (#1014220) (bcl) -- Make the import Python 3 compatible (#1014220) (mkolman) -- Change configparser and queue imports (#1014220) (mkolman) -- Remove imports from the __future__ (#1014220) (mkolman) -- Use the imp module directly (#1014220) (mkolman) -- Use Python 3 versions of Python dependencies (#1014220) (mkolman) -- Use /usr/bin/python3 in scripts (#1014220) (mkolman) -- Use Python 3 versions of nose and Pylint (#1014220) (mkolman) -- Build the Anaconda widgets for Python 3 (#1014220) (mkolman) -- Update makebumpver for python3 (#1014220) (bcl) -- Fix Kickstart installation without default gateway errors out (jkonecny) -- Fix results checking in a couple ks tests. (clumens) - -* Wed Jun 03 2015 Brian C. Lane - 23.9-1 -- Fix a usage typo in run_once_ks script. (sbueno+anaconda) -- Add kickstart tests for keyboard settings. (sbueno+anaconda) -- Add a kickstart test for lang settings. (sbueno+anaconda) -- Fix a %% call inside _(). (clumens) -- Convert ntp-pools.* to using the new kstest functions and autopart. (clumens) -- Fix up the expected output in parse-kickstart_test.py. (clumens) -- Fix a couple more pylint problems in the s390 code. (clumens) -- Use the adapted Timezone class for kickstart data (vpodzime) -- Add a kickstart test for processing NTP servers/pools configuration - (vpodzime) -- Show error on invalid username attempts in TUI. (#1171778) (sbueno+anaconda) -- Fix dracut reads ksdevice from missing os enviromnent (jkonecny) -- Run kickstart tests through an LMC-like program, not LMC itself. (clumens) -- Move common kickstart_test code out into its own functions.sh file. (clumens) -- Switch to using autopart in the kickstart tests. (clumens) -- Fix a couple pylint errors. (sbueno+anaconda) -- Make anaconda changes necessary for libblockdev s390 plugin. - (sbueno+anaconda) -- Add a kickstart test for lvm with percentage-based sizes. (dlehman) -- Add kickstart test for basic fixed-size lvm layout. (dlehman) -- Add a kickstart test to validate the default fstype. (dlehman) -- Add kickstart test to test bond interface creation (jkonecny) -- Add kickstart test to test vlan creation (jkonecny) -- Fix --device=link and --device not specified (#1085310) (rvykydal) -- Add kickstart test to test hostname (jkonecny) -- Add a /boot to tmpfs-fixed_size.ks. (clumens) -- Fix bad warning message when user set illegal IP (jkonecny) -- Fix bad check of illegal ip address (jkonecny) -- Add a simple tmpfs kickstart test (mkolman) -- Add a kickstart test for escrow packets and backup passphrases (dshea) -- Fix a typo that caused us to discard corrected target sizes. (#1211746) - (dlehman) -- Don't pass anything to ./configure. (dshea) -- Fix a pylint problem in parse-kickstart_test.py. (clumens) -- Fix 0 choice in Language and Storage in TUI mode (jkonecny) -- Update html documentation for new boot-options section (bcl) -- Convert boot-options to ReST and include it in the Sphinx documents. (bcl) - -* Fri May 15 2015 Brian C. Lane - 23.8-1 -- Clean up after processKickstart in parse-kickstart_test.py. (clumens) -- Add support to dnfpayload.py for addon NFS repos. (clumens) -- Fix IndexError: list index out of range (#1219004) (jkonecny) -- Fix a typo in proxy-kickstart.sh that was causing a test time out. (clumens) -- iSCSI Name Validation using regexes (sujith_pandel) -- Add kickstart tests for proxy usage. (dshea) -- In dracut, do not display a warning for network lines with just a hostname. - (clumens) -- Add transport adapters to support ftp and file fetching (dshea) -- Fix for "Kickstart installation fails..." (#1197960) (jkonecny) -- Allow passing kickstart tests to be run on the command line. (clumens) -- Automatically collect environment variables to be passed to ks tests. - (clumens) -- Use isinstance instead of type for doing type checks. (clumens) -- Remove yumpayload.py, its support files, and most references to yum. - (clumens) -- Fix the packages-and-group wildcard exclusion test (dshea) -- Set the GUI-selected environment in the ksdata (#1192100) (dshea) -- Don't crash if the disk model is None (#1215251) (dshea) -- Correct an error message in packages-and-groups-1.ks. (clumens) -- Switch from testing for emacs* to kacst*. (clumens) -- Tests that end in a traceback are failures, not successes. (clumens) -- Don't run run_report.sh from within run_kickstart_tests.sh. (clumens) -- If a kickstart test failed due to a traceback, display that. (clumens) -- Wrap device labels earlier (#1212586) (dshea) -- Remove the angle property from the device label (dshea) -- Get rid of the find button in the filter spoke. (dshea) -- Rearrange filter.glade (dshea) -- Fix errors in the vendor column renderers. (dshea) -- Fix some minor inconsistencies in filter.glade (dshea) -- Fix issues with advanced storage searching. (dshea) -- Remove duplicate entries from search combo boxes (dshea) -- Use named IDs for the filter type combo boxes. (dshea) -- Rearrange filter.glade the way glade wants it now (dshea) -- Add a reporting support script to kickstart tests. (clumens) -- Return a specific error code when a test times out. (clumens) -- Fix indentation in run_one_ks.sh. (clumens) -- Also remove all the fonts in the packages-and-groups-1 test. (clumens) -- Enable the basic-ftp and basic-ftp-yum kickstart tests. (clumens) -- Fix a typo in groups-and-envs-2.ks (clumens) -- Get NTP pools and servers from ksdata for the runtime config (vpodzime) -- Adapt to the new argument list for save_servers_to_config. (clumens) -- Remove the restriction that /boot be below 2TB for grub (#1082331) (dshea) -- Distinguish between NTP pools and servers in GUI (vpodzime) -- Add support for chrony pool directive (mlichvar) -- Add a readme pointing to the documentation (bcl) -- Sphinx docs - use source order (bcl) -- Add html documentation for Anaconda v23.7 (bcl) -- Place html docs under ./docs/html/ (bcl) -- Configure proxy settings for dnf payload (#1211122) (bcl) -- Change online action to change (bcl) -- Check for images/install.img first for netboot (bcl) -- Ignore addon and anaconda sections in handle-sshpw (bcl) -- Ignore %%anaconda section in parse-kickstart (bcl) -- Change of label in iscsi storage spoke (jkonecny) - -* Wed Apr 22 2015 Brian C. Lane - 23.7-1 -- Fix doReqPartition import from autopart (bcl) -- Add support for reboot --kexec kickstart command (bcl) -- Add inst.kexec and --kexec support to reboot with kexec (bcl) -- Add setup_kexec method to prepare the system for a reboot with kexec (bcl) -- Add kickstart %%pre-install section support (bcl) -- Remove the custom help button from the toolbar (bcl) -- Use multiple streams for zRAM instead of multiple devices (vpodzime) -- iscsi: pass rd.* options of devices to be mouted in dracut (#1192398) - (rvykydal) -- Remove the unused productName import from custom_storage_helpers.py. - (clumens) -- Remove the old custom partitioning help dialog (mkolman) -- Implement the new reqpart command. (clumens) -- Sort disks by name when checking disk selection (vpodzime) -- Set both .format's and .originalFormat's passphrase on unlock (vpodzime) -- Make the Encrypt checkbox insensitive for encrypted non-BTRFS devices - (#1210254) (vpodzime) -- Check for Gtk before importing escape_markup (bcl) -- If the network is disabled, also disable the network part of the source - spoke. (#1192104) (clumens) -- Add handling for unusable storage configurations. (dlehman) -- Allow markup in the label/message of DetailedErrorDialog. (dlehman) -- Allow passing an optional button list to showDetailedError. (dlehman) -- Allow kwargs with gtk_action_wait, gtk_action_nowait decorators. (dlehman) -- Fix makeupdates handling of Release: (bcl) -- Make sure we unmount the path we mounted (bcl) -- Fix up one more back_clicked reference that got missed. (clumens) -- Don't unconditionally set ksdata.lang.seen to True (#1209927) (mkolman) -- Reset the back_clicked flag if we stay on the Storage spoke (#1210003) - (vpodzime) -- Mark the back_clicked attribute of the Storage spoke as private (vpodzime) -- TUI pwpolicy setup was supposed to be in __init__ not refresh (#1208607) - (bcl) -- Preserve the order of boot args added by kickstart. (clumens) -- Revert "allow /boot on btrfs subvol or filesystem" (bcl) -- Connect scroll adjustments in the right class (#1206472) (dshea) - -* Thu Apr 02 2015 Brian C. Lane - 23.6-1 -- Enforce sane disk selections. (dlehman) -- Add a test for parse-kickstart (bcl) -- Add --tmpdir to parse-kickstart for testing (bcl) -- Use the correct format for IPMI messages. (clumens) -- Do not use min_luks_entropy with pre-existing devices (#1206101) (dshea) -- Remove the dnf cache directory when resetting the repo (dshea) -- Do not add separators to the addon list when not needed (dshea) -- Only use the instclass environment if it actually exists. (dshea) - -* Fri Mar 27 2015 Brian C. Lane - 23.5-1 -- Mock external module dependencies for readthedocs (bcl) -- Generate the pyanaconda module documentation (bcl) -- Reformat kickstart.rst using better ReST markup (bcl) -- Add some deprecation-related false positives. (clumens) -- Add Sphinx documentation support (bcl) -- Add documentation on %%anaconda kickstart command (bcl) -- Prevent Storage spoke Done button method from multiple launch (jkonecny) -- Prevent spokes from being exited more times. (jkonecny) -- Only depend on pygobject3-base in anaconda-core (#1204469) (mkolman) -- Use proxy when configured for the base repo (#1196953) (sjenning) -- Assume UTC if setting the system time without a timezone (#1200444) (dshea) -- Add boolean as return to ThreadManager.wait (jkonecny) -- Make sure LANG is always set to something (#1201896) (dshea) -- Fix pylint/translation issues from the pwpolicy patches. (clumens) - -* Fri Mar 20 2015 Brian C. Lane - 23.4-1 -- Clean out the mock chroot before attempting to run the rest of the test. - (clumens) -- Implement %%anaconda kickstart section for pwpolicy (bcl) -- Add pwpolicy support to TUI interface (bcl) -- Add pwpolicy for the LUKS passphrase dialog. (bcl) -- Add pwpolicy for the user spoke. (bcl) -- Use pwpolicy for the root password spoke. (bcl) -- Add the text for weak passwords to constants (bcl) -- Add tests with an FTP instrepo (dshea) -- Add kickstart tests for an NFS instrepo and addon repos. (dshea) -- Handle /boot on btrfs for live (#1200539) (bcl) -- rpmostreepayload: write storage config after shared var is mounted (#1203234) - (rvykydal) -- Tweak tmux configuration file (jkonecny) -- Remove --device= from the new kickstart tests. (clumens) -- Add more kickstart-based packaging tests. (clumens) -- Fix enlightbox call in ZFCPDialog. (#1151144) (sbueno+anaconda) -- fix crash with bare 'inst.virtiolog' in boot args (wwoods) -- Do not attempt to set None as a warning (dshea) -- fix inst.ks.sendmac for static ip=XXX (#826657) (wwoods) - -* Fri Mar 13 2015 Brian C. Lane - 23.3-1 -- Only insert strings into the environment (#1201411) (dshea) -- Fix the rescue kernel version list in writeBootLoader (#1201429) (dshea) -- Missing local variable check (omerusta) -- Fix the handling of nfs:// URLs. (dshea) -- Add glob support for the -a/--add option in makeupdates (mkolman) -- White Space fixes (omerusta) -- Put all mock results into the top-level source dir. (clumens) -- Merge pull request #31 from dcantrell/master (david.l.cantrell) -- Require newt-python in anaconda-core (dshea) -- Make merge-pr executable (dshea) -- Display an error for exceptions during GUI setup (dshea) -- Remove unused invisible char properties (dshea) -- Add a check for invisible_char validity (dshea) -- Connect viewport adjustments to child focus adjustments (#1192155) (dshea) -- Support '%%packages --multilib' in dnfpayload.py (#1192628) (dcantrell) - -* Fri Mar 06 2015 Brian C. Lane - 23.2-1 -- Add rc-release target (bcl) -- Change --skip-tx to --skip-zanata in scratch-bumpver (bcl) -- Add --newrelease to makebumpver (bcl) -- Improve the addon repo name collision code (#1125322) (bcl) -- Fix the import of mountExistingSystem (vpodzime) -- Fix import error in anaconda-cleanup. (sbueno+anaconda) -- Use the new static method to get possible PE sizes (vpodzime) -- Try using the global LUKS passphrase if none is given for LV/part (#1196112) - (vpodzime) -- Fix the help button mnemonic display on spokes (dshea) -- Only set the hub message if the message has changed (dshea) -- Wrap the info bar in a GtkRevealer (dshea) -- Add links to clickable warning and error messages. (dshea) -- Add a test to look for clickable messages that aren't clickable enough. - (dshea) -- Increment the widgets version number (dshea) -- Allow markup and links in the info bar. (dshea) -- Add more links to gtk-doc comments (dshea) -- Handle New_Repository name collision source spoke (#1125322) (bcl) -- Fix a bad usage of execWithRedirect (#1197290) (dshea) -- Have to be root to delete /var/tmp/kstest-* on the remote machines. (clumens) -- Use the LUKS device for swap in fstab (#1196200) (vpodzime) -- Clear TUI source spoke errors that may have been leftover from a prior - attempt. (#1192259) (sbueno+anaconda) - -* Fri Feb 27 2015 Brian C. Lane - 23.1-1 -- Make sure python2 dnf is required (bcl) -- Fix pykickstart requirement. (clumens) -- Extract xattrs from tar payload (#1195462) (bcl) -- Add a script to rebase and merge pull requests (dshea) -- Update translation documentation for Zanata (bcl) -- Switch translation support to fedora.zanata.org (bcl) -- install.py: fix the 'is team device' check (awilliam) -- Explain why Anaconda requires rpm-devel and libarchive-devel during build - (mkolman) -- Revert "Switch to temporary transifex branch" (bcl) -- Revert "makebumpver needs to know about anaconda-1 transifex name" (bcl) -- Commit 23.0 anaconda.pot file (bcl) -- Rename queue.py to queuefactory.py. (clumens) -- Remove references to old_tests, which no longer exists. (clumens) -- Fix package and group removing with the dnf payload. (clumens) -- Don't try to run new-kernel-pkg if it doesn't exist. (clumens) - -* Fri Feb 20 2015 Brian C. Lane - 23.0-1 -- Remove unused imports (dshea) -- Check for unused imports in __init__ files (dshea) -- Remove timestamp-based version support. (dshea) -- Add test lib methods to check regexes (dshea) -- Cleanup BuildRequires (mkolman) -- Remove obsolete imports. (amulhern) -- Make print statement print output w/out surrounding parentheses. (amulhern) -- Remove an unused import (dshea) -- rpmostreepayload: Honor noverifyssl (walters) -- typo: packaging: Don't vary name of "verified" (walters) -- Disable the metacity mouse-button-modifier setting (dshea) -- Fix completion setting in TUI language spoke. (#1192230) (sbueno+anaconda) -- Remove the pylint false positives for the GLib module (dshea) -- Use ExtendAction for --ignore flag (amulhern) -- Use a simple ExtendAction for add_rpms option. (amulhern) -- Fix log message formating (mkolman) -- Don't clear nonexistent DNF package download location (#1193121) (mkolman) diff --git a/blivet/0001-Change-how-we-run-e2fsck-to-check-ext-filesystems.patch b/blivet/0001-Change-how-we-run-e2fsck-to-check-ext-filesystems.patch deleted file mode 100644 index 6838249c..00000000 --- a/blivet/0001-Change-how-we-run-e2fsck-to-check-ext-filesystems.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a43dc757eff7fe9417f72e25fc373d09439963de Mon Sep 17 00:00:00 2001 -From: Vratislav Podzimek -Date: Fri, 18 Nov 2016 14:01:49 +0100 -Subject: [PATCH 1/2] Change how we run e2fsck to check ext filesystems -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The '-p' option means "Automatically repair ("preen") the file system. This -option will cause e2fsck to automatically fix any filesystem problems that can -be safely fixed without human intervention." which is something we really -shouldn't do as part of reset()/populate(). We should use '-n' instead "Open the -filesystem read-only, and assume an answer of `no' to all questions." which -guaranties no changes to be made on the file system. - -We might want to add the '-p' functionality back at some point, but it needs to -be explicitly triggered by the user code (e.g. Anaconda). I think we need to add -a 'clean' property and a 'repair' method to the formats.FS class so that users -can see where the problem is (if any) and explicitly trigger a safe fixup -attempt if they want to. - -Related: rhbz#1170803 ---- - blivet/tasks/fsck.py | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/blivet/tasks/fsck.py b/blivet/tasks/fsck.py -index a3ed775..c4214dc 100644 ---- a/blivet/tasks/fsck.py -+++ b/blivet/tasks/fsck.py -@@ -114,7 +114,9 @@ class Ext2FSCK(FSCK): - 128: "Shared library error."} - - ext = availability.E2FSCK_APP -- options = ["-f", "-p", "-C", "0"] -+ # "Force checking even if the file system seems clean." (we might get false results otherwise) -+ # + "Open the filesystem read-only, and assume an answer of `no' to all questions." -+ options = ["-f", "-n"] - - def _error_message(self, rc): - msgs = (self._fsck_errors[c] for c in self._fsck_errors.keys() if rc & c) --- -2.7.5 - diff --git a/blivet/0001-Fix-AttributeError-in-fsminsize-1502587.patch b/blivet/0001-Fix-AttributeError-in-fsminsize-1502587.patch deleted file mode 100644 index 0664195f..00000000 --- a/blivet/0001-Fix-AttributeError-in-fsminsize-1502587.patch +++ /dev/null @@ -1,34 +0,0 @@ -From b4407b21415f6ede2542ef044fdc5d45b5dd5c48 Mon Sep 17 00:00:00 2001 -From: Vojtech Trefny -Date: Mon, 16 Oct 2017 12:57:44 +0200 -Subject: [PATCH] Fix AttributeError in fsminsize (#1502587) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - blivet/tasks/fsminsize.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/blivet/tasks/fsminsize.py b/blivet/tasks/fsminsize.py -index ab6c647b..620b7dca 100644 ---- a/blivet/tasks/fsminsize.py -+++ b/blivet/tasks/fsminsize.py -@@ -128,12 +128,12 @@ class Ext2FSMinSize(FSMinSize): - - block_size = self._extract_block_size() - if block_size is None: -- raise FSError("failed to get block size for %s filesystem on %s" % (self.fs.mount_type, self.fs.device.name)) -+ raise FSError("failed to get block size for %s filesystem on %s" % (self.fs.mount_type, self.fs.device)) - - resize_info = self._get_resize_info() - num_blocks = self._extract_num_blocks(resize_info) - if num_blocks is None: -- raise FSError("failed to get minimum block number for %s filesystem on %s" % (self.fs.mount_type, self.fs.device.name)) -+ raise FSError("failed to get minimum block number for %s filesystem on %s" % (self.fs.mount_type, self.fs.device)) - - return block_size * num_blocks - --- -2.13.6 - diff --git a/blivet/0001-Fix-detection-of-macefi-partitions-1393846.patch b/blivet/0001-Fix-detection-of-macefi-partitions-1393846.patch deleted file mode 100644 index 57f593aa..00000000 --- a/blivet/0001-Fix-detection-of-macefi-partitions-1393846.patch +++ /dev/null @@ -1,47 +0,0 @@ -From d08d99dfb766e539b9e0074643ab3bc940d6fcee Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Thu, 10 Nov 2016 11:34:24 -0800 -Subject: [PATCH] Fix detection of 'macefi' partitions (#1393846) - -368a4db6 lost a crucial condition in the detection of 'macefi' -partitions in the transition to the 'populator helper' design. -Previously we checked that the parted partition 'name' (which -is a GPT property, for GPT partitions) matched the expected -value according to the macefi format, which basically means we -will only detect partitions created by a previous anaconda run -as 'macefi' (because that name is a very specific one which is -only created by anaconda in the first place). - -In the transition, that condition was lost, and now we treat -any device with an HFS+ filesystem that's over 50MiB in size -as a 'macefi' device, which means we mount it at /boot/efi and -try to write all kinds of stuff to it. Not surprisingly, this -borks the install. Fortunately, HFS+ filesystems are mounted -read-only unless they have journalling disabled, so this won't -result in us messing up people's OS X partitions with any luck. ---- - blivet/populator/helpers/boot.py | 10 ++++++++++ - tests/populator_test.py | 33 +++++++++++++++++++++++++++++++++ - 2 files changed, 43 insertions(+) - -diff --git a/blivet/populator/helpers/boot.py b/blivet/populator/helpers/boot.py -index b679b3b..3d80dd2 100644 ---- a/blivet/populator/helpers/boot.py -+++ b/blivet/populator/helpers/boot.py -@@ -54,6 +54,16 @@ class MacEFIFormatPopulator(BootFormatPopulator): - _type_specifier = "macefi" - _base_type_specifier = "hfsplus" - -+ @classmethod -+ def match(cls, data, device): -+ fmt = formats.get_format(cls._type_specifier) -+ try: -+ return (super().match(data, device) and -+ device.parted_partition.name == fmt.name) -+ except AttributeError: -+ # just in case device.parted_partition has no name attr -+ return False -+ - - class AppleBootFormatPopulator(BootFormatPopulator): - _type_specifier = "appleboot" diff --git a/blivet/0001-Fix-unknown-SAS-device-sysfs-parsing.patch b/blivet/0001-Fix-unknown-SAS-device-sysfs-parsing.patch deleted file mode 100644 index 55161b96..00000000 --- a/blivet/0001-Fix-unknown-SAS-device-sysfs-parsing.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7a9697eae467fc0ed44022d948f70f30d156d69e Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Fri, 11 Nov 2016 12:36:12 -0500 -Subject: [PATCH] Fix "unknown" SAS device sysfs parsing. - -Since the regexp matches the device type as well as the identifying -numbers, we need to pull the numbers from match groups 2 and 3, not 1 -and 2. - -Resolves: rhbz#1394026 - -Signed-off-by: Peter Jones ---- - blivet/devicelibs/edd.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/blivet/devicelibs/edd.py b/blivet/devicelibs/edd.py -index 7a1a1e2..51b7ed8 100644 ---- a/blivet/devicelibs/edd.py -+++ b/blivet/devicelibs/edd.py -@@ -316,8 +316,8 @@ class EddEntry(object): - self.sas_address = int(sas_match.group(1), base=16) - self.sas_lun = int(sas_match.group(2), base=16) - elif unknown_match: -- self.sas_address = int(unknown_match.group(1), base=16) -- self.sas_lun = int(unknown_match.group(2), base=16) -+ self.sas_address = int(unknown_match.group(2), base=16) -+ self.sas_lun = int(unknown_match.group(3), base=16) - else: - log.warning("edd: can not match interface for %s: %s", - self.sysfspath, interface) --- -2.7.4 - diff --git a/blivet/0001-Use-correct-type-for-port-in-GVariant-tuple.patch b/blivet/0001-Use-correct-type-for-port-in-GVariant-tuple.patch deleted file mode 100644 index 47f14af5..00000000 --- a/blivet/0001-Use-correct-type-for-port-in-GVariant-tuple.patch +++ /dev/null @@ -1,28 +0,0 @@ -From cf32290dd3a0561585837fddfcdb08b3389f356a Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Wed, 26 Oct 2016 16:17:46 -0700 -Subject: [PATCH 1/4] Use correct type for port in GVariant tuple - -The type is `(sqa{sv})`, where `q` (according to the docs) is -"an unsigned 16 bit integer", so this should be an int, not a -string. ---- - blivet/iscsi.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/blivet/iscsi.py b/blivet/iscsi.py -index 8773509..14c4b9a 100644 ---- a/blivet/iscsi.py -+++ b/blivet/iscsi.py -@@ -369,7 +369,7 @@ class iSCSI(object): - if r_password: - auth_info["r_password"] = GLib.Variant("s", r_password) - -- args = GLib.Variant("(sqa{sv})", (ipaddr, port, auth_info)) -+ args = GLib.Variant("(sqa{sv})", (ipaddr, int(port), auth_info)) - nodes, _n_nodes = self._call_initiator_method("DiscoverSendTargets", args) - - found_nodes = _to_node_infos(nodes) --- -2.7.4 - diff --git a/blivet/0002-Do-not-run-FS-check-as-part-of-updating-re-size-info.patch b/blivet/0002-Do-not-run-FS-check-as-part-of-updating-re-size-info.patch deleted file mode 100644 index 11237274..00000000 --- a/blivet/0002-Do-not-run-FS-check-as-part-of-updating-re-size-info.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 32ba44edfa5cd4424154396b877cd5ad75e8c999 Mon Sep 17 00:00:00 2001 -From: Vratislav Podzimek -Date: Tue, 22 Nov 2016 08:52:34 +0100 -Subject: [PATCH 2/2] Do not run FS check as part of updating (re)size info -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If the FS tools tell us the minimum size of the file system we are supposed to -(see rhbz#1170803) consider that an evidence of the file system being in a good -enough shape to be resized. - -Resolves: rhbz#1170803 ---- - blivet/formats/fs.py | 44 ++++++++++++++++++-------------------------- - 1 file changed, 18 insertions(+), 26 deletions(-) - -diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py -index 203926e..100bfce 100644 ---- a/blivet/formats/fs.py -+++ b/blivet/formats/fs.py -@@ -296,8 +296,6 @@ class FS(DeviceFormat): - """ Update this filesystem's current and minimum size (for resize). """ - - # This method ensures: -- # * If there are fsck errors, self._resizable is False. -- # Note that if there is no fsck program, no errors are possible. - # * If it is not possible to obtain the current size of the - # filesystem by interrogating the filesystem, self._resizable - # is False (and self._size is 0). -@@ -317,32 +315,26 @@ class FS(DeviceFormat): - self._min_instance_size = Size(0) - self._resizable = self.__class__._resizable - -- # We can't allow resize if the filesystem has errors. -+ # try to gather current size info -+ self._size = Size(0) - try: -- self.do_check() -- except FSError: -+ if self._info.available: -+ self._current_info = self._info.do_task() -+ except FSError as e: -+ log.info("Failed to obtain info for device %s: %s", self.device, e) -+ try: -+ self._size = self._size_info.do_task() -+ except (FSError, NotImplementedError) as e: -+ log.warning("Failed to obtain current size for device %s: %s", self.device, e) -+ else: -+ self._min_instance_size = self._size -+ -+ # We absolutely need a current size to enable resize. To shrink the -+ # filesystem we need a real minimum size provided by the resize -+ # tool. Failing that, we can default to the current size, -+ # effectively disabling shrink. -+ if self._size == Size(0): - self._resizable = False -- raise -- finally: -- # try to gather current size info anyway -- self._size = Size(0) -- try: -- if self._info.available: -- self._current_info = self._info.do_task() -- except FSError as e: -- log.info("Failed to obtain info for device %s: %s", self.device, e) -- try: -- self._size = self._size_info.do_task() -- self._min_instance_size = self._size -- except (FSError, NotImplementedError) as e: -- log.warning("Failed to obtain current size for device %s: %s", self.device, e) -- -- # We absolutely need a current size to enable resize. To shrink the -- # filesystem we need a real minimum size provided by the resize -- # tool. Failing that, we can default to the current size, -- # effectively disabling shrink. -- if self._size == Size(0): -- self._resizable = False - - try: - result = self._minsize.do_task() --- -2.7.5 - diff --git a/blivet/0002-iSCSI-Store-auth-info-in-NodeInfo-tuples.patch b/blivet/0002-iSCSI-Store-auth-info-in-NodeInfo-tuples.patch deleted file mode 100644 index 79d0a959..00000000 --- a/blivet/0002-iSCSI-Store-auth-info-in-NodeInfo-tuples.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 5eaadad9218210ed2a616104a6e56665c38f9277 Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Wed, 26 Oct 2016 20:42:53 -0700 -Subject: [PATCH 2/4] iSCSI: Store auth info in NodeInfo tuples - -This seems to have been overlooked in 9280eff7 . When we were -using libiscsi, the `node` objects were `PyIscsiNode` instances -(I think), with `getAuth` and `setAuth` methods that let you -read and set the authentication information for the node. We -used `getAuth` in `iScsiDiskDevice.dracut_setup_args()` to -include the auth information in the `netroot` arg. anaconda -also expects the `node` attribute of an `iScsiDiskDevice` -instance to be a `PyIscsiNode` and calls its `getAuth` method -to populate the kickstart data for the node. - -When we ditched libiscsi and turned the `node` objects into -`NodeInfo` namedtuples, this was missed and not handled at all. -Both blivet and anaconda are still trying to call methods that -these node objects just don't have any more. The blivet call -was changed from `getAuth()` to `get_auth()` in 4e8f941b , but -apparently whoever did that didn't notice that neither method -exists at all for these objects any more... - -Here's my attempt to fix this: basically, just stuff the auth -information into the `NodeInfo` instances when we log in. I -thought of several different ways to do this, but I think in -the end it always has to boil down to storing the auth details -on the node object when we log in, so let's just go with the -obvious way. We could mimic the `getAuth` and `setAuth` methods -pretty easily for 'compatibility', but it doesn't seem worth -it, we'd probably still be missing other bits of the interface. ---- - blivet/devices/disk.py | 11 +++++------ - blivet/iscsi.py | 33 +++++++++++++++++++++++++++++++-- - 2 files changed, 36 insertions(+), 8 deletions(-) - -diff --git a/blivet/devices/disk.py b/blivet/devices/disk.py -index 6880e1e..acf31ee 100644 ---- a/blivet/devices/disk.py -+++ b/blivet/devices/disk.py -@@ -452,12 +452,11 @@ class iScsiDiskDevice(DiskDevice, NetworkStorageDevice): - address = "[%s]" % address - - netroot = "netroot=iscsi:" -- auth = self.node.get_auth() -- if auth: -- netroot += "%s:%s" % (auth.username, auth.password) -- if len(auth.reverse_username) or len(auth.reverse_password): -- netroot += ":%s:%s" % (auth.reverse_username, -- auth.reverse_password) -+ if self.node.username and self.node.password: -+ netroot += "%s:%s" % (self.node.username, self.node.password) -+ if self.node.r_username and self.node.r_password: -+ netroot += ":%s:%s" % (self.node.r_username, -+ self.node.r_password) - - iface_spec = "" - if self.nic != "default": -diff --git a/blivet/iscsi.py b/blivet/iscsi.py -index 14c4b9a..1969fc8 100644 ---- a/blivet/iscsi.py -+++ b/blivet/iscsi.py -@@ -66,10 +66,31 @@ def has_iscsi(): - return True - - --NodeInfo = namedtuple("NodeInfo", ["name", "tpgt", "address", "port", "iface"]) - TargetInfo = namedtuple("TargetInfo", ["ipaddr", "port"]) - - -+class NodeInfo(object): -+ """Simple representation of node information.""" -+ def __init__(self, name, tpgt, address, port, iface): -+ self.name = name -+ self.tpgt = tpgt -+ self.address = address -+ self.port = port -+ self.iface = iface -+ # These get set by log_into_node, but *NOT* _login -+ self.username = None -+ self.password = None -+ self.r_username = None -+ self.r_password = None -+ -+ @property -+ def conn_info(self): -+ """The 5-tuple of connection info (no auth info). This form -+ is useful for interacting with storaged. -+ """ -+ return (self.name, self.tpgt, self.address, self.port, self.iface) -+ -+ - class LoginInfo(object): - def __init__(self, node, logged_in): - self.node = node -@@ -239,7 +260,7 @@ class iSCSI(object): - extra = dict() - extra["node.startup"] = GLib.Variant("s", "automatic") - -- args = GLib.Variant("(sisisa{sv})", tuple(list(node_info) + [extra])) -+ args = GLib.Variant("(sisisa{sv})", node_info.conn_info + (extra,)) - self._call_initiator_method("Login", args) - - @storaged_iscsi_required(critical=False, eval_mode=util.EvalMode.onetime) -@@ -414,6 +435,14 @@ class iSCSI(object): - node.name, node.address, node.port, node.iface) - if not self._mark_node_active(node): - log.error("iSCSI: node not found among discovered") -+ if username: -+ node.username = username -+ if password: -+ node.password = password -+ if r_username: -+ node.r_username = r_username -+ if r_password: -+ node.r_password = r_password - except safe_dbus.DBusCallError as e: - msg = str(e) - log.warning("iSCSI: could not log into %s: %s", node.name, msg) --- -2.7.4 - diff --git a/blivet/0003-iSCSI-turn-iscsi.initiator_set-into-a-property.patch b/blivet/0003-iSCSI-turn-iscsi.initiator_set-into-a-property.patch deleted file mode 100644 index ba0d7f83..00000000 --- a/blivet/0003-iSCSI-turn-iscsi.initiator_set-into-a-property.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 4d0b9f8338bfc1634340bb191058b888094ca81d Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Thu, 27 Oct 2016 15:17:29 -0700 -Subject: [PATCH 3/4] iSCSI: turn `iscsi.initiator_set` into a property - -The iSCSI class has an `initiator_set` attribute whose meaning -feels a bit slippery these days. It has always been set to -True in `__init__()` if iBFT is active, right after we get the -initiator name from the firmware. Prior to 9280eff7, it was -also set true by `startup()` after it wrote out INITIATOR_FILE. -In 9280eff7, that was removed, without any kind of replacement. -Now `initiator_set` will never be True unless iBFT is being -used. - -This is a problem because `iscsi.write()` checks if it's True, -and immediately bails if it isn't. The result of this is that -when you do an iSCSI install with anaconda, the contents of -`/var/lib/iscsi` from the installer environment are no longer -copied in the installed system. - -vpodzime asked for this fix: making it into a property which -returns True if `self._initiator` is set, otherwise False. -I used `== ""` as the test because that's what we use in other -places, though in my own code I'd normally just use -`if self._initiator:`. - -Note that `if iscsi.initiator_set:` and `if iscsi.initiator:` -are not quite equivalent, as the `initiator` property will try -and read the initiator name from storaged if `self._initiator` -is not set, but `initiator_set` will not. This best matches -the previous behaviour, but I'm not sure if all of this makes -any logical sense when considered from scratch. ---- - blivet/iscsi.py | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/blivet/iscsi.py b/blivet/iscsi.py -index 1969fc8..b221fd4 100644 ---- a/blivet/iscsi.py -+++ b/blivet/iscsi.py -@@ -149,7 +149,6 @@ class iSCSI(object): - # This list contains nodes discovered through iBFT (or other firmware) - self.ibft_nodes = [] - self._initiator = "" -- self.initiator_set = False - self.started = False - self.ifaces = {} - -@@ -159,7 +158,6 @@ class iSCSI(object): - try: - initiatorname = self._call_initiator_method("GetFirmwareInitiatorName")[0] - self._initiator = initiatorname -- self.initiator_set = True - except Exception: # pylint: disable=broad-except - log_exception_info(fmt_str="failed to get initiator name from iscsi firmware") - -@@ -197,6 +195,11 @@ class iSCSI(object): - connection=self._connection) - - @property -+ def initiator_set(self): -+ """True if initiator is set at our level.""" -+ return self._initiator != "" -+ -+ @property - @storaged_iscsi_required(critical=False, eval_mode=util.EvalMode.onetime) - def initiator(self): - if self._initiator != "": --- -2.7.4 - diff --git a/blivet/0004-Add-device-symlinks-to-the-PVs-dictionary-for-MD-RAI.patch b/blivet/0004-Add-device-symlinks-to-the-PVs-dictionary-for-MD-RAI.patch deleted file mode 100644 index be020581..00000000 --- a/blivet/0004-Add-device-symlinks-to-the-PVs-dictionary-for-MD-RAI.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 274b0bfb6aa923a82662e754030ebce4d8694901 Mon Sep 17 00:00:00 2001 -From: Vratislav Podzimek -Date: Thu, 3 Nov 2016 12:53:03 +0100 -Subject: [PATCH 4/4] Add device symlinks to the PVs dictionary for MD RAID PVs - (#1389130) - -Otherwise if the symlink is used to search for the PV info, it's not found and -everything on that PV is ignored which leads e.g. to issues when removing the PV -(as described in the bug) and others. ---- - blivet/static_data/lvm_info.py | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/blivet/static_data/lvm_info.py b/blivet/static_data/lvm_info.py -index ed2e995..4f5a274 100644 ---- a/blivet/static_data/lvm_info.py -+++ b/blivet/static_data/lvm_info.py -@@ -57,7 +57,23 @@ class PVsInfo(object): - def cache(self): - if self._pvs_cache is None: - pvs = blockdev.lvm.pvs() -- self._pvs_cache = dict((pv.pv_name, pv) for pv in pvs) # pylint: disable=attribute-defined-outside-init -+ self._pvs_cache = dict() # pylint: disable=attribute-defined-outside-init -+ for pv in pvs: -+ self._pvs_cache[pv.pv_name] = pv -+ # TODO: add get_all_device_symlinks() and resolve_device_symlink() functions to -+ # libblockdev and use them here -+ if pv.pv_name.startswith("/dev/md/"): -+ try: -+ md_node = blockdev.md.node_from_name(pv.pv_name[len("/dev/md/"):]) -+ self._pvs_cache["/dev/" + md_node] = pv -+ except blockdev.MDRaidError: -+ pass -+ elif pv.pv_name.startswith("/dev/md"): -+ try: -+ md_named_dev = blockdev.md.name_from_node(pv.pv_name[len("/dev/"):]) -+ self._pvs_cache["/dev/md/" + md_named_dev] = pv -+ except blockdev.MDRaidError: -+ pass - - return self._pvs_cache - --- -2.7.4 - diff --git a/blivet/blivet-2.1.6.tar.gz b/blivet/blivet-2.1.6.tar.gz deleted file mode 100644 index 8276af97..00000000 Binary files a/blivet/blivet-2.1.6.tar.gz and /dev/null differ diff --git a/blivet/python-blivet.spec b/blivet/python-blivet.spec deleted file mode 100644 index 3932b5d4..00000000 --- a/blivet/python-blivet.spec +++ /dev/null @@ -1,2524 +0,0 @@ -Summary: A python module for system storage configuration -Name: python-blivet -Url: http://fedoraproject.org/wiki/blivet -Version: 2.1.6 - -#%%global prerelease .b1 -# prerelease, if defined, should be something like .a1, .b1, .b2.dev1, or .c2 -Release: 5%{?prerelease}%{?dist} -Epoch: 2 -License: LGPLv2+ -Group: System Environment/Libraries -%global realname blivet -%global realversion %{version}%{?prerelease} -Source0: http://github.com/rhinstaller/blivet/archive/%{realname}-%{realversion}.tar.gz - -Patch0: 0001-Use-correct-type-for-port-in-GVariant-tuple.patch -Patch1: 0002-iSCSI-Store-auth-info-in-NodeInfo-tuples.patch -Patch2: 0003-iSCSI-turn-iscsi.initiator_set-into-a-property.patch -Patch3: 0004-Add-device-symlinks-to-the-PVs-dictionary-for-MD-RAI.patch -Patch4: 0001-Fix-detection-of-macefi-partitions-1393846.patch -Patch5: 0001-Fix-unknown-SAS-device-sysfs-parsing.patch -Patch6: 0001-Change-how-we-run-e2fsck-to-check-ext-filesystems.patch -Patch7: 0002-Do-not-run-FS-check-as-part-of-updating-re-size-info.patch -Patch8: 0001-Fix-AttributeError-in-fsminsize-1502587.patch - -# Versions of required components (done so we make sure the buildrequires -# match the requires versions of things). -%global pykickstartver 1.99.22 -%global pocketlintver 0.4 -%global partedver 1.8.1 -%global pypartedver 3.10.4 -%global e2fsver 1.41.0 -%global utillinuxver 2.15.1 -%global libblockdevver 1.9 -%global libbytesizever 0.3 -%global pyudevver 0.18 - -BuildArch: noarch -BuildRequires: gettext -BuildRequires: python3-pocketlint >= %{pocketlintver} -BuildRequires: python3-devel python3-setuptools - -%description -The python-blivet package is a python module for examining and modifying -storage configuration. - -%package -n python3-%{realname} -Summary: A python3 package for examining and modifying storage configuration. -Requires: python3 -Requires: python3-six -Requires: python3-kickstart -Requires: python3-pyudev >= %{pyudevver} -Requires: parted >= %{partedver} -Requires: python3-pyparted >= %{pypartedver} -Requires: libselinux-python3 -Requires: python3-blockdev >= %{libblockdevver} -Requires: libblockdev-plugins-all >= %{libblockdevver} -Requires: python3-bytesize >= %{libbytesizever} -Requires: util-linux >= %{utillinuxver} -Requires: dosfstools -Requires: e2fsprogs >= %{e2fsver} -Requires: lsof -Requires: python3-hawkey -Requires: python3-gobject-base -Obsoletes: blivet-data < 1:2.0.3 -Obsoletes: python-blivet < 1:2.0.3 - -%description -n python3-%{realname} -The python3-%{realname} is a python3 package for examining and modifying storage -configuration. - -%prep -%setup -q -n %{realname}-%{realversion} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 - -rm -rf %{py3dir} -cp -a . %{py3dir} - -%build -# don't try to regenerate blivet.pot as part of the rpm build. -touch po/blivet.pot -make - -%install -make PYTHON=%{__python3} DESTDIR=%{buildroot} install -%find_lang %{realname} - -%files -n python3-%{realname} -f %{realname}.lang -%license COPYING -%doc README ChangeLog examples -%{python3_sitelib}/* - -%changelog -* Tue Nov 15 2016 David Lehman - 2.1.6-4 -- Fix detection of 'macefi' partitions (#1393846) (awilliam) -- Fix "unknown" SAS device sysfs parsing. (#1394026) (awilliam) - -* Mon Nov 07 2016 David Lehman - 2.1.6-3 -- Never update POT file as part of rpm build. - -* Mon Nov 07 2016 David Lehman - 2.1.6-2 -- Use correct type for port in GVariant tuple (awilliam) -- iSCSI: Store auth info in NodeInfo tuples (awilliam) -- iSCSI: turn `iscsi.initiator_set` into a property (awilliam) -- Add device symlinks to the PVs dictionary for MD RAID PVs (#1389130) (vpodzime) - -* Tue Oct 04 2016 David Lehman - 2.1.6-1 -- add missing populators to populator.helpers (awilliam) - -* Mon Sep 26 2016 David Lehman - 2.1.5-1 -- Move parted changes to after format destroy. (#1378162) (dlehman) -- Add translators comment for unsupported disklabel names (vtrefny) - -* Tue Sep 20 2016 David Lehman - 2.1.4-1 -- Revert unsupported clearing of parted partition 'system'. (dlehman) -- Make sure we create a proper GVariant tuple as args (#1375712) (vpodzime) -- Do not include both size and percent in logvol ks cmd. (dlehman) -- Ignore NVDIMMs at OS installation time. (dlehman) -- Don't crash if lvm refuses to activate an lv. (dlehman) - -* Wed Sep 14 2016 David Lehman - 2.1.3-1 -- Remove some deprecated/obsolete bits from spec file. (dlehman) -- Use %%global instead of %%define for specfile macros. (dlehman) -- Fix URLs pointing to blivet resources. (dlehman) -- UUID is now cleaned when destroying format (japokorn) -- Support disk tags as disk specification for new partitions. (dlehman) -- Add tags property to Device with some defaults for disk variants. (dlehman) -- Add checks to git-multi-merge script (jkonecny) -- UUID now set correctly when reformatting partition (japokorn) -- Eliminate mountpoint symlinks when looking for mounted device (vtrefny) -- iscsi: allow installing bootloader on offload iscsi disks (qla4xxx) - (#1325134) (rvykydal) - -* Fri Aug 05 2016 David Lehman - 2.1.2-1 -- Update release notes to include previous two releases. (dlehman) -- Allign the LV's size up to set the base size for growing (vpodzime) -- Ensure biosboot shows up in kickstart (#1242666) (rmarshall) -- Add tests for the new LV from LVs actions (vpodzime) -- Make sure to add/remove internal LVs when adding/removing a compound LV - (vpodzime) -- Make sure all LVs to create a new LV from are in the DT (vpodzime) -- Make sure internal LVs are added/removed to/from DT properly (vpodzime) -- Make LVs depend on their internal LVs (vpodzime) -- Do not add the LV to devicetree in new_lv_from_lvs() (vpodzime) -- Require libblockdev version with all the functions we need (vpodzime) -- Allow for cascade creation of LVs from LVs (vpodzime) -- Fix removing PVs after removing VG (#1358067) (vtrefny) -- Pass arguments to get_member_raid_sets() in the correct order (#1225184) - (vpodzime) -- Use the new way extra information is provided for LVs (vpodzime) -- Add a method to determine if a udev device is a disk. (vtrefny) -- Fix udev.resolve_glob to match device path too (vtrefny) -- Adapt to the old-new storaged API paths (vpodzime) -- Handle an mpath name as lone exclusive disk. (#984059) (dlehman) -- Add unit tests for disk filter. (dlehman) -- Allow creation of a new LV from other LVs (vpodzime) -- Removed test for snapshot origin existance (jkonecny) -- Don't require existing origin when modeling snapshot (jkonecny) -- Update size for dmraid arrays found during populate. (#1269662) (dlehman) -- Restore the correct default partition table type for AArch64 EFI. (dmarlin) -- Fix args to cancel_disk_actions call from hide(). (dlehman) -- Fix not enough free space after creating extended partition (#1252350) - (vtrefny) -- Add some more unit tests for DeviceTree. (dlehman) -- Add tests for critical format methods. (dlehman) -- Split and include cache data and metadata sizes properly (vpodzime) -- Use internal LVs (if any) to calculate space used by existing LVs (vpodzime) -- Remove an unused calculation of VG's RAID PVs (vpodzime) -- Only include padding to nonexisting thin pools' vg_space_used (vpodzime) -- Require pyudev 0.18 or newer (vtrefny) -- Do not use deprecated pyudev methods (vtrefny) -- Show changes for each branch in git-multi-merge before pushing (vpodzime) - -* Mon Jun 06 2016 David Lehman - 2.1.1-1 -- Ignore all merge commits when making rpm log. (dlehman) -- Try harder to identify a partition's disk when necessary. (dlehman) -- Add some fallback methods for finding a partition's disk. (dlehman) -- Include devices on disklabels unsupported by parted in the devicetree. - (dlehman) -- Don't traceback if we fail to examine an md member. (dlehman) -- Disklabel commit errors can occur for disks, too. (dlehman) -- Add unit tests for device methods. (dlehman) -- ARM platforms: support both msdos and gpt partitions (pbrobinson) -- LUKS data moved to singleton (japokorn) -- Add the P_ keyword to xgettext. (dshea) -- Add xfs to default filesystem types (rmarshall) -- Fix blivet constructor fs support check (rmarshall) -- Do not put LVM stuff into syslog (vpodzime) -- Kickstart missing bootloader partitions (#1242666) (rmarshall) - -* Thu May 12 2016 David Lehman - 2.1.0-1 -- Add name of problematic device to UnusableConfigurationError (vtrefny) -- LVM data are now global (japokorn) -- Allow custom chunk size specification for MDRaidArrayDevice (vtrefny) -- Mock all blockdev's listing functions for populator tests (vpodzime) -- Add zanata-python-client to TEST_DEPENDENCIES (bcl) - -* Thu May 12 2016 David Lehman - 2.0.3-1 -- Fix protected status for extended partitions (vtrefny) -- Improve documentation of the udev.resolve_glob() function (vpodzime) -- Remove the locale list from zanata.xml (dshea) -- Do not test translated strings during make ci. (dshea) -- Squashed 'translation-canary/' changes from 5a45c19..3bc2ad6 (dshea) -- Fix root detection on btrfs in rescue mode (vtrefny) -- Use device's mount options when mounting existing systems (vtrefny) -- Ignore pylint being confused with our mixins' properties (vpodzime) -- Get back to use ROUND_HALF_UP by default (vpodzime) -- Let Python import the formats for us (vpodzime) -- Only call resolve_devspec() in _get_active_mounts() for real devices - (vpodzime) -- Call is_mpath_member() only when it makes sense (dlehman) -- Break the cycle in LVMPhysicalVolume.destroy (#1331630) (vpodzime) -- Use libbytesize's translations for Size tests (vpodzime) -- Compare sizes instead of numbers of sectors (vpodzime) -- Obsolete python-blivet and blivet-data packages. (dlehman) -- Increase the default size of /boot to 1 GB. (#377) (clumens) -- Do not add btrfs volume subvolid to subvolumes mountopts (#1306808) (vtrefny) -- A simple script for multi-merges we now do (vpodzime) -- Update CONTRIBUTING file to match current practices. (dlehman) -- Only import the 'iscsi' singleton when really needed (vpodzime) -- Correctly recognize internal RAID LVs (vpodzime) -- Do not add mdarray with no slave (#1321393) (vtrefny) -- Make sure to add hyperPAV aliases to dasd.conf. (sbueno+anaconda) -- LVM data are now global (japokorn) -- Preserve traceback when re-raising exceptions (vpodzime) - -* Mon Apr 04 2016 David Lehman - 2.0.2-1 -- Fix mistake from PEP8 conversion. (#1323012) (dlehman) -- Set both req_size and size of thin pool when growing LVM (vpodzime) -- Retrieve udev info as needed in handle_format. (#1322943) (dlehman) -- Fix requires after subpackage switcharoo. (dlehman) -- Fix package naming in spec file. (dlehman) - -* Tue Mar 29 2016 David Lehman - 2.0.1-1 -- Make sure EddMatcher.root is a string. (dlehman) -- Move per-thread change accounting to a function. (dlehman) -- Add missing conf kwarg in call to PopulatorMixin ctor. (dlehman) -- Fixes found while porting anaconda to blivet-2.0 (dlehman) -- Mock all blockdev's listing functions for populator tests (vpodzime) - -* Wed Mar 09 2016 David Lehman - 2.0.0-1 -- Bump version to 2.0.0 - -* Wed Mar 09 2016 David Lehman - 2.0.0-0.1.b1 -- Make sure we use the Size class properly (vpodzime) -- Don't store size as int in SameSizeSet (vpodzime) -- Use libbytesize's Size class as a base for our Size class (vpodzime) -- Remove the second section about LUKS resize from release notes (vpodzime) -- Streamline the TOC to only include top-level sections. (dlehman) -- Adjust section hierarchy in intro doc. (dlehman) -- Move testing docs into a file of their own. (dlehman) -- Add an api specification to the docs. (dlehman) -- Add luks resize and API stability efforts to release notes. (dlehman) -- Clean up some of the singleton usage. (dlehman) -- Drop sphinx mocking. (dlehman) -- Reset container_uuid when removing PV from a VG (vtrefny) -- Remove "destroy_format" method from docs (vtrefny) -- Fix AttributeError in pv_free_info (vtrefny) - -* Wed Feb 24 2016 David Lehman - 2.0.0-0.1.a1 -- Update zanata config for 2.0 branches. (dlehman) -- Remove cleanup of rc-release relics from ci target. (dlehman) -- Don't run rc-release as part of ci for now. (dlehman) -- Regenerate blivet.pot. (dlehman) -- Specify encoding of pvtask.py to placate gettext. (dlehman) -- Silence pylint complaint about passed callable. (dlehman) -- Tear down devices on disk images before tearing down the images. (dlehman) -- Update check for thin pool to work with new lv classes. (dlehman) -- Use Blivet.do_it instead of calling ActionList.process in factory example. (dlehman) -- Get rid of examples.common. (dlehman) -- Allow for pre-release builds. (dlehman) -- Fix load_module call in translation-canary. (dlehman) -- Remove a couple of stray python2 invocations. (dlehman) -- Do not call pvmove when removing an empty PV from VG. (vtrefny) -- Add task for finding LVMPhysicalVolume format size (vtrefny) -- Fix TypeError/AttributeError when adding thinpools and snapshots (vtrefny) -- Fix current_size name in StorageDevice.update_size (vtrefny) -- Ignore PEP8 errors E402 and E731 (vtrefny) -- Make sure all checks run on 'make check' (vtrefny) -- PEP8 fixes (vtrefny) -- Add LUKS resize to release notes (vtrefny) -- Add test for LUKS format resize (vtrefny) -- Add a task for finding the size of a LUKS device (vtrefny) -- Use DeviceFormatError and FormatResizeError in DeviceFormat (vtrefny) -- Add LUKS resize support to resize_device method (vtrefny) -- Define min_size for encrypted devices (vtrefny) -- Do not teardown partition when resizing encrypted partition (vtrefny) -- Make partitions with children resizable (vtrefny) -- Make LUKS format resizable (vtrefny) -- Make LUKSDevice resizable (vtrefny) -- Make lukstasks and dfresize task pep8 compliant (vtrefny) -- Add a LUKS resize task. (amulhern) -- Make a top level device format resizing task class. (amulhern) -- Move resize related methods from FS to DeviceFormat (vtrefny) -- Disable spurious import-error from pylint. (dlehman) -- Add blivet.events package to setup.py. (dlehman) -- Remove unused util import from prepboot.py. (dlehman) -- Remove deprecated methods and properties. (dlehman) -- Flesh out the release notes. (dlehman) -- Include python3-bugzilla when running tests (bcl) -- Cleanup wildcard import in misc_test.py (bcl) -- Add an example of event monitoring. (dlehman) -- Mask uevents when updating parted.Disk. (dlehman) -- Handle first-time open of luks devices. (dlehman) -- Add a device populator for opened/decrypted LUKS devices. (dlehman) -- Update sysfs path before updating size in StorageDevice ctor. (dlehman) -- Validate event handling callbacks. (dlehman) -- Hook up the event notify callback. (dlehman) -- Account for changes made in response to each event. (dlehman) -- Add facilities for reporting exceptions that occur in threads. (dlehman) -- Add event handlers via a DeviceTree mixin class. (dlehman) -- Add PopulatorHelper method to update device/formats. (dlehman) -- Add classes for managing external events. (dlehman) -- Add methods to wrap helper getters. (dlehman) -- Only settle udev queue in get_devices when not handling events. (dlehman) -- Allow passing a device to any PopulatorHelper constructor. (dlehman) -- Implement DiskLabelFormatPopulator._get_kwargs. (dlehman) -- Add a property indicating the type to pass to get_format. (dlehman) -- Add functions for resolving between block major and device type. (dlehman) -- Plumb modparent through DeviceTree.recursive_remove. (dlehman) -- Add a flag to preserve the root device in recursive_remove. (dlehman) -- Add container_uuid r/w property to container member format classes. (dlehman) -- Set VG format as existing as part of VG creation. (dlehman) -- Remove old hack meant to remove stale metadata. (dlehman) -- Store disklabel and partition UUIDs when available. (dlehman) -- Add a method to re-read the disklabel from disk. (dlehman) -- Use wipefs to remove disklabels. (dlehman) -- Add support for passing the new size into StorageDevice.updateSize. (dlehman) -- Add a method to cancel all actions related to a specified disk. (dlehman) -- Add a flag to ActionList to indicate in-progresss action processing. (dlehman) -- Avoid failure to generate unit test API docs. (dlehman) -- Add a console logger and a function to activate it. (dlehman) -- Make LoopDevice size consistent with other device types. (dlehman) -- Don't try to use a name bound via 'as' outside the try/except block. (dlehman) -- Remove code for notifying the kernel of changes to block devices. (dlehman) -- Add dependency checks for iSCSI operations (vpodzime) -- Add decorator for guarding methods with external dependency checks (vpodzime) -- Add a function for testing if some DBus object is available (vpodzime) -- Use namedtuple for target info and tiny class for login infos (vpodzime) -- Use the storaged's iSCSI DBus API instead of libiscsi (vpodzime) -- Use the ) -- Add a module for doing DBus operations in the safest possible way (vpodzime) -- Do not retry interruptible system calls. (dshea) -- Document the LV class unification changes in the release notes (vpodzime) -- Adapt our tests to the changes in representation of LVs (vpodzime) -- Adapt our code to changes in the representation of LVs (vpodzime) -- Rewrite the code for representing LVs (vpodzime) -- Add a test for the to-be-used ) -- Add a decorator for guarding methods and properties with a property (vpodzime) -- Transform the is_name_valid() into an instance method (vpodzime) -- Add tests for FS overhead methods (jkonecny) -- Add more class methods for better use of metadata (jkonecny) -- Remove python2 assert regex method name hacks. (dlehman) -- Fix various pylint errors introduced with python-3.5. (dlehman) -- Add a file with release notes (vpodzime) -- Blacklisted attrs should be unwrapped, not omitted. (dlehman) -- Return the device when returning early from degraded md handler. (dlehman) -- Fix application of synchronization metaclass to DeviceTree. (dlehman) -- Fix AttributeError in populator LUKS helper (vtrefny) -- Update spec file for blivet 2.0 builds (vtrefny) -- Add populator.helpers to package (vtrefny) -- Add translator comments to the byte size prefixes. (dshea) -- Integrate translation-canary with blivet. (dshea) -- Update blivet.pot during scratch-bumpver. (dshea) -- Always use setup.py sdist to generate source tarballs. (dshea) -- Squashed 'translation-canary/' content from commit 5a45c19 (dshea) -- Update class and methods in "Introduction to Blivet" (vtrefny) -- Build documentation with python3 sphinx (vtrefny) -- Fix PEP8 violations introduced in the LVM RAID commits (vpodzime) -- Make the main class hierarchies thread-safe. (dlehman) -- Add unit tests for changes related to non-linear LVs (vpodzime) -- Make sure we try to match LVM RAID levels with all their names (vpodzime) -- Don't bother user code with LVM RAID meta data (vpodzime) -- Inherit the RaidDevice mixin in the LVMLogicalVolumeDevice class (vpodzime) -- Account for a pmspare LV creation or growth when determining the cache size (vpodzime) -- Refresh the PV free space info after LV creation (vpodzime) -- Add an early check of the requested LV segment type (vpodzime) -- Add example of LVM cache creation (vpodzime) -- Make sure the slow_pvs+fast_pvs list we pass to libblockdev has no dups (vpodzime) -- Use pv.path instead of constructing it from name and "/dev/" (vpodzime) -- Account for LVM cache space in PVs (vpodzime) -- Fix the twisted logic of lv.metadata_size (vpodzime) -- Replace the 'copies' property of LVs with something more accurate (vpodzime) -- Track information about free space in existing PVs (vpodzime) -- Add guards making sure we are not being tricked with LV seg_type (vpodzime) -- Define and use a new is_raid_lv property of LVMLogicalVolumeDevice (vpodzime) -- Add an example of non-linear LV creation (vpodzime) -- Create non-linear LVs before linear LVs (vpodzime) -- Account for LVM RAID metadata (vpodzime) -- Define RAID level for LV and use it to determine required PV space (vpodzime) -- Add a definition for the striped "RAID level" (vpodzime) -- Track information about free space in a PV (vpodzime) -- Honor the LV segment type when creating it (vpodzime) -- Let LVMLogicalVolumeDevice specify PVs it should be allocated from (vpodzime) -- Define the Device.parent property with the ) -- Adjust to Device now having a list of child devices. (dlehman) -- Maintain a list of child devices in Device. (dlehman) -- Add unit tests to explicitly cover container member set changes. (dlehman) -- Remove ParentList.replace and its usage. (dlehman) -- Improve logging of failure to validate new default fstype. (dlehman) -- Remove unused populated attribute from Populator. (dlehman) -- Stop passing around the iscsi singleton. (dlehman) -- Make the iscsi singleton satisfactory to pylint. (dlehman) -- Remove the various DASD lists from Blivet and DeviceTree. (dlehman) -- Convert Populator to a mixin class. (dlehman) -- Move disk filter bits from Populator into DeviceTree. (dlehman) -- Move the LVM data cache from DeviceTree to Populator. (dlehman) -- Rename per-device Populator entry points. (dlehman) -- Make Populator.udev_device_is_disk a private method. (dlehman) -- Stop writing an mdadm.conf. (dlehman) -- Group disk-image-related methods together in source code. (dlehman) -- Move some code from _populate into separate methods. (dlehman) -- Split various parts of add_udev_device into separate methods. (dlehman) -- Remove some extraneous methods related to ignored devices. (dlehman) -- Only handle loop devices with a backing file. (dlehman) -- Add unit tests for populator helpers. (dlehman) -- Use helper getter functions to find populator helpers. (dlehman) -- Add functions to return a helper class based on device data. (dlehman) -- Move format-type-specific bits into populator helpers. (dlehman) -- Split DiskDevicePopulator up by disk type. (dlehman) -- Move device-type-specific populator bits to populator helpers. (dlehman) -- Add base classes for type-specific Populator helpers. (dlehman) -- Use the mpath_member ID_FS_TYPE set up by the multipath udev rules. (dlehman) -- Make blivet.populator into a subpackage. (dlehman) -- Convert device_get_dm_partition_disk to not be dm-specific. (dlehman) -- Use DeviceTree.__str__ when printing devices in examples. (dlehman) -- Disk image test can only be run as root. (dlehman) -- Fix few more camelCase leftovers (vpodzime) -- Fix various PEP8 violations in recent EDD commits. (dlehman) -- Add PEP8 compliance checking to 'check' target. (dlehman) -- Teardown all devices before tearing disk images down (vpodzime) -- Change doc Introduction to reflect PEP8 compliance changes (vtrefny) -- Few PEP8 compliance related fixes (vtrefny) -- Pass devices arg when calling actions.process (vtrefny) -- Do not catch CryptoError when decrypting LUKS format (#1280239) (vtrefny) -- Fix makebumpver for new conf.py (bcl) -- Bump version numbers to 2.0 before we forget. (bcl) -- Only prepend the root to get the ondisk path if there is some (vpodzime) -- Ignore unused memo_dict arguments in __deepcopy__ methods. (clumens) -- Update the getattr calls with PEP8 property/attribute names (vpodzime) -- Do not create a copy of singleton objects (vpodzime) -- Fix pylint problems with the new default namedtuple stuff. (clumens) -- Do not try to get LVM cache's size from stats for inactive LV (vpodzime) -- edd: Add mostly fixed virt data (pjones) -- edd: Add another terrible seabios dataset (pjones) -- edd: Add test data from a Strawberry Mountain machine w/ lots of SATA. (pjones) -- edd: Fix the error case in the "absurd_virt" test. (pjones) -- edd: Add absurd_virt tests back in (pjones) -- edd: Try to detect multiple ATA/SATA matches and log them. (pjones) -- edd: Split up VirtIO and VirtIO SCSI matching (pjones) -- edd: Log every glob.glob() match in our test data log. (pjones) -- edd: Eradicate fsroot entirely. (pjones) -- edd: add EddEntry.bios_device_number (pjones) -- edd: Make our own assertVerboseListEqual to get rid of truncated output. (pjones) -- edd: Add sysfslink for mbr matches (pjones) -- Make get_sysfs_attr() use our path joiners and add sysfs_readlink() (pjones) -- Make a "Path" object that handles separate fs root for us. (pjones) -- edd: Minor PEP8 fix (pjones) -- Add a much much simpler path normalizer and joiner. (pjones) -- Improve clarity of error when setting new default fstype fails. (dlehman) -- Fix missed rebase of populator test from 169dc6b6. (dlehman) -- Add a class constructor for namedtuples with default values (vpodzime) -- Use lvm.round_size_to_pe() instead of get_lv_physical_size() with the VG size (vpodzime) -- Account for LVM metadata in the LVMFactory (vpodzime) -- Put the LVM metadata size calculation into a separate property (vpodzime) -- Rename size->space in LVMFactory._get_total_space (vpodzime) -- Remove action-oriented wrapper methods from DeviceTree. (dlehman) -- Put DeviceTree methods into a sensible order. (dlehman) -- Fix remaining PEP8 violations. (dlehman) -- Fix PEP8 indentation issues. (dlehman) -- Fix the easy PEP8 violations. (dlehman) -- Make all names conform to PEP8. (dlehman) -- Update dmdev size when setting up disk images (atodorov) - -* Wed Oct 28 2015 Brian C. Lane - 1.16-1 -- Merge pull request #257 from vpodzime/master-singleton_decorator (vpodzime) -- Add pylint stuff to .gitignore (pjones) -- Minor cleanups in set_up_logging() (pjones) -- Make a logger for test data that we can automatically use later (pjones) -- edd: Fix one regexp so it matches against a real system /or/ test data. - (pjones) -- Merge pull request #253 from dashea/libblockdev-python (vpodzime) -- Make the function adding the deprecation doc text more generic (vpodzime) -- Merge pull request #242 from dwlehman/resolveDevice-regex (dlehman) -- Fix an overly inclusive regex in DeviceTree.resolveDevice. (dlehman) -- Merge pull request #244 from atodorov/master (vpodzime) -- Require the python libblockdev packages (dshea) -- Merge pull request #243 from dwlehman/flexible-alignment (dlehman) -- Merge pull request #230 from vpodzime/master-lvm_debug (vpodzime) -- Add a 'debug' flag and use it for LVM debugging (vpodzime) -- Bypass util.run_program to avoid logging deadlock. (dlehman) -- Add an edd test data harvester. (pjones) -- Do not save None as passphrase for LUKS devices (#1269646) (vtrefny) -- edd: make logging work usefully during tests (pjones) -- edd: Get rid of biosdev_to_edd_dir(), it is pointless. (pjones) -- Make distutils.filelist.findall() do the right thing with symlinks maybe. - (pjones) -- edd: Fix some minor 'make check' complaints. (pjones) -- edd: Make devicetree not use edd.edd_dict, instead use blivet's copy. - (pjones) -- edd: Remove the "absurd_virt" test cases for now. (pjones) -- Add a udev settle call after instantiating parted.Disk. (#1267858) (dlehman) -- edd: Add missing directories for absurd_virt test case. (pjones) -- produce coverage-report.log and enable coverage in CI (atodorov) -- Use minimal alignment as needed when allocating small partitions. (dlehman) -- Add support for minimal alignment of very small partitions. (dlehman) -- Add an error class for alignment errors. (dlehman) -- Deprecate createSubVolumes method (vtrefny) -- Change btrfs.do_self_mount to contextmanager (#1266673) (vtrefny) -- edd: Remove a bunch of nonfunctional EDD tests. (pjones) -- edd: Add another set of test cases for our QEMU data. (pjones) -- edd: Add another set of test data. (pjones) -- edd: Add some working tests for EDD. (pjones) -- edd: Add a real EDD dataset captured from a system. (pjones) -- edd: Make our edd matcher able to use a fake sysfs root. (pjones) -- edd: Add EDD 4 code and some logging cleanups. (pjones) -- edd: Try to make EDD support actually match what the kernel does. (pjones) -- Always build python2 and python3 versions. (bcl) -- Switch to using rd.iscsi.initiator (#1268315) (bcl) - -* Fri Oct 02 2015 Brian C. Lane - 1.15-1 -- Update Makefile to default to python3. (dlehman) -- Add test for extended partition minSize (vtrefny) -- Allow resizing of non-leaf partitions (vtrefny) -- Fix minSize for extended partitions (#1254875) (vtrefny) -- Fix calling non-existing method (#1252902) (jkonecny) -- Use the RAID classes to calculate btrfs sizes (#1264696) (dshea) -- Handle sysfs size if it is missing (#1265090) (bcl) -- Convert float to str for better precision in Size (jkonecny) -- Merge pull request #226 from dwlehman/lvactivate-lvmetad (dlehman) -- Wait for auto-activation of LVs when lvmetad is running. (#1261621) (dlehman) -- Add a function to tell us if the lvmetad socket exists. (dlehman) -- Don't teardown FSs when searching for installed systems (#1252902) (jkonecny) -- Merge pull request #218 from vpodzime/master-lvm_on_raid_improvements - (vpodzime) -- Account for bigger LVM meta data due to alignment on MD RAID (vpodzime) -- Calculate the MD RAID superblock size from the right size (vpodzime) -- Don't be naïve about liblvm (vpodzime) - -* Fri Sep 11 2015 Brian C. Lane - 1.14-1 -- Make sure devices are torn down in findExistingInstallations (#1261439) - (vpodzime) -- Merge pull request #211 from dwlehman/multipath-member-metadata (dlehman) -- Merge pull request #212 from dwlehman/recursive-teardown (dlehman) -- Mount efivarfs during os installation (#1260799) (bcl) -- Use --whatprovides when querying for if all requirements are installed. - (clumens) -- Add method for estimated size of formated device (#1224048) (jkonecny) -- Add support for mul,div,sub,add by float to Size (jkonecny) -- Merge pull request #220 from AdamWill/nodev-typo (vpodzime) -- fix typo in NoDevice: updateSize not udpateSize (awilliam) -- Duplicate VG names are problem even if their disks are ignored (#1198367) - (vpodzime) -- Merge pull request #215 from vpodzime/master-lvm_on_raid (vpodzime) -- Do not reserve extra space for metadata in a VG with RAID PVs (vpodzime) -- Merge pull request #207 from vpodzime/master-lvm_pmspare (vpodzime) -- Fix currentSize for extended partitions (#1254899) (vtrefny) -- Catch problems with chassis vendor names (#1256072) (bcl) -- Don't teardown protected devices (jkonecny) -- Don't store UUIDs or labels of multipath members. (dlehman) -- Continue with recursive teardown beyond inactive devices. (dlehman) -- Reserve space for the 'pmspare' LV in a VG (vpodzime) -- Add a property to get cached LVs in a VG (vpodzime) -- Fix VG free space check when shrinking an LV (vpodzime) -- Add a property for Requests to reserve some extra space (vpodzime) -- Use Size instances for sizes in LVM cache's stats (vpodzime) -- Implement metadata size reporting for the LVM cache (vpodzime) - -* Mon Aug 24 2015 Brian C. Lane - 1.13-1 -- Add CONTRIBUTING file to blivet. (sbueno+anaconda) -- Merge pull request #208 from vpodzime/master-luks_catch_exceptions (vpodzime) -- Fix the name of the variable specifying requested libblockdev plugins - (#1256273) (jstodola) -- Merge pull request #209 from vpodzime/master-thinp_fix (vpodzime) -- Change labelFormatOK to classmethods (vtrefny) -- Add 'build' and '.directory' to gitignore (vtrefny) -- Fix copy method (#1254135) (bcl) -- Add OSError to list of errors in updateSysfsPath (#1252949) (bcl) -- Remove the cacheRequest kwarg for thin(pool) LVs (#1254567) (vpodzime) -- Do not propagate low-level blockdev.CryptoError when setting up LUKS - (#1253925) (vpodzime) -- Merge pull request #199 from vpodzime/master-lvm_cache_tests (vpodzime) -- Merge pull request #201 from vpodzime/master-mountsCache_resolve_devspec - (vpodzime) -- Prefer code consistency over pylint's complaints in tests (vpodzime) -- Add a basic test for cached LVMLogicalVolumeDevice's properties (vpodzime) -- Add a basic test for LVMLogicalVolumeDevice's properties (vpodzime) -- Make sure LV's properties reporting size return a Size instance (vpodzime) -- Add unit tests for the LVM cache support (vpodzime) -- Use device name from udev only if it's available (#1252052) (vpodzime) -- Add test for getFreeSpace aligning (vtrefny) -- Allow aligning free regions to disk grainSize (#1244671) (vtrefny) -- Fix _unalignedMaxPartSize for logical partitions (#1250890) (vtrefny) - -* Fri Aug 07 2015 Brian C. Lane - 1.12-1 -- Remove unusable free regions from list when setting up growth. (dlehman) -- Merge pull request #190 from vpodzime/master-lvm_cache_creation (dlehman) -- Merge pull request #194 from dwlehman/mount-cache-symlinks (dlehman) -- Merge pull request #193 from dwlehman/md-fwraid-detection (dlehman) -- Add unit tests to cover md containers. (dlehman) -- Minor cleanup of blivet.formats.fs.BTRFS._preSetup. (dlehman) -- Fix isDisk and partitionable properties for md fwraid. (dlehman) -- Don't use MD_DEVNAME as device name for md partitions. (dlehman) -- Use udev to find name of md members' container. (dlehman) -- Call superclass ctor a bit later to get size attrs set up first. (dlehman) -- updateSize for md containers is a no-op. (dlehman) -- Fix UnboundLocalError in FSMinSize (#1249304) (vtrefny) -- Fix mount cache resolution of devices with symlinks. (#1247803) (dlehman) -- Add kwarg to udev.resolve_devspec to return canonical device name. (dlehman) -- Use slow as well as fast PVs for cached LV's non-cache part (vpodzime) -- Make VG determination in Blivet.newLV() less cryptic (vpodzime) -- Reserve space for LVM cache(s) when growing LVM requests (vpodzime) -- Create cached LVs before non-cached LVs (vpodzime) -- Add support for LVM cache creation to LVM device classes (vpodzime) -- Add generic class for cache creation requests (vpodzime) -- Two minor fixes in LVMLogicalVolumeDevice's constructor's docstring - (vpodzime) - -* Fri Jul 31 2015 Brian C. Lane - 1.11-1 -- Put MDRaidArrayDevice.devices back, but mark it as deprecated. (dlehman) -- Skip tearing down devices when unmounting filesystems (bcl) -- Include details when umount fails (bcl) -- Merge pull request #183 from dwlehman/tests-20150728 (dlehman) -- Merge pull request #182 from dwlehman/devicefactory-20150728 (dlehman) -- Merge pull request #184 from dwlehman/misc-20150728 (dlehman) -- Enable unit test suite in jenkins. (dlehman) -- Disable image-backed unit tests temporarily. (dlehman) -- Add some tests for DeviceFactory. (dlehman) -- Do basic child accounting when replacing a parent. (dlehman) -- Set new raid level on correct device in MDFactory. (dlehman) -- Fix container member switching when toggling member encryption. (dlehman) -- Don't adjust actual lv size based on md metadata space requirements. - (dlehman) -- Merge pull request #57 from vpodzime/master-luks_npass (vpodzime) -- Fix names of the keyword arguments for luks_add_key and luks_remove_key - (vpodzime) -- Make a better effort to clean up loop devices on failure. (dlehman) -- Correctly get current size of disk files. (dlehman) -- Don't warn about missing UUIDs for non-existent containers. (dlehman) -- Only check disks for membership in a multipath. (dlehman) -- Only update md array name if MD_DEVNAME is set. (#1212073) (dlehman) -- Weed out unresolved macros in the check-requires target. (clumens) -- Merge pull request #126 from vpodzime/master-translations_subpackage - (vpodzime) -- Put translations into a subpackage shared by Python 2 and 3 (vpodzime) -- Require pygobject3-base instead of pygobject (#1246842) (dshea) -- Add method to list primary partitions (vtrefny) -- Merge pull request #179 from dwlehman/size-followups (dlehman) -- Fix test for failure to find space for device. (dlehman) -- Make sure factory target size is within the limits of the fstype. (dlehman) -- Unset obsolete format before updating device size. (dlehman) -- Make sure size is numeric before comparing it with format minimum. (dlehman) -- Don't constrain thin lv sizes to vg free space. (dlehman) - -* Fri Jul 24 2015 Brian C. Lane - 1.10-1 -- Merge pull request #177 from AdamWill/1245446 (dlehman) -- use floor division in calculating amount to reclaim (#1245446) (awilliam) -- Remember to use the shell command when calling external stuff in Makefile. - (clumens) -- Add a new makefile target that does everything needed for jenkins. (clumens) -- Add missing gobject introspection Requires (bcl) -- Add install-requires Makefile target (bcl) -- Update md and btrfs unit tests to run with recent size changes. (dlehman) -- Set format attr after super ctor for md. (dlehman) -- Account for container layer in md fwraid array properties. (dlehman) -- Ensure format is a DeviceFormat during initialization. (dlehman) -- Set target size when setting other size attrs. (dlehman) -- Use 'members' attribute to list RAID member devices. (dlehman) -- BTRFS subvolumes shouldn't inherit from RAIDDevice. (dlehman) -- Require a non-empty member set for md disks. (dlehman) -- Mock mount cache while running action tests. (dlehman) -- Account for recent lvm snapshot format changes in tests. (dlehman) -- Bump size of non-existent devices to format minimum. (dlehman) -- Don't pass createOptions along when creating the btrfs device. (clumens) -- Merge pull request #59 from vpodzime/master-tab_tab (vpodzime) -- Implement the __dir__ method of the LazyImportObject class (vpodzime) - -* Thu Jul 16 2015 Brian C. Lane - 1.9-1 -- Apply default size for new partition earlier in constructor. (dlehman) -- Don't pass model to md fwraid constructor. (#1242610) (dlehman) - -* Fri Jul 10 2015 Brian C. Lane - 1.8-1 -- Add a bunch more gi.require_version calls (dshea) -- Merge pull request #170 from dwlehman/size-cleanups (dlehman) -- Add unit tests for device size setters and getters. (dlehman) -- Only return target size if it is set to something meaningful. (dlehman) -- Validate new formats against current device size. (dlehman) -- Device size checks do not apply to existing devices. (dlehman) -- Make sure subclasses size setters use the base setter as appropriate. - (dlehman) -- x-initrd.mount should only be set for /var (#1238603) (bcl) -- There's a python3 anaconda now, so ditch the temporary false positives. - (clumens) -- Fix a syntax error caused by my previous commit. (clumens) -- Fix a duplicate key caused by patch merging. (clumens) -- Add support for specifying arbitrary mkfs options. (clumens) -- Align free regions before choosing one. (dlehman) -- Align partition sizes earlier in the allocation process. (dlehman) -- Don't crash on cleanup with DASDs or iSCSI devices present. (#1166506) - (dlehman) -- Make check-requires errors more readable. (dshea) -- Merge pull request #166 from dwlehman/autopart-snapshot-branch (dlehman) -- Default to a string when sorting mountpoints in FSSet.umountFilesystems. - (dlehman) -- Fix order of arguments to blockdev.thsnapshotcreate. (dlehman) -- Snapshot format exists upon snapshot creation. (dlehman) -- Improve format handling for lvm snapshots. (dlehman) -- Merge pull request #160 from dwlehman/lookup-method-deprecations (dlehman) -- Deprecate some little-used devicetree lookup methods. (dlehman) -- Add a decorator to mark deprecated functions/methods. (dlehman) -- Log python warnings, including DeprecationWarning. (dlehman) -- Catch and relay more exception types from the iscsi process (dshea) -- Use the pipes as contextmanagers to ensure they are closed (dshea) -- Close the unused half of pipes after the fork (dshea) - -* Fri Jun 26 2015 Brian C. Lane - 1.7-1 -- Merge pull request #167 from mulkieran/master-format-copy-b (mulkieran) -- Merge pull request #156 from vpodzime/master-lvm_cache_actually (vpodzime) -- Add cache support to the LVMLogicalVolumeDevice class (vpodzime) -- Copy all DeviceFormat objects using deepcopy. (amulhern) -- Make use of FSTask and FSUnimplementedTask in FS* tasks. (amulhern) -- Add an abstract parent of all filesystem tasks. (amulhern) -- Merge pull request #162 from dwlehman/storage-device-format-type-consistency - (dlehman) -- Merge pull request #138 from dwlehman/partitionable-md (dlehman) -- Document the fact that StorageDevice.format is always a DeviceFormat. - (dlehman) -- Ignore some interruptible system call warnings (dshea) -- Retry interruptible calls (dshea) -- Ignore EINTR from os.close instead of retrying the call (dshea) -- Add kwargs to eintr_retry_call (dshea) -- Specify required version of GI-imported packages (vpodzime) -- Add classes for LVM cache related functionality (vpodzime) -- Add generic classes for cache and cache stats (vpodzime) -- Merge pull request #149 from vpodzime/master-lvm_cache (vpodzime) -- Implement the support for resizing internal metadata LVs of thin pools - (vpodzime) -- Use relations between LVs to determine parent LV (vpodzime) -- Make Blivet.lvs return all LVs not just traditional/thick LVs (vpodzime) -- Accept both list and ParentList when checking LVs parents (vpodzime) -- Create and use internal LVs instead of static values (vpodzime) -- Add classes for the internal LVs of various types (vpodzime) -- Merge pull request #137 from dwlehman/md-boot-metadata-branch (dlehman) -- Treat existing md arrays whose members are all disks like disks. (dlehman) -- Handle formatting after adding devices from format handlers. (dlehman) -- Merge pull request #158 from mulkieran/master-target-size (mulkieran) -- Move parents checking and update into a seprarate methods (vpodzime) -- Rearrange and group some of the StorageDevice's methods/properties (vpodzime) -- Don't crash when processing cached LVs (vpodzime) -- Make roundToNearest() slightly more robust. (amulhern) -- Extend Size.convertTo() to work with arbitrary Size() values. (amulhern) -- Changes to FS._setTargetSize(). (amulhern) -- Increase ext4 maximum size from 16 TiB to 1 EiB (#1231049) (bcl) -- Merge pull request #155 from atodorov/fix_issue_154 (mulkieran) -- Use len of set to check for duplicates in list of packages. (atodorov) -- Merge pull request #153 from mulkieran/master-task-names (mulkieran) -- Omit completely pointless setUp method. (amulhern) -- Make a size refer to a Size object. (amulhern) -- Add __str__ method to various subclasses of Task. (amulhern) -- Don't pass unused mountpoint dict to preCommitFixup. (dlehman) -- Use the default md metadata version for everything except /boot/efi. - (dlehman) - -* Wed Jun 10 2015 Brian C. Lane - 1.6-1 -- Fix indentation in action_test.py (dlehman) -- Merge pull request #133 from atodorov/fix_deprecation_warnings (mulkieran) -- Merge pull request #147 from vojtechtrefny/master_fix_undo_resize (vtrefny) -- Fix setting original size for format resize action. (#1225352) (vtrefny) -- Make unit test assertion expressions fully Python2/3 compatible. (atodorov) -- Merge pull request #151 from mulkieran/master-120 (mulkieran) -- Merge pull request #122 from atodorov/remove_doctest (mulkieran) -- Parameterize Makefile test targets on Python version. (atodorov) -- Merge pull request #148 from mulkieran/master-132 (mulkieran) -- Merge pull request #144 from mulkieran/master-128 (mulkieran) -- Remove facilities for running tests as standalone modules. (atodorov) -- Include automatic and manual test documentation. (atodorov) -- Remove an accidental variable assignment in LVMLogicalVolumeDevice (vpodzime) -- Merge pull request #143 from mulkieran/master-134 (mulkieran) -- Remove two files in tests directory. (atodorov) -- Fix typo in docstring. (atodorov) -- Merge pull request #112 from vpodzime/master-fixed_maps (vpodzime) -- Merge pull request #129 from mulkieran/master-keepers-c (mulkieran) -- Merge pull request #135 from mulkieran/master-test-fixes (mulkieran) -- Convert bytes value to str. (amulhern) -- Change new format lookup name from "msdos" to "disklabel". (amulhern) -- Get rid of pointless test case about arguments for labeling apps. (amulhern) -- Do not raise KeyError if ID_PART_ENTRY_DISK is missing. (amulhern) -- Manage backing store more independently in loop backed test cases. (amulhern) -- Pass floats as string to Decimal constructor everywhere. (amulhern) -- Fix a bug in reading a size specification with a radix in the numeric part. - (amulhern) -- remove mention of doctest b/c target was removed in - fed53d969af0eddaeeca58cdf3e40916497aa305 (atodorov) -- Beware of Python 3's version of the map() built-in function (vpodzime) - -* Thu May 28 2015 Brian C. Lane - 1.5-1 -- Get rid of an unused import in blivet.zfcp (sbueno+anaconda) -- Make appropriate changes to adapt for s390 libblockdev plugin. - (sbueno+anaconda) -- Drop check from the release build target (bcl) -- Merge pull request #127 from vpodzime/master-libblockdev_1.0 (vpodzime) -- Adapt to the new libblockdev initialization API (vpodzime) -- Merge pull request #111 from dwlehman/disk-model-branch (dlehman) -- Store vendor/model information for DiskDevice instances. (dlehman) -- Require new version of pyparted with Python 3 related fixes (vpodzime) -- Merge pull request #114 from vojtechtrefny/fix_lvmsnapshot_size2 (vtrefny) -- Merge pull request #118 from mulkieran/master-hawkey (mulkieran) -- Use python-hawkey instead of rpm-python. (amulhern) -- Add a dead simple test for some basic task and resource functionality. - (amulhern) -- Use COW device to get actual size of LVM snapshots (vtrefny) - -* Mon May 18 2015 Brian C. Lane - 1.4-1 -- Workaround for chrooted mountpoints (#1217578) (vtrefny) -- Merge pull request #116 from mulkieran/master-gerror (mulkieran) -- Filter GLib.GError instead of GLib.Error in pylint false positives. - (amulhern) -- Merge pull request #113 from mulkieran/master-tasks-20150513 (mulkieran) -- Guard tests against device support being missing. (amulhern) -- Add checks for filesystem availability in selinux tests. (amulhern) -- Fix some small mistakes in tests using availability information. (amulhern) -- Get rid of abitrary _resizable variable in tests. (amulhern) -- Don't use utilsAvailable to skip tests. (amulhern) -- Treat a missing plugin as an OK situation. (amulhern) -- Use availability information in device actions. (amulhern) -- Add a check to determine whether the device type is supported. (amulhern) -- If external dependencies are unavailable, cannot support RAID levels. - (amulhern) -- Add availability information to devicelibs files. (amulhern) -- Track external dependencies in devices. (amulhern) -- If lvm is not available, do not do the filtering. (amulhern) -- Add availability checking to non-FS formats. (amulhern) -- Use filesystem tasks in filesystem. (amulhern) -- Add filesystem tasks to tasks directory. (amulhern) -- Add tasks infrastructure to tasks directory. (amulhern) -- Add error to detect errors in discovering availability info. (amulhern) -- Add errors about reading and writing labels to error heirarchy. (amulhern) -- Make assignments that override abstract properties into simple attributes. - (amulhern) -- Move kernel_filesystems functionality into a little library. (amulhern) -- Make labeling(), relabels(), and labelFormatOK() instance methods. (amulhern) -- Merge pull request #108 from vojtechtrefny/progress_callbacks (vtrefny) -- Merge pull request #109 from mulkieran/master-btrfs-c (mulkieran) -- Set a subvolspec format args when making a new BTRFS volume. (amulhern) -- Cache data obtained from /proc/self/mountinfo. (amulhern) -- Add progress report callback for action processing (vtrefny) -- Do not have two ignored variables when one will do. (amulhern) -- Fix a typo in comment. (amulhern) -- Do not use type() in makebumpver. (clumens) -- Merge pull request #100 from mulkieran/master-lvm-a (mulkieran) -- Merge pull request #104 from mulkieran/master-1139222 (mulkieran) -- Include LUKSDevice information in kickstart data (#1139222) (amulhern) -- Un-escape '-'s in names or paths for _all_ lvm lv or vgs. (amulhern) -- Fix a few miscellaneous pylint-caught problems. (clumens) -- Only give Size objects a __div__ method under python2. (clumens) -- Protect against calling testMount on an object that may not have it. - (clumens) -- Add a bunch of false positives to make pylint succeed. (clumens) -- e.message -> str(e) (clumens) -- Disable a pointless override warning. (clumens) -- Ignore the environment-modify pylint warnings for size_test.py. (clumens) -- blockdevError -> BlockDevError (clumens) -- Remove uses of the string module we don't need, ignore warnings on those we - do. (clumens) -- unicode isn't undefined on the python2 code paths. (clumens) -- Use eintr_retry_call from anaconda. (clumens) -- Move blivet to using pocketlint. (clumens) -- Merge pull request #97 from mulkieran/master-1072060 (mulkieran) -- Merge pull request #93 from vojtechtrefny/fix_active_parted (vtrefny) -- If the parent volume has a label, use it in subvol's kickstart (#1072060) - (amulhern) -- Merge pull request #94 from mulkieran/master-raid (mulkieran) -- Allow adding new partitions to disks with active devices (#1212841) (vtrefny) -- Fix "anaconda hangs while trying to discover iscsi..." (#1166652) (jkonecny) -- Move definition of _level attribute above super-constructor call. (amulhern) -- Fix status for LVMPhysicalVolume format (vtrefny) - -* Wed Apr 22 2015 Brian C. Lane - 1.3-1 -- fix conf.py pylint errors (bcl) -- Fix BlockDev import in populator.py (bcl) -- Prevent pylint from going crazy because of libblockdev's ErrorProxy - (vpodzime) -- Make use of the new libblockdev error reporting (vpodzime) -- Add libselinux-python to package dependencies (#1211834) (vtrefny) -- Introduce a new doReqPartition method that is similar to doAutoPartition. - (clumens) -- Merge pull request #81 from mulkieran/master-mount-options (mulkieran) -- Merge pull request #66 from vpodzime/master-py3_final (martin.kolman) -- Encode input for os.write() (mkolman) -- Build the python3-blivet subpackage (vpodzime) -- Do not modify dict while iterating over its values (vpodzime) -- Do not try to compare strings and Nones when sorting mountpoints (vpodzime) -- Always return strings from regular capture output run functions (mkolman) -- Do not use variable from an inner comprehension in tests (vpodzime) -- Implement and test Python 3 division for the Size class (vpodzime) -- Replace python 2 build-in-function cmp() with custom method (vtrefny) -- Do not rely on __sub__ being implemented as __add__ (-1)* (vpodzime) -- Transform our compare functions into key functions and use these instead - (vpodzime) -- Fix the size_test to stop using byte strings (vpodzime) -- Do not define unit strings as byte strings (vpodzime) -- Do not pass context to Decimal numeric operations (vpodzime) -- Don't call object's (as a class) __new__ with extra arguments (vpodzime) -- Make translation to lowerASCII Python[23]-compatible (vpodzime) -- Replace __import__ call with importlib.import_module (vpodzime) -- In FS._postSetup() check the mountpoint options that were actually used. - (amulhern) -- Add kwargs to unmount and move mountpoint check into _preSetup (bcl) -- Do not try importing hidden/backup files as formats (vpodzime) -- Add back DeviceTree's support for saving LUKS passphrases (vpodzime) -- Do not try to stat FileDevice's path if it doesn't exist (vpodzime) -- Merge pull request #76 from dwlehman/unusable-storage-branch (dlehman) -- Add error handling around storageInitialize for unusable setups. (dlehman) -- Include suggestions in error classes for unusable storage configurations. - (dlehman) -- Use partially corrupt gpt disklabels. (dlehman) -- Consolidate common code in DeviceFormat class methods. (dlehman) -- Update get_mount_paths to use mountsCache (bcl) -- Add multiple mountpoint handling to MountsCache (bcl) -- Remove obsolete FIXME from FS.status (bcl) -- Check to see if mountpoint is already mounted (bcl) -- Add isMountpoint to MountsCache (bcl) -- Add ability to unmount specific mountpoints (bcl) -- Fix pylint errors for six.moves import (vtrefny) -- Merge pull request #72 from vojtechtrefny/picklable-size (vpodzime) -- Merge pull request #74 from mulkieran/master-trivia (mulkieran) -- Fix two instances where check_equal() returned True incorrectly. (amulhern) -- Fix typo in 66f2ddb11e85ec6f48535d670dd6f24cb60cbe55. (amulhern) -- Make sure installer_mode is reset to original value. (amulhern) -- Test for Size pickling support (vtrefny) -- Pickling support for Size. (vtrefny) -- Disable pylint bad-super-call in MDRaidArrayDevice.updateSize. (dlehman) -- Merge pull request #68 from dwlehman/parted-device-branch (dlehman) -- Require reallocation after changing an allocated partition's size. (dlehman) -- Move mediaPresent out of Device and into StorageDevice. (dlehman) -- Don't use parted.Device to obtain size info. (dlehman) -- Merge pull request #70 from mulkieran/master-1208536 (mulkieran) -- Prepend /sys to sysfs path for udev lookup (#1208536) (amulhern) -- Fall back on mdadm info if udev info is missing for the array (#1208536) - (amulhern) -- Catch DeviceError as well as ValueError (#1208536) (amulhern) -- Make an MDContainerDevice if that is the right model (#1208536) (amulhern) -- Change raid variable name to raid_items (#1208536) (amulhern) -- Fix swapped args to processActions. (dlehman) -- Merge pull request #63 from dwlehman/disk-selection-branch (dlehman) -- Use VGname-LVname as key for LVinfo cache (vpodzime) -- Add back DeviceTree's methods and properties used from the outside (vpodzime) -- Wrap keys() with a list so that the dictionary can be changed (martin.kolman) -- Add a method to list disks related by lvm/md/btrfs container membership. - (dlehman) -- Make getDependentDevices work with hidden devices. (dlehman) - -* Fri Mar 27 2015 Brian C. Lane - 1.2-1 -- Fix pylint unused variable warnings (vtrefny) -- Add test for mountpoints (vtrefny) -- Replace _mountpoint with systemMountpoint in other modules (vtrefny) -- New method to handle nodev filesystems (vtrefny) -- Add dynamic mountpoint detection support (vtrefny) -- New method to compute md5 hash of file (vtrefny) -- Add information about subvolume to BTRFS format (vtrefny) -- Don't specify priority in fstab if -1 (default) is used (#1203709) (vpodzime) -- Catch GLib.GError in places where we catch StorageError (#1202505) (vpodzime) -- slave_dev is undefined here, use slave_devices[0] instead. (clumens) -- Clean out the mock chroot before attempting to run the rest of the test. - (clumens) -- Move recursiveRemove from Blivet to DeviceTree. (dlehman) -- Factor out adding of sysfs slave (parent) devices into its own method. - (dlehman) -- Add a __str__ method to DeviceTree. (dlehman) -- Allow changing the names of existing devices. (dlehman) -- Remove redundant block for adding fwraid member disks. (dlehman) -- Return a device from addUdevLVDevice if possible. (dlehman) -- Pass a sysfs path to MultipathDevice constructor from Populator. (dlehman) -- Resolve md names in udev info. (dlehman) -- LVMVolumeGroupDevice format should be marked as immutable. (dlehman) -- Don't catch and re-raise device create exceptions as DeviceCreateError. - (dlehman) -- Call superclass _preCreate from BTRFSVolumeDevice._preCreate. (dlehman) -- Move code that populates the device tree into a new class and module. - (dlehman) -- Move action list management into a separate class and module. (dlehman) -- Put an __init__.py in devices_tests directory. (amulhern) -- Require the Python 2 version of pykickstart (#1202255) (vpodzime) -- Use Size method to perform a Size operation (#1200812) (amulhern) -- Extend Size.roundToNearest to allow Size units (#1200812) (amulhern) -- Move code that populates the device tree into a new class and module. - (dlehman) -- Move action list management into a separate class and module. (dlehman) -- Remove a pointless override. (amulhern) -- Display the name of the overridden ancestor in error message. (amulhern) -- Check for simple function calls in pointless overrides. (amulhern) -- Simplify supported methods in FS.py. (amulhern) -- Make hidden property use superclass method where possible. (amulhern) -- Simplify some methods in DeviceFormat class. (amulhern) -- Do supercall in BTRFSVolumeDevice.formatImmutable. (amulhern) -- Add a comment to supported property. (amulhern) -- Get rid of some very old commented out code. (amulhern) -- Put all mock results into the top-level source dir. (clumens) -- Spell TestCase.teardown correctly as tearDown(). (amulhern) -- Make testMount() check return value of util.mount(). (amulhern) -- Remove unused fs_configs. (amulhern) -- Remove side-effects from mountType property. (amulhern) -- Do not make the mountpoint directory in fs.FS.mount(). (amulhern) -- Mount should not be satisfied with anything less than a directory. (amulhern) -- Do not return doFormat() value. (amulhern) -- Put previously removed mountExistingSystem() into osinstall.py. (amulhern) -- Revert "Revive the mountExistingSystem() function and all it needs" - (amulhern) -- Make sure the device is setup before formatting it (#1196397) (bcl) -- Use %%d format string for every value that should be an integer decimal. - (amulhern) -- Robustify PartitionDevice._wipe() method. (amulhern) -- Fix up scientific notation _parseSpec() tests. (amulhern) -- Make size._parseSpec a public method. (amulhern) -- Simplify StorageDevice.disks. (amulhern) -- Simplify StorageDevice.growable. (amulhern) -- Simplify and correct StorageDevice.packages property. (amulhern) -- Remove services infrastructure from devices and formats. (amulhern) -- Split devices tests out into a separate directory. (amulhern) -- Fix dd wipe call. (exclusion) -- Add a script to rebase and merge pull requests (dshea) -- Add pylint false positive to list of pylint false positives. (amulhern) -- Change all instances of GLib.Error to GLib.GError. (amulhern) -- Sort pylint-false-positives using sort's default options with LC_ALL=C. - (amulhern) -- Add ability to match scientific notation in strings. (amulhern) - -* Fri Mar 06 2015 Brian C. Lane - 1.1-1 -- Add scratch, scratch-bumpver and rc-release targets. (bcl) -- Add --newrelease to makebumpver (bcl) -- Add po-empty make target (bcl) -- Revive the mountExistingSystem() function and all it needs (vpodzime) -- Switch translations to use Zanata (bcl) -- Set EFIFS._check to True so that it gets correct fspassno (#1077917) - (amulhern) -- Use format string and arguments for logging function (vpodzime) -- Merge pull request #28 from vpodzime/master-libblockdev (vratislav.podzimek) -- Do not restrict MDRaidArrayDevice's memberDevices to type int (vpodzime) -- Adapt better to libblockdev's md_examine data (vpodzime) -- Set TmpFS._resizable to False. (amulhern) -- Add an additional test for TmpFS. (amulhern) -- Override NoDevFS.notifyKernel() so that it does nothing. (amulhern) -- Add TmpFS._resizefsUnit and use appropriately. (amulhern) -- Rewrite TmpFS class definition. (amulhern) -- Add TmpFS._getExistingSize() method. (amulhern) -- Make _getExistingSize() method more generally useful. (amulhern) -- Remove _getExistingSize() methods with body pass. (amulhern) -- Tidy up the definition of the device property throughout formats package. - (amulhern) -- Add a test to check properties of device paths assigned to formats. - (amulhern) -- Set TmpFSDevice object's _formatImmutable attribute to True. (amulhern) -- Remove no longer needed requires (vpodzime) -- Filter out pylint's "No name 'GLib' in module 'gi.repository'" messages - (vpodzime) -- Add a static method providing list of available PE sizes (vpodzime) -- Use BlockDev's crypto plugin to do LUKS escrow (vpodzime) -- Use BlockDev's DM plugin to work with DM RAID sets (vpodzime) -- Use BlockDev's DM plugin for DM map existence testing (vpodzime) -- Remove tests for the removed devicelibs functions (vpodzime) -- Set and refresh BlockDev's global LVM config if needed (vpodzime) -- Use BlockDev's LVM plugin instead of devicelibs/lvm.py (vpodzime) -- Use BlockDev's BTRFS plugin instead of devicelibs/btrfs.py (vpodzime) -- Use the BlockDev's DM plugin instead of devicelibs/dm.py (vpodzime) -- Use BlockDev's crypto plugin instead of devicelibs/crypto.py (vpodzime) -- Use BlockDev's loop plugin instead of devicelibs/loop.py (vpodzime) -- Use BlockDev's MD plugin instead of devicelibs/mdraid.py (vpodzime) -- Use BlockDev's swap plugin instead of devicelibs/swap.py (vpodzime) -- Use BlockDev's mpath plugin instead of devicelibs/mpath.py (vpodzime) -- First little step towards libblockdev (vpodzime) -- Move the Blivet class into its own module (vpodzime) -- Use a safer method to get a dm partition's disk name. (dlehman) -- Be more careful about overwriting device.originalFormat. (#1192004) (dlehman) - -* Fri Feb 13 2015 David Lehman - 1.0-1 -- Move autopart and installation-specific code outside of __init__.py - (vpodzime) -- Convert _parseUnits to public function (vtrefny) -- LVMFactory: raise exception when adding LV to full fixed size VG (#1170660) - (vtrefny) -- Do not unhide devices with hidden parents (#1158643) (vtrefny) - -* Fri Feb 06 2015 Brian C. Lane - 0.76-1 -- Revert "Switch to temporary transifex project" (bcl) -- Check parent/container type for thin volumes and normal volumes. (dlehman) -- drop useless entries from formatByDefault exceptlist (awilliam) -- Fix import of devicelibs.raid in platform.py (vpodzime) -- Use %%license in python-blivet.spec (bcl) -- Fix import of FALLBACK_DEFAULT_PART_SIZE (vpodzime) -- Make implicit partitions smaller if real requests don't fit anywhere - (vpodzime) -- Use list comprehension instead of filter+lambda in makebumpver (amulhern) -- Revert "Try to deactivate lvm on corrupted gpt disks." (dlehman) -- Virtualize options property methods in DeviceFormat.options definition. - (amulhern) -- Do not redefine size property in TmpFS. (amulhern) -- Do not set self.exists to True in TmpFS.__init__(). (amulhern) -- Simplify NoDevFS.type. (amulhern) -- Set format's mountpoint if it has the mountpoint attribute. (amulhern) -- Do not bother to set device.format.mountopts. (amulhern) -- Tighten up FS.mountable(). (amulhern) -- Simplify FS._getOptions(). (amulhern) -- Simplify setting options variable. (amulhern) -- Be less eager about processing all lines in /proc/meminfo. (amulhern) -- Make error message more useful. (amulhern) -- Add a tiny test for TmpFS. (amulhern) -- More fixes for alignment-related partition allocation failures. (dlehman) -- Do not mix stdout and stderr when running utilities unless requested - (vpodzime) -- Define the _device, _label and _options attributes in constructor (vpodzime) -- Get rid of the has_lvm function (vpodzime) -- Do not create lambda over and over in a cycle (vpodzime) -- Disable pylint check for cached LVM data in more places (vpodzime) -- Fix issue where too many mpath luns crashes installer (#1181336) (rmarshall) -- Allow user-specified values for data alignment of new lvm pvs. (#1178705) - (dlehman) -- Let LVM determine alignment for PV data areas. (#962961) (dlehman) -- Raise UnusableConfigurationError when unusable configuration is detected. - (dlehman) -- Don't raise an exception for failure to scan an ignored disk. (dlehman) -- Try to deactivate lvm on corrupted gpt disks. (dlehman) -- Remove an unused and outdated constant (vpodzime) -- Relax the blivet device name requirements (#1183061) (dshea) - -* Fri Jan 16 2015 Brian C. Lane - 0.75-1 -- Switch to temporary transifex project (bcl) -- Add docstrings to the methods in loop.py (bcl) -- get_loop_name should return an empty name if it isn't found (#980510) (bcl) -- Use dict() instead of dict comprehension. (riehecky) -- Fix the pylint errors in the examples directory. (amulhern) -- Add __init__ file to examples directory. (amulhern) - -* Fri Jan 09 2015 Brian C. Lane - 0.74-1 -- Use _resizefsUnit in resizeArgs() method implementations. (amulhern) -- Do not supply a default implementation for the resizeArgs() method. - (amulhern) -- Use convertTo in humanReadable(). (amulhern) -- Change convertTo() and roundToNearest() so each takes a units specifier. - (amulhern) -- Do not even pretend that ReiserFS is resizable. (amulhern) -- Get whole unit tuple in loop when searching for correct units. (amulhern) -- Make _parseUnits() return a unit constant, rather than a number. (amulhern) -- Add unitStr() method. (amulhern) -- Make _Prefix entries named constants. (amulhern) -- Hoist _BINARY_FACTOR * min_value calculation out of loop. (amulhern) -- Comment _prefixTestHelper() and eliminate some redundancies. (amulhern) -- Eliminate redundant test. (amulhern) -- Avoid using Size constant in FileDevice._create(). (amulhern) -- Do not compare the same two values twice. (amulhern) -- Make possiblePhysicalExtents() a bit more direct. (amulhern) -- Get rid of unnecessary use of long. (amulhern) -- Use _netdev mount option as needed. (#1166509) (dlehman) -- Don't crash when a free region is too small for an aligned partition. - (dlehman) -- Multiple loops shouldn't be fatal (#980510) (bcl) -- If allowing degraded array, attempt to start it (#1090009) (amulhern) -- Add a method that looks at DEVNAME (#1090009) (amulhern) -- Add mdrun method to just start, not assemble, an array. (#1090009) (amulhern) -- Change allow_degraded_mdraid flag to allow_imperfect_devices (#1090009) - (amulhern) -- Remove needsFSCheck() and what only it depends on. (amulhern) -- Remove allowDirty parameter and code that depends on it. (amulhern) -- Eliminate dirtyCB parameter from mountExistingSystem() params. (amulhern) -- Use correct package for FSError. (amulhern) - -* Fri Dec 19 2014 Brian C. Lane - 0.73-1 -- Mountpoint detection for removable devices (vtrefny) -- Fix adding partition after ActionDestroyDevice canceling (vtrefny) -- Avoid exception when aligned start and end are crossed over (exclusion) -- Substitute simple value for single element array. (amulhern) -- Change _matchNames so that it is less restrictive (amulhern) -- Change MDRaidArrayDevice to MDBiosRaidArrayDevice. (amulhern) -- Factor out MDRaidArrayDevice w/ type in ("mdcontainer", "mdbiosraidarray") - (amulhern) -- Make it possible for NTFS to recognize the label it reads. (amulhern) -- Make unnecessarily verbose properties into simple class attributes. - (amulhern) -- Change the generic badly formatted label to one that's bad for all. - (amulhern) -- Don't make overridden values actual properties. (amulhern) -- Check the status of the format being mounted. (amulhern) - -* Thu Dec 04 2014 Brian C. Lane - 0.72-1 -- Add a bunch of simple tests for filesystem formats. (amulhern) -- Get rid of long() related code. (amulhern) -- Add another check for resizable in FS.doResize() (amulhern) -- Simplify FS.free(). (amulhern) -- Make an early exit if self._existingSizeFields is [] (amulhern) -- Change "Aggregate block size:" to "Physical block size:" for JFS. (amulhern) -- Split output from infofs program for size on whitespace. (amulhern) -- Simplify _getSize() and currentSize(). (amulhern) -- Check resizable when assigning a new target size. (amulhern) -- Make default exists value a boolean in DeviceFormat.__init__. (amulhern) -- Remove pointless overrides. (amulhern) -- Add a simple pylint checker for pointless overrides. (amulhern) -- Run dosfsck in non-interactive mode (#1167959) (bcl) - -* Fri Nov 21 2014 Brian C. Lane - 0.71-1 -- Remove redundant import. (amulhern) -- Change inclusion to equality. (amulhern) -- Round filesystem target size to whole resize tool units. (#1163410) (dlehman) -- New method to round a Size to a whole number of a specified unit. (dlehman) -- Fix units for fs min size padding. (dlehman) -- Disable resize operations on filesystems whose current size is unknown. - (dlehman) -- Run fsck before obtaining minimum filesystem size. (#1162215) (dlehman) -- Fix setupDiskImages when the devices are already in the tree. (dlehman) -- Make logging a little less verbose and more useful in FS.mount() (amulhern) -- Make selinux test less precise. (amulhern) -- Do not translate empty strings, gettext translates them into system - information (vtrefny) -- Add a tearDown method to StorageTestCase. (dlehman) -- Remove pointless assignment to _formattable in Iso9660FS. (amulhern) -- Remove BTRFS._resizeArgs() (amulhern) -- Add more arguments to mpathconf (#1154347) (dshea) -- Check the minimum member size for BtrfsVolumeDevices. (amulhern) -- Get rid of FS._getRandomUUID() method. (amulhern) -- Eliminate TmpFS.minSize() (amulhern) -- Don't run selinux context tests when selinux is disabled. (dlehman) -- Temporarily disable a test that isn't working. (dlehman) -- Pass a path (not a name) to devicePathToName. (dlehman) -- devicePathToName should default to returning a basename. (dlehman) -- Fix test that guards forcible removal of dm partition nodes. (dlehman) -- Device status can never be True for non-existent devices. (#1156058) - (dlehman) -- Use super to get much-needed MRO magic in constructor. (#1158968) (dlehman) - -* Thu Nov 06 2014 Brian C. Lane - 0.70-1 -- Add a method that determines whether a number is an exact power of 2. - (amulhern) -- Put size values in Size universe eagerly. (amulhern) -- Update minSize method headers. (amulhern) -- Remove _minSize assignment to 0 where it's inherited from superclass. - (amulhern) -- Make _minInstanceSize, a source of minSize() value, always a Size. (amulhern) -- Fix int * Size operation and add tests (#1158792) (bcl) -- getArch should return ppc64 or ppc64le (#1159271) (bcl) -- Pack data for the wait_for_entropy callback (vpodzime) -- Allow the wait_for_entropy callback enforce continue (vpodzime) - -* Tue Nov 04 2014 Brian C. Lane - 0.69-1 -- Increase max depth of sphinx toc to show subpackage names. (dlehman) -- Temporarily disable the md devicetree tests due to mdadm issues. (dlehman) -- Add ability to set a default fstype for the boot partition (#1112697) (bcl) -- Pass a list of string items to log_method_return. (sbueno+anaconda) -- Require resize target sizes to yield aligned partitions. (#1120964) (dlehman) -- Split out code to determine max unaligned partition size to a property. - (dlehman) -- Allow generating aligned geometry for arbitrary target size. (dlehman) -- Align end sector in the appropriate direction for resize. (#1120964) - (dlehman) -- Specify ntfs resize target in bytes. (#1120964) (dlehman) -- Check new target size against min size and max size. (dlehman) -- Add a number of new tests. (amulhern) -- Add xlate parameter to humanReadable(). (amulhern) -- Rewrite _parseSpec() and convertTo() (amulhern) -- Make _lowerASCII() python 3 compatible and add a method header. (amulhern) -- Use b"", not u"", for _EMPTY_PREFIX. (amulhern) -- Strip lvm WARNING: lines from output (#1157864) (bcl) -- Add testing for MDRaidArrayDevice.mdadmFormatUUID (#1155151) (amulhern) -- Give mdadm format uuids to the outside world (#1155151) (amulhern) -- Make logSize, metaDataSize, and chunkSize always consistently Size objects. - (amulhern) - -* Wed Oct 22 2014 Brian C. Lane - 0.68-1 -- Only write label if there is a label AND labeling application. (amulhern) -- Handle unicode strings in Size spec parsing. (dshea) -- Fix typo in getting Thin Pool profile's name (vpodzime) -- Don't try to get no profile's name (#1151458) (vpodzime) -- Change signature of DiskLabel.addPartition to be more useful. (dlehman) -- Remove unused fallback code from DiskLabel. (dlehman) -- Let udev settle between writing partition flags and formatting. (#1109244) - (dlehman) -- Set _partedDevice attribute before calling device constructor (#1150147) - (amulhern) -- Fixed wrong Runtime Error raise in _preProcessActions (vtrefny) -- Set sysfsPath attribute before calling Device constructor (#1150147) - (amulhern) -- Return all translated strings as unicode (#1144314) (dshea) -- Force __str__ to return str. (dshea) -- Use the i18n module instead of creating new gettext methods (dshea) -- Take care when checking relationship of parent and child UUIDs (#1151649) - (amulhern) -- Further abstract loopbackedtestcase on block_size. (amulhern) -- Update tests to bring into line w/ previous commit (#1150147) (amulhern) -- Abstract ContainerDevice member format check into a method (#1150147) - (amulhern) -- Register DeviceFormat class (#1150147) (amulhern) -- Don't append btrfs mount options to None (#1150872) (dshea) -- Convert int to str before passing it to run_program (#1151129) (amulhern) - -* Thu Oct 09 2014 Brian C. Lane - 0.67-1 -- Don't pass --disable-overwrite to tx pull. (dlehman) -- Avoid unneccesarily tripping raid-level member count checks. (dlehman) -- Allow toggling encryption of raid container members. (#1148373) (dlehman) -- Include the new blivet.devices submodule in the built package. (clumens) -- Add a few test for setting dataLevel and metaDataLevel in BTRFS (amulhern) -- Add dataLevel and metaDataLevel attributes for testing. (amulhern) -- Add isleaf and direct to _state_functions (amulhern) -- Refactor setup of _state_functions into __init__() methods (amulhern) -- Move getting the attribute into the check methods. (amulhern) -- Adjust detection of exceptions raised. (amulhern) -- Update test setup so that it obeys RAID level requirements. (amulhern) -- Use new RaidDevice class in appropriate Device subclasses. (amulhern) -- Add new RaidDevice class for handling RAID aspects of devices. (amulhern) -- Do not set parents attribute if parents param is bad. (amulhern) - -* Wed Oct 08 2014 Brian C. Lane - 0.66-1 -- Organize installer block device name blacklist. (#1148923) (dlehman) -- Add likely to be raised exceptions to catch block (#1150174) (amulhern) -- Canonicalize MD_UUID* values in udev.py (#1147087) (amulhern) -- Split up devices.py. (dlehman) -- Fix some pylint errors introduced in recent commits. (dlehman) -- Return early when setting new size for non-existent partition. (dlehman) -- Raise an exception when we find orphan partitions. (dlehman) -- Fall back to parted to detect dasd disklabels. (dlehman) -- Omit pylint false positive (amulhern) -- Revert "pylint hack" (amulhern) -- Remove unused import (amulhern) -- Remove unused import (amulhern) -- pylint hack (amulhern) -- Make sure autopart requests fit in somewhere (#978266) (vpodzime) -- Work with free region sizes instead of parted.Geometry objects (vpodzime) -- Check that we have big enough free space for the partition request (vpodzime) -- Allow specifying thin pool profiles (vpodzime) -- Allow specifying minimum entropy when creating LUKS (vpodzime) -- Allow user code provide callbacks for various actions/events (vpodzime) -- Change default min_value from 10 to 1 in humanReadable() (amulhern) -- Rewrite of Size.humanReadable() method (amulhern) -- Factor out commonalities in xlated_*_prefix() methods. (amulhern) -- Use named constants for binary and decimal factors. (amulhern) -- Use UPPER_CASE for constants (amulhern) - -* Tue Sep 30 2014 Brian C. Lane - 0.65-1 -- Remove a problematic remnant of singlePV. (dlehman) -- Remove all traces of singlePV. (sbueno+anaconda) -- Change the default /boot part on s390x to not be lvm. (sbueno+anaconda) -- Remove redundant check for parents in Blivet.newBTRFS. (dlehman) -- Use Decimal for math in Size.convertTo. (dlehman) -- Filter out free regions too small for alignment of partitions. (dlehman) -- Disable LVM autobackup when doing image installs (#1066004) (wwoods) -- Add attribute 'flags.lvm_metadata_backup' (wwoods) -- lvm_test: refactoring + minor fix (wwoods) -- devicelibs.lvm: refactor _getConfigArgs()/lvm() (wwoods) -- devicelibs.lvm: fix pvmove(src, dest=DESTPATH) (wwoods) -- Only pad for md metadata if pvs use multiple disks. (dlehman) -- Align free regions used for partition growing calculations. (dlehman) -- Try to align end sector up when aligning new partitions. (dlehman) -- Remove obsolete conversion of size to float. (dlehman) -- Honor size specified for explicit extended partition requests. (dlehman) -- Honor zerombr regardless of clearpart setting. (dlehman) -- Fix treatment of percent as lvm lv size spec. (dlehman) -- Change variable keyword (#1075671) (amulhern) -- Remove unused import (#1075671) (amulhern) -- Don't mix target and discovery credentials (#1037564) (mkolman) -- Make sure /boot/efi is metadata 1.0 if it's on mdraid. (pjones) -- iscsi: fix root argument being overriden by local variable (#1144463) - (rvykydal) -- iscsi: add iscsi singleton back (#1144463) (rvykydal) - -* Fri Sep 19 2014 Brian C. Lane - 0.64-1 -- Fix pylint errors from recent btrfs commits. (dlehman) -- Only cancel actions on disks related to the one we are hiding. (dlehman) -- Cancel actions before hiding descendent devices. (dlehman) -- Improve handling of device removals/additions from the devicetree. (dlehman) -- The first format destroy action should obsolete any others. (dlehman) -- Do not allow modification or removal of protected devices. (dlehman) -- Propagate mount options for btrfs members to all volumes/subvolumes. - (dlehman) -- Properly identify dm devices even when udev info is incomplete. (dlehman) -- Do not mount btrfs to list subvolumes outside installer_mode. (dlehman) -- Reset default subvolume prior to removing the default subvolume. (dlehman) -- Increase max size for btrfs to 16 EiB. (#1114435) (dlehman) -- Improve adjustment for removal of a subvol in BTRFSFactory. (dlehman) -- Set dummy mountpoint in ksdata for lvm thin pools. (dlehman) -- Add an epoch to blivet. (sbueno+anaconda) -- Check if device has enough members when setting RAID level (#1019685) - (amulhern) -- Add BTRFSValueError error and use in btrfs related code (#1019685) (amulhern) -- iscsi: mount partitions in initramfs for root on iscsi (#740106) (rvykydal) -- Remove poolMetaData (#1021505) (amulhern) -- Revert "Allow use of a single path if multipath activation fails. (#1054806)" - (vpodzime) -- Add a release make target (bcl) -- Prefer ID_SERIAL over ID_SERIAL_SHORT (#1138254) (vpodzime) -- Allow use of a single path if multipath activation fails. (#1054806) - (dlehman) - -* Wed Sep 10 2014 Brian C. Lane - 0.63-1 -- Update makebumpver to include flags on first request (bcl) -- Condense and comment some devicelibs.dasd methods (#1070115) (amulhern) -- Add a test file for DASD handling (#1070115) (amulhern) -- Pylint inspired cleanup (#1070115) (amulhern) -- Add a property for read-only devices. (dshea) -- Get rid of misleading comment (#1066721) (amulhern) -- Allow user code creating free space snapshot (vpodzime) -- Add two functions to enable manual addition of ECKD DASDs. (sbueno+anaconda) -- Make prefering leaves the default in getDeviceByPath (#1122081) (amulhern) -- Make _filterDevices() return a generator consistently (#1122081) (amulhern) -- Split string of symlinks into array of strings (#1136214) (amulhern) -- Don't put "Linux" in a root's name if it's already there. (clumens) - -* Thu Aug 28 2014 Brian C. Lane - 0.62-1 -- Mock pyudev since libudev will not be on the builders. (dlehman) -- Update selinux tests for default context of mounts under /tmp. (dlehman) -- Clean up mocking done by udev tests when finished. (dlehman) -- Remove unused lvm and md activation code. (dlehman) -- Bypass size getter when mocking new devices. (dlehman) -- Simplify udev.device_get_uuid. (dlehman) -- Don't pass md array UUID as member format UUID. (dlehman) -- Update md name when lookup relied on UUID. (dlehman) -- Remove an obsolete block related to unpredictable md device names. (dlehman) -- Get md member and array UUIDs for format ctor from udev. (dlehman) -- Look in udev data for md member UUID. (dlehman) -- Remove some unused multipath-specific functions from blivet.udev. (dlehman) -- Adapt multipath detection code to external pyudev module. (dlehman) -- Keep lvm and md metadata separate from udev info. (dlehman) -- Replace our pyudev with the package python-pyudev. (dlehman) -- Add a bunch of tests for mdadd. (amulhern) -- Make has_redundancy() a method rather than a property and revise mdadd. - (amulhern) -- Omit unnecessary class hierarchy related boilerplate. (amulhern) -- Add a test for activation. (amulhern) -- Add a test for mddetail on containers. (amulhern) -- Still attempt to destroy even if remove failed. (amulhern) -- Use long messages for unittest errors. (amulhern) -- Fix mdnominate error message. (amulhern) -- Cosmetic changes for the swapSuggestion function (vpodzime) -- Break once metadata value is found. (amulhern) -- Fix issues reported by pyflakes (vpodzime) -- Remove tests for the sanityCheck (vpodzime) -- Move _verifyLUKSDevicesHaveKey and its exception to anaconda (vpodzime) -- Remove sanityCheck functions from blivet sources (vpodzime) -- Remove an unused closure function (vpodzime) -- Remove two methods that are never called (vpodzime) -- Add some tests for blivet.partitioning.addPartition. (dlehman) -- Add a couple of tests for blivet.partitioning.DiskChunk. (dlehman) -- Add a DiskFile class for testing partitioning code as a non-root user. - (dlehman) -- Add a contextmanager to create and remove sparse tempfiles. (dlehman) -- Fix sphinx formatting of code blocks in devicefactory docstrings. (dlehman) -- Mock selinux when building docs. (dlehman) -- Include doc files when installing on readthedocs. (dlehman) -- _maxLabelChars is no longer used by anything (bcl) -- tests: Add tests for HFSPlus labels (#821201) (bcl) -- Write a fs label for HFS+ ESP (#821201) (bcl) -- Mock non-standard modules so we can generate API docs on readthedocs. - (dlehman) -- Split mdadd into separate functions. (amulhern) -- Refactor mdraid tests. (amulhern) -- Add a method to extract information about an mdraid array (amulhern) -- Extend mdadm() to capture output (amulhern) -- Be more robust in the face of possible changes to mdadm's UUIDs. (amulhern) -- Factor canonicalize_UUID() into separate method. (amulhern) -- Add a docstring to mdraid.mdexamine (amulhern) -- Remove DeviceFormat.probe() method (amulhern) -- Remove all references to mdMinor in current code base. (amulhern) -- Generalize the error message for the array level (amulhern) -- Use super() instead of explicit parent name (amulhern) -- Remove commented out import. (amulhern) -- Make docstring more precise. (amulhern) -- Minor fix of a docstring. (rvykydal) -- Get rid of partedFlags field. (amulhern) - -* Fri Jul 11 2014 Brian C. Lane - 0.61-1 -- Fix conf.py version bumping (bcl) -- Add some tests for Chunk and Request class hierarchy. (dlehman) -- Honor the skip list when allocating leftover sectors. (dlehman) -- A Chunk is done growing when its pool is empty. (dlehman) -- Don't use integer division to calculate a fraction. (dlehman) -- Bump version in sphinx config from scripts/makebumpver. (dlehman) -- Remove spec= from Size usage in intro.rst. (dlehman) -- Attempt to reset the uuid of the mdraid member device (#1070095) (amulhern) -- Add new method udev.device_get_md_device_uuid() method (#1070095) (amulhern) -- Canonicalize mdadm generated UUIDS (#1070095) (amulhern) -- Add a udev.device_get_md_metadata() method to udev and use it. (amulhern) -- Change use of METADATA to MD_METADATA. (amulhern) -- Check for md_level of None (amulhern) -- Do not convert the result of udev.device_get_md_devices() to int. (amulhern) -- Add documentation to udev.device_get_md_*() methods. (amulhern) -- Document udev.device_get_uuid() method. (amulhern) -- Add a few small tests for mdexamine (amulhern) -- Add test for raid level descriptor None. (amulhern) -- Use context manager with assertRaises*() tests. (amulhern) -- Change uuid parameter to array_uuid (amulhern) -- Remove udev_ prefix from udev methods. (amulhern) -- Remove all references to DeviceFormat.majorminor (amulhern) -- Use add_metaclass instead of with_metaclass. (amulhern) -- Disable redefined-builtin warning. (amulhern) -- Use range instead of xrange in generateBackupPassphrase() (amulhern) -- Add a simple test of generateBackupPassphrase() result format (amulhern) -- Python3 compatibility (rkuska) -- Replace python-setuptools-devel BR with python-setuptools (bcl) - -* Wed Jul 02 2014 Brian C. Lane - 0.60-1 -- Do not use udev info to get the name of the device. (amulhern) -- Remove unnecessary fanciness about importing devices. (amulhern) -- Disable some pylint warnings that arise due to anaconda versions. (amulhern) -- Allow RAID1 on EFI (#788313) (amulhern) - -* Thu Jun 26 2014 Brian C. Lane - 0.59-1 -- When logging, indicate whether exception was ignored by blivet. (amulhern) - -* Wed Jun 25 2014 Brian C. Lane - 0.58-1 -- Only import ROOT_PATH if needed (bcl) -- Add early keyword to setUpBootLoader (#1086811) (bcl) -- Only log a warning about labeling if something is wrong (#1075136) (amulhern) -- When adding an md array, allow adding incomplete arrays (#1090009) (amulhern) -- Add a flag to control whether a degraded md raid array is used (#1090009) - (amulhern) -- Remove preferLeaves parameter from getDeviceByPath() (amulhern) -- Factor out commonalities among getDevice[s|]By* methods. (amulhern) -- Omit special check for md devices in addUdevDevice(). (amulhern) -- Remove unused 'slaves' variable. (amulhern) -- Move down or remove assignment to device in add* methods. (amulhern) -- Move DevicelibsTestCase up to the top level of the testing directory. - (amulhern) -- Accept None for btrfs raid levels (#1109195) (amulhern) -- Add a test for a btrfs error associated with small devices (#1109195) - (amulhern) - -* Thu Jun 19 2014 Brian C. Lane - 0.57-1 -- Make DevicelibsTestCase devices configurable. (amulhern) -- Use correct parameters in __init__() in subclasses of unittest.TestCase. - (amulhern) -- Add num_blocks parameter to makeLoopDev(). (amulhern) -- Move skipUnless decorator to the top level class of skipped classes. - (amulhern) -- Explicitly accept a string as well as a RAIDLevel object. (amulhern) -- Update BTRFS initializer comments for level type. (amulhern) -- Remove some extra imports. (amulhern) -- Add method to set the default disklabel (#1078537) (bcl) -- Do not try to activate dmraid sets if the dmraid usage flag is false - (mkolman) -- Use the value of the Anaconda dmraid flag to set the Blivet dmraid flag - (mkolman) -- Use the value of the Anaconda ibft flag to set the Blivet ibft flag (mkolman) -- Ignore _build directory in doc directory. (amulhern) -- Change intersphinx mapping to avoid linkcheck redirect errors. (amulhern) -- Remove doctest target from Makefile. (amulhern) -- Allow the table of contents to go one level deeper. (amulhern) -- Automate generation of the .rst files which just set up the modules. - (amulhern) - -* Thu Jun 12 2014 Brian C. Lane - 0.56-1 -- Skip device name validation for some device types. (dlehman) -- Add a property indicating whether a device is directly accessible. (dlehman) -- Add support for read-only btrfs snapshots. (dlehman) -- Add tests for snapshots. (dlehman) -- Special treatment for getting parted device for old-style lvm snapshots. - (dlehman) -- Some devices have immutable formatting. (dlehman) -- Detect existing btrfs snapshots. (dlehman) -- Drop special accounting for snapshot space usage in VG. (dlehman) -- Use LVMSnapshotDevice when populating the devicetree. (dlehman) -- Add Device classes for snapshots. (dlehman) -- Add ignore_skip keyword arg to lvactivate. (dlehman) -- Add optional kwarg to force removal of a logical volume. (dlehman) -- Add backend functions for creating and managing snapshots. (dlehman) -- Add docstrings for BTRFSVolumeDevice and BTRFSSubVolumeDevice. (dlehman) -- Remove duplicate portion of lvm config string. (dlehman) -- Reset the devicetree before tearing everything down in _cleanUp. (dlehman) -- Make sure disk filters are applied even if populate fails. (dlehman) -- Sync the spec file with downstream (vpodzime) - -* Mon Jun 09 2014 Vratislav Podzimek - 0.55-1 -- IPSeriesPPC now supports GPT in Open Firmware (hamzy) -- Fix device name validation for devices that can contain / (#1103751) (dshea) -- Add a getRaidLevel() convenience method to raid.py (amulhern) -- Make a StorageDevice.raw_device property and use it where appropriate - (amulhern) -- Simplify a small chunk of Blivet.updateKSData() (amulhern) -- Move the code for getting a space requirement from devicefactory to raid. - (amulhern) -- Make all devicefactory classes uses RAID objects instead of strings. - (amulhern) -- Remove devicefactory.get_raid_level from blivet (amulhern) -- Put get_supported_raid_levels in devicefactory.py (amulhern) -- Make BTRFS devices use RAID objects instead of strings for levels (amulhern) -- Add lists of supported RAID levels for btrfs and lvm (amulhern) -- Add "linear" to mdraid's list of supported raid levels. (amulhern) -- Remove getRaidLevel() from mdraid file and make RAID_levels public (amulhern) -- Check for required methods in MDRaidLevels.isRaidLevel. (amulhern) -- Use has_redundancy property to decide how to add a member to an array. - (amulhern) -- Update the mdraid.mdadd comments (amulhern) -- Use has_redundancy raid property when checking whether a device is removable - (amulhern) -- Make createBitmap() a property and update tests appropriately. (amulhern) -- Add a Dup class to the various descendants of RAIDLevel. (amulhern) -- Add an is_uniform property to the RAID levels. (amulhern) -- Add a has_redundancy method that returns True if there is actual redundancy - (amulhern) -- Add Linear and Single to the RAID classes. (amulhern) -- Move Container class to raid package and tidy it up (amulhern) -- Allow the RAID object itself to be a valid RAID descriptor for lookup. - (amulhern) -- Adjust RaidLevel hierarchy so that all raid level objects extend RAIDLevel - (amulhern) -- No longer use _standard_levels as the default set of RAID levels. (amulhern) -- Extract selection of members in complete() into a separate method. (amulhern) -- Remove DMRaidArrayDevice.members property. (amulhern) -- Comment mdraid.mdcreate() and update tests appropriately. (amulhern) -- Import name 'lvm' instead of names from lvm package. (amulhern) - -* Sat Jun 07 2014 Fedora Release Engineering - 0.54-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed May 28 2014 Brian C. Lane - 0.54-1 -- Add tests for setting device's parent list directly (vpodzime) -- Do not alter the ParentList being iterated over (#1083581) (vpodzime) -- Do not limit ThinLV's size to VG's free space (vpodzime) -- Take extra RAID metadata into account when growing LV (#1093144) (vpodzime) -- Move apply_chunk_growth outside of a for-cycle (vpodzime) -- Multiple arguments for string formatting need to be in parentheses (#1100263) - (mkolman) -- Make print statements Python 3 compatible (mkolman) -- Validate device names (dshea) -- Use a setter for Device.name as foretold by the prophecy of TODO (dshea) - -* Tue May 20 2014 Brian C. Lane - 0.53-1 -- Remove extra quotes from the xfs_db arguments. (dshea) -- Factor duplicate code in __deepcopy__ methods into one method (#1095244) - (amulhern) -- Rearrange code related to handleUdevDeviceFormat() (#1095329) (amulhern) -- Make dumpState catch and log all AttributeErrors (#1095329) (amulhern) -- Add sectorSize property to catch and handle missing partedDevice (#1095329) - (amulhern) -- Get rid of remaining uses of spec keyword for Size() in examples directory. - (amulhern) -- Generalize false positive regular expression for multiple pylint versions - (amulhern) -- Do not run some tests unless running on Jenkins. (amulhern) -- Miscellaneous pylint fixes. (amulhern) -- Globally disable pointless string statement warning (amulhern) -- Disable unused argument warning for 'args' in TmpFSDevice constructor - (amulhern) -- Omit 'args' parameter from formats constructors (amulhern) -- Disabled unused argument warning for kwargs in formats.destroy() (amulhern) -- Omit *args from parameters for format.create() and formats.destroy() - (amulhern) -- Omit *args from parameters in formats.setup() (amulhern) -- Make formats.teardown() not take any extra parameters. (amulhern) -- Make formats.mount use explicit keywords instead of kwargs. (amulhern) -- Remove non-self params from FS.doResize method (amulhern) -- Make doFormat use regular style keyword parameters (amulhern) -- Do not use *args, **kwargs idiom in scheduleCreateFormat. (amulhern) -- Do not use *args, **kwargs idiom in various schedule* auxiliary test methods. - (amulhern) -- Remove upgrading param from turnOnSwap() (amulhern) -- Disable unused-argument warning (amulhern) -- Disable pylint unused-argument warning. (amulhern) - -* Thu May 08 2014 Brian C. Lane - 0.52-1 -- Split ROOT_PATH usage into getTargetPhysicalRoot()/getSysroot() (walters) -- Update and fix copyright info for docs. (dlehman) -- Add some tests for extended partition management. (dlehman) -- Add some tests that verify the results of DeviceTree.populate. (dlehman) -- Add a base class for tests backed by disk image storage. (dlehman) -- Adapt examples to examples/common.py function dispersement. (dlehman) -- Change devices.SparseFileDevice._create to use util.create_sparse_file. - (dlehman) -- Move set_up_logging and create_sparse_file into blivet.util for reuse. - (dlehman) -- Make examples.common.tear_down_disk_images a DeviceTree method. (dlehman) -- Fix handling of devices activated as a side-effect of actions. (dlehman) -- Check for problematic active devices before processing any actions. (dlehman) -- Split some large blocks out of DeviceTree.processActions. (dlehman) -- Explicitly requested extended partitions already have an action. (dlehman) -- Fix handling of extended partitions across various modes of operation. - (dlehman) -- Handle the case of md arrays getting activated from outside blivet. (dlehman) -- Make an extra effort to remove dm partition nodes that want to stay. - (dlehman) -- Fix handling of clearing a partitioned disk and leaving it cleared. (dlehman) -- Don't check for disklabels on partitions. (dlehman) -- Update targetSize to reflect actual size after a device is created. (dlehman) -- Remove redundant msecs from logging timestamp. (dlehman) -- Make signature of Size.__new__ match signature of Decimal.__new__ (amulhern) -- Change Size so that it takes a single value parameter. (amulhern) -- Change all 'format' keyword args to 'fmt' in Device constructors (amulhern) -- Change format keyword argument to fmt in scheduleCreateFormat (amulhern) -- Change keyword parameters in devicetree.findActions (amulhern) -- Change ActionCreateFormat constructor keyword argument to 'fmt' (amulhern) -- Remove unused parameter 'ignoreErrors' from umountFilesystems() (amulhern) -- Remove parameter 'raiseErrors' from mountFilesystems() methods. (amulhern) -- Disable unused argument warning for 'major' and 'minor' (amulhern) -- Set dummy functions as values rather than via function definition syntax. - (amulhern) -- Pass size value to superconstructor for LVMVolumeGroupDevice. (amulhern) -- Sort the pylint-false-positives file (amulhern) -- Do not disable unused argument warning. (amulhern) -- Omit pylint warning about disabled warnings or errors from pylint log. - (amulhern) -- Put the pyblock warning in pylint-false-positives (amulhern) -- Remove obsolete documentation for parameter 'label'. (amulhern) - -* Mon May 05 2014 Brian C. Lane - 0.51-1 -- Adjust the available size on each disk using chunk size. (amulhern) -- Removed some now unused methods from devices (#1085474) (amulhern) -- Rename size() method to get_size() method. (amulhern) -- Remove unused get_size method (#1085474) (amulhern) -- Use raid.size method to get size of device (#1085474) (amulhern) -- Add a size() method to the raid classes (#1085474) (amulhern) -- Move line that might throw an MDRaid exception inside try block (#1085474) - (amulhern) -- Check whether type is mdbiosraidarray before checking smallest member - (#1085474) (amulhern) -- Log if there was a failure to calculate the size of the MDRaidArrayDevice - (#1085474) (amulhern) -- Rename get_raw_array_size to get_net_array_size (#1085474) (amulhern) -- Rename _get_size to _trim, which describes its function better (#1085474) - (amulhern) -- Improve comments on a few methods (#1085474) (amulhern) -- Make RAIDLevels iterable (#1085474) (amulhern) -- Update makebumpver for python-bugzilla 1.0.0 (bcl) -- Disable unused argument warning for 'key_file' in devicelibs.crypto methods - (amulhern) -- Disable unused argument warning for 'del_passphrase' in luks_remove_key - (amulhern) -- Disable unused argument warning for 'data' in doAutoPartition (amulhern) -- Disable unused argument warning for 'info' in handleUdevLuksFormat (amulhern) -- Disable unused argument warning for 'disks' in get_pv_space. (amulhern) -- Remove pointless parameters from unittest methods. (amulhern) -- Disable a no member warning for EddTestFS initializer. (amulhern) -- Get rid of unused argument 'args' in MakeBumpVer constructors (amulhern) -- Changes to _parseOneLine() and its single invocation. (amulhern) -- Remove obsolete comment (amulhern) -- Rename to avoid redefining parameter built-ins (amulhern) -- Change name to avoid redefining built-in (amulhern) -- Remove unused parameter in makeupdates. (amulhern) -- Removed unused argument 'options' from testMount (amulhern) -- Make signature of _setSize match that of the method it overrrides. (amulhern) -- Actually use argv parameter (amulhern) -- Pass fname as first argument to shutil.copy2 (amulhern) -- Remove minimumSector method and _minimumSector attribute (amulhern) -- Disable not-callable pylint warning. (amulhern) -- Set child_factory_fstype to None in DeviceFactory (amulhern) -- Suppress unpacking-non-sequence pylint warning (amulhern) -- Prefix name with defining package (amulhern) -- Update Platform instance from flags instead of replacing it. (#1090646) - (dlehman) -- Rename to avoid redefining built-ins where the redefinition is method local. - (amulhern) -- Set device.format in else block of try/except/else. (amulhern) -- Do not run pylint on sphinx generated conf.py (amulhern) -- Get rid of a redefined builtin while simplifying method. (amulhern) -- Compress loop into generator list comprehension (amulhern) -- Rewrite resize() method to depend on _resizable. (amulhern) -- Remove definition of LVMThinLogicalVolumeDevice._resizable (amulhern) -- Add an attribute docstring for _resizable. (amulhern) -- Correct comment on resizable property (amulhern) - -* Thu Apr 24 2014 Brian C. Lane - 0.50-1 -- Don't apply action until after all checks have passed. (dlehman) -- Apply action for extended partition creation. (dlehman) -- Fix an issue introduced in commit a210eb5c. (dlehman) -- Move changes from action ctors into apply methods. (dlehman) -- Tell lvm to prefer /dev/mapper/ and /dev/md/ to dm-X and mdX nodes. (dlehman) -- Use the right md UUID when trying to look one up from addUdevDevice. - (dlehman) -- Pass UUID of existing md array to superclass constructor. (dlehman) -- Fix accounting related to addition of md member devices. (dlehman) -- Add some more tests for the Size.humanReadable method (vpodzime) -- If size is an integer value, show it as an integer value (vpodzime) -- Make sure that using just k/m/g/... results in KiB/MiB/GiB/... (vpodzime) -- Make humanReadable size use binary prefixes and nicer units (vpodzime) -- Round sizes in humanReadable instead of flooring them (vpodzime) -- Do not assign result of evaluating EddTestFS() to a variable (amulhern) -- Rename bits() to numBits() (amulhern) -- Rename to avoid conflict with name in outer scope. (amulhern) -- Put module level code in a method (amulhern) -- Do not use strip() incorrectly (amulhern) -- Disable E1101 (no-member) error (amulhern) -- Use isResize in isShrink and isGrow. (amulhern) -- Suppress W0612 (unused-variable) false positives (amulhern) -- Suppress W0621 warnings (amulhern) -- Add a stub function for get_bootloader (amulhern) -- Suppress W0602 false positives (amulhern) -- Remove BootLoaderError definitions (amulhern) -- Disable E1003 warning. (amulhern) -- Do not cache the DeviceFormat object (amulhern) -- Suppress W0201 error where attribute is set in __new__. (amulhern) -- Add to false positives an error which is not suppressed by a pragma. - (amulhern) -- Suppress W0201 errors (amulhern) -- Make signature of Size.__str__ match signature of Decimal.__str__ (amulhern) -- Do not evaluate %% operator in log message arguments (amulhern) -- Remove suite() methods in tests (amulhern) -- Remove addKeyFromFile() method (amulhern) -- Import name 'deviceaction' where needed (amulhern) -- Setting variables in __init__ (amulhern) -- Log exception information and disable W0703 warning. (amulhern) -- Disable some W0703 warnings (amulhern) -- Disable some W0703 warnings. (amulhern) -- Add a function that logs available exception info. (amulhern) -- Restrict scope of pylint pragmas as much as possible (amulhern) -- Change all pylint numeric codes to mnemonic strings. (amulhern) - -* Thu Apr 17 2014 Brian C. Lane - 0.49-1 -- Slightly reduce loop and get rid of obsolete comment (amulhern) -- Slightly rewrite loop to avoid a redefining builtin error (amulhern) -- Simplify find_library and fix redefining built-in errors. (amulhern) -- Make loop variables a little more descriptive (amulhern) -- Make regular expressions raw strings. (amulhern) -- Suppress unused variable warning and check for failure. (amulhern) -- Add W0105 warning about attribute docstrings to false positives (amulhern) -- Make signature of setup() in parent class same as in children (amulhern) -- Suppress some correct pylint warnings (amulhern) -- Get _loopMap.values() when all that's needed is the values (amulhern) -- Obvious fix inspired by pylint E0602 error (amulhern) -- Suppress W0631 warning for abbr and prefix. (amulhern) -- Do not do formatting operation in the argument of the translation (amulhern) -- Remove unnecessary global statements (amulhern) -- Disable W0703 message in test (amulhern) -- Explicitly set the module level platform variable (amulhern) - -* Thu Apr 10 2014 Brian C. Lane - 0.48-1 -- Do not execute smallestMember property method twice. (amulhern) -- Remove unnecessary function definitions in abstract properties (amulhern) -- Pass format args as arguments to debug method (#1085057) (amulhern) -- Move udev_settle call from util into fs to break circular dependency - (amulhern) -- Change implicit relative imports to explicit relative imports (amulhern) -- Remove unused imports (amulhern) -- Get rid of os.path import (amulhern) -- Really avoid dynamic import of formats/__init__.py by itself (amulhern) -- Ignore E1101 errors in savePassphrase. (amulhern) -- Add a bunch of E1120 errors to the false positives file (amulhern) -- Make LabelingAsRoot class an abstract class and define two properties - (amulhern) -- Suppress false positive W0631 error. (amulhern) -- Use self.nic instead of nic (amulhern) -- Make sure _state_functions is a dictionary in base class (amulhern) -- Remove unnecessary lambda wrappers on assertion functions (amulhern) -- Obvious fix inspired by an "Undefined variable warning" (amulhern) -- Remove all references to lvm_vg_blacklist and blacklistVG. (amulhern) -- Update for changes in the anaconda errorHandler API. (dshea) -- Remove unused imports. (amulhern) -- Import from the defining module. (amulhern) -- Move import to top level. (amulhern) -- Do not use implicit relative imports (amulhern) -- Remove wildcard import (amulhern) -- Fix a bug and catch a change in lvm's thin pool layout. (dlehman) -- Plumb uuid down through DMDevice. (dlehman) - -* Wed Apr 02 2014 Brian C. Lane - 0.47-1 -- Change labelApp to a more concisely defined abstract property (amulhern) -- Change defaultLabel to a more concisely defined abstract property. (amulhern) -- Change _labelstrRegex to a more concisely defined abstract property. - (amulhern) -- Make reads property a bit more succinct. (amulhern) -- Make name an abstract property and omit _name (amulhern) -- Remove an unused import from devicelibs/raid.py (vpodzime) -- Fix all pylint errors in pylintcodediff (amulhern) -- Don't run test if the git branch is dirty (amulhern) -- Exit if the specified log file does not exist. (amulhern) -- Update lvm devicelibs tests to reflect recent changes. (dlehman) -- Add required LVs as needed instead of trying to sort by attrs. (dlehman) -- Fix missed conversion of rm->missing in vgreduce call. (dlehman) -- Only gather lvm information one time per DeviceTree.populate call. (dlehman) -- Add support for listing everything to pvinfo and lvs. (dlehman) -- Get lv list from lvm in a more straightforward format. (dlehman) -- Gather lv list where we use it to save from having to stash it. (dlehman) -- Split out common lvm parsing code. (dlehman) -- Add tests that use ParentList as part of Device. (dlehman) -- Parent list length doesn't reflect new member in _addParent. (dlehman) -- Rearrange _startEdd to be a little more obvious. (amulhern) -- Raise exceptions using the new syntax (amulhern) -- Do not import logging twice. (amulhern) -- Suppress unused variable warning (amulhern) -- Get rid of writeRandomUUID. (amulhern) -- Remove unused variable but retain call for its side-effects (amulhern) -- Put docstring in class (amulhern) -- Remove appendiceal assignment (amulhern) -- Keep first parameter "self" (amulhern) -- Omit compile flag (amulhern) -- Move lines beneath __main__ into a main method (amulhern) -- Indent with spaces, not tabs (amulhern) -- Change param default [] to None and convert in method (amulhern) -- Change to a semantically equivalent version of FileDevice.path (amulhern) -- Adapt existing tests to changed signature of some methods (amulhern) -- Don't assign return value to unused variable (amulhern) -- Be specific when catching exceptions (dshea) -- Remove appendiceal assignments (amulhern) -- Remove a lot of unused variables extracted from udev info (amulhern) -- Don't get return values from communicate() if they are ignored (amulhern) -- Use the disk's name in log message (amulhern) -- Get rid of old exception unpacking syntax (dshea) -- Rearranged some iffy exception checking (dshea) -- Replace with a semantically equivalent chunk. (amulhern) -- Remove some unused exception names. (amulhern) -- Remove unused assignment to boot. (amulhern) -- Delete method-local pruneFile function. (amulhern) -- Don't comment out function headers but leave their bodies uncommented - (amulhern) -- Get rid of unnecessary pass statements (amulhern) -- Put a field and a method in the base class (amulhern) -- Spell parameter self correctly (amulhern) -- Give abstract method the same signature as its overriding methods. (amulhern) -- Catch correct error and disable warning. (amulhern) - -* Wed Mar 26 2014 Brian C. Lane - 0.46-1 -- Adapt callers to use the new parent list interface. (dlehman) -- Change management of Device parents to use a simple list interface. (dlehman) -- Convert ContainerDevice to an abstract base class. (dlehman) -- Set device uuid before calling Device ctor. (dlehman) -- Improve the mechanism for VG completeness. (dlehman) -- Support mutually-obsoleting actions. (dlehman) -- Add some checking to MDRaidArrayDevice._setSpares. (dlehman) -- Make sorting by action type part of the action classes. (dlehman) -- Add action classes for container member set management. (dlehman) -- Add a property to provide consistent access to parent container device. - (dlehman) -- Add type-specific methods for member set management. (dlehman) -- Adapt callers to new method names for add/remove member device. (dlehman) -- Add a ContainerDevice class to consolidate member management code. (dlehman) -- Add backend functions for container member set management. (dlehman) -- Teardown RAID device once testing is over (amulhern) -- Make lvm tests runnable. (amulhern) -- Make crypt tests runnable. (amulhern) -- Replace unnecessarily complicated expression with string multiplication - (amulhern) -- Suppress unused variable warning for index in range (amulhern) -- Suppress some unused variable warnings. (amulhern) -- Suppress some unused variable warnings (amulhern) -- Update to the new raise syntax (dshea) -- Removed an unnecessary semicolon (dshea) -- Removed a redundant definition of NoDisksError (dshea) -- Specify regular expressions containing backslashes as raw strings (dshea) -- Fixed some questionable indentation (dshea) -- Fix logging function string format warnings. (dshea) -- All size specifications should be Size instances (#1077163) (vpodzime) -- Make sure StorageDevice's self._size is a Size instance (#1077179) (vpodzime) -- Allow creating Size instance from another Size instance (vpodzime) -- Force removal of hidden devices (#1078163) (amulhern) -- Get action_test into working order. (dlehman) -- Update action_test.py to specify sizes using blivet.size.Size. (dlehman) -- Don't corrupt the environment when setting up StorageTestCase. (dlehman) -- Make minSize, maxSize consistent and correct. (dlehman) -- Don't prevent grow actions on devices with no max size. (dlehman) - -* Thu Mar 20 2014 Brian C. Lane - 0.45-1 -- Changes to allow pylint checks to be run on a distribution of the source. - (amulhern) -- Remove non-doing check target (amulhern) -- Add a script to relate pylint errors to lines changed. (amulhern) -- Change output format so that it is suitable for diff-cover. (amulhern) -- Do an initial setup for running pylint tests in blivet. (amulhern) -- Handle None in devicePathToName(#996303) (dshea) -- Remove bootloader.packages from storage.packages (#1074522). (clumens) -- Whitespace fixes for the crypto devicelib module (vpodzime) -- Use random.choice for generating LUKS backup passphrase (vpodzime) -- Trivial fixes for the lvm devicelib module (vpodzime) -- Make vginfo work the same way as pvinfo and other LVM functions (vpodzime) -- Allow NTFS to be mountable. (#748780) (dshea) -- Limit the LV size to VG's free space size (vpodzime) - -* Fri Mar 07 2014 Brian C. Lane - 0.44-1 -- Fix an old typo in zeroing out a PReP partition. (#1072781) (dlehman) -- Only count with the extra metadata extents in new VGs and LVs (#1072999) - (vpodzime) -- Use container's parent's name for PV if available (#1065737) (vpodzime) -- Fix traceback with write_dasd_conf. (#1072911) (sbueno+anaconda) -- When copying a root, also copy hidden devices (#1043763) (amulhern) -- Add hidden flag to devicetree.getDeviceByID (#1043763) (amulhern) -- Only set device for mountpoint if it is not None (#1043763) (amulhern) -- Extend the list of things to be omitted if moddisk is False (#1043763) - (amulhern) -- Set req_name to None at the top of initializer (#1043763) (amulhern) -- Log action cancelation (#1043763) (amulhern) -- Make DeviceTree.hide() remove a larger set (#1043763) (amulhern) -- Re-write the DASD storage code. (#1001070) (sbueno+anaconda) -- Include image install flag when updating from anaconda flags. (#1066008) - (dlehman) - -* Fri Feb 28 2014 Brian C. Lane - 0.43-1 -- Include tmpfs mounts in post-install kickstart (#1061063) (mkolman) -- Count with the extra metadata extents for RAID consistently (#1065737) - (vpodzime) -- Make partitioning error message more friendly (#1020388) (amulhern) -- Fix partition handling across multiple processActions calls. (#1065522) - (dlehman) -- Let the udev queue settle before populating the devicetree. (#1049772) - (dlehman) -- Don't activate or deactivate devices from the action classes. (#1064898) - (dlehman) -- Improve handling of parted.DiskLabelCommitError slightly. (dlehman) -- Make teardownAll work regardless of flags. (dlehman) -- Fix maxSize test when setting device target size. (dlehman) -- Size.convertTo should return a Decimal. (dlehman) -- Don't use float for anything. (dlehman) -- Fix type of block count in PartitionDevice._wipe. (dlehman) -- Fix handling of size argument to devicelibs.lvm.thinlvcreate. (#1062223) - (dlehman) -- return empty set when no matching fcoe nic (#1067159) (bcl) -- Return str from Size.humanReadable (#1066721) (dshea) -- Add a coverage test target (#1064895) (amulhern) -- Filesystem labeling tests will not run without utilities (#1065422) - (amulhern) -- Rename misc_test.py to something more descriptive (#1065422) (amulhern) -- Refactor labeling tests (#1065422) (amulhern) -- Move SwapSpace tests into a separate class (#1065422) (amulhern) - -* Tue Feb 18 2014 Brian C. Lane - 0.42-1 -- Wait for udev to create device node for new md arrays. (#1036014) (dlehman) -- Fix detection of thin pool with non-standard segment types. (#1022810) - (dlehman) -- NFSDevice does not accept the exists kwarg. (#1063413) (dlehman) -- Don't run mpathconf for disk image installations. (#1066008) (dlehman) -- If /etc/os-release exists, check it to identify an installed system. - (clumens) -- Get the unit tests into a runnable state. (dlehman) -- Update Source URL in spec file to use github. (dlehman) - -* Tue Feb 11 2014 Brian C. Lane - 0.41-1 -- ntfs _getSize needs to use Decimal (#1063077) (bcl) -- Separate sanityCheck-ing from doAutoPartition (#1060255) (amulhern) -- Change messages to SanityExceptions objects (#1060255) (amulhern) -- Make a small SanityException hierarchy (#1060255) (amulhern) -- Remove unused exception class (#1060255) (amulhern) -- Add another .decode("utf-8") to humanReadable (#1059807) (dshea) -- makebumpver: Any failure should cancel the bump (bcl) - -* Tue Feb 04 2014 Brian C. Lane - 0.40-1 -- makebumpver: Only remove from list if action is not Resolves (bcl) -- Update bumpver to allow Related bugs (bcl) -- Remove all dependent devices of san device becoming multipath (#1058939) - (rvykydal) -- When repopulating multipath members mark them as multipath (#1056024) - (rvykydal) -- fcoe: parse yet another sysfs structure for bnx2fc devices (#903122) - (rvykydal) -- fcoe: add fcoe=: to boot options for nics added manually (#1040215) - (rvykydal) -- Convert the ntfs minsize to an int (#1060031) (dshea) -- Convert the string representation of Size to a str type. (#1060382) (dshea) -- don't display stage2 missing error as well if the real problem is stage1 - (awilliam) -- Provide a mechanism for platform-specific error messages for stage1 failure - (awilliam) -- Don't add None value to req_disks (#981316) (amulhern) -- Make error message more informative (#1022497) (amulhern) -- Check that file that loop device is going to use exists (#982164) (amulhern) -- Use os.path.isabs to check whether path name is absolute (#994488) (amulhern) - -* Tue Jan 28 2014 Brian C. Lane - 0.39-1 -- escrow: make sure the output directory exists (#1026653) (wwoods) -- provide a more useful error message if user fails to create an ESP (awilliam) -- Tell lvcreate not to ask us any questions and do its job. (#1057066) - (dlehman) - -* Fri Jan 24 2014 Brian C. Lane - 0.38-1 -- Some simple tests for _verifyLUKSDevicesHaveKey (#1023442) (amulhern) -- Verify that LUKS devices have some encryption key (#1023442) (amulhern) - -* Wed Jan 22 2014 Brian C. Lane - 0.37-1 -- Only do SELinux context resets if in installer mode (#1038146) (amulhern) -- Look up SELinux context for lost+found where it is needed (#1038146) - (amulhern) -- Don't reset the SELinux context before the filesystem is mounted (#1038146) - (amulhern) -- Test setting selinux context on lost+found (#1038146) (amulhern) -- Only retrieve the unit specifier once (dshea) -- Fix the Device.id usage. (dshea) -- Accept both English and localized sizes in Size specs. (dshea) -- Use a namedtuple to store information on unit prefixes (dshea) -- Remove en_spec Size parameters. (dshea) -- Fix potential traceback in devicetree.populate. (#1055523) (dlehman) -- Fall back on relabeling app where available (#1038590) (amulhern) -- Change the meaning of label field values (#1038590) (amulhern) -- Enable labeling on NTFS filesystem (#1038590) (amulhern) -- Enable labeling on HFS filesystem (#1038590) (amulhern) -- Add a method that indicates ability to relabel (#1038590) (amulhern) -- Use filesystem creation app to set filesystem label (#1038590) (amulhern) -- Import errors so FSError name is resolved (#1038590) (amulhern) -- Remove BTRFS._getFormatOptions (#1038590) (amulhern) -- Make an additional class for labeling abstractions (#1038590) (amulhern) -- Fix copyright date (#1038590) (amulhern) -- Remove redundant _defaultFormatOptions field (#1038590) (amulhern) -- Remove code about unsetting a label (#1038590) (amulhern) -- Return None if the filesystem has no label (#1038590) (amulhern) -- Removed redundant check for existance of filesystem (#1038590) (amulhern) -- Have writeLabel throw a more informative exception (#1038590) (amulhern) - -* Fri Jan 17 2014 Brian C. Lane - 0.36-1 -- Update the TODO list. (dlehman) -- Multipath, fwraid members need not be in exclusiveDisks. (#1032919) (dlehman) -- Convert parted getLength values to Size (dshea) -- Last of the Device._id -> Device.id (bcl) -- iscsi: in installer automatically log into firmware iscsi targets (#1034291) - (rvykydal) -- Use isinstance for testing numeric types (vpodzime) -- Device._id -> Device.id (clumens) -- Allow resetting partition size to current on-disk size. (#1040352) (dlehman) - -* Fri Jan 10 2014 Brian C. Lane - 0.35-1 -- Convert everything to use Size. (dlehman) -- Allow negative sizes. (dlehman) -- Fix return value of Size.convertTo with a spec of bytes. (dlehman) -- Discard partial bytes in Size constructor. (dlehman) -- Prefer binary prefixes since everything is really based on them. (dlehman) -- Fix a few minor problems introduced by recent raid level changes. (dlehman) -- Move label setter and getter into DeviceFormat class (#1038590) (amulhern) -- Add a test for labeling swap devices (#1038590) (amulhern) -- Default to None to mean none, rather than empty string (#1038590) (amulhern) -- Add a labelFormatOK method to the DeviceFormat's interface (#1038590) - (amulhern) -- Indicate whether the filesystem can label (#1038590) (amulhern) -- Restore ability to write an empty label where possible (#1038590) (amulhern) -- More tests to check writing and reading labels (#1038590) (amulhern) -- Remove fsConfigFromFile (#1038590) (amulhern) -- Changes to the handling of filesystem labeling (#1038590) (amulhern) -- Add some simple tests for file formats. (amulhern) -- Give DeviceFormat objects an id (#1043763) (amulhern) -- Refactor to use ObjectID class (#1043763) (amulhern) -- Make a class that creates a unique-per-class id for objects (#1043763) - (amulhern) -- Revert "Make a class that creates a unique-per-class id for objects - (#1043763)" (amulhern) -- Revert "Give DeviceFormat objects an object_id (#1043763)" (amulhern) -- Make the maximum end sector for PReP boot more benevolent (#1029893) - (vpodzime) -- Give DeviceFormat objects an object_id (#1043763) (amulhern) -- Make a class that creates a unique-per-class id for objects (#1043763) - (amulhern) -- Make get_device_format_class return None if class not found (#1043763) - (amulhern) -- A few simple unit tests for some formats methods (#1043763) (amulhern) -- Don't translate format names (dshea) - -* Thu Dec 19 2013 Brian C. Lane - 0.34-1 -- Forget existing partitions of device becoming a multipath member (#1043444) - (rvykydal) -- Include blivet.devicelibs.raid in the generated documentation. (amulhern) -- Upgrade the comments in raid.py to be compatible with sphinx. (amulhern) -- Make space for LUKS metadata if creating encrypted device (#1038847) - (vpodzime) -- fcoe: give error message in case of fail when adding device (#903122) - (rvykydal) -- fcoe: adapt bnx2fc detection to changed sysfs path structure (#903122) - (rvykydal) -- Update format of iscsi device becoming multipath member (#1039086) (rvykydal) - -* Tue Dec 17 2013 Brian C. Lane - 0.33-1 -- Add initial 64-bit ARM (aarch64) support (#1034435) (dmarlin) -- Convert to sphinx docstrings. (dlehman) -- Add some documentation. (dlehman) -- Move getActiveMounts from Blivet into DeviceTree. (dlehman) -- Add an example of creating lvs using growable requests. (dlehman) -- Remove a whole bunch of unused stuff from Blivet. (dlehman) -- Remove usage of float in Size.humanReadable. (dlehman) -- Add missing abbreviations for binary size units. (dlehman) -- Fix shouldClear for devices with protected descendants. (#902417) (dlehman) -- Use // division so that it continues to be floor division in Python 3. - (amulhern) - -* Thu Dec 12 2013 Brian C. Lane - 0.32-1 -- Work on devicelibs.btrfs methods that require that the device be mounted. - (amulhern) -- Remove some methods from devicelibs.btrfs. (amulhern) -- Add a comment to btrfs.create_volume. (amulhern) -- Add a file to run btrfs tests. (amulhern) -- Remove format.luks.LUKS.removeKeyFromFile. (amulhern) -- Changes to devicelibs.mdraid.mdactivate. (amulhern) -- Restore an import removed in a previous commit. (amulhern) -- Add a PE for LUKS metadata (#1038969) (bcl) -- Adjust currentSize methods slightly. (amulhern) -- Put additional constraints on the ActionResizeDevice initializer. (amulhern) -- Remove redundant checks in existing resize() methods. (amulhern) -- Add some baseline unit tests for BTRFS devices. (amulhern) -- Robustify use of defaultSubVolumeID field. (amulhern) -- Check that a BTRFS subvolume has exactly one parent in constructor. - (amulhern) -- BTRFSSubVolume.volume checks the class of its return value. (amulhern) -- Raise ValueError in BTRFS constructor if no parents specified. (amulhern) -- Add tests for a couple of additional properties for MDRaidArrayDevice. - (amulhern) -- Factor state testing behavior into a separate class. (amulhern) -- Remove redundant condition in if statement. (amulhern) - -* Thu Dec 05 2013 Brian C. Lane - 0.31-1 -- Make RAIDLevel an abstract class using abc. (amulhern) -- Restore a util import that was removed in a recent commit. (amulhern) - -* Wed Dec 04 2013 Brian C. Lane - 0.30-1 -- Always run action's cancel method as part of cancelAction. (dlehman) -- Show Invalid Disk Label for damaged GPT (#1020974) (bcl) -- Make error message in setDefaultFSType more informative (#1019766) (amulhern) -- Set sysfsPath of LUKSDevice when adding to device tree (#1019638) (jsafrane) -- Use given format type as format's name instead of type (vpodzime) - -* Wed Nov 27 2013 Brian C. Lane - 0.29-1 -- btrfs and xfs do not support fsck or dump at boot time (#862871) (bcl) -- Removed raid level constants from mdraid.py. (amulhern) -- Remove raidLevel and get_raid_min_members for mdraid.py. (amulhern) -- Remove raidLevelString in raid and mdraid. (amulhern) -- In devicefactory.py change mdraid procedures call to raid method calls. - (amulhern) -- Removed mdraid.raid_levels (amulhern) -- Removed mdraid.get_raid_max_spares. (amulhern) -- Change MDRaidArrayDevice to use raid package. (amulhern) -- Changed devicelibs.mdraid to make use of devicelibs.raid. (amulhern) -- Implement a RAID class hierarchy. (amulhern) -- A few small tests for MDFactory class. (amulhern) -- Add some additional unit tests in mdraid_tests.py. (amulhern) -- Make MDRaidArrayDevice initializer not except raid level of None. (amulhern) -- Add some basic unit tests for MDRaidArrayDevice. (amulhern) -- Move pyanaconda import into blivet.enable_installer_mode. (amulhern) - -* Mon Nov 25 2013 David Lehman - 0.28-1 -- Clear whole-disk formatting before initializing disks. (#1032380) (dlehman) -- Simplify calculation of vol size when adding a btrfs subvol. (#1033356) - (dlehman) -- Handle passing a btrfs volume as device to BTRFSFactory. (dlehman) -- Add support for detecting btrfs default subvolume. (dlehman) -- Handle nested btrfs subvolumes correctly. (#1016959) (dlehman) -- Mark all format names as translatable (dshea) -- Add parameters for untranslated Size specs. (dshea) -- Fix usage of _ vs N_ (dshea) -- Added a i18n module for gettext functions. (dshea) -- Allow non-ASCII characters in the size spec (dshea) - -* Tue Nov 19 2013 David Lehman - 0.27-1 -- Specify btrfs volumes by UUID in /etc/fstab. (dlehman) -- Catch any exception raised by findExistingInstallations. (#980267) (dlehman) -- Prevent md_node_from_name from raising OSError. (#980267) (dlehman) -- Tidy up tests in devicelibs_test directory. (amulhern) -- Preparation for lv resize is a subset of that for lv destroy. (#1027682) - (dlehman) -- Make sure new values of targetSize are within bounds. (dlehman) -- Devices with non-existent formatting are resizable. (#1027714) (dlehman) -- Do not hide non-existent devices. (#1027846) (dlehman) -- Change XFS maximum to 16EB (#1016035) (bcl) -- Add tmpfs support (#918621) (mkolman) -- Add support for returning machine word length (mkolman) -- Require cryptsetup instead of cryptsetup-luks (#969597) (amulhern) -- Fix initialization of disks containing sun or mac disklabels. (dlehman) -- Newly formatted devices are used unless mountpoint is empty. (#966078) - (dlehman) -- Fix detection of lvm setups. (#1026466) (dlehman) -- Fix handling of overcommitted thin pools in thinp factory. (#1024144) - (dlehman) -- Fix name checking for new thin lvs. (#1024076) (dlehman) - -* Wed Oct 30 2013 Brian C. Lane - 0.26-1 -- Add macefi format type (#1010495) (bcl) -- Allow hfs+ boot devices to have their name set (#1010495) (bcl) -- Update parted partitions on hidden disks when copying a Blivet. (#1023556) - (dlehman) -- Add ack flag checking to makebumpver (bcl) -- Add makebumpver script (bcl) - -* Fri Oct 25 2013 Brian C. Lane - 0.25-1 -- Remove requirement for btrfsctl which no longer exists. (#1012504) (dlehman) -- Allow for adjustment of factory vg after removal of thin pool. (#1021890) (dlehman) -- Add boot description for "disk" devices on s390. (#867777, #903237, #960143) (sbueno+anaconda) -- Add initial spport for aarch64 as we only plan to support UEFI this should be enough (dennis) - -* Wed Oct 16 2013 David Lehman - 0.24-1 -- Close file descriptors other than stdin,stdout,stderr on exec. (#1016467) (dlehman) -- Don't use hardcoded /tmp paths. (#1004404) (dlehman) -- Fix detection of lvm thinp setups. (#1013800) (dlehman) -- Generate a name if necessary when reconfiguring a factory device. (#1019500) (dlehman) -- Handle anaconda's cmdline option to disable mpath friendly names. (#977815) (dlehman) -- Allow specifying which swaps should appear in fstab (vpodzime) -- Do not limit swap size to 10 % of disk space for hibernation (vpodzime) - -* Wed Oct 09 2013 Brian C. Lane - 0.23-1 -- Make sure bootloader is setup after autopart (#1015277) (bcl) -- Let setUpBootLoader raise BootloaderError (#1015277) (bcl) -- Limit the maximum swap size to 10 % of disk space (if given) (vpodzime) -- support ppc64le architecture (hamzy) -- Don't call handleUdevDeviceFormat without udev device (#1009809) (dshea) - -* Fri Sep 06 2013 David Lehman - 0.22-1 -- Allow implicit inclusion of multipath/fwraid by including all members. (dlehman) -- If a device has been removed, omit it from the copied root. (#1004572) (dlehman) -- Thinp metadata and chunk size default to 0 -- not None. (#1004718) (dlehman) -- Revert "Do not try to align partitions to optimal_io_size. (#989333)" (dlehman) - -* Thu Sep 05 2013 Brian C. Lane - 0.21-1 -- Only force luks map names to include UUID during OS installation. (#996457) (dlehman) -- Allow DiskLabelCommitError to reach the caller. (#1001586) (dlehman) -- Do not try to align partitions to optimal_io_size. (#989333) (gustavold) -- Fix rpmlog make target (bcl) -- Add missing changelog lines to spec (bcl) - -* Fri Aug 23 2013 Brian C. Lane - 0.20-1 -- Fix typo in examples/list_devices.py (dlehman) -- Use iscsi-iname instead of trying to reimplemnt it in python. (dlehman) -- Catch exceptions raised while finding old installations. (#981991) (dlehman) -- Keep the dasd list in sync with the devicetree's device list. (#965694) (dlehman) -- Don't save luks keys unless installer_mode flag is set. (#996118) (dlehman) -- Pass mount options to resolveDevice in _parseOneLine (#950206) (vpodzime) -- Fix handling of devices in detected installations in Blivet.copy. (dlehman) -- Clean up detection of lvm raid. (dlehman) -- Tag the first build of each version without the release. (dlehman) -- Remove dangling code block from commit 737169b75af1. (dlehman) - -* Wed Jul 31 2013 Brian C. Lane - 0.19-1 -- Don't waste time looking for devices dependent on leaf devices. (dlehman) -- Add some example code for creation of disk partitions. (dlehman) -- Don't manipulate partition boot flags except in installer mode. (dlehman) -- Add an example of DeviceFactory usage. (dlehman) -- Cosmetic changes for the arch module (vpodzime) -- No more sparc support (vpodzime) -- Cleanup arch.py reredux (hamzy) -- Allow explicit requests for extended partitions. (#891861) (dlehman) -- Fix disklabel handling for multiple calls to processActions. (dlehman) -- Add support for explicit start/end sectors in partition requests. (#881025) (dlehman) -- Store current mount options in getActiveMounts. (#914898) (dlehman) -- Lack of formatting does not preclude device resize. (dlehman) -- Handle negative sizes correctly. (dlehman) -- Fix handling of clearpart type linux in shouldClear. (dlehman) -- Add some tests for clearpart and related functionality. (dlehman) -- Update unit tests and add a make target to run them. (dlehman) -- Don't pass dracut args for lvm thin pools. (dlehman) -- Update the TODO list. (dlehman) -- Fix a copy/paste error. (dlehman) -- Remove transifex-client BuildRequires. (dlehman) - -* Tue Jul 09 2013 Brian C. Lane - 0.18-1 -- Raise XFS max size limit to 100TB. (sbueno+anaconda) -- Add a device factory class for thinly-provisioned lvm. (dlehman) -- Add support for automatic partitioning using lvm thin provisioning. (dlehman) -- Add convenience methods related to lvm thin provisioning. (dlehman) -- Add support for detection of lvm thinp setups. (dlehman) -- Add classes for lvm thin pool and thin volume. (dlehman) -- Add backend support for lvm thinp operations. (dlehman) -- Fix return value of get_pv_space for size of 0. (dlehman) -- Fix ksdata for lvm created in custom spoke based on autopart. (dlehman) -- Only put max size in ksdata if partition is growable. (dlehman) -- Allow subclasses to inherit ksdata classes. (dlehman) - -* Mon Jun 24 2013 Brian C. Lane - 0.17-1 -- Used Python type instead of variable name (#968122) (hamzy) -- Fix detection of valid EFI system partition during autopart. (dlehman) -- New version: 0.16 (bcl) - -* Thu Jun 13 2013 Brian C. Lane - 0.16-1 -- Install utilities for all devices -- not just those being used. (#964586) (dlehman) -- Add a method to apply Blivet settings to ksdata. (dlehman) -- Increase padding for md metadata in lvm factory. (#966795) (dlehman) -- Move lvm-on-md into LVMFactory. (dlehman) -- Switch to a minimum of four members for raid10. (#888879) (dlehman) -- Update the TODO list. (dlehman) -- Deactivate devices before hiding those on ignored disks. (#965213) (dlehman) -- Allow udev queue to settle after writing zeros to disk. (#969182) (hamzy) -- Run lsof when umount fails (bcl) -- Run udev settle before umount (bcl) - -* Mon Jun 03 2013 Brian C. Lane - 0.15-1 -- Switch to the LGPLv2+. (dlehman) -- Clear md arrays' sysfs path after deactivating them. (#954062) (dlehman) -- Factories with existing containers use the container's disk set. (dlehman) -- Don't set up a child factory if the container is set and exists. (dlehman) -- Set a non-zero size for new btrfs subvols in an existing volume. (dlehman) -- Open as many luks devs as possible with any given passphrase. (#965754) (dlehman) -- Make sure container changes worked before applying device changes. (#965805) (dlehman) -- Re-initialize platform in storageInitialize (#962104) (bcl) -- Make a copy of devicetree._devices before using the append operator. (clumens) -- Handle incomplete devices becoming complete on device rescan. (clumens) -- Don't allow a device to be on the hidden list more than once. (clumens) - -* Wed May 15 2013 David Lehman - 0.14-1 -- total_memory calculation needs to round up (#962231) (bcl) -- The dev.node attribute for iscsi devices is not copyable (#962865). (clumens) -- Wipe partitions before they are created (#950145) (bcl) -- Pass ROOT_PATH as an argument instead of importing it. (clumens) -- If no iscsi nodes are discovered, return an empty list instead of None. (clumens) - -* Thu May 09 2013 Brian C. Lane - 0.13-1 -- Make sure createBitmap is updated when level changes (#960271) (bcl) -- Update biosboot error message (#960691) (bcl) - -* Fri May 03 2013 David Lehman - 0.12-1 -- Fix a bug in renaming lvm lvs. (dlehman) -- Add container size policies for unlimited growth and fixed size. (dlehman) -- Remove device factory methods to change container name. (dlehman) -- Override any default subvol when mounting main btrfs volume. (#921757) (dlehman) -- Fix detection of multipath. (#955664) (dlehman) -- When a btrfs subvol's name is changed, change its subvol argument too. (clumens) -- Allow returning hidden disks from the getDeviceBy* methods, if asked. (clumens) -- Fix fipvlan -f argument once more and for good (#836321) (rvykydal) -- Remove the intf parameters from the iscsi class. (clumens) -- Don't relly on /proc/mdstat when enumeraing RAID levels. (jsafrane) -- Set product names in non-installer mode. (jsafrane) -- Fixed checking status of MD RAID which was just deleted. (jsafrane) -- Account for the fact that md's metadata usage is unpredictable. (dlehman) -- Remove members from their containers before destroying them. (dlehman) -- Make get_container work even if there are duplicate names. (dlehman) -- LVMFactory with a container_raid_level means use LVMOnMDFactory. (dlehman) -- Add a check for enough raid members after allocating partitions. (dlehman) -- Make parent_factory an attribute of the DeviceFactory instance. (dlehman) -- All container settings use container_ kwargs. (dlehman) -- Add ability to find raid level of an lvm vg. (dlehman) -- Always pass -f to wipefs since it lies about in-use devices. (#953329) (dlehman) -- Fix a bug extended partition management. (#951765) (dlehman) -- Don't return incomplete devices from getDeviceByFoo methods by default. (dlehman) -- Don't traceback when degraded md raid arrays are present. (#953184) (dlehman) - -* Mon Apr 15 2013 David Lehman - 0.11-1 -- Fix handling of isohybrid media. (#950510) (dlehman) -- Fix getting dracut setup args from dasd.conf. (#950964) (dlehman) - -* Tue Apr 09 2013 David Lehman - 0.10-1 -- Extended partitions containing logical partitions are not leaves. (#949912) (dlehman) -- Remove devices in reverse order in Blivet.recursiveRemove. (#949912) (dlehman) -- Rewrite the DeviceFactory classes. (dlehman) -- Hook up error handling in installer-specific methods. (#948250) (dlehman) -- Don't traceback if fcoe.startup is called without fcoe utils present. (dlehman) -- Fix logic error that causes us to ignore disks in exclusiveDisks. (dlehman) -- Slightly improve currentSize for btrfs volumes. (dlehman) -- Simplify multipath handling. (dlehman) -- Don't expect anaconda udev rules to be in use. (dlehman) -- Drop requires for things only needed for OS installation. (dlehman) -- New version: 0.9 (bcl) -- Only install packages for devices and filesystems used by the OS. (dlehman) -- Fix LVMLogicalVolumeDevice.maxSize. (dlehman) -- Fix handling of name=None in newLV, newMDArray, newVG. (dlehman) -- Allow calls to suggestDeviceName with only a prefix argument. (dlehman) -- Move mdadm superblock size calculation into devicelibs.mdraid. (dlehman) - -* Thu Mar 28 2013 Brian C. Lane - 0.9-1 -- NTFS.minSize is supposed to be a property. (#924410) (dlehman) -- Mount /run during install and fix /sys mount (#922988) (bcl) -- Fix two excptions triggered by calls to copy_to_system. (hamzy) - -* Wed Mar 13 2013 David Lehman - 0.8-1 -- Check for "ip=ibft" cmdline option, not for "ibft". (rvykydal) -- run_program returns an int. (#920584) (dlehman) -- Fix units for lvs output. (dlehman) -- Don't pass an intf arg to ISCSI.stabilize. (#920041) (dlehman) -- Add __version__ to blivet/__init__.py. (dlehman) -- Only run info prog (eg: dumpe2fs) once per filesystem. (dlehman) -- Processing of a PV with no VG metadata is easy. (dlehman) -- Add some convenience properties for displaying DeviceAction info. (dlehman) -- Ignore MTDs, as we do not have the tools to write to them (#916771). (clumens) -- Include udev's list of symbolic links in StorageDevice. (#914724) (dlehman) -- Set a DeviceFormat instance's type attribute to the requested type. (dlehman) -- Allow size specs that do not include a 'b' or 'B'. (#888851) (dlehman) -- Fix reference to 'factory' from within DeviceFactory class. (dlehman) -- Fix problems detecting lvm and md devices. (#914730) (dlehman) -- Allow passing size=None to device factories for unbounded growth. (dlehman) -- Provide a way to set the default fstype for a Blivet instance. (#838145) (dlehman) -- Allow changing the size of encrypted devices via DeviceFactory. (#913169) (dlehman) -- Don't dump storage state except in installer mode. (dlehman) -- Fix device resolution for btrfs. (dlehman) -- Fix device resolution to find named md devices. (dlehman) -- Account for active mounts in normal mode. (#914898) (dlehman) -- Add an example script which lists all devices. (dlehman) -- Add scripts/makeupdates script (bcl) - -* Thu Feb 21 2013 Brian C. Lane - 0.7-1 -- Merge branch 'master' of git+ssh://git.fedorahosted.org/git/blivet (bcl) -- Bring in productName from pyanaconda in installer mode. (#913559) (dlehman) - -* Wed Feb 20 2013 Brian C. Lane - 0.6-1 -- parse buffer output from resize (#913141) (bcl) -- prevent traceback when root device is not defined #rhbz883768 (sbueno+anaconda) -- Move empty_disk to a top-level function, and rename. (clumens) -- Add some high-level comments to DeviceFactory.configure_device. (dlehman) -- Refactor DeviceFactory.set_container_members for clarity. (dlehman) -- Rename the main blivet logger from "storage" to "blivet". (dlehman) -- Use the blivet domain for translations. (dlehman) -- Move DeviceFactory classes and related code into a new file. (dlehman) -- New version: 0.5 (dlehman) - -* Fri Feb 08 2013 David Lehman - 0.5-1 -- Add mountOnly to turnOnFilesystems (bcl) -- Update lvm scanning to account for new ignored device handling. (dlehman) -- Scan in all devices and then hide those that use ignored disks. (dlehman) -- Adjust child counts correctly when unhiding a device. (dlehman) -- Generate lvm config args each time they're needed/used. (dlehman) -- Add ability to grab 70-anaconda.rules udev data directly. (dlehman) -- Add support for active luks mappings at populate time. (dlehman) -- Don't require nss, required only for escrow key support. (dlehman) -- Update the TODO list. (dlehman) -- Add missing constant DMI_CHASSIS_VENDOR. (dlehman) -- Allow for multiple calls to DeviceTree.processActions. (#881023,#846573) (dlehman) -- Use CGit snaphot URL for Source in specfile. (dlehman) -- Streamline some logic in storageInitialize. (dlehman) -- Don't re-add deleted or hidden devices during DeviceTree.populate. (dlehman) -- Only run findExistingInstallations and start iscsi, &c in installer mode. (dlehman) -- Do not change device status during populate in normal mode. (#817064) (dlehman) -- Drop old code related to saving clearPartType from pre-f18. (dlehman) -- check for skipping bootloader in doIt (bcl) -- check for stage1 when not installing bootloader (#882065,#895232) (bcl) -- explicitly detect iso9660 on a disk (#903158) (bcl) -- Fix several problems in python-blivet.spec. (dlehman) -- Remove #!/usr/bin/python from tsort.py (dlehman) -- Update COPYING file. (dlehman) -- Add a Requires for dmidecode on x86. (dlehman) - -* Sun Jan 20 2013 David Lehman - 0.4-1 -- Use a two-part version number instead of three. (dlehman) -- Rename the rpm package from blivet to python-blivet. (dlehman) -- Move get_mount_device, get_mount_paths from pyanaconda.packaging to util. (dlehman) -- Update the TODO list. (dlehman) -- Carry over s390 exclusion of fcoe-utils from anaconda. (dlehman) -- Enable translations via transifex. (dlehman) - -* Fri Jan 18 2013 David Lehman - 0.2-1 -- Add Requires: iscsi-initiator-utils, fcoe-utils, device-mapper-multipath. (dlehman) -- Use a threading lock to control program log output. (dlehman) -- Fix reference to data to refer to ksdata in Blivet constructor. (dlehman) -- Remove the loop around proc.communicate in util._run_program. (dlehman) - -* Tue Jan 15 2013 David Lehman 0.2-1 -- Updated source from final pre-split anaconda source. -- Renamed pyanaconda.storage to blivet throughout. -- Updated spec file to include runtime Requires. - -* Fri Jan 04 2013 David Lehman 0.1-1 -- Created package from anaconda storage module. diff --git a/build-deps-iso.list b/build-deps-iso.list index 4b5ed397..f6c52cfb 100644 --- a/build-deps-iso.list +++ b/build-deps-iso.list @@ -1,5 +1,6 @@ anaconda pungi +pungi-legacy pykickstart lorax-templates-qubes livecd-tools diff --git a/conf/qubes-kickstart.cfg b/conf/qubes-kickstart.cfg index b58b7623..7497182f 100644 --- a/conf/qubes-kickstart.cfg +++ b/conf/qubes-kickstart.cfg @@ -4,8 +4,8 @@ # (@base is added by default unless you add --nobase to %packages) # (default groups for the configured repos are added by --default) -repo --name=fedora --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-25-primary --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-25&arch=$basearch -repo --name=fedora-updates --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-25-primary --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f25&arch=$basearch +repo --name=fedora --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-29-primary --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-29&arch=$basearch +repo --name=fedora-updates --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-29-primary --ignoregroups=true --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f29&arch=$basearch repo --name=installer --baseurl=file:///tmp/qubes-installer/yum/installer/ repo --name=qubes-dom0 --baseurl=file:///tmp/qubes-installer/yum/qubes-dom0/ repo --name=dom0-updates --baseurl=file:///tmp/qubes-installer/yum/dom0-updates/ diff --git a/conf/travis-iso-full.ks b/conf/travis-iso-full.ks index 503b8206..dea2cfb0 100644 --- a/conf/travis-iso-full.ks +++ b/conf/travis-iso-full.ks @@ -1,8 +1,8 @@ %include qubes-kickstart.cfg -repo --name=qubes-r4.0-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.0-primary --baseurl=http://mirrors.ukfast.co.uk/sites/qubes-os.org/repo/yum/r4.0/current-testing/dom0/fc25 --ignoregroups=true -repo --name=qubes-r4.0-templates-itl --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.0-primary --baseurl=http://mirrors.ukfast.co.uk/sites/qubes-os.org/repo/yum/r4.0/templates-itl --ignoregroups=true -repo --name=qubes-r4.0-templates-itl-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.0-primary --baseurl=http://mirrors.ukfast.co.uk/sites/qubes-os.org/repo/yum/r4.0/templates-itl-testing --ignoregroups=true -repo --name=qubes-r4.0-templates-community --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.0-templates-community --baseurl=http://mirrors.ukfast.co.uk/sites/qubes-os.org/repo/yum/r4.0/templates-community --ignoregroups=true -repo --name=qubes-r4.0-templates-community-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.0-templates-community --baseurl=http://mirrors.ukfast.co.uk/sites/qubes-os.org/repo/yum/r4.0/templates-community-testing --ignoregroups=true +repo --name=qubes-r4.1-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.1-primary --baseurl=http://yum.qubes-os.org/r4.1/current-testing/dom0/fc29 --ignoregroups=true +repo --name=qubes-r4.1-templates-itl --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.1-primary --mirrorlist=http://yum.qubes-os.org/r4.1/templates-itl/repodata/repomd.xml.metalink --ignoregroups=true +repo --name=qubes-r4.1-templates-itl-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.1-primary --mirrorlist=http://yum.qubes-os.org/r4.1/templates-itl-testing/repodata/repomd.xml.metalink --ignoregroups=true +repo --name=qubes-r4.1-templates-community --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.1-templates-community --mirrorlist=http://yum.qubes-os.org/r4.1/templates-community/repodata/repomd.xml.metalink --ignoregroups=true +repo --name=qubes-r4.1-templates-community-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.1-templates-community --mirrorlist=http://yum.qubes-os.org/r4.1/templates-community-testing/repodata/repomd.xml.metalink --ignoregroups=true diff --git a/conf/travis-iso.ks b/conf/travis-iso.ks index 3de03d6a..1cc27de1 100644 --- a/conf/travis-iso.ks +++ b/conf/travis-iso.ks @@ -1,3 +1,3 @@ %include qubes-kickstart.cfg -repo --name=qubes-r4.0-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.0-primary --baseurl=http://yum.qubes-os.org/r4.0/current-testing/dom0/fc25 --ignoregroups=true +repo --name=qubes-r4.1-testing --gpgkey=file:///tmp/qubes-installer/qubes-release/RPM-GPG-KEY-qubes-4.1-primary --baseurl=http://yum.qubes-os.org/r4.1/current-testing/dom0/fc29 --ignoregroups=true diff --git a/lorax-templates-qubes/lorax-templates-qubes.spec b/lorax-templates-qubes/lorax-templates-qubes.spec deleted file mode 100644 index 46553598..00000000 --- a/lorax-templates-qubes/lorax-templates-qubes.spec +++ /dev/null @@ -1,44 +0,0 @@ -Name: lorax-templates-qubes -Version: 4.0.5 -Release: 1%{?dist} -Summary: Lorax templates for Qubes installation ISO - -Group: Applications/System -License: GPLv2+ -URL: http://www.qubes-os.org/ -Source0: %{name}-%{version}.tar.bz2 - -#BuildRequires: -Requires: lorax -BuildArch: noarch - -%description -Lorax templates for Qubes installation ISO. - -%prep -%setup -q - -%install -rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/usr/share/lorax-qubes -cp -r templates/* $RPM_BUILD_ROOT/usr/share/lorax-qubes/ - -%post -# pungi does not allow to specify alternative config, so must override the default one -if [ -r /etc/lorax/lorax.conf -a ! -r /etc/lorax/lorax-pre-qubes.conf ]; then - mv /etc/lorax/lorax.conf /etc/lorax/lorax-pre-qubes.conf -fi - -cat > /etc/lorax/lorax.conf << EOF -# Lorax configuration file -[lorax] -sharedir: /usr/share/lorax-qubes -EOF - -%files -%defattr(-,root,root,-) -/usr/share/lorax-qubes - - -%changelog - diff --git a/lorax-templates-qubes/templates/appliance/libvirt.tmpl b/lorax-templates-qubes/templates/appliance/libvirt.tmpl deleted file mode 100644 index a739e635..00000000 --- a/lorax-templates-qubes/templates/appliance/libvirt.tmpl +++ /dev/null @@ -1,35 +0,0 @@ - - - ${name} - - - - ${arch} - - - - -%for disk, letter in zip(disks, xrange(97, 123)): - -%endfor - - - ${vcpus} - ${memory} -%for net in networks: - -%endfor - - - - -%for disk in disks: - - %if disk.checksum: - ${disk.checksum} - %endif - -%endfor - - - diff --git a/lorax-templates-qubes/templates/arm.tmpl b/lorax-templates-qubes/templates/arm.tmpl deleted file mode 100644 index fdf5326f..00000000 --- a/lorax-templates-qubes/templates/arm.tmpl +++ /dev/null @@ -1,92 +0,0 @@ -<%page args="kernels, runtime_img, runtime_base, basearch, outroot, arch"/> -<% -configdir="tmp/config_files/uboot" -PXEBOOTDIR="images/pxeboot" -BOOTDIR="boot" -KERNELDIR=PXEBOOTDIR -LIVEDIR="LiveOS" - -# different platforms use different kernel load addresses. -# include a 'baseline' kernel for no 'flavor'. -kernelAddress = { 'baseline' : '0x00008000', - 'highbank' : '0x00008000', - 'imx' : '0x90008000', - 'kirkwood' : '0x00008000', - 'mvebu' : '0x00008000', - 'omap' : '0x80008000', - 'tegra' : '0x00008000', - } -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -# Add platforms to treeinfo for Beaker support. -treeinfo ${basearch} platforms highbank,imx,mvebu,omap,tegra - -## install kernels -mkdir ${KERNELDIR} -%for kernel in kernels: - %if kernel.flavor: - installkernel images-${kernel.flavor}-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor} - installinitrd images-${kernel.flavor}-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img - - %if doupgrade: - ## install upgrade image - installupgradeinitrd images-${kernel.flavor}-${basearch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade-${kernel.flavor}.img - %endif - - ## create U-Boot wrapped images - - runcmd mkimage \ - -A arm -O linux -T ramdisk -C none \ - -a 0 -e 0 \ - -n "${product.name} ${product.version} ${kernel.flavor} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/initrd-${kernel.flavor}.img \ - ${outroot}/${KERNELDIR}/uInitrd-${kernel.flavor} - - runcmd mkimage \ - -A arm -O linux -T kernel -C none \ - -a ${kernelAddress[kernel.flavor]} -e ${kernelAddress[kernel.flavor]} \ - -n "${product.name} ${product.version} ${kernel.flavor} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/vmlinuz-${kernel.flavor} \ - ${outroot}/${KERNELDIR}/uImage-${kernel.flavor} - - treeinfo images-${kernel.flavor}-${basearch} uimage ${KERNELDIR}/uImage-${kernel.flavor} - treeinfo images-${kernel.flavor}-${basearch} uinitrd ${KERNELDIR}/uInitrd-${kernel.flavor} - - %else: - installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz - installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - - %if doupgrade: - ## install upgrade image - installupgradeinitrd images-${basearch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade.img - %endif - - ## create U-Boot wrapped images - - runcmd mkimage \ - -A arm -O linux -T ramdisk -C none \ - -a 0 -e 0 \ - -n "${product.name} ${product.version} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/initrd.img \ - ${outroot}/${KERNELDIR}/uInitrd - - runcmd mkimage \ - -A arm -O linux -T kernel -C none \ - -a ${kernelAddress['baseline']} -e ${kernelAddress['baseline']} \ - -n "${product.name} ${product.version} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/vmlinuz \ - ${outroot}/${KERNELDIR}/uImage - - treeinfo images-${basearch} uimage ${KERNELDIR}/uImage - treeinfo images-${basearch} uinitrd ${KERNELDIR}/uInitrd - - %endif -%endfor - - -## FIXME: ARM may need some extra boot config - diff --git a/lorax-templates-qubes/templates/config_files/aarch64/boot.msg b/lorax-templates-qubes/templates/config_files/aarch64/boot.msg deleted file mode 100644 index ff54899e..00000000 --- a/lorax-templates-qubes/templates/config_files/aarch64/boot.msg +++ /dev/null @@ -1,5 +0,0 @@ - -splash.lss - - - Press the 0107 key to begin the installation process. - diff --git a/lorax-templates-qubes/templates/config_files/aarch64/grub.conf b/lorax-templates-qubes/templates/config_files/aarch64/grub.conf deleted file mode 100644 index 49fa32bd..00000000 --- a/lorax-templates-qubes/templates/config_files/aarch64/grub.conf +++ /dev/null @@ -1,13 +0,0 @@ -#debug --graphics -default=0 -splashimage=@SPLASHPATH@ -timeout 5 -hiddenmenu -title Install @PRODUCT@ @VERSION@ - findiso - kernel @KERNELPATH@ @ROOT@ quiet - initrd @INITRDPATH@ -title Test this media & install @PRODUCT@ @VERSION@ - findiso - kernel @KERNELPATH@ @ROOT@ rd.live.check quiet - initrd @INITRDPATH@ diff --git a/lorax-templates-qubes/templates/config_files/aarch64/grub2-efi.cfg b/lorax-templates-qubes/templates/config_files/aarch64/grub2-efi.cfg deleted file mode 100644 index 1cc389d9..00000000 --- a/lorax-templates-qubes/templates/config_files/aarch64/grub2-efi.cfg +++ /dev/null @@ -1,46 +0,0 @@ -set default="1" - -function load_video { - if [ x$feature_all_video_module = xy ]; then - insmod all_video - else - insmod efi_gop - insmod efi_uga - insmod ieee1275_fb - insmod vbe - insmod vga - insmod video_bochs - insmod video_cirrus - fi -} - -load_video -set gfxpayload=keep -insmod gzio -insmod part_gpt -insmod ext2 - -set timeout=60 -### END /etc/grub.d/00_header ### - -search --no-floppy --set=root -l '@ISOLABEL@' - -### BEGIN /etc/grub.d/10_linux ### -menuentry 'Install @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os { - linux @KERNELPATH@ @ROOT@ ro - initrd @INITRDPATH@ -} -menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class red --class gnu-linux --class gnu --class os { - linux @KERNELPATH@ @ROOT@ rd.live.check - initrd @INITRDPATH@ -} -submenu 'Troubleshooting -->' { - menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os { - linux @KERNELPATH@ @ROOT@ nomodeset - initrd @INITRDPATH@ - } - menuentry 'Rescue a @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os { - linux @KERNELPATH@ @ROOT@ rescue - initrd @INITRDPATH@ - } -} diff --git a/lorax-templates-qubes/templates/config_files/common/91-anaconda-autoconnect-slaves.conf b/lorax-templates-qubes/templates/config_files/common/91-anaconda-autoconnect-slaves.conf deleted file mode 100644 index f9c81e69..00000000 --- a/lorax-templates-qubes/templates/config_files/common/91-anaconda-autoconnect-slaves.conf +++ /dev/null @@ -1,2 +0,0 @@ -[connection] -connection.autoconnect-slaves=1 diff --git a/lorax-templates-qubes/templates/config_files/common/92-anaconda-loglevel-debug.conf b/lorax-templates-qubes/templates/config_files/common/92-anaconda-loglevel-debug.conf deleted file mode 100644 index 6a6535d7..00000000 --- a/lorax-templates-qubes/templates/config_files/common/92-anaconda-loglevel-debug.conf +++ /dev/null @@ -1,2 +0,0 @@ -[logging] -level=DEBUG diff --git a/lorax-templates-qubes/templates/config_files/common/NetworkManager.state b/lorax-templates-qubes/templates/config_files/common/NetworkManager.state deleted file mode 100644 index fcaf919d..00000000 --- a/lorax-templates-qubes/templates/config_files/common/NetworkManager.state +++ /dev/null @@ -1,2 +0,0 @@ -[main] -NetworkingEnabled=false diff --git a/lorax-templates-qubes/templates/config_files/common/bash_history b/lorax-templates-qubes/templates/config_files/common/bash_history deleted file mode 100644 index a766df26..00000000 --- a/lorax-templates-qubes/templates/config_files/common/bash_history +++ /dev/null @@ -1,11 +0,0 @@ -kill -USR1 `cat /var/run/anaconda.pid` -kill -USR2 `cat /var/run/anaconda.pid` -kill -HUP `cat /var/run/anaconda.pid` -udevadm info --export-db | less -tail -f /tmp/storage.log -echo b > /proc/sysrq-trigger -dmsetup table -multipath -d -HOME=/root chroot /mnt/sysimage bash -l -i -less /tmp/anaconda.log -grep -v _yum_lock /tmp/packaging.log diff --git a/lorax-templates-qubes/templates/config_files/common/i18n b/lorax-templates-qubes/templates/config_files/common/i18n deleted file mode 100644 index b2542322..00000000 --- a/lorax-templates-qubes/templates/config_files/common/i18n +++ /dev/null @@ -1 +0,0 @@ -SYSFONT="eurlatgr" diff --git a/lorax-templates-qubes/templates/config_files/common/libuser.conf b/lorax-templates-qubes/templates/config_files/common/libuser.conf deleted file mode 100644 index a7a0ef00..00000000 --- a/lorax-templates-qubes/templates/config_files/common/libuser.conf +++ /dev/null @@ -1,10 +0,0 @@ -[defaults] -skeleton = /mnt/sysimage/etc/skel -mailspooldir = /mnt/sysimage/var/mail -crypt_style = md5 -modules = files shadow -create_modules = files shadow -[files] -directory = /mnt/sysimage/etc -[shadow] -directory = /mnt/sysimage/etc diff --git a/lorax-templates-qubes/templates/config_files/common/org.gnome.desktop.wm.preferences.gschema.override b/lorax-templates-qubes/templates/config_files/common/org.gnome.desktop.wm.preferences.gschema.override deleted file mode 100644 index b499643f..00000000 --- a/lorax-templates-qubes/templates/config_files/common/org.gnome.desktop.wm.preferences.gschema.override +++ /dev/null @@ -1,4 +0,0 @@ -[org.gnome.desktop.wm.preferences] - button-layout=':' - action-right-click-titlebar='none' - num-workspaces=1 diff --git a/lorax-templates-qubes/templates/config_files/common/org.gtk.Settings.Debug.gschema.override b/lorax-templates-qubes/templates/config_files/common/org.gtk.Settings.Debug.gschema.override deleted file mode 100644 index fcedd1b7..00000000 --- a/lorax-templates-qubes/templates/config_files/common/org.gtk.Settings.Debug.gschema.override +++ /dev/null @@ -1,2 +0,0 @@ -[org.gtk.Settings.Debug] - enable-inspector-keybinding=true diff --git a/lorax-templates-qubes/templates/config_files/common/pam.sshd b/lorax-templates-qubes/templates/config_files/common/pam.sshd deleted file mode 100644 index 88c019fe..00000000 --- a/lorax-templates-qubes/templates/config_files/common/pam.sshd +++ /dev/null @@ -1,9 +0,0 @@ -#%PAM-1.0 -auth required pam_env.so -auth sufficient pam_unix.so likeauth nullok -auth required pam_deny.so -account required pam_unix.so -password sufficient pam_unix.so nullok use_authtok md5 shadow -password required pam_deny.so -session required pam_limits.so -session required pam_unix.so diff --git a/lorax-templates-qubes/templates/config_files/common/profile b/lorax-templates-qubes/templates/config_files/common/profile deleted file mode 100644 index 00a475e9..00000000 --- a/lorax-templates-qubes/templates/config_files/common/profile +++ /dev/null @@ -1,3 +0,0 @@ -PS1="[anaconda \u@\h \W]\\$ " -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/mnt/sysimage/sbin:/mnt/sysimage/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin -export PATH PS1 diff --git a/lorax-templates-qubes/templates/config_files/common/resolv.conf b/lorax-templates-qubes/templates/config_files/common/resolv.conf deleted file mode 100644 index e69de29b..00000000 diff --git a/lorax-templates-qubes/templates/config_files/common/rsyslog.conf b/lorax-templates-qubes/templates/config_files/common/rsyslog.conf deleted file mode 100644 index 94b180c8..00000000 --- a/lorax-templates-qubes/templates/config_files/common/rsyslog.conf +++ /dev/null @@ -1,93 +0,0 @@ -# rsyslog configuration file - -# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html -# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html - -#### MODULES #### - -# The imjournal module bellow is now used as a message source instead of imuxsock. -$ModLoad imuxsock # provides support for local system logging (e.g. via logger command) -$SystemLogRateLimitInterval 0 # disables message dropping, we need all of them -$ModLoad imjournal # provides access to the systemd journal -$ModLoad imklog # reads kernel messages (the same are read from journald) -#$ModLoad immark # provides --MARK-- message capability - -# Provides UDP syslog reception -#$ModLoad imudp -#$UDPServerRun 514 - -# Provides TCP syslog reception -#$ModLoad imtcp -#$InputTCPServerRun 514 - -$ModLoad imfile -$InputFileName /tmp/X.log -$InputFileTag xserver: -$InputFileStateFile xserver-statefile -$InputFileFacility local1 -$InputRunFileMonitor -$InputFileName /tmp/anaconda-tb-all.log -$InputFileTag anaconda-tb: -$InputFileStateFile anaconda-tb-statefile -$InputFileFacility local1 -$InputRunFileMonitor - - -#### GLOBAL DIRECTIVES #### - -# Where to place auxiliary files -#$WorkDirectory /var/lib/rsyslog - -# Use default timestamp format -$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat - -# File syncing capability is disabled by default. This feature is usually not required, -# not useful and an extreme performance hit -#$ActionFileEnableSync on - -# Include all config files in /etc/rsyslog.d/ -$IncludeConfig /etc/rsyslog.d/*.conf - -# Turn off message reception via local log socket; -# local messages are retrieved through imjournal now. -$OmitLocalLogging on - -# File to store the position in the journal -$IMJournalStateFile imjournal.state - -#### TEMPLATES #### - -$template anaconda_tty4, "%syslogseverity-text:::uppercase% %programname%:%msg%\n" -$template anaconda_syslog, "%timestamp:8:$:date-rfc3164%,%timestamp:1:3:date-subseconds% %syslogseverity-text:::uppercase% %programname%:%msg%\n" -$template virtio_ForwardFormat, "<%PRI%>%TIMESTAMP:::date-rfc3339% localhost %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\n" - -#### RULES #### - -# log everything except anaconda-specific records from local1 (those are stored -# directly into files via python logging) - -# discard messages from dracut regenerating initrd -:programname,isequal,"dracut" ~ - -*.*;\ -authpriv.none;\ -local1.none /tmp/syslog;anaconda_syslog - & /dev/tty4;anaconda_tty4 - - -# ### begin forwarding rule ### -# The statement between the begin ... end define a SINGLE forwarding -# rule. They belong together, do NOT split them. If you create multiple -# forwarding rules, duplicate the whole block! -# Remote Logging (we use TCP for reliable delivery) -# -# An on-disk queue is created for this action. If the remote host is -# down, messages are spooled to disk and sent when it is up again. -#$ActionQueueFileName fwdRule1 # unique name prefix for spool files -$ActionQueueMaxDiskSpace 1m # space limit (use as much as possible) -$ActionQueueSaveOnShutdown off # do not save messages to disk on shutdown -#$ActionQueueType LinkedList # run asynchronously -#$ActionResumeRetryCount -1 # infinite retries if host is down -# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional -#*.* @@remote-host:514 -# ### end of the forwarding rule ### diff --git a/lorax-templates-qubes/templates/config_files/common/selinux.config b/lorax-templates-qubes/templates/config_files/common/selinux.config deleted file mode 100644 index eac67ab1..00000000 --- a/lorax-templates-qubes/templates/config_files/common/selinux.config +++ /dev/null @@ -1,2 +0,0 @@ -SELINUX=permissive -SELINUXTYPE=targeted diff --git a/lorax-templates-qubes/templates/config_files/common/spice-vdagentd b/lorax-templates-qubes/templates/config_files/common/spice-vdagentd deleted file mode 100644 index e70aa699..00000000 --- a/lorax-templates-qubes/templates/config_files/common/spice-vdagentd +++ /dev/null @@ -1 +0,0 @@ -SPICE_VDAGENTD_EXTRA_ARGS=-X diff --git a/lorax-templates-qubes/templates/config_files/common/sshd_config.anaconda b/lorax-templates-qubes/templates/config_files/common/sshd_config.anaconda deleted file mode 100644 index 39c0967e..00000000 --- a/lorax-templates-qubes/templates/config_files/common/sshd_config.anaconda +++ /dev/null @@ -1,14 +0,0 @@ -Port 22 -PermitRootLogin yes -IgnoreRhosts yes -StrictModes yes -X11Forwarding yes -X11DisplayOffset 10 -PrintMotd yes -XAuthLocation /bin/xauth -KeepAlive yes -SyslogFacility AUTHPRIV -RSAAuthentication yes -PasswordAuthentication yes -PermitEmptyPasswords yes -PermitUserEnvironment yes diff --git a/lorax-templates-qubes/templates/config_files/common/sysctl.conf b/lorax-templates-qubes/templates/config_files/common/sysctl.conf deleted file mode 100644 index a95dfc6b..00000000 --- a/lorax-templates-qubes/templates/config_files/common/sysctl.conf +++ /dev/null @@ -1 +0,0 @@ -kernel.printk=1 diff --git a/lorax-templates-qubes/templates/config_files/common/vconsole.conf b/lorax-templates-qubes/templates/config_files/common/vconsole.conf deleted file mode 100644 index 2bd78922..00000000 --- a/lorax-templates-qubes/templates/config_files/common/vconsole.conf +++ /dev/null @@ -1,2 +0,0 @@ -KEYMAP=us -FONT=eurlatgr diff --git a/lorax-templates-qubes/templates/config_files/ppc/bootinfo.txt b/lorax-templates-qubes/templates/config_files/ppc/bootinfo.txt deleted file mode 100644 index 6eac6c4d..00000000 --- a/lorax-templates-qubes/templates/config_files/ppc/bootinfo.txt +++ /dev/null @@ -1,170 +0,0 @@ - -grub 2.00 -grub 2.00 -boot &device;:\boot\grub\powerpc-ieee1275\core.elf - - FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF -FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 diff --git a/lorax-templates-qubes/templates/config_files/ppc/grub.cfg.in b/lorax-templates-qubes/templates/config_files/ppc/grub.cfg.in deleted file mode 100644 index 417856e4..00000000 --- a/lorax-templates-qubes/templates/config_files/ppc/grub.cfg.in +++ /dev/null @@ -1,30 +0,0 @@ -set default=0 -set timeout=5 - -echo -e "\nWelcome to the @PRODUCT@ @VERSION@ installer!\n\n" - -menuentry "Install @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os { - linux /ppc/ppc64/vmlinuz @ROOT@ ro - initrd /ppc/ppc64/initrd.img -} - -menuentry "Test this media & install @PRODUCT@ @VERSION@ (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os { - linux /ppc/ppc64/vmlinuz @ROOT@ rd.live.check ro - initrd /ppc/ppc64/initrd.img -} - -menuentry "Rescue a @PRODUCT@ system (64-bit kernel)" --class fedora --class gnu-linux --class gnu --class os { - linux /ppc/ppc64/vmlinuz @ROOT@ rescue ro - initrd /ppc/ppc64/initrd.img -} - -submenu 'Other options...' { - menuentry 'Reboot' { - reboot - } - - menuentry 'Exit to Open Firmware' { - exit - } -} - diff --git a/lorax-templates-qubes/templates/config_files/ppc/mapping b/lorax-templates-qubes/templates/config_files/ppc/mapping deleted file mode 100644 index c3eec9ea..00000000 --- a/lorax-templates-qubes/templates/config_files/ppc/mapping +++ /dev/null @@ -1,28 +0,0 @@ -# Example filename mapping file -# -# yaboot Raw 'UNIX' 'boot' "Bootstrap" -# vmlinux Raw 'UNIX' 'boot' "Bootstrap" -# -# EXTN XLate CREATOR TYPE Comment -COPYING Ascii 'ttxt' 'ttro' "Text File" -CREDITS Ascii 'ttxt' 'ttro' "Text File" -README Ascii 'ttxt' 'ttro' "Text File" -RPM-GPG-KEY Ascii 'ttxt' 'ttro' "Text File" -RELEASE_NOTES Ascii 'ttxt' 'ttro' "Text File" -.b Raw 'chrp' 'tbxi' "Macintosh Toolbox ROM file" -.gif Raw '8BIM' 'GIFf' "Gif File" -.jpg Raw '8BIM' 'JPEG' "Jpeg File" -.tif Raw '8BIM' 'TIFF' "Photoshop TIFF image" -.hqx Ascii 'BnHq' 'TEXT' "BinHex file" -.doc Raw 'MSWD' 'WDBN' "Word file" -.mov Raw 'TVOD' 'MooV' "QuickTime Movie" -.html Ascii 'MOSS' 'TEXT' "HTML File" -.htm Ascii 'MOSS' 'TEXT' "HTML File" -.conf Ascii 'ttxt' 'TEXT' "config file" -.txt Ascii 'ttxt' 'TEXT' "Text File" -.tbxi Raw 'chrp' 'tbxi' "Macintosh Toolbox ROM file" -.sea Raw 'aust' 'APPL' "Self Expanding Archive" -.sit Raw 'SIT!' 'SITD' "Stuffit Expander file" -core.elf Raw 'chrp' 'tbxi' "Bootable GRUB2 executable." -* Raw '????' '????' "Unknown" - diff --git a/lorax-templates-qubes/templates/config_files/ppc/ofboot.b b/lorax-templates-qubes/templates/config_files/ppc/ofboot.b deleted file mode 100644 index c811894e..00000000 --- a/lorax-templates-qubes/templates/config_files/ppc/ofboot.b +++ /dev/null @@ -1,74 +0,0 @@ - - -MacRISC MacRISC3 MacRISC4 - - - -Boot Chooser - - - -" screen" output -load-base release-load-area -" /cpus/@0" find-package if - " 64-bit" rot get-package-property 0= if - 2drop - " boot cd:,\ppc\mac\yaboot conf=cd:,\ppc\ppc64\yaboot.conf" eval - else - " boot cd:,\ppc\mac\yaboot conf=cd:,\ppc\ppc32\yaboot.conf" eval - then -then - - - -1010 -000000000000F8FEACF6000000000000 -0000000000F5FFFFFEFEF50000000000 -00000000002BFAFEFAFCF70000000000 -0000000000F65D5857812B0000000000 -0000000000F5350B2F88560000000000 -0000000000F6335708F8FE0000000000 -00000000005600F600F5FD8100000000 -00000000F9F8000000F5FAFFF8000000 -000000008100F5F50000F6FEFE000000 -000000F8F700F500F50000FCFFF70000 -00000088F70000F50000F5FCFF2B0000 -0000002F582A00F5000008ADE02C0000 -00090B0A35A62B0000002D3B350A0000 -000A0A0B0B3BF60000505E0B0A0B0A00 -002E350B0B2F87FAFCF45F0B2E090000 -00000007335FF82BF72B575907000000 -000000000000ACFFFF81000000000000 -000000000081FFFFFFFF810000000000 -0000000000FBFFFFFFFFAC0000000000 -000000000081DFDFDFFFFB0000000000 -000000000081DD5F83FFFD0000000000 -000000000081DDDF5EACFF0000000000 -0000000000FDF981F981FFFF00000000 -00000000FFACF9F9F981FFFFAC000000 -00000000FFF98181F9F981FFFF000000 -000000ACACF981F981F9F9FFFFAC0000 -000000FFACF9F981F9F981FFFFFB0000 -00000083DFFBF981F9F95EFFFFFC0000 -005F5F5FDDFFFBF9F9F983DDDD5F0000 -005F5F5F5FDD81F9F9E7DF5F5F5F5F00 -0083DD5F5F83FFFFFFFFDF5F835F0000 -000000FBDDDFACFBACFBDFDFFB000000 -000000000000FFFFFFFF000000000000 -0000000000FFFFFFFFFFFF0000000000 -0000000000FFFFFFFFFFFF0000000000 -0000000000FFFFFFFFFFFF0000000000 -0000000000FFFFFFFFFFFF0000000000 -0000000000FFFFFFFFFFFF0000000000 -0000000000FFFFFFFFFFFFFF00000000 -00000000FFFFFFFFFFFFFFFFFF000000 -00000000FFFFFFFFFFFFFFFFFF000000 -000000FFFFFFFFFFFFFFFFFFFFFF0000 -000000FFFFFFFFFFFFFFFFFFFFFF0000 -000000FFFFFFFFFFFFFFFFFFFFFF0000 -00FFFFFFFFFFFFFFFFFFFFFFFFFF0000 -00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -00FFFFFFFFFFFFFFFFFFFFFFFFFF0000 -000000FFFFFFFFFFFFFFFFFFFF000000 - - diff --git a/lorax-templates-qubes/templates/config_files/ppc/yaboot.conf.3264 b/lorax-templates-qubes/templates/config_files/ppc/yaboot.conf.3264 deleted file mode 100644 index 7aa63059..00000000 --- a/lorax-templates-qubes/templates/config_files/ppc/yaboot.conf.3264 +++ /dev/null @@ -1,16 +0,0 @@ -init-message = "\nWelcome to the @PRODUCT@ @VERSION@ installer!\nUse 'linux32' for 32-bit kernel.\n\n" -timeout=6000 -default=linux - -image=/ppc/ppc64/vmlinuz - label=linux64 - alias=linux - initrd=/ppc/ppc64/ramdisk.image.gz - read-only - append="@ROOT@" - -image=/ppc/ppc32/vmlinuz - label=linux32 - initrd=/ppc/ppc32/ramdisk.image.gz - read-only - append="@ROOT@" diff --git a/lorax-templates-qubes/templates/config_files/ppc/yaboot.conf.in b/lorax-templates-qubes/templates/config_files/ppc/yaboot.conf.in deleted file mode 100644 index 0a6bafc2..00000000 --- a/lorax-templates-qubes/templates/config_files/ppc/yaboot.conf.in +++ /dev/null @@ -1,9 +0,0 @@ -init-message = "\nWelcome to the @BITS@-bit @PRODUCT@ @VERSION@ installer!\nHit for boot options.\n\n" -timeout=6000 -default=linux - -image=/ppc/ppc@BITS@/vmlinuz - label=linux - initrd=/ppc/ppc@BITS@/initrd.img - read-only - append="@ROOT@" diff --git a/lorax-templates-qubes/templates/config_files/s390/generic.ins b/lorax-templates-qubes/templates/config_files/s390/generic.ins deleted file mode 100644 index 756d2ff4..00000000 --- a/lorax-templates-qubes/templates/config_files/s390/generic.ins +++ /dev/null @@ -1,5 +0,0 @@ -* minimal lpar ins file -images/kernel.img 0x00000000 -images/initrd.img @INITRD_LOAD_ADDRESS@ -images/genericdvd.prm 0x00010480 -images/initrd.addrsize 0x00010408 diff --git a/lorax-templates-qubes/templates/config_files/s390/generic.prm b/lorax-templates-qubes/templates/config_files/s390/generic.prm deleted file mode 100644 index e1dc3977..00000000 --- a/lorax-templates-qubes/templates/config_files/s390/generic.prm +++ /dev/null @@ -1 +0,0 @@ -ro ramdisk_size=40000 cio_ignore=all,!condev diff --git a/lorax-templates-qubes/templates/config_files/s390/genericdvd.prm b/lorax-templates-qubes/templates/config_files/s390/genericdvd.prm deleted file mode 100644 index b5d27316..00000000 --- a/lorax-templates-qubes/templates/config_files/s390/genericdvd.prm +++ /dev/null @@ -1 +0,0 @@ -ro ramdisk_size=40000 cio_ignore=all,!condev rd.cmdline=ask diff --git a/lorax-templates-qubes/templates/config_files/s390/redhat.exec b/lorax-templates-qubes/templates/config_files/s390/redhat.exec deleted file mode 100644 index f1e5931a..00000000 --- a/lorax-templates-qubes/templates/config_files/s390/redhat.exec +++ /dev/null @@ -1,9 +0,0 @@ -/* */ -'CL RDR' -'PURGE RDR ALL' -'SPOOL PUNCH * RDR' -'PUNCH KERNEL IMG A (NOH' -'PUNCH GENERIC PRM A (NOH' -'PUNCH INITRD IMG A (NOH' -'CH RDR ALL KEEP NOHOLD' -'I 00C' diff --git a/lorax-templates-qubes/templates/config_files/sparc/boot.msg b/lorax-templates-qubes/templates/config_files/sparc/boot.msg deleted file mode 100644 index f9cfb8a6..00000000 --- a/lorax-templates-qubes/templates/config_files/sparc/boot.msg +++ /dev/null @@ -1,9 +0,0 @@ - - Welcome to @PRODUCT@ @VERSION@! - - - To install in graphical mode, press the  key. - - - To install in text mode, type: linux text . - - - To enter rescue mode type: linux rescue . - diff --git a/lorax-templates-qubes/templates/config_files/sparc/silo.conf b/lorax-templates-qubes/templates/config_files/sparc/silo.conf deleted file mode 100644 index 846c569b..00000000 --- a/lorax-templates-qubes/templates/config_files/sparc/silo.conf +++ /dev/null @@ -1,18 +0,0 @@ -partition=1 -default=linux -read-write -timeout=100 -message=/boot/boot.msg -image[sun4u]=/boot/vmlinuz - label=linux - alias=install - append="@ROOT@" - initrd=/boot/initrd.img -image[sun4u]=/boot/vmlinuz - label=text - append="@ROOT@ text" - initrd=/boot/initrd.img -image[sun4u]=/boot/vmlinuz - label=ks - append="@ROOT@ ks" - initrd=/boot/initrd.img diff --git a/lorax-templates-qubes/templates/config_files/x86/System Volume Information/IndexerVolumeGuid b/lorax-templates-qubes/templates/config_files/x86/System Volume Information/IndexerVolumeGuid deleted file mode 100644 index 06259133..00000000 Binary files a/lorax-templates-qubes/templates/config_files/x86/System Volume Information/IndexerVolumeGuid and /dev/null differ diff --git a/lorax-templates-qubes/templates/config_files/x86/boot.msg b/lorax-templates-qubes/templates/config_files/x86/boot.msg deleted file mode 100644 index ff54899e..00000000 --- a/lorax-templates-qubes/templates/config_files/x86/boot.msg +++ /dev/null @@ -1,5 +0,0 @@ - -splash.lss - - - Press the 0107 key to begin the installation process. - diff --git a/lorax-templates-qubes/templates/config_files/x86/grub.conf b/lorax-templates-qubes/templates/config_files/x86/grub.conf deleted file mode 100644 index d1ce3bef..00000000 --- a/lorax-templates-qubes/templates/config_files/x86/grub.conf +++ /dev/null @@ -1,13 +0,0 @@ -#debug --graphics -default=0 -splashimage=@SPLASHPATH@ -timeout 5 -hiddenmenu -title @PRODUCT@ @VERSION@ - findiso - kernel @KERNELPATH@ @ROOT@ - initrd @INITRDPATH@ -title Test this media & start @PRODUCT@ - findiso - kernel @KERNELPATH@ @ROOT@ quiet rd.live.check - initrd @INITRDPATH@ diff --git a/lorax-templates-qubes/templates/config_files/x86/grub2-efi.cfg b/lorax-templates-qubes/templates/config_files/x86/grub2-efi.cfg deleted file mode 100644 index b3edeada..00000000 --- a/lorax-templates-qubes/templates/config_files/x86/grub2-efi.cfg +++ /dev/null @@ -1,39 +0,0 @@ -set default="0" - -function load_video { - insmod efi_gop - insmod efi_uga - insmod video_bochs - insmod video_cirrus - insmod all_video -} - -load_video -set gfxpayload=keep -insmod gzio -insmod part_gpt -insmod ext2 -insmod chain - -set timeout=5 -### END /etc/grub.d/00_header ### - -# do not use search for ISO here, 'root' must point ESP, not the whole ISO9660 -# fs, otherwise xen.efi would not be able to access kernel and initrd - -menuentry 'Test media and install @PRODUCT@ @VERSION@' --class qubes --class gnu-linux --class gnu --class os { - chainloader @EFIDIR@/xen.efi placeholder qubes-check -} - -menuentry 'Install @PRODUCT@ @VERSION@' --class qubes --class gnu-linux --class gnu --class os { - chainloader @EFIDIR@/xen.efi -} - -menuentry 'Troubleshooting - verbose boot and Install @PRODUCT@ @VERSION@' --class qubes --class gnu-linux --class gnu --class os { - chainloader @EFIDIR@/xen.efi placeholder qubes-verbose -} - -menuentry 'Rescue a @PRODUCT@ system' --class qubes --class gnu-linux --class gnu --class os { - chainloader @EFIDIR@/xen.efi placeholder qubes-rescue -} - diff --git a/lorax-templates-qubes/templates/config_files/x86/isolinux.cfg b/lorax-templates-qubes/templates/config_files/x86/isolinux.cfg deleted file mode 100644 index bd770538..00000000 --- a/lorax-templates-qubes/templates/config_files/x86/isolinux.cfg +++ /dev/null @@ -1,119 +0,0 @@ -default vesamenu.c32 -timeout 600 - -display boot.msg - -# Clear the screen when exiting the menu, instead of leaving the menu displayed. -# For vesamenu, this means the graphical background is still displayed without -# the menu itself for as long as the screen remains in graphics mode. -menu clear -menu background splash.png -menu title @PRODUCT@ @VERSION@ -menu vshift 8 -menu rows 18 -menu margin 8 -#menu hidden -menu helpmsgrow 15 -menu tabmsgrow 13 - -# Border Area -menu color border * #00000000 #00000000 none - -# Selected item -menu color sel 0 #ffffffff #00000000 none - -# Title bar -menu color title 0 #ff7ba3d0 #00000000 none - -# Press [Tab] message -menu color tabmsg 0 #ff3a6496 #00000000 none - -# Unselected menu item -menu color unsel 0 #84b8ffff #00000000 none - -# Selected hotkey -menu color hotsel 0 #84b8ffff #00000000 none - -# Unselected hotkey -menu color hotkey 0 #ffffffff #00000000 none - -# Help text -menu color help 0 #ffffffff #00000000 none - -# A scrollbar of some type? Not sure. -menu color scrollbar 0 #ffffffff #ff355594 none - -# Timeout msg -menu color timeout 0 #ffffffff #00000000 none -menu color timeout_msg 0 #ffffffff #00000000 none - -# Command prompt text -menu color cmdmark 0 #84b8ffff #00000000 none -menu color cmdline 0 #ffffffff #00000000 none - -# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message. - -menu tabmsg Press Tab for full configuration options on menu items. - -menu separator # insert an empty line -menu separator # insert an empty line - -label linux - menu label ^Install @PRODUCT@ @VERSION@ - kernel mboot.c32 - append xen.gz console=none --- vmlinuz @ROOT@ i915.alpha_support=1 quiet rhgb --- initrd.img -label check - menu label Test this ^media & install @PRODUCT@ @VERSION@ - menu default - kernel mboot.c32 - append xen.gz console=none --- vmlinuz @ROOT@ i915.alpha_support=1 quiet rhgb rd.live.check --- initrd.img - -menu separator # insert an empty line - -# utilities submenu -menu begin ^Troubleshooting - menu title Troubleshooting - -label vesa - menu indent count 5 - menu label Install @PRODUCT@ @VERSION@ in ^basic graphics mode - text help - Try this option out if you're having trouble installing - @PRODUCT@ @VERSION@. - endtext - kernel mboot.c32 - append xen.gz --- vmlinuz @ROOT@ xdriver=vesa nomodeset quiet --- initrd.img -@EXTRAKERNELS@ -label rescue - menu indent count 5 - menu label ^Rescue a @PRODUCT@ system - text help - If the system will not boot, this lets you access files - and edit config files to try to get it booting again. - endtext - kernel mboot.c32 - append xen.gz --- vmlinuz @ROOT@ rescue quiet --- initrd.img - -label memtest - menu label Run a ^memory test - text help - If your system is having issues, a problem with your - system's memory may be the cause. Use this utility to - see if the memory is working correctly. - endtext - kernel memtest - -menu separator # insert an empty line - -label local - menu label Boot from ^local drive - localboot 0xffff - -menu separator # insert an empty line -menu separator # insert an empty line - -label returntomain - menu label Return to ^main menu - menu exit - -menu end diff --git a/lorax-templates-qubes/templates/config_files/x86/xen-efi.cfg b/lorax-templates-qubes/templates/config_files/x86/xen-efi.cfg deleted file mode 100644 index 7711e41e..00000000 --- a/lorax-templates-qubes/templates/config_files/x86/xen-efi.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[global] -default=qubes-verbose - -[qubes-check] -options=console=none -kernel=vmlinuz @ROOT@ i915.alpha_support=1 quiet rhgb rd.live.check -ramdisk=initrd.img - -[qubes] -options=console=none -kernel=vmlinuz @ROOT@ i915.alpha_support=1 quiet rhgb -ramdisk=initrd.img - -[qubes-verbose] -options=console=vga efi=attr=uc -noexitboot=1 -mapbs=1 -kernel=vmlinuz @ROOT@ i915.alpha_support=1 -ramdisk=initrd.img - -[qubes-rescue] -options=loglvl=all -kernel=vmlinuz @ROOT@ rescue -ramdisk=initrd.img diff --git a/lorax-templates-qubes/templates/efi.tmpl b/lorax-templates-qubes/templates/efi.tmpl deleted file mode 100644 index 02f9aa4d..00000000 --- a/lorax-templates-qubes/templates/efi.tmpl +++ /dev/null @@ -1,69 +0,0 @@ -<%page args="configdir, KERNELDIR, efiarch, isolabel, kver"/> -<% -EFIARCH_LOWER=efiarch.lower() -EFIBOOTDIR="EFI/BOOT" -APPLE_EFI_ICON=inroot+"/usr/share/pixmaps/bootloader/fedora.icns" -APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol" -%> - -mkdir ${EFIBOOTDIR} -mkdir ${EFIBOOTDIR}/fonts/ -## Install xen.efi directly as BOOTX64.efi, reconsider grub when xen get multiboot2 support -install boot/efi/EFI/*/xen*.efi ${EFIBOOTDIR}/BOOT${efiarch}.efi - -## actually make the EFI images -${make_efiboot("images/efiboot.img", include_kernel=True)} - -## place fonts on ISO9660, but not in efiboot.img to save space -install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ - -## This is kinda gross, but then... so's EFI. -<%def name="make_efiboot(img, include_kernel=False, disk=False, imgtype='default')"> - <% - kdir = EFIBOOTDIR if include_kernel else KERNELDIR - xenconf = "%s/BOOT%s.cfg" % (EFIBOOTDIR, efiarch) - args = "--label=ANACONDA --debug" - scsi_modules = " 3w-9xxx 3w-sas 3w-xxxx BusLogic a100u2w aacraid advansys aic79xx aic7xxx am53c974 arcmsr atp870u bfa bnx2fc csiostor dc395x dmx3191d esas2r esp_scsi fcoe fnic gdth hpsa hptiop hv_storvsc initio ipr ips isci iscsi_boot_sysfs libfc libfcoe libiscsi libosd libsas lpfc megaraid megaraid_mbox megaraid_mm megaraid_sas mpt2sas mpt3sas mvsas mvumi osd pm80xx pmcraid qla1280 qla2xxx qla4xxx raid_class scsi_debug scsi_dh_emc scsi_dh_rdac scsi_transport_fc scsi_transport_iscsi scsi_transport_sas scsi_transport_spi scsi_transport_srp stex sym53c8xx ufshcd virtio_scsi vmw_pvscsi wd719x" - extra_modules = " affs befs coda cuse dlm gfs2 mptfc ncpfs nilfs2 ocfs2 ocfs2_dlm ocfs2_dlmfs ocfs2_nodemanager ocfs2_stack_o2cb ocfs2_stack_user ocfs2_stackglue sctp sysv ubifs ufs" - extra_modules += " 9p cachefiles ceph cramfs fscache minix blocklayoutdriver grace nfs nfsv4 objlayoutdriver romfs btrfs xfs cifs drbd sunrpc sctp mwifiex f2fs reiserfs jfs" - extra_modules += " dns_resolver udp_tunnel ip6_udp_tunnel rfkill cfg80211 virtio virtio_mmio virtio_pci virtio_ring libertas libertas_sdio 9pnet libceph rc-core memstick mspro_block mptbase mptsas mptscsih mptspi rtsx_pci rtsx_usb cb710 mic_bus scif_bus mic_card tifm_core mmc_block mmc_core cb710-mmc mtk-sd rtsx_pci_sdmmc rtsx_usb_sdmmc sdhci-acpi sdhci sdhci-pci sdhci-pltfm sdricoh_cs tifm_sd toshsd ushc via-sdmmc vub300 wbsd mtd_blkdevs mtdblock mtd mdio vxlan libertas libertas_sdio nd_blk nd_btt nd_pmem i82092 pd6729 yenta_socket pps_core ptp" - # The word boundaries are needed to avoid matching squashfs - extra_modules += " \\ hfsplus" - extra_modules += " ib_addr ib_cm ib_core ib_mad ib_sa ib_ucm ib_umad ib_uverbs iw_cm rdma_cm rdma_ucm iw_cxgb3 iw_cxgb4 mlx4_ib ib_mthca iw_nes ib_qib ib_ipoib ib_iser ib_isert ib_srp ib_srpt" - extra_modules += " cxgb3 cxgb4 mlx4_core mlx4_en" - extra_dracut_modules = " multipath modsign crypt shutdown plymouth fcoe fcoe-uefi nfs iscsi ifcfg" - extra_dracut_modules += " btrfs lvm qemu qemu-net systemd-bootchart systemd-networkd virtfs mlx4 rdma cifs livenet network kernel-network-modules" - if disk: args += " --disk" - if imgtype == "apple": args += ' --apple --icon=%s --diskname=%s --product="%s %s"' % (APPLE_EFI_ICON, APPLE_EFI_DISKNAME, product.name, product.version) - %> - %if include_kernel: - copy ${KERNELDIR}/vmlinuz ${EFIBOOTDIR} - runcmd chroot ${inroot} mkdir -p /boot/efi/EFI/qubes - runcmd chroot ${inroot} touch /proc/modules - runcmd chroot ${inroot} dracut --conf /dev/null --confdir /var/empty \ - --nomdadmconf --nolvmconf --nofscks --no-early-microcode \ - --no-hostonly --xz --install '/.buildstamp' \ - --add 'anaconda pollcdrom dmsquash-live' \ - --omit="${extra_dracut_modules}" --omit-drivers="${scsi_modules}" --omit-drivers="${extra_modules}" \ - /boot/efi/EFI/qubes/initrd-small.img ${kver} - runcmd chroot ${inroot} rm -f /proc/modules - install boot/efi/EFI/qubes/initrd-small.img ${EFIBOOTDIR}/initrd.img - %endif - install ${configdir}/xen-efi.cfg ${xenconf} - replace @KERNELPATH@ /${kdir}/vmlinuz ${xenconf} - %if disk: - replace @ROOT@ inst.stage2=hd:LABEL=ANACONDA ${xenconf} - %else: - replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${xenconf} - %endif - runcmd mkefiboot ${args} ${outroot}/${EFIBOOTDIR} ${outroot}/${img} - # place those files to prevent Windows recreating them while writing ISO image - # on Windows (this would break image verification) - runcmd mount ${outroot}/${img} ${outroot}/${EFIBOOTDIR} -o loop - mkdir "${EFIBOOTDIR}/System Volume Information" - install "${configdir}/System Volume Information/*" "${EFIBOOTDIR}/System Volume Information/" - runcmd umount ${outroot}/${img} - # verify if the image is under 32MB (max size of boot image on iso9660) - runcmd sh -x -c '[ $(stat -c %s ${outroot}/${img}) -le 33554432 ]' - - diff --git a/lorax-templates-qubes/templates/live/arm.tmpl b/lorax-templates-qubes/templates/live/arm.tmpl deleted file mode 100644 index bf6eef95..00000000 --- a/lorax-templates-qubes/templates/live/arm.tmpl +++ /dev/null @@ -1,79 +0,0 @@ -<%page args="kernels, runtime_img, runtime_base, basearch, outroot, arch"/> -<% -configdir="tmp/config_files/uboot" -PXEBOOTDIR="images/pxeboot" -BOOTDIR="boot" -KERNELDIR=PXEBOOTDIR -LIVEDIR="LiveOS" - -# different platforms use different kernel load addresses. -# include a 'baseline' kernel for no 'flavor'. -kernelAddress = { 'baseline' : '0x00008000', - 'highbank' : '0x00008000', - 'imx' : '0x90008000', - 'kirkwood' : '0x00008000', - 'mvebu' : '0x00008000', - 'omap' : '0x80008000', - 'tegra' : '0x00008000', - } -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -## install kernels -mkdir ${KERNELDIR} -%for kernel in kernels: - %if kernel.flavor: - installkernel images-${kernel.flavor}-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor} - installinitrd images-${kernel.flavor}-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img - - # create U-Boot wrapped images - - runcmd mkimage \ - -A arm -O linux -T ramdisk -C none \ - -a 0 -e 0 \ - -n "${product.name} ${product.version} ${kernel.flavor} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/initrd-${kernel.flavor}.img \ - ${outroot}/${KERNELDIR}/uInitrd-${kernel.flavor} - - runcmd mkimage \ - -A arm -O linux -T kernel -C none \ - -a ${kernelAddress[kernel.flavor]} -e ${kernelAddress[kernel.flavor]} \ - -n "${product.name} ${product.version} ${kernel.flavor} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/vmlinuz-${kernel.flavor} \ - ${outroot}/${KERNELDIR}/uImage-${kernel.flavor} - - treeinfo images-${kernel.flavor}-${basearch} uimage ${KERNELDIR}/uImage-${kernel.flavor} - treeinfo images-${kernel.flavor}-${basearch} uinitrd ${KERNELDIR}/uInitrd-${kernel.flavor} - - %else: - installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz - installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - - # create U-Boot wrapped images - - runcmd mkimage \ - -A arm -O linux -T ramdisk -C none \ - -a 0 -e 0 \ - -n "${product.name} ${product.version} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/initrd.img \ - ${outroot}/${KERNELDIR}/uInitrd - - runcmd mkimage \ - -A arm -O linux -T kernel -C none \ - -a ${kernelAddress['baseline']} -e ${kernelAddress['baseline']} \ - -n "${product.name} ${product.version} ${kernel.arch}" \ - -d ${outroot}/${KERNELDIR}/vmlinuz \ - ${outroot}/${KERNELDIR}/uImage - - treeinfo images-${basearch} uimage ${KERNELDIR}/uImage - treeinfo images-${basearch} uinitrd ${KERNELDIR}/uInitrd - - %endif -%endfor - - -## FIXME: ARM may need some extra boot config - diff --git a/lorax-templates-qubes/templates/live/config_files/x86/boot.msg b/lorax-templates-qubes/templates/live/config_files/x86/boot.msg deleted file mode 100644 index ff54899e..00000000 --- a/lorax-templates-qubes/templates/live/config_files/x86/boot.msg +++ /dev/null @@ -1,5 +0,0 @@ - -splash.lss - - - Press the 0107 key to begin the installation process. - diff --git a/lorax-templates-qubes/templates/live/config_files/x86/grub.conf b/lorax-templates-qubes/templates/live/config_files/x86/grub.conf deleted file mode 100644 index b7fdf822..00000000 --- a/lorax-templates-qubes/templates/live/config_files/x86/grub.conf +++ /dev/null @@ -1,13 +0,0 @@ -#debug --graphics -default=0 -splashimage=@SPLASHPATH@ -timeout 5 -hiddenmenu -title @PRODUCT@ @VERSION@ - findiso - kernel @KERNELPATH@ @ROOT@ rd.live.image rd.luks=0 rd.md=0 rd.dm=0 - initrd @INITRDPATH@ -title Test this media & start @PRODUCT@ - findiso - kernel @KERNELPATH@ @ROOT@ quiet rd.live.image rd.live.check rd.luks=0 rd.md=0 rd.dm=0 - initrd @INITRDPATH@ diff --git a/lorax-templates-qubes/templates/live/config_files/x86/grub2-efi.cfg b/lorax-templates-qubes/templates/live/config_files/x86/grub2-efi.cfg deleted file mode 100644 index 6dea0aa2..00000000 --- a/lorax-templates-qubes/templates/live/config_files/x86/grub2-efi.cfg +++ /dev/null @@ -1,31 +0,0 @@ -set default="0" - -function load_video { - insmod efi_gop - insmod efi_uga - insmod video_bochs - insmod video_cirrus - insmod all_video -} - -load_video -set gfxpayload=keep -insmod gzio -insmod part_gpt -insmod ext2 - -set timeout=5 -### END /etc/grub.d/00_header ### - -search --no-floppy --set=root -l '@ISOLABEL@' - -### BEGIN /etc/grub.d/10_linux ### -menuentry '@PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os { - linuxefi @KERNELPATH@ @ROOT@ quiet rd.live.image rd.luks=0 rd.md=0 rd.dm=0 - initrdefi @INITRDPATH@ -} -menuentry 'Test this media & start @PRODUCT@' --class fedora --class gnu-linux --class gnu --class os { - linuxefi @KERNELPATH@ @ROOT@ quiet rd.live.image rd.live.check rd.luks=0 rd.md=0 rd.dm=0 - initrdefi @INITRDPATH@ -} - diff --git a/lorax-templates-qubes/templates/live/config_files/x86/isolinux.cfg b/lorax-templates-qubes/templates/live/config_files/x86/isolinux.cfg deleted file mode 100644 index 6dafb264..00000000 --- a/lorax-templates-qubes/templates/live/config_files/x86/isolinux.cfg +++ /dev/null @@ -1,99 +0,0 @@ -default vesamenu.c32 -timeout 600 - -menu autoboot Starting @PRODUCT@ in # second{,s}. Press any key to interrupt. - -# Clear the screen when exiting the menu, instead of leaving the menu displayed. -# For vesamenu, this means the graphical background is still displayed without -# the menu itself for as long as the screen remains in graphics mode. -menu clear -menu background splash.png -menu title @PRODUCT@ @VERSION@ -menu vshift 8 -menu rows 18 -menu margin 8 -#menu hidden -menu helpmsgrow 15 -menu tabmsgrow 13 - -# Border Area -menu color border * #00000000 #00000000 none - -# Selected item -menu color sel 0 #ffffffff #00000000 none - -# Title bar -menu color title 0 #ff7ba3d0 #00000000 none - -# Press [Tab] message -menu color tabmsg 0 #ff3a6496 #00000000 none - -# Unselected menu item -menu color unsel 0 #84b8ffff #00000000 none - -# Selected hotkey -menu color hotsel 0 #84b8ffff #00000000 none - -# Unselected hotkey -menu color hotkey 0 #ffffffff #00000000 none - -# Help text -menu color help 0 #ffffffff #00000000 none - -# A scrollbar of some type? Not sure. -menu color scrollbar 0 #ffffffff #ff355594 none - -# Timeout msg -menu color timeout 0 #ffffffff #00000000 none -menu color timeout_msg 0 #ffffffff #00000000 none - -# Command prompt text -menu color cmdmark 0 #84b8ffff #00000000 none -menu color cmdline 0 #ffffffff #00000000 none - -# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message. - -menu tabmsg Press Tab for full configuration options on menu items. -menu separator # insert an empty line -menu separator # insert an empty line -label linux - menu label ^Start @PRODUCT@ - menu default - kernel vmlinuz - append initrd=initrd.img @ROOT@ quiet rd.live.image rd.luks=0 rd.md=0 rd.dm=0 -label check - menu label Test this ^media & start @PRODUCT@ - kernel vmlinuz - append initrd=initrd.img @ROOT@ quiet rd.live.image rd.live.check rd.luks=0 rd.md=0 rd.dm=0 -menu separator # insert an empty line -# utilities submenu -menu begin ^Troubleshooting - menu title Troubleshooting -label vesa - menu indent count 5 - menu label Start @PRODUCT@ in ^basic graphics mode - text help - Try this option out if you're having trouble installing - @PRODUCT@. - endtext - kernel vmlinuz - append initrd=initrd.img @ROOT@ xdriver=vesa nomodeset quiet rd.live.image rd.luks=0 rd.md=0 rd.dm=0 -label memtest - menu label Run a ^memory test - text help - If your system is having issues, a problem with your - system's memory may be the cause. Use this utility to - see if the memory is working correctly. - endtext - kernel memtest -menu separator # insert an empty line -label local - menu label Boot from ^local drive - localboot 0xffff -menu separator # insert an empty line -menu separator # insert an empty line -label returntomain - menu label Return to ^main menu - menu exit -menu end - diff --git a/lorax-templates-qubes/templates/live/efi.tmpl b/lorax-templates-qubes/templates/live/efi.tmpl deleted file mode 100644 index cc1c2ec1..00000000 --- a/lorax-templates-qubes/templates/live/efi.tmpl +++ /dev/null @@ -1,53 +0,0 @@ -<%page args="configdir, KERNELDIR, efiarch, isolabel"/> -<% -EFIBOOTDIR="EFI/BOOT" -APPLE_EFI_ICON=inroot+"/usr/share/pixmaps/bootloader/fedora.icns" -APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol" -%> - -mkdir ${EFIBOOTDIR} -mkdir ${EFIBOOTDIR}/fonts/ -install boot/efi/EFI/*/shim.efi ${EFIBOOTDIR}/BOOT${efiarch}.efi -install boot/efi/EFI/*/gcdx64.efi ${EFIBOOTDIR}/grubx64.efi -install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/ - -## actually make the EFI images -${make_efiboot("images/efiboot.img")} -%if domacboot: - ${make_efiboot("images/macboot.img", imgtype="apple")} -%endif - -## This is kinda gross, but then... so's EFI. -<%def name="make_efiboot(img, include_kernel=False, disk=False, imgtype='default')"> - <% - kdir = EFIBOOTDIR if include_kernel else KERNELDIR - eficonf = "%s/grub.cfg" % (EFIBOOTDIR, ) - args = "--label=ANACONDA" - if disk: args += " --disk" - if imgtype == "apple": args += ' --apple --icon=%s --diskname=%s --product="%s %s"' % (APPLE_EFI_ICON, APPLE_EFI_DISKNAME, product.name, product.version) - %> - %if include_kernel: - copy ${KERNELDIR}/vmlinuz ${EFIBOOTDIR} - copy ${KERNELDIR}/initrd.img ${EFIBOOTDIR} - %endif - install ${configdir}/grub2-efi.cfg ${eficonf} - replace @PRODUCT@ '${product.name}' ${eficonf} - replace @VERSION@ ${product.version} ${eficonf} - replace @KERNELNAME@ vmlinuz ${eficonf} - replace @KERNELPATH@ /${kdir}/vmlinuz ${eficonf} - replace @INITRDPATH@ /${kdir}/initrd.img ${eficonf} - replace @ISOLABEL@ '${isolabel}' ${eficonf} - %if disk: - replace @ROOT@ root=live:LABEL=ANACONDA ${eficonf} - %else: - replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${eficonf} - %endif - %if efiarch == 'IA32': - copy ${eficonf} ${EFIBOOTDIR}/BOOT.conf - %endif - runcmd mkefiboot ${args} ${outroot}/${EFIBOOTDIR} ${outroot}/${img} - %if include_kernel: - remove ${EFIBOOTDIR}/vmlinuz - remove ${EFIBOOTDIR}/initrd.img - %endif - diff --git a/lorax-templates-qubes/templates/live/ppc.tmpl b/lorax-templates-qubes/templates/live/ppc.tmpl deleted file mode 100644 index 3ff15da2..00000000 --- a/lorax-templates-qubes/templates/live/ppc.tmpl +++ /dev/null @@ -1,117 +0,0 @@ -<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel"/> -<% -configdir="tmp/config_files/ppc" -BOOTDIR="ppc" -LIVEDIR="LiveOS" -MACDIR=BOOTDIR+"/mac" -NETBOOTDIR="images/netboot" - -WRAPPER="usr/sbin/wrapper" -WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper" - -bitsizes = set() -prepboot = "" - -## NOTE: yaboot freaks out and stops parsing its config if it sees a '\', -## so we can't use the udev escape sequences in the root arg. -## Instead we'll just replace any non-ASCII characters in the isolabel -## with '_', which means we won't need any udev escapes. -isolabel = ''.join(ch if ch.isalnum() else '_' for ch in isolabel) - -rootarg = "root=live:CDLABEL=%s" % isolabel -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -## install bootloaders. -## NOTE: there's two different bootloader setups here: -## ppc/chrp: for normal PPC systems. needs 'addnote' run on yaboot. -## uses /etc/yaboot.conf, as is the default. -## ppc/mac: for PowerMacs. no 'addnote' (it breaks some Macs!) -## ofboot.b picks one of /ppc/ppc{32,64}/yaboot.conf for yaboot, -## thus automatically booting the correct kernel for the machine. -mkdir ${BOOTDIR} -## boot stuff for normal (CHRP/PREP) PPC systems -install ${configdir}/bootinfo.txt ${BOOTDIR} -install boot/efika.forth ${BOOTDIR} -mkdir ${BOOTDIR}/chrp -install usr/lib/yaboot/yaboot ${BOOTDIR}/chrp -runcmd ${inroot}/usr/lib/yaboot/addnote ${outroot}/${BOOTDIR}/chrp/yaboot -## special boot dir for PowerMacs -mkdir ${MACDIR} -install usr/lib/yaboot/yaboot ${MACDIR} -install ${configdir}/ofboot.b ${MACDIR} - -## copy mapping and magic files needed for isos -install ${configdir}/mapping ${BOOTDIR} -install ${configdir}/magic ${BOOTDIR} - -## NOTE: PPC is kind of funky. There's three possible "arch" setups here: -## ppc, ppc64, and 'hybrid' (ppc userspace, both ppc & ppc64 kernels). - -## Install kernel and bootloader config (in separate places for each arch) -%for kernel in kernels: - <% - bits = 64 if kernel.arch == "ppc64" else 32 - ## separate dirs/images for each arch - KERNELDIR=BOOTDIR+"/ppc%s" % bits - NETIMG=NETBOOTDIR+"/ppc%s.img" % bits - bitsizes.add(bits) - %> - ## install kernel - mkdir ${KERNELDIR} ${NETBOOTDIR} - installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz - installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - - ## install arch-specific bootloader config - install ${configdir}/yaboot.conf.in ${KERNELDIR}/yaboot.conf - replace @BITS@ ${bits} ${KERNELDIR}/yaboot.conf - replace @PRODUCT@ '${product.name}' ${KERNELDIR}/yaboot.conf - replace @VERSION@ ${product.version} ${KERNELDIR}/yaboot.conf - replace @ROOT@ "${rootarg}" ${KERNELDIR}/yaboot.conf - - ## kernel-wrapper magic that makes the netboot combined ppc{32,64}.img - runcmd ${inroot}/${WRAPPER} -p of \ - -D ${inroot}/${WRAPPER_DATA} \ - -i ${outroot}/${KERNELDIR}/initrd.img \ - ${outroot}/${KERNELDIR}/vmlinuz \ - -o ${outroot}/${NETIMG} - treeinfo images-${kernel.arch} zimage ${NETIMG} - ## PReP is 32-bit only - %if bits == 32: - ## Yes, this is supposed to be a relative path - <% prepboot="-prep-boot " + NETIMG %> - %endif -%endfor - -## choose correct yaboot.conf -mkdir etc -%if len(bitsizes) == 2: - ## both kernels means hybrid - use the magic hybrid config - install ${configdir}/yaboot.conf.3264 etc/yaboot.conf - replace @PRODUCT@ ${product.name} etc/yaboot.conf - replace @VERSION@ ${product.version} etc/yaboot.conf - replace @ROOT@ "${rootarg}" etc/yaboot.conf -%else: - ## single arch - use the arch-specific yaboot.conf from above - copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf -%endif - -## make boot.iso -runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \ - ${prepboot} -part -hfs -T -r -l -J \ - -A "${product.name} ${product.version}" -sysid PPC -V '${isolabel}' \ - -volset "${product.version}" -volset-size 1 -volset-seqno 1 \ - -hfs-volid ${product.version} -hfs-bless ${outroot}/${MACDIR} \ - -map ${inroot}/${configdir}/mapping \ - -no-desktop -allow-multidot -graft-points \ - etc=${outroot}/etc \ - ${BOOTDIR}=${outroot}/${BOOTDIR} \ - ${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \ - ${LIVEDIR}=${outroot}/${LIVEDIR} - -%for kernel in kernels: - treeinfo images-${kernel.arch} boot.iso images/boot.iso -%endfor diff --git a/lorax-templates-qubes/templates/live/s390.tmpl b/lorax-templates-qubes/templates/live/s390.tmpl deleted file mode 100644 index f02963d5..00000000 --- a/lorax-templates-qubes/templates/live/s390.tmpl +++ /dev/null @@ -1,33 +0,0 @@ -<%page args="kernels, runtime_img, runtime_base, basearch, outroot"/> -<% -configdir="tmp/config_files/s390" -BOOTDIR="images" -KERNELDIR=BOOTDIR -INITRD_ADDRESS="0x02000000" -# The assumption seems to be that there is only one s390 kernel, ever -kernel = kernels[0] -%> - -mkdir images -install ${runtime_img} images -treeinfo stage2 mainimage images/${runtime_base} - -## install bootloader (such as it is) and bootloader config -install ${configdir}/redhat.exec ${BOOTDIR} -install ${configdir}/generic.prm ${BOOTDIR} -install ${configdir}/generic.ins . - -## configure bootloader -replace @INITRD_LOAD_ADDRESS@ ${INITRD_ADDRESS} generic.ins - -## install kernel -installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/kernel.img -installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - -## s390 needs some extra boot config -createaddrsize ${INITRD_ADDRESS} ${outroot}/${BOOTDIR}/initrd.img ${outroot}/${BOOTDIR}/initrd.addrsize - -## s390 also has some special treeinfo data -treeinfo images-${basearch} initrd.addrsize ${BOOTDIR}/initrd.addrsize -treeinfo images-${basearch} generic.prm ${BOOTDIR}/generic.prm -treeinfo images-${basearch} generic.ins generic.ins diff --git a/lorax-templates-qubes/templates/live/sparc.tmpl b/lorax-templates-qubes/templates/live/sparc.tmpl deleted file mode 100644 index 2452f80b..00000000 --- a/lorax-templates-qubes/templates/live/sparc.tmpl +++ /dev/null @@ -1,38 +0,0 @@ -<%page args="kernels, runtime_img, basearch, outroot, product, isolabel"/> -<% -configdir="tmp/config_files/sparc" -BOOTDIR="boot" -LIVEDIR="LiveOS" -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -## install bootloader and config files -install boot/*.b ${BOOTDIR} -install ${configdir}/silo.conf ${BOOTDIR} -install ${configdir}/boot.msg ${BOOTDIR} - -## configure bootloader -replace @VERSION@ ${product.version} ${BOOTDIR}/boot.msg -replace @PRODUCT@ '${product.name}' ${BOOTDIR}/boot.msg -replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${BOOTDIR}/silo.conf - -## install kernels -## FIXME: this will overwrite if there are multiple sparc kernels -%for kernel in kernels: - installkernel images-${basearch} ${kernel.path} ${BOOTDIR}/vmlinuz - installinitrd images-${basearch} ${kernel.initrd.path} ${BOOTDIR}/initrd.img -%endfor - -## make boot.iso -runcmd mkisofs -R -J -T -G /${BOOTDIR}/isofs.b -B ... \ - -s /${BOOTDIR}/silo.conf -r -V '${isolabel}' \ - -A "${product.name} ${product.version}" \ - -x Fedora -x repodata \ - -sparc-label "${product.name} ${product.version} Boot Disc" \ - -o ${outroot}/images/boot.iso \ - -graft-points ${BOOTDIR}=${outroot}/${BOOTDIR} \ - ${LIVEDIR}=${outroot}/${LIVEDIR} -treeinfo images-${basearch} boot.iso images/boot.iso diff --git a/lorax-templates-qubes/templates/live/x86.tmpl b/lorax-templates-qubes/templates/live/x86.tmpl deleted file mode 100644 index 8d31b8bc..00000000 --- a/lorax-templates-qubes/templates/live/x86.tmpl +++ /dev/null @@ -1,77 +0,0 @@ -<%page args="kernels, runtime_img, basearch, outroot, product, isolabel"/> -<% -configdir="tmp/config_files/x86" -SYSLINUXDIR="usr/share/syslinux" -PXEBOOTDIR="images/pxeboot" -BOOTDIR="isolinux" -KERNELDIR=PXEBOOTDIR -LIVEDIR="LiveOS" -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -## install bootloader and config files -mkdir ${BOOTDIR} -install ${SYSLINUXDIR}/isolinux.bin ${BOOTDIR} -install ${SYSLINUXDIR}/vesamenu.c32 ${BOOTDIR} -install ${configdir}/isolinux.cfg ${BOOTDIR} -install ${configdir}/boot.msg ${BOOTDIR} -install ${configdir}/grub.conf ${BOOTDIR} -install usr/share/anaconda/boot/syslinux-splash.png ${BOOTDIR}/splash.png -install boot/memtest* ${BOOTDIR}/memtest - -## configure bootloader -replace @VERSION@ ${product.version} ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg -replace @PRODUCT@ '${product.name}' ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg -replace @ROOT@ 'root=live:CDLABEL=${isolabel|udev}' ${BOOTDIR}/isolinux.cfg - -## install kernels -mkdir ${KERNELDIR} -%for kernel in kernels: - %if kernel.flavor: - installkernel images-xen ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor} - installinitrd images-xen ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img - %else: - installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz - installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - %endif -%endfor - -hardlink ${KERNELDIR}/vmlinuz ${BOOTDIR} -hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} -%if basearch == 'x86_64': - treeinfo images-xen kernel ${KERNELDIR}/vmlinuz - treeinfo images-xen initrd ${KERNELDIR}/initrd.img -%endif - -## WHeeeeeeee, EFI. -## We could remove the basearch restriction someday.. -<% efiargs=""; efigraft=""; efihybrid="" %> -%if exists("boot/efi/EFI/fedora/gcdx64.efi") and basearch != 'i386': - <% - efiarch = 'X64' if basearch=='x86_64' else 'IA32' - efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) - images = ["images/efiboot.img"] - if domacboot: - images.append("images/macboot.img") - for img in images: - efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img) - efigraft += " {0}={1}/{0}".format(img,outroot) - efihybrid = "--uefi --mac" if domacboot else "--uefi" - %> - <%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/> -%endif - -## make boot.iso -runcmd mkisofs -o ${outroot}/images/boot.iso \ - -b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \ - -boot-load-size 4 -boot-info-table -no-emul-boot \ - ${efiargs} -R -J -V '${isolabel}' -T -graft-points \ - ${BOOTDIR}=${outroot}/${BOOTDIR} \ - ${KERNELDIR}=${outroot}/${KERNELDIR} \ - ${LIVEDIR}=${outroot}/${LIVEDIR} \ - ${efigraft} -runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso -treeinfo images-${basearch} boot.iso images/boot.iso diff --git a/lorax-templates-qubes/templates/ppc.tmpl b/lorax-templates-qubes/templates/ppc.tmpl deleted file mode 100644 index bbef5fa1..00000000 --- a/lorax-templates-qubes/templates/ppc.tmpl +++ /dev/null @@ -1,123 +0,0 @@ -<%page args="kernels, runtime_img, basearch, libdir, inroot, outroot, product, isolabel"/> -<% -configdir="tmp/config_files/ppc" -BOOTDIR="ppc" -LIVEDIR="LiveOS" -MACDIR=BOOTDIR+"/mac" -NETBOOTDIR="images/netboot" - -WRAPPER="usr/sbin/wrapper" -WRAPPER_DATA="usr/"+libdir+"/kernel-wrapper" - -bitsizes = set() -prepboot = "" - -## NOTE: yaboot freaks out and stops parsing its config if it sees a '\', -## so we can't use the udev escape sequences in the root arg. -## Instead we'll just replace any non-ASCII characters in the isolabel -## with '_', which means we won't need any udev escapes. -isolabel = ''.join(ch if ch.isalnum() else '_' for ch in isolabel) - -## Anaconda finds the CDROM device automatically -rootarg = "" -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -## install bootloaders. -## NOTE: there's two different bootloader setups here: -## ppc/chrp: for normal PPC systems. needs 'addnote' run on yaboot. -## uses /etc/yaboot.conf, as is the default. -## ppc/mac: for PowerMacs. no 'addnote' (it breaks some Macs!) -## ofboot.b picks one of /ppc/ppc{32,64}/yaboot.conf for yaboot, -## thus automatically booting the correct kernel for the machine. -mkdir ${BOOTDIR} -## boot stuff for normal (CHRP/PREP) PPC systems -install ${configdir}/bootinfo.txt ${BOOTDIR} -install boot/efika.forth ${BOOTDIR} -mkdir ${BOOTDIR}/chrp -install usr/lib/yaboot/yaboot ${BOOTDIR}/chrp -runcmd ${inroot}/usr/lib/yaboot/addnote ${outroot}/${BOOTDIR}/chrp/yaboot -## special boot dir for PowerMacs -mkdir ${MACDIR} -install usr/lib/yaboot/yaboot ${MACDIR} -install ${configdir}/ofboot.b ${MACDIR} - -## copy mapping and magic files needed for isos -install ${configdir}/mapping ${BOOTDIR} -install ${configdir}/magic ${BOOTDIR} - -## NOTE: PPC is kind of funky. There's three possible "arch" setups here: -## ppc, ppc64, and 'hybrid' (ppc userspace, both ppc & ppc64 kernels). - -## Install kernel and bootloader config (in separate places for each arch) -%for kernel in kernels: - <% - bits = 64 if kernel.arch == "ppc64" else 32 - ## separate dirs/images for each arch - KERNELDIR=BOOTDIR+"/ppc%s" % bits - NETIMG=NETBOOTDIR+"/ppc%s.img" % bits - bitsizes.add(bits) - %> - ## install kernel - mkdir ${KERNELDIR} ${NETBOOTDIR} - installkernel images-${kernel.arch} ${kernel.path} ${KERNELDIR}/vmlinuz - installinitrd images-${kernel.arch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - - %if doupgrade: - ## upgrade image - installupgradeinitrd images-${kernel.arch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade.img - %endif - - ## install arch-specific bootloader config - install ${configdir}/yaboot.conf.in ${KERNELDIR}/yaboot.conf - replace @BITS@ ${bits} ${KERNELDIR}/yaboot.conf - replace @PRODUCT@ '${product.name}' ${KERNELDIR}/yaboot.conf - replace @VERSION@ ${product.version} ${KERNELDIR}/yaboot.conf - replace @ROOT@ "${rootarg}" ${KERNELDIR}/yaboot.conf - - ## kernel-wrapper magic that makes the netboot combined ppc{32,64}.img - runcmd ${inroot}/${WRAPPER} -p of \ - -D ${inroot}/${WRAPPER_DATA} \ - -i ${outroot}/${KERNELDIR}/initrd.img \ - ${outroot}/${KERNELDIR}/vmlinuz \ - -o ${outroot}/${NETIMG} - treeinfo images-${kernel.arch} zimage ${NETIMG} - ## PReP is 32-bit only - %if bits == 32: - ## Yes, this is supposed to be a relative path - <% prepboot="-prep-boot " + NETIMG %> - %endif -%endfor - -## choose correct yaboot.conf -mkdir etc -%if len(bitsizes) == 2: - ## both kernels means hybrid - use the magic hybrid config - install ${configdir}/yaboot.conf.3264 etc/yaboot.conf - replace @PRODUCT@ ${product.name} etc/yaboot.conf - replace @VERSION@ ${product.version} etc/yaboot.conf - replace @ROOT@ "${rootarg}" etc/yaboot.conf -%else: - ## single arch - use the arch-specific yaboot.conf from above - copy ${KERNELDIR}/yaboot.conf etc/yaboot.conf -%endif - -## make boot.iso -runcmd mkisofs -o ${outroot}/images/boot.iso -chrp-boot -U \ - ${prepboot} -part -hfs -T -r -l -J \ - -A "${product.name} ${product.version}" -sysid PPC -V '${isolabel}' \ - -volset "${product.version}" -volset-size 1 -volset-seqno 1 \ - -hfs-volid ${product.version} -hfs-bless ${outroot}/${MACDIR} \ - -map ${inroot}/${configdir}/mapping \ - -no-desktop -allow-multidot -graft-points \ - etc=${outroot}/etc \ - ${BOOTDIR}=${outroot}/${BOOTDIR} \ - ${NETBOOTDIR}=${outroot}/${NETBOOTDIR} \ - ${LIVEDIR}=${outroot}/${LIVEDIR} - -%for kernel in kernels: - treeinfo images-${kernel.arch} boot.iso images/boot.iso -%endfor diff --git a/lorax-templates-qubes/templates/runtime-cleanup.tmpl b/lorax-templates-qubes/templates/runtime-cleanup.tmpl deleted file mode 100644 index 6f89765a..00000000 --- a/lorax-templates-qubes/templates/runtime-cleanup.tmpl +++ /dev/null @@ -1,359 +0,0 @@ -## lorax template file: cleanup for the ramdisk (runtime image) -<%page args="libdir, product, root"/> - -## remove the sources -remove usr/share/i18n - -## not required packages installed as dependencies -## no perl besides s390x -## perl needed for powerpc-utils and fbset on PPC -%if basearch not in ("ppc", "ppc64", "ppc64le", "s390x"): - removepkg perl* -%endif -## no sound support, thanks -removepkg flac gstreamer-tools libsndfile pulseaudio* sound-theme-freedesktop -## we don't create new initramfs/bootloader conf inside anaconda -## (that happens inside the target system after we install dracut/grubby) -removepkg dracut-network grubby anaconda-dracut -removefrom ${product.name}-logos /usr/share/plymouth/* -## In order to execute the /usr move on upgrades we need convertfs from dracut -## We also need dracut-shutdown.service and dracut-initramfs-restore to reboot -removefrom dracut --allbut /usr/lib/dracut/modules.d/30convertfs/convertfs.sh \ - /usr/lib/dracut/modules.d/99base/dracut-lib.sh \ - /usr/lib/systemd/* /usr/lib/dracut/modules.d/98systemd/*.service \ - /usr/lib/dracut/dracut-initramfs-restore -## we don't run SELinux (not in enforcing, anyway) -removepkg checkpolicy selinux-policy libselinux-utils - -## selinux checks for the /etc/selinux/config file's existance -## The removepkg above removes it, create an empty one. See rhbz#1243168 -append etc/selinux/config "" - -## anaconda has its own repo files -removefrom fedora-release --allbut /etc/os-release /usr/lib/os-release \ - /usr/lib/os.release.d/* -removepkg fedora-release-rawhide - -## keep enough of shadow-utils to create accounts -removefrom shadow-utils --allbut /usr/bin/chage /usr/sbin/chpasswd \ - /usr/sbin/groupadd /usr/sbin/useradd - -## remove other account management tools -removepkg usermode usermode-gtk passwd -## no services to turn on/off (keep the /etc/init.d link though) -removefrom chkconfig --allbut /etc/init.d -## Miscellanous unnecessary gpg program -removepkg pinentry -## no printer/scanner support in anaconda -removepkg cups-libs iscan-firmware -## no storage device monitoring -removepkg device-mapper-event dmraid-events sgpio -## no notifications in anaconda -removepkg notification-daemon -## logrotate isn't useful in anaconda -removepkg logrotate -remove /etc/logrotate.d -## anaconda needs this to do media check -removefrom isomd5sum --allbut /usr/bin/checkisomd5 - -## systemd-nspawn isn't very useful and doesn't link anyway without iptables, -## and there's no need for a bunch of zsh files without zsh -removefrom systemd /usr/bin/systemd-nspawn /usr/share/zsh - -## various other things we remove to save space -removepkg avahi-autoipd coreutils-libs dash db4-utils diffutils file -removepkg genisoimage info iptables -removepkg jasper-libs libXxf86misc -removepkg libasyncns libhbaapi libhbalinux -removepkg libmcpp libpcap libtiff linux-atm-libs -removepkg lvm2-libs m4 mailx makebootfat mcpp -removepkg mingetty mobile-broadband-provider-info pkgconfig ppp pth -removepkg rmt rpcbind squashfs-tools system-config-firewall-base -removepkg tigervnc-license ttmkfdir xml-common xorg-x11-font-utils -removepkg xorg-x11-server-common yum-utils firewalld - -## remove stuff depending on perl -removefrom xen-runtime /usr/bin/xencov_split - -## other removals -remove /boot /home /media /opt /srv /tmp/* -remove /usr/etc /usr/games /usr/local /usr/tmp -remove /usr/share/doc /usr/share/info /usr/share/man /usr/share/gnome -remove /usr/share/mime/application /usr/share/mime/audio /usr/share/mime/image -remove /usr/share/mime/inode /usr/share/mime/message /usr/share/mime/model -remove /usr/share/mime/multipart /usr/share/mime/packages /usr/share/mime/text -remove /usr/share/mime/video /usr/share/mime/x-content /usr/share/mime/x-epoc -remove /var/db /var/games /var/tmp /var/yp /var/nis /var/opt /var/local -remove /var/mail /var/spool /var/preserve /var/report -remove /var/lib/rpm/* /var/lib/yum /var/lib/dnf -## clean up the files created by various '> /dev/null's -remove /dev/* - -## icons cache -remove /usr/share/icons/*/icon-theme.cache - -## clean up kernel modules -removekmod sound drivers/media drivers/hwmon \ - net/atm net/bluetooth net/sched net/sctp \ - net/rds net/l2tp net/decnet net/netfilter net/ipv4 net/ipv6 \ - drivers/watchdog drivers/rtc drivers/input/joystick \ - drivers/bluetooth drivers/edac drivers/staging \ - drivers/usb/serial drivers/usb/host drivers/usb/misc \ - fs/ocfs2 fs/ceph fs/nfsd fs/ubifs fs/nilfs2 \ - arch/x86/kvm -## Need to keep virtio_console.ko and ipmi stuff in drivers/char -## Also keep virtio-rng so that the installer can get sufficient randomness for -## LUKS setup. -removekmod drivers/char --allbut virtio_console hw_random \ - virtio-rng ipmi -removekmod drivers/hid --allbut hid-logitech-dj hid-logitech-hidpp -removekmod drivers/video --allbut hyperv_fb syscopyarea sysfillrect sysimgblt fb_sys_fops -remove lib/modules/*/{build,source,*.map} -## NOTE: depmod gets re-run after cleanup finishes - -## remove unused themes, theme engines, icons, etc. -removefrom gtk2 /usr/${libdir}/gtk-2.0/*/{engines,printbackends}/* -removefrom gtk2 /usr/share/themes/* -## clearlooks is the theme we use for gtk2 -removefrom gtk2-engines --allbut /usr/${libdir}/*/libclearlooks.so \ - /usr/share/themes/Clearlooks/* -removefrom gtk3 /usr/${libdir}/gtk-3.0/*/printbackends/* -removefrom gtk3 /usr/share/themes/* -removefrom metacity --allbut /usr/bin/* /usr/${libdir}/* /etc/* - -## filesystem tools -removefrom e2fsprogs /usr/share/locale/* -removefrom xfsprogs /usr/share/locale/* /usr/share/doc/* /usr/share/man/* -removefrom xfsdump --allbut /usr/sbin/* - -## other package specific removals -removefrom GConf2 /etc/rpm/* /etc/xdg/* /usr/bin/* -removefrom GConf2 /usr/${libdir}/GConf/2/libgconfbackend-{evoldap,oldxml}* -removefrom GConf2 /usr/${libdir}/gio/modules/* -removefrom GConf2 /usr/libexec/gconf-defaults-mechanism /usr/share/GConf/* -removefrom GConf2 /usr/share/locale/* /usr/share/sgml/* -removefrom NetworkManager /usr/share/NetworkManager/* -removefrom NetworkManager /usr/share/locale/*/NetworkManager.mo -removefrom nm-connection-editor /usr/${libdir}/* -removefrom nm-connection-editor /usr/share/applications/* -removefrom anaconda /etc/* /usr/share/applications/* /usr/share/icons/* -removefrom atk /usr/share/locale/* -removefrom audit /etc/* /sbin/audispd /sbin/auditctl /sbin/aureport -removefrom audit /sbin/ausearch /sbin/autrace /usr/bin/* -removefrom audit-libs /etc/* /${libdir}/libauparse* -removefrom authconfig /usr/sbin/* /usr/share/* -removefrom bash /etc/* /usr/bin/bashbug* /usr/share/* -removefrom bind-utils /usr/bin/dig /usr/bin/host /usr/bin/nsupdate -removefrom bitmap-fangsongti-fonts /usr/share/fonts/* -removefrom ca-certificates /etc/pki/java/* -removefrom ca-certificates /etc/pki/tls/certs/ca-bundle.trust.crt /etc/ssl/* -removefrom cairo /usr/${libdir}/libcairo-script* /usr/bin/cairo-sphinx -removefrom coreutils /etc/* /usr/bin/link /usr/bin/nice /usr/bin/stty /usr/bin/su /usr/bin/unlink -removefrom coreutils /usr/sbin/runuser /usr/bin/[ /usr/bin/base64 /usr/bin/chcon -removefrom coreutils /usr/bin/cksum /usr/bin/comm /usr/bin/csplit -removefrom coreutils /usr/bin/dir /usr/bin/dircolors -removefrom coreutils /usr/bin/expand /usr/bin/factor -removefrom coreutils /usr/bin/fold /usr/bin/groups /usr/bin/hostid -removefrom coreutils /usr/bin/install /usr/bin/join /usr/bin/logname -removefrom coreutils /usr/bin/mkfifo /usr/bin/nl /usr/bin/nohup /usr/bin/nproc -removefrom coreutils /usr/bin/pathchk -removefrom coreutils /usr/bin/pinky /usr/bin/pr /usr/bin/printenv -removefrom coreutils /usr/bin/printf /usr/bin/ptx /usr/bin/runcon -removefrom coreutils /usr/bin/sha224sum /usr/bin/sha384sum -removefrom coreutils /usr/bin/sha512sum /usr/bin/shuf /usr/bin/stat -removefrom coreutils /usr/bin/stdbuf /usr/bin/sum /usr/bin/test -removefrom coreutils /usr/bin/timeout /usr/bin/truncate /usr/bin/tsort -removefrom coreutils /usr/bin/unexpand /usr/bin/users /usr/bin/vdir -removefrom coreutils /usr/bin/who /usr/bin/whoami /usr/bin/yes /usr/share/* -removefrom cpio /usr/share/* -removefrom cracklib /usr/sbin/* -removefrom cracklib-dicts /usr/${libdir}/* /usr/sbin/* -removefrom cryptsetup-luks /usr/share/* -removefrom cyrus-sasl-lib /usr/sbin/* -removefrom db4 /usr/* -removefrom dbus-glib /usr/bin/* -removefrom dbus-x11 /etc/X11/* -removefrom dejavu-sans-fonts --allbut *.conf */DejaVuSans{,-Bold}.ttf -removefrom dejavu-sans-mono-fonts --allbut *.conf */DejaVuSansMono.ttf -removefrom dhclient /usr/lib/* /usr/share/* -removefrom dnsmasq /etc/rc.d/* /usr/sbin/* -removefrom dump /etc/* -removefrom elfutils-libelf /usr/share/locale/* -removefrom expat /usr/bin/* -removefrom fcoe-utils /etc/rc.d/* /usr/libexec/fcoe/dcbcheck.sh -removefrom fcoe-utils /usr/libexec/fcoe/fcc.sh /usr/libexec/fcoe/fcoe-setup.sh -removefrom fcoe-utils /usr/libexec/fcoe/fcoedump.sh /usr/sbin/fcnsq -removefrom fcoe-utils /usr/sbin/fcoeadm /usr/sbin/fcping /usr/sbin/fcrls -removefrom file-libs /usr/share/* -removefrom findutils /usr/bin/oldfind /usr/share/* -removefrom fontconfig /usr/bin/* -removefrom gawk /usr/bin/{igawk,pgawk} /usr/libexec/* /usr/share/* -removefrom gdisk /usr/share/* -removefrom gdk-pixbuf2 /usr/share/locale* -removefrom gfs2-utils /usr/sbin/* -removefrom glib2 /etc/* /usr/bin/* /usr/share/locale/* -removefrom glibc /etc/gai.conf /etc/localtime /etc/rpc -removefrom glibc /lib/*/nosegneg/* /${libdir}/libBrokenLocale* -removefrom glibc /${libdir}/libSegFault* /${libdir}/libanl* -removefrom glibc /${libdir}/libcidn* /${libdir}/libnss_compat* -removefrom glibc /${libdir}/libnss_hesiod* /${libdir}/libnss_nis* -# python-pyudev uses ctypes.util.find_library, which uses /sbin/ldconfig -removefrom glibc /${libdir}/rtkaio* /sbin/sln -removefrom glibc /usr/libexec/* /usr/sbin/* -removefrom glibc-common /etc/* /usr/bin/catchsegv /usr/bin/gencat -removefrom glibc-common /usr/bin/getent -removefrom glibc-common /usr/bin/locale /usr/bin/rpcgen /usr/bin/sprof -removefrom glibc-common /usr/bin/tzselect /usr/bin/localedef -removefrom glibc-common /usr/libexec/* /usr/sbin/* -removefrom gmp /usr/${libdir}/libgmpxx.* /usr/${libdir}/libmp.* -removefrom gnome-bluetooth-libs /usr/${libdir}/libgnome-bluetooth* -removefrom gnome-bluetooth-libs /usr/share/* -removefrom gnutls /usr/share/locale/* -removefrom grep /etc/* /usr/share/locale/* -removefrom gstreamer /usr/bin/* /usr/${libdir}/gstreamer-0.10/* -removefrom gstreamer /usr/${libdir}/libgst* /usr/libexec/* /usr/share/locale/* -removefrom gtk2 /usr/bin/update-gtk-immodules -removefrom gtk3 /usr/${libdir}/gtk-3.0/* -removefrom gzip /usr/bin/{gzexe,zcmp,zdiff,zegrep,zfgrep,zforce,zgrep,zless,zmore,znew} -removefrom hwdata /etc/* /usr/share/hwdata/oui.txt /usr/share/hwdata/pnp.ids -removefrom hwdata /usr/share/hwdata/upgradelist -removefrom initscripts /etc/ppp/* /usr/sbin/* /usr/share/locale/* -removefrom iproute --allbut /usr/sbin/{ip,routef,routel,rtpr} -removefrom iscsi-initiator-utils /etc/rc.d/* -removefrom kbd --allbut */bin/{dumpkeys,kbd_mode,loadkeys,setfont,unicode_*,chvt} -removefrom less /etc/* -removefrom libX11-common /usr/share/X11/XErrorDB -removefrom libbonobo /etc/* /usr/bin/* /usr/sbin/* /usr/share/locale/* -removefrom libbonobo /usr/${libdir}/bonobo/monikers/* -removefrom libbonobo /usr/${libdir}/orbit-2.0/Bonobo_module.so -removefrom libcanberra /usr/${libdir}/libcanberra-* -removefrom libcanberra-gtk2 /usr/${libdir}/gtk-2.0/* -removefrom libcanberra-gtk3 /usr/bin/* -removefrom libcap /usr/sbin/* -removefrom libconfig /usr/${libdir}/libconfig++* -removefrom libcroco /usr/bin/* -removefrom libgnome-keyring /usr/share/locale/* -removefrom libgnomecanvas /usr/share/locale/* -removefrom libgpg-error /usr/bin/* /usr/share/locale/* -removefrom libgssglue /etc/* -removefrom libidn /usr/bin/* /usr/share/locale/* -removefrom libmlx4 /etc/rdma/* /usr/${libdir}/* -removefrom libnotify /usr/bin/* -removefrom librsvg2 /usr/bin/* -removefrom libselinux /usr/sbin/* -removefrom libsemanage /etc/selinux/* -removefrom libstdc++ /usr/share/* -removefrom libuser /usr/bin/* /usr/sbin/* /usr/share/locale/* -removefrom libvorbis /usr/${libdir}/libvorbisenc.* -removefrom libxml2 /usr/bin/* -removefrom libxml2-python /usr/${libdir}/python?.?/site-packages/libxml2mod.a -removefrom libxml2-python /usr/${libdir}/python?.?/site-packages/libxml2mod.la -removefrom lldpad /etc/* -removefrom lua /usr/bin/* -removefrom madan-fonts /usr/share/fonts/madan/* -removefrom mdadm /etc/* -removefrom module-init-tools /etc/* /usr/sbin/insmod.static /usr/sbin/weak-modules -removefrom mt-st /etc/* /usr/sbin/* -removefrom mtools /etc/* -removefrom ncurses /usr/bin/captoinfo /usr/bin/infocmp /usr/bin/infotocap -removefrom ncurses /usr/bin/reset /usr/bin/tabs /usr/bin/tic /usr/bin/toe -removefrom ncurses /usr/bin/tput /usr/bin/tset -removefrom ncurses-libs /usr/${libdir}/libform* /usr/${libdir}/libmenu* -removefrom ncurses-libs /usr/${libdir}/libpanel.* /usr/${libdir}/libtic* -removefrom net-tools */bin/netstat */sbin/ether-wake */sbin/ipmaddr -removefrom net-tools */sbin/iptunnel */sbin/mii-diag */sbin/mii-tool -removefrom net-tools */sbin/nameif */sbin/plipconfig */sbin/slattach -removefrom net-tools /usr/share/locale/* -removefrom newt /usr/share/locale/* -removefrom nfs-utils /etc/nfsmount.conf -removefrom nfs-utils /etc/rc.d/init.d/* /lib/systemd/system/* -removefrom nfs-utils /etc/sysconfig/nfs /sbin/rpc.statd /usr/sbin/exportfs -removefrom nfs-utils /usr/sbin/gss_clnt_send_err /usr/sbin/gss_destroy_creds -removefrom nfs-utils /usr/sbin/mountstats /usr/sbin/nfsiostat -removefrom nfs-utils /usr/sbin/nfsstat /usr/sbin/rpc.gssd /usr/sbin/rpc.idmapd -removefrom nfs-utils /usr/sbin/rpc.mountd /usr/sbin/rpc.nfsd -removefrom nfs-utils /usr/sbin/rpc.svcgssd /usr/sbin/rpcdebug -removefrom nfs-utils /usr/sbin/showmount /usr/sbin/sm-notify -removefrom nfs-utils /usr/sbin/start-statd /var/lib/nfs/etab -removefrom nfs-utils /var/lib/nfs/rmtab /var/lib/nfs/state /var/lib/nfs/xtab -removefrom nhn-nanum-gothic-fonts /usr/share/fonts/nhn-nanum/NanumGothic*Bold.ttf -removefrom nss-softokn /usr/${libdir}/nss/* -removefrom openldap /etc/openldap/* /usr/${libdir}/libldap_r-* -removefrom openssh /usr/libexec/* -removefrom openssh-clients /etc/ssh/* /usr/bin/ssh-* -removefrom openssh-clients /usr/libexec/* -removefrom openssh-server /etc/ssh/* /usr/libexec/openssh/sftp-server -removefrom openssl /etc/pki/* /usr/bin/* /usr/${libdir}/openssl/* -removefrom pam /usr/sbin/* /usr/share/locale/* -removefrom policycoreutils /etc/* /usr/bin/* /usr/share/locale/* -removefrom polkit /usr/bin/* -removefrom polkit-desktop-policy /var/lib/* -removefrom popt /usr/share/locale/* -removefrom procps /usr/bin/free /usr/bin/pgrep /usr/bin/pkill -removefrom procps /usr/bin/pmap /usr/bin/pwdx /usr/bin/skill /usr/bin/slabtop -removefrom procps /usr/bin/snice /usr/bin/tload /usr/bin/uptime -removefrom procps /usr/bin/vmstat /usr/bin/w /usr/bin/watch -removefrom psmisc /usr/share/locale/* -removefrom pygtk2 /usr/bin/* /usr/${libdir}/pygtk/* -removefrom pykickstart /usr/bin/* /usr/share/locale/* -removefrom readline /usr/${libdir}/libhistory* -removefrom libreport /usr/bin/* /usr/share/locale/* -removefrom rpm /usr/bin/* /usr/share/locale/* -removefrom rsync /etc/* -removefrom sed /usr/share/locale/* -removefrom smartmontools /etc/* /usr/sbin/smartd -removefrom smartmontools /usr/sbin/update-smart-drivedb -removefrom smartmontools /usr/share/smartmontools/* -removefrom sqlite /usr/bin/* -removefrom system-config-date /etc/* /usr/bin/* /usr/share/icons/* -removefrom system-config-keyboard /etc/* /usr/bin/* /usr/share/icons/* -removefrom sysvinit-tools /usr/bin/* -removefrom tar /usr/share/locale/* -removefrom usbutils /usr/bin/* -removefrom util-linux --allbut \ - /usr/bin/{dmesg,getopt,kill,login,lsblk,more,mount,umount,mountpoint,findmnt} \ - /etc/mtab /etc/pam.d/login /etc/pam.d/remote \ - /usr/sbin/{agetty,blkid,blockdev,clock,fdisk,fsck,fstrim,hwclock,losetup} \ - /usr/sbin/{mkswap,nologin,sfdisk,swapoff,swapon,wipefs,partx,fsfreeze} \ - /usr/bin/{logger,hexdump,flock} -removefrom volume_key-libs /usr/share/locale/* -removefrom wget /etc/* /usr/share/locale/* -removefrom xorg-x11-drv-intel /usr/${libdir}/libI* -removefrom xorg-x11-drv-openchrome /usr/${libdir}/libchrome* -removefrom xorg-x11-drv-synaptics /usr/bin/* -removefrom xorg-x11-drv-wacom /usr/bin/* -removefrom xorg-x11-fonts-misc --allbut /usr/share/X11/fonts/misc/{6x13,encodings,fonts,*cursor}* -removefrom xorg-x11-server-utils --allbut /usr/bin/xrandr /usr/share/X11/rgb.txt /usr/bin/xrdb -removefrom yum /etc/* /usr/share/locale/* /usr/share/yum-cli/* -removefrom ${product.name}-logos /etc/* -removefrom ${product.name}-logos /usr/share/icons/{Bluecurve,oxygen}/* -removefrom ${product.name}-logos /usr/share/{firstboot,gnome-screensaver,kde4,pixmaps}/* - -## cleanup_python_files() -runcmd find ${root} -name "*.pyo" -type f -delete -runcmd find ${root} -name "*.pyc" -type f -exec ln -sf /dev/null {} \; - -## remove any broken links in /etc or /usr -## (broken systemd service links lead to confusing noise at boot) -## NOTE: not checking /var because we want to keep /var/run -## NOTE: Excluding /etc/mtab which links to /proc/self/mounts for systemd -runcmd chroot ${root} find -L /etc /usr -xdev -type l -and \! -name "mtab" \ - -printf "removing broken symbolic link %p -> %l\n" -delete - -## Clean up some of the mess pulled in by webkitgtk via yelp -## libwebkit2gtk links to a handful of libraries in gstreamer and -## gstreamer-plugins-base. Remove the rest of them. -removefrom gstreamer1 --allbut /usr/${libdir}/libgstbase-1.0.* \ - /usr/${libdir}/libgstreamer-1.0.* -removefrom gstreamer1-plugins-base --allbut \ - /usr/${libdir}/libgst{app,audio,fft,pbutils,tag,video,allocators}-1.0.* - -## We have enough geoip libraries, thanks -removepkg geoclue2 - -## And remove the packages that those extra libraries pulled in -removepkg cdparanoia-libs opus libtheora libvisual flac-libs gsm avahi-glib avahi-libs \ - ModemManager-glib - -## metacity requires libvorbis and libvorbisfile, but enc/dec are no longer needed -removefrom libvorbis --allbut /usr/${libdir}/libvorbisfile.* /usr/${libdir}/libvorbis.* diff --git a/lorax-templates-qubes/templates/runtime-install.tmpl b/lorax-templates-qubes/templates/runtime-install.tmpl deleted file mode 100644 index 0dd17af3..00000000 --- a/lorax-templates-qubes/templates/runtime-install.tmpl +++ /dev/null @@ -1,155 +0,0 @@ -## lorax template file: populate the ramdisk (runtime image) -<%page args="basearch, product"/> - -installpkg python - -## anaconda package -installpkg anaconda anaconda-widgets -## anaconda deps that aren't in the RPM -installpkg tmux -## Other available payloads -installpkg dnf -installpkg rpm-ostree -## speed up compression on multicore systems -installpkg pigz - -## kernel and firmware -installpkg kernel -installpkg grubby -%if basearch != "s390x": - installpkg linux-firmware -%endif -installpkg xen-hypervisor -## install all of the glibc langpacks since otherwise we get no locales -installpkg glibc-all-langpacks - -## arch-specific packages (bootloaders etc.) -%if basearch == "aarch64": - installpkg efibootmgr grub2-efi grub2-efi-modules grub2-tools shim shim-unsigned -%endif -%if basearch in ("arm", "armhfp"): - installpkg kernel-lpae - installpkg uboot-tools -%endif -%if basearch == "i386": - installpkg kernel-PAE gpart -%endif -%if basearch == "x86_64": - installpkg efibootmgr grub2-efi grub2-efi-modules shim shim-unsigned -%endif -%if basearch in ("i386", "x86_64"): - installpkg grub2 grub2-tools memtest86+ syslinux syslinux-nonlinux -%endif -%if basearch in ("ppc", "ppc64", "ppc64le"): - installpkg grub2 grub2-tools fbset hfsutils kernel-bootwrapper ppc64-utils -%endif -%if basearch == "s390x": - installpkg lsscsi s390utils-base s390utils-cmsfs-fuse -%endif - -## yay, plymouth -installpkg plymouth - -## extra dracut modules -installpkg anaconda-dracut dracut-network dracut-config-generic - -## rescue needs this -installpkg cryptsetup - -## rpcbind or portmap needed by dracut nfs module -installpkg rpcbind - -## required for dracut -installpkg kbd kbd-misc -## required for anaconda-dracut (img-lib etc.) -installpkg tar xz curl bzip2 - -## basic system stuff -installpkg systemd-sysv systemd-units -installpkg rsyslog - -## xorg/GUI packages -%if basearch != "s390x": -installpkg xorg-x11-drivers xorg-x11-server-Xorg -%endif -installpkg xorg-x11-server-utils xorg-x11-xauth -installpkg mesa-dri-drivers -installpkg dbus-x11 metacity gsettings-desktop-schemas -installpkg nm-connection-editor -installpkg librsvg2 - -## filesystem tools -installpkg btrfs-progs jfsutils xfsprogs reiserfs-utils ntfs-3g ntfsprogs -installpkg system-storage-manager -installpkg device-mapper-persistent-data -installpkg xfsdump - -## needed for LUKS escrow -installpkg volume_key -installpkg nss-tools - -## SELinux support -installpkg selinux-policy-targeted audit - -## network tools/servers -installpkg ethtool openssh-server nfs-utils openssh-clients -installpkg tigervnc-server-minimal -%if basearch != "s390x": -installpkg tigervnc-server-module -%endif -installpkg net-tools -installpkg bridge-utils - -## hardware utilities/libraries -installpkg pciutils usbutils ipmitool -installpkg mt-st smartmontools -%if basearch != "s390x": -installpkg hdparm pcmciautils -%endif -installpkg libmlx4 rdma -installpkg rng-tools - -## fonts & themes -installpkg bitmap-fangsongti-fonts -installpkg dejavu-sans-fonts dejavu-sans-mono-fonts -installpkg kacst-farsi-fonts -installpkg kacst-qurn-fonts -installpkg lklug-fonts -installpkg lohit-assamese-fonts -installpkg lohit-bengali-fonts -installpkg lohit-devanagari-fonts -installpkg lohit-gu*-fonts -installpkg lohit-kannada-fonts -installpkg lohit-odia-fonts -installpkg lohit-tamil-fonts -installpkg lohit-telugu-fonts -installpkg madan-fonts -installpkg nhn-nanum-gothic-fonts -installpkg smc-meera-fonts -installpkg thai-scalable-waree-fonts -installpkg vlgothic-fonts -installpkg wqy-microhei-fonts -installpkg sil-abyssinica-fonts -installpkg xorg-x11-fonts-misc -installpkg gnome-icon-theme-legacy -installpkg aajohan-comfortaa-fonts -installpkg abattis-cantarell-fonts -installpkg sil-scheherazade-fonts -installpkg qubes-artwork - -## debugging/bug reporting tools -installpkg gdb-gdbserver -installpkg libreport-plugin-bugzilla libreport-plugin-reportuploader -installpkg fpaste - -## extra tools not required by anaconda -installpkg vim-minimal strace lsof dump xz less eject -installpkg wget rsync rsh bind-utils ftp mtr vconfig -installpkg icfg spice-vdagent -installpkg gdisk hexedit sg3_utils - -## satisfy libnotify's desktop-notification-daemon with the least crazy option -installpkg notification-daemon - -## actually install all the requested packages -run_pkg_transaction diff --git a/lorax-templates-qubes/templates/runtime-postinstall.tmpl b/lorax-templates-qubes/templates/runtime-postinstall.tmpl deleted file mode 100644 index c2e277f3..00000000 --- a/lorax-templates-qubes/templates/runtime-postinstall.tmpl +++ /dev/null @@ -1,139 +0,0 @@ -## runtime-postinstall.tmpl -## post-install setup required to make the system work. - -<%page args="root, basearch, libdir, configdir"/> -<% -PYTHONDIR = sorted(glob("usr/"+libdir+"/python?.?"))[0] -stubs = ("list-harddrives", "raidstart", "raidstop") -configdir = configdir + "/common" -%> - -## move_stubs() -move usr/share/anaconda/restart-anaconda usr/bin -%for stub in stubs: - -move usr/share/anaconda/${stub}-stub usr/bin/${stub} -%endfor - -## move_repos() -move etc/yum.repos.d etc/anaconda.repos.d - -## Setup mdadm config to turn off homehost -remove etc/mdadm.conf -append etc/mdadm.conf "HOMEHOST \n" - -## Configure systemd to start anaconda -remove etc/systemd/system/default.target -symlink /lib/systemd/system/anaconda.target etc/systemd/system/default.target - -## Make sure tmpfs is enabled -mkdir etc/systemd/system/local-fs.target.wants/ -symlink /lib/systemd/system/tmp.mount etc/systemd/system/local-fs.target.wants/tmp.mount - -## Start rngd -mkdir etc/systemd/system/basic.target.wants/ -symlink /lib/systemd/system/rngd.service etc/systemd/system/basic.target.wants/rngd.service - -## Disable unwanted systemd services -systemctl disable systemd-readahead-collect.service \ - systemd-readahead-replay.service \ - mdmonitor.service \ - mdmonitor-takeover.service \ - lvm2-monitor.service \ - dnf-makecache.timer \ - NetworkManager.service -## These services can't be disabled normally (they're linked into place in -## /usr/lib/systemd rather than /etc/systemd), so we have to mask them. -systemctl mask fedora-configure.service fedora-loadmodules.service \ - fedora-autorelabel.service fedora-autorelabel-mark.service \ - fedora-wait-storage.service media.mount \ - systemd-tmpfiles-clean.service systemd-tmpfiles-clean.timer \ - ldconfig.service - -## Remove the more terrible parts of systemd-tmpfiles. -## etc.conf is written with the assumption that /etc/ is empty, which is -## ridiculous, and it also creates a broken /etc/resolv.conf, which breaks -## networking. -remove usr/lib/tmpfiles.d/etc.conf - -## Make logind activate anaconda-shell@.service on switch to empty VT -symlink anaconda-shell@.service lib/systemd/system/autovt@.service -replace "#ReserveVT=6" "ReserveVT=2" etc/systemd/logind.conf - -## Don't write the journal to the overlay, just keep it in RAM -remove var/log/journal - -## install some basic configuration files -append etc/resolv.conf "" -append etc/fstab "" -install ${configdir}/i18n etc/sysconfig -install ${configdir}/rsyslog.conf etc -install ${configdir}/bash_history root/.bash_history -install ${configdir}/profile root/.profile -install ${configdir}/libuser.conf etc -install ${configdir}/sysctl.conf etc/sysctl.d/anaconda.conf -install ${configdir}/spice-vdagentd etc/sysconfig -mkdir etc/NetworkManager/conf.d -install ${configdir}/91-anaconda-autoconnect-slaves.conf etc/NetworkManager/conf.d -install ${configdir}/vconsole.conf etc -install ${configdir}/92-anaconda-loglevel-debug.conf etc/NetworkManager/conf.d - -## disable NetworkManager -install ${configdir}/NetworkManager.state var/lib/NetworkManager/NetworkManager.state - -## set up sshd -install ${configdir}/sshd_config.anaconda etc/ssh -install ${configdir}/pam.sshd etc/pam.d/sshd -install ${configdir}/pam.sshd etc/pam.d/login -install ${configdir}/pam.sshd etc/pam.d/remote - -## set up "install" user account -append etc/passwd "install:x:0:0:root:/root:/usr/libexec/anaconda/run-anaconda" -append etc/shadow "install::14438:0:99999:7:::" -## remove root password -replace "root:\*:" "root::" etc/shadow - -## gconf settings -gconfset /desktop/gnome/interface/accessibility bool true - -## gsettings settings -install ${configdir}/org.gtk.Settings.Debug.gschema.override usr/share/glib-2.0/schemas -runcmd chroot ${root} glib-compile-schemas /usr/share/glib-2.0/schemas - -move usr/libexec/anaconda/auditd sbin - -## for compatibility with Ancient Anaconda Traditions -symlink lib/modules /modules -symlink lib/firmware /firmware -symlink ../run/install mnt/install - -## create_depmod_conf() -append etc/depmod.d/dd.conf "search updates built-in" - -## create multipath.conf so multipath gets auto-started -append etc/multipath.conf "defaults {\n\tfind_multipaths yes\n\tuser_friendly_names yes\n}\n" - -## include additional modules in initramfs -append etc/dracut.conf.d/extra-install-modules.conf "add_drivers+=' ehci-pci xhci-hcd xhci-pci '" - -## no longer hard dependencies of anaconda module (for smaller EFI initrd), so add them here -append etc/dracut.conf.d/extra-install-modules.conf "add_dracutmodules+=' livenet nfs img-lib convertfs ifcfg '" - -## make lvm auto-activate -remove etc/lvm/archive/* -remove etc/lvm/archive -remove etc/lvm/backup/* -remove etc/lvm/backup -remove etc/lvm/cache/* -remove etc/lvm/cache -remove etc/lvm/lvm.conf -append etc/lvm/lvm.conf "global {\n\tuse_lvmetad = 1\n}\n" - -## have basic /dev files -remove dev/null -runcmd mknod ${root}/dev/null c 1 3 -runcmd mknod ${root}/dev/urandom c 1 9 - -## Record the package versions used to create the image -runcmd chroot ${root} /bin/rpm -qa --pipe "tee /root/lorax-packages.log" - -## TODO: we could run prelink here if we wanted? diff --git a/lorax-templates-qubes/templates/s390.tmpl b/lorax-templates-qubes/templates/s390.tmpl deleted file mode 100644 index 0da951f2..00000000 --- a/lorax-templates-qubes/templates/s390.tmpl +++ /dev/null @@ -1,38 +0,0 @@ -<%page args="kernels, runtime_img, runtime_base, basearch, outroot"/> -<% -configdir="tmp/config_files/s390" -BOOTDIR="images" -KERNELDIR=BOOTDIR -INITRD_ADDRESS="0x02000000" -# The assumption seems to be that there is only one s390 kernel, ever -kernel = kernels[0] -%> - -mkdir images -install ${runtime_img} images -treeinfo stage2 mainimage images/${runtime_base} - -## install bootloader (such as it is) and bootloader config -install ${configdir}/redhat.exec ${BOOTDIR} -install ${configdir}/generic.prm ${BOOTDIR} -install ${configdir}/generic.ins . - -## configure bootloader -replace @INITRD_LOAD_ADDRESS@ ${INITRD_ADDRESS} generic.ins - -## install kernel -installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/kernel.img -installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - -%if doupgrade: - ## upgrader image - installupgradeinitrd images-${basearch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade.img -%endif - -## s390 needs some extra boot config -createaddrsize ${INITRD_ADDRESS} ${outroot}/${BOOTDIR}/initrd.img ${outroot}/${BOOTDIR}/initrd.addrsize - -## s390 also has some special treeinfo data -treeinfo images-${basearch} initrd.addrsize ${BOOTDIR}/initrd.addrsize -treeinfo images-${basearch} generic.prm ${BOOTDIR}/generic.prm -treeinfo images-${basearch} generic.ins generic.ins diff --git a/lorax-templates-qubes/templates/sparc.tmpl b/lorax-templates-qubes/templates/sparc.tmpl deleted file mode 100644 index 1a66e2c3..00000000 --- a/lorax-templates-qubes/templates/sparc.tmpl +++ /dev/null @@ -1,38 +0,0 @@ -<%page args="kernels, runtime_img, basearch, outroot, product, isolabel"/> -<% -configdir="tmp/config_files/sparc" -BOOTDIR="boot" -LIVEDIR="LiveOS" -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -## install bootloader and config files -install boot/*.b ${BOOTDIR} -install ${configdir}/silo.conf ${BOOTDIR} -install ${configdir}/boot.msg ${BOOTDIR} - -## configure bootloader -replace @VERSION@ ${product.version} ${BOOTDIR}/boot.msg -replace @PRODUCT@ '${product.name}' ${BOOTDIR}/boot.msg -replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${BOOTDIR}/silo.conf - -## install kernels -## FIXME: this will overwrite if there are multiple sparc kernels -%for kernel in kernels: - installkernel images-${basearch} ${kernel.path} ${BOOTDIR}/vmlinuz - installinitrd images-${basearch} ${kernel.initrd.path} ${BOOTDIR}/initrd.img -%endfor - -## make boot.iso -runcmd mkisofs -R -J -T -G /${BOOTDIR}/isofs.b -B ... \ - -s /${BOOTDIR}/silo.conf -r -V '${isolabel}' \ - -A "${product.name} ${product.version}" \ - -x Fedora -x repodata \ - -sparc-label "${product.name} ${product.version} Boot Disc" \ - -o ${outroot}/images/boot.iso \ - -graft-points ${BOOTDIR}=${outroot}/${BOOTDIR} \ - ${LIVEDIR}=${outroot}/${LIVEDIR} -treeinfo images-${basearch} boot.iso images/boot.iso diff --git a/lorax-templates-qubes/templates/x86.tmpl b/lorax-templates-qubes/templates/x86.tmpl deleted file mode 100644 index 6052254b..00000000 --- a/lorax-templates-qubes/templates/x86.tmpl +++ /dev/null @@ -1,110 +0,0 @@ -<%page args="kernels, runtime_img, basearch, outroot, product, isolabel"/> -<% -configdir="tmp/config_files/x86" -SYSLINUXDIR="usr/share/syslinux" -PXEBOOTDIR="images/pxeboot" -BOOTDIR="isolinux" -KERNELDIR=PXEBOOTDIR -LIVEDIR="LiveOS" -EXTRAKERNELS="extrakernels" -from distutils.version import LooseVersion - -## Don't allow spaces or escape characters in the iso label -def valid_label(ch): - return ch.isalnum() or ch in ('_', '.') - -isolabel = ''.join(ch if valid_label(ch) else '-' for ch in isolabel) -%> - -mkdir ${LIVEDIR} -install ${runtime_img} ${LIVEDIR}/squashfs.img -treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img - -## install bootloader and config files -mkdir ${BOOTDIR} -install ${SYSLINUXDIR}/isolinux.bin ${BOOTDIR} -install ${SYSLINUXDIR}/vesamenu.c32 ${BOOTDIR} -install ${SYSLINUXDIR}/mboot.c32 ${BOOTDIR} -install ${SYSLINUXDIR}/ldlinux.c32 ${BOOTDIR} -install ${SYSLINUXDIR}/libcom32.c32 ${BOOTDIR} -install ${SYSLINUXDIR}/libutil.c32 ${BOOTDIR} -install boot/xen*gz ${BOOTDIR}/xen.gz -install ${configdir}/isolinux.cfg ${BOOTDIR} -install ${configdir}/boot.msg ${BOOTDIR} -install ${configdir}/grub.conf ${BOOTDIR} -install usr/share/anaconda/boot/syslinux-splash.png ${BOOTDIR}/splash.png -install boot/memtest* ${BOOTDIR}/memtest - -## install kernels -mkdir ${KERNELDIR} -<% -sortedkernels = sorted(kernels, key=lambda k: LooseVersion(k['version'])) -latestkernel = sortedkernels[-1] -%> - -mkdir ${EXTRAKERNELS} -# bypass "chroot" enforced by Lorax parser --install ../../../../yum/dom0-updates/rpm/kernel-qubes-vm-[0-9]*rpm ${EXTRAKERNELS} --remove ${EXTRAKERNELS}/kernel-qubes-vm-${latestkernel.version}.rpm - -%for kernel in sortedkernels: - # Use short kernel version because of ISO9660 filename length limitation - <% - shortkver = kernel.version.replace('.pvops.qubes','').replace('.x86_64','') - %> - %if kernel.flavor: - ## i386 PAE - installkernel images-xen ${kernel.path} ${KERNELDIR}/vmlinuz-${kernel.flavor} - installinitrd images-xen ${kernel.initrd.path} ${KERNELDIR}/initrd-${kernel.flavor}.img - %else: - ## normal i386, x86_64 - installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz - installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img - %endif - installkernel images-alt-${shortkver} ${kernel.path} ${BOOTDIR}/vmlinuz-${shortkver} - installinitrd images-alt-${shortkver} ${kernel.initrd.path} ${BOOTDIR}/initrd-${shortkver}.img - - <% latestkver = kernel.version %> - -%endfor - -## configure bootloader -replace @VERSION@ ${product.version} ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg -replace @PRODUCT@ '${product.name}' ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg -replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${BOOTDIR}/isolinux.cfg -replace @EXTRAKERNELS@ '' ${BOOTDIR}/isolinux.cfg - -hardlink ${KERNELDIR}/vmlinuz ${BOOTDIR} -hardlink ${KERNELDIR}/initrd.img ${BOOTDIR} -%if basearch == 'x86_64': - treeinfo images-xen kernel ${KERNELDIR}/vmlinuz - treeinfo images-xen initrd ${KERNELDIR}/initrd.img -%endif - -## WHeeeeeeee, EFI. -## We could remove the basearch restriction someday.. -<% efiargs=""; efigraft=""; efihybrid="" %> -%if exists("boot/efi/EFI/*/gcdx64.efi") and basearch != 'i386': - <% - efiarch = 'X64' if basearch=='x86_64' else 'IA32' - efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot) - images = ["images/efiboot.img"] - for img in images: - efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img) - efigraft += " {0}={1}/{0}".format(img,outroot) - efihybrid = "--uefi" - %> - <%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel, kver=latestkver"/> -%endif - -## ## make boot.iso -## runcmd mkisofs -o ${outroot}/images/boot.iso \ -## -b ${BOOTDIR}/isolinux.bin -c ${BOOTDIR}/boot.cat \ -## -boot-load-size 4 -boot-info-table -no-emul-boot \ -## ${efiargs} -R -J -V '${isolabel}' -T -graft-points \ -## ${BOOTDIR}=${outroot}/${BOOTDIR} \ -## ${KERNELDIR}=${outroot}/${KERNELDIR} \ -## ${LIVEDIR}=${outroot}/${LIVEDIR} \ -## ${efigraft} -## runcmd isohybrid ${efihybrid} ${outroot}/images/boot.iso -## treeinfo images-${basearch} boot.iso images/boot.iso diff --git a/lorax/0001-Allow-specify-gpg-key-for-a-repository.patch b/lorax/0001-Allow-specify-gpg-key-for-a-repository.patch deleted file mode 100644 index 56aae0e4..00000000 --- a/lorax/0001-Allow-specify-gpg-key-for-a-repository.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 49598dab042e2f9f0d5697786f3c6bf687709277 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Thu, 21 Apr 2016 02:15:54 +0200 -Subject: [PATCH 1/3] Allow specify gpg key for a repository -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -Quite hacky way, but current command line syntax doesn't support -additional per-repository settings. - -Signed-off-by: Marek Marczykowski-Górecki ---- - src/pylorax/cmdline.py | 4 ++-- - src/sbin/lorax | 10 ++++++++++ - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/src/pylorax/cmdline.py b/src/pylorax/cmdline.py -index 69b6ccb..855d9f3 100644 ---- a/src/pylorax/cmdline.py -+++ b/src/pylorax/cmdline.py -@@ -41,7 +41,7 @@ def lorax_parser(): - required.add_argument("-p", "--product", help="product name", required=True, metavar="PRODUCT") - required.add_argument("-v", "--version", help="version identifier", required=True, metavar="VERSION") - required.add_argument("-r", "--release", help="release information", required=True, metavar="RELEASE") -- required.add_argument("-s", "--source", help="source repository (may be listed multiple times)", -+ required.add_argument("-s", "--source", help="source repository (may be listed multiple times), append gpgkey URL in brackets to enable package verification", - metavar="REPOSITORY", action="append", default=[]) - required.add_argument("--repo", help="source dnf repository file", type=os.path.abspath, - dest="repos", metavar="REPOSITORY", action="append", default=[]) -@@ -49,7 +49,7 @@ def lorax_parser(): - # optional arguments - optional = parser.add_argument_group("optional arguments") - optional.add_argument("-m", "--mirrorlist", -- help="mirrorlist repository (may be listed multiple times)", -+ help="mirrorlist repository (may be listed multiple times), append gpgkey URL in brackets to enable package verification", - metavar="REPOSITORY", action="append", default=[]) - optional.add_argument("-t", "--variant", - help="variant name", metavar="VARIANT") -diff --git a/src/sbin/lorax b/src/sbin/lorax -index df4994d..12061b4 100755 ---- a/src/sbin/lorax -+++ b/src/sbin/lorax -@@ -212,6 +212,11 @@ def get_dnf_base_object(installroot, sources, mirrorlists=None, repos=None, - continue - repo_name = "lorax-repo-%d" % i - repo = dnf.repo.Repo(repo_name, cachedir) -+ if '(' in r and ')' in r: -+ assert r[-1] == ')' -+ r, gpgkey = r[:-1].split('(') -+ repo.gpgkey = [gpgkey] -+ repo.gpgcheck = True - repo.baseurl = [r] - if proxy: - repo.proxy = proxy -@@ -232,6 +237,11 @@ def get_dnf_base_object(installroot, sources, mirrorlists=None, repos=None, - continue - repo_name = "lorax-mirrorlist-%d" % i - repo = dnf.repo.Repo(repo_name, cachedir) -+ if '(' in r and ')' in r: -+ assert r[-1] == ')' -+ r, gpgkey = r[:-1].split('(') -+ repo.gpgkey = [gpgkey] -+ repo.gpgcheck = True - repo.mirrorlist = r - if proxy: - repo.proxy = proxy --- -2.7.4 - diff --git a/lorax/0002-verify-packages-signature.patch b/lorax/0002-verify-packages-signature.patch deleted file mode 100644 index 5a752fb0..00000000 --- a/lorax/0002-verify-packages-signature.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 5a1ce004b60d449f82d5f4a950ef3255024e1c1c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Thu, 21 Apr 2016 13:46:33 +0200 -Subject: [PATCH 2/3] verify packages signature -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -Signed-off-by: Marek Marczykowski-Górecki ---- - src/pylorax/ltmpl.py | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/src/pylorax/ltmpl.py b/src/pylorax/ltmpl.py -index 429c1c1..28b7ff9 100644 ---- a/src/pylorax/ltmpl.py -+++ b/src/pylorax/ltmpl.py -@@ -624,6 +624,24 @@ class LoraxTemplateRunner(object): - logger.error("Failed to download the following packages: %s", e) - raise - -+ try: -+ for po in pkgs_to_download: -+ # before doing anything with the package, verify its signature -+ result, errmsg = self.dbo.sigCheckPkg(po) -+ if result == 0: -+ # Verified ok, or verify not req'd -+ pass -+ elif result == 1: -+ # keys are provided through kickstart, so treat this as consent -+ # for importing them -+ self.dbo.getKeyForPackage(po, lambda x, y, z: True) -+ else: -+ # Fatal error -+ raise dnf.exceptions.Error(errmsg) -+ except dnf.exceptions.Error as e: -+ logger.error("Failed to verify signature: %s", e) -+ raise -+ - logger.info("Preparing transaction from installation source") - try: - display = LoraxRpmCallback() --- -2.7.4 - diff --git a/lorax/0003-Update-package-verification-for-dnf-API.patch b/lorax/0003-Update-package-verification-for-dnf-API.patch deleted file mode 100644 index 09be405a..00000000 --- a/lorax/0003-Update-package-verification-for-dnf-API.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 74415994cef3c5ea0331ac2bd3355c2c2dc62664 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Wed, 25 May 2016 11:24:14 +0200 -Subject: [PATCH 3/3] Update package verification for dnf API -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -Signed-off-by: Marek Marczykowski-Górecki ---- - src/pylorax/ltmpl.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/pylorax/ltmpl.py b/src/pylorax/ltmpl.py -index 28b7ff9..eed01ae 100644 ---- a/src/pylorax/ltmpl.py -+++ b/src/pylorax/ltmpl.py -@@ -627,14 +627,14 @@ class LoraxTemplateRunner(object): - try: - for po in pkgs_to_download: - # before doing anything with the package, verify its signature -- result, errmsg = self.dbo.sigCheckPkg(po) -+ result, errmsg = self.dbo._sig_check_pkg(po) - if result == 0: - # Verified ok, or verify not req'd - pass - elif result == 1: - # keys are provided through kickstart, so treat this as consent - # for importing them -- self.dbo.getKeyForPackage(po, lambda x, y, z: True) -+ self.dbo._get_key_for_package(po, lambda x, y, z: True) - else: - # Fatal error - raise dnf.exceptions.Error(errmsg) --- -2.7.4 - diff --git a/lorax/0004-Remove-branding-code.patch b/lorax/0004-Remove-branding-code.patch deleted file mode 100644 index 894213a5..00000000 --- a/lorax/0004-Remove-branding-code.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 56a5816b152477b5fd057ed53c55863d59900f41 Mon Sep 17 00:00:00 2001 -From: Wojtek Porczyk -Date: Thu, 16 Jun 2016 18:53:18 +0200 -Subject: [PATCH] Remove branding code - -This code caused transient build failures when there is more than one -package that provides /etc/system-release _available_ in any of the -repositories, irrespective of _any_ dependecies whatsoever. The failure -is non-deterministic, because depends on the order of packages returned -by search query. - -Automatic branding install is stupid anyway and should instead be done -by package groups, kickstarts and/or whatever. But it does not surprise -me at all, because this is package is maintained as part of Fedora/RH. - -Signed-off-by: Wojtek Porczyk ---- - src/pylorax/treebuilder.py | 24 ------------------------ - 1 file changed, 24 deletions(-) - -diff --git a/src/pylorax/treebuilder.py b/src/pylorax/treebuilder.py -index 5d4f8b7..1bf9f22 100644 ---- a/src/pylorax/treebuilder.py -+++ b/src/pylorax/treebuilder.py -@@ -88,32 +88,8 @@ class RuntimeBuilder(object): - self._runner.defaults = self.vars - self.dbo.reset() - -- def _install_branding(self): -- release = None -- q = self.dbo.sack.query() -- a = q.available() -- for pkg in a.filter(provides='/etc/system-release'): -- if pkg.name.startswith('generic'): -- continue -- else: -- release = pkg.name -- break -- -- if not release: -- logger.error('could not get the release') -- return -- -- # release -- logger.info('got release: %s', release) -- self._runner.installpkg(release) -- -- # logos -- release, _suffix = release.split('-', 1) -- self._runner.installpkg('%s-logos' % release) -- - def install(self): - '''Install packages and do initial setup with runtime-install.tmpl''' -- self._install_branding() - if len(self._installpkgs) > 0: - self._runner.installpkg(*self._installpkgs) - self._runner.run("runtime-install.tmpl") --- -2.5.5 - diff --git a/lorax/lorax-25.19.tar.gz b/lorax/lorax-25.19.tar.gz deleted file mode 100644 index 68088bf2..00000000 Binary files a/lorax/lorax-25.19.tar.gz and /dev/null differ diff --git a/lorax/lorax.spec b/lorax/lorax.spec deleted file mode 100644 index 6b9684f6..00000000 --- a/lorax/lorax.spec +++ /dev/null @@ -1,1323 +0,0 @@ -# NOTE: This specfile is generated from upstream at https://github.com/rhinstaller/lorax -# NOTE: Please submit changes as a pull request -%define debug_package %{nil} - -Name: lorax -Version: 25.19 -Release: 1%{?dist} -Epoch: 1000 -Summary: Tool for creating the anaconda install images - -Group: Applications/System -License: GPLv2+ -URL: https://github.com/rhinstaller/lorax -# To generate Source0 do: -# git clone https://github.com/rhinstaller/lorax -# git checkout -b archive-branch lorax-%%{version}-%%{release} -# tito build --tgz -Source0: %{name}-%{version}.tar.gz -Patch1: 0001-Allow-specify-gpg-key-for-a-repository.patch -Patch2: 0002-verify-packages-signature.patch -Patch3: 0003-Update-package-verification-for-dnf-API.patch -Patch4: 0004-Remove-branding-code.patch - -BuildRequires: python3-devel - -Requires: lorax-templates - -Requires: GConf2 -Requires: cpio -Requires: device-mapper -Requires: dosfstools -Requires: e2fsprogs -Requires: findutils -Requires: gawk -Requires: genisoimage -Requires: glib2 -Requires: glibc -Requires: glibc-common -Requires: gzip -Requires: isomd5sum -Requires: module-init-tools -Requires: parted -Requires: squashfs-tools >= 4.2 -Requires: util-linux -Requires: xz -Requires: pigz -Requires: dracut >= 030 -Requires: kpartx - -# Python modules -Requires: libselinux-python3 -Requires: python3-mako -Requires: python3-kickstart -Requires: python3-dnf >= 1.1.7 - - -%if 0%{?fedora} -# Fedora specific deps -%ifarch x86_64 -Requires: hfsplus-tools -%endif -%endif - -%ifarch %{ix86} x86_64 -Requires: syslinux >= 6.02-4 -%endif - -%ifarch ppc ppc64 ppc64le -Requires: kernel-bootwrapper -Requires: grub2 -Requires: grub2-tools -%endif - -%ifarch s390 s390x -Requires: openssh -%endif - -%ifarch %{arm} -Requires: uboot-tools -%endif - -# Moved image-minimizer tool to lorax -Provides: appliance-tools-minimizer -Obsoletes: appliance-tools-minimizer < 007.7-3 - -%description -Lorax is a tool for creating the anaconda install images. - -It also includes livemedia-creator which is used to create bootable livemedia, -including live isos and disk images. It can use libvirtd for the install, or -Anaconda's image install feature. - -%package lmc-virt -Summary: livemedia-creator libvirt dependencies -Requires: lorax = %{epoch}:%{version}-%{release} -Requires: qemu -Requires: edk2-ovmf -Recommends: qemu-kvm - -%description lmc-virt -Additional dependencies required by livemedia-creator when using it with qemu. - -%package lmc-novirt -Summary: livemedia-creator no-virt dependencies -Requires: lorax = %{epoch}:%{version}-%{release} -Requires: anaconda-core -Requires: anaconda-tui - -%description lmc-novirt -Additional dependencies required by livemedia-creator when using it with --no-virt -to run Anaconda. - -%package templates-generic -Summary: Generic build templates for lorax and livemedia-creator -Requires: lorax = %{epoch}:%{version}-%{release} -Provides: lorax-templates - -%description templates-generic -Lorax templates for creating the boot.iso and live isos are placed in -/usr/share/lorax/templates.d/99-generic - -%prep -%setup -q -n %{name}-%{version} - -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 - -%build - -%install -rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} install - -%files -%defattr(-,root,root,-) -%license COPYING -%doc AUTHORS docs/livemedia-creator.rst docs/product-images.rst -%doc docs/*ks -%{python3_sitelib}/pylorax -%{python3_sitelib}/*.egg-info -%{_sbindir}/lorax -%{_sbindir}/mkefiboot -%{_sbindir}/livemedia-creator -%{_bindir}/image-minimizer -%dir %{_sysconfdir}/lorax -%config(noreplace) %{_sysconfdir}/lorax/lorax.conf -%dir %{_datadir}/lorax -%{_mandir}/man1/*.1* - -%files lmc-virt - -%files lmc-novirt - -%files templates-generic -%{_datadir}/lorax/templates.d/* - - -%changelog -* Wed Feb 22 2017 Brian C. Lane 25.19-1 -- Create /dev/random and /dev/urandom before running rpm -qa (#1420523) - (bcl@redhat.com) - -* Mon Feb 06 2017 Brian C. Lane 25.18-1 -- Print the full NEVRA when installing packages. (bcl@redhat.com) -- Only cleanup libhistory from readline (dennis@ausil.us) - -* Mon Oct 17 2016 Brian C. Lane 25.17-1 -- Add missing fonts (#1370118) (vponcova@redhat.com) -- drop ssh server key generation for s390(x) (#1383641) (dan@danny.cz) - -* Mon Sep 26 2016 Brian C. Lane 25.16-1 -- Fix broken sshd.inst boot option (#1378378) (jjelen@redhat.com) -- Don't log dracut initrd regeneration messages into /tmp/syslog (#1369439) (rvykydal@redhat.com) -- Use imjournal for rsyslogd instead of sharing /dev/log with journal (#1369439) (rvykydal@redhat.com) -- livemedia-creator: Check for packaging failures in the logs (#1374809) (bcl@redhat.com) -- templates: Enusre basic.target.wants dir exists for rngd (walters@verbum.org) - -* Thu Sep 08 2016 Brian C. Lane 25.15-1 -- Keep fsfreeze in install environment (#1315468) (rmarshall@redhat.com) -- Add ppc64le kernel path (mkumatag@in.ibm.com) -- Install storaged-iscsi to the runtime (#1347415) (vpodzime@redhat.com) - -* Tue Aug 23 2016 Brian C. Lane 25.14-1 -- lorax: Add --rootfs-size (#1368743) (bcl@redhat.com) -- Revert "Use size=10 by default" (bcl@redhat.com) - -* Fri Aug 12 2016 Brian C. Lane 25.13-1 -- as of Fedora 25 s390x now has docker (pbrobinson@fedoraproject.org) -- ppc64le doesn't have pcmciatools (pbrobinson@fedoraproject.org) -- add grub2-tools to aarch64, drop duplicate grubby (pbrobinson@fedoraproject.org) -- Allow supplying a disk image for PXE live systems (code@schoeller.se) -- Use size=10 by default (walters@verbum.org) - -* Thu Jul 28 2016 Brian C. Lane 25.12-1 -- New lorax documentation - 25.12 (bcl@redhat.com) -- Don't install python3-dnf-langpacks (vpodzime@redhat.com) - -* Wed Jul 20 2016 Brian C. Lane 25.11-1 -- Fix aarch64 installs due to missing/unsupported packages - (pbrobinson@gmail.com) -- Keep fb_sys_fops module needed for ast support (#1272658) (bcl@redhat.com) - -* Wed Jul 13 2016 Brian C. Lane 25.10-1 -- Installing *-firmware should be optional (bcl@redhat.com) - -* Fri Jul 08 2016 Brian C. Lane 25.9-1 -- Fix installpkg error handling (bcl@redhat.com) -- Switch installpkg default to --required (bcl@redhat.com) -- Keep all of the kernel drivers/target/ modules (#1348381) (bcl@redhat.com) -- Keep the pci utilities for use in kickstarts (#1344926) (bcl@redhat.com) -- Make sure cmdline config file exists (#1348304) (bcl@redhat.com) -- Stop using undocumented DNF logging API (bcl@redhat.com) - -* Thu Jun 02 2016 Brian C. Lane 25.8-1 -- livemedia-creator: Always copy novirt logs before cleanup (bcl@redhat.com) - -* Fri May 27 2016 Brian C. Lane 25.7-1 -- do not remove libutempter as tmux gained a dep on it (dennis@ausil.us) -- New lorax documentation - 25.6 (bcl@redhat.com) -- Update lmc UEFI support to use the edk2-ovmf package (bcl@redhat.com) - -* Fri May 13 2016 Brian C. Lane 25.6-1 -- Add efi, product, and updates image paths to treeinfo (bcl@redhat.com) -- livemedia-creator: Update make-pxe-live to support missing initramfs - (bcl@redhat.com) -- Rebuild initramfs if it is missing (bcl@redhat.com) -- Add a new error to the log monitor. (bcl@redhat.com) -- Fix DataHolder to handle hasattr (bcl@redhat.com) - -* Fri Apr 29 2016 Brian C. Lane 25.5-1 -- Add example kickstart for Atomic PXE live no-virt (bcl@redhat.com) -- Update ostree boot handling (bcl@redhat.com) -- pylorax: Add delete option to umount (bcl@redhat.com) -- Refactor PXE live creation code (bcl@redhat.com) -- Change --make-pxe-live --no-virt use a fsimage (bcl@redhat.com) -- Allow ostreesetup kickstart (bcl@redhat.com) - -* Mon Apr 18 2016 Brian C. Lane 25.4-1 -- livemedia-creator: Make sure make-iso kickstart includes dracut-live - (bcl@redhat.com) -- livemedia-creator: Simplify cleanup for no-virt (bcl@redhat.com) -- Copying same file shouldn't crash (#1269213) (bcl@redhat.com) - -* Wed Mar 30 2016 Brian C. Lane 25.3-1 -- livemedia-creator: Use correct suffix on default image names (#1318958) - (bcl@redhat.com) -- livemedia-creator: Pass -Xbcj to mksquashfs (bcl@redhat.com) -- templates: On 32 bit systems limit the amount of memory xz uses - (bcl@redhat.com) -- ltmpl: Add compressor selection and argument passing to installimg - (bcl@redhat.com) -- livemedia-creator: Update example kickstarts (bcl@redhat.com) -- image-minimizer: Fix argument parsing (bcl@redhat.com) -- livemedia-creator: Check selinux state and exit (bcl@redhat.com) -- livemedia-creator: Catch dnf download error (bcl@redhat.com) -- templates: Fix runtime_img check (bcl@redhat.com) -- Remove gnome-icon-theme (dshea@redhat.com) -- Exclude unused firmware from package selection. (dshea@redhat.com) -- Add a means of excluding packages from a glob (dshea@redhat.com) -- Clean up /dev. (dshea@redhat.com) -- Remove /var/lib/dnf (dshea@redhat.com) -- Remove a bunch of stuff pulled in by webkitgtk (dshea@redhat.com) -- lorax-lmc-virt now uses qemu not libvirt and virt-install (bcl@redhat.com) -- New lorax documentation - 25.2 (bcl@redhat.com) -- Use Sphinx to generate manpages (bcl@redhat.com) -- livemedia-creator: Use sphinx-argparse to document args (bcl@redhat.com) -- Move argument parsers into pylorax.cmdline (bcl@redhat.com) -- livemedia-creator: Fix off by 1024 error (bcl@redhat.com) -- Create UDF iso when stage2 is >= 4GiB (#1312158) (bcl@redhat.com) - -* Tue Mar 15 2016 Brian C. Lane 25.2-1 -- Not all arches currently have docker (#1317632) (pbrobinson@gmail.com) - -* Wed Mar 09 2016 Brian C. Lane 25.1-1 -- Change location of basearch to dnf.rpm.basearch (#1312087) (bcl@redhat.com) -- livemedia-creator: Change fsck.ext4 discard failures to errors - (bcl@redhat.com) -- pylorax: proc.returncode can be None (bcl@redhat.com) -- livemedia-creator: Create runtime using kickstart partition size - (bcl@redhat.com) -- livemedia-creator: Update kickstarts for rawhide (bcl@redhat.com) -- pylorax: Fix undefind strings on subprocess crash (bcl@redhat.com) -- Keep /usr/bin/xrdb (#1241724) (dshea@redhat.com) -- Install the libblockdev-lvm-dbus plugin (#1264816) (vpodzime@redhat.com) -- livemedia-creator: Bump default releasever to 25 (bcl@redhat.com) -- Add docker-anaconda-addon (bcl@redhat.com) -- livemedia-creator: Use qemu instead of virt-install (bcl@redhat.com) -- Bump version to 25.0 (bcl@redhat.com) - -* Tue Mar 01 2016 Brian C. Lane 24.14-1 -- Add glibc-all-langpacks (#1312607) (dshea@redhat.com) - -* Thu Feb 25 2016 Brian C. Lane 24.13-1 -- templates: Reinstate gpgme-pthread.so for ostree (walters@verbum.org) -- Include grub2-efi-modules on the boot.iso (#1277227) (bcl@redhat.com) -- Keep modules needed for ast video driver support (#1272658) (bcl@redhat.com) - -* Fri Feb 19 2016 Brian C. Lane 24.12-1 -- Put the NM loglevel config in the right place. (bcl@redhat.com) - -* Fri Feb 19 2016 Brian C. Lane 24.11-1 -- configure NetworkManager to loglevel=DEBUG (#1274647) (rvykydal@redhat.com) -- New lorax documentation - 24.10 (bcl@redhat.com) - -* Fri Feb 12 2016 Brian C. Lane 24.10-1 -- Add rng-tools and start rngd.service by default (#1258516) (bcl@redhat.com) -- livemedia-creator: Stop passing --repo to anaconda (#1304802) - (bcl@redhat.com) -- livemedia-creator: Add /usr/share/lorax/templates.d/ support (bcl@redhat.com) -- Move templates to /usr/share/lorax/templates.d/99-generic (bcl@redhat.com) -- Add check for templates.d in the sharedir (bcl@redhat.com) -- Add documentation for the lorax command and templates (bcl@redhat.com) -- Remove the removal of the eintr checker, which has been removed - (dshea@redhat.com) - -* Wed Jan 13 2016 Brian C. Lane 24.9-1 -- livemedia-creator: Add kernel-modules and kernel-modules-extra to examples - (bcl@redhat.com) -- livemedia-creator: Make sure the rootfs.img can be compressed - (bcl@redhat.com) - -* Tue Jan 12 2016 Brian C. Lane 24.8-1 -- Make arm .treeinfo match reality (dennis@ausil.us) -- Add --iso-name to use with --iso-only (bcl@redhat.com) - -* Fri Jan 08 2016 Brian C. Lane 24.7-1 -- Add kpartx to Requires (bcl@redhat.com) -- Prefix temporary files and directories with lmc- (bcl@redhat.com) -- Add --iso-only option to --make-iso (bcl@redhat.com) -- livemedia-creator: Fix calculation of disk_size in some cases - (logans@cottsay.net) -- docs: Update documentation for livemedia-creator (bcl@redhat.com) -- livemedia-creator: Add --image-type and --qemu-args options (bcl@redhat.com) -- pylorax: Add mkqemu_img function, alias mkqcow2 to it. (bcl@redhat.com) -- Update things to make pylint 1.5.1 happy (bcl@redhat.com) -- Write a list of debuginfo packages to /root/debug-pkgs.log (#1068675) - (bcl@redhat.com) -- Also remove uboot from live arm.tmpl (bcl@redhat.com) -- no longer make u-boot wrapped kernels (dennis@ausil.us) -- Fix chronyd not working in the installation (#1288905) (jkonecny@redhat.com) -- Update Lorax documentation - 24.6 (bcl@redhat.com) -- Update docs for product.img (bcl@redhat.com) - -* Wed Dec 02 2015 Brian C. Lane 24.6-1 -- livemedia-creator: Raise an error if url is used without networking - (fabiand@fedoraproject.org) -- livemedia-creator: Fix a small typo (fabiand@fedoraproject.org) -- livemedia-creator: Use discard during installation - (fabiand@fedoraproject.org) -- livemedia-creator: Use cache=unsafe for the installation disk - (fabiand@fedoraproject.org) -- Remove requires for pocketlint as it is not used in build process - (bcl@redhat.com) -- Include qemu modules in the initrd (bcl@redhat.com) -- livemedia-creator: Check kickstart for shutdown (#1207959) (bcl@redhat.com) -- livemedia-creator: Correctly handle not mounting image (bcl@redhat.com) -- livemedia-creator: Use hd:LABEL for stage2 iso (bcl@redhat.com) -- Add support for .repo files (#1264058) (bcl@redhat.com) -- livemedia-creator: Actually pass vcpus to virt-install (bcl@redhat.com) -- paste is needed by os-prober (#1275105) (bcl@redhat.com) - -* Fri Nov 06 2015 Brian C. Lane 24.5-1 -- Add --virt-uefi to boot the VM using OVMF (bcl@redhat.com) -- Enable gtk inspector. (dshea@redhat.com) -- lorax: Improve argument parsing and help (bcl@redhat.com) -- lorax: Add --sharedir to override configuration path (bcl@redhat.com) - -* Wed Oct 28 2015 Brian C. Lane 24.4-1 -- livemedia-creator: Allow novirt ostree partitioned images (#1273199) - (bcl@redhat.com) -- Add documentation and kickstart for --make-vagrant (bcl@redhat.com) -- livemedia-creator: Make --make-vagrant work with --no-virt (bcl@redhat.com) -- livemedia-creator: Add --make-vagrant command (bcl@redhat.com) -- Add selinux switch to mktar (bcl@redhat.com) -- livemedia-creator: Make --make-oci work with --no-virt (bcl@redhat.com) -- Add documentation for --make-oci (bcl@redhat.com) -- livemedia-creator: Add --make-oci for Open Container Initiative images - (bcl@redhat.com) -- Add submount directory to PartitionMount class (bcl@redhat.com) -- Keep libthread so that gdb will work correctly (#1269055) (bcl@redhat.com) -- Update Lorax documentation - 24.3 (bcl@redhat.com) - -* Tue Oct 06 2015 Brian C. Lane 24.3-1 -- Do not let systemd-tmpfiles set up /etc on boot (dshea@redhat.com) -- Fix the concatenation of error output. (dshea@redhat.com) -- Add findmnt command (jkonecny@redhat.com) -- Reduce the size of macboot.img (#952747) (bcl@redhat.com) -- rsa1 keys are not supported any more by our openssh (dan@danny.cz) -- Look for crashes from the anaconda signal handler. (dshea@redhat.com) -- Include gdb in the boot.iso (dshea@redhat.com) -- Do not install weak deps in boot.iso (bcl@redhat.com) -- Require correct dnf version for API changes (bcl@redhat.com) -- Drop multiprocessing for do_transaction (#1208296) (bcl@redhat.com) -- Add a font that supports Urdu characters (#1004717) (bcl@redhat.com) -- livemedia-creator: Remove random-seed from images (#1258986) (bcl@redhat.com) -- Don't include early microcode in initramfs (#1258498) (bcl@redhat.com) - -* Mon Aug 31 2015 Brian C. Lane 24.2-1 -- drop fedup-dracut and friends (wwoods@redhat.com) -- don't build upgrade.img anymore (wwoods@redhat.com) -- livemedia-creator: no-virt fsimage should only use / size from ks - (bcl@redhat.com) -- Update lmc docs for new mock (bcl@redhat.com) -- No longer offer a rescue boot menu option on liveinst (#1256061). - (clumens@redhat.com) -- document --timeout in livemedia-creator man page (atodorov@redhat.com) -- Add enough of shadow-utils to create new user accounts. (dshea@redhat.com) -- Update Lorax documentation - 24.1 (bcl@redhat.com) -- Add lldptool (#1085325) (rvykydal@redhat.com) - -* Fri Aug 07 2015 Brian C. Lane 24.1-1 -- some of the PowerPC utilities (powerpc-utils and fbset) need perl too - (pbrobinson@gmail.com) -- Add a default vconsole.conf to the boot.iso (#1250260) (bcl@redhat.com) -- Return the output from failed commands in CalledProcessError (bcl@redhat.com) -- Add dracut-live for livemedia kickstart example (bcl@redhat.com) - -* Thu Jul 30 2015 Brian C. Lane 24.0-1 -- Bump version to 24.0 (bcl@redhat.com) -- Use execReadlines in livemedia-creator (bcl@redhat.com) -- Add execReadlines to executils. (bcl@redhat.com) -- Add reset_lang argument to everything in executils. (bcl@redhat.com) - -* Tue Jul 21 2015 Brian C. Lane 23.14-1 -- Add a new makefile target that does everything needed for jenkins. - (clumens@redhat.com) -- Revert "Revert "Turn off ldconfig"" (dshea@redhat.com) -- Add back libraries needed by spice-vdagent (dshea@redhat.com) -- Remove some junk that didn't work anyway (dshea@redhat.com) -- Add a verification step to Lorax.run. (dshea@redhat.com) -- Create an empty selinux config file (#1243168) (bcl@redhat.com) -- Update Lorax documentation - 23.13 (bcl@redhat.com) - -* Fri Jul 10 2015 Brian C. Lane 23.13-1 -- Add a bit more overhead to the root filesystem size (bcl@redhat.com) -- network: turn slaves autoconnection on (rvykydal@redhat.com) -- Keep hyperv_fb driver in the image (#834791) (bcl@redhat.com) - -* Fri Jun 26 2015 Brian C. Lane 23.12-1 -- Explicitly add kernel-modules and kernel-modules-extra (bcl@redhat.com) - -* Fri Jun 19 2015 Brian C. Lane 23.11-1 -- Disable systemd-tmpfiles-clean (#1202545) (bcl@redhat.com) - -* Wed Jun 10 2015 Brian C. Lane 23.10-1 -- Remove some stale entires from runtime-install (dshea@redhat.com) -- Stop moving sitecustomize into site-packages (bcl@redhat.com) -- Pass setup_logging the log file, not the whole opts structure. - (clumens@redhat.com) -- Move IsoMountpoint into its own module. (clumens@redhat.com) -- Move setup_logging into pylorax/__init__.py. (clumens@redhat.com) -- Break all the log monitoring stuff from LMC out into its own module. - (clumens@redhat.com) -- Fix bug with product DataHolder overwriting product string. (bcl@redhat.com) - -* Fri May 15 2015 Brian C. Lane 23.9-1 -- Update execWith* docstrings (bcl@redhat.com) -- livemedia-creator: Update example kickstarts (bcl@redhat.com) -- Update fedora-livemedia.ks example (bcl@redhat.com) -- Include html documentation under docs/html (bcl@redhat.com) -- Switch documentation to python3 (bcl@redhat.com) -- Create html documentation under docs/html/ (bcl@redhat.com) -- livemedia-creator: Catch missing package errors (bcl@redhat.com) -- Update spec for python3 and add subpackages for lmc (bcl@redhat.com) -- Convert to using pocketlint for pylint rules (bcl@redhat.com) -- Convert livemedia-creator to py3 (bcl@redhat.com) -- Convert test-parse-template to py3 (bcl@redhat.com) -- Update image-minimizer for py3 (bcl@redhat.com) -- Change mkefiboot to py3 (bcl@redhat.com) -- Additional python3 changes (bcl@redhat.com) -- Update lorax for python3 and argparse (bcl@redhat.com) -- Use the execWith* methods from Anaconda (bcl@redhat.com) -- Convert pylorax to python3 (bcl@redhat.com) -- Clean up some pylint warnings (bcl@redhat.com) -- Make sure openssh-clients is installed (#1219398) (bcl@redhat.com) -- Add product.img support for s390 templates (dan@danny.cz) -- Add some more details about template rendering errors (bcl@redhat.com) -- Mock more modules for RTD (bcl@redhat.com) -- Mock the selinux package for RTD (bcl@redhat.com) -- Added Sphinx Documentation (bcl@redhat.com) - -* Thu Apr 02 2015 Brian C. Lane 23.8-1 -- Include cryptsetup in the image (#1208214) (bcl@redhat.com) - -* Fri Mar 27 2015 Brian C. Lane 23.7-1 -- Check that the transaction process is still alive (vpodzime@redhat.com) -- livemedia-creator: Clean up resultdir handling (bcl@redhat.com) - -* Fri Mar 20 2015 Brian C. Lane 23.6-1 -- Include ld.so.conf (#1204031) (bcl@redhat.com) -- Revert "Turn off ldconfig" (bcl@redhat.com) -- Add ability for external templates to graft content into boot.iso - (walters@verbum.org) -- Keep logitech hid drivers (#1199770) (bcl@redhat.com) - -* Mon Mar 16 2015 Brian C. Lane 23.5-1 -- Don't erase /usr/lib/os.release.d (sgallagh@redhat.com) - -* Fri Mar 13 2015 Brian C. Lane 23.4-1 -- Require python-dnf so that we get the python2 version (bcl@redhat.com) -- livemedia-creator: Fix up fake yum object for DNF change (bcl@redhat.com) -- Update logic for stage2 detection on boot.iso (bcl@redhat.com) - -* Fri Mar 06 2015 Brian C. Lane 23.3-1 -- Turn off ldconfig (bcl@redhat.com) -- Add removekmod template command (bcl@redhat.com) -- Move stage2 to images/install.img (#815275) (bcl@redhat.com) - -* Fri Feb 27 2015 Brian C. Lane 23.2-1 -- Update pykickstart requirement (bcl@redhat.com) -- Explicitly install notification-daemon (dshea@redhat.com) - -* Tue Feb 17 2015 Brian C. Lane 23.1-1 -- Skip using srpm repos (bcl@redhat.com) -- Drop the dnf Base object deletion code and use reset (bcl@redhat.com) -- Get the log directory from the configfile (bcl@redhat.com) -- lorax: Add --cachedir, --force and --workdir cmdline options (bcl@redhat.com) -- Cleanup help alignment (bcl@redhat.com) -- dnf: remove files from installed packages (bcl@redhat.com) -- Switch lorax to use dnf instead of yum (bcl@redhat.com) -- Fix Source0 for use with github (bcl@redhat.com) - -* Thu Feb 12 2015 Brian C. Lane 23.0-1 -- Bump version to 23.0 (bcl@redhat.com) -- os-release moved to /usr/lib (#1191713) (bcl@redhat.com) -- Use /usr/bin/python2 in scripts (bcl@redhat.com) -- Add bridge-utils (#1188812) (bcl@redhat.com) - -* Fri Feb 06 2015 Brian C. Lane 22.4-1 -- livemedia-creator: Add --timeout option to cancel install after X minutes - (bcl@redhat.com) -- network: add support for bridge (#1075195) (rvykydal@redhat.com) -- Move url and source to github in specfile (bcl@redhat.com) -- Use %%license in lorax.spec (bcl@redhat.com) - -* Fri Jan 23 2015 Brian C. Lane 22.3-1 -- livemedia-creator: Add documentation on using mock and livemedia-creator (bcl@redhat.com) -- livemedia-creator: Bump default releasever to 22 (bcl@redhat.com) -- Change console font to eurlatgr (myllynen@redhat.com) - -* Fri Jan 16 2015 Brian C. Lane 22.2-1 -- Add --live-rootfs-keep-size option (rvykydal@redhat.com) -- Add --live-rootfs-size option. (rvykydal@redhat.com) -- livemedia-creator: Update example kickstarts (bcl@redhat.com) -- livemedia-creator: Turn on debug output for dracut (bcl@redhat.com) -- livemedia-creator: Copy all the logs from /tmp/ (bcl@redhat.com) -- livemedia-creator: Create parent dirs for logfile path (bcl@redhat.com) -- Remove fedora-icon-theme (dshea@redhat.com) -- Remove fedora-gnome-theme (dshea@redhat.com) -- Remove the GSettings overrides for metacity (dshea@redhat.com) -- Remove gnome-python2-gconf (dshea@redhat.com) -- --make-pxe-target: change permissions of regenerated initramrfs to 0644 - (rvykydal@redhat.com) -- Override services kickstart setting from interactive-defaults.ks - (rvykydal@redhat.com) -- Use gcdaa64.efi on aarch64 (#1174475) (bcl@redhat.com) -- livemedia-creator: add a timeout to the log monitor startup (bcl@redhat.com) -- Add --make-pxe-live and --make-ostree-live (for Atomic) targets. - (rvykydal@redhat.com) -- Revert "Install optional product and updates packages (#1155228)" - (bcl@redhat.com) -- Add log monitoring to lmc --no-virt installation (bcl@redhat.com) -- runtime-cleanup.tmpl: keep virtio-rng (#1179000) (lersek@redhat.com) -- Install python-nss (vpodzime@redhat.com) - -* Fri Dec 12 2014 Brian C. Lane 22.1-1 -- Actually make boot.iso on aarch64. (pjones@redhat.com) -- Add --includepkg argument (walters@verbum.org) - -* Fri Dec 05 2014 Brian C. Lane 22.0-1 -- aarch64 no longer needs explicit console setting (#1170412) (bcl@redhat.com) -- Bump version to 22.0 (bcl@redhat.com) - -* Wed Dec 03 2014 Brian C. Lane 21.31-1 -- Drop 32 bit for loop from ppc64 grub2 config (#1169878) (bcl@redhat.com) -- gschemas: Fix typo button_laytout -> button_layout (walters@verbum.org) - -* Thu Nov 20 2014 Brian C. Lane 21.30-1 -- Install optional product and updates packages (#1155228) (bcl@redhat.com) - -* Wed Nov 19 2014 Brian C. Lane 21.29-1 -- Remove diagnostic product.img test (#1165425) (bcl@redhat.com) - -* Thu Nov 06 2014 Brian C. Lane 21.28-1 -- Add product.img support for arm templates (bcl@redhat.com) -- Revert "add fedora-repos-anaconda to runtime environment" (bcl@redhat.com) - -* Wed Nov 05 2014 Brian C. Lane 21.27-1 -- Remove the ppc magic file (bcl@redhat.com) -- Update templates to use installimg for product and updates (bcl@redhat.com) -- Add installimg command for use in the templates (bcl@redhat.com) -- Setup mdadm to turn off homehost (#1156614) (bcl@redhat.com) -- Don't include the stock lvm.conf. (#1157864) (dlehman@redhat.com) -- Write list of packages to /root/lorax-packages.log (bcl@redhat.com) - -* Mon Oct 20 2014 Brian C. Lane 21.26-1 -- Use all upper case for shim in live/efi.tmpl (bcl@redhat.com) -- livemedia-creator: Add nfs support for no-virt mode (#1121255) - (bcl@redhat.com) -- Include /usr/bin/bugzilla in the installation environment. - (clumens@redhat.com) - -* Tue Oct 07 2014 Brian C. Lane 21.25-1 -- Libgailutil is required yelp, don't remove it (#1072033) (mkolman@redhat.com) -- Revert "Don't remove /usr/share/doc/anaconda." (#1072033) - (mkolman@redhat.com) -- Look for "BOOT${efiarch}.EFI" in mkefiboot as well. (pjones@redhat.com) -- Make sure shim is actually in the package list on aarch64 as well. - (pjones@redhat.com) -- Fix 'docs' typo in livemedia-creator manpage (#1149026) (bcl@redhat.com) -- Keep the /etc/lvm/profiles directory in the image (vpodzime@redhat.com) -- Use shim on aarch64. (pjones@redhat.com) - -* Tue Sep 30 2014 Brian C. Lane 21.24-1 -- Rework how including /usr/share/doc/anaconda works. (clumens@redhat.com) -- Don't remove /usr/share/doc/anaconda. (clumens@redhat.com) -- Stop removing libXt from the installation media. (clumens@redhat.com) - -* Tue Sep 23 2014 Brian C. Lane 21.23-1 -- livemedia-creator: Make sure ROOT_PATH exists (#1144140) (bcl@redhat.com) -- livemedia-creator: Add --no-recursion to mktar (#1144140) (bcl@redhat.com) -- Remove at-spi (dshea@redhat.com) - -* Mon Sep 15 2014 Brian C. Lane 21.22-1 -- add fedora-repos-anaconda to runtime environment (awilliam@redhat.com) -- Let the plymouth dracut module back into the ppc64 upgrade.img - (dshea@redhat.com) -- Add more tools for rescue mode (#1109785) (bcl@redhat.com) -- Add ppc64le arch (#1136490) (bcl@redhat.com) -- allow setting additional dracut parameters for DVD s390x installs - (dan@danny.cz) - -* Thu Aug 28 2014 Brian C. Lane 21.21-1 -- Revert "Require 32bit glibc on ppc64" (bcl@redhat.com) -- livemedia-creator: Update ppc64 live to use grub2 (bcl@redhat.com) -- livemedia-creator: Add ppc64 live creation support (#1102318) - (bcl@redhat.com) -- Include /sbin/ldconfig from glibc. (dlehman@redhat.com) - -* Fri Aug 15 2014 Brian C. Lane 21.20-1 -- Require 32bit glibc on ppc64 (bcl@redhat.com) -- Add ipmitool and drivers (#1126009) (bcl@redhat.com) -- livemedia-creator: Padd disk size by 2MiB (bcl@redhat.com) -- livemedia-creator: Run setfiles after no-virt installation (bcl@redhat.com) -- https is a sane package source URL scheme (walters@verbum.org) - -* Wed Jul 30 2014 Brian C. Lane 21.19-1 -- Add kexec anaconda addon (#1115914) (bcl@redhat.com) - -* Wed Jul 23 2014 Brian C. Lane 21.18-1 -- Revert "Add kexec anaconda addon (#1115914)" (bcl@redhat.com) -- Disable dnf-makecache.timer (#1120368) (bcl@redhat.com) - -* Wed Jul 16 2014 Brian C. Lane 21.17-1 -- livemedia-creator: close the socket when done (bcl@redhat.com) -- Keep seq and getconf utilities in the image (vpodzime@redhat.com) -- Allow _ in isolabel (#1118955) (bcl@redhat.com) - -* Fri Jul 11 2014 Brian C. Lane 21.16-1 -- Don't remove usr/lib/rpm/platform/ (#1116450) (bcl@redhat.com) -- Add xfsdump and remove extra files from xfsprogs (#1118654) (bcl@redhat.com) -- Add kexec anaconda addon (#1115914) (bcl@redhat.com) -- Fix typo in lohit-telugu-fonts (bcl@redhat.com) -- Drop writing to resolv.conf in postinstall (bcl@redhat.com) -- livemedia-creator: Allow the boot.iso to be shared (bcl@redhat.com) -- livemedia-creator: log more failure information (bcl@redhat.com) -- livemedia-creator: drop console=ttyS0 (bcl@redhat.com) -- livemedia-creator: Log the line that caused the failure (bcl@redhat.com) -- livemedia-creator: add more errors (bcl@redhat.com) -- Allow doing non-URL installs if using virt. (clumens@redhat.com) - -* Wed Jul 02 2014 Brian C. Lane 21.15-1 -- Convert metacity gconf settings into gsettings schema overrides - (dshea@redhat.com) -- Add more keybindings to the gschema override (dshea@redhat.com) -- Don't emit media labels with spaces in them. (pjones@redhat.com) -- Remove biosdevname (#989209) (bcl@redhat.com) - -* Fri Jun 27 2014 Brian C. Lane 21.14-1 -- The theme has been absorbed into gtk3 (bcl@redhat.com) - -* Thu Jun 26 2014 Brian C. Lane 21.13-1 -- livemedia-creator: Ignore IGNORED errors in anaconda logs (bcl@redhat.com) - -* Tue Jun 24 2014 Brian C. Lane 21.12-1 -- tito.props section name is buildconfig (bcl@redhat.com) -- Stop removing libcanberra-gtk3 libraries (#1111724) (bcl@redhat.com) -- Update tito config (bcl@redhat.com) - -* Thu Jun 19 2014 Brian C. Lane 21.11-1 -- livemedia-creator: Handle virt-install failure cleanup (bcl@redhat.com) -- livemedia-creator: Fail when there are missing packages (bcl@redhat.com) -- Keep virtio_console harder. (dshea@redhat.com) - -* Mon May 12 2014 Brian C. Lane 21.10-1 -- Add --add-template{,-var} (walters@verbum.org) -- runtime-install: Add rpm-ostree, move dnf here (walters@verbum.org) -- Update copyright statements (bcl@redhat.com) -- livemedia-creator: Cleanup docstrings (bcl@redhat.com) -- livemedia-creator: Cleanup some style issues (bcl@redhat.com) -- Cleanup other misc pylint warnings (bcl@redhat.com) -- Cleanup pylorax pylint warnings (bcl@redhat.com) -- Add pylint testing (bcl@redhat.com) -- Require uboot-tools when running on arm (dennis@ausil.us) -- Obsolete appliance-tools-minimizer (#1084110) (bcl@redhat.com) -- livemedia-creator: Copy fsimage if hardlink fails (bcl@redhat.com) -- Turn on debug output for mkefiboot (bcl@redhat.com) -- Clean up download and install output (bcl@redhat.com) -- Install specific lohit fonts instead of all of them (#1090390) - (bcl@redhat.com) -- Update grub2-efi.cfg for aarch64 to more closely match x86 (#1089418). - (dmarlin@redhat.com) -- Install rdma so that dracut will use it along with libmlx4 (#1089564) - (bcl@redhat.com) - -* Tue Apr 15 2014 Brian C. Lane 21.9-1 -- Update syslinux 6.02 support for noarch change (bcl@redhat.com) -- runtime-cleanup: Do install GPG (walters@verbum.org) - -* Thu Apr 10 2014 Brian C. Lane 21.8-1 -- Update to support syslinux 6.02 (bcl@redhat.com) -- livemedia-creator: Add support for making tarfiles (bcl@redhat.com) -- livemedia-creator: Allow disk sizes to be < 1GiB (bcl@redhat.com) -- livemedia-creator: Check fsimage kickstart for single partition - (bcl@redhat.com) -- livemedia-creator: Output all the errors at once (bcl@redhat.com) -- livemedia-creator: Update documentation to reflect new options - (bcl@redhat.com) -- livemedia-creator: Make --make-fsimage work with virt-install - (bcl@redhat.com) - -* Wed Apr 02 2014 Brian C. Lane 21.7-1 -- Use BOOTAA64.efi for AARCH64 bootloader filename (#1080113) (bcl@redhat.com) -- Stop removing curl after adding it (bcl@redhat.com) -- move image-minimizer to lorax (#1082642) (bcl@redhat.com) -- support ppc64le in lorax (hamzy@us.ibm.com) - -* Wed Mar 26 2014 Brian C. Lane 21.6-1 -- Install bzip2 for liveimg tar.bz2 support (bcl@redhat.com) -- Remove obsolete firstaidkit packages (#1076237) (bcl@redhat.com) -- livemedia-creator: Add option to create qcow2 disk images (bcl@redhat.com) -- Add support for creating qcow2 images (bcl@redhat.com) -- utf-8 encode yum actions before displaying them (#1072362) (bcl@redhat.com) - -* Fri Feb 28 2014 Brian C. Lane 21.5-1 -- Use string for releasever not int (#1067746) (bcl@redhat.com) -- createrepo is needed by driver disks (#1016004) (bcl@redhat.com) -- Improve aarch64 UEFI support (#1067671) (dmarlin@redhat.com) -- livemedia-creator: Set the product and release version env variables - (#1067746) (bcl@redhat.com) -- Check initrd size on ppc64 and warn (#1060691) (bcl@redhat.com) -- Remove drivers and modules on ppc64 (#1060691) (bcl@redhat.com) - -* Mon Feb 10 2014 Brian C. Lane 21.4-1 -- livemedia-creator: virt-image needs ram in MiB not KiB (#1061773) - (bcl@redhat.com) -- Don't remove libraries from bind-libs-lite (dshea@redhat.com) -- Include all the example kickstarts (#1019728) (bcl@redhat.com) -- Remove floppy and scsi_debug from initrd (#1060691) (bcl@redhat.com) - -* Tue Feb 04 2014 Brian C. Lane 21.3-1 -- Install aajohan-comfortaa-fonts (#1047430) (bcl@redhat.com) -- Include mesa-dri-drivers (#1053940) (bcl@redhat.com) - -* Fri Jan 24 2014 Brian C. Lane 21.2-1 -- Activate anaconda-shell@.service on switch to empty VT (#980062) - (wwoods@redhat.com) -- flush data to disk after mkfsimage (#1052175) (bcl@redhat.com) -- livemedia-creator: Use findkernels instead of KernelInfo (bcl@redhat.com) -- Print error when kickstart is missing (#1052872) (bcl@redhat.com) - -* Tue Dec 17 2013 Brian C. Lane 21.1-1 -- Add initial 64-bit ARM (aarch64) support (#1034432) (dmarlin@redhat.com) - -* Mon Dec 16 2013 Brian C. Lane 21.0-1 -- s390 switch to generic condev (#1042766) (bcl@redhat.com) -- sort glob output before using it (bcl@redhat.com) -- Bless grub2 for PPC (#1020112) (catacombae@gmail.com) -- livemedia-creator: Cleanup temp yum files (#1025837) (bcl@redhat.com) -- lorax: pass size from Lorax.run to create_runtime (#903385) (bcl@redhat.com) - -* Mon Nov 18 2013 Brian C. Lane 20.4-1 -- drop 'xdriver=vesa' from basic graphics mode parameters (per ajax) - (awilliam@redhat.com) -- Include partx (#1022899) (bcl@redhat.com) -- Run compressions in multiple threads (vpodzime@redhat.com) -- Do not remove libdaemon from the runtime environment (#1028938) - (vpodzime@redhat.com) -- Set UEFI defaults to match BIOS (#1021451,#1021446) (bcl@redhat.com) -- livemedia-creator: Add minimal disk example kickstart (#1019728) - (bcl@redhat.com) - -* Wed Oct 16 2013 Brian C. Lane 20.3-1 -- ARM: install the dtb files into the install tree. (dennis@ausil.us) -- ARM: Don't install or deal with in templates, no longer existing kernels - (dennis@ausil.us) -- kernel changed seperator for flavours from . to + update regular expression - (dennis@ausil.us) -- Keep virtio_console module (#1019564) (bcl@redhat.com) -- Add macboot option (#1012529) (bcl@redhat.com) - -* Wed Sep 25 2013 Brian C. Lane 20.2-1 -- drop dracut args from config files (#1008054) (bcl@redhat.com) -- livemedia-creator: Update example kickstart (bcl@redhat.com) - -* Mon Sep 09 2013 Brian C. Lane 20.1-1 -- Yaboot to grub2 conversion cleanup. (dwa@redhat.com) -- Firstboot is not an anaconda dependency (vpodzime@redhat.com) -- Revert "Switch to cgit url for Source0" (bcl@redhat.com) -- Switch to cgit url for Source0 (bcl@redhat.com) - -* Tue Sep 03 2013 Brian C. Lane 20.0-1 -- remove firewalld from installroot (#1002195) (bcl@redhat.com) -- Make sure grubby is installed for initrd creation (#1001896) (bcl@redhat.com) -- GRUB2 as the ISO boot loader for POWER arch (pfsmorigo@br.ibm.com) -- Require hfsplus-tools on Fedora x86_64 (bcl@redhat.com) - -* Fri Aug 23 2013 Brian C. Lane 19.8-1 -- Make sure we have a theme settings file in place. (clumens@redhat.com) -- Keep liblzo2.* (#997643) (dshea@redhat.com) -- Make sure dracut uses no-hostonly mode (bcl@redhat.com) -- Run spice-vdagentd without systemd-logind integration (#969405) - (dshea@redhat.com) - -* Thu Aug 01 2013 Brian C. Lane 19.7-1 -- Add a dist target that copies the archive to fedorahosted (bcl@redhat.com) -- dracut-nohostonly and dracut-norescue got renamed for dracut >= 030 - (harald@redhat.com) -- EFI and related packages are only for x86_64 (pjones@redhat.com) -- Don't remove xkeyboard-config message files (#972236) (dshea@redhat.com) - -* Fri Jul 26 2013 Brian C. Lane 19.6-1 -- Add manpage for lorax (bcl@redhat.com) -- Add manpage for livemedia-creator (bcl@redhat.com) -- livemedia-creator: pass inst.cmdline for headless installs (#985487) - (bcl@redhat.com) -- Stop using /usr/bin/env (#987028) (bcl@redhat.com) -- livemedia-creator: clarify required package errors (#985340) (bcl@redhat.com) -- Include device-mapper-persistent-data in images for thinp support. - (dlehman@redhat.com) - -* Thu Jun 13 2013 Brian C. Lane 19.5-1 -- Let sshd decide which keys to create (#971856) (bcl@redhat.com) -- Don't remove thbrk.tri (#886250) (bcl@redhat.com) -- Switch from xorg-x11-fonts-ethiopic to sil-abyssinica-fonts (#875664) - (bcl@redhat.com) -- Make ignoring yum_lock messages in anaconda easier. (clumens@redhat.com) -- Bump image size up to 2G (#967556) (bcl@redhat.com) -- livemedia-creator: Fix logic for anaconda test (#958036) (bcl@redhat.com) - -* Tue May 21 2013 Brian C. Lane 19.4-1 -- Add command for opening anaconda log file to history (mkolman@gmail.com) -- Do not install chrony and rdate explicitly (vpodzime@redhat.com) - -* Mon Apr 29 2013 Brian C. Lane 19.3-1 -- Remove /var/log/journal so journald won't write to overlay - (wwoods@redhat.com) -- Leave /etc/os-release in the initrd (#956241) (bcl@redhat.com) -- no standalone modutils package (dan@danny.cz) -- remove no longer supported arm kernel variants add the new lpae one - (dennis@ausil.us) -- livemedia-creator: Update example kickstarts (bcl@redhat.com) -- livemedia-creator: Ignore rescue kernels (bcl@redhat.com) - -* Mon Apr 15 2013 Brian C. Lane 19.2-1 -- Let devices get detected and started automatically. (dlehman@redhat.com) -- Fix import of version (bcl@redhat.com) -- fix version query and add one to the log file (hamzy@us.ibm.com) -- Do not remove files required by tools from the s390utils-base package. - (jstodola@redhat.com) - -* Tue Mar 19 2013 Brian C. Lane 19.1-1 -- Print & log messages on scriptlet/transaction errors (wwoods@redhat.com) -- sysutils: add -x to cp in linktree (wwoods@redhat.com) -- treebuilder: fix "Can't stat exclude path "/selinux"..." message - (wwoods@redhat.com) -- runtime: install dracut-{nohostonly,norescue} (wwoods@redhat.com) -- runtime-install: install shim-unsigned (wwoods@redhat.com) -- Add explicit install of net-tools (#921619) (bcl@redhat.com) -- Don't remove hmac files for ssh and sshd (#882153) (bcl@redhat.com) -- Raise an error when there are no initrds (bcl@redhat.com) -- Add yum logging to yum.log (bcl@redhat.com) -- remove sparc support (dennis@ausil.us) -- Change Makefile to produce .tgz (bcl@redhat.com) - -* Thu Feb 28 2013 Brian C. Lane 19.0-1 -- New Version 19.0 -- Remove some env variables (#907692) (bcl@redhat.com) -- Make sure tmpfs is enabled (#908253) (bcl@redhat.com) - -* Tue Feb 12 2013 Brian C. Lane 18.31-1 -- add syslinux and ssm (bcl@redhat.com) -- Add filesystem image install support (bcl@redhat.com) - -* Thu Jan 31 2013 Brian C. Lane 18.30-1 -- yum changed the callback info (bcl@redhat.com) -- tigervnc-server-module depends on Xorg, which doesn't exist on s390x - (dan@danny.cz) -- tools not existing on s390x (dan@danny.cz) -- specspo is dead for a long time (dan@danny.cz) -- no Xorg on s390x (dan@danny.cz) -- Make boot configs consistent. (dmach@redhat.com) -- Dynamically generate the list of installed platforms for .treeinfo - (dmarlin@redhat.com) -- Add a U-Boot wrapped image of 'upgrade.img'. (dmarlin@redhat.com) -- Add trigger for Anaconda's exception handling to bash_history - (vpodzime@redhat.com) -- livemedia-creator: update example kickstarts (bcl@redhat.com) -- livemedia-creator: don't pass console=ttyS0 (bcl@redhat.com) -- Fix gcdx64.efi path to work for other distros than Fedora. (dmach@redhat.com) - -* Thu Dec 20 2012 Martin Gracik 18.29-1 -- Do not remove gtk3 share files (mgracik@redhat.com) - -* Wed Dec 19 2012 Martin Gracik 18.28-1 -- Fix rexists (mgracik@redhat.com) -- Several 'doupgrade' fixes in the x86 template. (dmach@redhat.com) -- Missing semicolon (mgracik@redhat.com) - -* Tue Dec 18 2012 Martin Gracik 18.27-1 -- Only run installupgradeinitrd if upgrade on s390x (mgracik@redhat.com) - -* Tue Dec 18 2012 Martin Gracik 18.26-1 -- Only run installupgradeinitrd if upgrade (mgracik@redhat.com) - -* Tue Dec 18 2012 Martin Gracik 18.25-1 -- Add --noupgrade option (mgracik@redhat.com) -- Require fedup-dracut* only on Fedora. (dmach@redhat.com) - -* Fri Dec 14 2012 Brian C. Lane 18.24-1 -- imgutils: use -s for kpartx, wait for device creation (bcl@redhat.com) -- livemedia-creator: Use SELinux Permissive mode (bcl@redhat.com) -- livemedia-creator: use cmdline mode (bcl@redhat.com) -- use correct variable for upgrade image on s390 (dan@danny.cz) -- only ix86/x86_64 and ppc/ppc64 need grub2 (dan@danny.cz) -- no mount (sub-)package since RHEL-2 (dan@danny.cz) -- Correct argument to installupgradeinitrd. (dmarlin@redhat.com) -- Added fedup requires to spec (bcl@redhat.com) - -* Wed Dec 05 2012 Brian C. Lane 18.23-1 -- remove multipath rules (#880263) (bcl@redhat.com) -- add installupgradeinitrd function and use it to install the upgrade initrds - (dennis@ausil.us) -- use installinitrd to install the upgrade.img initramfs so that we get correct - permissions (dennis@ausil.us) -- ppc and arm need to use kernel.upgrade not kernel.upgrader (dennis@ausil.us) -- remove upgrade from the sparc and sysylinux config templates - (dennis@ausil.us) -- Add the 'fedup' plymouth theme if available (wwoods@redhat.com) -- make templates install upgrade.img (wwoods@redhat.com) -- build fedup upgrade.img (wwoods@redhat.com) -- treebuilder: improve findkernels() initrd search (wwoods@redhat.com) -- treebuilder: add 'prefix' to rebuild_initrds() (wwoods@redhat.com) -- Add thai-scalable-waree-fonts (#872468) (mgracik@redhat.com) -- Do not remove the fipscheck package (#882153) (mgracik@redhat.com) -- Add MokManager.efi to EFI/BOOT (#882101) (mgracik@redhat.com) - -* Tue Nov 06 2012 Brian C. Lane 18.22-1 -- Install the yum-langpacks plugin (#868869) (jkeating@redhat.com) -- perl is required by some low-level tools on s390x (#868824) (dan@danny.cz) - -* Thu Oct 11 2012 Brian C. Lane 18.21-1 -- Change the install user's shell for tmux (jkeating@redhat.com) -- Set permissions on the initrd (#863018) (mgracik@redhat.com) -- Remove the default word from boot menu (#848676) (mgracik@redhat.com) -- Disable a whole bunch more keyboard shortcuts (#863823). (clumens@redhat.com) -- use /var/tmp instead of /tmp (bcl@redhat.com) -- remove rv from unmount error log (bcl@redhat.com) - -* Wed Sep 19 2012 Brian C. Lane 18.20-1 -- Remove grub 0.97 splash (bcl@redhat.com) -- livemedia-creator: use rd.live.image instead of liveimg (bcl@redhat.com) - -* Mon Sep 17 2012 Brian C. Lane 18.19-1 -- There's no lang-table in anaconda anymore (#857925) (mgracik@redhat.com) -- add convienience functions for running commands (bcl@redhat.com) -- restore CalledProcessError handling (bcl@redhat.com) -- add CalledProcessError to execWith* functions (bcl@redhat.com) -- live uses root not inst.stage2 (bcl@redhat.com) -- Revert "X needs the DRI drivers" (#855289) (bcl@redhat.com) - -* Fri Sep 07 2012 Brian C. Lane 18.18-1 -- Keep the dracut-lib.sh around for runtime (#851362) (jkeating@redhat.com) -- X needs the DRI drivers (#855289) (bcl@redhat.com) - -* Fri Aug 31 2012 Brian C. Lane 18.17-1 -- use inst.stage2=hd:LABEL (#848641) (bcl@redhat.com) -- Disable the maximize/unmaximize key bindings (#853410). (clumens@redhat.com) - -* Thu Aug 30 2012 Brian C. Lane 18.16-1 -- Revert "Mask the tmp.mount service to avoid tmpfs" (jkeating@redhat.com) - -* Thu Aug 23 2012 Brian C. Lane 18.15-1 -- change grub-cd.efi to gcdx64.efi (#851326) (bcl@redhat.com) -- use wildcard for product path to efi binaries (#851196) (bcl@redhat.com) -- Add yum-plugin-fastestmirror (#849797) (bcl@redhat.com) -- livemedia-creator: update templates for grub2-efi support (bcl@redhat.com) -- imgutils: fix umount retry handling (bcl@redhat.com) -- livemedia-creator: use stage2 instead of root (bcl@redhat.com) -- livemedia-creator: add location option (bcl@redhat.com) -- nm-connection-editor was moved to separate package (#849056) - (rvykydal@redhat.com) - -* Thu Aug 16 2012 Brian C. Lane 18.14-1 -- remove cleanup of some essential libraries (bcl@redhat.com) -- Mask the tmp.mount service to avoid tmpfs (jkeating@redhat.com) - -* Wed Aug 15 2012 Brian C. Lane 18.13-1 -- Add a command line option to override the ARM platform. (dmarlin@redhat.com) -- Don't remove krb5-libs (#848227) (mgracik@redhat.com) -- Add grub2-efi support and Secure Boot shim support. (pjones@redhat.com) -- Fix GPT code to allocate space for /2/ tables. (pjones@redhat.com) -- Add platforms to the treeinfo for Beaker support. (dmarlin@redhat.com) -- add logging to lorax (bcl@redhat.com) -- move live templates into their own subdir of share (bcl@redhat.com) -- clean up command execution (bcl@redhat.com) -- livemedia-creator: cleanup logging a bit (bcl@redhat.com) - -* Wed Jul 25 2012 Martin Gracik 18.12-1 -- Add 'mvebu' to list of recognized ARM kernels. (dmarlin@redhat.com) -- Cleanup boot menus (#809663) (mgracik@redhat.com) -- Don't remove chvt from the install image (#838554) (mgracik@redhat.com) -- Add llvm-libs (#826351) (mgracik@redhat.com) - -* Fri Jul 20 2012 Brian C. Lane 18.11-1 -- livemedia-creator: add some error checking (bcl@redhat.com) - -* Tue Jul 10 2012 Martin Gracik 18.10-1 -- Don't set a root= argument (wwoods@redhat.com) - Resolves: rhbz#837208 -- Don't remove the id tool (mgracik@redhat.com) - Resolves: rhbz#836493 -- Xauth is in bin (mgracik@redhat.com) - Resolves: rhbz#837317 -- Actually add plymouth to the initramfs (wwoods@redhat.com) -- don't use --prefix with dracut anymore (wwoods@redhat.com) -- newui requires checkisomd5 to run media check. (clumens@redhat.com) - -* Thu Jun 21 2012 Martin Gracik 18.9-1 -- Add initial support for ARM based systems (dmarlin) (mgracik@redhat.com) -- Add plymouth to the installer runtime (wwoods@redhat.com) -- add 'systemctl' command and use it in postinstall (wwoods@redhat.com) -- add dracut-shutdown.service (and its dependencies) (wwoods@redhat.com) -- leave pregenerated locale files (save RAM) (wwoods@redhat.com) -- runtime-cleanup: log broken symlinks being removed (wwoods@redhat.com) -- Add some documentation to LoraxTemplateRunner (wwoods@redhat.com) -- fix '-runcmd' and improve logging (wwoods@redhat.com) -- mkefiboot: add --debug (wwoods@redhat.com) -- pylorax.imgutils: add retry loop and "lazy" to umount() (wwoods@redhat.com) -- pylorax.imgutils: add debug logging (wwoods@redhat.com) -- pylorax: set up logging as recommended by logging module (wwoods@redhat.com) -- remove dmidecode (wwoods@redhat.com) -- clean up net-tools properly (wwoods@redhat.com) -- runtime-cleanup: correctly clean up kbd (wwoods@redhat.com) -- runtime-cleanup: correctly clean up iproute (wwoods@redhat.com) -- runtime-cleanup: drop a bunch of do-nothing removals (wwoods@redhat.com) -- Create missing /etc/fstab (wwoods@redhat.com) -- Fix systemd unit cleanup in runtime-postinstall (wwoods@redhat.com) -- Disable Alt+Tab in metacity (mgracik@redhat.com) -- Add pollcdrom module to dracut (bcl@redhat.com) - -* Wed Jun 06 2012 Martin Gracik 18.8-1 -- Check if selinux is enabled before getting the mode (mgracik@redhat.com) -- Add grub2 so that rescue is more useful (bcl@redhat.com) - -* Mon Jun 04 2012 Martin Gracik 18.7-1 -- Comment on why selinux needs to be in permissive or disabled - (mgracik@redhat.com) -- Verify the yum transaction (mgracik@redhat.com) -- Do not remove shared-mime-info (#825960) (mgracik@redhat.com) -- Add a --required switch to installpkg (mgracik@redhat.com) -- livemedia-creator: Hook up arch option (bcl@redhat.com) -- livemedia-creator: Add appliance creation (bcl@redhat.com) -- livemedia-creator: handle failed mount for ami (bcl@redhat.com) - -* Fri Jun 01 2012 Martin Gracik 18.6-1 -- Fix the rpm call (mgracik@redhat.com) -- Use selinux python module to get enforcing mode (mgracik@redhat.com) - -* Thu May 31 2012 Martin Gracik 18.5-1 -- Don't remove sha256sum from the install image (mgracik@redhat.com) -- Check if selinux is not in Enforcing mode (#824835) (mgracik@redhat.com) -- Install rpcbind (#824835) (mgracik@redhat.com) -- Remove hfsplus-tools dependency (#818913) (mgracik@redhat.com) -- Copy mapping and magic to BOOTDIR on ppc (#815550) (mgracik@redhat.com) -- Automatic commit of package [lorax] release [18.4-1]. (mgracik@redhat.com) - -* Fri May 25 2012 Martin Gracik 18.4-1 -- Initialized to use tito. -- Use gz not bz2 for source -- remove 'loadkeys' stub (#804306) -- add name field to .treeinfo its a concatination of family and version -- Fix typo in help (#819476) -- include the new cmsfs-fuse interface -- linuxrc.s390 is dead in anaconda -- Add the ppc magic file -- Install proper branding packages from repo (#813969) -- Use --mac for isohybrid only if doing macboot images -- Add --nomacboot option -- Add packages needed for NTP functionality in the installer -- livemedia-creator: check kickstart for display modes (#819660) -- livemedia-creator: Removed unused ImageMount class -- livemedia-creator: cleanup after a crash -- livemedia-creator: start using /var/tmp instead of /tmp -- livemedia-creator: make libvirt module optional -- stop moving /run (#818918) - -* Thu May 03 2012 Brian C. Lane 18.3-1 -- Added BCM4331 firmware (#817151) (mgracik) -- mkefiboot: Add support for disk label files (mjg) -- Add 'tmux' to runtime image (wwoods) -- Add /etc/sysctl.d/anaconda.conf, set kernel.printk=1 (#816022) (wwoods) -- reduce image size from 2GB to 1GB (wwoods) -- keep all filesystem tools (wwoods) -- Leave some of the grub2 utilities in the install image (#749323) (mgracik) -- add media check menu option (bcl) -- remove unneeded dracut bootargs (bcl) -- mkefiboot: Copy Mac bootloader, rather than linking it (mjg) -- Remove workdir if it was created by lorax (#807964) (mgracik) -- add gdisk to install image (#811083) (bcl) -- Don't use --allbut for xfsprogs cleanup (#804779) (mgracik) -- Log all removed files (mgracik) -- Add spice-vdagent to initrd (#804739) (mgracik) -- Add ntfs-3g to initrd (#804302) (mgracik) -- ntfs-3g now uses /usr/lib (#810039) (bcl) - -* Fri Mar 30 2012 Brian C. Lane 18.2-1 -- Merge noloader commits from f17-branch (bcl) -- mkefiboot: Make Apple boot images appear in the startup preferences (mjg) -- add symlink from /mnt/install -> /run/install (wwoods) -- Don't trash all the initscripts 'fedora*' services (wwoods) -- remove anaconda-copy-ks.sh (wwoods) -- add anaconda dracut module (wwoods) -- runtime-postinstall: remove references to loader (wwoods) -- runtime-postinstall: remove keymap stuff (wwoods) -- Add the icfg package (#771733) (mgracik) -- Log the output of mkfs (#769928) (mgracik) -- Fix product name replacing in templates (#799919) (mgracik) -- Fix requires (mgracik) -- use cache outside the installtree (bcl) -- add iscsi-initiator-utils (#804522) (bcl) -- livemedia-creator: update TreeBuilder use for isolabel (bcl) - -* Tue Mar 06 2012 Brian C. Lane 18.1-1 -- livemedia-creator: update README (bcl) -- example livemedia kickstart for ec2 (bcl) -- livemedia-creator: console=ttyS0 not /dev/ttyS0 (bcl) -- livemedia-creator: Add support for making ami images (bcl) -- Don't remove btrfs utils (#796511) (mgracik) -- Remove root and ip parameters from generic.prm (#796572) (mgracik) -- Check if the volume id is not longer than 32 chars (#786832) (mgracik) -- Add option to specify volume id on command line (#786834) (mgracik) -- Install nhn-nanum-gothic-fonts (#790266) (mgracik) -- Change the locale to C (#786833) (mgracik) -- iputils is small and required by dhclient-script (bcl) -- util-linux-ng is now util-linux (bcl) - -* Mon Feb 20 2012 Brian C. Lane 18.0-1 -- use --prefix=/run/initramfs when building initramfs (wwoods) -- dhclient-script needs cut and arping (bcl) -- Fix missing CalledProcessError import (bcl) -- metacity now depends on gsettings-desktop-schemas (bcl) -- Add findiso to grub config (mjg) -- add memtest to the boot.iso for x86 (#787234) (bcl) -- Don't use mk-s390-cdboot (dhorak) (mgracik) -- Add dracut args to grub.conf (bcl) -- Change the squashfs image section in .treeinfo (mgracik) -- Add path to squashfs image to the treeinfo (mgracik) -- Add runtime basename variable to the template (mgracik) -- use internal implementation of the addrsize utility (dan) -- Make sure var/run is not a symlink on s390x (#787217) (mgracik) -- Create var/run/dbus directory on s390x (#787217) (mgracik) - -* Wed Feb 08 2012 Brian C. Lane 17.3-1 -- keep convertfs.sh script in image (#787893) (bcl) -- Add dracut convertfs module (#787893) (bcl) -- fix templates to work with F17 usrmove (tflink) -- changing hfs to hfsplus so that the correct mkfs binary is called (tflink) -- Add luks, md and dm dracut args to bootloaders (bcl) -- update lorax and livemedia_creator to use isfinal (bcl) -- lorax: copy kickstarts into sysroot (#743135) (bcl) -- livemedia-creator: Mount iso if rootfs is LiveOS (bcl) -- Log output of failed command (mgracik) -- Add packages required for gtk3 and the new anaconda UI. (clumens) - -* Thu Jan 12 2012 Martin Gracik 17.2-1 -- Allow specifying buildarch on the command line (#771382) (mgracik) -- lorax: Don't touch /etc/mtab in cleanup (bcl) -- Update TODO and POLICY to reflect the current state of things (wwoods) -- consider %ghost files part of the filelists in templates (wwoods) -- lorax: Add option to exclude packages (bcl) -- dracut needs kbd directories (#769932) (bcl) -- better debug, handle relative output paths (bcl) - -* Wed Dec 21 2011 Brian C. Lane 17.1-1 -- lorax: check for output directory early and quit (bcl) -- lorax: Add --proxy command (bcl) -- lorax: add --config option (bcl) -- Modify spec file for livemedia-creator (bcl) -- Add no-virt mode to livemedia-creator (bcl) -- Add livemedia-creator README and example ks (bcl) -- Add config files for live media (bcl) -- Add livemedia-creator (bcl) -- Allow a None to be passed as size to create_runtime (bcl) -- Add execWith utils from anaconda (bcl) -- Changes needed for livecd creation (bcl) -- dracut has moved to /usr/bin (bcl) - -* Mon Oct 21 2011 Will Woods 17.0-1 -- Merges the 'treebuilder' branch of lorax -- images are split into two parts again (initrd.img, LiveOS/squashfs.img) -- base memory use reduced to ~200M (was ~550M in F15, ~320MB in F16) -- initrd.img is now built by dracut -- booting now requires correct "root=live:..." argument -- boot.iso is EFI hybrid capable (copy iso to USB stick, boot from EFI) -- Better support for Apple EFI (now with custom boot icon!) -- new syslinux config (#734170) -- add fpaste to installer environment (#727842) -- rsyslog.conf: hardcode hostname for virtio forwarding (#744544) -- Use a predictable ISO Volume Label (#732298) -- syslinux-vesa-splash changed filename (#739345) -- don't create /etc/sysconfig/network (#733425) -- xauth and libXmu are needed for ssh -X (#731046) -- add libreport plugins (#729537), clean up libreport -- keep nss certs for libreport (#730438) -- keep ModemManager (#727946) -- keep vmmouse binaries (#723831) -- change isbeta to isfinal, default to isFinal=False (#723901) -- use pungi's installroot rather than making our own (#722481) -- keep ntfsresize around (#722711) -- replace cjkuni-uming-fonts with wqy-microhei-fonts (#709962) -- install all firmware packages (#703291, #705392) -- keep libmodman and libproxy (#701622) -- write the lorax verion in the .buildstamp (#689697) -- disable rsyslogd rate limiting on imuxsock (#696943) -- disable debuginfo package - -* Wed Apr 13 2011 Martin Gracik 0.5-1 -- Remove pungi patch -- Remove pseudo code -- Add a /bin/login shim for use only in the installation environment. -- Set the hostname from a config file, not programmatically. -- Add systemd and agetty to the installation environment. -- Specify "cpio -H newc" instead of "cpio -c". -- Provide shutdown on s390x (#694518) -- Fix arch specific requires in spec file -- Add s390 modules and do some cleanup of the template -- Generate ssh keys on s390 -- Don't remove tr, needed for s390 -- Do not check if we have all commands -- Change location of addrsize and mk-s390-cdboot -- Shutdown is in another location -- Do not skip broken packages -- Don't install network-manager-netbook -- Wait for subprocess to finish -- Have to call os.makedirs -- images dir already exists, we just need to set it -- Do not remove libassuan. -- The biarch is a function not an attribute -- Create images directory in outputtree -- Use gzip on ppc initrd -- Create efibootdir if doing efi images -- Get rid of create_gconf(). -- gconf/metacity: have only one workspace. -- Add yum-langpacks yum plugin to anaconda environment (notting) -- Replace variables in yaboot.conf -- Add sparc specific packages -- Skip keymap creation on s390 -- Copy shutdown and linuxrc.s390 on s390 -- Add packages for s390 -- Add support for sparc -- Use factory to get the image classes -- treeinfo has to be addressed as self.treeinfo -- Add support for s390 -- Add the xen section to treeinfo on x86_64 -- Fix magic and mapping paths -- Fix passing of prepboot and macboot arguments -- Small ppc fixes -- Check if the file we want to remove exists -- Install x86 specific packages only on x86 -- Change the location of zImage.lds -- Added ppc specific packages -- memtest and efika.forth are in /boot -- Add support for ppc -- Minor sparc pseudo code changes -- Added sparc pseudo code (dgilmore) -- Added s390 and x86 pseudo code -- Added ppc pseudo code - -* Mon Mar 14 2011 Martin Gracik 0.4-1 -- Add the images-xen section to treeinfo on x86_64 -- Print a message when no arguments given (#684463) -- Mako template returns unicode strings (#681003) -- The check option in options causes ValueError -- Disable all ctrl-alt-arrow metacity shortcuts -- Remove the locale-archive explicitly -- Use xz when compressing the initrd -- Keep the source files for locales and get rid of the binary form -- Add /sbin to $PATH (for the tty2 terminal) -- Create /var/run/dbus directory in installtree -- Add mkdir support to template -- gpart is present only on i386 arch (#672611) -- util-linux-ng changed to util-linux - -* Mon Jan 24 2011 Martin Gracik 0.3-1 -- Don't remove libmount package -- Don't create mtab symlink, already exists -- Exit with error if we have no lang-table -- Fix file logging -- Overwrite the /etc/shadow file -- Use [images-xen] section for PAE and xen kernels - -* Fri Jan 14 2011 Martin Gracik 0.2-2 -- Fix the gnome themes -- Add biosdevname package -- Edit .bash_history file -- Add the initrd and kernel lines to .treeinfo -- Don't remove the gamin package from installtree - -* Wed Dec 01 2010 Martin Gracik 0.1-1 -- First packaging of the new lorax tool. diff --git a/pungi/0001-Set-repository-gpgkey-option.patch b/pungi/0001-Set-repository-gpgkey-option.patch deleted file mode 100644 index 44f2c41b..00000000 --- a/pungi/0001-Set-repository-gpgkey-option.patch +++ /dev/null @@ -1,76 +0,0 @@ -From adbdc84c60045ca647a739a0818a6f46347772d7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Fri, 7 Aug 2015 03:39:17 +0200 -Subject: [PATCH 1/2] Set repository gpgkey option -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -Handle "repo --gpgkey" in kickstart to verify downloaded packages - -Especially important for lorax - packages will not verified there in -any way without setting yum options here. - -Signed-off-by: Marek Marczykowski-Górecki ---- - pungi/gather.py | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/pungi/gather.py b/pungi/gather.py -index bcc2861..a5c9df9 100644 ---- a/pungi/gather.py -+++ b/pungi/gather.py -@@ -281,7 +281,7 @@ class Pungi(PungiBase): - - def _add_yum_repo(self, name, url, mirrorlist=False, groups=True, - cost=1000, includepkgs=None, excludepkgs=None, -- proxy=None): -+ proxy=None, gpgkey=None): - """This function adds a repo to the yum object. - name: Name of the repo - url: Full url to the repo -@@ -318,6 +318,10 @@ class Pungi(PungiBase): - thisrepo.exclude = excludepkgs - thisrepo.includepkgs = includepkgs - thisrepo.cost = cost -+ if gpgkey: -+ thisrepo.gpgcheck = True -+ thisrepo.gpgkey = yum.parser.varReplace(gpgkey, -+ self.ayum.conf.yumvar) - # Yum doesn't like proxy being None - if proxy: - thisrepo.proxy = proxy -@@ -349,6 +353,7 @@ class Pungi(PungiBase): - yumconf.installroot = os.path.join(self.workdir, 'yumroot') - yumconf.uid = os.geteuid() - yumconf.cache = 0 -+ yumconf.assumeyes = True - yumconf.failovermethod = 'priority' - yumconf.deltarpm = 0 - yumvars = yum.config._getEnvVar() -@@ -379,7 +384,8 @@ class Pungi(PungiBase): - cost=repo.cost, - includepkgs=repo.includepkgs, - excludepkgs=repo.excludepkgs, -- proxy=repo.proxy) -+ proxy=repo.proxy, -+ gpgkey=repo.gpgkey) - else: - self._add_yum_repo(repo.name, repo.baseurl, - mirrorlist=False, -@@ -387,7 +393,8 @@ class Pungi(PungiBase): - cost=repo.cost, - includepkgs=repo.includepkgs, - excludepkgs=repo.excludepkgs, -- proxy=repo.proxy) -+ proxy=repo.proxy, -+ gpgkey=repo.gpgkey) - - self.logger.info('Getting sacks for arches %s' % self.valid_arches) - self.ayum._getSacks(archlist=self.valid_arches) --- -2.1.0 - diff --git a/pungi/0002-Verify-downloaded-packages.patch b/pungi/0002-Verify-downloaded-packages.patch deleted file mode 100644 index ad9b3ec7..00000000 --- a/pungi/0002-Verify-downloaded-packages.patch +++ /dev/null @@ -1,44 +0,0 @@ -From b6947894de2874b03467e02ae735ccef3ec554d3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Tue, 29 Sep 2015 14:07:25 +0200 -Subject: [PATCH 2/2] Verify downloaded packages -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -Signed-off-by: Marek Marczykowski-Górecki ---- - pungi/gather.py | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/pungi/gather.py b/pungi/gather.py -index a5c9df9..66212d2 100644 ---- a/pungi/gather.py -+++ b/pungi/gather.py -@@ -1103,6 +1103,20 @@ class Pungi(PungiBase): - sys.exit(1) - - for po in polist: -+ # before doing anything with the package, verify its signature -+ result, errmsg = self.ayum.sigCheckPkg(po) -+ if result == 0: -+ # Verified ok, or verify not req'd -+ pass -+ elif result == 1: -+ # keys are provided through kickstart, so treat this as consent -+ # for importing them -+ self.ayum.getKeyForPackage(po, lambda x, y, z: True) -+ else: -+ # Fatal error -+ self.logger.error(errmsg) -+ sys.exit(1) -+ - basename = os.path.basename(po.relativepath) - - local = po.localPkg() --- -2.1.0 - diff --git a/pungi/Hacky-way-to-pass-gpgkey-to-lorax.patch b/pungi/Hacky-way-to-pass-gpgkey-to-lorax.patch deleted file mode 100644 index 3e7a81fc..00000000 --- a/pungi/Hacky-way-to-pass-gpgkey-to-lorax.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 3599db0a7bb047ac482eef45b0885ff8d8318d8f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Wed, 20 Apr 2016 03:06:02 +0200 -Subject: [PATCH] Hacky way to pass gpgkey to lorax -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -Since lorax is running in separate process, it no longer use repo -objects initialized by pungi. Because of this, gpgkey+gpgcheck must be -passed down some other way. Appending it to the repository URL is awful, -but is effective: - - if lorax version used doesn't support verification, it will fail - (good) - - it binds key to the repository - -Signed-off-by: Marek Marczykowski-Górecki ---- - pungi/gather.py | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/pungi/gather.py b/pungi/gather.py -index 66212d2..6be45e6 100644 ---- a/pungi/gather.py -+++ b/pungi/gather.py -@@ -1413,15 +1413,16 @@ class Pungi(PungiBase): - pass - - for repo in self.ksparser.handler.repo.repoList: -+ url_suffix = '({})'.format(repo.gpgkey) if repo.gpgkey else '' - if repo.mirrorlist: - # The not bool() thing is because pykickstart is yes/no on - # whether to ignore groups, but yum is a yes/no on whether to - # include groups. Awkward. - repo.mirrorlist = yum.parser.varReplace(repo.mirrorlist, self.ayum.conf.yumvar) -- cmd.extend(["--mirrorlist", repo.mirrorlist]) -+ cmd.extend(["--mirrorlist", repo.mirrorlist + url_suffix]) - else: - repo.baseurl = yum.parser.varReplace(repo.baseurl, self.ayum.conf.yumvar) -- cmd.extend(["--source", repo.baseurl]) -+ cmd.extend(["--source", repo.baseurl + url_suffix]) - - # Add the repo in the destdir to our yum object - cmd.extend(["--source", "file://%s" % self.topdir]) --- -2.1.0 - diff --git a/pungi/disable-efi.patch b/pungi/disable-efi.patch deleted file mode 100644 index 9e189077..00000000 --- a/pungi/disable-efi.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- pungi-3.03/pungi/gather.py.orig 2013-12-07 23:25:33.790299986 +0100 -+++ pungi-3.03/pungi/gather.py 2013-12-07 23:27:06.347452833 +0100 -@@ -1528,7 +1528,8 @@ - - if self.tree_arch == 'i386' or self.tree_arch == 'x86_64': - extraargs.extend(x86bootargs) -- if self.tree_arch == 'x86_64': -+ if self.tree_arch == 'x86_64' and \ -+ os.path.exists(os.path.join(self.topdir, 'images', 'efiboot.img')): - extraargs.extend(efibootargs) - isohybrid.append('-u') - if os.path.exists(os.path.join(self.topdir, 'images', 'macboot.img')): diff --git a/pungi/disable-upgrade.patch b/pungi/disable-upgrade.patch deleted file mode 100644 index 00384c1b..00000000 --- a/pungi/disable-upgrade.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pungi-3.12/pungi/__init__.py.orig 2015-03-23 13:24:45.173223580 +0100 -+++ pungi-3.12/pungi/__init__.py 2015-03-23 13:24:59.222835656 +0100 -@@ -1411,7 +1411,7 @@ - - lorax.run(self.ayum, product=product, version=version, release=release, - variant=variant, bugurl=bugurl, isfinal=isfinal, domacboot=domacboot, -- workdir=workdir, outputdir=outputdir, volid=volid, installpkgs=installpkgs) -+ workdir=workdir, outputdir=outputdir, volid=volid, installpkgs=installpkgs, doupgrade=False) - - # write out the tree data for snake - self.writeinfo('tree: %s' % self.mkrelative(self.topdir)) diff --git a/pungi/fix-recursive-partition-table-on-iso-image.patch b/pungi/fix-recursive-partition-table-on-iso-image.patch deleted file mode 100644 index 8760cfdd..00000000 --- a/pungi/fix-recursive-partition-table-on-iso-image.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fd10f83c9384016f0f557892b187c538e9656c38 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Thu, 17 Apr 2014 00:22:32 +0200 -Subject: [PATCH] Fix recursive partition table on iso image -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -See https://bugs.mageia.org/show_bug.cgi?id=5036 - -Signed-off-by: Marek Marczykowski-Górecki ---- - src/pypungi/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/pypungi/__init__.py b/src/pypungi/__init__.py -index 67f4663..3fcd4c9 100644 ---- a/src/pypungi/__init__.py -+++ b/src/pypungi/__init__.py -@@ -1498,7 +1498,7 @@ class Pungi(pypungi.PungiBase): - - ppcbootargs.append('-hfs-bless') # must be last - -- isohybrid = ['/usr/bin/isohybrid'] -+ isohybrid = ['/usr/bin/isohybrid', '-o', '1'] - - # Check the size of the tree - # This size checking method may be bunk, accepting patches... --- -1.8.3.1 - diff --git a/pungi/pungi-4.1.14.tar.bz2 b/pungi/pungi-4.1.14.tar.bz2 deleted file mode 100644 index 944f1aa1..00000000 Binary files a/pungi/pungi-4.1.14.tar.bz2 and /dev/null differ diff --git a/pungi/pungi.spec b/pungi/pungi.spec deleted file mode 100644 index 373e79a1..00000000 --- a/pungi/pungi.spec +++ /dev/null @@ -1,933 +0,0 @@ -Name: pungi -Version: 4.1.14 -Release: 2%{?dist} -Epoch: 1000 -Summary: Distribution compose tool - -Group: Development/Tools -License: GPLv2 -URL: https://pagure.io/pungi -Source0: https://pagure.io/releases/%{name}/%{name}-%{version}.tar.bz2 -Patch1: 0001-Set-repository-gpgkey-option.patch -Patch2: 0002-Verify-downloaded-packages.patch -Patch3: disable-efi.patch -Patch4: Hacky-way-to-pass-gpgkey-to-lorax.patch -#Patch5: fix-recursive-partition-table-on-iso-image.patch -#Patch6: disable-upgrade.patch -BuildRequires: python-nose, python-mock -BuildRequires: python-devel, python-setuptools, python2-productmd >= 1.3 -BuildRequires: python-lockfile, kobo, kobo-rpmlib, python-kickstart, createrepo_c -BuildRequires: python-lxml, libselinux-python, yum-utils, lorax, python-rpm -BuildRequires: yum => 3.4.3-28, createrepo >= 0.4.11 -BuildRequires: gettext, git-core, cvs -BuildRequires: python-jsonschema -BuildRequires: python-enum34 -BuildRequires: python2-dnf -BuildRequires: python2-multilib - -#deps for doc building -BuildRequires: python-sphinx, texlive-latex-bin-bin, texlive-collection-fontsrecommended -BuildRequires: texlive-times, texlive-cmap, texlive-babel-english, texlive-fancyhdr -BuildRequires: texlive-fancybox, texlive-titlesec, texlive-framed, texlive-threeparttable -BuildRequires: texlive-mdwtools, texlive-wrapfig, texlive-parskip, texlive-upquote -BuildRequires: texlive-multirow, texlive-capt-of, texlive-eqparbox, tex(color.cfg) -BuildRequires: tex(fncychap.sty) -BuildRequires: tex(tabulary.sty) - -Requires: createrepo >= 0.4.11 -Requires: yum => 3.4.3-28 -Requires: lorax >= 22.1 -Requires: repoview -Requires: python-lockfile -Requires: kobo -Requires: kobo-rpmlib -Requires: python-productmd >= 1.3 -Requires: python-kickstart -Requires: libselinux-python -Requires: createrepo_c -Requires: python-lxml -Requires: koji >= 1.10.1-13 -# This is optional do not Require it -#eRquires: jigdo -Requires: cvs -Requires: yum-utils -Requires: isomd5sum -Requires: genisoimage -Requires: gettext -# this is x86 only -#Requires: syslinux -Requires: git -Requires: python-jsonschema -Requires: python-enum34 -Requires: python2-dnf -Requires: python2-multilib - -BuildArch: noarch - -%description -A tool to create anaconda based installation trees/isos of a set of rpms. - -%package utils -Summary: Utilities for working with finished composes -Requires: pungi = %{version}-%{release} - -%description utils -These utilities work with finished composes produced by Pungi. They can be used -for creating unified ISO images, validating config file or sending progress -notification to Fedora Message Bus. - - -%prep -%setup -q - -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -#%%patch5 -p1 -#%%patch6 -p1 - -%build -%{__python} setup.py build -cd doc -make latexpdf -make epub -make text -make man -gzip _build/man/pungi.1 - -%install -%{__python} setup.py install -O1 --skip-build --root %{buildroot} -%{__install} -d %{buildroot}/var/cache/pungi -%{__install} -d %{buildroot}%{_mandir}/man1 -%{__install} -m 0644 doc/_build/man/pungi.1.gz %{buildroot}%{_mandir}/man1 - -%check -nosetests --exe -./tests/data/specs/build.sh -cd tests && ./test_compose.sh - -%files -%license COPYING GPL -%doc AUTHORS doc/_build/latex/Pungi.pdf doc/_build/epub/Pungi.epub doc/_build/text/* -%{python_sitelib}/%{name} -%{python_sitelib}/%{name}-%{version}-py?.?.egg-info -%{_bindir}/%{name} -%{_bindir}/%{name}-koji -%{_bindir}/%{name}-gather -%{_bindir}/comps_filter -%{_bindir}/%{name}-make-ostree -%{_mandir}/man1/pungi.1.gz -%{_datadir}/pungi -/var/cache/pungi - -%files utils -%{python_sitelib}/%{name}_utils -%{_bindir}/%{name}-create-unified-isos -%{_bindir}/%{name}-config-validate -%{_bindir}/%{name}-fedmsg-notification -%{_bindir}/%{name}-patch-iso -%{_bindir}/%{name}-compare-depsolving - -%changelog -* Tue Mar 28 2017 Lubomír Sedlář - 4.1.14-1 -- Not create empty skeleton dirs for empty variants (qwan) -- Query only active modules in PDC. (jkaluza) -- Save modules metadata as full yaml object (jkaluza) -- Implement DNF based depsolving (dmach, mmraka, lsedlar) -- Add support for modular composes (jkaluza) -- Add a script for modifying ISO images (lsedlar) -- iso-wrapper: Add utility for mounting images (lsedlar) -- buildinstall: Move tweaking configs into a function (lsedlar) -- image-build: Correctly write can_fail option (lsedlar) -- pungi-koji: new cmd option '--latest-link-status' (qwan) -- Print task ID for successful tasks (lsedlar) -- ostree-installer: Fix logging directory (lsedlar) -- buildinstall: Print debug info if unmount fails (lsedlar) -- pkgset: report all unsigned packages (qwan) -- default createrepo_checksum to sha256 (qwan) -- unified-iso: Log better error when linking fails (lsedlar) -- unified-iso: Blacklist extra files metadata (lsedlar) -- buildinstall: Retry unmounting image (lsedlar) -- Remove indices from documentation (lsedlar) -- iso-wrapper: Handle wrong implant md5 (lsedlar) -- image-build: Remove check for number of images (lsedlar) -- Extract only first version from specfile (lsedlar) -- consolidate repo option names (qwan) -- checks: extend validator with 'alias' (qwan) -- osbs: write manifest for scratch osbs (qwan) - -* Mon Mar 06 2017 Lubomír Sedlář - 4.1.13-2 -- Remove check for number of images - -* Mon Mar 06 2017 Lubomír Sedlář - 4.1.13-1 -- Make MANIFEST.in stricter (qwan) -- Remove one line of log print (qwan) -- gather: Filter comps group on depsolving input of optional (lsedlar) -- Enable customizing runroot task weight (lsedlar) -- comps: Filter comps groups for optional variants (lsedlar) -- Rename main logger (lsedlar) -- ostree: Silence logger in tests (lsedlar) -- ostree: Fix crash when extra repos are missing (lsedlar) -- util: Add a utility for managing temporary files (lsedlar) -- Add --quiet option to pungi-koji (qwan) -- handle opening empty images.json while re-running pungi-koji in debug mode - (qwan) -- minor change: remove an always true condition (qwan) -- Refactor depsolving tests (lsedlar) -- multilib: Remove FileMultilibMethod class (lsedlar) -- pkgset: Use additional packages for initial pull (lsedlar) -- metadata: Fix .treeinfo paths for addons (lsedlar) -- koji_wrapper: Always use --profile option with koji (lsedlar) -- add missing koji_profile from test compose setting (dennis) -- use koji --profile when calling koji for livemedia (dennis) -- repoclosure: Don't run build deps check (lsedlar) -- repoclosure: add option to use dnf backend (lsedlar) -- repoclosure: Add test for repoclosure in test phase (lsedlar) -- repoclosure: Remove duplicated code (lsedlar) -- repoclosure: Remove useless wrapper class (lsedlar) -- repoclosure: Remove unused code (lsedlar) -- repoclosure: Add a test for the wrapper (lsedlar) -- image-build: Pass arches around as a list (lsedlar) -- image-build: Expand arches for can_fail (lsedlar) -- image_checksum: add file sizes to checksum files (qwan) -- Add documentation and example for greedy_method (lsedlar) -- replace ${basearch} when updating the ref (dennis) -- Add some debugging about ref updating (puiterwijk) - -* Sat Feb 11 2017 Fedora Release Engineering - 4.1.12-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Jan 24 2017 Dennis Gilmore - 4.1.12-4 -- add patches for pagure pr#517 - -* Tue Jan 17 2017 Dennis Gilmore - 4.1.12-3 -- add patch to replace ${basearch} in the ostree ref - -* Tue Jan 17 2017 Dennis Gilmore - 4.1.12-2 -- add patch from Patrick to give us some ostree debuging - -* Tue Jan 17 2017 Lubomír Sedlář - 4.1.12-1 -- unified-iso: Fall back to default config (lsedlar) -- osbs: optionally check GPG signatures (qwan) -- ostree-installer: Allow multiple repos in ostree installer (qwan) -- Update tox.ini (lsedlar) -- unified-iso: Create isos with debuginfo packages (lsedlar) -- Create temporary dirs under compose's workdir (qwan) -- spec: Update upstream and source URL (lsedlar) -- unified-iso: Create work/ dir if missing (lsedlar) -- spec: Copy %%check section from Fedora (lsedlar) -- Update MANIFEST.in to include test data (lsedlar) -- osbs: Add better example to documentation (lsedlar) -- metadata: Correctly parse lorax .treeinfo (lsedlar) -- spec: Add a separate subpackage for extra utils (lsedlar) -- Add script to generate unified ISOs (lsedlar) -- osbs: Validate config in tests (lsedlar) -- osbs: Verify the .repo files contain correct URL (lsedlar) -- osbs: Enable specifying extra repos (lsedlar) -- pungi-make-ostree: change 'tree' command '--log-dir' arg to be required - (qwan) -- Add test for krb_login with principal and keytab (puiterwijk) -- Make sure that the profile name is parsed correctly (puiterwijk) -- Make KojiWrapper support krb_login with keytab (puiterwijk) -- Make KojiWrapper parse krb_rdns (puiterwijk) -- Update documentation (lsedlar) -- image-build: Allow failure only on some arches (lsedlar) -- live-media: Allow some arches to fail (lsedlar) -- image-build: Use install_tree from parent for nested variants (lsedlar) -- config: Report unknown options as warnings (lsedlar) -- pungi: Fix --nosource option (lsedlar) -- pungi: Handle missing SRPM (lsedlar) -- ostree-installer: Add 'installer' sub-command to pungi-make-ostree (qwan) -- ostree: Add 'tree' sub-command to pungi-make-ostree script (qwan) -- metadata: Allow creating internal releases (lsedlar) -- Add CLI option to create ci compose (lsedlar) -- Fix PhaseLoggerMixin in case of compose has _logger = None (qwan) -- ostree-installer: Use dvd-ostree as type in metadata (lsedlar) -- image-build: Reduce duplication (lsedlar) -- createrepo: Add tests for adding product certificates (lsedlar) -- createrepo: Add tests for retrieving product certificates (lsedlar) -- Include phase name in log for some phases (qwan) -- Expose lorax's --rootfs-size argument (walters) -- pungi: Include noarch debuginfo (lsedlar) -- media-split: Print sensible message for unlimited size (lsedlar) - -* Wed Dec 14 2016 Lubomír Sedlář - 4.1.11-4 -- Add patches for koji kerberos auth - -* Thu Dec 08 2016 Lubomír Sedlář - 4.1.11-3 -- Backport patches for ostree installer - -* Mon Nov 21 2016 Lubomír Sedlář - 4.1.11-2 -- Add missing dependency on libguestfs-tools-c - -* Tue Nov 15 2016 Dennis Gilmore - 4.1.11-1 -- [ostree] Allow extra repos to get packages for composing OSTree repository - (qwan) -- pungi: Run in-process for testing (lsedlar) -- pungi: Only add logger once (lsedlar) -- pungi: Connect yum callback to logger (lsedlar) -- extra-files: Nice error message on missing RPM (lsedlar) -- compose: Drop unused argument (lsedlar) -- compose: Search all nested variants (lsedlar) -- ostree-installer: Capture all lorax logs (lsedlar) -- lorax-wrapper: Put all log files into compose logs (lsedlar) -- pungi: Fix reading multilib config files (lsedlar) -- pungi: Fulltree should not apply for input multilib package (lsedlar) -- pungi: Add tests for depsolving (lsedlar) -- Update ostree phase documentation (lsedlar) -- [ostree] Allow adding versioning metadata (qwan) - (lubomir.sedlar) -- [ostree] New option to enable generating ostree summary file (qwan) -- pungi: Avoid removing from list (lsedlar) -- pungi: Allow globs in %%multilib-whitelist (dmach) -- pungi: Exclude RPMs that are in lookaside (dmach) -- pungi: Fix excluding SRPMs (dmach) -- pungi: Speed up blacklist processing (dmach) -- Update tests to use ostree write-commit-id (puiterwijk) -- ostree: Use the write-commitid-to feature rather than parsing ostree logs - (puiterwijk) -- checks: Check for createrepo_c (lsedlar) -- checks: Update tests to not require python modules (lsedlar) -- Remove executable permissions on test scripts (puiterwijk) -- Add more require checks (puiterwijk) -- Fix package name for createrepo and mergerepo (puiterwijk) -- not using 'git -C path' which is not supported by git 1.x (qwan) -- pungi-koji: add option for not creating latest symbol link (qwan) -- Replace mount/umount with guestfsmount and 'fusermount -u' (qwan) -- config: Don't abort on deprecated options (lsedlar) -- metadata: Treeinfo should point to packages and repo (lsedlar) -- Send notification when compose fails to start (lsedlar) -- metadata: Stop crashing for non-bootable products (lsedlar) -- createiso: Do not split bootable media (lsedlar) -- doc: Fix a typo in progress notification example (lsedlar) -- Dump images.json after checksumming (lsedlar) -- metadata: Correctly clone buildinstall .treeinfo (lsedlar) -- createiso: Include layered product name in iso name (lsedlar) -- buildinstall: Only transform arch for lorax (lsedlar) -- iso-wrapper: Remove the class (lsedlar) -- config: Validate variant regular expressions (lsedlar) - -* Sat Oct 08 2016 Dennis Gilmore - 4.1.10-1 -- pungi: Replace kickstart repo url (mark) -- ostree-installer: Reduce duplication in tests (lsedlar) -- ostree-installer: Generate correct volume ID (lsedlar) -- ostree-installer: Use ostree as type in filename (lsedlar) -- ostree: Use $basearch in repo file (lsedlar) -- config: Accept empty branch in SCM dict (lsedlar) -- Remove duplicated version from pungi script (lsedlar) -- use --new-chroot when making ostree's (dennis) -- Create git tags without release (lsedlar) -- Translate paths without double slash (lsedlar) -- Remove shebangs from non-executable files (lsedlar) -- Remove FSF address from comments (lsedlar) -- Update contributing guide (lsedlar) -- init: Remove keep_original_comps option (lsedlar) -- tests: Use unittest2 consistently (lsedlar) - -* Thu Sep 29 2016 Dennis Gilmore - 4.1.9-2 -- add patch to enable use of --new-chroot for ostree tasks - -* Wed Sep 21 2016 Lubomír Sedlář - 4.1.9-1 -- ostree_installer: Add --isfinal lorax argument (lsedlar) -- Recreate JSON dump of configuration (lsedlar) -- Merge #385 `Test and clean up pungi.linker` (dennis) -- Merge #390 `checksums: Never skip checksumming phase` (dennis) -- variants: Allow multiple explicit optional variants (lsedlar) -- checksums: Never skip checksumming phase (lsedlar) -- [linker] Remove dead code (lsedlar) -- [linker] Add tests (lsedlar) -- Dump original pungi conf (cqi) -- ostree: Add tests for sending ostree messages (lsedlar) -- Send fedmsg message on ostree compose finishg (puiterwijk) -- createrepo: Add option to use xz compression (lsedlar) -- Allow user to set a ~/.pungirc for some defaults (riehecky) -- metadata: Improve error reporting on failed checksum (lsedlar) -- extra-files: Write a metadata file enumerating extra files (jeremy) -- Merge #381 `Automatically generate missing image version` (dennis) -- Automatically generate missing image version (lsedlar) -- Add JSON Schema for configuration (lsedlar) -- Allow arbitrary arguments in make test (lsedlar) -- createiso: Report nice error when tag does not exist (lsedlar) -- Fix test data build script (lsedlar) -- [osbs] Add NVRA of created image into main log (lsedlar) -- [createiso] Remove unused script (lsedlar) -- Update doc about generating release value (lsedlar) -- Use label to populate image release (lsedlar) -- doc: Fix example for image_build (lsedlar) -- Ignore module imports not at top of file (lsedlar) -- Merge #367 `Remove unused imports` (dennis) -- [buildinstall] Fix cleaning output dir (lsedlar) -- Remove unused imports (lsedlar) -- Merge #360 `[osbs] Convert build_id to int` (dennis) -- Merge #361 `Fix config validation script` (dennis) -- Merge #365 `Make image test at end of compose less strict` (dennis) -- [test] Make image test at end of compose less strict (lsedlar) -- [iso] Fix check on failable ISO (lsedlar) -- Add full Pungi version to log output (lsedlar) -- Fix config validation script (lsedlar) -- [osbs] Convert build_id to int (lsedlar) -- [image-build] Get failable config from correct place (lsedlar) - -* Wed Aug 10 2016 Dennis Gilmore - 4.1.8-1 -- [createiso] Use shell script for runroot (lsedlar) -- Merge #357 `Improve error messages for gathering packages` (dennis) -- [test] Only check bootability for images on x86_64 and i386 (lsedlar) -- Improve error messages for gathering packages (lsedlar) -- Merge #339 `Refactor failables, step 1` (dennis) -- Refactor failables (lsedlar) -- Stop setting release in OSBS phase (lsedlar) -- Merge #351 `Remove ambiguous imports` (dennis) -- [test] Correctly check bootable ISOs (lsedlar) -- Remove ambiguous imports (lsedlar) -- Merge #347 `Remove duplicate definition of find_old_composes.` - (lubomir.sedlar) -- Merge #342 `Simplify naming format placeholders` (dennis) -- Merge #345 `createrepo: use separate logs for different pkg_type` (dennis) -- Remove duplicate definition of find_old_composes... (rbean) -- [createrepo] fix 'createrepo_deltas' option (qwan) -- createrepo: use separate logs for different pkg_type (lsedlar) -- Simplify naming format placeholders (lsedlar) -- Treat variants without comps groups as having all of them (lsedlar) -- Always generate rpms.json file (lsedlar) - -* Tue Jul 19 2016 Fedora Release Engineering - 4.1.7-2 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Thu Jun 23 2016 Dennis Gilmore - 4.1.7-1 -- [scm] Add logging for exporting local files (lsedlar) -- [extra-files] Only copy files when there is a config (lsedlar) -- [extra-files] Refactoring (lsedlar) -- [extra-files] Skip whole phase if not configured (lsedlar) -- [extra-files] Copy files using existing function (lsedlar) -- [extra-files] Add tests (lsedlar) -- [osbs] Add a phase to build images in OSBS (lsedlar) -- Setup global log file before logging anything (lsedlar) -- [metadata] Correctly save final flag (lsedlar) -- Merge #326 `add missing dependencies` (dennis) -- [createiso] Add test for adding source iso to metadata (lsedlar) -- Merge #325 `Fix checking optional ISO images in test phase` (dennis) -- Merge #321 `Add support for top-level variant IDs with dashes.` (dennis) -- Merge #320 `images.json: Move src images under binary arches.` (dennis) -- add missing dependencies (nils) -- Fix checking optional ISO images in test phase (lsedlar) -- add lxml dependency (nils) -- images.json: Move src images under binary arches. (dmach) -- Add support for top-level variant IDs with dashes. (dmach) -- Fix PYTHONPATH usage in test_compose.sh. (dmach) -- [createiso] Enable customizing media reserve (lsedlar) -- [createiso] Add test for splitting media (lsedlar) -- [media-split] Remove commented-out code (lsedlar) -- [media-split] Simplify code (lsedlar) -- [media-split] Add code documentation (lsedlar) -- [media-split] Add unit tests (lsedlar) -- Add missing documentation (lsedlar) -- [buildinstall] Fix bad error message (lsedlar) -- Merge #309 `Add compatibility for Python 2.6` (dennis) -- Merge #293 `Add tests for generating discinfo and media.repo files` (dennis) -- Merge #287 `Use koji profiles to list RPMs in buildroot` (dennis) -- [ostree-installer] Put images to os/ directory (lsedlar) -- [ostree] Rename duplicated test (lsedlar) -- [util] Use koji profile for getting RPMs from buildroot (lsedlar) -- [util] Add test for getting list of buildroot RPMs (lsedlar) -- pungi-koji: fix up latest symlink creation (dennis) -- Use unittest2 if available (lsedlar) -- Stop using str.format (lsedlar) -- Stop using functools.total_ordering (lsedlar) -- The message attribute on exception is deprecated (lsedlar) -- [ostree] Rename duplicated test (lsedlar) -- [metadata] Simplify writing media.repo (lsedlar) -- [metadata] Add test for writing media.repo (lsedlar) -- [discinfo] Use context manager for file access (lsedlar) -- [metadata] Add tests for discinfo files (lsedlar) - -* Tue May 24 2016 Dennis Gilmore - 4.1.6-1 -- [ostree-installer] Allow using external repos as source (lsedlar) -- [image-build] Allow using external install trees (lsedlar) -- Add type to base product for layered releases (lsedlar) -- Merge #303 `[ostree] Use unique work and log paths` (dennis) -- [ostree] Use unique work and log paths (lsedlar) -- [arch] Add mock rpmUtils module (lsedlar) - -* Mon May 16 2016 Dennis Gilmore - 4.1.5-1 -- [ostree] Put variant name in ostree log dir (lsedlar) -- Merge #294 `[ostree] Initialize empty repo` (dennis) -- [util] Resolve git+https URLs (lsedlar) -- [ostree] Initialize empty repo (lsedlar) -- [test] Add checks for created images (lsedlar) -- Fix caching global ksurl (lsedlar) -- include tests/fixtures in manifest (dennis) - -* Fri May 06 2016 Dennis Gilmore - 4.1.4-2 -- add patch to fix caching global ksurl - -* Fri Apr 29 2016 Dennis Gilmore - 4.1.4-1 -- Merge #273 `Deduplicate configuration a bit` (dennis) -- Merge #280 `[createrepo] Use more verbose output` (dennis) -- Merge #283 `Pungi should log when it tries to publish notifications.` - (dennis) -- [createiso] Add back running isohybrid on x86 disk images (dennis) -- [createiso] Remove chdir() (lsedlar) -- [pkgset] Fix caching RPMs (lsedlar) -- [createrepo] Use more verbose output (lsedlar) -- Pungi should log when it tries to publish notifications. (rbean) -- [pkgset] Use context manager for opening file list (lsedlar) -- [pkgset] Add tests for writing filelists (lsedlar) -- [pkgset] Simplify finding RPM in koji buildroot (lsedlar) -- [pkgset] Clean up koji package set (lsedlar) -- [pkgset] Add test for pkgset merging (lsedlar) -- [pkgset] Add tests for KojiPackageSet (lsedlar) -- [pkgset] Clean up Koji source (lsedlar) -- [pkgset] Add tests for Koji source (lsedlar) -- Add common global settings for images (lsedlar) -- Remove duplicated and dead code (lsedlar) -- [live-media] Add check for live_media_version option (lsedlar) -- [scm-wrapper] Remove unused method (lsedlar) -- [scm-wrapper] Report when file wrapper did not match anything (lsedlar) -- [scm-wrapper] Use context manager for managing temp dir (lsedlar) -- [scm-wrapper] Reduce code duplication in RPM wrapper (lsedlar) -- [scm-wrapper] Copy files directly (lsedlar) -- [scm-wrapper] Reduce code duplication (lsedlar) -- [scm-wrapper] Add tests for SCM wrappers (lsedlar) -- [ostree] Set each repo to point to current compose (lsedlar) -- [ostree-installer] Drop filename setting (lsedlar) -- Merge #269 `Improve logging of failable deliverables` (ausil) -- [ostree-installer] Fix example documentation (lsedlar) -- Improve logging of failable deliverables (lsedlar) -- [ostree-installer] Install ostree in runroot (lsedlar) -- [pkgset] Print more detailed logs when rpm is not found (lsedlar) -- [ostree-installer] Clone repo with templates (lsedlar) - -* Tue Apr 12 2016 Dennis Gilmore - 4.1.3-3 -- add patch to install ostree in the ostree_installer runroot - -* Mon Apr 11 2016 Dennis Gilmore - 4.1.3-2 -- add patch to print more info for missing rpms -- add patch to clone repo with extra lorax templates for ostree_installer - -* Fri Apr 08 2016 Dennis Gilmore - 4.1.3-1 -- enable the compose test (dennis) -- [ostree-installer] Copy all lorax outputs (lsedlar) -- [ostree] Log to stdout as well (lsedlar) -- [ostree-installer] Use separate directory for logs (lsedlar) -- Merge #260 `Maybe fix ostree?` (ausil) -- [ostree-installer] Put lorax output into work dir (lsedlar) -- [ostree] Add test check for modified repo baseurl (lsedlar) -- [ostree] Move cloning repo back to compose box (lsedlar) -- [ostree] Mount ostree directory in koji (lsedlar) - -* Thu Apr 07 2016 Dennis Gilmore - 4.1.2-2 -- make sure that the shebang of pungi-pylorax-find-templates is python3 - -* Wed Apr 06 2016 Dennis Gilmore - 4.1.2-1 -- Merge #257 `[ostree] Enable marking ostree phase as failable` (ausil) -- [ostree] Enable marking ostree phase as failable (lsedlar) -- [koji-wrapper] Initialize wrappers sequentially (lsedlar) -- [createiso] Simplify code, test phase (lsedlar) -- [createiso] Move runroot work to separate script (lsedlar) -- [ostree] Use explicit work directory (lsedlar) -- [ostree] Rename atomic to ostree (lsedlar) -- [ostree] Move cloning config repo to chroot (lsedlar) -- [ostree] Fix call to kobo.shortcuts.run (lsedlar) -- [atomic] Stop creating the os directory (lsedlar) -- [checksum] Add arch to file name (lsedlar) - -* Tue Apr 05 2016 Dennis Gilmore - 4.1.1-3 -- add some more ostree fixes -- add a bandaid for ppc until we get a proper fix - -* Mon Apr 04 2016 Dennis Gilmore - 4.1.1-2 -- add upstream patches for bugfixes in ostree and checksums - -* Fri Apr 01 2016 Dennis Gilmore - 4.1.1-1 -- install scripts (dennis) -- Merge #242 `Fix wrong file permissions` (ausil) -- Add a utility to validate config (lsedlar) -- [variants] Stop printing stuff to stderr unconditionally (lsedlar) -- Fix atomic/ostree config validations (lsedlar) -- [pungi-wrapper] Remove duplicated code (lsedlar) -- [checks] Add a check for too restrictive umask (lsedlar) -- [util] Remove umask manipulation from makedirs (lsedlar) -- Merge #240 `Filter variants and architectures` (ausil) -- Filter variants and architectures (lsedlar) -- Refactor checking for failable deliverables (lsedlar) -- [buildinstall] Do not crash on failure (lsedlar) -- Reuse helper in all tests (lsedlar) -- [atomic] Add atomic_installer phase (lsedlar) -- [ostree] Add ostree phase (lsedlar) -- [atomic] Add a script to create ostree repo (lsedlar) -- Merge #232 `Improve logging by adding subvariants` (ausil) -- Add compose type to release for images (lsedlar) -- [image-build] Add traceback on failure (lsedlar) -- [image-build] Use subvariants in logging output (lsedlar) -- [live-media] Use subvariants in logging (lsedlar) -- Add tracebacks to all failable phases (lsedlar) -- ppc no longer needs magic bits in the iso (pbrobinson) -- [buildinstall] Add more debugging output (lsedlar) -- [metadata] Stop crashing on empty path from .treeinfo (lsedlar) -- [checksums] Add label to file name (lsedlar) -- [buildinstall] Use customized dvd disc type (lsedlar) -- image_build: fix subvariant handling (awilliam) - -* Fri Mar 11 2016 Dennis Gilmore - 4.1.0-1 -- upstream 4.1.0 release - -* Thu Mar 10 2016 Dennis Gilmore - 4.0.9-2 -- new tarball with upstream commits for test suite and pkgset - -* Thu Mar 10 2016 Dennis Gilmore - 4.0.9-1 -- [init] Update documentation (lsedlar) -- [init] Iterate over arches just once (lsedlar) -- [init] Remove duplicated checks for comps (lsedlar) -- [init] Break long lines (lsedlar) -- [init] Don't overwrite the same log file (lsedlar) -- [init] Add config option for keeping original comps (lsedlar) -- Add tests for the init phase (lsedlar) -- [checks] Test printing in all cases (lsedlar) -- [checks] Reduce code duplication (lsedlar) -- [checks] Relax check for genisoimage (lsedlar) -- [checks] Remove duplicate msgfmt line (lsedlar) -- [checks] Relax check for isohybrid command (lsedlar) -- [checks] Add tests for dependency checking (lsedlar) -- [checks] Don't always require jigdo (lsedlar) -- [pkgset] Respect inherit setting (lsedlar) -- specify that the 4.0 docs are for 4.0.8 (dennis) -- [live-media] Support release set to None globally (lsedlar) -- include tests/fixtures/* in the tarball (dennis) - -* Wed Mar 09 2016 Dennis Gilmore - 4.0.8-2 -- add patch to allow livemedia_release to be None globally - -* Tue Mar 08 2016 Dennis Gilmore - 4.0.8-1 -- Add README (lsedlar) -- [doc] Fix formatting (lsedlar) -- [createiso] Add customizing disc type (lsedlar) -- [live-images] Add customizing disc type (lsedlar) -- [buildinstall] Add customizing disc type (lsedlar) -- [buildinstall] Rename method to not mention symlinks (lsedlar) -- [gather] Fix documentation of multilib white- and blacklist (lsedlar) -- [paths] Document and test translate_path (lsedlar) -- [createrepo] Compute delta RPMS against old compose (lsedlar) -- [util] Add function to search for old composes (lsedlar) -- [live-media] Add global settings (lsedlar) -- [live-media] Rename test case (lsedlar) - -* Thu Mar 03 2016 Dennis Gilmore - 4.0.7-1 -- Limit the variants with config option 'tree_variants' (dennis) -- [createrepo-wrapper] Fix --deltas argument (lsedlar) -- [createrepo-wrapper] Add tests (lsedlar) -- [koji-wrapper] Retry watching on connection errors (lsedlar) -- [createrepo-wrapper] Refactor code (lsedlar) -- [paths] Use variant.uid explicitly (lsedlar) -- [createrepo] Add tests (lsedlar) -- [createrepo] Refactor code (lsedlar) -- [image-build] Fix resolving git urls (lsedlar) -- [testphase] Don't run repoclosure for empty variants (lsedlar) -- [live-images] No manifest for appliances (lsedlar) - -* Fri Feb 26 2016 Dennis Gilmore - 4.0.6-1 -- push the 4.0 docs to a 4.0 branch (dennis) -- [live-images] Rename log file (lsedlar) -- [buildinstall] Use -dvd- in volume ids instead of -boot- (lsedlar) -- [buildinstall] Hardlink boot isos (lsedlar) -- [doc] Write documentation for kickstart Git URLs (lsedlar) -- [util] Resolve branches in git urls (lsedlar) -- [live-images] Fix crash when repo_from is not a list (lsedlar) -- [buildinstall] Don't copy files for empty variants (lsedlar) - -* Tue Feb 23 2016 Dennis Gilmore - 4.0.5-1 -- [tests] Fix wrong checks in buildinstall tests (lsedlar) -- [tests] Use temporary files for buildinstall (lsedlar) -- [tests] Do not mock open for koji wrapper tests (lsedlar) -- Merge #179 `Update makefile targets for testing` (ausil) -- Update makefile targets for testing (lsedlar) -- [live-images] Set type to raw-xz for appliances (lsedlar) -- [live-images] Correctly create format (lsedlar) -- [tests] Dummy compose is no longer private (lsedlar) -- [tests] Move buildinstall tests to new infrastructure (lsedlar) -- [tests] Use real paths module in testing (lsedlar) -- [tests] Move dummy testing compose into separate module (lsedlar) -- [live-images] Create image dir if needed (lsedlar) -- [live-images] Add images to manifest (lsedlar) -- [live-images] Fix path processing (lsedlar) -- [live-images] Move repo calculation to separate method (lsedlar) -- [koji-wrapper] Fix getting results from spin-appliance (lsedlar) -- [live-images] Filter non-image results (lsedlar) -- [live-images] Rename repos_from to repo_from (lsedlar) -- [koji-wrapper] Add test for passing release to image-build (lsedlar) -- [live-images] Automatically populate release with date and respin (lsedlar) -- [live-media] Respect release set in configuration (lsedlar) -- [live-images] Build all images specified in config (lsedlar) -- [live-media] Don't create $basedir arch (lsedlar) -- Update tests (lsedlar) -- do not ad to image build and live tasks the variant if it is empty (dennis) -- when a variant is empty do not add it to the repolist for livemedia (dennis) -- [live-media] Update tests to use $basearch (lsedlar) -- [buildinstall] Don't run lorax for empty variants (lsedlar) -- Merge #159 `use $basearch not $arch in livemedia tasks` (lubomir.sedlar) -- Merge #158 `do not uses pipes.quotes in livemedia tasks` (lubomir.sedlar) -- Add documentation for signing support that was added by previous commit - (tmlcoch) -- Support signing of rpm wrapped live images (tmlcoch) -- Fix terminology - Koji uses sigkey not level (tmlcoch) -- use $basearch not $arch in livemedia tasks (dennis) -- do not uses pipes.quotes in livemedia tasks (dennis) -- [live-images] Don't tweak kickstarts (lsedlar) -- Allow specifying empty variants (lsedlar) -- [createrepo] Remove dead assignments (lsedlar) -- Keep empty query string in resolved git url (lsedlar) -- [image-build] Use dashes as arch separator in log (lsedlar) -- [buildinstall] Stop parsing task_id (lsedlar) -- [koji-wrapper] Get task id from failed runroot (lsedlar) -- [live-media] Pass ksurl to koji (lsedlar) -- Merge #146 `[live-media] Properly calculate iso dir` (ausil) -- [live-media] Properly calculate iso dir (lsedlar) -- [image-build] Fix tests (lsedlar) -- add image-build sections (lkocman) -- [koji-wrapper] Add tests for get_create_image_cmd (lsedlar) -- [live-images] Add support for spin-appliance (lsedlar) -- [live-media] Koji option is ksfile, not kickstart (lsedlar) -- [live-media] Use install tree from another variant (lsedlar) -- [live-media] Put images into iso dir (lsedlar) -- [image-build] Koji expects arches as a comma separated string (lsedlar) -- Merge #139 `Log more details when any deliverable fails` (ausil) -- [live-media] Version is required argument (lsedlar) -- [koji-wrapper] Only parse output on success (lsedlar) -- [koji-wrapper] Add tests for runroot wrapper (lsedlar) -- [buildinstall] Improve logging (lsedlar) -- Log more details about failed deliverable (lsedlar) -- [image-build] Fix failable tests (lsedlar) -- Merge #135 `Add live media support` (ausil) -- Merge #133 `media_split: add logger support. Helps with debugging space - issues on dvd media` (ausil) -- [live-media] Add live media phase (lsedlar) -- [koji-wrapper] Add support for spin-livemedia (lsedlar) -- [koji-wrapper] Use more descriptive method names (lsedlar) -- [image-build] Remove dead code (lsedlar) -- media_split: add logger support. Helps with debugging space issues on dvd - media (lkocman) -- [image-build] Allow running image build scratch tasks (lsedlar) -- [image-build] Allow dynamic release for images (lsedlar) - -* Thu Feb 04 2016 Fedora Release Engineering - 4.0.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jan 20 2016 Dennis Gilmore - 4.0.4-1 -- 4.0.4 release (dennis) -- Merge #123 `Live images: add repo from another variant` (ausil) -- Merge #125 `[image-build] Stop creating wrong arch dirs` (ausil) -- Toggle multilib per variant (lsedlar) -- [live-images] Code cleanup (lsedlar) -- [live-images] Add documentation (lsedlar) -- [live-images] Add repos from other variants (lsedlar) -- [image-build] Stop creating wrong arch dirs (lsedlar) -- Enable identifying variants in exception traces (lsedlar) -- Store which deliverables failed (lsedlar) -- scm.py: use git clone instead git archive for http(s):// (lkocman) -- Fix filtering of system release packages (lsedlar) -- Merge #114 `Use install tree/repo from another variant for image build` - (ausil) -- Make system release package filtering optional (lsedlar) -- [image-build] Optionally do not break whole compose (lsedlar) -- [image-build] Refactoring (lsedlar) -- [image-build] Use repo from another variant (lsedlar) -- [image-build] Take install tree from another variant (lsedlar) -- Add missing formats to volumeid and image name (lsedlar) -- [image-build] Use single koji task per variant (lsedlar) -- Fix image-build modifying config (lsedlar) -- Fix missing checksums in .treeinfo (lsedlar) -- Don't crash on generating volid without variant (lsedlar) -- Merge #99 `Add option to specify non-failing stuff` (ausil) -- Add repo from current compose (lsedlar) -- Fix getting compose topdir in CreateImage build thread (lsedlar) -- Add option to specify non-failing stuff (lsedlar) -- Allow customizing image name and volume id (lsedlar) -- Fix notifier tests (lsedlar) -- Publish a url instead of a file path. (rbean) -- Add 'topdir' to all fedmsg/notifier messages. (rbean) -- Merge #75 `Start of development guide` (ausil) -- Merge #88 `Resolve HEAD in ksurl to actual hash` (ausil) -- Merge #87 `Add support for customizing lorax options` (ausil) -- Update fedmsg notification hook to use appropriate config. (rbean) -- we need to ensure that we send all the tasks to koji on the correct arch - (dennis) -- Resolve HEAD in ksurl to actual hash (lsedlar) -- Add support for customizing lorax options (lsedlar) -- Run lorax in separate dirs for each variant (lsedlar) -- Merge #84 `Allow specifying --installpkgs for lorax` (ausil) -- Merge #83 `Fix recently discovered bugs` (ausil) -- Merge #82 `indentation fixs correcting dvd creation` (ausil) -- Merge #69 `Move messaging into cli options and simplify it` (ausil) -- Start lorax for each variant separately (lsedlar) -- Update lorax wrapper to use --installpkgs (lsedlar) -- Allow specifying which packages to install in variants xml (lsedlar) -- Add basic tests for buildinstall phase (lsedlar) -- Fix generating checksum files (lsedlar) -- Use lowercase hashed directories (lsedlar) -- indentation fixs correcting dvd creation (dennis) -- remove glibc32 from the runroot tasks (dennis) -- fix up the pungi-fedmesg-notification script name (dennis) -- Add overview of Pungi to documentation (lsedlar) -- Move messaging into cli options (lsedlar) -- Extend contributing guide (lsedlar) -- Load multilib configuration from local dir in development (lsedlar) -- Allow running scripts with any python in PATH (lsedlar) - -* Tue Sep 08 2015 Dennis Gilmore 4.0.3-1 -- Merge #54 `fix log_info for image_build (fails if image_build is skipped)` - (lkocman) -- image_build: self.log_info -> self.compose.log_info (lkocman) -- Revert "Added params needed for Atomic compose to LoraxWrapper" (dennis) -- Revert "fix up if/elif in _handle_optional_arg_type" (dennis) -- Add image-build support (lkocman) -- Add translate path support. Useful for passing pungi repos to image-build - (lkocman) -- import duplicate import of errno from buildinstall (lkocman) -- handle openning missing images.json (image-less compose re-run) (lkocman) -- compose: Add compose_label_major_version(). (lkocman) -- pungi-koji: Don't print traceback if error occurred. (pbabinca) -- More detailed message for unsigned rpms. (tkopecek) -- New config option: product_type (default is 'ga'); Set to 'updates' for - updates composes. (dmach) -- kojiwrapper: Add get_signed_wrapped_rpms_paths() and get_build_nvrs() - methods. (tmlcoch) -- live_images: Copy built wrapped rpms from koji into compose. (tmlcoch) -- kojiwrapper: Add get_wrapped_rpm_path() function. (tmlcoch) -- live_images: Allow custom name prefix for live ISOs. (tmlcoch) -- Do not require enabled runroot option for live_images phase. (tmlcoch) -- Support for rpm wrapped live images. (tmlcoch) -- Remove redundant line in variants wrapper. (tmlcoch) -- Merge #36 `Add params needed for Atomic compose to LoraxWrapper` (admiller) -- live_images: replace hardcoded path substition with translate_path() call - (lkocman) -- live_images fix reference from koji to koji_wrapper (lkocman) -- fix up if/elif in _handle_optional_arg_type (admiller) -- Added params needed for Atomic compose to LoraxWrapper (admiller) -- Merge #24 `Fix empty repodata when hash directories were enabled. ` (dmach) -- createrepo: Fix empty repodata when hash directories were enabled. (dmach) - -* Fri Jul 24 2015 Dennis Gilmore - 4.0.2-1 -- Merge #23 `fix treeinfo checksums` (dmach) -- Fix treeinfo checksums. (dmach) -- add basic setup for making arm iso's (dennis) -- gather: Implement hashed directories. (dmach) -- createiso: Add createiso_skip options to skip createiso on any variant/arch. - (dmach) -- Fix buildinstall for armhfp. (dmach) -- Fix and document productimg phase. (dmach) -- Add armhfp arch tests. (dmach) -- Document configuration options. (dmach) -- Add dependency of 'runroot' config option on 'koji_profile'. (dmach) -- Rename product_* to release_*. (dmach) -- Implement koji profiles. (dmach) -- Drop repoclosure-%%arch tests. (dmach) -- Config option create_optional_isos now defaults to False. (dmach) -- Change createrepo config options defaults. (dmach) -- Rewrite documentation to Sphinx. (dmach) -- Fix test data, improve Makefile. (dmach) -- Update GPL to latest version from https://www.gnu.org/licenses/gpl-2.0.txt - (dmach) - -* Thu Jun 18 2015 Fedora Release Engineering - 4.0.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu Jun 11 2015 Dennis Gilmore - 4.0.1-1 -- wrap check for selinux enforcing in a try except (dennis) -- pull in gather.py patches from dmach for test compose (admiller) -- Add some basic testing, dummy rpm creation, and a testing README (admiller) -- pungi-koji: use logger instead of print when it's available (lkocman) -- fix incorrect reference to variable 'product_is_layered' (lkocman) -- pungi-koji: fix bad module path to verify_label() (lkocman) -- update the package Requires to ensure we have everything installed to run - pungi-koji (dennis) -- update the package to be installed for productmd to python-productmd (dennis) - -* Sun Jun 07 2015 Dennis Gilmore - 4.0-0.9.20150607.gitef7c78c -- update docs now devel-4-pungi is merged to master, minor spelling fixes - (pbrobinson) -- Fix remaining productmd issues. (dmach) -- Revert "refactor metadata.py to use productmd's compose.dump for composeinfo" - (dmach) -- Fix LoraxTreeInfo class inheritance. (dmach) -- Fix pungi -> pungi_wrapper namespace issue. (dmach) -- fix arg order for checksums.add (admiller) -- update for productmd checksums.add to TreeInfo (admiller) -- fix product -> release namespace change for productmd (admiller) -- update arch manifest.add config order for productmd api call (admiller) -- update for new productmd named args to rpms (admiller) -- fix pungi vs pungi_wrapper namespacing in method_deps.py (admiller) -- add createrepo_c Requires to pungi.spec (admiller) -- add comps_filter (admiller) -- refactor metadata.py to use productmd's compose.dump for composeinfo instead - of pungi compose_to_composeinfo (admiller) -- Update compose, phases{buildinstall,createiso,gather/__ini__} to use correct - productmd API calls (admiller) -- Use libselinux-python instead of subprocess (lmacken) -- Add README for contributors (admiller) - -* Wed May 20 2015 Dennis Gilmore - 4.0-0.8.20150520.gitff77a92 -- fix up bad += from early test of implementing different iso labels based on - if there is a variant or not (dennis) - -* Wed May 20 2015 Dennis Gilmore - 4.0-0.7.20150520.gitdc1be3e -- make sure we treat the isfinal option as a boolean when fetching it (dennis) -- if there is a variant use it in the volume id and shorten it. this will make - each producst install tree have different volume ids for their isos (dennis) -- fix up productmd import in the executable (dennis) -- fixup productmd imports for changes with open sourcing (dennis) -- tell the scm wrapper to do an absolute import otherwise we hit a circular dep - issue and things go wonky (dennis) -- include the dtd files in /usr/share/pungi (dennis) -- add missing ) causing a syntax error (dennis) -- fix up the productmd imports to import the function from the common module - (dennis) -- fix up typo in getting arch for the lorax log file (dennis) - -* Sat Mar 14 2015 Dennis Gilmore - 4.0-0.6.20150314.gitd337c34 -- update the git snapshot to pick up some fixes - -* Fri Mar 13 2015 Dennis Gilmore - 4.0-0.5.git18d4d2e -- update Requires for rename of python-productmd - -* Thu Mar 12 2015 Dennis Gilmore - 4.0-0.4.git18d4d2e -- fix up the pungi logging by putting the arch in the log file name (dennis) -- change pypungi imports to pungi (dennis) -- spec file cleanups (dennis) - -* Thu Mar 12 2015 Dennis Gilmore - 4.0-0.3.gita3158ec -- rename binaries (dennis) -- Add the option to pass a custom path for the multilib config files (bcl) -- Call lorax as a process not a library (bcl) -- Close child fds when using subprocess (bcl) -- fixup setup.py and MANIFEST.in to make a useable tarball (dennis) -- switch to BSD style hashes for the iso checksums (dennis) -- refactor to get better data into .treeinfo (dennis) -- Initial code merge for Pungi 4.0. (dmach) -- Initial changes for Pungi 4.0. (dmach) -- Add --nomacboot option (csieh) - -* Thu Mar 12 2015 Dennis Gilmore - 4.0-0.2.git320724e -- update git snapshot to switch to executing lorax since it is using dnf - -* Thu Mar 12 2015 Dennis Gilmore - 4.0-0.1.git64b6c80 -- update to the pungi 4.0 dev branch - -* Mon Dec 15 2014 Dennis Gilmore - 3.12-3 -- add patch to make the dvd bootable on aarch64 - -* Tue Sep 30 2014 Dennis Gilmore - 3.12-2 -- add patch to fix whitespace errors - -* Thu Sep 11 2014 Dennis Gilmore - 3.12-1 -- Remove magic parameter to mkisofs (hamzy) -- Added option for setting release note files (riehecky) - -* Thu Jul 31 2014 Dennis Gilmore - 3.11-1 -- make sure that the dvd/cd is using the shortened volumeid (dennis) - -* Thu Jul 31 2014 Dennis Gilmore - 3.10-1 -- fix up volume shortening substituions to actually work (dennis) - -* Wed Jul 30 2014 Dennis Gilmore - 3.09-1 -- implement nameing scheme from - https://fedoraproject.org/wiki/User:Adamwill/Draft_fedora_image_naming_policy diff --git a/pykickstart/0001-Fix-error-message-in-autopart-command.patch b/pykickstart/0001-Fix-error-message-in-autopart-command.patch deleted file mode 100644 index 5792dc8e..00000000 --- a/pykickstart/0001-Fix-error-message-in-autopart-command.patch +++ /dev/null @@ -1,36 +0,0 @@ -From f97c8217011ddebe77635d4aea1b4a78cd477d18 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= - -Date: Wed, 13 Sep 2017 02:53:04 +0200 -Subject: [PATCH] Fix error message in autopart command -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Organization: Invisible Things Lab -Cc: Marek Marczykowski-Górecki - -Since Python 3.5, %s (which is an alias for %b) require bytes, not str. -See PEP 461 for details. -Done this way is compatible with both Python 2 and Python 3. - -Signed-off-by: Marek Marczykowski-Górecki ---- - pykickstart/commands/reqpart.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pykickstart/commands/reqpart.py b/pykickstart/commands/reqpart.py -index 3defe84..25c1e11 100644 ---- a/pykickstart/commands/reqpart.py -+++ b/pykickstart/commands/reqpart.py -@@ -59,7 +59,7 @@ class F23_ReqPart(KickstartCommand): - # Using reqpart and autopart at the same time is not allowed. - if self.handler.autopart.seen: - errorMsg = _("The %s and reqpart commands can't be used at the same time") % \ -- "autopart" -+ "autopart".encode() - raise KickstartParseError(formatErrorMsg(self.lineno, msg=errorMsg)) - - (opts, _extra) = self.op.parse_args(args=args, lineno=self.lineno) --- -2.9.5 - diff --git a/pykickstart/0001-Ignore-errors-from-coverage-tests-138.patch b/pykickstart/0001-Ignore-errors-from-coverage-tests-138.patch deleted file mode 100644 index 3ec45447..00000000 --- a/pykickstart/0001-Ignore-errors-from-coverage-tests-138.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4e2d6dcc63dca82fc720849011b72218bdf8d340 Mon Sep 17 00:00:00 2001 -From: Jiri Konecny -Date: Mon, 30 Jan 2017 20:18:55 +0100 -Subject: [PATCH] Ignore errors from coverage tests (#138) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Now builds are failing because coverage combine doesn't work on -Rawhide. It would be nice to find why this is happening but this is not -a reason for build to fail. - -Backported-to-2.23-by: Marek Marczykowski-Górecki ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 385eb1c..d470f22 100644 ---- a/Makefile -+++ b/Makefile -@@ -56,8 +56,8 @@ endif - @which $(COVERAGE) || (echo "*** Please install coverage (python3-coverage) ***"; exit 2) - @echo "*** Running unittests with coverage ***" - PYTHONPATH=. $(PYTHON) -m nose --with-coverage --cover-erase --cover-branches --cover-package=pykickstart --cover-package=tools $(NOSEARGS) -- $(COVERAGE) combine -- $(COVERAGE) report -m | tee coverage-report.log -+ -$(COVERAGE) combine -+ -$(COVERAGE) report -m | tee coverage-report.log - @which mypy || (echo "*** Please install mypy (python3-mypy) ***"; exit 2) - @echo "*** Running type checks ***" - PYTHONPATH=. mypy pykickstart --- -2.7.4 - diff --git a/pykickstart/pykickstart-2.32.tar.gz b/pykickstart/pykickstart-2.32.tar.gz deleted file mode 100644 index 278e12ab..00000000 Binary files a/pykickstart/pykickstart-2.32.tar.gz and /dev/null differ diff --git a/pykickstart/pykickstart.spec b/pykickstart/pykickstart.spec deleted file mode 100644 index cfa1e4ba..00000000 --- a/pykickstart/pykickstart.spec +++ /dev/null @@ -1,781 +0,0 @@ -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} - -Name: pykickstart -Version: 2.32 -Release: 4%{?dist} -Epoch: 1000 -License: GPLv2 and MIT -Group: System Environment/Libraries -Summary: Python utilities for manipulating kickstart files. -Url: http://fedoraproject.org/wiki/pykickstart -# This is a Red Hat maintained package which is specific to -# our distribution. Thus the source is only available from -# within this srpm. - -# Qubes: To get the source: -# git clone https://github.com/rhinstaller/pykickstart -# check out the version of interest by its tag (rXX-X) -# sudo dnf install zanata-python-client -# make po-pull && make archive -# The tarball will be in the current directory. -Source0: %{name}-%{version}.tar.gz -Patch0: 0001-Ignore-errors-from-coverage-tests-138.patch -Patch1: 0001-Fix-error-message-in-autopart-command.patch -Patch2: repo-gpgkey-option.patch -Patch3: standard-xgettext.patch -BuildArch: noarch - - -BuildRequires: gettext -BuildRequires: python-coverage -BuildRequires: python-devel -BuildRequires: python-nose -BuildRequires: python-ordered-set -BuildRequires: python-setuptools -BuildRequires: python-requests - -BuildRequires: python3-coverage -BuildRequires: python3-devel -BuildRequires: python3-mypy -BuildRequires: python3-nose -BuildRequires: python3-ordered-set -BuildRequires: python3-requests -BuildRequires: python3-setuptools -BuildRequires: python3-six - -Requires: python3-kickstart = %{epoch}:%{version}-%{release} - -%description -Python utilities for manipulating kickstart files. The Python 2 and 3 libraries -can be found in the packages python-kickstart and python3-kickstart -respectively. - -# Python 2 library -%package -n python-kickstart -Summary: Python 2 library for manipulating kickstart files. -Requires: python-six -Requires: python-requests -Requires: python-ordered-set - -%description -n python-kickstart -Python 2 library for manipulating kickstart files. The binaries are found in -the pykickstart package. - -# Python 3 library -%package -n python3-kickstart -Summary: Python 3 library for manipulating kickstart files. -Requires: python3-six -Requires: python3-requests -Requires: python3-ordered-set - -%description -n python3-kickstart -Python 3 library for manipulating kickstart files. The binaries are found in -the pykickstart package. - -%prep -%setup -q - -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 - -rm -rf %{py3dir} -mkdir %{py3dir} -cp -a . %{py3dir} - -%build -make PYTHON=%{__python2} - -pushd %{py3dir} -make PYTHON=%{__python3} -popd - -%install -rm -rf %{buildroot} -make PYTHON=%{__python2} DESTDIR=%{buildroot} install - -pushd %{py3dir} -make PYTHON=%{__python3} DESTDIR=%{buildroot} install -popd - -%check -make PYTHON=%{__python2} test - -pushd %{py3dir} -make PYTHON=%{__python3} test -popd - -%files -%defattr(-,root,root,-) -%license COPYING -%doc README -%doc data/kickstart.vim -%{_bindir}/ksvalidator -%{_bindir}/ksflatten -%{_bindir}/ksverdiff -%{_bindir}/ksshell -%{_mandir}/man1/* - -%files -n python-kickstart -%defattr(-,root,root,-) -%doc docs/2to3 -%doc docs/programmers-guide -%doc docs/kickstart-docs.rst -%{python2_sitelib}/pykickstart*egg* -%{python2_sitelib}/pykickstart/*py* -%{python2_sitelib}/pykickstart/commands/*py* -%{python2_sitelib}/pykickstart/handlers/*py* -%{python2_sitelib}/pykickstart/locale/ - -%files -n python3-kickstart -%defattr(-,root,root,-) -%doc docs/2to3 -%doc docs/programmers-guide -%doc docs/kickstart-docs.rst -%{python3_sitelib}/pykickstart*egg* -%{python3_sitelib}/pykickstart/*py* -%{python3_sitelib}/pykickstart/commands/*py* -%{python3_sitelib}/pykickstart/handlers/*py* -%{python3_sitelib}/pykickstart/locale/ - -%changelog -* Tue Sep 13 2016 Chris Lumens - 2.32-1 -- replace assertEquals with assertEqual in network tests (#103) (rvykydal) -- Fix F25 timezone should subclass F23 instead of F18 (#102) (jkonecny) -- Update network command documentation for --no-activate option. (rvykydal) -- Update network command documentation (from master) (rvykydal) -- Add --no-activate option to network command (#1277975) (rvykydal) - -* Thu Jul 21 2016 Chris Lumens - 2.31-1 -- Support timezone command usage without timezone specification (mkolman) -- Formatting fixes (mkolman) -- Download translations less frequently. (#83) (dshea) -- Adapt to the new version of mypy (#82) (dshea) -- The pykickstart package should require a specific python3-kickstart. (clumens) -- Use set_to_self and set_to_obj internally. (clumens) -- Remove the locales from zanata.xml. (clumens) - -* Tue May 10 2016 Chris Lumens - 2.30-1 -- Add documentation for --excludeWeakdeps (dshea) -- Add support for --excludeWeakdeps option to %packages. (james) -- Numbers can be part of a kickstart command option. (clumens) -- It's authconfig, not autoconfig (in the kickstart.vim file). (clumens) - -* Mon Apr 25 2016 Chris Lumens - 2.29-1 -- Fix pylint no-member errors. (clumens) -- Support file URLs for ostree (#1327460). (clumens) -- Fix a couple mistakes in the documentation. (clumens) - -* Tue Apr 12 2016 Chris Lumens - 2.28-1 -- Correctly move scripts after they've been installed. (clumens) -- Document %traceback and %onerror. (clumens) -- Add a new %onerror script section (#74). (clumens) -- The tools aren't tests, so don't try to run them. (clumens) -- Enable coverage reporting for pykickstart tools (jikortus) - -* Thu Apr 07 2016 Chris Lumens - 2.27-1 -- Ignore DeprecationWarnings originating in pykickstart itself. (clumens) - -* Mon Mar 28 2016 Chris Lumens - 2.26-1 -- We need to BuildRequires python-ordered-set. (clumens) -- Add --chunksize option to raid command. (vtrefny) -- Add Fedora 25 support. (vtrefny) -- Remove deprecated commands from the documentation. (clumens) -- Mark the device, dmraid, and multipath commands as deprecated. (clumens) -- Fix processing of the #platform= comment. (clumens) -- fix formating (Frodox) -- Change network example to working one (Frodox) -- Add DNF system-upgrade near FedUp references (github) -- Add a syntax highlighting file for vim. (clumens) -- Move tests/parser/* into the tests/ directory. (clumens) -- Use importlib to import modules. (dshea) -- Update kickstart documentation for ntp (jkonecny) -- It's self.sshkey, not self.key. (clumens) -- Remove orderedset.py (dshea) - -* Fri Feb 05 2016 Chris Lumens - 2.25-1 -- Use the correct branch in zanata. (clumens) -- Improved method.py test coverage (jikortus) -- Remove the removal of the eintr checker, which has been removed (dshea) -- Verify that a password with a # sign doesn't get read as a comment. (clumens) -- Add comments to the public set_to_self and set_to_obj methods. (clumens) -- Promote _setToObj and _setToSelf to public functions. (clumens) -- Raise PendingDeprecationWarnings for things removed in pykickstart-3. (clumens) -- Change the README to explain which branch we're talking about here. (clumens) -- Add a document describing how to adapt your code to pykickstart-3. (clumens) -- There is no F7_Key class - use RHEL5_Key instead. (clumens) -- The RHEL6 branch supported the key command. (clumens) -- Try harder to test translations. (dshea) - -* Thu Feb 04 2016 Fedora Release Engineering - 2.24-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Mon Jan 11 2016 Chris Lumens - 2.24-1 -- Add build requires on python-coverage and python3-mypy. (clumens) - -* Mon Jan 11 2016 Chris Lumens - 2.23-1 -- Add type information to parser.py and sections.py. (clumens) -- Fix some of the types in base.py. (clumens) -- Don't set currentCmd on the handler object. (clumens) -- Remove logs and coverage files from the "clean" target. (clumens) -- Fix the if block in the Makefile to be much more clear. (clumens) -- Get rid of the BuildRequires: transifex. (clumens) -- Get rid of the "test" makefile target. Use "coverage" for everything. (clumens) -- Use python3 by default in the spec file and Makefile. (clumens) -- Remove the #! line from setup.py. (clumens) -- Remove spec file history from before version 1.99. (clumens) -- Add some initial static typing information to pykickstart. (dshea) -- Fix a bug in how arguments were being passed to zanata. (clumens) - -* Tue Jan 05 2016 Chris Lumens - 2.22-1 -- Use six.assertRaisesRegex to keep the tests working in python2. (dshea) -- Rename deprecated assert methods to whatever we're supposed to be using. (clumens) -- Fix class inheritance in RHEL6_VolGroup (ccoyle) -- Run the translation-canary tests during make archive (dshea) -- Run translation-canary tests from make check (dshea) -- Ignore translation-canary when running pylint. (dshea) -- Correct problems in translatable format strings. (dshea) -- Use the xgettext_werror to generate pykickstart.pot (dshea) -- Use setup.py's sdist to create the release tarball. (dshea) -- Squashed 'translation-canary/' content from commit 5a45c19 (dshea) - -* Mon Nov 30 2015 Chris Lumens - 2.21-1 -- Add tests for all the preprocess functions. (clumens) -- Reimplement the existing preprocess functions. (clumens) -- Add new preprocess functions that return a string. (clumens) -- _preprocessStateMachine shouldn't do any writing to disk. (clumens) -- Import tempfile when it's needed, not globally. (clumens) - -* Mon Nov 09 2015 Chris Lumens - 2.20-1 -- Only decode as utf-8 when using py3 (bcl) -- Add --sshkey to sshpw command (#1274104) (bcl) -- Fix an xconfig test case. (clumens) -- The xconfig --server option was apparently removed by FC6. (clumens) -- Add a test for the xconfig command. (clumens) -- Read kickstart files in binary, decode to utf-8 (bcl) - -* Tue Nov 03 2015 Chris Lumens - 2.19-1 -- We don't actually need to BuildRequires python-pocketlint. (clumens) -- docs/kickstart-docs.rst: iscrypted has no argument (sol) - -* Thu Oct 22 2015 Chris Lumens - 2.18-1 -- More tests for driverdisk, iscsi, ostreesetup, partition, raid and repo commands (atodorov) -- Add more unit tests (atodorov) -- pykickstart: don't set bootProto if --noipv4 (jbacik) -- Produce coverage-report.log for CI (atodorov) - -* Wed Oct 07 2015 Chris Lumens - 2.17-1 -- Add Fedora 24 support. (clumens) -- Update the RHEL7 version constant. (clumens) -- ostree repos can only be HTTP or HTTPS. (clumens) -- Allow GIDs to be specified in the user --groups list. (dshea) -- docs: Add `--activate` as an explicit network option to the list (walters) - -* Fri Sep 25 2015 Chris Lumens - 2.16-1 -- Add reqpart to docs (pbokoc) -- link to github docs instead of fedora wiki (mmckinst) -- Differentiate between empty and missing instLangs (dshea) -- Add tests for empty and missing --instLangs values. (dshea) - -* Tue Sep 08 2015 Chris Lumens - 2.15-1 -- Fix a typo in the README. (clumens) -- Check whether requests actually fetched the URL (dshea) -- Return URL loads as str instead of bytes (dshea) -- Add test cases for including kickstart data via URL. (dshea) - -* Thu Aug 27 2015 Chris Lumens - 2.14-1 -- Fix writing out an empty %packages section when using ksflatten. (clumens) -- Fix a typo in output from the RHEL6 logvol command. (clumens) -- Increase test coverage by a couple percent. (clumens) -- Fix zfcp equality testing for F12 and later. (clumens) -- Fix warning on adding a second user with the same name. (clumens) -- Directories have to be the same in harddrive equality testing. (clumens) - -* Wed Aug 05 2015 Chris Lumens - 2.13-1 -- Fix liveimg equality check (bcl) -- improve test coverage for version.py (atodorov) - -* Thu Jul 30 2015 Chris Lumens - 2.12-1 -- Avoid polluting generated kickstarts by unexpected reqpart commands (#1164660) (mkolman) -- Don't always assume the mock chroot is on x86_64. (clumens) -- Remove documentation compilation warnings (jkonecny) -- Use sys.exit instead of os._exit. (clumens) -- Add a new makefile target that does everything needed for jenkins. (clumens) - -* Thu Jul 09 2015 Chris Lumens - 2.11-1 -- Run nosetests with the same python as was passed to make. (clumens) -- Looks like Group still needs to define __hash__ to be hashable. (clumens) - -* Mon Jul 06 2015 Chris Lumens - 2.10-1 -- Don't forget to call the superclass's __init__ in Group now. (clumens) -- Group objects need to be hashable. (clumens) -- Ignore some more files. (clumens) -- Don't allow using --fsprofile and --mkfsopts at the same time. (clumens) - -* Mon Jun 22 2015 Chris Lumens - 2.9-1 -- Add --mkfsoptions to btrfs, logvol, partition, and raid commands. (clumens) -- Document the unit used for the --cachesize option (vpodzime) -- Add options for LVM cache specs to the 'logvol' command (vpodzime) (clumens) -- Set PYTHONPATH when running "make check". (clumens) -- Add --mkfsoptions to btrfs, logvol, partition, and raid commands. (clumens) -- Avoid traceback in module loading failure paths. (dlehman) -- Install the python3 .mo files to python3_sitelib (dshea) -- add extra test coverage for commands/btrfs.py (atodorov) -- additional test coverage for commands/device.py (atodorov) -- additional test coverage for parser/sections.py (atodorov) -- add test documentation (atodorov) -- cover corner case in commands/eula.py test (atodorov) - -* Tue Jun 02 2015 Chris Lumens - 2.8-1 -- Merge pull request #16 from atodorov/commands_partition_updates (clumens) -- Merge pull request #15 from atodorov/fix_zanata_warning (clumens) -- cover some corner cases in the current partitioning test revealed by python-coverage (atodorov) -- Merge pull request #14 from atodorov/check_if_nosetests_is_installed (clumens) -- Remove unnecessary part_cb() and related __init__() methods (atodorov) -- fix: Warning, the url https://fedora.zanata.org/, contains / at end,please check your URL in zanata.xml (atodorov) -- if zanata and coverage are not installed make the error messages more platform independent (atodorov) -- check if nosetest is installed and abort with error if not (atodorov) -- Merge pull request #13 from vpodzime/master-ntp_pools (clumens) -- Adapt the Timezone class to support NTP pools (vpodzime) -- Update kickstart-docs.rst (jkonecny) -- RHEL7 now supports the reqpart command, too. (clumens) -- Use isinstance instead of type. (clumens) -- Add a missing space before --profile= on the logvol command. (clumens) -- Add some missing removedKeywords/removedAttrs setting. (clumens) - -* Tue Apr 28 2015 Chris Lumens - 2.7-1 -- Ignore some pylint warnings in the tools/ directory. (clumens) -- Move most pylint disable pragmas onto the line they apply to. (clumens) -- Allow skipping the errors on unknown sections. (clumens) - -* Tue Apr 21 2015 Chris Lumens - 2.6-1 -- Merge pull request #8 from bcl/master-kexec (clumens) -- Merge pull request #10 from bcl/master-pre-install (clumens) -- Switch to using nosetests. (clumens) -- Allow multiple partitions with the "swap" mountpoint. (clumens) -- Add %pre-install section to be used after mounting filesystems (bcl) -- Convert reboot to use _getArgsAsStr (bcl) -- Merge pull request #9 from bcl/master-rc-release (clumens) -- Add rc-release Makefile target (bcl) -- Add --kexec flag to reboot (bcl) - -* Fri Apr 17 2015 Chris Lumens - 2.5-1 -- Add a new command to only make those partitions required by the platform. (clumens) -- btrfs levels should be handled the same way as RAID levels. (clumens) -- Include test cases for lower-cased and just numeric versions of RAID levels. (clumens) -- Two more docs fixes. (clumens) - -* Tue Apr 14 2015 Chris Lumens - 2.4-1 -- Move docs to the correct file name. (clumens) -- Handle two-digit version numbers on this branch. (clumens) - -* Tue Apr 14 2015 Chris Lumens - 2.3-1 -- Merge pull request #5 from vpodzime/master-python3 (clumens) -- RHEL7 now uses the F21 versions of commands, typically. (clumens) -- Handle a %include line that starts with whitespace in a section. (clumens) -- Treat "RAID" as uppercased at all times. (clumens) -- Add support for Fedora 23. (clumens) -- Merge pull request #6 from vpodzime/master-docs (clumens) -- Switch from transifex to zanata. (clumens) -- Let's have the docs in the repository (vpodzime) -- Prevent recursion in hasattr and __getattr__ (vpodzime) - -* Tue Mar 24 2015 Chris Lumens - 2.2-1 -- And then BuildRequires pocketlint. (clumens) -- Fix the couple last pylint warnings. (clumens) -- Tell pylint to ignore a couple places where we catch all exceptions. (clumens) -- Don't use [] as a default argument to loadModules. (clumens) -- Define bytesPerInode in __init__ methods. (clumens) -- Don't pointlessly redefine the command attr in some tests. (clumens) -- tstList -> tests (clumens) -- lan -> len (clumens) -- Fix wildcard imports and other import-related pylint problems. (clumens) -- Remove some unused variables. (clumens) -- Fix string substitutions into translatable strings. (clumens) -- Start using pocketlint to run pylint. (clumens) - -* Thu Feb 26 2015 Chris Lumens - 2.1-1 -- Both library packages need to require python-six of some variety (#1195715). (clumens) -- Fix the python-six requirement for python3-kickstart (#1195719). (clumens) - -* Fri Feb 20 2015 Chris Lumens - 2.0-1 -- Make sure pykickstart requires some version of the library. (clumens) -- Split into python2 and python3 specific packages. (clumens) -- Look for translations in their new location. (clumens) -- Install .mo files into the python site-packages directory. (clumens) -- Merge pull request #3 from tradej/python3 (clumens) -- Fixed pylint warnings (tradej) -- Fixed executables in tools + related parts of pykickstart.parser. (tradej) -- Explicitly closing files. Python 3 tests work now. (tradej) -- Implemented rich comparison for parser.Group. (tradej) -- Error parsing in test.commands.logvol matches Python 3's optparse. (tradej) -- Keeping order of contents in the %packages section with OrderedSet (under MIT license). (tradej) -- Redefined _ in pykickstart.i18n, importing. (tradej) -- Fixed assertRaisesRegexp function in Python3. (tradej) -- Replaced string.strip(pkgs) with str(pkgs).strip(). (tradej) -- Adapted Makefile to allow running tests under Python 3. (tradej) -- Converted syntax to Python 3-compatible (rhbz#985310) (tradej) -- Fix a problem pylint caught with the last patch merge. (clumens) -- Make sure pykickstart/*/*py messages get included in pykickstart.pot. (clumens) -- Merge pull request #2 from tradej/urlgrabber (clumens) -- Replaced URLGrabber with requests (rhbz#1141245) (tradej) -- Remove --nobase as an option. (clumens) -- Add support to rhel6 for specifying thin pool profile (vpodzime) -- Add support to rhel6 for custom layouts using lvm thin provisioning. (dlehman) - -* Fri Jan 30 2015 Chris Lumens - 1.99.66-1 -- network: add support for bridge to F22 (#1075195) (rvykydal) -- Use %license in pykickstart.spec (bcl) - -* Mon Dec 15 2014 Chris Lumens - 1.99.65-1 -- Add support for setting user account ssh key (bcl) -- Add = to the output for various network options (#1171926). (clumens) -- When ksflatten fails, return a failure code (#1162881). (clumens) - -* Mon Nov 24 2014 Chris Lumens - 1.99.64-1 -- Get rid of an unused variable. (clumens) -- network: add support for bridge to RHEL7 (#1075195) (rvykydal) -- Add new RHEL7 logvol objects to master (vpodzime) -- Add new RHEL7 volgroup objects to master (vpodzime) -- RHEL7 supports the ostreesetup command. (clumens) - -* Fri Oct 10 2014 Chris Lumens - 1.99.63-1 -- Move the test for --nombr option to the right class (vpodzime) -- Add the --nombr bootloader option in pykickstart (gczarcinski) - -* Tue Oct 07 2014 Chris Lumens - 1.99.62-1 -- Allow recommended flag for non-prexisting logical volumes (#1149718) (amulhern) -- Apply a couple more 2to3 fixes, still avoiding the hard ones.(#985310). (clumens) -- Apply the obvious easy changes from 2to3 (#985310). (clumens) - -* Fri Oct 03 2014 Chris Lumens - 1.99.61-1 -- Add support for specifying thin pool profile (vpodzime) -- Add missing import (mkolman) -- Add tests for --interfacename validation (mkolman) -- Validate network interface name when parsing the kickstart (#1081982) (mkolman) - -* Wed Sep 24 2014 Chris Lumens - 1.99.60-1 -- Make --size and --percent mutually exclusive in logvol. (dlehman) -- Add support for F22. (clumens) - -* Wed Sep 17 2014 Chris Lumens - 1.99.59-1 -- Some tests for --size and --percent (#1117908) (amulhern) -- Update tests where necessary with --size flag (#1117908) (amulhern) -- Supply regex values for assert_parse_error calls in logvol.py (#1117908) (amulhern) -- Check the regular expression when asserting a parse error (#1117908) (amulhern) -- Do not reference non-existant attribute (#1117908) (amulhern) -- Move some statically detectable kickstart errors out of anaconda (#1117908) (amulhern) -- Remove --disable-override from tx arguments. (clumens) -- Add the bootloader --disabled option for RHEL7 as well. (clumens) - -* Tue Aug 12 2014 Chris Lumens - 1.99.58-1 -- Add --install flag to repo command (#1119867) (bcl) - -* Wed Jul 02 2014 Chris Lumens - 1.99.57-1 -- Replace python-setuptools-devel BR with python-setuptools (toshio). (clumens) -- Add autopart --fstype support (#1112697) (bcl) -- Add some more tests to bump up the "make coverage" numbers. (clumens) - -* Thu Jun 19 2014 Chris Lumens - 1.99.56-1 -- Add support for --disklabel to clearpart (#1078537) (bcl) -- Make print statements Python 3 compatible (mkolman) - -* Fri May 16 2014 Chris Lumens - 1.99.55-1 -- Do not set any magic default PE size in pykickstart (vpodzime) -- ostreesetup: Fix noGpg attribute (walters) -- Fix bogus changelog in pykickstart.spec (sagarun) -- Stop shipping a ChangeLog file. (clumens) -- We can use descriptive pylint message names on the command line, too. (clumens) - -* Tue Apr 22 2014 Chris Lumens - 1.99.54-1 -- Move ks tools from optparse to argparse (#1083913). (clumens) -- Use descriptive pylint messages instead of numbers. (clumens) -- Fix up some printing problems in some of the tools. (clumens) -- Add support for the --listversions option to ksverdiff too. (clumens) -- Run pylint on tools/, and fix up all the errors. (clumens) -- disable-msg -> disable for pylint. (clumens) - -* Mon Mar 31 2014 Chris Lumens - 1.99.53-1 -- ostreesetup: New command (walters) -- Move commandMap and dataMap setting into the individual handler classes. (clumens) - -* Fri Mar 21 2014 Chris Lumens - 1.99.52-1 -- Take care of all the unused argument warnings. (clumens) -- Take care of all the unused variable warnings. (clumens) -- Remove unused imports. (clumens) -- Don't do relative import any more, either. (clumens) -- Stop doing wildcard imports. (clumens) -- Add an option to disable even installing the core group. (clumens) - -* Tue Mar 18 2014 Chris Lumens - 1.99.51-1 -- Use the correct indentation for the new network stuff. (clumens) -- Add network --interfacename option for vlans (#1061646) (rvykydal) - -* Mon Mar 17 2014 Chris Lumens - 1.99.50-1 -- Add a new bootloader --disabled option (#1074522). (clumens) -- Add support for F21. (clumens) -- Fix an error on the printing side of handling environments. (clumens) -- Add support for fcoe --autovlan option (#1055779) (rvykydal) - -* Wed Feb 05 2014 Chris Lumens - 1.99.49-1 -- Provide syntax for specifying environments (#1061296). (clumens) -- Use the correct LogVolData object (#1058520). (clumens) -- Don't do string comparisons in "make test" (#1057573). (clumens) - -* Mon Nov 25 2013 Chris Lumens - 1.99.48-1 -- Specify a kickstart version when running package-related tests. (clumens) -- We need python-urlgrabber to do builds now. (clumens) - -* Mon Nov 25 2013 Chris Lumens - 1.99.47-1 -- Add missing version bumps for RHEL7 command control map (#1032738) (mkolman) -- Run "make test" as part of the RPM build process (#1025226). (clumens) -- Include test cases in the source distribution. (clumens) -- With the previous patch, RAID test formatting needs to change. (clumens) -- Do not add a list of PVs or RAID members when writing out --useexisting (#1021274). (clumens) -- Raise an error if bootloader --boot-drive gets more than one argument. (clumens) - -* Thu Nov 14 2013 Chris Lumens - 1.99.46-1 -- Add support for network team devices (#1003591) (rvykydal) -- Work on test coverage a little bit. (clumens) -- Don't use OrderedDict. (clumens) -- Add tests for tmpfs usage (mkolman) -- Add tmpfs support (#918621) (mkolman) - -* Fri Nov 01 2013 Chris Lumens - 1.99.45-1 -- Set bootloader location constructor default value to "none" (#916529) (amulhern) - -* Fri Oct 25 2013 Chris Lumens - 1.99.44-1 -- method getattr should default to handler.url (bcl) - Related: rhbz#1016801 - -* Wed Oct 16 2013 Chris Lumens - 1.99.43-1 -- Use F20_Raid for RHEL7. (#997146) (dlehman) - -* Tue Oct 08 2013 Chris Lumens - 1.99.42-1 -- Remove a triple-X message that is no longer needed (mkolman) -- Add --remove-service option for the firewall command (#1016008) (mkolman) - -* Wed Sep 25 2013 Chris Lumens - 1.99.41-1 -- New 'eula' command (#1000409) (vpodzime) - -* Tue Sep 24 2013 Chris Lumens 1.99.40-2 -- Only BuildRequire transifex on OSes that include it. - -* Tue Sep 24 2013 Chris Lumens - 1.99.40-1 -- Don't error out if volgroup --useexisting is given with no members. (clumens) - -* Tue Sep 10 2013 Chris Lumens - 1.99.39-1 -- Call the right attribute method (#1004889) (bcl) -- Reset method seen attrs when switching method (#1004889) (bcl) - -* Tue Sep 03 2013 Brian C. Lane - 1.99.38-1 -- Return None for attributes if no method has been set (#1001081) (dshea) -- Fix up a couple pylint errors in the tools. (clumens) - -* Wed Aug 21 2013 Chris Lumens - 1.99.37-1 -- Correct exception raising style. (clumens) -- Fix up how we call pylint for 1.0.0. (clumens) -- Set method.method when attempted. (dshea) - -* Mon Aug 19 2013 Chris Lumens - 1.99.36-1 -- When method.method is set, also set the right seen attribute (#994553). (clumens) -- Add tests for incorrect command usage detection (mkolman) -- Add class for independent multi-line command sequence tests (mkolman) -- Raise an error if autopart is combined with partitioning commands (#886010) (mkolman) - -* Mon Jul 29 2013 Chris Lumens - 1.99.35-1 -- Add aliases for all the old method classes (#986069). (clumens) -- Check syntax version before issuing a deprecation warning (#972098). (clumens) - -* Mon Jul 15 2013 Chris Lumens - 1.99.34-1 -- Always create self.handler on-demand in the test cases. (clumens) -- Also set the seen attribute when __call__ is used. (clumens) -- Mark the upgrade command as deprecated. (clumens) -- Add the method test case back in. (clumens) -- Set the seen attribute when parsing in test cases, too. (clumens) -- Add a proxy method command object. (clumens) -- Add an interactive kickstart shell command, ksshell. (clumens) -- Fix string substitution errors in translatable text. (clumens) -- Break the method command out into individual commands. (clumens) - -* Tue Jul 09 2013 Chris Lumens - 1.99.33-1 -- Add support for lvm thin provisioning. (dlehman) -- Add support for F20. (clumens) -- Add a new test for the group command. (clumens) -- In the test cases, error on all non-deprecation warnings. (clumens) -- Remove unused imports from the test suite. (clumens) - -* Fri Jun 14 2013 Chris Lumens - 1.99.32-1 -- transifex.net is now transifex.com (bcl) -- Update raid --device to be an array name specifier. (dlehman) -- Add more tests for the realm command (mkolman) -- RHEL7 is now more or less based on F19, at least for kickstart. (clumens) -- realm: Fix --no-password option (stefw) -- Add man pages for all programs (#948440). (clumens) - -* Wed May 15 2013 Chris Lumens - 1.99.31-1 -- Fix F18/F19 cdrom methods (bcl) - -* Thu May 09 2013 Chris Lumens - 1.99.30-1 -- Add support for the realm command (mkolman) -- Add liveimg install method (bcl) - -* Thu May 09 2013 Chris Lumens - 1.99.29-1 -- add --extlinux option (mattdm) - -* Tue Apr 23 2013 Chris Lumens - 1.99.28-1 -- Add network --ipv6gateway option (#905226) (rvykydal) -- Add lang --addsupport option (#912364) (rvykydal) - -* Wed Apr 10 2013 Chris Lumens - 1.99.27-1 -- A new user's group should default to None, not 0 (#929204). (clumens) - -* Fri Mar 22 2013 Chris Lumens - 1.99.26-1 -- parser.py: Allow shlex to strip lines (fedora.dm0) -- Fix a bug in logvol duplicate reporting (#924579, mhuth). (clumens) -- Add gid attribute to User command and associated data structure (msivak) -- Make sure tests can run and report import errors (bcl) -- Add network --vlanid option to Fedora. (rvykydal) - -* Mon Mar 04 2013 Chris Lumens - 1.99.25-1 -- pylint appears to have gotten pickier. (clumens) -- Fix typo in --wpakey string representation method (rvykydal) -- Also add the F19 handler file. (clumens) -- Don't strip the newline from reboot or shutdown commands (#915013). (clumens) -- Add bonding support to RHEL 7 (rvykydal) -- Add bonding support to F19 (rvykydal) -- Add support for F19 (rvykydal) - -* Wed Feb 13 2013 Chris Lumens - 1.99.24-1 -- Add a seen attribute to commands, sections, and the packages object. (clumens) - -* Mon Jan 14 2013 Chris Lumens - 1.99.23-1 -- Don't print any of the autopart command if autopart is disabled (#888841). (clumens) -- Call sys.exit instead of os._exit (#891419, gconradi AT factset.com). (clumens) -- Beware of possible unicode strings (#876293) (vpodzime) -- Remove the lang.apply method (#882186). (clumens) -- Add 'make coverage' command to the make file (stefw) - -* Tue Nov 20 2012 Chris Lumens - 1.99.22-1 -- Add support for url --mirrorlist, needed by anaconda (#868558). (clumens) -- Only write out a logging line if one was provided (#873242). (clumens) -- If no timezone was provided, do not write out an empty timezone command. (clumens) - -* Wed Oct 24 2012 Chris Lumens - 1.99.21-1 -- Add support for layout switching options (vpodzime) - -* Mon Oct 15 2012 Chris Lumens - 1.99.20-1 -- Disable pylint warnings related to the previous patch. (clumens) -- Revert "Fix superclass constructor call in F18_Keyboard." (clumens) -- Fix superclass constructor call in F18_Keyboard. (dlehman) -- Add cipher option for encrypting block devices. (dlehman) -- Change keyboard command to accept VConsole keymap and X layouts (vpodzime) -- add unsupported_hardware command (#824963) (bcl) - -* Fri Sep 14 2012 Chris Lumens - 1.99.19-1 -- bonding support: add network --bondslaves --bondopts options (rvykydal) -- vlan support: add network --vlanid option. (rvykydal) - -* Thu Sep 06 2012 Chris Lumens - 1.99.18-1 -- Fix the multilib package test case. (clumens) -- Add support for --multilib option to %packages. (dlehman) -- Mark --nobase as deprecated. (notting) - -* Tue Aug 28 2012 Chris Lumens - 1.99.17-1 -- Add ksdata.network.hostname (readonly) property (rvykydal) - -* Wed Aug 22 2012 Chris Lumens - 1.99.16-1 -- Add swap --hibernation to logvol command (vpodzime) - -* Thu Aug 09 2012 Chris Lumens - 1.99.15-1 -- No argument needs to be given to rootpw if you're just locking the account. (clumens) - -* Thu Jul 26 2012 Chris Lumens - 1.99.14-1 -- add reboot test (bcl) -- add correct halt command handling (bcl) -- return parsed object from assert_parse (bcl) -- The monitor command has been deprecated since F10. Get rid of it. (clumens) -- Add --hibernation option for swap size specification (vpodzime) -- Add leavebootorder test (hamzy) - -* Tue Jun 19 2012 Chris Lumens - 1.99.13-1 -- Support bootloader --leavebootorder for F18 and RHEL7 (#824801) (pjones) -- Allow %include in %pre and %post (#827269) (bcl) - -* Mon Jun 18 2012 Chris Lumens - 1.99.12-1 -- Add --nontp option and a way to specify NTP servers to the timezone command (vpodzime) -- fix TypeError in network.py with ipv6 static addresses (wwoods) -- Layouts may include spaces, so put them in quotes (vpodzime) - -* Mon May 07 2012 Chris Lumens - 1.99.11-1 -- pylint doesn't like .setter syntax at all. (clumens) -- Modify keyboard command to handle multiple layouts (vpodzime) -- Add support for F18. (vpodzime) -- Fix traceback if modules cannot be loaded when running tests (vpodzime) - -* Mon Apr 02 2012 Chris Lumens - 1.99.10-1 -- Add resize option to partition and logvol commands. (dlehman) -- Add --list= mode to clearpart for explicit list of partitions to remove. (dlehman) - -* Thu Mar 22 2012 Chris Lumens - 1.99.9-1 -- Add __ne__ methods to every object with an __eq__ method. (clumens) -- Use the older exception syntax for python 2.4 compatibility. (clumens) -- Add an __eq__ method to the method command. (clumens) - -* Wed Mar 14 2012 Chris Lumens - 1.99.8-1 -- Add support for RHEL7 (#802369). -- Add a method to set a command back to its initial blank state. -- btrfs likes its raid levels in lower case. (#799154) (dlehman) -- iscsi: add support for interface binding to F17 (rvykydal) -- iscsi: add support for interface binding (#500273) (rvykydal) - -* Wed Jan 11 2012 Chris Lumens - 1.99.7-1 -- Add --type option to autopart command. (dlehman) -- Add btrfs command. (dlehman) - -* Tue Nov 15 2011 Chris Lumens - 1.99.6-1 -- Add --boot-drive option to bootloader command to pick boot drive. (dlehman) -- Add support for F17. (clumens) -- The guts of a script could include a line starting with a % (#746928). (clumens) - -* Wed Oct 19 2011 Chris Lumens - 1.99.5-1 -- Don't error out if raid --useexisting is given with no members (#741728). (clumens) -- When %end is missing, include the unterminated section in the error message. (clumens) - -* Wed Sep 14 2011 Chris Lumens - 1.99.4-1 -- --reserved-space and --reserved-percent should be checked on a callback. (clumens) -- Add a volgroup unit test, and fix a bug it uncovered. (clumens) -- Add support for reserved space in volume group. (dlehman) -- Allow a %include to come in the middle of a section (#733455). (clumens) -- Add a test case for %include inside %packages. (clumens) - -* Mon Aug 22 2011 Chris Lumens - 1.99.3-1 -- Ignore reimport warnings. (clumens) -- Add support for 'autopart --nolvm' (jlaska) -- autopart - Inherit error checking from base class (jlaska) -- Let's just use url.size instead. That's defined for both FTP and HTTP. (clumens) -- It's url.hdr now, not url.info. (clumens) -- Support end-of-line comments in the %packages section (#728563). (clumens) - -* Mon Jun 27 2011 Chris Lumens - 1.99.2-1 -- Don't do "make po-pull" during installation. (clumens) - -* Mon Jun 27 2011 Chris Lumens - 1.99.1-1 -- Fix a couple Makefile typos. (clumens) -- typo fix (vpodzime) -- option for wpa wifi connection specification added (vpodzime) -- Update Makefiles to work with new translation system. (clumens) -- BuildRequires transifex-client. (clumens) -- Ignore po/*.po files. (clumens) -- Remove translation files. (clumens) -- Add transifex-client configuration file. (clumens) -- Fix po files so "msgfmt -c" passes and they can be uploaded to transifex. (clumens) - -* Tue Jun 07 2011 Chris Lumens 1.99.0-1 -- Add a way to tell how often a section has been handled. (clumens) -- Add a NullSection that just ignores any section provided. (clumens) -- Add test cases for the parser itself. (clumens) -- Allow for defining your own kickstart %sections. (clumens) -- The docs need to be fetched from an HTTPS location now. (clumens) -- Write out --onboot=off if it's False. (clumens) diff --git a/pykickstart/repo-gpgkey-option.patch b/pykickstart/repo-gpgkey-option.patch deleted file mode 100644 index f4ff1cf3..00000000 --- a/pykickstart/repo-gpgkey-option.patch +++ /dev/null @@ -1,61 +0,0 @@ -Add --gpgkey option to repo command - -This will be used to verify packages by pungi, which have no other way to get -key location (no real .repo files). - -Signed-off-by: Marek Marczykowski -Index: pykickstart-1.99.22/pykickstart/commands/repo.py -=================================================================== ---- pykickstart-1.99.22.orig/pykickstart/commands/repo.py -+++ pykickstart-1.99.22/pykickstart/commands/repo.py -@@ -130,19 +130,34 @@ - - RHEL6_RepoData = F14_RepoData - --F15_RepoData = F14_RepoData -- --class F21_RepoData(F14_RepoData): -+class F15_RepoData(F14_RepoData): - removedKeywords = F14_RepoData.removedKeywords - removedAttrs = F14_RepoData.removedAttrs - - def __init__(self, *args, **kwargs): - F14_RepoData.__init__(self, *args, **kwargs) -- self.install = kwargs.get("install", False) -+ self.gpgkey = kwargs.get("gpgkey", None) - - def _getArgsAsStr(self): - retval = F14_RepoData._getArgsAsStr(self) - -+ if self.gpgkey: -+ retval += " --gpgkey=\"%s\"" % self.gpgkey -+ -+ return retval -+ -+ -+class F21_RepoData(F15_RepoData): -+ removedKeywords = F15_RepoData.removedKeywords -+ removedAttrs = F15_RepoData.removedAttrs -+ -+ def __init__(self, *args, **kwargs): -+ F15_RepoData.__init__(self, *args, **kwargs) -+ self.install = kwargs.get("install", False) -+ -+ def _getArgsAsStr(self): -+ retval = F15_RepoData._getArgsAsStr(self) -+ - if self.install: - retval += " --install" - -@@ -271,6 +286,11 @@ - - urlRequired = False - -+ def _getParser(self): -+ op = F14_Repo._getParser(self) -+ op.add_option("--gpgkey", action="store", type="string") -+ return op -+ - class F21_Repo(F15_Repo): - removedKeywords = F15_Repo.removedKeywords - removedAttrs = F15_Repo.removedAttrs diff --git a/pykickstart/standard-xgettext.patch b/pykickstart/standard-xgettext.patch deleted file mode 100644 index 8d5d3760..00000000 --- a/pykickstart/standard-xgettext.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/po/Makefile.orig 2017-01-09 03:53:34.861000000 +0100 -+++ b/po/Makefile 2017-01-09 03:53:46.548000000 +0100 -@@ -12,7 +12,7 @@ - - # PO catalog handling - MSGMERGE = msgmerge -v --XGETTEXT = ../translation-canary/xgettext_werror.sh --default-domain=$(NLSPACKAGE) \ -+XGETTEXT = xgettext --default-domain=$(NLSPACKAGE) \ - --add-comments - MSGFMT = msgfmt --statistics --verbose - diff --git a/qubes-anaconda-addon/LICENSE b/qubes-anaconda-addon/LICENSE deleted file mode 100644 index d159169d..00000000 --- a/qubes-anaconda-addon/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/qubes-anaconda-addon/README b/qubes-anaconda-addon/README deleted file mode 100644 index 3ed1f7ea..00000000 --- a/qubes-anaconda-addon/README +++ /dev/null @@ -1 +0,0 @@ -Repository for the "Qubes OS" Anaconda addon. diff --git a/qubes-anaconda-addon/firstboot-qubes-text b/qubes-anaconda-addon/firstboot-qubes-text deleted file mode 100755 index 71552671..00000000 --- a/qubes-anaconda-addon/firstboot-qubes-text +++ /dev/null @@ -1,160 +0,0 @@ -#!/bin/bash - -# Failsafe minimal text-mode firstboot - -# Welcome - -if [ "x$1" = "x--help" ]; then - echo "Failsafe minimal text-mode firstboot" - echo "For unattended mode use: $0 " - exit 0 -fi - -echo "########################################################" -echo " Welcome to `cat /etc/qubes-release`" -echo "########################################################" -echo -echo "This is failsafe text-mode firstboot. If you see this message, you have" -echo "some problem with Xorg (most probably video driver)" -echo -echo "Anyway, some basic setup is needed to continue:" - -# User creation - -echo -echo "1. Setup user account" -exists=0 -user=$1 -while [ -z "$user" ]; do - echo -n "Enter desired username (may already exist): " - read user - if echo "$user" | grep -q "[^a-z0-9]"; then - echo "ERROR: Invalid characters in username, try again" - user= - elif id $user > /dev/null 2>&1; then - if [ $(id -u ${user}) -ge 1000 ] && id -n -G ${user} | grep -q qubes; then - echo "OK: Using an existing user: \"${user}\"" - exists=1 - break - fi - echo "ERROR: This user already exists or is not suitable. Please try again" - user= - else - break - fi -done - -if [ ${exists} -eq 0 ]; then - useradd -G qubes -m "$user" || exit 1 - if [ -n "$2" ]; then - echo -e "$2\n$2" | passwd --stdin "$user" - else - while ! passwd "$user"; do true; done - fi -fi - -# Create default VMs - -echo -echo "2. Create default VMs" -echo -echo "Choose one option:" -echo " 1. Create default service VMs, and pre-defined AppVMs (personal, work, untrusted, vault)" -echo " 2. Just create default service VMs" -echo " 3. Do not create any VMs right now, but configure template(s)" -echo " 4. Do not do anything (not recommended, for advanced users only)" -vms_option=$3 -while true; do - if [ -z "$vms_option" ]; then - echo -n "Enter your choice (1/2/3/4): " - read vms_option - fi - if [ "$vms_option" == "1" ]; then - vms_template=yes - vms_service=yes - vms_app=yes - break - elif [ "$vms_option" == "2" ]; then - vms_template=yes - vms_service=yes - break - elif [ "$vms_option" == "3" ]; then - vms_template=yes - break - elif [ "$vms_option" == "4" ]; then - break - else - echo "ERROR: Invalid choice, try again" - vms_option= - fi -done - -set -e - -for service in rdisc kdump libvirt-guests salt-minion; do - systemctl disable ${service}.service || : - systemctl stop ${service}.service || : -done - -if [ "$vms_template" == "yes" ]; then - for template in `ls /var/lib/qubes/vm-templates`; do - echo "-> Configuring template $template..." - qvm-start --no-guid $template - su -g "qubes" -c "qvm-sync-appmenus $template" - $user - qvm-shutdown --wait $template - done - - qubes-prefs --set default-template 'fedora-29' -fi - -if [ "$vms_service" == "yes" -o "$vms_app" == "yes" ]; then - echo "-> Configuring Qubes OS management framework..." - - if test -e /var/log/salt/minion; then - mv /var/log/salt/minion /var/log/salt/minion.install || : - fi - - qubesctl saltutil.clear_cache -l quiet --out quiet - qubesctl saltutil.sync_all -l quiet --out quiet -fi - -states=() - -if [ "$vms_service" == "yes" ]; then - states=("${states[@]}" qvm.sys-net qvm.sys-firewall) -fi - -if [ "$vms_app" == "yes" ]; then - states=("${states[@]}" qvm.personal qvm.work qvm.untrusted qvm.vault) -fi - -if [ "$vms_service" == "yes" -o "$vms_app" == "yes" ]; then - for state in "${states[@]}"; do - echo "-> Requesting creation of VM: ${state#qvm.}" - qubesctl top.enable "${state}" -l quiet --out quiet - done - - echo "-> Creating VMs" - qubesctl "state.highstate" -fi - -if [ "$vms_service" == "yes" ]; then - echo "--> Configuring service VMs" - default_netvm="sys-net" - default_firewallvm="sys-firewall" - - su -g "qubes" -c "qvm-prefs --set ${default_firewallvm} netvm ${default_netvm}" - $user - su -g "qubes" -c "qubes-prefs --set default-netvm ${default_firewallvm}" - $user - su -g "qubes" -c "qubes-prefs --set updatevm ${default_firewallvm}" - $user - su -g "qubes" -c "qubes-prefs --set clockvm ${default_netvm}" - $user - - echo "-> Starting network..." - service qubes-netvm start - - # DispVM creation fails with the following error message, most likely due to missing $DISPLAY: - # "Cannot start qubes-guid!" - #echo "-> Creating DispVM savefile (can take long time)..." - #su -g "qubes" -c "/usr/bin/qvm-create-default-dvm --default-template --default-script" - $user || : -fi - -echo "-> Done." diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/__init__.py b/qubes-anaconda-addon/org_qubes_os_initial_setup/__init__.py deleted file mode 100644 index ef3e35b4..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# do not import gui package here because it imports Gtk which causes a traceback -# if X server is not yet running -#import gui - -import tui diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/__init__.py b/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/__init__.py deleted file mode 100644 index 4fa827f3..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -""" -We need org_qubes_os_initial_setup/gui to be a package so that relative imports -work. - -""" - -import spokes diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/__init__.py b/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/__init__.py deleted file mode 100644 index 70201b28..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import qubes_os diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/qubes_os.glade b/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/qubes_os.glade deleted file mode 100644 index 3d46361e..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/qubes_os.glade +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - False - True - True - QUBES OS - - - - False - vertical - 6 - - - True - False - - - False - 6 - 6 - 6 - - - - - False - False - 0 - - - - - False - 0 - 0 - 0.5 - - - False - vertical - 6 - - - True - False - vertical - 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - True - 0 - - - - - - - True - True - 1 - - - - - - - - - diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/qubes_os.py b/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/qubes_os.py deleted file mode 100644 index 155626e7..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/gui/spokes/qubes_os.py +++ /dev/null @@ -1,661 +0,0 @@ -# -# Copyright (C) 2016 M. Vefa Bicakci -# Copyright (C) 2016 Qubes OS Developers -# Copyright (C) 2013 Red Hat, Inc. -# -# This copyrighted material is made available to anyone wishing to use, -# modify, copy, or redistribute it subject to the terms and conditions of -# the GNU General Public License v.2, or (at your option) any later version. -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY expressed or implied, including the implied warranties 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, write to the -# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the -# source code or documentation are not subject to the GNU General Public -# License and may only be used or replicated with the express permission of -# Red Hat, Inc. -# -# Red Hat Author(s): Vratislav Podzimek -# - -"""Module with the QubesOsSpoke class.""" - -# import gettext -# _ = lambda x: gettext.ldgettext("qubes-os-anaconda-plugin", x) - -# will never be translated -_ = lambda x: x -N_ = lambda x: x - -import distutils.version -import functools -import grp -import logging -import os -import os.path -import pyudev -import subprocess -import threading - -import gi - -gi.require_version('Gtk', '3.0') -gi.require_version('Gdk', '3.0') -gi.require_version('GLib', '2.0') - -from gi.repository import Gtk -from gi.repository import Gdk -from gi.repository import GLib - -from pyanaconda import iutil -from pyanaconda.ui.categories.system import SystemCategory -from pyanaconda.ui.gui.spokes import NormalSpoke -from pyanaconda.ui.common import FirstbootOnlySpokeMixIn - -# export only the spoke, no helper functions, classes or constants -__all__ = ["QubesOsSpoke"] - -def is_package_installed(pkgname): - pkglist = subprocess.check_output(['rpm', '-qa', pkgname]) - return bool(pkglist) - -def usb_keyboard_present(): - context = pyudev.Context() - keyboards = context.list_devices(subsystem='input', ID_INPUT_KEYBOARD='1') - return any([d.get('ID_USB_INTERFACES', False) for d in keyboards]) - -def started_from_usb(): - def get_all_used_devices(dev): - stat = os.stat(dev) - if stat.st_rdev: - # XXX any better idea how to handle device-mapper? - sysfs_slaves = '/sys/dev/block/{}:{}/slaves'.format( - os.major(stat.st_rdev), os.minor(stat.st_rdev)) - if os.path.exists(sysfs_slaves): - for slave_dev in os.listdir(sysfs_slaves): - for d in get_all_used_devices('/dev/{}'.format(slave_dev)): - yield d - else: - yield dev - - context = pyudev.Context() - mounts = open('/proc/mounts').readlines() - for mount in mounts: - device = mount.split(' ')[0] - if not os.path.exists(device): - continue - for dev in get_all_used_devices(device): - udev_info = pyudev.Device.from_device_file(context, dev) - if udev_info.get('ID_USB_INTERFACES', False): - return True - - return False - -class QubesChoice(object): - instances = [] - - def __init__(self, label, states, depend=None, extra_check=None, - replace=None, indent=False): - self.widget = Gtk.CheckButton(label=label) - self.states = states - self.depend = depend - self.extra_check = extra_check - self.selected = None - self.replace = replace - - self._can_be_sensitive = True - - if indent: - self.outer_widget = Gtk.Alignment() - self.outer_widget.add(self.widget) - self.outer_widget.set_padding(0, 0, 20, 0) - else: - self.outer_widget = self.widget - - if self.depend is not None: - self.depend.widget.connect('toggled', self.friend_on_toggled) - self.depend.widget.connect('notify::sensitive', self.friend_on_toggled) - self.friend_on_toggled(self.depend.widget) - - self.instances.append(self) - - def friend_on_toggled(self, other_widget, param_string=''): - self.set_sensitive(other_widget.get_active()) - - def get_selected(self): - return (self.selected - if self.selected is not None - else self.widget.get_sensitive() and self.widget.get_active()) - - def store_selected(self): - self.selected = self.get_selected() - - def set_sensitive(self, sensitive): - if self._can_be_sensitive: - self.widget.set_sensitive(sensitive) - - @classmethod - def on_check_advanced_toggled(cls, widget): - selected = widget.get_active() - - # this works, because you cannot instantiate the choices in wrong order - # (cls.instances is a list and have deterministic ordering) - for choice in cls.instances: - choice.set_sensitive(not selected and - (choice.depend is None or choice.depend.get_selected())) - - @classmethod - def get_states(cls): - replaced = functools.reduce( - lambda x, y: x+y if y else x, - (choice.replace for choice in cls.instances if - choice.get_selected()), - () - ) - for choice in cls.instances: - if choice.get_selected(): - for state in choice.states: - if state not in replaced: - yield state - - -class DisabledChoice(QubesChoice): - def __init__(self, label): - super(DisabledChoice, self).__init__(label, ()) - self.widget.set_sensitive(False) - self._can_be_sensitive = False - -class QubesOsSpoke(FirstbootOnlySpokeMixIn, NormalSpoke): - """ - Since this class inherits from the FirstbootOnlySpokeMixIn, it will - only appear in the Initial Setup (successor of the Firstboot tool). - - :see: pyanaconda.ui.common.UIObject - :see: pyanaconda.ui.common.Spoke - :see: pyanaconda.ui.gui.GUIObject - :see: pyanaconda.ui.common.FirstbootSpokeMixIn - :see: pyanaconda.ui.gui.spokes.NormalSpoke - - """ - - ### class attributes defined by API ### - - # list all top-level objects from the .glade file that should be exposed - # to the spoke or leave empty to extract everything - builderObjects = ["qubesOsSpokeWindow"] - - # the name of the main window widget - mainWidgetName = "qubesOsSpokeWindow" - - # name of the .glade file in the same directory as this source - uiFile = "qubes_os.glade" - - # category this spoke belongs to - category = SystemCategory - - # spoke icon (will be displayed on the hub) - # preferred are the -symbolic icons as these are used in Anaconda's spokes - icon = "qubes-logo-icon" - - # title of the spoke (will be displayed on the hub) - title = N_("_QUBES OS") - - ### methods defined by API ### - def __init__(self, data, storage, payload, instclass): - """ - :see: pyanaconda.ui.common.Spoke.__init__ - :param data: data object passed to every spoke to load/store data - from/to it - :type data: pykickstart.base.BaseHandler - :param storage: object storing storage-related information - (disks, partitioning, bootloader, etc.) - :type storage: blivet.Blivet - :param payload: object storing packaging-related information - :type payload: pyanaconda.packaging.Payload - :param instclass: distribution-specific information - :type instclass: pyanaconda.installclass.BaseInstallClass - - """ - - NormalSpoke.__init__(self, data, storage, payload, instclass) - - self.logger = logging.getLogger("anaconda") - - self.main_box = self.builder.get_object("mainBox") - self.thread_dialog = None - - self.qubes_user = None - self.qubes_gid = None - self.default_template = 'fedora-29' - - self.set_stage("Start-up") - self.done = False - - self.__init_qubes_choices() - - def __init_qubes_choices(self): - self.choice_network = QubesChoice( - _('Create default system qubes (sys-net, sys-firewall, default DispVM)'), - ('qvm.sys-net', 'qvm.sys-firewall', 'qvm.default-dispvm')) - - self.choice_default = QubesChoice( - _('Create default application qubes ' - '(personal, work, untrusted, vault)'), - ('qvm.personal', 'qvm.work', 'qvm.untrusted', 'qvm.vault'), - depend=self.choice_network) - - if (is_package_installed('qubes-template-whonix-gw*') and - is_package_installed('qubes-template-whonix-ws*')): - self.choice_whonix = QubesChoice( - _('Create Whonix Gateway and Workstation qubes ' - '(sys-whonix, anon-whonix)'), - ('qvm.sys-whonix', 'qvm.anon-whonix'), - depend=self.choice_network) - else: - self.choice_whonix = DisabledChoice(_("Whonix not installed")) - - self.choice_whonix_updates = QubesChoice( - _('Enable system and template updates over the Tor anonymity ' - 'network using Whonix'), - ('qvm.updates-via-whonix',), - depend=self.choice_whonix, - indent=True) - - if not usb_keyboard_present() and not started_from_usb(): - self.choice_usb = QubesChoice( - _('Create USB qube holding all USB controllers (sys-usb)'), - ('qvm.sys-usb',)) - else: - self.choice_usb = DisabledChoice( - _('USB qube configuration disabled - you are using USB ' - 'keyboard or USB disk')) - - self.choice_usb_with_net = QubesChoice( - _("Use sys-net qube for both networking and USB devices"), - ('pillar.qvm.sys-net-as-usbvm',), - depend=self.choice_usb, - indent=True - ) - - self.check_advanced = Gtk.CheckButton(label=_('Do not configure anything (for advanced users)')) - self.check_advanced.connect('toggled', QubesChoice.on_check_advanced_toggled) - - for choice in QubesChoice.instances: - self.main_box.pack_start(choice.outer_widget, False, True, 0) - - self.main_box.pack_end(self.check_advanced, False, True, 0) - - self.check_advanced.set_active(False) - - self.choice_network.widget.set_active(True) - self.choice_default.widget.set_active(True) - if self.choice_whonix.widget.get_sensitive(): - self.choice_whonix.widget.set_active(True) - if self.choice_usb.widget.get_sensitive(): - self.choice_usb.widget.set_active(True) - - def initialize(self): - """ - The initialize method that is called after the instance is created. - The difference between __init__ and this method is that this may take - a long time and thus could be called in a separated thread. - - :see: pyanaconda.ui.common.UIObject.initialize - - """ - - NormalSpoke.initialize(self) - - def refresh(self): - """ - The refresh method that is called every time the spoke is displayed. - It should update the UI elements according to the contents of - self.data. - - :see: pyanaconda.ui.common.UIObject.refresh - - """ - - # nothing to do here - pass - - def apply(self): - """ - The apply method that is called when the spoke is left. It should - update the contents of self.data with values set in the GUI elements. - - """ - - # nothing to do here - pass - - @property - def ready(self): - """ - The ready property that tells whether the spoke is ready (can be visited) - or not. The spoke is made (in)sensitive based on the returned value. - - :rtype: bool - - """ - - return True - - @property - def completed(self): - """ - The completed property that tells whether all mandatory items on the - spoke are set, or not. The spoke will be marked on the hub as completed - or uncompleted acording to the returned value. - - :rtype: bool - - """ - - return self.done - - @property - def mandatory(self): - """ - The mandatory property that tells whether the spoke is mandatory to be - completed to continue in the installation process. - - :rtype: bool - - """ - return True - - @property - def status(self): - """ - The status property that is a brief string describing the state of the - spoke. It should describe whether all values are set and if possible - also the values themselves. The returned value will appear on the hub - below the spoke's title. - - :rtype: str - - """ - - return "" - - def execute(self): - """ - The execute method that is called when the spoke is left. It is - supposed to do all changes to the runtime environment according to - the values set in the GUI elements. - - """ - for choice in QubesChoice.instances: - choice.store_selected() - - self.thread_dialog = ThreadDialog("Qubes OS Setup", self.do_setup, (), transient_for=self.main_window) - self.thread_dialog.run() - self.thread_dialog.destroy() - - def do_setup(self, *args): - try: - self.qubes_gid = grp.getgrnam('qubes').gr_gid - - qubes_users = grp.getgrnam('qubes').gr_mem - - if len(qubes_users) < 1: - self.showErrorMessage(_("You must create a user account to create default VMs.")) - return - else: - self.qubes_user = qubes_users[0] - - if self.check_advanced.get_active(): - return - - errors = [] - - os.setgid(self.qubes_gid) - os.umask(0o0007) - - self.configure_default_kernel() - - # Finish template(s) installation, because it wasn't fully possible - # from anaconda (it isn't possible to start a VM there). - # This is specific to firstboot, not general configuration. - for template in os.listdir('/var/lib/qubes/vm-templates'): - try: - self.configure_template(template, - '/var/lib/qubes/vm-templates/' + template) - except Exception as e: - errors.append((self.stage, str(e))) - - self.configure_dom0() - self.configure_default_template() - self.configure_qubes() - if self.choice_network.get_selected(): - self.configure_network() - if self.choice_usb.get_selected() and not self.choice_usb_with_net.get_selected(): - # Workaround for #1464 (so qvm.start from salt can't be used) - self.run_command(['systemctl', 'start', 'qubes-vm@sys-usb.service']) - - try: - self.configure_default_dvm() - except Exception as e: - errors.append((self.stage, str(e))) - - if errors: - msg = "" - for (stage, error) in errors: - msg += "{} failed:\n{}\n\n".format(stage, error) - - raise Exception(msg) - - except Exception as e: - self.showErrorMessage(str(e)) - - finally: - self.thread_dialog.done() - self.done = True - - def set_stage(self, stage): - self.stage = stage - - if self.thread_dialog != None: - self.thread_dialog.set_text(stage) - - def run_command(self, command, stdin=None, ignore_failure=False): - process_error = None - - try: - sys_root = iutil.getSysroot() - - cmd = iutil.startProgram(command, stderr=subprocess.PIPE, stdin=stdin, root=sys_root) - - (stdout, stderr) = cmd.communicate() - - stdout = stdout.decode("utf-8") - stderr = stderr.decode("utf-8") - - if not ignore_failure and cmd.returncode != 0: - process_error = "{} failed:\nstdout: \"{}\"\nstderr: \"{}\"".format(command, stdout, stderr) - - except Exception as e: - process_error = str(e) - - if process_error: - self.logger.error(process_error) - raise Exception(process_error) - - return (stdout, stderr) - - def configure_default_kernel(self): - self.set_stage("Setting up default kernel") - installed_kernels = os.listdir('/var/lib/qubes/vm-kernels') - installed_kernels = [distutils.version.LooseVersion(x) for x in installed_kernels] - default_kernel = str(sorted(installed_kernels)[-1]) - self.run_command(['/usr/bin/qubes-prefs', 'default-kernel', default_kernel]) - - def configure_dom0(self): - self.set_stage("Setting up administration VM (dom0)") - - for service in [ 'rdisc', 'kdump', 'libvirt-guests', 'salt-minion' ]: - self.run_command(['systemctl', 'disable', '{}.service'.format(service) ], ignore_failure=True) - self.run_command(['systemctl', 'stop', '{}.service'.format(service) ], ignore_failure=True) - - def configure_qubes(self): - self.set_stage('Executing qubes configuration') - - try: - # get rid of initial entries (from package installation time) - os.rename('/var/log/salt/minion', '/var/log/salt/minion.install') - except OSError: - pass - - # Refresh minion configuration to make sure all installed formulas are included - self.run_command(['qubesctl', 'saltutil.clear_cache']) - self.run_command(['qubesctl', 'saltutil.sync_all']) - - for state in QubesChoice.get_states(): - print("Setting up state: {}".format(state)) - if state.startswith('pillar.'): - self.run_command(['qubesctl', 'top.enable', - state[len('pillar.'):], 'pillar=True']) - else: - self.run_command(['qubesctl', 'top.enable', state]) - - try: - self.run_command(['qubesctl', 'state.highstate']) - # After successful call disable all the states to not leave them - # enabled, to not interfere with later user changes (like assigning - # additional PCI devices) - for state in QubesChoice.get_states(): - if not state.startswith('pillar.'): - self.run_command(['qubesctl', 'top.disable', state]) - except Exception: - raise Exception( - ("Qubes initial configuration failed. Login to the system and " + - "check /var/log/salt/minion for details. " + - "You can retry configuration by calling " + - "'sudo qubesctl state.highstate' in dom0 (you will get " + - "detailed state there).")) - - def configure_default_template(self): - self.set_stage('Setting default template') - self.run_command(['/usr/bin/qubes-prefs', 'default-template', self.default_template]) - - def configure_default_dvm(self): - self.set_stage("Creating default DisposableVM") - - dispvm_name = self.default_template + '-dvm' - self.run_command(['/usr/bin/qubes-prefs', 'default-dispvm', - dispvm_name]) - - def configure_network(self): - self.set_stage('Setting up networking') - - default_netvm = 'sys-firewall' - updatevm = default_netvm - if self.choice_whonix_updates.get_selected(): - updatevm = 'sys-whonix' - - self.run_command(['/usr/bin/qvm-prefs', 'sys-firewall', 'netvm', 'sys-net']) - self.run_command(['/usr/bin/qubes-prefs', 'default-netvm', default_netvm]) - self.run_command(['/usr/bin/qubes-prefs', 'updatevm', updatevm]) - self.run_command(['/usr/bin/qubes-prefs', 'clockvm', 'sys-net']) - self.run_command(['/usr/bin/qvm-start', default_netvm]) - - def configure_template(self, template, path): - self.set_stage("Configuring TemplateVM {}".format(template)) - self.run_command(['qvm-template-postprocess', '--really', 'post-install', template, path]) - - def showErrorMessage(self, text): - self.thread_dialog.run_in_ui_thread(self.showErrorMessageHelper, text) - - def showErrorMessageHelper(self, text): - dlg = Gtk.MessageDialog(title="Error", message_type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK, text=text) - dlg.set_position(Gtk.WindowPosition.CENTER) - dlg.set_modal(True) - dlg.set_transient_for(self.thread_dialog) - dlg.run() - dlg.destroy() - -class ThreadDialog(Gtk.Dialog): - def __init__(self, title, fun, args, transient_for=None): - Gtk.Dialog.__init__(self, title=title, transient_for=transient_for) - - self.set_modal(True) - self.set_default_size(500, 100) - - self.connect('delete-event', self.on_delete_event) - - self.progress = Gtk.ProgressBar() - self.progress.set_pulse_step(100) - self.progress.set_text("") - self.progress.set_show_text(False) - - self.label = Gtk.Label() - self.label.set_line_wrap(True) - self.label.set_text("") - - self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) - self.box.pack_start(self.progress, True, True, 0) - self.box.pack_start(self.label, True, True, 0) - - self.get_content_area().pack_start(self.box, True, True, 0) - - self.fun = fun - self.args = args - - self.logger = logging.getLogger("anaconda") - - self.thread = threading.Thread(target=self.fun, args=self.args) - - def on_delete_event(self, widget=None, *args): - # Ignore the clicks on the close button by returning True. - self.logger.info("Caught delete-event") - return True - - def set_text(self, text): - Gdk.threads_add_timeout(GLib.PRIORITY_DEFAULT, 0, self.label.set_text, text) - - def done(self): - Gdk.threads_add_timeout(GLib.PRIORITY_DEFAULT, 100, self.done_helper, ()) - - def done_helper(self, *args): - self.logger.info("Joining thread.") - self.thread.join() - - self.logger.info("Stopping self.") - self.response(Gtk.ResponseType.ACCEPT) - - def run_in_ui_thread(self, fun, *args): - Gdk.threads_add_timeout(GLib.PRIORITY_DEFAULT, 0, fun, *args) - - def run(self): - self.thread.start() - self.progress.pulse() - self.show_all() - - ret = None - while ret in (None, Gtk.ResponseType.DELETE_EVENT): - ret = super(ThreadDialog, self).run() - - return ret - -if __name__ == "__main__": - import time - - def hello_fun(*args): - global thread_dialog - thread_dialog.set_text("Hello, world! " * 30) - time.sleep(2) - thread_dialog.set_text("Goodbye, world!") - time.sleep(1) - thread_dialog.done() - return - - logger = logging.getLogger("anaconda") - handler = logging.StreamHandler() - logger.addHandler(handler) - logger.setLevel(logging.DEBUG) - - thread_dialog = ThreadDialog("Hello", hello_fun, ()) - thread_dialog.run() diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/__init__.py b/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/__init__.py deleted file mode 100644 index bf4bddcf..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import spokes diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/spokes/__init__.py b/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/spokes/__init__.py deleted file mode 100644 index 70201b28..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/spokes/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import qubes_os diff --git a/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/spokes/qubes_os.py b/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/spokes/qubes_os.py deleted file mode 100644 index 9aaf8573..00000000 --- a/qubes-anaconda-addon/org_qubes_os_initial_setup/tui/spokes/qubes_os.py +++ /dev/null @@ -1,206 +0,0 @@ -# -# Copyright (C) 2013 Red Hat, Inc. -# -# This copyrighted material is made available to anyone wishing to use, -# modify, copy, or redistribute it subject to the terms and conditions of -# the GNU General Public License v.2, or (at your option) any later version. -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY expressed or implied, including the implied warranties 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, write to the -# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the -# source code or documentation are not subject to the GNU General Public -# License and may only be used or replicated with the express permission of -# Red Hat, Inc. -# -# Red Hat Author(s): Vratislav Podzimek -# - -"""Module with the class for the Qubes OS TUI spoke.""" - -# import gettext -# _ = lambda x: gettext.ldgettext("qubes-os-anaconda-plugin", x) - -# will never be translated -_ = lambda x: x -N_ = lambda x: x - -import subprocess - -from pyanaconda.ui.categories.system import SystemCategory -from pyanaconda.ui.tui.spokes import NormalTUISpoke -from pyanaconda.constants_text import INPUT_PROCESSED, INPUT_DISCARDED -from pyanaconda.ui.common import FirstbootOnlySpokeMixIn - -# export only the HelloWorldSpoke and HelloWorldEditSpoke classes -__all__ = ["QubesOsSpoke"] - -class QubesOsSpoke(FirstbootOnlySpokeMixIn, NormalTUISpoke): - """ - Since this class inherits from the FirstbootOnlySpokeMixIn, it will - only appear in the Initial Setup (successor of the Firstboot tool). - - :see: pyanaconda.ui.tui.TUISpoke - :see: pyanaconda.ui.common.FirstbootSpokeMixIn - :see: pyanaconda.ui.tui.tuiobject.TUIObject - :see: pyaanconda.ui.tui.simpleline.Widget - - """ - - ### class attributes defined by API ### - - # title of the spoke - title = N_("Qubes OS") - - # category this spoke belongs to - category = SystemCategory - - def __init__(self, app, data, storage, payload, instclass): - """ - :see: pyanaconda.ui.tui.base.UIScreen - :see: pyanaconda.ui.tui.base.App - :param app: reference to application which is a main class for TUI - screen handling, it is responsible for mainloop control - and keeping track of the stack where all TUI screens are - scheduled - :type app: instance of pyanaconda.ui.tui.base.App - :param data: data object passed to every spoke to load/store data - from/to it - :type data: pykickstart.base.BaseHandler - :param storage: object storing storage-related information - (disks, partitioning, bootloader, etc.) - :type storage: blivet.Blivet - :param payload: object storing packaging-related information - :type payload: pyanaconda.packaging.Payload - :param instclass: distribution-specific information - :type instclass: pyanaconda.installclass.BaseInstallClass - - """ - - NormalTUISpoke.__init__(self, app, data, storage, payload, instclass) - - self.done = False - - def initialize(self): - """ - The initialize method that is called after the instance is created. - The difference between __init__ and this method is that this may take - a long time and thus could be called in a separated thread. - - :see: pyanaconda.ui.common.UIObject.initialize - - """ - - NormalTUISpoke.initialize(self) - - def refresh(self, args=None): - """ - The refresh method that is called every time the spoke is displayed. - It should update the UI elements according to the contents of - self.data. - - :see: pyanaconda.ui.common.UIObject.refresh - :see: pyanaconda.ui.tui.base.UIScreen.refresh - :param args: optional argument that may be used when the screen is - scheduled (passed to App.switch_screen* methods) - :type args: anything - :return: whether this screen requests input or not - :rtype: bool - - """ - - return True - - def apply(self): - """ - The apply method that is called when the spoke is left. It should - update the contents of self.data with values set in the spoke. - - """ - - proc = subprocess.Popen(["/usr/share/qubes/firstboot-qubes-text"]) - proc.wait() - - self.done = True - - def execute(self): - """ - The excecute method that is called when the spoke is left. It is - supposed to do all changes to the runtime environment according to - the values set in the spoke. - - """ - - # nothing to do here - pass - - @property - def completed(self): - """ - The completed property that tells whether all mandatory items on the - spoke are set, or not. The spoke will be marked on the hub as completed - or uncompleted acording to the returned value. - - :rtype: bool - - """ - - return self.done - - @property - def status(self): - """ - The status property that is a brief string describing the state of the - spoke. It should describe whether all values are set and if possible - also the values themselves. The returned value will appear on the hub - below the spoke's title. - - :rtype: str - - """ - - return "" - - def input(self, args, key): - """ - The input method that is called by the main loop on user's input. - - :param args: optional argument that may be used when the screen is - scheduled (passed to App.switch_screen* methods) - :type args: anything - :param key: user's input - :type key: unicode - :return: if the input should not be handled here, return it, otherwise - return INPUT_PROCESSED or INPUT_DISCARDED if the input was - processed succesfully or not respectively - :rtype: bool|unicode - - """ - - if key: - # Do something with the user's input. - pass - - # no other actions scheduled, apply changes - self.apply() - - # close the current screen (remove it from the stack) - self.close() - return INPUT_PROCESSED - - def prompt(self, args=None): - """ - The prompt method that is called by the main loop to get the prompt - for this screen. - - :param args: optional argument that can be passed to App.switch_screen* - methods - :type args: anything - :return: text that should be used in the prompt for the input - :rtype: unicode|None - - """ - - return _("Please press enter to start Qubes OS configuration.") diff --git a/qubes-anaconda-addon/qubes-anaconda-addon.spec b/qubes-anaconda-addon/qubes-anaconda-addon.spec deleted file mode 100644 index 69a43439..00000000 --- a/qubes-anaconda-addon/qubes-anaconda-addon.spec +++ /dev/null @@ -1,43 +0,0 @@ -Name: qubes-anaconda-addon -Version: 4.0.9 -Release: 1%{?dist} -Summary: Anaconda addon useful for Qubes OS specific setup procedures - -License: GPLv2+ - -BuildArch: noarch -BuildRequires: python3 -Requires: python3 -Requires: qubes-mgmt-salt-dom0-virtual-machines >= 4.0.11 -#Requires: anaconda >= 19 - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Source0: %{name}-%{version}.tar.gz - -%description -This is an addon that makes available Qubes OS specific setup functionality -at first boot time. - -%prep -%setup -q - -%install -rm -rf $RPM_BUILD_ROOT - -install -d $RPM_BUILD_ROOT/%{_datadir}/qubes -install --mode 0755 firstboot-qubes-text $RPM_BUILD_ROOT/%{_datadir}/qubes/firstboot-qubes-text - -install -d $RPM_BUILD_ROOT/%{_datadir}/anaconda/addons -cp -a org_qubes_os_initial_setup $RPM_BUILD_ROOT/%{_datadir}/anaconda/addons/ - -%files -%defattr(-,root,root,-) -%doc LICENSE README -%{_datadir}/qubes/firstboot-qubes-text -%dir %{_datadir}/anaconda/addons/org_qubes_os_initial_setup -%{_datadir}/anaconda/addons/org_qubes_os_initial_setup/* - -%changelog -* Sun Mar 27 2016 M. Vefa Bicakci - 1.0-1 -- Initial package for qubes-anaconda-addon diff --git a/qubes-release b/qubes-release new file mode 160000 index 00000000..d5730061 --- /dev/null +++ b/qubes-release @@ -0,0 +1 @@ +Subproject commit d5730061d58bee7cc7b75dc04817812766c26c26 diff --git a/qubes-release/GPL b/qubes-release/GPL deleted file mode 100644 index 3f13b270..00000000 --- a/qubes-release/GPL +++ /dev/null @@ -1,347 +0,0 @@ -***************************************************************************** -The following copyright applies to the Fedora compilation and any -portions of Fedora it does not conflict with. Whenever this -policy does conflict with the copyright of any individual portion of Fedora, -it does not apply. - -***************************************************************************** - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - 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, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/qubes-release/README.Qubes-Release-Notes b/qubes-release/README.Qubes-Release-Notes deleted file mode 100644 index 2a3fcc42..00000000 --- a/qubes-release/README.Qubes-Release-Notes +++ /dev/null @@ -1,75 +0,0 @@ -Qubes R4.0 release notes -======================== - -New features since 3.2 ----------------------- - -* Core management scripts rewrite with better structure and extensibility, [API documentation][api-doc] -* [Admin API][admin-api] allowing strictly controlled managing from non-dom0 -* All `qvm-*` command-line tools rewritten, some options have changed -* Renaming VM directly is prohibited, there is GUI to clone under new name and remove old VM -* Use [PVH][qsb-37] and [HVM][hvm-switch] by default to [mitigate Meltdown & Spectre][qsb-37] and lower the [attack surface on Xen][qsb-24] -* Create USB VM by default -* [Multiple Disposable VMs templates support][dispvm-ticket] -* New [backup format][backup-format] using scrypt key-derivation function -* Non-encrypted backups no longer supported -* [split VM packages][packages-split], for better support minimal, specialized templates -* [Qubes Manager decomposition][manager-ticket] - domains and devices widgets instead of full Qubes Manager; devices widget support also USB -* [More flexible firewall interface][vm-interface] for ease unikernel integration -* Template VMs do not have network interface by default, [qrexec-based updates proxy][qrexec-proxy] is used instead -* More flexible IP addressing for VMs - [custom IP][custom-ip], [hidden from the IP][hide-ip] -* More flexible Qubes RPC policy - [related ticket][qrexec-policy-keywords], [documentation][qrexec-doc] -* [New Qubes RPC confirmation window][qrexec-confirm], including option to specify destination VM -* Dom0 update to Fedora 25 for better hardware support -* Kernel 4.14.x - -You can get detailed description in [completed github issues][github-release-notes] - -Known issues ------------- - -* On some laptops (for example Librem 15v2), touchpad do not work directly after installation. Reboot the system to fix the issue. - -* List of USB devices may contain device identifiers instead of name - -* For other known issues take a look at [our tickets](https://github.com/QubesOS/qubes-issues/issues?q=is%3Aopen+is%3Aissue+milestone%3A%22Release+4.0%22+label%3Abug) - -It is advised to install updates just after system installation to apply bug fixes for (some of) the above problems. - -Downloads ---------- - -See [Qubes Downloads](https://www.qubes-os.org/downloads/). - -Installation instructions -------------------------- - -See [Installation Guide](https://www.qubes-os.org/doc/installation-guide/). - -Upgrading ---------- - -There is no in-place upgrade path from earlier Qubes versions. The only -supported option to upgrade to Qubes R4.0 is to install it from scratch and use -[qubes backup and restore tools][backup] for migrating of all of the user VMs. - - -[backup]: https://www.qubes-os.org/doc/backup-restore/ -[github-release-notes]: https://github.com/QubesOS/qubes-issues/issues?q=is%3Aissue+sort%3Aupdated-desc+milestone%3A%22Release+4.0%22+label%3Arelease-notes+is%3Aclosed -[custom-ip]: https://github.com/QubesOS/qubes-issues/issues/1477 -[hide-ip]: https://github.com/QubesOS/qubes-issues/issues/1143 -[packages-split]: https://github.com/QubesOS/qubes-issues/issues/2771 -[hvm-switch]: https://github.com/QubesOS/qubes-issues/issues/2185 -[manager-ticket]: https://github.com/QubesOS/qubes-issues/issues/2132 -[dispvm-ticket]: https://github.com/QubesOS/qubes-issues/issues/2253 -[qrexec-proxy]: https://github.com/QubesOS/qubes-issues/issues/1854 -[qrexec-policy-keywords]: https://github.com/QubesOS/qubes-issues/issues/865 -[qrexec-confirm]: https://github.com/QubesOS/qubes-issues/issues/910 -[qrexec-doc]: https://www.qubes-os.org/doc/qrexec3/#extra-keywords-available-in-qubes-40-and-later -[vm-interface]: https://www.qubes-os.org/doc/vm-interface/ -[admin-api]: https://www.qubes-os.org/news/2017/06/27/qubes-admin-api/ -[qsb-24]: https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qsb-024-2016.txt -[qsb-37]: https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qsb-037-2018.txt -[backup-format]: https://www.qubes-os.org/doc/backup-emergency-restore-v4/ -[api-doc]: https://dev.qubes-os.org/projects/qubes-core-admin/en/latest/ - diff --git a/qubes-release/RPM-GPG-KEY-fedora-25-primary b/qubes-release/RPM-GPG-KEY-fedora-25-primary deleted file mode 100644 index c558c9df..00000000 --- a/qubes-release/RPM-GPG-KEY-fedora-25-primary +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mQINBFb9YzMBEACy1RmbMa6MNIpfHYxLwgCgBVnFYCdCHZqWfYYYK14potfJ9uI2 -4Y4w+oHiLeZ/HoG1EBQiDfXHetGZECAKEYQlE7BbRBcd3An9GalKTkWzcshhHFx7 -f5JIprL0uY8x2D9HmCfAjMxoh6usWjmAQ+DUYd48iYCkahyZa0/2CgX9HIcEz/M/ -oDeQbTwzw9AQbQz382oOErfRaXE/DQrjlx2ln0iejidiOe7DzGZOH9/Foc2KN062 -A9VnZ7tU1ACKT8NxZ78RaBL3qmvMGdb7kf7GywjpRNo4J7XCQUP+nP51eCur2wMS -4mY2idDL8Ojouta79pPrviVLmwzunJoFnBcnIhbndebdxPqgOA5XAOaTdLtgurMq -90V45DPyJpkdEyptovksH7zYNGEIGB8cFmrVgUwriB0TLNJTEcM4Knbh4imfTX42 -vCE+rEHn3YVqubG7rggibKznJbflwQcqOYZHLlPGYCxO47aaFUo5qJN7QN3lxajb -SzL/SdoHrVL67unzmHyktx5uF8Fv6EDgUV6NCb/IBiEwhR8YHi86NQ8nsI3K8Zhv -EnIxghJQD+cn3ykthwqYmZwi2PJDBiZsOGf3iXbalAjU3JVqoA7mboRPR+IBXQxK -xvAEpyIGeSUN8yBn+JVDRwZ37kkUVs2AOeUwMlnfFSqYFfmqbeQ73A9ECwARAQAB -tDxGZWRvcmEgMjUgUHJpbWFyeSAoMjUpIDxmZWRvcmEtMjUtcHJpbWFyeUBmZWRv -cmFwcm9qZWN0Lm9yZz6JAjgEEwECACIFAlb9YzMCGw8GCwkIBwMCBhUIAgkKCwQW -AgMBAh4BAheAAAoJEECJ2PL9sZyY1TEP/0u/v4g8HEdl9gqlhV179vXCJJiGtzB0 -7IGAu++mrsxBrDpqPZTEs6dG5MyzvhhHcmHYrZIiicPAeL9xlZ75oIqQuvjDncoM -kROSGvtfUnvocZhQIPvvkgWe3UAmmP3cSlVzu3KtbTpM+KL71incWo4Tentq9L/f -vsow7vvGbKUMoSSZbAMfjJkzlzSDNlFtaRkrCBQFJ76EKeggjnEZ8H0cowCdGuyv -uBoxQeeQM13b2T9c/uyrXCIcasaOTIKTcqTjbJUTIC2NIZ8OHjtlxZacEaN3ml1M -lNRtbIvqzbtv+sb+DsOVTyd1XIcxU9s+TDKvUm0OBNvj3Bm2BQbi8RHyLFbHWvhx -Gjzb8Wb/MnlcdTlk3M2iPv8dWHXjEM9n9TKyStdpBD9X3P/Gy2gUquHgkl8p+r8o -xmzNH534mKH47kPL/trKInKwv0fkBwxvuPgHG0n79eMHQenVA8gXzG4P6JkcyObA -6xGEEQ/wXFF0gLksmwFWuPm2GcnOI5KmGNgDP2PMhS8/cfJfW04a/tL2T2zr4CmE -LynbOvY/yOJk7/2W3Cb47+yhqo/htrpJDP6n6zQNNk3+e8EVgfhkQqFxom8yCmEP -pW0gBFeE83VoytYPXRkavwmFR+tplyZfOkXG9gysTn8SpRp5+B44O+VeaZumanQZ -kRFmBygMR6M/ -=NrXo ------END PGP PUBLIC KEY BLOCK----- diff --git a/qubes-release/RPM-GPG-KEY-qubes-3-primary b/qubes-release/RPM-GPG-KEY-qubes-3-primary deleted file mode 100644 index 66751ab2..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3-primary +++ /dev/null @@ -1,40 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mQINBFRsmtIBEAC7UgrYFrkPpSxjRoT9OmU0JqYmzLBqzRRdHCtakTdN8pRl/yE/ -zQHvmPnrQ57u45KtxY7EYveWC6RtNEw9IVvyQZp6jGQ05ljhwkNKfxKZcGvT4Qd4 -oCcXdKzGOjsw/mW0saklcrBdm7PiEhQvC0Oc66RreNeZ/2INQALVZLv808KLlNHs -uK9u/mjrT/A3RpzvFYvVnPJPJFjnYyGM8cVysCez4yeH9nymbLLD73pZyKhSU5Uo -x3LJKMfIUee0N677Lb45iM+iHW+kcHay3i7tev0xkm08V61ym2YwCJxIpMCvryvK -h1kScMeAOLsHkZpsqoXuSy8GFz1gKiZFCaiuF+ojRSXcN221Exfz/pF47aMd7Sm3 -0hSQk6Om9DESrzDXm85czq7Taw48NL35nCoPUqNfAP+BknSz79KoNkPDGP9+ps34 -S9o401dygAZToQNTJNuJeZwEVEBykRlsoeR/C9CTsSZMufBGBS9805h31FoZ3ePv -ITTaZidVWxUnRn4mlcYlfUEniyrmtc8IG0SZQZ+AQu0BgDZ/oV2LsS/g+YbN6qjF -LczBCWPngXUYvmm0syPdGfPQZJCnvwnEpPoRq+bqknLUN/EzEihbILR9gaO0U/XR -9+EB796N973+v6HsKxKmfJMqkIXa+PhLvfWVs3ZZnM6USTpA0DYHpvcVIwARAQAB -tB5RdWJlcyBPUyBSZWxlYXNlIDMgU2lnbmluZyBLZXmJAjgEEwECACIFAlRsmtIC -GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMsRyh0D+lCCAyUP/jM+dKCC -WIjTAFzdudJFfznjFjiggI7EdNJYpMd3FP8Gq53qqFH5rvg0fwJjnNGPBpfEjhHM -TlCNn3M0L6NZbB7PQwUBD332f2QwE4PIcuo1e7c9ySrhdMc0maR5+CcMlJHG6T8Q -EacL+Xhc91GC2Gi/qMOjE4lo337Y3GLE6WHFRVvqBpI+ovr9LYKP5vQ+InY+uVsP -LTL7AQVRDZcu4eQdI1HdJ0fYyhx5lJSiPWaM80VBkOgfF6HyGrMcjzWs+9gtYs76 -g6QoEKgu3YuPi1J1JE7d+Un7iYSqrUv3ljSDq2PMlx4vpq+oc1/1qHLyMYpGjmHa -cQRjPo8bqgZ4vo6BC4Za+SGliLPcN9w0ivjsaGZ2L5PHxJ7kCSJ6SbZUrjWhTZL3 -arWGCFQmYqAY5EkNSWrQePgkCj/5I5YAou39LnREN91KgYDT8bMeED7uQ/fskRns -Xfbx6ACsU69lLYIqd4HcuhcHWV9lTYtavjLKny71BauLALOve9uHmYX/cweBnt98 -8AWGuIuspvs3kwFJLu5k30m3HUMZPG8lDfN0R9v5eyoNxFc+WNbxHq4fIUXmbGfN -Jclsn3hzUUS3XBG2G9VDmcf/N82xlwRMDHD78G/+Q3MumQeLtlXirhASQqi3XdXk -CR5+NjOJZWRYfvk+WbJsshE3sosG2uLHzgs/iQIcBBABAgAGBQJUbJtEAAoJEN36 -Gj42h5SUuVsQAI5QPmqJvnUgUMzoj1gCWW2eJTbxTWs9jALN8JRqPGT4KKe+x5te -IgYkK056WlxBA73UDcXLQ4dKoqF9J3wMF2O+Ir7C46p+dFS5KTjUj4vaYMgAmshu -ihZmBChmldQpIYmFvWtdvdanEpaOiblr+AXK1Hd5aJrpBFf5I/EP7iCWeOXc5FzK -UEZylf8PVmNO3s8uuyWMdGR7cGcukwOONzre9XurO6P8fHfjh+vXeI+5KsJ1Cd2y -22OWAK0QjtCBLTQ4E6WUM2/FjLU55HB3fdAo4ucd2QgJhf4HuWq6KiLRz74O04o1 -lrqtS3M9GfLmQx/lUF8vIS4jVf8X7/iZY52VCJM5PDoeF0xKTACJ2+emuQfyw0SE -7AfxCrt35cvXBWAzUN/kLFslQkBI+/FssnUDBYGeU+SkgEfkpuWwRsqfwCITN0I4 -jmwDfa+6PQpMF9lkgF+BanNa8bfroWztmW9dZYp6jyV8/VI5SeG7RYu6TZUeXXoS -eMIL/d9eIhebLj5syd0BNukZMpI92wnSDWTWxBZFliltOIv6/yC6Bj7UaCyt2JkV -/xbi+rOiemBS1mPHhV/CAM7sV0TM8xONyVXM4g5eVj0RStFYjc586ZguleNeIfYT -qDqp/VUKnu6jYNOWS2W/kpenXId22X1TdXcxwm3U3kOc06pygu1fTdDp -=idYC ------END PGP PUBLIC KEY BLOCK----- diff --git a/qubes-release/RPM-GPG-KEY-qubes-3-templates-community b/qubes-release/RPM-GPG-KEY-qubes-3-templates-community deleted file mode 100644 index c59234bd..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3-templates-community +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mQINBFRuCvwBEACzfqELw3pZ16LxWyMNfj+bGmMMmN7Y8qmqybnPytmOeISEtDQj -oOStIpF8mG8yBC489Rq9JeG5z+H5WP8DIdEyyHhv3sK85jaALEyZGNBfLoHnImiT -EiAmsJJpmdQ+NiUvufIBqaGGLQCmhpJR/vxc0tQHKfkjjybcJej66tJ1sX0t+ism -B1Q20P/rxUQk5uqca6zU0fIf/Iv59jwGdR/9nYVzmH9kCyva79+g6d5jc1XIqPtS -YSk/P449lAuiYsiE4h4JqpIT4kTgJbgXyMABraC/+dBCmNA8lmMifk1FCG+9CqbF -8av/5NbPpXSvsTGPkK7grIkWkWTAdQy8QWySsz7p+V5Z9rMiSjaHlt4q8/gkyjQ2 -PQCZXj49ulotDMpwMC6qxaTupMyfG2hTExLNvWn93uFojaaad3AVeiXna3N1fLnh -4m5FvSFmm8Z6u7NptdZSj0WA3AAVRaLLUCY+bev77Leyak/aa8kR6SgFZn+Lwovl -ICkV2Xv7CWqDy2lm41/4M03j7osYhLIUSLEPMYwmu1XUYzQ9w+rk79hFuk0VXr1o -sCqvnx0v4UetsOZGr8z78VWF2MqaHnU1d36i2qQIlehFxiffXJAQV/mb6BpZAt7H -JDmiKkqQY8NZZheAD/mPqDoE2QrNtzgsS346oK+G6DGDa7ZqxV1W85hBRQARAQAB -tDJRdWJlcyBPUyBSZWxlYXNlIDMgQ29tbXVuaXR5IFRlbXBsYXRlcyBTaWduaW5n -IEtleYkCOAQTAQIAIgUCVG4K/AIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA -CgkQ0ekH0wyCMb8wpg/8CVmtyp/2NeJKLCukd96+ssUKS8HHOtmdVWHVFKqD84IB -+trtF8nqP5oIdAG1CEx6wEO2eBmLJm+4UKVnFSjQzpqAkpFtzQExMFOzDZ+OyH4B -KmS3yglCxJyxzz7Oc2wgEC2v4hht9X9kib6s6b+r09rz7wzTRs51w7s5KZdWX4mD -hm3yQsWwvu+HrYzeyc33aOfE6LjSUecc5FJiYgfqaCzWRyqBabCKZFXYNH31GnFZ -i5DfsD9e3kY6BR8kmsmXZ/4IWBQMpz3/f3i0NWvkF/x31C3YrZX+h3Josn39e7Cr -EE0Y9snhGF0TwGZVjK78qENypMj+wr9djtzpxxFuUNcKwZEyzqaIOJAR4q8Dv/Qo -A/DG4YrObxwjRznlJC5FQqiyFt5Vwt4lUdVAvhScC+n5zVDJ1OFIUxe4af8XfMgs -tE1/k1J4lLxr3KkJqeysDawlcWVYrHO/8dc3/sDywAI8otqB6xcjbauLmxrY5krz -A7MpAzo5vBh4JwV21lW6ClcF5HiPhLQltA/5vmeRLEMlUPP/G3Z0KOmAL4ivdqQ1 -ROxPbgKTxI6EfGNU31yTEJ36kN/X+yDE3xWlbUloVFNyER4nZq4BubUlEWs3IyuH -w6wijIZSr8GO3HurQbBeKtQbo+WrNkUHvtaHsJ+lIfHTQdAG4OHZBCJ8whbJSZs= -=K59S ------END PGP PUBLIC KEY BLOCK----- diff --git a/qubes-release/RPM-GPG-KEY-qubes-3-unstable b/qubes-release/RPM-GPG-KEY-qubes-3-unstable deleted file mode 100644 index 622dd4f2..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3-unstable +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mQINBFRuA2sBEACjOSNmDK6g6vpirgy0mRbRORP44eI0R45JN3oSGgsmCD5jJSTo -RRUE1RknbK26+bjnsKAKwpP67CA3So/5sa4l7i7G4xJdgVZooM3ZTK7ubQCqkMYB -h4yYTBAtt7vi6olhKvEkCvhzozcUa4/qW/NuIuTCpF0G0kBUWyqqYQzwtWD5QimE -6NjbxjuKf0P0KtzUvF2SdNYh87kXUj+6+RcA6VxjsLY3gSWnl+786L4yKUekRjB7 -JvD9yMd1V+U/P1MUamJFyn68Aih6dRi17/ZvHKHY0gj6k6acE34Oy6SDmbwuWWeZ -jMpSACAHHhWJID0wwrig3ZsxV4lGWoND/n+OSmEyWg4J8dB1thZpoBgjL05prBgC -oygzwyHlyewVqdtdjMJOSSk34pehQ35lPQ9XqASnF1igQaVTKFxUIg1eoaQMZibd -dSJzEcwuFUeJ1S22lyUdtaC/WdGb5vvHSEDiOA/3Ll0gpaHm2tor08J0s9C6CD2Q -irF/FwUu52yO/bNtOkXunX5G2Ua+c49o3D6bvc+mfBY4EVKN5k6URW+vy47gJDbH -4CVcxgBRoFy8SdAogqf/H/4+UOAR5jo5QLzsRq0mRHRbleLHwyH5PQxF9M73UVgL -J5OohzOoThyiWbIesjyFw9aiC1Dk9l6ugprPTAS6LPNpxNaByNlpbX/eJQARAQAB -tCdRdWJlcyBPUyBSZWxlYXNlIDMgVW5zdGFibGUgU2lnbmluZyBLZXmJAjgEEwEC -ACIFAlRuA2sCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEJP+RAmjx3Ot -WFMP/1y98l3kXaIUIXZFjdtCmiZvFZKETP5S/81Rn32PISSs5TklxWbt6B3rNY67 -ovtK10qJXxarLeu0+IR+UM+AV1R/OvT3qtrJuvbbr0vIyy0RONaapoPIdI2eD2FC -E/7JTv7KibKSE4nI9W9ZdRboJB1MPigffBR7qAC2ReCGtyKVUWRCKh57aQqbSDkZ -AruTV1gXbFDusuKh1kQ2zVXFMn9KU98Qv0nKewjndNwnfOk7UFdsTkRCEyHr19wx -KOuoLH4bfCyV8dEfriM5d6ABjmpv0Olp9XFT5YznoxrsXAjO0aUIBiNYYTk5vRLG -ixBJGRjruDUzCZ8gIObIEwfAJsJ4LsFZ5LI0csF2uNueeogmNm0LfejyrWBlyRfW -XdM5WP9vAbWectxNfaW84pPkvAEaer2W+x9ddO+FirTPNgU0M55JxcjKve8XsbuK -iOA80h8eiMuukn2CDENVG9g7hiui9YzcenQKzmZIYYARWPzSKRyRrMFWrhDjOZ+R -sG2PKzuJVIatGqhzqjD4CmoMPkVDli9p1ADOJLMJu062D53aWjgVi6DFHt5cZmFx -rvDPiLqy/uuWWSDaDgX36KEenvwzQLjlEdTrN8a3qiBMxeceLWFLQqAknQnmU19/ -HcyP+lX0FzFFm1yIB/aEQpcXsfJcil0Dg6zAeFbXxdQYWlVm -=7CDU ------END PGP PUBLIC KEY BLOCK----- diff --git a/qubes-release/RPM-GPG-KEY-qubes-3.1-primary b/qubes-release/RPM-GPG-KEY-qubes-3.1-primary deleted file mode 120000 index 4569d09d..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3.1-primary +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-3-primary \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-3.1-templates-community b/qubes-release/RPM-GPG-KEY-qubes-3.1-templates-community deleted file mode 120000 index 30517a7f..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3.1-templates-community +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-3-templates-community \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-3.1-unstable b/qubes-release/RPM-GPG-KEY-qubes-3.1-unstable deleted file mode 120000 index ae353e97..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3.1-unstable +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-3-unstable \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-3.2-primary b/qubes-release/RPM-GPG-KEY-qubes-3.2-primary deleted file mode 120000 index 4569d09d..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3.2-primary +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-3-primary \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-3.2-templates-community b/qubes-release/RPM-GPG-KEY-qubes-3.2-templates-community deleted file mode 120000 index 30517a7f..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3.2-templates-community +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-3-templates-community \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-3.2-unstable b/qubes-release/RPM-GPG-KEY-qubes-3.2-unstable deleted file mode 120000 index ae353e97..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-3.2-unstable +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-3-unstable \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-4-primary b/qubes-release/RPM-GPG-KEY-qubes-4-primary deleted file mode 100644 index f39a58ce..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-4-primary +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFi9Xv4BEADTkOlBTDmO6DsFJi754ilTFqsluGWleeProuz8Q+bHFlx0Mqtk -uOUcxIjEWwxhn1qN98dIPYds+mD9Bohamdh+bJYxB/YYj9B2xvURhCpxVlWzzkzt -i1lPYhj/MR637N9JqIdILmJSBFDxmnuWfQxfsbIsi4lUx5oq6HzIAYXzUzA+0/0a -c/j0zAm9oBq+pXPad/xkH8ebkNAL0+HbHArBNFzrhVKmi1VskpxurPIYZEcQ0dUu -n447TM/37y+dzmNYxvSuK2zBPFa9upXsKZEoVaJqksXDdX2YuMsZFiesdieL85w7 -sD1iI6Eqmp5EIZXa8t0/MHTaDrm1tDKJdSu/5zrh0RFh+J73qxJH8lDJqcTVggCe -Xoasoi1LNg0CIgzVM+zLEDbpNd6mILdXQNHzsU4CP2UFpMxOUUDMEPYSE3WBExWX -0dBO8QgvTOzqvRWq7TL2jKaprsB/ZXiZief5hOK2QFL6HFEOuFuWLf3tb2+tpJoZ -LXbXYW+6M+WNRHr9mDg3o6SuZmSwUCOa1FV/i51gqiUHmXEfIGH3iE5WWq2bvUG1 -dhjkzDGPL9fXbCWS6+QARakXRbxslsc4RgMrQR6nLEAuOL7GDaG3c7ldqgfotkal -5KDB5/1AxYW1TC0JfoKWalYrfXlUJlbHcvDFqHdyljOnoeJ8WVqLNE9hUQARAQAB -tB5RdWJlcyBPUyBSZWxlYXNlIDQgU2lnbmluZyBLZXmJAjcEEwEIACEFAli9Xv4C -GwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQGEh5L54nlem9QRAAkaDEfYey -FoldssIDE/gliYYb7RSYBjs+QrYJQjBxFGXXPgHS5kGMZfMkqVVBc8EtHh41q7gU -mUIHVbjnKIcYaKLaVl/qb9Jkx+6/NxEYWjNVEMMwPk820QgI1alWrweH7ZuxxGlz -CzOQsyKZLH3TESEf46CUjv9FHW2nKPAp5qVMzLRlgtquQAdfh7SWau7Kd+WPQOiB -9cj+j3/yswsrpLmvqJP8trS/aKAhsn2jGrxwSAbdGCzQorJjUy5HLZ6xVIk9yD0T -+o9cbK4SQSuOHUiA9Z5gA7vuxwOuloDhIm74k2PBWMaUEvx19nIh4XmgGEKNzI6V -SbR+s+d9ciQ/aC/bXdeeZOpCDaty54D8sKzMi2y15Urycxwpz508LwE6I3Zm0Won -xMEf5gGR30szgQdh6sJKIqZ2nVDLBg4H1mc4CULhsgViN/vM3Rrj2t4kOwUM30AU -M49o4JPzY4wvhsAmhIQGl38C8wDkSqPwntRsszpbLgzI3Lsxb00xiPcLR6Y/pviH -AfHxh/1uYymjD1Fq9u9ylgR6+15qqEYY/uEHr2EQyVvXQ08R1iKkT+v8fufMFUWa -rJxyB+5v/RPRKvRRi9Xb1HkoiFo3E/bEPYKlGA2colp5iqFYpTUBJYJXyMosgjI+ -mqH0I+V+LuMtlE521YHKg0tsB9GVlfWBS12JAhwEEAECAAYFAljAUaEACgkQ3foa -PjaHlJR8xw/5AYj/vJNbpnFNYV1jK7AwaEScpGpuDwh+izdGB6eCajynoZMmHSs5 -S3ToygNDo6Tlnh4/Tk7g6nG+eRWdAGghrrz2TXZd0sQX2KJ+m2omT5TZMrwPzM0v -HcUSAZhW1+nK8miMdvxeOAtY91OaDXwjddii/f420m+9tXwCVKbD+EC83wPpr76r -sokeOrp5H53CZQ++SbbG7qRmj4uc+VuyXNbAYNDa999Dpm5CW95LgMJ8/YpZbQ9S -Gk8xlo2DTdBig84yO8Dp9L40KxhIbtpOfLZSWR7OwfMchb2wdt/rRcFsAUPjW7of -/ZO7lQIPfkdl6cvssoZEjEGZnaxjRzR1b6GtPmlrq8MwUHOZqVizlo9vskuAczYl -VECk2+D5ZH52GsSbX+C/2DpLUI+o8hLmNDkyBHkz7eOV69lMOzKKsXVyOyrsaLY1 -xNY6JPhMwJVuX8zNW2upETvWs8kr+ZOSvalinvmD6BAQp602PQRnUYDgRxG7GXw+ -z9D/6ea14TjGpQWW+wvRUUpqgs7WKCzjAAPDiqTpLvz5xtSTToW/qQJJn4LO7w3H -Qo9G00Mruapdmy4nV5lHqsjm817M1vChTq1Q5+4ZPLMBoAndNM6vZAVJzfhhR+zG -ZFp6oNCNJuSPFd+xN4tczA+aNZgUDDYhcvelFevUubLSjAR3ulfwxns= -=d8U3 ------END PGP PUBLIC KEY BLOCK----- diff --git a/qubes-release/RPM-GPG-KEY-qubes-4-templates-community b/qubes-release/RPM-GPG-KEY-qubes-4-templates-community deleted file mode 100644 index 2472ba60..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-4-templates-community +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 - -mQINBFm6TXkBEAC4Kxi6jXkcWx+BLOXYHCMGmpeKbQ0YROQf4ERLg7xTdPzYM48z -NISHlvjKYZPgPM96TuSdXVVLfLU1fWPNOZ+q0ewmK4vTvrprFr4B0z/QxheGH0ud -c4f4pO0XItAnU+sundF+i3yTF+LyPqZHkwud7HckmlU5xKJuW7f2d0/ql2RV9UR+ -3tTdGUxRD6rSZpJz2uGi+L8auo287O7QCkCOVIPXn7BD/aDU3L+vwIJsoXds2c4Z -i51gyd3AFeWlPzDORkavKZ8Ixeqpr191azxVq7ExE9wul4Wg5RDXmsmonZDiVRvs -H9kqJi0do49YLBdbY3+saDvZwSJo90zhzgyYRyv+hINLEKfPAtcZgN4Cdvnmc5RE -JkA8UlGas9tESwuZpJoqipb1mgzzqFZwr+wQwVujf4CbAC944zLavKWPaTGBfwZM -LdviLjjGXrvBDABauDM4yTjdhhQA/d9YpGzbLao4eoFhbGddtOQswLlfWLr3uw54 -M8g+lpo0g7tmbQScMm1UxeNNleEOKugxb2zth6SluLs4iEtUBeWIMf4l/xh8D9A/ -Rm9ez5Qdbryk6hZpZOTdr5nrqCygY3ddu9p3iAOHT5OnLWFoLIwxwtVPTxbqc1j3 -ESRFXQSQSlSPMyc6vUuhC4uwAcB5dqmc6aLr6wvtS1WwErwKYtS7ysm53wARAQAB -tDJRdWJlcyBPUyBSZWxlYXNlIDQgQ29tbXVuaXR5IFRlbXBsYXRlcyBTaWduaW5n -IEtleYkCNwQTAQgAIQUCWbpNeQIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAK -CRD/4yLWQCLjk9utEACv87uJwlLQ90zIkFHZlRpAbbczJLXUG9QPSrvcK5c9slm1 -mTDfz0xjkm2bDFgUXB0RYG5MYyraKEIzKyp6LLfHsg5zFMFWrqQDp4CMWivxZ0ce -KtZE0lRhZhnkESdtueRR9+kxDrShXJHu/Jv4fuZ1nGgoJllGAA8PZkqSsjGY6t5h -69eMJIwE5BIFiUZupVzQSC9lpwNsm2c0xV1wZVX8xyw+H7RmqUWtVKb7ueuXnk3V -iQCpOvhfu31JAI8byHGt//XMV6WgbViUNdCRDW/AhJkYH+1PhhOcNoUiRA1G2CLg -DJXoYf8SuGdOIeoud4/oCVjegFPESt0LqtTP3kjB4lfmcbJK5xuVesjlXYxB1fty -r1jQyZcQrlSgtukCjNwi/DiUwzMU+EP9C0+eVU0KRQiXVfX4meApIWAMZOrBrWm6 -lDtYExQYYpNq11zzHfv4DD8g+9WXOgpnqJeQw1dB2U1j9csrztBMZcutmN5o18QV -ZWfnjN40nbeomeHtNhkkOzXC7wgN04WaUJP8YCsbVA6Lr+0YJzUTeOCoyYDWSr17 -1Ic128r52ZKFZ6MkSMCRDtq+kgWJhKPXFsvFMcJOXFYAepJgBb7orsvCpDeh+Kmm -OZTmURpMKMQGaqu/rFcfEHC5XS7cGh8Z6VKMiepU//syGa8UaP/zfNNUxxlXdg== -=W2EU ------END PGP PUBLIC KEY BLOCK----- diff --git a/qubes-release/RPM-GPG-KEY-qubes-4-unstable b/qubes-release/RPM-GPG-KEY-qubes-4-unstable deleted file mode 100644 index 7b120feb..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-4-unstable +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 - -mQINBFk/KJsBEADR8mS6Z0NYFnY99BdaYN2Hng2IYIc56qMr+OpdwnriiGZhnd9m -LyL/HJoFpg+kqdZyI9u31kAzXb2GbaCc75O46T1QckrlTInQns889k43vxRHIZCe -KhIAakexLI1MynUIZtwB23pSeNrfIpkNMY2VwE6wrY57fSnb3+67/Jj7spVoMekw -2M6U3cbzB7ijBECmzvRCnF2X0qs0r3qyaneunkCUPHbhM6/EUim722efMzVDu43Z -XEIC3Vw/ydWk2ulyHEdK8ZZ8OfyiMEWvUFm1yvFDr4jS3Wl0bHYs4kGozlu9xGDz -MO9966awBW4yCIl5XzIR2qcYdeDZmNysbafOkmcB8ObRkOAZeGjCpJBs0mgpMSfN -ZXAQFw/COw7yyPH2GLxIOPYLYHzM0XkOPIvl5vl9F2pLT2x9emIR1D8lgqdNMIhW -4eIcw50jS1TjyBCcS4cgiiCHT+rdSp6u7GpqRfwQNXBHOGHptkLY+VrqwtJ+5ckG -oMIVKq/cLpHVe5usBiPs8v8uK0ufNvj3NmuAypwNsW49igLBOhIy8s9OjDnGtWfX -2NU/QXQm/IBAAzXZ0VKPl9U4rAaidpJt991OZ+D2BAwZn2Go/vUPWi6/IqAvaE7g -vZjBW7Hucpd6h26lEAIdzFqgym6yqCdQxdaOn9pP1qzRplUXqo9DAH2i5QARAQAB -tCdRdWJlcyBPUyBSZWxlYXNlIDQgVW5zdGFibGUgU2lnbmluZyBLZXmJAjcEEwEI -ACEFAlk/KJsCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQevnGU3u23ofo -4g//Tmjw09UAL0uV/Oyjz1C0JBWQ7T7rt63L5KQ2S0DRjEykBJnZ8MPkYb0oXjOh -SAqhJdA0Exjo+OIyofpLkT/Sjz02qE4auQni9aUYr6IqfLmOaQHkCxq8MNhSyu8s -T7zTLPcP8JO86U0lWZ0n2k5fAyZKFqKIBQJAOGg1M3W4m0jIhNK5VCNLGCxyDvZJ -kmh4STQdQWA5pu6dw8ruwhfWUPKXUVJttWWXTJd+MDR5Q/QNNATsK+123zmjqB85 -Wz1H6f4aGXrJGkz8Ize22H+56mxZ/B7ZFRAeKZwH1wXRg8mE33k77aJW0QrIbc7Y -TVeZBTs38AxiG+0fiFTdZWmknkJ9YEcTMYtYlUrxpqaPjw1x8tLKd/mo/A7yvdo8 -XzvRs04aXVGS65jYS9rA4uTKXJ3q/pKouPLQT4GEcnDWWP63un3Ku6iSVyWWnOS6 -xJbFo1pgoSpNqjVh+oL3qU88nbN7KGaSua9FsAJknKzvzZheLqvrBddEFUvELGwx -bbXzzwocIISe9m3NZnOMdjAGjmoukwCVFEFeq/9ieLRe5wcbKNg8pogiQRt8Izar -lsSbtUT0s8X4EmD+61/g6nu8+RcNeYPrWqB4KMbYPiz30qsiP7XoTNVJYDxjU5md -6watPaYvxmqnXkjdwM4Zpaq3cs3YZcMyqp/y2eus89EmDIY= -=ShJt ------END PGP PUBLIC KEY BLOCK----- diff --git a/qubes-release/RPM-GPG-KEY-qubes-4.0-primary b/qubes-release/RPM-GPG-KEY-qubes-4.0-primary deleted file mode 120000 index a945513b..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-4.0-primary +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-4-primary \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-4.0-templates-community b/qubes-release/RPM-GPG-KEY-qubes-4.0-templates-community deleted file mode 120000 index 1f4c5100..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-4.0-templates-community +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-4-templates-community \ No newline at end of file diff --git a/qubes-release/RPM-GPG-KEY-qubes-4.0-unstable b/qubes-release/RPM-GPG-KEY-qubes-4.0-unstable deleted file mode 120000 index f4fdf1b0..00000000 --- a/qubes-release/RPM-GPG-KEY-qubes-4.0-unstable +++ /dev/null @@ -1 +0,0 @@ -RPM-GPG-KEY-qubes-4-unstable \ No newline at end of file diff --git a/qubes-release/comps-qubes.xml b/qubes-release/comps-qubes.xml deleted file mode 100644 index 33538aa1..00000000 --- a/qubes-release/comps-qubes.xml +++ /dev/null @@ -1,1458 +0,0 @@ - - - - - anaconda-tools - Anaconda tools - Инструменти на Anaconda - Eines d'Anaconda - Nástroje Anaconda - Anaconda-Werkzeuge - Anaconda tools - Herramientas Anaconda - Anaconda-työkalut - Outils Anaconda - כלי Anaconda - Anaconda eszközök - Instrumentos de Anaconda - Peralatan Anaconda - Strumenti di Anaconda - Anaconda ツール - Anaconda tools - Anaconda-verktøy - Anaconda-gereedschappen - ਐਨਾਕੌਂਡਾ ਟੂਲ - Narzędzia dla instalatora Anaconda - Ferramentas Anaconda - Ferramentas do Anaconda - Средства anaconda - Nástroje Anaconda - Mjetet Anaconda - Anaconda алати - Anacondaverktyg - అనకొండా టూల్స్ - Засоби Anaconda - Anaconda 工具 - Anaconda 工具 - - false - false - - authconfig - btrfs-progs - cryptsetup - dmraid - dosfstools - dracut-network - e2fsprogs - efibootmgr - fcoe-utils - firewalld - gfs2-utils - glibc-all-langpacks - grub2 - grub2-efi - hfsplus-tools - iscsi-initiator-utils - lvm2 - mactel-boot - mdadm - ntfsprogs - reiserfs-utils - shim - syslinux-extlinux - xfsprogs - - - - base - Base - true - false - - at - authconfig - bzip2 - cronie - dbus - diffutils - dmraid - dump - ed - gnupg2 - grub2-starfield-theme - irqbalance - linux-firmware - logrotate - lsof - man-db - man-pages - mcelog - mdadm - microcode_ctl - mlocate - nano - ntsysv - numactl - parted - pciutils - pcmciautils - perf - pinfo - qubes-anaconda-addon - qubes-release-notes - qubes-release - quota - rsyslog - smartmontools - sudo - symlinks - systemd - tar - time - tmpwatch - tree - unzip - usbutils - util-linux - vim-enhanced - which - yum-utils - zip - - - - base-x - X Window System - true - false - - desktop-backgrounds-basic - glx-utils - gnome-packagekit - initial-setup-gui - initial-setup - mesa-dri-drivers - xorg-x11-drivers - xorg-x11-drv-libinput - xorg-x11-server-Xorg - xorg-x11-utils - xorg-x11-xauth - xorg-x11-xinit - xterm - - - - core - Core - Kern - ማዕከላዊ ቦታ - اللبّ - মূল - Nucleu - هستگ - Падмурак - Основа - কোর - কোর - Jezgra - Nucli - Úplný základ - Craidd - Kerne - Kern - Πυρήνας - Core - Núcleo - Tuum - هسته - Keskeiset - Core - Núcleo - મૂળ - ליבה - क्रोड़ - Jezgra - Mag - Հիմք - Nucleo - Inti - Bugas - Lágmarkskerfi - Core - コア - ბირთვი - ಅಂತಸ್ಸಾರ - 핵심 - Pamatsistēma - कोर - Основни - കോര്‍ - कोर - Teras - Kjerne - Kern - कोर - Kern - Kjerne - Bogare - ପ୍ରମୂଖ - ਕੋਰ - Rdzeń - Núcleo - Núcleo - Nucleu - Основные - න්‍යෂ්ඨිය - Úplný základ - Jedro - Bërthama - Срж - Srž - Srž - Grund - கோர் - అంతర్భాగం - Система - แกนหลัก - Çekirdek - Основа - مرکز - Lõi - 核心 - 主要 - Okuyikhona - Smallest possible installation - Kleinste moontlike installasie - ትንሹ የሚቻለው የማስገባት ሥራ - أصغر تثبيت متاح - ক্ষুদ্ৰতম সাম্ভৱপৰ সংস্থাপন - Instalación lo más pequeña dable - هوردترین نصب ممکن - Найменшая з магчымых усталёўка - Най-малката възможна инсталация - ন্যূনতম ইনস্টলেশন - ন্যূনতম ইনস্টলেশন - Najmanja moguća instalacija - La instal·lació més petita possible - Nejmenší možná instalace - Arsefydliad lleiaf posib - Mindst mulige installation - Kleinstmögliche Installation - Μικρότερη δυνατή εγκατάσταση - Smallest possible installation - Instalación lo más pequeña posible - Väikseim võimalik paigaldus - کوچکترین نصب ممکن - Pienin mahdollinen asennus - Plus petite installation possible - Instalación o máis pequena posíbel - નાનામાં નાના શક્ય સ્થાપનો - התקנה מזערית - लघुतम संभावित संस्थापन - Najmanja moguća instalacija - Lehető legkisebb telepítés - Փոքրագույն հնարավոր տեղադրում - Le plus parve installation possibile - Instalasi sekecil mungkin - Lágmarks uppsetning - Installazione minima - 最小限のインストール - უმცირესი შესაძლო ჩადგმა - ಅತ್ಯಲ್ಪಸಾಧ್ಯ ಅನುಸ್ಥಾಪನೆ - 가능한 최소 설치 - Vismazākā iespējamā instalācija - सबसँ छोट संभावित संस्थापन - Најмалата можна инсталација - സാധ്യമായ ഏറ്റവും ചെറിയ ഇന്‍സ്റ്റലേഷന്‍ - सर्वात लहान शक्य प्रतिष्ठापन - Pemasangan sekecil mungkin - Minste mulige installering - सम्भावित सबैभन्दा सानो स्थापना - Kleinst mogelijke installatie - Minste mulige installering - Go tsenya mo go kgonegago go gonyenyane kudu - କ୍ଷୁଦ୍ରତମ ସମ୍ଭାବ୍ଯ ସ୍ଥାପନ - ਘੱਟੋ-ਘੱਟ ਸੰਭਵ ਇੰਸਟਾਲੇਸ਼ਨ - Najmniejsza możliwa instalacja - A mais pequena instalação possível - Menor instalação possível - Cea mai mică instalare posibilă - Минимально возможная установка - සිදුකල හැකි ඉතාම කුඩා ස්ථාපනය - Najmenšia možná inštalácia - Najmanjša možna namestitev - Instalimi më i vogël i mundshëm - Најмања могућа инсталација - Najmanja moguća instalacija - Najmanja moguća instalacija - Minsta möjliga installation - மிக சிறிய நிறுவல் - సాధ్యమగు చిన్న సంస్థాపన - Сабткунии оддӣ - ติดตั้งให้มีขนาดเล็กที่สุดที่เป็นไปได้ - Olası en küçük kurulum - Мінімально можливе встановлення - چھو ٹی ممکن انسٹللشن - Cài đặt nhỏ tối thiểu - 精简安装 - 最小安裝 - Ukufakwa okuncane - false - false - - audit - basesystem - bash - coreutils - cronie - curl - dnf - e2fsprogs - filesystem - glibc - hostname - initscripts - iproute - iputils - kbd - less - man-db - ncurses - parted - passwd - plymouth - procps-ng - rootfiles - rpm - setup - shadow-utils - sudo - systemd - util-linux - vim-minimal - dnf-plugins-core - - - - fonts - Fonts - خطوط - আখৰসমূহ - Fontes - فونت آن - Шрифтове - ফন্ট - ফন্ট - Lletres - Písma - Skrifttyper - Schriftarten - Γραμματοσειρές - Fonts - Fuentes - Kirjatüübid (fondid) - Letra-tipoak - قلم ها - Kirjasimet - Polices de caractères - Tipos de letra - ફોન્ટ - גופנים - फ़ॉन्ट - Betűkészletek - Characteres - Huruf - Letur - Font - フォント - ಅಕ್ಷರಶೈಲಿಗಳು - 글꼴 - Fonti - फान्ट्स - ലിപികള്‍ - फॉन्ट - Font - Skrifter - फन्ट - Lettertypen - ଅକ୍ଷରରୂପ - ਫੋਂਟ - Czcionki - Tipos de Letra - Fontes - Шрифты - Písma - Фонтови - Fontovi - Fontovi - Typsnitt - எழுத்துருக்கள் - ఫాంట్లు - Ҳарфҳо - แบบอักษร - Fontlar - Шрифти - 字体 - 字型 - Fonts packages for rendering text on the desktop. - حزم الخطوط لإخراج النص على سطح المكتب. - ডেষ্কট'পত আখৰ দেখুৱাবলৈ আখৰৰ সৰঞ্জাম । - Paquete de fontes pa renderizar testu nel escritoriu - بستگان فوت په رندینگ متن ته دسکتاپ - Пакети с шрифтове за извеждане на текст в работната среда. - ডেস্কটপের মধ্যে টেক্সট রেন্ডার করতে ব্যবহৃত ফন্ট প্যাকেজ। - ডেস্কটপের মধ্যে টেক্সট রেন্ডার করতে ব্যবহৃত ফন্ট প্যাকেজ। - Paquets de lletres per a la renderització de texts en l'escriptori. - Balíčky písem (fontů) pro zobrazování textu v systému. - Skrifttypepakker til visning af tekst på skrivebordet. - Schriftarten-Pakete zum Darstellen von Text auf dem Desktop. - Πακέτα γραμματοσειρών για εμφάνιση κειμένου στην επιφάνεια εργασίας. - Fonts packages for rendering text on the desktop. - Paquete de fuentes para renderizar texto en el escritorio - Töölaual kasutatavad kirjatüübid - Letra-tipo paketeak testua mahaigainean errendatzeko. - بسته‌های قلم برای نمایش متن بر روی میزکار - Kirjasinpaketteja tekstin piirtämiseen työpöydällä. - Paquets de polices de caractères pour afficher du texte sur le bureau. - ડેસ્કટોપ પર લખાણ રેન્ડર કરવા માટેના ફોન્ટ પેકેજો. - חבילות גופנים עבור שולחן העבודה. - डेस्कटॉप पर पाठ रेंडर करने के लिए फ़ॉन्ट संकुल - Betűkészlet csomagok szöveg megjelenítéséhez az asztalon. - Pacchettos de characteres pro render texto sur le scriptorio. - Paket huruf untuk merender teks di desktop. - Leturpakkar til birtingar texta áí skjáborðinu. - Pacchetti di font per la rappresentazione di testo sul desktop. - デスクトップでテキストをレンダリングするためのフォントパッケージです。 - ಗಣಕತೆರೆಯಲ್ಲಿ ಪಠ್ಯವನ್ನು ರೆಂಡರ್ ಮಾಡುವ ಅಕ್ಷರಶೈಲಿಗಳ ಪ್ಯಾಕೇಜ್‍ಗಳು. - 데스크탑 상에서 텍스트 렌더링 용 글꼴 패키지 - Fontu pakas teksta renderēšanai uz darbvirsmas. - डेस्कटाप पर पाठ रेंडर करबा क' लेल फाँट संकुल - ഡസ്ക്ടോപ്പിലുള്ള വാചകങ്ങള്‍ റെന്‍ഡര്‍ ചെയ്യുന്നതിനുള്ള ലിപി പാക്കേജുകള്‍. - डेस्कटॉपवर मजकुर दर्शविण्याकरीता फॉन्ट संकुल. - Skriftpakker for å vise tekst på skrivebordet. - डेस्कटपमा पाठ रेन्डरिङका लागि फन्ट प्याकेज । - Lettertype-pakketten voor het weergeven van tekst op het bureaublad. - ଡେସ୍କଟପରେ ପାଠ୍ୟ ପ୍ରତିପାଦନ ପାଇଁ ଅକ୍ଷରରୂପ ପ୍ୟାକେଜଗୁଡିକ। - ਡੈਸਕਟਾਪ ਉੱਤੇ ਰੈਂਡਰਿੰਗ ਲਈ ਫੋਂਟ ਪੈਕੇਜ। - Pakiety czcionek do wyświetlania tekstu w środowisku graficznym. - Pacotes de tipos de letra para representar o texto no ecrã. - Pacotes de fontes para renderizar textos no ambiente de trabalho. - Пакеты со шрифтами для отображения текста на рабочем столе. - Balíčky písiem pre zobrazovanie textu v systéme. - Пакети фонтова за приказ текста на радној површини. - Paketi fontova za prikaz teksta na radnoj površini. - Paketi fontova za prikaz teksta na radnoj površini. - Typsnittspaket för att rendera text på skrivbordet. - பணிமேடையில் தோன்றும் உரைக்கான எழுத்துரு தொகுப்புகள் - డెస్క్‍‌టాప్ పై పాఠ్యమును ప్రస్ఫుటం చేయుటకొరకు ఫాంట్స్‍ సంకలనాలు. - Ҳарфҳо барои намоиши матн дар мизи корӣ - แพคเกจแบบอักษรสำหรับวาดข้อความบนพื้นโต๊ะ - Пакунки шрифтів для виводу тексту на екрані. - 用于渲染桌面上文字的字体软件包。 - 在桌面上繪製文字的字型軟體包。 - false - false - - aajohan-comfortaa-fonts - abattis-cantarell-fonts - adobe-source-han-sans-cn-fonts - adobe-source-han-sans-tw-fonts - dejavu-sans-fonts - dejavu-sans-mono-fonts - dejavu-serif-fonts - gnu-free-mono-fonts - gnu-free-sans-fonts - gnu-free-serif-fonts - google-noto-sans-lisu-fonts - google-noto-sans-mandaic-fonts - google-noto-sans-meetei-mayek-fonts - google-noto-sans-tagalog-fonts - google-noto-sans-tai-tham-fonts - google-noto-sans-tai-viet-fonts - jomolhari-fonts - julietaula-montserrat-fonts - khmeros-base-fonts - liberation-mono-fonts - liberation-sans-fonts - liberation-serif-fonts - lklug-fonts - lohit-assamese-fonts - lohit-bengali-fonts - lohit-devanagari-fonts - lohit-gujarati-fonts - lohit-gurmukhi-fonts - lohit-kannada-fonts - lohit-odia-fonts - lohit-tamil-fonts - lohit-telugu-fonts - naver-nanum-gothic-fonts - paktype-naskh-basic-fonts - paratype-pt-sans-fonts - sil-abyssinica-fonts - sil-mingzat-fonts - sil-nuosu-fonts - sil-padauk-fonts - smc-meera-fonts - stix-fonts - tabish-eeyek-fonts - thai-scalable-waree-fonts - vlgothic-fonts - adf-accanthis-2-fonts - adf-accanthis-3-fonts - adf-accanthis-fonts - adf-gillius-2-fonts - adf-gillius-fonts - adf-tribun-fonts - aldusleaf-crimson-text-fonts - allgeyer-musiqwik-fonts - allgeyer-musisync-fonts - apa-new-athena-unicode-fonts - apanov-edrip-fonts - apanov-heuristica-fonts - baekmuk-ttf-batang-fonts - baekmuk-ttf-dotum-fonts - baekmuk-ttf-gulim-fonts - baekmuk-ttf-hline-fonts - beteckna-fonts - beteckna-lower-case-fonts - beteckna-small-caps-fonts - bitstream-vera-sans-fonts - bitstream-vera-sans-mono-fonts - bitstream-vera-serif-fonts - bpg-algeti-fonts - bpg-chveulebrivi-fonts - bpg-courier-fonts - bpg-courier-s-fonts - bpg-elite-fonts - bpg-excelsior-fonts - bpg-glaho-fonts - bpg-ingiri-fonts - bpg-nino-medium-cond-fonts - bpg-nino-medium-fonts - bpg-sans-fonts - bpg-sans-medium-fonts - bpg-sans-modern-fonts - bpg-sans-regular-fonts - bpg-serif-fonts - bpg-serif-modern-fonts - campivisivi-titillium-fonts - cave9-mutante-fonts - cf-bonveno-fonts - cf-sorts-mill-goudy-fonts - chisholm-letterslaughing-fonts - chisholm-to-be-continued-fonts - cjkuni-ukai-fonts - cjkuni-uming-fonts - comic-neue-fonts - conakry-fonts - ctan-cm-lgc-roman-fonts - ctan-cm-lgc-sans-fonts - ctan-cm-lgc-typewriter-fonts - ctan-kerkis-calligraphic-fonts - ctan-kerkis-sans-fonts - ctan-kerkis-serif-fonts - darkgarden-fonts - dejavu-lgc-sans-fonts - dejavu-lgc-sans-mono-fonts - dejavu-lgc-serif-fonts - denemo-emmentaler-fonts - denemo-feta-fonts - denemo-music-fonts - drehatlas-warender-bibliothek-fonts - drehatlas-widelands-fonts - drehatlas-xaporho-fonts - dustin-domestic-manners-fonts - dustin-dustismo-roman-fonts - dustin-dustismo-sans-fonts - ecolier-court-fonts - ecolier-court-lignes-fonts - extremetuxracer-papercuts-fonts - extremetuxracer-papercuts-outline-fonts - fontawesome-fonts - freecol-imperator-fonts - freecol-shadowedblack-fonts - gargi-fonts - gdouros-aegean-fonts - gdouros-aegyptus-fonts - gdouros-akkadian-fonts - gdouros-alexander-fonts - gdouros-anaktoria-fonts - gdouros-analecta-fonts - gdouros-aroania-fonts - gdouros-asea-fonts - gdouros-avdira-fonts - gdouros-musica-fonts - gdouros-symbola-fonts - gfs-ambrosia-fonts - gfs-artemisia-fonts - gfs-baskerville-fonts - gfs-bodoni-classic-fonts - gfs-bodoni-fonts - gfs-complutum-fonts - gfs-decker-fonts - gfs-didot-classic-fonts - gfs-didot-fonts - gfs-eustace-fonts - gfs-fleischman-fonts - gfs-garaldus-fonts - gfs-gazis-fonts - gfs-goschen-fonts - gfs-ignacio-fonts - gfs-jackson-fonts - gfs-neohellenic-fonts - gfs-nicefore-fonts - gfs-olga-fonts - gfs-philostratos-fonts - gfs-porson-fonts - gfs-pyrsos-fonts - gfs-solomos-fonts - gfs-theokritos-fonts - google-croscore-arimo-fonts - google-croscore-cousine-fonts - google-croscore-symbolneu-fonts - google-croscore-tinos-fonts - google-droid-kufi-fonts - google-droid-sans-fonts - google-droid-sans-mono-fonts - google-droid-serif-fonts - google-noto-sans-armenian-fonts - google-noto-sans-avestan-fonts - google-noto-sans-bengali-fonts - google-noto-sans-bengali-ui-fonts - google-noto-sans-brahmi-fonts - google-noto-sans-carian-fonts - google-noto-sans-cherokee-fonts - google-noto-sans-coptic-fonts - google-noto-sans-deseret-fonts - google-noto-sans-devanagari-fonts - google-noto-sans-devanagari-ui-fonts - google-noto-sans-egyptian-hieroglyphs-fonts - google-noto-sans-ethiopic-fonts - google-noto-sans-fonts - google-noto-sans-georgian-fonts - google-noto-sans-glagolitic-fonts - google-noto-sans-gujarati-fonts - google-noto-sans-gujarati-ui-fonts - google-noto-sans-hebrew-fonts - google-noto-sans-imperial-aramaic-fonts - google-noto-sans-kaithi-fonts - google-noto-sans-kannada-fonts - google-noto-sans-kannada-ui-fonts - google-noto-sans-kayah-li-fonts - google-noto-sans-kharoshthi-fonts - google-noto-sans-khmer-fonts - google-noto-sans-khmer-ui-fonts - google-noto-sans-lao-fonts - google-noto-sans-lao-ui-fonts - google-noto-sans-lycian-fonts - google-noto-sans-lydian-fonts - google-noto-sans-malayalam-fonts - google-noto-sans-malayalam-ui-fonts - google-noto-sans-nko-fonts - google-noto-sans-old-south-arabian-fonts - google-noto-sans-old-turkic-fonts - google-noto-sans-osmanya-fonts - google-noto-sans-phoenician-fonts - google-noto-sans-shavian-fonts - google-noto-sans-symbols-fonts - google-noto-sans-tamil-fonts - google-noto-sans-tamil-ui-fonts - google-noto-sans-telugu-fonts - google-noto-sans-telugu-ui-fonts - google-noto-sans-thaana-fonts - google-noto-sans-thai-fonts - google-noto-sans-thai-ui-fonts - google-noto-sans-ugaritic-fonts - google-noto-sans-ui-fonts - google-noto-sans-vai-fonts - google-noto-serif-armenian-fonts - google-noto-serif-fonts - google-noto-serif-georgian-fonts - google-noto-serif-khmer-fonts - google-noto-serif-lao-fonts - google-noto-serif-thai-fonts - grimmer-proggy-tinysz-fonts - gubbi-fonts - hanazono-fonts - hiran-perizia-fonts - horai-ume-gothic-fonts - horai-ume-mincho-fonts - horai-ume-pgothic-fonts - horai-ume-pmincho-fonts - horai-ume-uigothic-fonts - impallari-lobster-fonts - inkboy-fonts - ipa-ex-gothic-fonts - ipa-ex-mincho-fonts - ipa-gothic-fonts - ipa-mincho-fonts - ipa-pgothic-fonts - ipa-pmincho-fonts - jsmath-fonts - kacst-art-fonts - kacst-book-fonts - kacst-decorative-fonts - kacst-digital-fonts - kacst-farsi-fonts - kacst-letter-fonts - kacst-naskh-fonts - kacst-office-fonts - kacst-one-fonts - kacst-pen-fonts - kacst-poster-fonts - kacst-qurn-fonts - kacst-screen-fonts - kacst-title-fonts - kacst-titlel-fonts - kalapi-fonts - kanjistrokeorders-fonts - kanotf-fonts - khmeros-battambang-fonts - khmeros-bokor-fonts - khmeros-handwritten-fonts - khmeros-metal-chrieng-fonts - khmeros-muol-fonts - khmeros-siemreap-fonts - kurdit-unikurd-web-fonts - lato-fonts - levien-inconsolata-fonts - levien-museum-fonts - liberation-narrow-fonts - libreoffice-opensymbol-fonts - lilypond-emmentaler-fonts - linux-libertine-biolinum-fonts - linux-libertine-fonts - lohit-malayalam-fonts - lohit-marathi-fonts - lohit-nepali-fonts - lohit-tamil-classical-fonts - madan-fonts - manchu-fonts - mgopen-canonica-fonts - mgopen-cosmetica-fonts - mgopen-modata-fonts - mgopen-moderna-fonts - mona-sazanami-fonts - mona-vlgothic-fonts - motoya-lcedar-fonts - motoya-lmaru-fonts - moyogo-molengo-fonts - mph-2b-damase-fonts - mplus-1c-fonts - mplus-1m-fonts - mplus-1mn-fonts - mplus-1p-fonts - mplus-2c-fonts - mplus-2m-fonts - mplus-2p-fonts - mscore-fonts - msimonson-anonymouspro-fonts - nafees-naskh-fonts - nafees-nastaleeq-fonts - nafees-pakistani-naskh-fonts - nafees-pakistani-web-naskh-fonts - nafees-riqa-fonts - nafees-tehreer-naskh-fonts - nafees-web-naskh-fonts - naver-nanum-barun-gothic-fonts - naver-nanum-brush-fonts - naver-nanum-myeongjo-fonts - naver-nanum-pen-fonts - navilu-fonts - nhn-nanum-gothic-coding-fonts - ns-bola-fonts - ns-tiza-chalk-fonts - oflb-asana-math-fonts - oflb-brett-fonts - oflb-goudy-bookletter-1911-fonts - oflb-icelandic-fonts - oflb-notcouriersans-fonts - oflb-prociono-fonts - oflb-riordonfancy-fonts - oflb-roadstencil-fonts - oflb-smonohand-fonts - oflb-sportrop-fonts - oldstandard-sfd-fonts - open-sans-fonts - overpass-fonts - pagul-fonts - paktype-ajrak-fonts - paktype-naqsh-fonts - paktype-tehreer-fonts - paratype-pt-mono-fonts - paratype-pt-sans-caption-fonts - paratype-pt-serif-caption-fonts - paratype-pt-serif-fonts - pothana2000-fonts - saab-fonts - samyak-devanagari-fonts - samyak-gujarati-fonts - samyak-malayalam-fonts - samyak-odia-fonts - samyak-tamil-fonts - sarai-fonts - sazanami-gothic-fonts - sazanami-mincho-fonts - scholarsfonts-cardo-fonts - senamirmir-washra-fantuwua-fonts - senamirmir-washra-fonts - senamirmir-washra-hiwua-fonts - senamirmir-washra-jiret-fonts - senamirmir-washra-tint-fonts - senamirmir-washra-wookianos-fonts - senamirmir-washra-yebse-fonts - senamirmir-washra-yigezu-bisrat-goffer-fonts - senamirmir-washra-yigezu-bisrat-gothic-fonts - senamirmir-washra-zelan-fonts - serafettin-cartoon-fonts - sil-andika-fonts - sil-charis-compact-fonts - sil-charis-fonts - sil-doulos-fonts - sil-gentium-alt-fonts - sil-gentium-basic-book-fonts - sil-gentium-basic-fonts - sil-gentium-fonts - sil-lateef-fonts - sil-scheherazade-fonts - silkscreen-expanded-fonts - silkscreen-fonts - sj-delphine-fonts - sj-stevehand-fonts - smc-anjalioldlipi-fonts - smc-dyuthi-fonts - smc-kalyani-fonts - smc-rachana-fonts - smc-raghumalayalam-fonts - smc-suruma-fonts - stix-math-fonts - tangerine-fonts - thai-arundina-sans-fonts - thai-arundina-sans-mono-fonts - thai-arundina-serif-fonts - thai-scalable-garuda-fonts - thai-scalable-kinnari-fonts - thai-scalable-loma-fonts - thai-scalable-norasi-fonts - thai-scalable-purisa-fonts - thai-scalable-sawasdee-fonts - thai-scalable-tlwgmono-fonts - thai-scalable-tlwgtypewriter-fonts - thai-scalable-tlwgtypist-fonts - thai-scalable-tlwgtypo-fonts - thai-scalable-umpush-fonts - thibault-essays1743-fonts - thibault-isabella-fonts - thibault-rockets-fonts - thibault-staypuft-fonts - tibetan-machine-uni-fonts - tiresias-info-fonts - tiresias-info-z-fonts - tiresias-key-v2-fonts - tiresias-lp-fonts - tiresias-pc-fonts - tiresias-pc-z-fonts - tiresias-sign-fonts - tiresias-sign-z-fonts - tlomt-junction-fonts - tlomt-league-gothic-fonts - tlomt-orbitron-fonts - tlomt-sniglet-fonts - trabajo-fonts - tulrich-tuffy-fonts - typemade-josefinsansstd-light-fonts - ubuntu-title-fonts - ukij-tuz-fonts - un-core-batang-fonts - un-core-dinaru-fonts - un-core-dotum-fonts - un-core-graphic-fonts - un-core-gungseo-fonts - un-core-pilgi-fonts - un-extra-bom-fonts - un-extra-jamobatang-fonts - un-extra-jamodotum-fonts - un-extra-jamonovel-fonts - un-extra-jamosora-fonts - un-extra-pen-fonts - un-extra-penheulim-fonts - un-extra-pilgia-fonts - un-extra-shinmun-fonts - un-extra-taza-fonts - un-extra-vada-fonts - un-extra-yetgul-fonts - vdrsymbol-fonts - vemana2000-fonts - vlgothic-p-fonts - vollkorn-fonts - wine-marlett-fonts - wine-symbol-fonts - woodardworks-laconic-fonts - woodardworks-laconic-shadow-fonts - wqy-microhei-fonts - wqy-zenhei-fonts - xorg-x11-fonts-ethiopic - yanone-kaffeesatz-fonts - yanone-tagesschrift-fonts - - - - hardware-support - Hardware Support - دعم العتاد - যান্ত্ৰিক সামগ্ৰীৰ সমৰ্থন - Sofitu pal Hardware - حمایت سخت افزاری - Хардуерна поддръжка - হার্ডওয়্যার সমর্থন - হার্ডওয়্যার সমর্থন - Suport per al maquinari - Podpora hardware - Hardwareunderstøttelse - Hardware-Unterstützung - Υποστήριξη υλικού - Hardware Support - Soporte para Hardware - Riistvara tugi - Hardware euskarria - پشتیبانی سخت‌افزاری - Laitteistotuki - Prise en charge du matériel - Compatiblidade de hardware - હાર્ડવેર આધાર - תמיכה בחומרה - हार्डवेयर समर्थन - Hardverska podrška - Hardvertámogatás - Supporto de hardware - Dukungan Perangkat Keras - Vélbúnaðarstuðningur - Supporto hardware - ハードウェアサポート - აპარატურული ნაწილის მხარდაჭერა - ಯಂತ್ರಾಂಶ ಬೆಂಬಲ - 하드웨어 지원 - Aparatūras atbalsts - हार्डवेयर समर्थन - ഹാര്‍ഡവെയര്‍ പിന്തുണ - हार्डवेअर समर्थन - Sokongan Perkakasan - Støtte for maskinvare - Hardware-Unnerstütten - हार्डवेयर समर्थन - Hardware-ondersteuning - ହାର୍ଡୱେର ସହାୟତା - ਜੰਤਰ ਸਹਿਯੋਗ - Obsługa sprzętu - Suporte ao 'Hardware' - Suporte de hardware - Suport hardware - Поддержка оборудования - Podpora hardvéru - Podpora strojni opremi - Mbulim "Hardware"-i - Хардверска подршка - Hardverska podrška - Hardverska podrška - Stöd för maskinvara - வன்பொருள் துணை - హార్డ్‍‌వేర్ మద్దతు - Пуштибонии сахтафзор - การรองรับฮาร์ดแวร์ - Donanım Desteği - Підтримка обладнання - 硬件支持 - 硬體支援 - This group is a collection of tools for various hardware specific utilities. - هذه المجموعة تحوي أدوات خاصة بعتاديات hardware معينة - বিভিন্ন যন্ত্ৰ-ভিত্তিক সৰঞ্জামৰ বাবে এই গোট সৰঞ্জামৰ এটা সংগ্ৰহ । - Esti grupu ye un conxuntu de ferramientes pa delles finalidaes específiques al hardware. - ای گروه شامل جمعین چه ابزاران په ابزاران خاص سخت افزار. - Тази група съдържа инструменти за различни хардуерни компоненти. - হার্ডওয়্যার পরিবেশে ব্যবহারযোগ্য সরঞ্জাম ও রিসোর্স সামগ্রী। - হার্ডওয়্যার পরিবেশে ব্যবহারযোগ্য সরঞ্জাম ও রিসোর্স সামগ্রী। - Aquest grup és una col·lecció de diverses eines específiques del maquinari. - Kolekce nástrojů pro podporu různého specifického hardware. - Denne gruppe er en samling af værktøjer til forskellige hardwarespecifikke hjælpeprogrammer. - Diese Gruppe umfasst eine Sammlung von Werkzeugen für verschiedene hardwarespezifische Dienstprogramme. - Αυτή η ομάδα είναι μια συλλογή από εργαλεία για διάφορα προγράμματα σχετικά με το υλικό του υπολογιστή. - This group is a collection of tools for various hardware specific utilities. - Este grupo es un conjunto de herramientas para diversas finalidades específicas al hardware. - See rühm on erinevate riistvaraspetsiifiliste tööriistade kogum. - این گروه مجموعه‌ای از ابزارها برای کاربردهای خاص سخت‌افزاری است. - Tämä ryhmä on kokoelma laitteistospesifisiä hyötyohjelmia. - Ce groupe comprend un ensemble d'outils pour divers utilitaires de matériel spécifique. - આ જૂથ એ વિવિધ હાર્ડવેર લગતી ઉપયોગીતાઓ માટે સાધનોનો સમૂહ છે. - קבוצה זו מכילה אוסף כלים לטיפול בחומרה ספציפית. - यह समूह विविध हार्डवेयर विशिष्ट उपयोगिता के लिये औज़ारों का समूह है. - Ova grupa je kolekcija alata i namijenjenih određenom hardveru. - E csoport különböző hardverspecifikus segédprogramokhoz való eszközök gyűjteménye. - Iste gruppo es un collection de diverse utensiles de hardware. - Kelompok ini adalah koleksi alat bantu untuk beragam utilitas perangkat keras tertentu. - Þessi pakkahópur inniheldur ýmis vélbúnaðartól. - Questo gruppo contiene strumenti specifici per vari componenti hardware. - このグループは各種ハードウェア固有のユーティリティ用のツールの集合です。 - ಈ ಸಮೂಹವು ವಿವಿಧ ಯಂತ್ರಾಂಶ ನಿಶ್ಚಿತ ಸೌಲಭ್ಯಗಳ ಒಂದು ಪ್ಯಾಕೇಜ್‍ ಆಗಿದೆ. - 이 그룹은 특정 하드웨어 유틸리티에 대한 도구 모음입니다. - Šī grupa ir rīku kolekcija aparatūras specifiskiem aprīkojumiem. - ई समूह विविध हार्डवेयर विशिष्ट उपयोगिता क' लेल अओजारसभक समूह अछि. - ഹാര്‍ഡ്‌വെയര്‍ ഉപയോഗിച്ചുളള പ്രയോഗങ്ങള്‍ക്ക് ആവശ്യമുളള പ്രോഗ്രാമുകളുടെ ഒരു കൂട്ടം. - हे समुह बहु हार्डवेअर विशिष्ट उपकार्यक्रमांकरीता साधनांचे गट आहे. - Kumpulan ini adalah koleksi alatan untuk pelbagai utiliti perkakasan spesifik. - Denne gruppen er en samling av verktøy for diverse maskinvare-spesifikke tilbehør. - यो समूह विभिन्न हार्डवेयर निर्दिष्ट उपयोगिताका लागि उपकरणको सङ्कलन हो । - Deze groep is een collectie van hulpmiddelen voor diverse hardware-specifieke gereedschappen. - ଏହି ସମୂହଟି ବିଭିନ୍ନ ହାର୍ଡୱେର ନିର୍ଦ୍ଦିଷ୍ଟ ଉପଯୋଗୀତା ମାନଙ୍କ ପାଇଁ ଉପକରଣ ମାନଙ୍କର ଗୋଟିଏ ସମଷ୍ଟି ଅଟେ। - ਇਹ ਗਰੁੱਪ ਵਿੱਚ ਜੰਤਰਾਂ ਲਈ ਖਾਸ ਸਹੂਲਤਾਂ ਉਪਲੱਬਧ ਹਨ। - Ta grupa jest zbiorem programów dla różnych narzędzi sprzętowych. - Este grupo é uma colecção de ferramentas para diversos utilitários específicos de 'hardware'. - Este grupo é uma coleção de ferramentas para vários utilitários de hardwares específicos. - Acest grup este o colecție de unelte pentru diferite unelte cu specific hardware. - Эта группа содержит набор инструментов для различных утилит для работы с оборудованием. - Táto skupina je kolekciou nástrojov pre rôzne hardvérovo špecifické pomocné programy. - Ta skupina je nabor orodij za podporo specifični strojni opremi. - Ова група је скуп алатки за разне програме својствене хардверу. - Ova grupa je skup alatki za razne programe svojstvene hardveru. - Ova grupa je skup alatki za razne programe svojstvene hardveru. - Denna grupp är en samling verktyg för olika maskinvaru-specifika tillbehör. - இந்தக் குழு பல்வேறு வன்பொருள் குறிப்பிட்ட வசதிகளை கொண்டு தொகுப்பாகும். - ఈ సమూహం పెక్కు హార్డువేరు వినియోగాలకు కావలసిన ఉపకరణాలను కలిగి ఉంది. - Ин гуруҳ дорои маҷмӯъи асбобҳо барои хусусиятҳои сахтафзори гуногун мебошад. - กลุ่มนี้ประกอบด้วยเครื่องมือสำหรับอุปกรณ์ฮาร์ดแวร์ต่างๆ - Ця група містить набір інструментів для різних утиліт роботи з обладнанням. - 这组是针对各种硬件特制的实用程序的工具合集。 - 這個群組包括多種特定硬體工具程式的工具與資源。 - false - false - - usb_modeswitch - acpi - acpitool - alsa-firmware - cmospwd - firmware-addon-dell - hddtemp - hdparm - i8kutils - libifp - lsscsi - openct - opensc - pcsc-lite-ccid - pcsc-lite - radeontop - - - - kde-desktop-qubes - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - KDE - The KDE Plasma Workspaces, a highly-configurable graphical user interface which includes a panel, desktop, system icons and desktop widgets, and many powerful KDE applications. - The KDE Plasma Workspaces, графичен потребителски интерфейс с големи възможности за конфигуриране, включващ панел, работна среда, системни икони и инструменти, и всякакви, много мощни KDE приложения. - KDE Plasma Workspaces, una interfície gràfica d'usuari molt configurable que inclou un tauler, un escriptori, icones de sistema i enginys per a l'escriptori i altres aplicacions útils de KDE. - Pracovní plochy KDE Plasma je vysoce-konfigurovatelné grafické uživatelské rozhraní zahrnující panely, pracovni plochu, systémové ikony, widgety a mnoho vykonných KDE aplikací. - Die KDE Plasma-Arbeitsumgebung ist eine hoch-konfigurierbare grafische Benutzeroberfläche mit Menüleiste, Schreibtisch, Systemsymbolen, Widgets und vielen ausgefeilten KDE-Anwendungen. - The KDE Plasma Workspaces, a highly-configurable graphical user interface which includes a panel, desktop, system icons and desktop widgets, and many powerful KDE applications. - Los espacios de trabajo KDE plasma tienen una interfaz totalmente configurable, que incluye un panel, un escritorio, sistema de iconos y widgets y muchas aplicaciones de KDE. - KDE Plasma Workspaces, muokattava graafinen käyttöliittymä, johon kuuluu paneeli, työpöytä, järjestelmäkuvakkeet ja graafinen tiedostohallinta sekä useita KDE-ohjelmia. - L'interface graphique utilisateur hautement configurable KDE Plasma, qui contient un tableau de bord, un bureau, des icônes systèmes, des widgets de bureau ainsi que de nombreuses applications KDE. - A KDE Plasma munkafelületek, sokoldalúan beállítható grafikus felület, amely tartalmaz egy panelt, asztalt, rendszerikonokat, kisalkalmazásokat, és további komoly KDE programokat - Le spatios de travalio KDE Plasma es un interfacie graphic de usator multo configurabile que comprende un pannello, un scriptorio, icones de systema, widgets de scriptorio e numerose applicationes KDE. - Spazi di lavoro Plasma per KDE, una interfaccia grafica molto configurabile che include un pannello, scrivania, icone di sistema e applicazioni su scrivania, e molte potenti applicazioni KDE - KDE Plasma ワークスペースはパネル、デスクトップ、システムアイコン、デスクトップウィジェット、および多くの強力なKDEアプリケーションを搭載するグラフィカルユーザーインターフェースです。 - De KDE Plasma-werkruimtes is een heel configureerbare grafische gebruikersinterface met paneel, bureaublad, systeemiconen en bureaubladwidgets, met daarnaast vele krachtige KDE-toepassingen. - ਕੇਡੀਈ (KDE) ਪਲਾਜ਼ਮਾ ਵਰਕਸਪੇਸ, ਪੂਰੀ ਤਰ੍ਹਾਂ ਸੰਰਚਨਾ ਕਰਨ ਯੋਗ ਗਰਾਫਿਕਲ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਹੈ, ਜਿਸ ਵਿੱਚ ਪੈਨਲ, ਡੈਸਕਟਾਪ, ਸਿਸਟਮ ਆਈਕਾਨ ਅਤੇ ਡੈਸਕਟਾਪ ਵਿਦਜੈਟ ਹਨ, ਕਈ ਮਜ਼ਬੂਤ ਕੇਡੀਈ ਐਪਲੀਕੇਸ਼ਨ ਸਮੇਤ। - KDE Plasma, wysoce konfigurowalny graficzny interfejs użytkownika zawierający panel, pulpit, ikony systemowe, widżety pulpitu i wiele aplikacji KDE o dużych możliwościach. - O Plasma KDE Workspaces, um interface gráfico altamente configurável que inclui um painel, desktop, ícones do sistema e widgets de desktop, e muitos aplicativos do KDE poderosos. - O ambiente de trabalho KDE Plasma, uma interface gráfica de usuário altamente configurável que inclui um painel, uma área de trabalho, ícones de sistema, widgets para a área de trabalho e muitos aplicativos poderosos do KDE. - KDE Plasma Workspaces - легко настраиваемый графический интерфейс пользователя, который содержит панель, рабочий стол, системные значки и виджеты рабочего стола, а также множество эффективных приложений KDE. - Pracovná plocha KDE Plasma , vysoko konfigurovateľné grafické používateľské rozhranie, ktoré obsahuje panel, pracovnú plochu, systémové ikony a widgety plochy a množstvo užitočných a výkonných KDE aplikácií. - KDE Plasma Workspaces, веома подесиво графичко окружење које укључује панел, позадину, системске иконице, виџете за позадину и много моћних KDE програма. - KDE Plasma arbetsytor, ett mycket konfigurerbart grafiskt användargränssnitt som inkluderar en panel, skrivbord, systemikoner och skrivbordsprogram och många kraftfulla KDE-program. - KDE ప్లాస్మా పని ప్రదేశాలు, ఒక ప్యానెల్, డెస్క్టాప్, వ్యవస్థ గుర్తులు మరియు డెస్క్టాప్ విడ్జెట్, మరియు అనేక శక్తివంతమైన KDE అప్లికేషన్లు కలిగి అత్యంత నిర్వహించగల గ్రాఫికల్ యూజర్ ఇంటర్ఫేస్. - Робочий простір Плазми KDE складається з дуже гнучкого у налаштовуванні графічного інтерфейсу, що складається з панелі, стільниці, системних піктограм та віджетів стільниці, та багатьох потужних програм KDE. - KDE Plasma 是一个可灵活配置的图形用户界面,包括面板,桌面,系统图标和桌面小部件,以及许多功能强大的 KDE 应用程序。 - KDE Plasma 工作空間,是設定可高度調整的圖形化使用介面,包含面板、桌面、系統圖示、桌面小工具、許多強大的 KDE 應用程式等。 - true - false - - adwaita-gtk2-theme - breeze-icon-theme - colord-kde - dolphin - kcm-gtk - kcm_systemd - kde-runtime - kde-settings-pulseaudio - kde-style-breeze - kdelibs - kdepasswd - kdeplasma-addons - kdialog - khelpcenter - khotkeys - kinfocenter - kmenuedit - konsole5 - kscreen - ksnapshot - ksysguard - kwin - mesa-libEGL - phonon-backend-gstreamer - phonon-qt5-backend-gstreamer - plasma-breeze - plasma-desktop-doc - plasma-desktop - plasma-pa - plasma-user-manager - plasma-workspace-drkonqi - plasma-workspace - polkit-kde - qt5-qdbusviewer - qt5-qtbase-gui - qt5-qtdeclarative - qubes-kde-dom0 - sddm-breeze - sddm-kcm - sddm - sni-qt - xorg-x11-drv-libinput - xsettings-kde - apper - kmix - - - - sound-basic - Sound basic support - false - false - - paman - paprefs - pavucontrol - - - - xfce-desktop-qubes - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Prostředí Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - एक्सएफसीई - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - Xfce - A lightweight desktop environment that works well on low end machines. - 'n Liggewig werkskermomgewing wat goed werk op stadige rekenaars. - የቀላል ክብደት ያለው ሠሌዳ አካባኪ በዝቅተኛው ጫፍ የማሽን ክፍል የሚሰራ። - بيئة سطح مكتب خفيفة تعمل جيدا على الأجهزة القديمة. - এটা লঘুভাৰৰ ডেষ্কট'প পৰিবেশ যি নিম্ন বিন্যাসৰ যন্ত্ৰত ভালকৈ কাম কৰি । - Un entornu d'escritoriu llixeru que furrula bien en máquines pequeñes. - یک سبکین محیط دسکتاپ که په خوبی ته ماشینان کنٹین کار کنت. - Лека десктоп работна среда, която работи добре на слаби машини. - নিম্ন ক্ষমতাসম্পন্ন মেশিনে সহজে সঞ্চালনযোগ্য স্বল্পমাপের ডেস্কটপ পরিবেশ। - নিম্ন ক্ষমতাসম্পন্ন মেশিনে সহজে সঞ্চালনযোগ্য স্বল্পমাপের ডেস্কটপ পরিবেশ। - Un entorn d'escriptori lleuger que funciona en ordinadors senzills. - Odlehčené uživatelské prostředí, které dobře funguje na pomalejších počítačích. - Et letvægtsskrivebordsmiljø der virker godt på langsomme computere. - Eine schlanke Desktop-Umgebung, die gut auf älteren Systemen funktioniert. - Μια ελαφριά επιφάνεια εργασίας που αποδίδει πολύ καλά σε παλαιότερα μηχανήματα. - A lightweight desktop environment that works well on low end machines. - Un entorno de escritorio liviano que funciona bien en máquinas pequeñas. - Väikese ressursivajadusega töölauakeskkond, mis sobib väiksema võimsusega arvutitesse. - یک محیط رومیزی سبک‌وزن که روی دستگاه‌های ضعیف خوب کار می‌کند. - Kevyt työpöytäympäristö, joka toimii hyvin tehottomillakin koneilla. - Un environnement de bureau léger adapté aux machines peu puissantes. - હલકું ડેસ્કટોપ પર્યાવરણ કે જે નીચા મશીનો સાથે યોગ્ય રીતે કામ કરે. - סביבה שולחנית קלה הפועלת היטב גם על מחשבים שאינם רבי עצמה. - हल्का डेस्कटॉप वातावरण जो कि न्यूनांत मशीन पर ठीक काम करता है. - Jednostavno okruženje radne površine koje dobro funkcionira na slabijim računalima. - Pehelysúlyú asztal környezet, ami gyengébb gépeken is jól használható. - Un ambiente de scriptorio legier que functiona ben sur machinas exigue. - Lingkungan dekstop yang ringan yang dapat bekerja dengan baik pada mesin yang rendah. - Létt skjáborðsumhverfi sem virkar vel á aflminni vélum. - Un ambiente desktop performante anche per computer meno potenti. - 低スペックなマシンでもサクサクと動作する軽量デスクトップ環境です。 - ಕೆಳಮಟ್ಟದ ಗಣಕಗಳಲ್ಲಿಯೂ ಕೆಲಸ ಮಾಡಬಲ್ಲಂತಹ ಒಂದು ಹಗುರ ತೂಕದ ಗಣಕತೆರೆ ಪರಿಸರ. - 저 사양 컴퓨터에서도 잘 작동하는 경량의 데스크탑 환경입니다. - Viegla darbvirsma, kas labi darbojas uz mazjaudīgiem datoriem. - हलुक डेस्कटाप वातावरण जे न्यूनांत मशीन पर नीक काज करैत अछि. - Едноставна работна околина што работи одлично на поспори машини. - ലോ എന്‍ഡ് മഷീനുകളില്‍ ശരിയായി പ്രവര്‍ത്തിക്കുന്ന ലൈറ്റ് വെയിറ്റ് ഡസ്ക്ടോപ്പ് എന്‍വയോണ്മെന്റ്. - एक हलके डेस्कटॉप वातावरण जे कमी रचनात्मक प्रणालींवर चांगल्या प्रकारे काम करते. - Persekitaran desktop ringan yang berfungsi dengan baik pada mesin berkuasa rendah. - Et lettvektig skrivebordsmiljø som fungerer bra på eldre og tregere maskiner. - चाँडो अन्त्य हुने मेसिनमा राम्रोसँग कार्य गर्ने हल्का डेस्कटप परिवेश । - Een lichtgewicht bureaubladomgeving die zeer geschikt is voor minder krachtige machines. - Tikologo ya teseke e bohwefo yeo e šomago gabotse kudu metšheneng ya tlase. - ଗୋଟିଏ ହାଲୁକା ଡେସ୍କଟପ ପରିବେଶ ଯାହାକି ନିମ୍ନ ଭାଗ ମେସିନ ମାନଙ୍କରେ ଉତ୍ତମ ରୂପେ କାର୍ଯ୍ଯ କରିଥାଏ। - ਇੱਕ ਹਲਕਾ ਡੈਸਕਟਾਪ ਇੰਵਾਇਰਨਮੈਂਟ, ਜੋ ਕਿ ਘੱਟ ਸੰਰਚਨਾ ਵਾਲੀਆਂ ਮਸ਼ੀਨਾਂ ਉੱਤੇ ਕੰਮ ਕਰਦਾ ਹੈ। - Lekkie środowisko graficzne, które dobrze działa na słabych komputerach. - Um ambiente de trabalho leve que funciona bem em máquinas com recursos modestos. - Um ambiente de trabalho leve que funciona bem em máquinas de baixo custo. - Un mediu de lucru lejer care funcționează bine pe calculatoare mai slabe. - Облегчённая среда рабочего стола, подходящая для слабых машин. - Jednoduché pracovné prostredie, ktoré dobre pracuje na pomalších počítačoch. - Lahko namizje, ki deluje dobro tudi na skromnih računalnikih. - Mjedis dekstop i peshës së lehtë që punon bukur në makina të shkallës së fundit. - Лагано радно окружење које ради добро на слабијим машинама. - Lagano radno okruženje koje radi dobro na slabijim mašinama. - Lagano radno okruženje koje radi dobro na slabijim mašinama. - En lättviktig skrivbordsmiljö som fungerar bra på långsammare maskiner. - ஒரு lightweight பணிமேடை சூழல் குறைந்த செயல்திறன் கொண்ட கணினிகளில் நன்றாக பணியாற்றுகிறது. - తక్కువ బరువున్న డెస్కుటాప్ వాతావరణం అది తక్కువ సమాప్తిగల కంప్యూటర్లలో పనిచేస్తుంది. - Муҳити мизи корие, ки ҳам дар компютерҳои суст кор мекунад. - สภาพแวดล้อมเดสก์ท็อปที่สามารถทำงานได้ดีบนเครื่องรุ่นเก่า - Невибагливий до ресурсів робочий стіл, що добре працює на слабких машинах. - 一个能在低端机器上良好运行的轻便桌面环境。 - 輕型的桌面環境,適用於低階電腦。 - true - false - - adwaita-cursor-theme - adwaita-gtk2-theme - adwaita-icon-theme - albatross-gtk2-theme - albatross-gtk3-theme - albatross-xfwm4-theme - alsa-utils - bluebird-gtk2-theme - bluebird-gtk3-theme - bluebird-xfwm4-theme - greybird-gtk2-theme - greybird-gtk3-theme - greybird-xfce4-notifyd-theme - greybird-xfwm4-theme - gtk-xfce-engine - gvfs - initial-setup-gui - lightdm-gtk - openssh-askpass - xdg-user-dirs-gtk - xfce4-about - xfce4-appfinder - xfce4-datetime-plugin - xfce4-fsguard-plugin - xfce4-panel - xfce4-places-plugin - xfce4-power-manager - xfce4-screenshooter-plugin - xfce4-session-engines - xfce4-session - xfce4-settings-qubes - xfce4-settings - xfce4-terminal - xfce4-whiskermenu-plugin - xfconf - xfdesktop - xfwm4-theme-nodoka - xfwm4-themes - xfwm4 - xscreensaver-base - yumex-dnf - zenity - - - - xfce-extra-plugins - Extra plugins for the Xfce panel - Zusätzliche Plugins für die Xfce-Menüleiste - Kiegészítő modulok az XFCE panelhez - Xfce パネルの拡張プラグイン - Extra plug-ins voor het Xfce paneel - Dodatkowe wtyczki dla panelu Xfce - Додатки для панелі Xfce - Xfce 面板的額外插件 - Extend the functionality of the Xfce panel - Erweiterung der Funktionalität des Xfce-Menüleiste - Kibővíti az XFCE panel képességeit - Xfce パネルの機能拡張 - Breidt de functionaliteit van het Xfce paneel uit - Rozszerza funkcjonalność panelu Xfce - Додатки, що розширюють функціональні можливості панелі Xfce - 擴增 Xfce 面板提供的功能 - false - false - - xfce4-battery-plugin - xfce4-cellmodem-plugin - xfce4-cpugraph-plugin - xfce4-diskperf-plugin - xfce4-eyes-plugin - xfce4-fsguard-plugin - xfce4-genmon-plugin - xfce4-mailwatch-plugin - xfce4-mount-plugin - xfce4-sensors-plugin - xfce4-systemload-plugin - xfce4-taskmanager - xfce4-time-out-plugin - xfce4-timer-plugin - xfce4-verve-plugin - xfce4-xkb-plugin - - - - xfce-media - Multimedia support for Xfce - Multimedia-Unterstützung für Xfce - Multimédia támogatás az XFCE számára - Xfce 向けのマルチメディアサポート - Multimedia ondersteuning voor Xfce - Obsługa multimediów w środowisku Xfce - Мультимедійні програми для Xfce - Xfce 多媒體支援 - Multimedia support for Xfce - Multimedia-Unterstützung für Xfce - Multimédia támogatás az XFCE számára - Xfce 向けのマルチメディアサポート - Multimedia ondersteuning voor Xfce - Obsługa multimediów w środowisku Xfce - Мультимедійні програми для Xfce - Xfce 多媒體支援 - false - false - - pavucontrol - xfce4-pulseaudio-plugin - alsa-utils - - - - qubes - Qubes Environment - true - false - - kernel-qubes-vm - kernel - qubes-artwork - qubes-core-dom0 - qubes-desktop-linux-common - qubes-gui-dom0 - qubes-desktop-linux-manager - qubes-mgmt-salt-dom0 - qubes-template-fedora-29 - qubes-gpg-split-dom0 - qubes-img-converter-dom0 - qubes-input-proxy - qubes-pdf-converter-dom0 - qubes-usb-proxy-dom0 - libvirt-client - - - - - debian - Debian 9 (stretch) template - Debian 9 (stretch) template - true - true - - qubes-template-debian-9 - - - - - whonix - Whonix - true - Whonix templates (gateway and workstation) - true - - qubes-template-whonix-gw-14 - qubes-template-whonix-ws-14 - - - - - qubes-xfce - 3 - Qubes OS with Xfce - Standard installation with Xfce enviroment in Dom0. - - base - base-x - hardware-support - fonts - sound-basic - qubes - xfce-desktop-qubes - xfce-extra-plugins - xfce-media - - - debian - whonix - - - - - - diff --git a/qubes-release/fedora-updates.repo.in b/qubes-release/fedora-updates.repo.in deleted file mode 100644 index e86fc8c8..00000000 --- a/qubes-release/fedora-updates.repo.in +++ /dev/null @@ -1,29 +0,0 @@ -[updates] -name=Fedora %FCREL% - x86_64 - Updates -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/%FCREL%/x86_64/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f%FCREL%&arch=x86_64 -enabled=1 -enablegroups=0 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-primary - -[updates-debuginfo] -name=Fedora %FCREL% - x86_64 - Updates - Debug -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/%FCREL%/x86_64/debug/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f%FCREL%&arch=x86_64 -enabled=0 -enablegroups=0 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-primary - -[updates-source] -name=Fedora %FCREL% - Updates Source -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/%FCREL%/SRPMS/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f%FCREL%&arch=x86_64 -enabled=0 -enablegroups=0 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-primary diff --git a/qubes-release/fedora.repo.in b/qubes-release/fedora.repo.in deleted file mode 100644 index bd201493..00000000 --- a/qubes-release/fedora.repo.in +++ /dev/null @@ -1,32 +0,0 @@ -[fedora] -name=Fedora %FCREL% - x86_64 -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/%FCREL%/Everything/x86_64/os/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-%FCREL%&arch=x86_64 -enabled=1 -enablegroups=0 -metadata_expire=7d -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-primary - -[fedora-debuginfo] -name=Fedora %FCREL% - x86_64 - Debug -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/%FCREL%/Everything/x86_64/debug/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-%FCREL%&arch=x86_64 -enabled=0 -enablegroups=0 -metadata_expire=7d -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-primary - -[fedora-source] -name=Fedora %FCREL% - Source -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/%FCREL%/Everything/source/SRPMS/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-%FCREL%&arch=x86_64 -enabled=0 -enablegroups=0 -metadata_expire=7d -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-primary diff --git a/qubes-release/qubes-dom0-dist-upgrade.spec b/qubes-release/qubes-dom0-dist-upgrade.spec deleted file mode 100644 index ebc3c50f..00000000 --- a/qubes-release/qubes-dom0-dist-upgrade.spec +++ /dev/null @@ -1,48 +0,0 @@ -%define fedora_base_version %{fedora} - -Summary: Qubes dom0 dist upgrade -Name: qubes-dom0-dist-upgrade -Version: 2.0 -Release: 2 -License: GPLv2 -Group: System Environment/Base -Source0: %{name}-%{version}.tar.bz2 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildArch: noarch - -%description -Qubes dom0 upgrade transitional package. - -%prep -%setup -q - -%install -rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc - -install -d -m 755 $RPM_BUILD_ROOT/etc/pki/rpm-gpg - -install -m 644 RPM-GPG-KEY-fedora-%{fedora_base_version}-primary $RPM_BUILD_ROOT/etc/pki/rpm-gpg/ - -install -d -m 755 $RPM_BUILD_ROOT/etc/yum.repos.d -sed -e "s/%%DIST%%/fc%{fedora_base_version}/" qubes-dom0.repo.in > $RPM_BUILD_ROOT/etc/yum.repos.d/qubes-dom0-upgrade.repo -sed -e "s/%%FCREL%%/%{fedora_base_version}/" fedora.repo.in > $RPM_BUILD_ROOT/etc/yum.repos.d/fedora-upgrade.repo -sed -e "s/%%FCREL%%/%{fedora_base_version}/" fedora-updates.repo.in > $RPM_BUILD_ROOT/etc/yum.repos.d/fedora-updates-upgrade.repo - -sed -i -e "s/^\[/[upgrade-/;s/^name=.*/\0 (upgrade)/" $RPM_BUILD_ROOT/etc/yum.repos.d/*repo - -%post -# Import all keys b/c rpm won't do it automatically (as opposite to yum) -rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-* || true - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root,-) -%config(noreplace) /etc/yum.repos.d/fedora-upgrade.repo -%config(noreplace) /etc/yum.repos.d/fedora-updates-upgrade.repo -%config(noreplace) /etc/yum.repos.d/qubes-dom0-upgrade.repo -/etc/pki/rpm-gpg/* - -%changelog diff --git a/qubes-release/qubes-dom0.repo.in b/qubes-release/qubes-dom0.repo.in deleted file mode 100644 index 6411062f..00000000 --- a/qubes-release/qubes-dom0.repo.in +++ /dev/null @@ -1,40 +0,0 @@ -[qubes-dom0-current] -name = Qubes Dom0 Repository (updates) -#baseurl = https://yum.qubes-os.org/r$releasever/current/dom0/%DIST% -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/current/dom0/%DIST% -metalink = https://yum.qubes-os.org/r$releasever/current/dom0/%DIST%/repodata/repomd.xml.metalink -enabled = 1 -metadata_expire = 7d -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary - -[qubes-dom0-current-testing] -name = Qubes Dom0 Repository (updates-testing) -#baseurl = https://yum.qubes-os.org/r$releasever/current-testing/dom0/%DIST% -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/current-testing/dom0/%DIST% -metalink = https://yum.qubes-os.org/r$releasever/current-testing/dom0/%DIST%/repodata/repomd.xml.metalink -enabled = 0 -metadata_expire = 7d -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary - -[qubes-dom0-security-testing] -name = Qubes Dom0 Repository (security-testing) -#baseurl = https://yum.qubes-os.org/r$releasever/security-testing/dom0/%DIST% -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/security-testing/dom0/%DIST% -metalink = https://yum.qubes-os.org/r$releasever/security-testing/dom0/%DIST%/repodata/repomd.xml.metalink -enabled = 0 -metadata_expire = 7d -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary - -[qubes-dom0-unstable] -name = Qubes Dom0 Repository (unstable) -#baseurl = https://yum.qubes-os.org/r$releasever/unstable/dom0/%DIST% -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/unstable/dom0/%DIST% -metalink = https://yum.qubes-os.org/r$releasever/unstable/dom0/%DIST%/repodata/repomd.xml.metalink -enabled = 0 -metadata_expire = 7d -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-unstable - diff --git a/qubes-release/qubes-release.spec b/qubes-release/qubes-release.spec deleted file mode 100644 index 3ad6dd69..00000000 --- a/qubes-release/qubes-release.spec +++ /dev/null @@ -1,123 +0,0 @@ -%define dist_version 4.0 -%define release_name R%{dist_version} -%define fedora_base_version %{fedora} - -Summary: Qubes release files -Name: qubes-release -Version: %{dist_version} -Release: 7 -License: GPLv2 -Group: System Environment/Base -Source0: %{name}-%{version}.tar.bz2 -Obsoletes: fedora-release -Obsoletes: redhat-release -Provides: fedora-release = %{fedora_base_version}-%{release} -Provides: redhat-release = %{fedora_base_version}-%{release} -Provides: system-release = %{fedora_base_version}-%{release} -Provides: system-release(releasever) = %{version} -Obsoletes: qubes-dom0-dist-upgrade <= 3.2 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildArch: noarch - -%description -Qubes release files such as yum configs and various /etc/ files that -define the release. - -%package notes -Summary: Release Notes -License: Open Publication -Group: System Environment/Base -Provides: system-release-notes = %{version}-%{release} -Conflicts: fedora-release-notes - -%description notes -Qubes release notes package. - - -%prep -%setup -q - -%install -rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc -echo "Qubes release %{version} (%{release_name})" > $RPM_BUILD_ROOT/etc/qubes-release -echo "cpe:/o:ITL:qubes:%{version}" > $RPM_BUILD_ROOT/etc/system-release-cpe -cp -p $RPM_BUILD_ROOT/etc/qubes-release $RPM_BUILD_ROOT/etc/issue -echo "Kernel \r on an \m (\l)" >> $RPM_BUILD_ROOT/etc/issue -cp -p $RPM_BUILD_ROOT/etc/issue $RPM_BUILD_ROOT/etc/issue.net -echo >> $RPM_BUILD_ROOT/etc/issue -ln -s qubes-release $RPM_BUILD_ROOT/etc/fedora-release -ln -s qubes-release $RPM_BUILD_ROOT/etc/redhat-release -ln -s qubes-release $RPM_BUILD_ROOT/etc/system-release - -cat << EOF >>$RPM_BUILD_ROOT/etc/os-release -NAME=Qubes -VERSION="%{version} (%{release_name})" -ID=qubes -VERSION_ID=%{version} -PRETTY_NAME="Qubes %{version} (%{release_name})" -ANSI_COLOR="0;31" -CPE_NAME="cpe:/o:ITL:qubes:%{version}" -EOF - -install -d -m 755 $RPM_BUILD_ROOT/etc/pki/rpm-gpg - -install -m 644 RPM-GPG-KEY* $RPM_BUILD_ROOT/etc/pki/rpm-gpg/ - -install -d -m 755 $RPM_BUILD_ROOT/etc/yum.repos.d -sed -e "s/%%DIST%%/fc%{fedora_base_version}/" qubes-dom0.repo.in > $RPM_BUILD_ROOT/etc/yum.repos.d/qubes-dom0.repo -sed -e "s/%%FCREL%%/%{fedora_base_version}/" fedora.repo.in > $RPM_BUILD_ROOT/etc/yum.repos.d/fedora.repo -sed -e "s/%%FCREL%%/%{fedora_base_version}/" fedora-updates.repo.in > $RPM_BUILD_ROOT/etc/yum.repos.d/fedora-updates.repo -install -m 644 qubes-templates.repo $RPM_BUILD_ROOT/etc/yum.repos.d - -install -d -m 755 $RPM_BUILD_ROOT/usr/share/qubes -install -m 644 comps-qubes.xml $RPM_BUILD_ROOT/usr/share/qubes/Qubes-comps.xml - -# Set up the dist tag macros -install -d -m 755 $RPM_BUILD_ROOT/etc/rpm -cat >> $RPM_BUILD_ROOT/etc/rpm/macros.dist << EOF -# dist macros. - -%%qubes %{dist_version} -%%dist .qbs%{dist_version} -%%fedora %{fedora_base_version} -%%qbs3 1 -%%fc%{fedora_base_version} 1 -EOF - -%posttrans -# Import all keys b/c rpm won't do it automatically (as opposite to yum) -systemd-run --on-active=5min rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-* - - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root,-) -%doc GPL -%config %attr(0644,root,root) /etc/os-release -%config %attr(0644,root,root) /etc/qubes-release -%config %attr(0644,root,root) /etc/fedora-release -/etc/redhat-release -/etc/system-release -%config %attr(0644,root,root) /etc/system-release-cpe -%dir /etc/yum.repos.d -%config(noreplace) /etc/yum.repos.d/fedora.repo -%config(noreplace) /etc/yum.repos.d/fedora-updates.repo -%config(noreplace) /etc/yum.repos.d/qubes-dom0.repo -%config(noreplace) /etc/yum.repos.d/qubes-templates.repo -%config(noreplace) %attr(0644,root,root) /etc/issue -%config(noreplace) %attr(0644,root,root) /etc/issue.net -%config %attr(0644,root,root) /etc/rpm/macros.dist -%dir /etc/pki/rpm-gpg -/etc/pki/rpm-gpg/* -/usr/share/qubes/Qubes-comps.xml - -%files notes -%defattr(-,root,root,-) -%doc README.Qubes-Release-Notes - -%changelog -* Wed Jan 13 2010 Tomasz Sterna - 1 -- Initial Qubes 1 Release package diff --git a/qubes-release/qubes-templates.repo b/qubes-release/qubes-templates.repo deleted file mode 100644 index 58b97ed9..00000000 --- a/qubes-release/qubes-templates.repo +++ /dev/null @@ -1,42 +0,0 @@ -[qubes-templates-itl] -name = Qubes Templates repository -#baseurl = https://yum.qubes-os.org/r$releasever/templates-itl -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/templates-itl -metalink = https://yum.qubes-os.org/r$releasever/templates-itl/repodata/repomd.xml.metalink -enabled = 1 -fastestmirror = 1 -metadata_expire = 7d -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary - -[qubes-templates-itl-testing] -name = Qubes Templates repository -#baseurl = https://yum.qubes-os.org/r$releasever/templates-itl-testing -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/templates-itl-testing -metalink = https://yum.qubes-os.org/r$releasever/templates-itl-testing/repodata/repomd.xml.metalink -enabled = 0 -fastestmirror = 1 -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-primary - -[qubes-templates-community] -name = Qubes Community Templates repository -#baseurl = https://yum.qubes-os.org/r$releasever/templates-community -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/templates-community -metalink = https://yum.qubes-os.org/r$releasever/templates-community/repodata/repomd.xml.metalink -enabled = 0 -fastestmirror = 1 -metadata_expire = 7d -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-templates-community - -[qubes-templates-community-testing] -name = Qubes Community Templates repository -#baseurl = https://yum.qubes-os.org/r$releasever/templates-community-testing -#baseurl = http://yum.sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion/r$releasever/templates-community-testing -metalink = https://yum.qubes-os.org/r$releasever/templates-community-testing/repodata/repomd.xml.metalink -enabled = 0 -fastestmirror = 1 -gpgcheck = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-$releasever-templates-community -