diff --git a/.anaconda.metadata b/.anaconda.metadata
index bf113e8..7464f76 100644
--- a/.anaconda.metadata
+++ b/.anaconda.metadata
@@ -1 +1 @@
-0ef452c663f8d60cd4fc94d2986acb86b8086258 SOURCES/anaconda-19.31.79.tar.bz2
+47c05f5047f1e90223fd51b10305aabbe83b9edc SOURCES/anaconda-21.48.22.121.tar.bz2
diff --git a/.gitignore b/.gitignore
index 3f036a5..3962a4b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/anaconda-19.31.79.tar.bz2
+SOURCES/anaconda-21.48.22.121.tar.bz2
diff --git a/DEPRECATED b/DEPRECATED
deleted file mode 100644
index 6b8c81c..0000000
--- a/DEPRECATED
+++ /dev/null
@@ -1,5 +0,0 @@
-* 2016-01-14 Karanbir Singh <kbsingh@centos.org> :
-- anaconda's c7-atomic/ branch is now deprecated, the CentOS atomic host as of 7.1511 
-  has now rebased over to using the distro anaconda sources, with patches ported forward.
-
-- Refer to https://git.centos.org/log/rpms!anaconda/refs!heads!c7 moving forward
diff --git a/SOURCES/0001-gui-spokes-software-Enable-iff-payload-is-PackagePay.patch b/SOURCES/0001-gui-spokes-software-Enable-iff-payload-is-PackagePay.patch
deleted file mode 100644
index 587e773..0000000
--- a/SOURCES/0001-gui-spokes-software-Enable-iff-payload-is-PackagePay.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 81bc3c3495c5ada22ac43aac5773888dda27c7b6 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Fri, 4 Apr 2014 23:49:51 +0000
-Subject: [PATCH 01/20] gui/spokes/software: Enable iff payload is
- PackagePayload
-
-This should be the equivalent of the livecd test.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 63e5d9cb577428519d61a279c3b53442877f9c51
----
- pyanaconda/ui/gui/spokes/software.py | 4 ++--
- pyanaconda/ui/gui/spokes/source.py   | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py
-index b21866b..fe711b5 100644
---- a/pyanaconda/ui/gui/spokes/software.py
-+++ b/pyanaconda/ui/gui/spokes/software.py
-@@ -24,7 +24,7 @@ from gi.repository import Gdk, Gtk
- 
- from pyanaconda.flags import flags
- from pyanaconda.i18n import _, N_
--from pyanaconda.packaging import MetadataError
-+from pyanaconda.packaging import MetadataError, PackagePayload
- from pyanaconda.threads import threadMgr, AnacondaThread
- from pyanaconda import constants
- 
-@@ -164,7 +164,7 @@ class SoftwareSelectionSpoke(NormalSpoke):
- 
-     @property
-     def showable(self):
--        return not flags.livecdInstall and not self.data.method.method == "liveimg"
-+        return isinstance(self.payload, PackagePayload)
- 
-     @property
-     def status(self):
-diff --git a/pyanaconda/ui/gui/spokes/source.py b/pyanaconda/ui/gui/spokes/source.py
-index 3fa3234..e399d85 100644
---- a/pyanaconda/ui/gui/spokes/source.py
-+++ b/pyanaconda/ui/gui/spokes/source.py
-@@ -41,7 +41,7 @@ from pyanaconda.ui.gui.utils import enlightbox, gtk_action_wait
- from pyanaconda.iutil import ProxyString, ProxyStringError, cmp_obj_attrs
- from pyanaconda.ui.gui.utils import gtk_call_once, really_hide, really_show
- from pyanaconda.threads import threadMgr, AnacondaThread
--from pyanaconda.packaging import PayloadError, MetadataError
-+from pyanaconda.packaging import PayloadError, MetadataError, PackagePayload
- from pyanaconda import constants
- 
- from blivet.util import get_mount_paths
-@@ -765,7 +765,7 @@ class SourceSpoke(NormalSpoke):
- 
-     @property
-     def showable(self):
--        return not flags.livecdInstall and not self.data.method.method == "liveimg"
-+        return isinstance(self.payload, PackagePayload)
- 
-     def _mirror_active(self):
-         return self._protocolComboBox.get_active() == PROTOCOL_MIRROR
--- 
-1.9.3
-
diff --git a/SOURCES/0001-installclasses-rhelah-Bump-default-to-15GB-max.patch b/SOURCES/0001-installclasses-rhelah-Bump-default-to-15GB-max.patch
new file mode 100644
index 0000000..fb46644
--- /dev/null
+++ b/SOURCES/0001-installclasses-rhelah-Bump-default-to-15GB-max.patch
@@ -0,0 +1,31 @@
+From b32f9ffaa3ad0cfccb645d0b2c61f00c2f7dae5a Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Thu, 27 Jul 2017 12:52:41 -0400
+Subject: [PATCH] installclasses/rhelah: Bump default / to 15GB max
+
+This is a backport of some of the logic from <https://pagure.io/atomic-wg/issue/281>.
+We're effectively only changing non-cloud (usually physical)
+installs to allocate more disk for /.  This is an incremental
+step towards backporting the overlayfs-by-default logic.
+
+Resolves: rhbz#1481768
+---
+ pyanaconda/installclasses/rhel.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py
+index 0747379e4..6e6e786cc 100644
+--- a/pyanaconda/installclasses/rhel.py
++++ b/pyanaconda/installclasses/rhel.py
+@@ -83,7 +83,7 @@ class RHELAtomicInstallClass(RHELBaseInstallClass):
+ 
+     def setDefaultPartitioning(self, storage):
+         autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType,
+-                                size=Size("1GiB"), maxSize=Size("3GiB"), grow=True, lv=True)]
++                                size=Size("3GiB"), maxSize=Size("15GiB"), grow=True, lv=True)]
+ 
+         bootreqs = platform.setDefaultPartitioning()
+         if bootreqs:
+-- 
+2.13.5
+
diff --git a/SOURCES/0001-rpmostreepayload-Rollup-backport-of-Fedora-patches.patch b/SOURCES/0001-rpmostreepayload-Rollup-backport-of-Fedora-patches.patch
new file mode 100644
index 0000000..ad0e905
--- /dev/null
+++ b/SOURCES/0001-rpmostreepayload-Rollup-backport-of-Fedora-patches.patch
@@ -0,0 +1,226 @@
+From 13acd1e7439fe6e587b0f01843755a493a83c88e Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Thu, 27 Jul 2017 10:43:24 -0400
+Subject: [PATCH] rpmostreepayload: Rollup backport of Fedora patches
+
+This rolls up all of <https://github.com/rhinstaller/anaconda/pull/1129> which
+is basically mount handling, plus the pull-local optimization for kickstarts.
+
+We need to change the implementation for the mount setup, since
+things work differently in RHEL7 vs Fedora since commit
+664ef7b43f9102aa9332d0db5b7d13f8ece436f0.
+
+The code that changed in `pyanaconda/install.py` only applied to ostree-based
+payloads (where we introduced the physical vs sysroot distinction), so should be
+safe for backporting.
+
+Resolves: rhbz#1459623
+---
+ pyanaconda/install.py                    |  17 +---
+ pyanaconda/packaging/rpmostreepayload.py | 129 ++++++++++++++++++++++++++-----
+ 2 files changed, 111 insertions(+), 35 deletions(-)
+
+diff --git a/pyanaconda/install.py b/pyanaconda/install.py
+index 26e1b2680..a711813af 100644
+--- a/pyanaconda/install.py
++++ b/pyanaconda/install.py
+@@ -253,24 +253,9 @@ def doInstall(storage, payload, ksdata, instClass):
+         if iutil.getSysroot() != iutil.getTargetPhysicalRoot():
+             blivet.setSysroot(iutil.getTargetPhysicalRoot(),
+                               iutil.getSysroot())
+-
+-            # Now that we have the FS layout in the target, umount
+-            # things that were in the legacy sysroot, and put them in
+-            # the target root, except for the physical /.  First,
+-            # unmount all target filesystems.
+-            storage.umountFilesystems()
+-
+-            # Explicitly mount the root on the physical sysroot
+-            rootmnt = storage.mountpoints.get('/')
+-            rootmnt.setup()
+-            rootmnt.format.setup(options=rootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
+-
++            # Note this changed for RHEL 7.5; see comments in rpmostreepayload.py.
+             payload.prepareMountTargets(storage)
+ 
+-            # Everything else goes in the target root, including /boot
+-            # since the bootloader code will expect to find /boot
+-            # inside the chroot.
+-            storage.mountFilesystems(skipRoot=True)
+         storage.write()
+ 
+     # Do bootloader.
+diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
+index da7650d3b..a472fa0bc 100644
+--- a/pyanaconda/packaging/rpmostreepayload.py
++++ b/pyanaconda/packaging/rpmostreepayload.py
+@@ -48,7 +48,7 @@ class RPMOSTreePayload(ArchivePayload):
+         super(RPMOSTreePayload, self).__init__(data)
+ 
+         self._base_remote_args = None
+-        self._binds = []
++        self._internal_mounts = []
+         self._sysroot_path = None
+ 
+     @property
+@@ -166,8 +166,21 @@ class RPMOSTreePayload(ArchivePayload):
+         progress = OSTree.AsyncProgress.new()
+         progress.connect('changed', self._pullProgressCb)
+ 
++        pull_opts = {'refs': GLib.Variant('as', [ostreesetup.ref])}
++        # If we're doing a kickstart, we can at least use the content as a reference:
++        # See <https://github.com/rhinstaller/anaconda/issues/1117>
++        # The first path here is used by <https://pagure.io/fedora-lorax-templates>
++        # and the second by <https://github.com/projectatomic/rpm-ostree-toolbox/>
++        if OSTree.check_version(2017, 8):
++            for path in ['/ostree/repo', '/install/ostree/repo']:
++                if os.path.isdir(path + '/objects'):
++                    pull_opts['localcache-repos'] = GLib.Variant('as', [path])
++                    break
++
+         try:
+-            repo.pull(ostreesetup.remote, [ostreesetup.ref], 0, progress, cancellable)
++            repo.pull_with_options(ostreesetup.remote,
++                                   GLib.Variant('a{sv}', pull_opts),
++                                   progress, cancellable)
+         except GLib.GError as e:
+             exn = PayloadInstallError("Failed to pull from repository: %s" % e)
+             log.error(str(exn))
+@@ -176,6 +189,7 @@ class RPMOSTreePayload(ArchivePayload):
+                 iutil.ipmi_abort(scripts=self.data.scripts)
+                 sys.exit(1)
+ 
++        log.info("ostree pull: " + (progress.get_status() or ""))
+         progressQ.send_message(_("Preparing deployment of %s") % (ostreesetup.ref, ))
+ 
+         self._safeExecWithRedirect("ostree",
+@@ -213,25 +227,102 @@ class RPMOSTreePayload(ArchivePayload):
+ 
+         mainctx.pop_thread_default()
+ 
++    def _setupInternalBindmount(self, src, dest=None,
++                                src_physical=True,
++                                bind_ro=False,
++                                recurse=True):
++        """Internal API for setting up bind mounts between the physical root and
++           sysroot, also ensures we track them in self._internal_mounts so we can
++           cleanly unmount them.
++
++           :param src: Source path, will be prefixed with physical or sysroot
++           :param dest: Destination, will be prefixed with sysroot (defaults to same as src)
++           :param src_physical: Prefix src with physical root
++           :param bind_ro: Make mount read-only
++           :param recurse: Use --rbind to recurse, otherwise plain --bind
++        """
++        # Default to the same basename
++        if dest is None:
++            dest = src
++        # Almost all of our mounts go from physical to sysroot
++        if src_physical:
++            src = iutil.getTargetPhysicalRoot() + src
++        else:
++            src = iutil.getSysroot() + src
++        # Canonicalize dest to the full path
++        dest = iutil.getSysroot() + dest
++        if bind_ro:
++            self._safeExecWithRedirect("mount",
++                                       ["--bind", src, src])
++            self._safeExecWithRedirect("mount",
++                                       ["--bind", "-o", "remount,ro", src, src])
++        else:
++            # Recurse for non-ro binds so we pick up sub-mounts
++            # like /sys/firmware/efi/efivars.
++            if recurse:
++                bindopt = '--rbind'
++            else:
++                bindopt = '--bind'
++            self._safeExecWithRedirect("mount",
++                                       [bindopt, src, dest])
++        self._internal_mounts.append(src if bind_ro else dest)
++
+     def prepareMountTargets(self, storage):
+         ostreesetup = self.data.ostreesetup
+ 
+-        varroot = iutil.getTargetPhysicalRoot() + '/ostree/deploy/' + ostreesetup.osname + '/var'
+-
+-        # Set up bind mounts as if we've booted the target system, so
+-        # that %post script work inside the target.
+-        self._binds = [(iutil.getTargetPhysicalRoot(), iutil.getSysroot() + '/sysroot'),
+-                       (iutil.getSysroot() + '/usr', None)]
+-        # https://github.com/ostreedev/ostree/issues/855
++        # NOTE: This is different from Fedora. There, since since
++        # 664ef7b43f9102aa9332d0db5b7d13f8ece436f0 blivet now only sets up
++        # mounts in the physical root, and we set up bind mounts. But in RHEL7
++        # we tear down and set up the mounts in the sysroot, so this code
++        # doesn't need to do as much.
++
++        # Now that we have the FS layout in the target, umount
++        # things that were in the physical sysroot, and put them in
++        # the target root, *except* for the physical /.
++        storage.umountFilesystems()
++
++        # Explicitly mount the root on the physical sysroot, since that's
++        # how ostree works.
++        rootmnt = storage.mountpoints.get('/')
++        rootmnt.setup()
++        rootmnt.format.setup(options=rootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
++
++        # Everything else goes in the target root, including /boot
++        # since the bootloader code will expect to find /boot
++        # inside the chroot.
++        storage.mountFilesystems(skipRoot=True)
++
++        # We're done with blivet mounts; now set up binds as ostree does it at
++        # runtime.  We start with /usr being read-only.
++        self._setupInternalBindmount('/usr', bind_ro=True, src_physical=False)
++
++        # Handle /var; if the admin didn't specify a mount for /var, we need to
++        # do the default ostree one. See also
++        # <https://github.com/ostreedev/ostree/issues/855>.
++        varroot = '/ostree/deploy/' + ostreesetup.osname + '/var'
+         if storage.mountpoints.get("/var") is None:
+-            self._binds.append((varroot, iutil.getSysroot() + '/var'))
+-
+-        for (src, dest) in self._binds:
+-            self._safeExecWithRedirect("mount",
+-                                       ["--bind", src, dest if dest else src])
+-            if dest is None:
+-                self._safeExecWithRedirect("mount",
+-                                           ["--bind", "-o", "ro", src, src])
++            self._setupInternalBindmount(varroot, dest='/var', recurse=False)
++
++        self._setupInternalBindmount("/", dest="/sysroot", recurse=False)
++
++        # Now that we have /var, start filling in any directories that may be
++        # required later there. We explicitly make /var/lib, since
++        # systemd-tmpfiles doesn't have a --prefix-only=/var/lib. We rely on
++        # 80-setfilecons.ks to set the label correctly.
++        iutil.mkdirChain(iutil.getSysroot() + '/var/lib')
++        # Next, run tmpfiles to make subdirectories of /var. We need this for
++        # both mounts like /home (really /var/home) and %post scripts might
++        # want to write to e.g. `/srv`, `/root`, `/usr/local`, etc. The
++        # /var/lib/rpm symlink is also critical for having e.g. `rpm -qa` work
++        # in %post. We don't iterate *all* tmpfiles because we don't have the
++        # matching NSS configuration inside Anaconda, and we can't "chroot" to
++        # get it because that would require mounting the API filesystems in the
++        # target.
++        for varsubdir in ('home', 'roothome', 'lib/rpm', 'opt', 'srv',
++                          'usrlocal', 'mnt', 'media', 'spool', 'spool/mail'):
++            self._safeExecWithRedirect("systemd-tmpfiles",
++                                       ["--create", "--boot", "--root=" + iutil.getSysroot(),
++                                        "--prefix=/var/" + varsubdir])
+ 
+     def recreateInitrds(self, force=False):
+         # For rpmostree payloads, we're replicating an initramfs from
+@@ -312,6 +403,6 @@ class RPMOSTreePayload(ArchivePayload):
+         # on inside either blivet (or systemd?) that's causing mounts inside
+         # /mnt/sysimage/ostree/deploy/$x/sysroot/ostree/deploy
+         # which is not what we want.
+-        for (src, dest) in reversed(self._binds):
++        for path in reversed(self._internal_mounts):
+             # Also intentionally ignore errors here
+-            iutil.execWithRedirect("umount", ['-R', dest if dest else src])
++            iutil.execWithRedirect("umount", ['-R', path])
+-- 
+2.13.5
+
diff --git a/SOURCES/0002-Override-ROOT_PATH-with-environmental-variable.patch b/SOURCES/0002-Override-ROOT_PATH-with-environmental-variable.patch
deleted file mode 100644
index 5b71c67..0000000
--- a/SOURCES/0002-Override-ROOT_PATH-with-environmental-variable.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 5741fc05e8c65537acbd220418574ad041a3f8fe Mon Sep 17 00:00:00 2001
-From: "Brian C. Lane" <bcl@redhat.com>
-Date: Tue, 11 Mar 2014 14:04:13 -0700
-Subject: [PATCH 02/20] Override ROOT_PATH with environmental variable
-
-Normally ROOT_PATH is "/mnt/sysimage", but with dirinstall it would be
-nice to be able to install to arbitrary directories. This lets the path
-be overridden by the ANACONDA_ROOT_PATH environmental variable.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 2e3d576ee643a676d1ca3f4c194c5fbc59b9d295
----
- data/anaconda_options.txt | 4 +++-
- pyanaconda/constants.py   | 4 +++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/data/anaconda_options.txt b/data/anaconda_options.txt
-index 6dc90c4..753609a 100644
---- a/data/anaconda_options.txt
-+++ b/data/anaconda_options.txt
-@@ -1,7 +1,9 @@
- dirinstall
- Use the device mounted at /mnt/sysimage as the installation
- destination. The --dirinstall and --image options are mutually
--exclusive.
-+exclusive. The /mnt/sysimage directory can be overridden by
-+setting the ANACONDA_ROOT_PATH environmental variable before
-+starting anaconda.
- 
- image
- Specification of disk image file to be used as installation
-diff --git a/pyanaconda/constants.py b/pyanaconda/constants.py
-index 266eb53..e864630 100644
---- a/pyanaconda/constants.py
-+++ b/pyanaconda/constants.py
-@@ -23,6 +23,8 @@ from pyanaconda.i18n import _, N_
- 
- import re
- 
-+import os
-+
- SELINUX_DEFAULT = 1
- 
- DISPATCH_BACK = -1
-@@ -78,7 +80,7 @@ DD_RPMS = "/tmp/DD-*"
- TRANSLATIONS_UPDATE_DIR="/tmp/updates/po"
- 
- ANACONDA_CLEANUP = "anaconda-cleanup"
--ROOT_PATH = "/mnt/sysimage"
-+ROOT_PATH = os.environ.get("ANACONDA_ROOT_PATH", "/mnt/sysimage")
- MOUNT_DIR = "/mnt/install"
- DRACUT_REPODIR = "/run/install/repo"
- DRACUT_ISODIR = "/run/install/source"
--- 
-1.9.3
-
diff --git a/SOURCES/0003-Use-ROOT_PATH-not-mnt-sysimage.patch b/SOURCES/0003-Use-ROOT_PATH-not-mnt-sysimage.patch
deleted file mode 100644
index fc13653..0000000
--- a/SOURCES/0003-Use-ROOT_PATH-not-mnt-sysimage.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 7c4f34a595372b752c8140d25bf503af1222153c Mon Sep 17 00:00:00 2001
-From: "Brian C. Lane" <bcl@redhat.com>
-Date: Tue, 11 Mar 2014 14:34:12 -0700
-Subject: [PATCH 03/20] Use ROOT_PATH not /mnt/sysimage
-
-Cleanup a couple places that were using /mnt/sysimage instead of
-ROOT_PATH from constants.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 1ea3a19565d92d3a1077a7beeb2f369c76ed8b8d
----
- pyanaconda/exception.py | 8 ++++----
- pyanaconda/users.py     | 6 +++---
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/pyanaconda/exception.py b/pyanaconda/exception.py
-index ed434a7..861425f 100644
---- a/pyanaconda/exception.py
-+++ b/pyanaconda/exception.py
-@@ -158,13 +158,13 @@ class AnacondaExceptionHandler(ExceptionHandler):
-     def postWriteHook(self, dump_info):
-         anaconda = dump_info.object
- 
--        # See if /mnt/sysimage is present and put exception there as well
--        if os.access("/mnt/sysimage/root", os.X_OK):
-+        # See if there is a /root present in the root path and put exception there as well
-+        if os.access(ROOT_PATH + "/root", os.X_OK):
-             try:
--                dest = "/mnt/sysimage/root/%s" % os.path.basename(self.exnFile)
-+                dest = ROOT_PATH + "/root/%s" % os.path.basename(self.exnFile)
-                 shutil.copyfile(self.exnFile, dest)
-             except:
--                log.error("Failed to copy %s to /mnt/sysimage/root" % self.exnFile)
-+                log.error("Failed to copy %s to %s/root" % (self.exnFile, ROOT_PATH))
-                 pass
- 
-         # run kickstart traceback scripts (if necessary)
-diff --git a/pyanaconda/users.py b/pyanaconda/users.py
-index d43ad29..9e09be0 100644
---- a/pyanaconda/users.py
-+++ b/pyanaconda/users.py
-@@ -192,7 +192,7 @@ class Users:
-         """
- 
-         childpid = os.fork()
--        root = kwargs.get("root", "/mnt/sysimage")
-+        root = kwargs.get("root", ROOT_PATH)
- 
-         if not childpid:
-             if not root in ["","/"]:
-@@ -258,7 +258,7 @@ class Users:
-                         available one is used.
-         """
-         childpid = os.fork()
--        root = kwargs.get("root", "/mnt/sysimage")
-+        root = kwargs.get("root", ROOT_PATH)
- 
-         if not childpid:
-             if not root in ["","/"]:
-@@ -358,7 +358,7 @@ class Users:
-         else:
-             return False
- 
--    def checkUserExists(self, username, root="/mnt/sysimage"):
-+    def checkUserExists(self, username, root=ROOT_PATH):
-         childpid = os.fork()
- 
-         if not childpid:
--- 
-1.9.3
-
diff --git a/SOURCES/0004-iutil-Introduce-getSysroot-getTargetPhysicalRoot-use.patch b/SOURCES/0004-iutil-Introduce-getSysroot-getTargetPhysicalRoot-use.patch
deleted file mode 100644
index c78bbe6..0000000
--- a/SOURCES/0004-iutil-Introduce-getSysroot-getTargetPhysicalRoot-use.patch
+++ /dev/null
@@ -1,1222 +0,0 @@
-From 74d70fcd113ca0622959e272cb78cedc6509fbef Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 22 Apr 2014 14:39:26 -0400
-Subject: [PATCH 04/20] iutil: Introduce getSysroot()/getTargetPhysicalRoot(),
- use instead of ROOT_PATH
-
-For OSTree, the OS lives in a chroot, thus creating a distinction
-between the "physical" root and the "deployment" root.  The physical
-root as mounted by anaconda remains as /mnt/sysimage of course, but
-*nearly* everything needs to reference the deployment, as that's where
-the binaries, config files, etc live.
-
-The deployment root is dynamic - we only know it after we do an
-initial installation what the path will be.  This dynamic nature means
-that the API is best as a function call.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 1b260c0c3ca70b53d44b543babe1a5ab06fb5fb5
----
- pyanaconda/__init__.py              |  6 +--
- pyanaconda/bootloader.py            | 96 +++++++++++++++++--------------------
- pyanaconda/constants.py             |  2 +
- pyanaconda/desktop.py               | 10 ++--
- pyanaconda/exception.py             | 10 ++--
- pyanaconda/install.py               |  6 +--
- pyanaconda/installclasses/fedora.py |  8 ++--
- pyanaconda/installclasses/rhel.py   |  3 +-
- pyanaconda/iutil.py                 | 48 ++++++++++++++++++-
- pyanaconda/kickstart.py             | 51 ++++++++++----------
- pyanaconda/packaging/__init__.py    | 40 ++++++++--------
- pyanaconda/packaging/livepayload.py | 25 +++++-----
- pyanaconda/packaging/tarpayload.py  |  2 +-
- pyanaconda/packaging/yumpayload.py  | 12 ++---
- pyanaconda/rescue.py                | 16 +++----
- pyanaconda/users.py                 |  7 ++-
- 16 files changed, 187 insertions(+), 155 deletions(-)
-
-diff --git a/pyanaconda/__init__.py b/pyanaconda/__init__.py
-index 9b58f92..fad7a90 100644
---- a/pyanaconda/__init__.py
-+++ b/pyanaconda/__init__.py
-@@ -30,11 +30,11 @@
- 
- import os, time, string
- import sys
--from constants import ROOT_PATH
- from tempfile import mkstemp
- 
- from pyanaconda.bootloader import get_bootloader
- from pyanaconda import constants
-+from pyanaconda import iutil
- from pyanaconda import addons
- from pyanaconda.i18n import _
- 
-@@ -228,7 +228,7 @@ class Anaconda(object):
-         if self.xdriver is None:
-             return
-         if root is None:
--            root = ROOT_PATH
-+            root = iutil.getSysroot()
-         if not os.path.isdir("%s/etc/X11" %(root,)):
-             os.makedirs("%s/etc/X11" %(root,), mode=0755)
-         f = open("%s/etc/X11/xorg.conf" %(root,), 'w')
-@@ -241,7 +241,7 @@ class Anaconda(object):
- 
-         network.write_sysconfig_network()
-         network.disableIPV6()
--        network.copyConfigToPath(ROOT_PATH)
-+        network.copyConfigToPath(iutil.getSysroot())
-         if not self.ksdata:
-             self.instClass.setNetworkOnbootDefault()
-         self.desktop.write()
-diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
-index 2fc1d49..90aec61 100644
---- a/pyanaconda/bootloader.py
-+++ b/pyanaconda/bootloader.py
-@@ -34,7 +34,6 @@ from blivet.devicelibs import mdraid
- from pyanaconda.isys import sync
- from pyanaconda.product import productName
- from pyanaconda.flags import flags
--from pyanaconda.constants import *
- from blivet.errors import StorageError
- from blivet.fcoe import fcoe
- import pyanaconda.network
-@@ -929,19 +928,19 @@ class BootLoader(object):
- 
-     def write_config_post(self):
-         try:
--            os.chmod(ROOT_PATH + self.config_file, self.config_file_mode)
-+            os.chmod(iutil.getSysroot() + self.config_file, self.config_file_mode)
-         except OSError as e:
-             log.error("failed to set config file permissions: %s" % e)
- 
-     def add_crash_args(self):
-         buf = ""
--        if os.access("%s%s" % (ROOT_PATH, "/usr/sbin/rhcrashkernel-param"), \
-+        if os.access("%s%s" % (iutil.getSysroot(), "/usr/sbin/rhcrashkernel-param"), \
-                      os.X_OK):
-             (pread, pwrite) = os.pipe()
-             os.close(pwrite)
-             buf = iutil.execWithCapture("/usr/sbin/rhcrashkernel-param", [],
-                                         stdin=pread,
--                                        root=ROOT_PATH)
-+                                        root=iutil.getSysroot())
-             os.close(pread)
-         self.boot_args.add(buf.replace('\n', ' '))
- 
-@@ -952,7 +951,7 @@ class BootLoader(object):
- 
-         self.add_crash_args()
- 
--        config_path = os.path.normpath(ROOT_PATH + self.config_file)
-+        config_path = os.path.normpath(iutil.getSysroot() + self.config_file)
-         if os.access(config_path, os.R_OK):
-             os.rename(config_path, config_path + ".anacbak")
- 
-@@ -988,7 +987,7 @@ class BootLoader(object):
- 
-         self.write_config()
-         sync()
--        self.stage2_device.format.sync(root=ROOT_PATH)
-+        self.stage2_device.format.sync(root=iutil.getTargetPhysicalRoot())
-         self.install()
- 
-     def install(self):
-@@ -1180,7 +1179,7 @@ class GRUB(BootLoader):
- 
-         if iutil.isConsoleOnVirtualTerminal(self.console):
-             splash = "splash.xpm.gz"
--            splash_path = os.path.normpath("%s/boot/%s/%s" % (ROOT_PATH,
-+            splash_path = os.path.normpath("%s/boot/%s/%s" % (iutil.getSysroot(),
-                                                         self.splash_dir,
-                                                         splash))
-             if os.access(splash_path, os.R_OK):
-@@ -1233,7 +1232,7 @@ class GRUB(BootLoader):
- 
-     def write_device_map(self):
-         """ Write out a device map containing all supported devices. """
--        map_path = os.path.normpath(ROOT_PATH + self.device_map_file)
-+        map_path = os.path.normpath(iutil.getSysroot() + self.device_map_file)
-         if os.access(map_path, os.R_OK):
-             os.rename(map_path, map_path + ".anacbak")
- 
-@@ -1249,7 +1248,7 @@ class GRUB(BootLoader):
-         super(GRUB, self).write_config_post()
- 
-         # make symlink for menu.lst (grub's default config file name)
--        menu_lst = "%s%s/menu.lst" % (ROOT_PATH, self.config_dir)
-+        menu_lst = "%s%s/menu.lst" % (iutil.getSysroot(), self.config_dir)
-         if os.access(menu_lst, os.R_OK):
-             try:
-                 os.rename(menu_lst, menu_lst + '.anacbak')
-@@ -1262,7 +1261,7 @@ class GRUB(BootLoader):
-             log.error("failed to create grub menu.lst symlink: %s" % e)
- 
-         # make symlink to grub.conf in /etc since that's where configs belong
--        etc_grub = "%s/etc/%s" % (ROOT_PATH, self._config_file)
-+        etc_grub = "%s/etc/%s" % (iutil.getSysroot(), self._config_file)
-         if os.access(etc_grub, os.R_OK):
-             try:
-                 os.unlink(etc_grub)
-@@ -1320,9 +1319,8 @@ class GRUB(BootLoader):
- 
-         return targets
- 
--    def install(self):
--        rc = iutil.execWithRedirect("grub-install", ["--just-copy"],
--                                    root=ROOT_PATH)
-+    def install(self, args=None):
-+        rc = iutil.execInSysroot("grub-install", ["--just-copy"])
-         if rc:
-             raise BootLoaderError("bootloader install failed")
- 
-@@ -1342,8 +1340,7 @@ class GRUB(BootLoader):
-             os.close(pwrite)
-             args = ["--batch", "--no-floppy",
-                     "--device-map=%s" % self.device_map_file]
--            rc = iutil.execWithRedirect("grub", args,
--                                        stdin=pread, root=ROOT_PATH)
-+            rc = iutil.execInSysroot("grub", args, stdin=pread)
-             os.close(pread)
-             if rc:
-                 raise BootLoaderError("bootloader install failed")
-@@ -1452,7 +1449,7 @@ class GRUB2(GRUB):
- 
-     def write_device_map(self):
-         """ Write out a device map containing all supported devices. """
--        map_path = os.path.normpath(ROOT_PATH + self.device_map_file)
-+        map_path = os.path.normpath(iutil.getSysroot() + self.device_map_file)
-         if os.access(map_path, os.R_OK):
-             os.rename(map_path, map_path + ".anacbak")
- 
-@@ -1477,7 +1474,7 @@ class GRUB2(GRUB):
-         dev_map.close()
- 
-     def write_defaults(self):
--        defaults_file = "%s%s" % (ROOT_PATH, self.defaults_file)
-+        defaults_file = "%s%s" % (iutil.getSysroot(), self.defaults_file)
-         defaults = open(defaults_file, "w+")
-         defaults.write("GRUB_TIMEOUT=%d\n" % self.timeout)
-         defaults.write("GRUB_DISTRIBUTOR=\"$(sed 's, release .*$,,g' /etc/system-release)\"\n")
-@@ -1511,7 +1508,7 @@ class GRUB2(GRUB):
-         os.close(pwrite)
-         buf = iutil.execWithCapture("grub2-mkpasswd-pbkdf2", [],
-                                     stdin=pread,
--                                    root=ROOT_PATH)
-+                                    root=iutil.getSysroot())
-         os.close(pread)
-         self.encrypted_password = buf.split()[-1].strip()
-         if not self.encrypted_password.startswith("grub.pbkdf2."):
-@@ -1521,7 +1518,7 @@ class GRUB2(GRUB):
-         if not self.password and not self.encrypted_password:
-             return
- 
--        users_file = ROOT_PATH + "/etc/grub.d/01_users"
-+        users_file = iutil.getSysroot() + "/etc/grub.d/01_users"
-         header = open(users_file, "w")
-         header.write("#!/bin/sh -e\n\n")
-         header.write("cat << \"EOF\"\n")
-@@ -1555,16 +1552,13 @@ class GRUB2(GRUB):
-         # make sure the default entry is the OS we are installing
-         entry_title = "%s Linux, with Linux %s" % (productName,
-                                                    self.default.version)
--        rc = iutil.execWithRedirect("grub2-set-default",
--                                    [entry_title],
--                                    root=ROOT_PATH)
-+        rc = iutil.execInSysroot("grub2-set-default", [entry_title])
-         if rc:
-             log.error("failed to set default menu entry to %s" % productName)
- 
-         # now tell grub2 to generate the main configuration file
--        rc = iutil.execWithRedirect("grub2-mkconfig",
--                                    ["-o", self.config_file],
--                                    root=ROOT_PATH)
-+        rc = iutil.execInSysroot("grub2-mkconfig",
-+                                 ["-o", self.config_file])
-         if rc:
-             raise BootLoaderError("failed to write bootloader configuration")
- 
-@@ -1585,7 +1579,7 @@ class GRUB2(GRUB):
-                 grub_args.insert(0, '--force')
- 
-             rc = iutil.execWithRedirect("grub2-install", grub_args,
--                                        root=ROOT_PATH,
-+                                        root=iutil.getSysroot(),
-                                         env_prune=['MALLOC_PERTURB_'])
-             if rc:
-                 raise BootLoaderError("bootloader install failed")
-@@ -1600,14 +1594,14 @@ class GRUB2(GRUB):
-             return
- 
-         self.write_device_map()
--        self.stage2_device.format.sync(root=ROOT_PATH)
-+        self.stage2_device.format.sync(root=iutil.getTargetPhysicalRoot())
-         sync()
-         self.install()
-         sync()
--        self.stage2_device.format.sync(root=ROOT_PATH)
-+        self.stage2_device.format.sync(root=iutil.getTargetPhysicalRoot())
-         self.write_config()
-         sync()
--        self.stage2_device.format.sync(root=ROOT_PATH)
-+        self.stage2_device.format.sync(root=iutil.getTargetPhysicalRoot())
- 
-     def check(self):
-         """ When installing to the mbr of a disk grub2 needs enough space
-@@ -1676,7 +1670,7 @@ class EFIGRUB(GRUB2):
-         else:
-             exec_func = iutil.execWithRedirect
-         if "root" not in kwargs:
--            kwargs["root"] = ROOT_PATH
-+            kwargs["root"] = iutil.getSysroot()
- 
-         return exec_func("efibootmgr", list(args), **kwargs)
- 
-@@ -1722,7 +1716,8 @@ class EFIGRUB(GRUB2):
-         rc = self.efibootmgr("-c", "-w", "-L", productName,
-                              "-d", boot_disk.path, "-p", boot_part_num,
-                              "-l",
--                             self.efi_dir_as_efifs_dir + self._efi_binary)
-+                             self.efi_dir_as_efifs_dir + self._efi_binary,
-+                             root=iutil.getSysroot())
-         if rc:
-             raise BootLoaderError("failed to set new efi boot target")
- 
-@@ -1747,7 +1742,7 @@ class EFIGRUB(GRUB2):
-             return
- 
-         sync()
--        self.stage2_device.format.sync(root=ROOT_PATH)
-+        self.stage2_device.format.sync(root=iutil.getTargetPhysicalRoot())
-         self.install()
-         self.write_config()
- 
-@@ -1765,9 +1760,8 @@ class Aarch64EFIGRUB(EFIGRUB):
- 
- class MacEFIGRUB(EFIGRUB):
-     def mactel_config(self):
--        if os.path.exists(ROOT_PATH + "/usr/libexec/mactel-boot-setup"):
--            rc = iutil.execWithRedirect("/usr/libexec/mactel-boot-setup", [],
--                                        root=ROOT_PATH)
-+        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 bootloader")
- 
-@@ -1881,7 +1875,7 @@ class Yaboot(YabootBase):
-         super(Yaboot, self).write_config_post()
- 
-         # make symlink in /etc to yaboot.conf if config is in /boot/etc
--        etc_yaboot_conf = ROOT_PATH + "/etc/yaboot.conf"
-+        etc_yaboot_conf = iutil.getSysroot() + "/etc/yaboot.conf"
-         if not os.access(etc_yaboot_conf, os.R_OK):
-             try:
-                 os.symlink("../boot/etc/yaboot.conf", etc_yaboot_conf)
-@@ -1889,8 +1883,8 @@ class Yaboot(YabootBase):
-                 log.error("failed to create /etc/yaboot.conf symlink: %s" % e)
- 
-     def write_config(self):
--        if not os.path.isdir(ROOT_PATH + self.config_dir):
--            os.mkdir(ROOT_PATH + self.config_dir)
-+        if not os.path.isdir(iutil.getSysroot() + self.config_dir):
-+            os.mkdir(iutil.getSysroot() + self.config_dir)
- 
-         # this writes the config
-         super(Yaboot, self).write_config()
-@@ -1901,8 +1895,7 @@ class Yaboot(YabootBase):
- 
-     def install(self):
-         args = ["-f", "-C", self.config_file]
--        rc = iutil.execWithRedirect(self.prog, args,
--                                    root=ROOT_PATH)
-+        rc = iutil.execInSysroot(self.prog, args)
-         if rc:
-             raise BootLoaderError("bootloader installation failed")
- 
-@@ -2027,7 +2020,7 @@ class IPSeriesGRUB2(GRUB2):
-     def write_defaults(self):
-         super(IPSeriesGRUB2, self).write_defaults()
- 
--        defaults_file = "%s%s" % (ROOT_PATH, self.defaults_file)
-+        defaults_file = "%s%s" % (iutil.getSysroot(), self.defaults_file)
-         defaults = open(defaults_file, "a+")
-         # The terminfo's X and Y size, and output location could change in the future
-         defaults.write("GRUB_TERMINFO=\"terminfo -g 80x24 console\"\n")
-@@ -2142,10 +2135,8 @@ class ZIPL(BootLoader):
-     # installation
-     #
- 
--    def install(self):
--        buf = iutil.execWithCapture("zipl", [],
--                                    root=ROOT_PATH,
--                                    fatal=True)
-+    def install(self, args=None):
-+        buf = iutil.execWithCapture("zipl", [], root=iutil.getSysroot(), fatal=True)
-         for line in buf.splitlines():
-             if line.startswith("Preparing boot device: "):
-                 # Output here may look like:
-@@ -2192,7 +2183,7 @@ class UBOOT(BootLoader):
-     def install(self):
-         # a-b-c is a tool that generates a generic boor.scr that works in most situations.
-         # not perfect but is better than doing nothing
--        rc = iutil.execWithRedirect("a-b-c", [], root=ROOT_PATH)
-+        rc = iutil.execWithRedirect("a-b-c", [], root=iutil.getSysroot())
- 
-         if rc:
-             raise BootLoaderError("bootloader install failed")
-@@ -2274,7 +2265,7 @@ class EXTLINUX(BootLoader):
-             config.write("menu notabmsg Press [Tab] and enter the password to edit options")
- 
-     def write_config_post(self):
--        etc_extlinux = os.path.normpath(ROOT_PATH + "/etc/" + self._config_file)
-+        etc_extlinux = os.path.normpath(iutil.getSysroot() + "/etc/" + self._config_file)
-         if not os.access(etc_extlinux, os.R_OK):
-             try:
-                 os.symlink("../boot/%s" % self._config_file, etc_extlinux)
-@@ -2291,8 +2282,7 @@ class EXTLINUX(BootLoader):
-     def install(self):
-         backup = "%s/backup.b" % self._config_dir
-         args = ["--install", self._config_dir]
--        rc = iutil.execWithRedirect("extlinux", args,
--                                    root=ROOT_PATH)
-+        rc = iutil.execInSysroot("extlinux", args)
- 
-         if rc:
-             raise BootLoaderError("bootloader install failed")
-@@ -2326,9 +2316,9 @@ def writeSysconfigKernel(storage, version):
-     # get the name of the default kernel package based on the version
-     kernel_basename = "vmlinuz-" + version
-     kernel_file = "/boot/%s" % kernel_basename
--    if not os.path.isfile(ROOT_PATH + kernel_file):
-+    if not os.path.isfile(iutil.getSysroot() + kernel_file):
-         kernel_file = "/boot/efi/EFI/redhat/%s" % kernel_basename
--        if not os.path.isfile(ROOT_PATH + kernel_file):
-+        if not os.path.isfile(iutil.getSysroot() + kernel_file):
-             log.error("failed to recreate path to default kernel image")
-             return
- 
-@@ -2338,7 +2328,7 @@ def writeSysconfigKernel(storage, version):
-         log.error("failed to import rpm python module")
-         return
- 
--    ts = rpm.TransactionSet(ROOT_PATH)
-+    ts = rpm.TransactionSet(iutil.getSysroot())
-     mi = ts.dbMatch('basenames', kernel_file)
-     try:
-         h = mi.next()
-@@ -2348,7 +2338,7 @@ def writeSysconfigKernel(storage, version):
- 
-     kernel = h.name
- 
--    f = open(ROOT_PATH + "/etc/sysconfig/kernel", "w+")
-+    f = open(iutil.getSysroot() + "/etc/sysconfig/kernel", "w+")
-     f.write("# UPDATEDEFAULT specifies if new-kernel-pkg should make\n"
-             "# new kernels the default\n")
-     # only update the default if we're setting the default to linux (#156678)
-diff --git a/pyanaconda/constants.py b/pyanaconda/constants.py
-index e864630..1d523c0 100644
---- a/pyanaconda/constants.py
-+++ b/pyanaconda/constants.py
-@@ -80,6 +80,8 @@ DD_RPMS = "/tmp/DD-*"
- TRANSLATIONS_UPDATE_DIR="/tmp/updates/po"
- 
- ANACONDA_CLEANUP = "anaconda-cleanup"
-+# This is a legacy variable; new code should use iutil.getSysroot()
-+# or iutil.getTargetPhysicalRoot().
- ROOT_PATH = os.environ.get("ANACONDA_ROOT_PATH", "/mnt/sysimage")
- MOUNT_DIR = "/mnt/install"
- DRACUT_REPODIR = "/run/install/repo"
-diff --git a/pyanaconda/desktop.py b/pyanaconda/desktop.py
-index fde1dc7..c4edf2f 100644
---- a/pyanaconda/desktop.py
-+++ b/pyanaconda/desktop.py
-@@ -21,7 +21,8 @@
- 
- import os
- from simpleconfig import SimpleConfigFile
--from pyanaconda.constants import ROOT_PATH, RUNLEVELS
-+from pyanaconda.constants import RUNLEVELS
-+from pyanaconda import iutil
- 
- import logging
- log = logging.getLogger("anaconda")
-@@ -51,14 +52,15 @@ class Desktop(SimpleConfigFile):
- 
-     def write(self):
-         if self.getDefaultDesktop():
--            f = open(ROOT_PATH + "/etc/sysconfig/desktop", "w")
-+            f = open(iutil.getSysroot() + "/etc/sysconfig/desktop", "w")
-             f.write(str(self))
-             f.close()
- 
--        if not os.path.isdir(ROOT_PATH + '/etc/systemd/system'):
-+        if not os.path.isdir(iutil.getSysroot() + '/etc/systemd/system'):
-             log.warning("there is no /etc/systemd/system directory, cannot update default.target!")
-             return
--        default_target = ROOT_PATH + '/etc/systemd/system/default.target'
-+
-+        default_target = iutil.getSysroot() + '/etc/systemd/system/default.target'
-         if os.path.islink(default_target):
-             os.unlink(default_target)
-         os.symlink('/lib/systemd/system/%s' % RUNLEVELS[self.runlevel],
-diff --git a/pyanaconda/exception.py b/pyanaconda/exception.py
-index 861425f..fe2bb8d 100644
---- a/pyanaconda/exception.py
-+++ b/pyanaconda/exception.py
-@@ -34,7 +34,7 @@ import kickstart
- import blivet.errors
- from pyanaconda.errors import CmdlineError
- from pyanaconda.ui.communication import hubQ
--from pyanaconda.constants import ROOT_PATH, THREAD_EXCEPTION_HANDLING_TEST
-+from pyanaconda.constants import THREAD_EXCEPTION_HANDLING_TEST
- from pyanaconda.threads import threadMgr
- from pyanaconda.i18n import _
- from pyanaconda import flags
-@@ -159,12 +159,12 @@ class AnacondaExceptionHandler(ExceptionHandler):
-         anaconda = dump_info.object
- 
-         # See if there is a /root present in the root path and put exception there as well
--        if os.access(ROOT_PATH + "/root", os.X_OK):
-+        if os.access(iutil.getSysroot() + "/root", os.X_OK):
-             try:
--                dest = ROOT_PATH + "/root/%s" % os.path.basename(self.exnFile)
-+                dest = iutil.getSysroot() + "/root/%s" % os.path.basename(self.exnFile)
-                 shutil.copyfile(self.exnFile, dest)
-             except:
--                log.error("Failed to copy %s to %s/root" % (self.exnFile, ROOT_PATH))
-+                log.error("Failed to copy %s to %s/root" % (self.exnFile, iutil.getSysroot()))
-                 pass
- 
-         # run kickstart traceback scripts (if necessary)
-@@ -213,7 +213,7 @@ class AnacondaExceptionHandler(ExceptionHandler):
- def initExceptionHandling(anaconda):
-     fileList = [ "/tmp/anaconda.log", "/tmp/packaging.log",
-                  "/tmp/program.log", "/tmp/storage.log", "/tmp/ifcfg.log",
--                 "/tmp/yum.log", ROOT_PATH + "/root/install.log",
-+                 "/tmp/yum.log", iutil.getSysroot() + "/root/install.log",
-                  "/proc/cmdline" ]
-     if flags.flags.livecdInstall:
-         fileList.extend(["/var/log/messages"])
-diff --git a/pyanaconda/install.py b/pyanaconda/install.py
-index 5796086..db66e78 100644
---- a/pyanaconda/install.py
-+++ b/pyanaconda/install.py
-@@ -20,12 +20,12 @@
- # Red Hat Author(s): Chris Lumens <clumens@redhat.com>
- #
- 
--from pyanaconda.constants import ROOT_PATH, THREAD_PAYLOAD
- from blivet import turnOnFilesystems
- from pyanaconda.bootloader import writeBootLoader
- from pyanaconda.progress import progress_report, progressQ
- from pyanaconda.users import createLuserConf, getPassAlgo, Users
- from pyanaconda import flags
-+from pyanaconda import iutil
- from pyanaconda import timezone
- from pyanaconda.i18n import _
- from pyanaconda.threads import threadMgr
-@@ -35,7 +35,7 @@ log = logging.getLogger("anaconda")
- def _writeKS(ksdata):
-     import os
- 
--    path = ROOT_PATH + "/root/anaconda-ks.cfg"
-+    path = iutil.getSysroot() + "/root/anaconda-ks.cfg"
- 
-     # Clear out certain sensitive information that kickstart doesn't have a
-     # way of representing encrypted.
-@@ -80,7 +80,7 @@ def doConfiguration(storage, payload, ksdata, instClass):
- 
-     # Creating users and groups requires some pre-configuration.
-     with progress_report(_("Creating users")):
--        createLuserConf(ROOT_PATH, algoname=getPassAlgo(ksdata.authconfig.authconfig))
-+        createLuserConf(iutil.getSysroot(), algoname=getPassAlgo(ksdata.authconfig.authconfig))
-         u = Users()
-         ksdata.rootpw.execute(storage, ksdata, instClass, u)
-         ksdata.group.execute(storage, ksdata, instClass, u)
-diff --git a/pyanaconda/installclasses/fedora.py b/pyanaconda/installclasses/fedora.py
-index 98e922f..3e0a5f2 100644
---- a/pyanaconda/installclasses/fedora.py
-+++ b/pyanaconda/installclasses/fedora.py
-@@ -18,11 +18,11 @@
- #
- 
- from pyanaconda.installclass import BaseInstallClass
--from pyanaconda.constants import *
--from pyanaconda.product import *
-+from pyanaconda.product import productName
- from pyanaconda import network
-+from pyanaconda import iutil
- from pyanaconda import nm
--from pyanaconda.i18n import _
-+from pyanaconda.i18n import _, N_
- 
- import os, types
- 
-@@ -68,7 +68,7 @@ class InstallClass(BaseInstallClass):
-             except ValueError as e:
-                 continue
-             if link_up:
--                ifcfg_path = network.find_ifcfg_file_of_device(devName, root_path=ROOT_PATH)
-+                ifcfg_path = network.find_ifcfg_file_of_device(devName, root_path=iutil.getSysroot())
-                 if not ifcfg_path:
-                     continue
-                 ifcfg = network.IfcfgFile(ifcfg_path)
-diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py
-index f3e5a99..74052fd 100644
---- a/pyanaconda/installclasses/rhel.py
-+++ b/pyanaconda/installclasses/rhel.py
-@@ -22,6 +22,7 @@ from pyanaconda.constants import *
- from pyanaconda.product import *
- from pyanaconda import network
- from pyanaconda import nm
-+from pyanaconda import iutil
- import types
- 
- class InstallClass(BaseInstallClass):
-@@ -71,7 +72,7 @@ class InstallClass(BaseInstallClass):
-             return
-         if nm.nm_device_type_is_wifi(devName):
-             return
--        ifcfg_path = network.find_ifcfg_file_of_device(devName, root_path=ROOT_PATH)
-+        ifcfg_path = network.find_ifcfg_file_of_device(devName, root_path=iutil.getSysroot())
-         if not ifcfg_path:
-             return
-         ifcfg = network.IfcfgFile(ifcfg_path)
-diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
-index 8d6b31b..46f8079 100644
---- a/pyanaconda/iutil.py
-+++ b/pyanaconda/iutil.py
-@@ -44,10 +44,44 @@ from anaconda_log import program_log_lock
- def augmentEnv():
-     env = os.environ.copy()
-     env.update({"LC_ALL": "C",
--                "ANA_INSTALL_PATH": ROOT_PATH
-+                "ANA_INSTALL_PATH": getSysroot()
-                })
-     return env
- 
-+def getTargetPhysicalRoot():
-+    """Returns the path to the "physical" storage root, traditionally /mnt/sysimage.
-+
-+    This may be distinct from the sysroot, which could be a
-+    chroot-type subdirectory of the physical root.  This is used for
-+    example by all OSTree-based installations.
-+    """
-+
-+    # We always use the traditional /mnt/sysimage - the physical OS
-+    # target is never mounted anywhere else.  This API call just
-+    # allows us to have a clean "git grep ROOT_PATH" in other parts of
-+    # the code.
-+    return ROOT_PATH
-+
-+_sysroot = ROOT_PATH
-+
-+def getSysroot():
-+    """Returns the path to the target OS installation.
-+
-+    For ordinary package-based installations, this is the same as the
-+    target root.
-+    """
-+    return _sysroot
-+
-+def setSysroot(path):
-+    """Change the OS root path.
-+       :param path: The new OS root path
-+
-+    This should only be used by Payload subclasses which install operating
-+    systems to non-default roots.
-+    """
-+    global _sysroot
-+    _sysroot = path
-+
- def _run_program(argv, root='/', stdin=None, stdout=None, env_prune=None, log_output=True, binary_output=False):
-     """ Run an external program, log the output and return it to the caller
-         @param argv The command to run and argument
-@@ -105,6 +139,16 @@ def _run_program(argv, root='/', stdin=None, stdout=None, env_prune=None, log_ou
- 
-     return (proc.returncode, output_string)
- 
-+def execInSysroot(command, argv, stdin=None):
-+    """ Run an external program in the target root.
-+        :param command: The command to run
-+        :param argv: The argument list
-+        :param stdin: The file object to read stdin from.
-+        :return: The return code of the command
-+    """
-+
-+    return execWithRedirect(command, argv, stdin=stdin, root=getSysroot())
-+
- def execWithRedirect(command, argv, stdin=None, stdout=None,
-                      stderr=None, root='/', env_prune=[], log_output=True, binary_output=False):
-     """ Run an external program and redirect the output to a file.
-@@ -323,7 +367,7 @@ def reIPL(ipldev):
-         log.info("reIPL configuration successful")
- 
- def resetRpmDb():
--    for rpmfile in glob.glob("%s/var/lib/rpm/__db.*" % ROOT_PATH):
-+    for rpmfile in glob.glob("%s/var/lib/rpm/__db.*" % getSysroot()):
-         try:
-             os.unlink(rpmfile)
-         except OSError as e:
-diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
-index df7b5e6..92a406a 100644
---- a/pyanaconda/kickstart.py
-+++ b/pyanaconda/kickstart.py
-@@ -40,7 +40,7 @@ import tempfile
- import subprocess
- import flags as flags_module
- from flags import flags
--from constants import *
-+from constants import ADDON_PATHS
- import shlex
- import sys
- import urlgrabber
-@@ -227,14 +227,14 @@ class Authconfig(commands.authconfig.FC3_Authconfig):
-         args = ["--update", "--nostart"] + shlex.split(self.authconfig)
- 
-         if not flags.automatedInstall and \
--           (os.path.exists(ROOT_PATH + "/lib64/security/pam_fprintd.so") or \
--            os.path.exists(ROOT_PATH + "/lib/security/pam_fprintd.so")):
-+           (os.path.exists(iutil.getSysroot() + "/lib64/security/pam_fprintd.so") or \
-+            os.path.exists(iutil.getSysroot() + "/lib/security/pam_fprintd.so")):
-             args += ["--enablefingerprint"]
- 
-         try:
--            iutil.execWithRedirect("/usr/sbin/authconfig", args, root=ROOT_PATH)
-+            iutil.execInSysroot("/usr/sbin/authconfig", args)
-         except OSError as msg:
--            log.error("Error running /usr/sbin/authconfig %s: %s", args, msg)
-+            log.error("Error running /usr/sbin/authconfig %s: %s" %  (args, msg))
- 
- class AutoPart(commands.autopart.F20_AutoPart):
-     def execute(self, storage, ksdata, instClass):
-@@ -470,7 +470,7 @@ class Realm(commands.realm.F19_Realm):
-             # no explicit password arg using implicit --no-password
-             pw_args = ["--no-password"]
- 
--        argv = ["realm", "join", "--install", ROOT_PATH, "--verbose"] + \
-+        argv = ["realm", "join", "--install", iutil.getSysroot(), "--verbose"] + \
-                pw_args + self.join_args
-         rc = -1
-         try:
-@@ -581,11 +581,11 @@ class Firewall(commands.firewall.F20_Firewall):
-             args += [ "--service=%s" % (service,) ]
- 
-         cmd = "/usr/bin/firewall-offline-cmd"
--        if not os.path.exists(ROOT_PATH+cmd):
-+        if not os.path.exists(iutil.getSysroot()+cmd):
-             msg = _("%s is missing. Cannot setup firewall.") % (cmd,)
-             raise KickstartError(msg)
-         else:
--            iutil.execWithRedirect(cmd, args, root=ROOT_PATH)
-+            iutil.execInSysroot(cmd, args)
- 
- class Firstboot(commands.firstboot.FC3_Firstboot):
-     def setup(self, *args):
-@@ -598,7 +598,7 @@ class Firstboot(commands.firstboot.FC3_Firstboot):
-                          "/lib/systemd/system/initial-setup-graphical.service",
-                          "/lib/systemd/system/initial-setup-text.service")
- 
--        if not any(os.path.exists(ROOT_PATH + path) for path in service_paths):
-+        if not any(os.path.exists(iutil.getSysroot() + path) for path in service_paths):
-             # none of the first boot utilities installed, nothing to do here
-             return
- 
-@@ -607,13 +607,12 @@ class Firstboot(commands.firstboot.FC3_Firstboot):
-         if self.firstboot == FIRSTBOOT_SKIP:
-             action = "disable"
-         elif self.firstboot == FIRSTBOOT_RECONFIG:
--            f = open(ROOT_PATH + "/etc/reconfigSys", "w+")
-+            f = open(iutil.getSysroot() + "/etc/reconfigSys", "w+")
-             f.close()
- 
--        iutil.execWithRedirect("systemctl", [action, "firstboot-graphical.service",
-+        iutil.execInSysroot("systemctl", [action, "firstboot-graphical.service",
-                                                      "initial-setup-graphical.service",
--                                                     "initial-setup-text.service"],
--                               root=ROOT_PATH)
-+                                                     "initial-setup-text.service"])
- 
- class Group(commands.group.F12_Group):
-     def execute(self, storage, ksdata, instClass, users):
-@@ -621,7 +620,7 @@ class Group(commands.group.F12_Group):
- 
-         for grp in self.groupList:
-             kwargs = grp.__dict__
--            kwargs.update({"root": ROOT_PATH})
-+            kwargs.update({"root": iutil.getSysroot()})
-             if not users.createGroup(grp.name, **kwargs):
-                 log.error("Group %s already exists, not creating." % grp.name)
- 
-@@ -692,7 +691,7 @@ class IscsiName(commands.iscsiname.FC6_IscsiName):
- 
- class Lang(commands.lang.F19_Lang):
-     def execute(self, *args, **kwargs):
--        localization.write_language_configuration(self, ROOT_PATH)
-+        localization.write_language_configuration(self, iutil.getSysroot())
- 
- # no overrides needed here
- Eula = commands.eula.F20_Eula
-@@ -902,7 +901,7 @@ class Logging(commands.logging.FC6_Logging):
- 
- class Network(commands.network.RHEL7_Network):
-     def execute(self, storage, ksdata, instClass):
--        network.write_network_config(storage, ksdata, instClass, ROOT_PATH)
-+        network.write_network_config(storage, ksdata, instClass, iutil.getSysroot())
- 
- class MultiPath(commands.multipath.FC6_MultiPath):
-     def parse(self, args):
-@@ -1326,7 +1325,7 @@ class SELinux(commands.selinux.FC3_SELinux):
-             return
- 
-         try:
--            selinux_cfg = SimpleConfigFile(ROOT_PATH+"/etc/selinux/config")
-+            selinux_cfg = SimpleConfigFile(iutil.getSysroot()+"/etc/selinux/config")
-             selinux_cfg.read()
-             selinux_cfg.set(("SELINUX", selinux_states[self.selinux]))
-             selinux_cfg.write()
-@@ -1339,12 +1338,10 @@ class Services(commands.services.FC6_Services):
-         enabled = map(lambda s: s + ".service", self.enabled)
- 
-         if disabled:
--            iutil.execWithRedirect("systemctl", ["disable"] + disabled,
--                                   root=ROOT_PATH)
-+            iutil.execInSysroot("systemctl", ["disable"] + disabled)
- 
-         if enabled:
--            iutil.execWithRedirect("systemctl", ["enable"] + enabled,
--                                   root=ROOT_PATH)
-+            iutil.execInSysroot("systemctl", ["enable"] + enabled)
- 
- class Timezone(commands.timezone.F18_Timezone):
-     def __init__(self, *args):
-@@ -1393,11 +1390,11 @@ class Timezone(commands.timezone.F18_Timezone):
-                         "back to default (America/New_York)." % (self.timezone,))
-             self.timezone = "America/New_York"
- 
--        timezone.write_timezone_config(self, ROOT_PATH)
-+        timezone.write_timezone_config(self, iutil.getSysroot())
- 
-         # write out NTP configuration (if set)
-         if not self.nontp and self.ntpservers:
--            chronyd_conf_path = os.path.normpath(ROOT_PATH + ntp.NTP_CONFIG_FILE)
-+            chronyd_conf_path = os.path.normpath(iutil.getSysroot() + ntp.NTP_CONFIG_FILE)
-             try:
-                 ntp.save_servers_to_config(self.ntpservers,
-                                            conf_file_path=chronyd_conf_path)
-@@ -1410,7 +1407,7 @@ class User(commands.user.F12_User):
- 
-         for usr in self.userList:
-             kwargs = usr.__dict__
--            kwargs.update({"algo": algo, "root": ROOT_PATH})
-+            kwargs.update({"algo": algo, "root": iutil.getSysroot()})
- 
-             # If the user password came from a kickstart and it is blank we
-             # need to make sure the account is locked, not created with an
-@@ -1515,7 +1512,7 @@ class ZFCP(commands.zfcp.F14_ZFCP):
- 
- class Keyboard(commands.keyboard.F18_Keyboard):
-     def execute(self, *args):
--        keyboard.write_keyboard_config(self, ROOT_PATH)
-+        keyboard.write_keyboard_config(self, iutil.getSysroot())
- 
-     def dracutSetupArgs(self, *args):
-         return keyboard.dracut_setup_args(self)
-@@ -1542,7 +1539,7 @@ class SpokeRegistry(dict):
- 
-     # pylint: disable-msg=C0103
-     def execute(self, storage, ksdata, instClass, users):
--        path = os.path.join(ROOT_PATH, "var", "lib", "inital-setup")
-+        path = os.path.join(iutil.getSysroot(), "var", "lib", "inital-setup")
-         try:
-             os.makedirs(path, 0755)
-         except OSError:
-@@ -1748,7 +1745,7 @@ def runPostScripts(scripts):
-             del(os.environ[var])
- 
-     log.info("Running kickstart %%post script(s)")
--    map (lambda s: s.run(ROOT_PATH), postScripts)
-+    map (lambda s: s.run(iutil.getSysroot()), postScripts)
-     log.info("All kickstart %%post script(s) have been run")
- 
- def runPreScripts(scripts):
-diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
-index 47bb895..9b97149 100644
---- a/pyanaconda/packaging/__init__.py
-+++ b/pyanaconda/packaging/__init__.py
-@@ -377,8 +377,8 @@ class Payload(object):
-             else:
-                 cmpfunc = yum.rpmUtils.miscutils.compareVerOnly
- 
--            files = glob.glob(ROOT_PATH + "/boot/vmlinuz-*")
--            files.extend(glob.glob(ROOT_PATH + "/boot/efi/EFI/redhat/vmlinuz-*"))
-+            files = glob.glob(iutil.getSysroot() + "/boot/vmlinuz-*")
-+            files.extend(glob.glob(iutil.getSysroot() + "/boot/efi/EFI/redhat/vmlinuz-*"))
-             # strip off everything up to and including vmlinuz- to get versions
-             # Ignore rescue kernels
-             versions = [f.split("/")[-1][8:] for f in files if os.path.isfile(f) \
-@@ -536,7 +536,7 @@ class Payload(object):
-     ###
-     def preInstall(self, packages=None, groups=None):
-         """ Perform pre-installation tasks. """
--        iutil.mkdirChain(ROOT_PATH + "/root")
-+        iutil.mkdirChain(iutil.getSysroot() + "/root")
- 
-         self._writeModuleBlacklist()
- 
-@@ -552,8 +552,8 @@ class Payload(object):
-         if "modprobe.blacklist" not in flags.cmdline:
-             return
- 
--        iutil.mkdirChain(ROOT_PATH + "/etc/modprobe.d")
--        with open(ROOT_PATH + "/etc/modprobe.d/anaconda-blacklist.conf", "w") as f:
-+        iutil.mkdirChain(iutil.getSysroot() + "/etc/modprobe.d")
-+        with open(iutil.getSysroot() + "/etc/modprobe.d/anaconda-blacklist.conf", "w") as f:
-             f.write("# Module blacklists written by anaconda\n")
-             for module in flags.cmdline["modprobe.blacklist"].split():
-                 f.write("blacklist %s\n" % module)
-@@ -568,7 +568,7 @@ class Payload(object):
-         # the firmware files in the common DD firmware directory
-         for f in glob.glob(DD_FIRMWARE+"/*"):
-             try:
--                shutil.copyfile(f, "%s/lib/firmware/" % ROOT_PATH)
-+                shutil.copyfile(f, "%s/lib/firmware/" % iutil.getSysroot())
-             except IOError as e:
-                 log.error("Could not copy firmware file %s: %s" % (f, e.strerror))
-             else:
-@@ -576,12 +576,12 @@ class Payload(object):
- 
-         #copy RPMS
-         for d in glob.glob(DD_RPMS):
--            shutil.copytree(d, ROOT_PATH + "/root/" + os.path.basename(d))
-+            shutil.copytree(d, iutil.getSysroot() + "/root/" + os.path.basename(d))
- 
-         #copy modules and firmware into root's home directory
-         if os.path.exists(DD_ALL):
-             try:
--                shutil.copytree(DD_ALL, ROOT_PATH + "/root/DD")
-+                shutil.copytree(DD_ALL, iutil.getSysroot() + "/root/DD")
-             except IOError as e:
-                 log.error("failed to copy driver disk files: %s" % e.strerror)
-                 # XXX TODO: real error handling, as this is probably going to
-@@ -603,26 +603,24 @@ class Payload(object):
-         for kernel in self.kernelVersionList:
-             log.info("recreating initrd for %s" % kernel)
-             if not flags.imageInstall:
--                iutil.execWithRedirect("new-kernel-pkg",
--                                       ["--mkinitrd", "--dracut",
--                                        "--depmod", "--update", kernel],
--                                       root=ROOT_PATH)
-+                iutil.execInSysroot("new-kernel-pkg",
-+                                    ["--mkinitrd", "--dracut",
-+                                    "--depmod", "--update", kernel])
-             else:
-                 # hostonly is not sensible for disk image installations
-                 # using /dev/disk/by-uuid/ is necessary due to disk image naming
--                iutil.execWithRedirect("dracut",
--                                       ["-N",
--                                        "--persistent-policy", "by-uuid",
--                                        "-f", "/boot/initramfs-%s.img" % kernel,
--                                        kernel],
--                                        root=ROOT_PATH)
-+                iutil.execInSysroot("dracut",
-+                                    ["-N",
-+                                     "--persistent-policy", "by-uuid",
-+                                     "-f", "/boot/initramfs-%s.img" % kernel,
-+                                    kernel])
- 
-         self._createdInitrds = True
- 
- 
-     def _setDefaultBootTarget(self):
-         """ Set the default systemd target for the system. """
--        if not os.path.exists(ROOT_PATH + "/etc/systemd/system"):
-+        if not os.path.exists(iutil.getSysroot() + "/etc/systemd/system"):
-             log.error("systemd is not installed -- can't set default target")
-             return
- 
-@@ -635,7 +633,7 @@ class Payload(object):
-         except ImportError:
-             log.info("failed to import rpm -- not adjusting default runlevel")
-         else:
--            ts = rpm.TransactionSet(ROOT_PATH)
-+            ts = rpm.TransactionSet(iutil.getSysroot())
- 
-             # XXX one day this might need to account for anaconda's display mode
-             if ts.dbMatch("provides", 'service(graphical-login)').count() and \
-@@ -653,7 +651,7 @@ class Payload(object):
-             pass
-         else:
-             iutil.resetRpmDb()
--            ts = rpm.TransactionSet(ROOT_PATH)
-+            ts = rpm.TransactionSet(iutil.getSysroot())
- 
-             # Only add "rhgb quiet" on non-s390, non-serial installs
-             if iutil.isConsoleOnVirtualTerminal() and \
-diff --git a/pyanaconda/packaging/livepayload.py b/pyanaconda/packaging/livepayload.py
-index 48c154f..09485e1 100644
---- a/pyanaconda/packaging/livepayload.py
-+++ b/pyanaconda/packaging/livepayload.py
-@@ -42,7 +42,7 @@ import glob
- 
- from . import ImagePayload, PayloadSetupError, PayloadInstallError
- 
--from pyanaconda.constants import INSTALL_TREE, ROOT_PATH, THREAD_LIVE_PROGRESS
-+from pyanaconda.constants import INSTALL_TREE, THREAD_LIVE_PROGRESS
- from pyanaconda.constants import IMAGE_DIR
- 
- from pyanaconda import iutil
-@@ -61,7 +61,7 @@ class LiveImagePayload(ImagePayload):
-     """ A LivePayload copies the source image onto the target system. """
-     def __init__(self, *args, **kwargs):
-         super(LiveImagePayload, self).__init__(*args, **kwargs)
--        # Used to adjust size of ROOT_PATH when files are already present
-+        # Used to adjust size of sysroot when files are already present
-         self._adj_size = 0
- 
-     def setup(self, storage):
-@@ -91,7 +91,7 @@ class LiveImagePayload(ImagePayload):
-         while self.pct < 100:
-             dest_size = 0
-             for mnt in mountpoints:
--                mnt_stat = os.statvfs(ROOT_PATH+mnt)
-+                mnt_stat = os.statvfs(iutil.getSysroot()+mnt)
-                 dest_size += mnt_stat.f_frsize * (mnt_stat.f_blocks - mnt_stat.f_bfree)
-             if dest_size >= self._adj_size:
-                 dest_size -= self._adj_size
-@@ -118,7 +118,7 @@ class LiveImagePayload(ImagePayload):
-         # file system boundaries
-         args = ["-pogAXtlHrDx", "--exclude", "/dev/", "--exclude", "/proc/",
-                 "--exclude", "/sys/", "--exclude", "/run/", "--exclude", "/boot/*rescue*",
--                "--exclude", "/etc/machine-id", INSTALL_TREE+"/", ROOT_PATH]
-+                "--exclude", "/etc/machine-id", INSTALL_TREE+"/", iutil.getSysroot()]
-         try:
-             rc = iutil.execWithRedirect(cmd, args)
-         except (OSError, RuntimeError) as e:
-@@ -149,14 +149,13 @@ class LiveImagePayload(ImagePayload):
- 
-         # Live needs to create the rescue image before bootloader is written
-         for kernel in self.kernelVersionList:
--            log.info("Generating rescue image for %s", kernel)
--            iutil.execWithRedirect("new-kernel-pkg",
--                                   ["--rpmposttrans", kernel],
--                                   root=ROOT_PATH)
-+            log.info("Generating rescue image for %s" % kernel)
-+            iutil.execInSysroot("new-kernel-pkg",
-+                                ["--rpmposttrans", kernel])
- 
-         # Make sure the new system has a machine-id, it won't boot without it
--        if not os.path.exists(ROOT_PATH+"/etc/machine-id"):
--            iutil.execWithRedirect("systemd-machine-id-setup", [], root=ROOT_PATH)
-+        if not os.path.exists(iutil.getSysroot()+"/etc/machine-id"):
-+            iutil.execInSysroot("systemd-machine-id-setup", [])
- 
-     @property
-     def spaceRequired(self):
-@@ -216,7 +215,7 @@ class LiveImageKSPayload(LiveImagePayload):
-     def __init__(self, *args, **kwargs):
-         super(LiveImageKSPayload, self).__init__(*args, **kwargs)
-         self._min_size = 0
--        self.image_path = ROOT_PATH+"/disk.img"
-+        self.image_path = iutil.getSysroot()+"/disk.img"
- 
-     def setup(self, storage):
-         """ Check the availability and size of the image.
-@@ -263,10 +262,10 @@ class LiveImageKSPayload(LiveImagePayload):
-         """ Download image and loopback mount it.
- 
-             This is called after partitioning is setup, we now have space
--            to grab the image. Download it to ROOT_PATH and provide feedback
-+            to grab the image. Download it to sysroot and provide feedback
-             during the download (using urlgrabber callback).
-         """
--        # Setup urlgrabber and call back to download image to ROOT_PATH
-+        # Setup urlgrabber and call back to download image to sysroot
-         progress = URLGrabberProgress()
-         ugopts = {"ssl_verify_peer": not self.data.method.noverifyssl,
-                   "ssl_verify_host": not self.data.method.noverifyssl,
-diff --git a/pyanaconda/packaging/tarpayload.py b/pyanaconda/packaging/tarpayload.py
-index 26922af..fe78478 100644
---- a/pyanaconda/packaging/tarpayload.py
-+++ b/pyanaconda/packaging/tarpayload.py
-@@ -79,7 +79,7 @@ class TarPayload(ArchivePayload):
- 
-     def install(self):
-         try:
--            self.archive.extractall(path=ROOT_PATH)
-+            self.archive.extractall(path=iutil.getSysroot())
-         except (tarfile.ExtractError, tarfile.CompressionError) as e:
-             log.error("extracting tar archive %s: %s" % (self.image_file, e))
- 
-diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
-index 211e5e9..a81b5bc 100644
---- a/pyanaconda/packaging/yumpayload.py
-+++ b/pyanaconda/packaging/yumpayload.py
-@@ -288,7 +288,7 @@ reposdir=%s
-     def _yumCacheDirHack(self):
-         # This is what it takes to get yum to use a cache dir outside the
-         # install root. We do this so we don't have to re-gather repo meta-
--        # data after we change the install root to ROOT_PATH, which can only
-+        # data after we change the install root to sysroot, which can only
-         # happen after we've enabled the new storage configuration.
-         with _yum_lock:
-             if not self._yum.conf.cachedir.startswith(self._yum.conf.installroot):
-@@ -363,7 +363,7 @@ reposdir=%s
-         self._writeYumConfig()
-         self._writeLangpacksConfig()
-         log.debug("setting releasever to previous value of %s" % releasever)
--        self._resetYum(root=ROOT_PATH, keep_cache=True, releasever=releasever)
-+        self._resetYum(root=iutil.getSysroot(), keep_cache=True, releasever=releasever)
-         self._yumCacheDirHack()
-         self.gatherRepoMetadata()
- 
-@@ -1629,7 +1629,7 @@ reposdir=%s
-             "PROGRESS_POST"    : _("Performing post-installation setup tasks")
-         }
- 
--        ts_file = ROOT_PATH+"/anaconda-yum.yumtx"
-+        ts_file = iutil.getSysroot()+"/anaconda-yum.yumtx"
-         with _yum_lock:
-             # Save the transaction, this will be loaded and executed by the new
-             # process.
-@@ -1646,7 +1646,7 @@ reposdir=%s
-         args = ["--config", "/tmp/anaconda-yum.conf",
-                 "--tsfile", ts_file,
-                 "--rpmlog", script_log,
--                "--installroot", ROOT_PATH,
-+                "--installroot", iutil.getSysroot(),
-                 "--release", release,
-                 "--arch", blivet.arch.getArch()]
- 
-@@ -1702,7 +1702,7 @@ reposdir=%s
-         #        all yumvars and writing out the expanded pairs to the conf
-         yb = yum.YumBase()
-         yum_conf_path = "/etc/yum.conf"
--        yb.preconf.fn = ROOT_PATH + yum_conf_path
-+        yb.preconf.fn = iutil.getSysroot() + yum_conf_path
-         yb.conf.multilib_policy = "all"
- 
-         # this will appear in yum.conf, which is silly
-@@ -1712,7 +1712,7 @@ reposdir=%s
-         cachedir = yb.conf.cachedir.replace("/%s/" % yb.arch.basearch,
-                                             "/$basearch/")
-         yb.conf.cachedir = cachedir
--        yum_conf = ROOT_PATH + yum_conf_path
-+        yum_conf = iutil.getSysroot() + yum_conf_path
-         if os.path.exists(yum_conf):
-             try:
-                 os.rename(yum_conf, yum_conf + ".anacbak")
-diff --git a/pyanaconda/rescue.py b/pyanaconda/rescue.py
-index ff74f6b..e0c4e13 100644
---- a/pyanaconda/rescue.py
-+++ b/pyanaconda/rescue.py
-@@ -40,7 +40,7 @@ import subprocess
- 
- from snack import ButtonChoiceWindow, ListboxChoiceWindow,SnackScreen
- 
--from constants import ANACONDA_CLEANUP, ROOT_PATH
-+from constants import ANACONDA_CLEANUP
- from constants_text import TEXT_OK_BUTTON, TEXT_NO_BUTTON, TEXT_YES_BUTTON
- from text import WaitWindow, OkCancelWindow, ProgressWindow, PassphraseEntryWindow
- from flags import flags
-@@ -308,7 +308,7 @@ def doRescue(intf, rescue_mount, ksdata):
-                   "\n\n"
-                   "If for some reason this process fails you can choose 'Skip' "
-                   "and this step will be skipped and you will go directly to a "
--                  "command shell.\n\n") % (ROOT_PATH,),
-+                  "command shell.\n\n") % (iutil.getSysroot(),),
-                   [_("Continue"), _("Read-Only"), _("Skip")] )
- 
-             if rc == _("Skip").lower():
-@@ -380,14 +380,14 @@ def doRescue(intf, rescue_mount, ksdata):
-                 rootmounted = False
-             else:
-                 if flags.automatedInstall:
--                    log.info("System has been mounted under: %s" % ROOT_PATH)
-+                    log.info("System has been mounted under: %s" % iutil.getSysroot())
-                 else:
-                     ButtonChoiceWindow(intf.screen, _("Rescue"),
-                        _("Your system has been mounted under %(rootPath)s.\n\n"
-                          "Press <return> to get a shell. If you would like to "
-                          "make your system the root environment, run the command:\n\n"
-                          "\tchroot %(rootPath)s\n\n%(msg)s") %
--                                       {'rootPath': ROOT_PATH,
-+                                       {'rootPath': iutil.getSysroot(),
-                                         'msg': msg},
-                                        [_("OK")] )
-                 rootmounted = True
-@@ -404,7 +404,7 @@ def doRescue(intf, rescue_mount, ksdata):
-                     # we have to catch the possible exception
-                     # because we support read-only mounting
-                     try:
--                        fd = open("%s/.autorelabel" % ROOT_PATH, "w+")
-+                        fd = open("%s/.autorelabel" % iutil.getSysroot(), "w+")
-                         fd.close()
-                     except IOError:
-                         log.warning("cannot touch /.autorelabel")
-@@ -456,7 +456,7 @@ def doRescue(intf, rescue_mount, ksdata):
-                 ButtonChoiceWindow(intf.screen, _("Rescue"),
-                     _("An error occurred trying to mount some or all of your "
-                       "system. Some of it may be mounted under %s.\n\n"
--                      "Press <return> to get a shell.") % ROOT_PATH + msg,
-+                      "Press <return> to get a shell.") % iutil.getSysroot() + msg,
-                       [_("OK")] )
-     else:
-         if flags.automatedInstall and ksdata.reboot.action in [KS_REBOOT, KS_SHUTDOWN]:
-@@ -480,10 +480,10 @@ def doRescue(intf, rescue_mount, ksdata):
-     if rootmounted and not readOnly:
-         sto.makeMtab()
-         try:
--            makeResolvConf(ROOT_PATH)
-+            makeResolvConf(iutil.getSysroot())
-         except (OSError, IOError) as e:
-             log.error("error making a resolv.conf: %s" %(e,))
--        msgStr = _("Your system is mounted under the %s directory.") % (ROOT_PATH,)
-+        msgStr = _("Your system is mounted under the %s directory.") % (iutil.getSysroot(),)
-         ButtonChoiceWindow(intf.screen, _("Rescue"), msgStr, [_("OK")] )
- 
-     # we do not need ncurses anymore, shut them down
-diff --git a/pyanaconda/users.py b/pyanaconda/users.py
-index 9e09be0..2e40465 100644
---- a/pyanaconda/users.py
-+++ b/pyanaconda/users.py
-@@ -29,7 +29,6 @@ import os.path
- import iutil
- import pwquality
- import re
--from pyanaconda.constants import ROOT_PATH
- from pyanaconda.iutil import strip_accents
- from pyanaconda.i18n import _
- 
-@@ -192,7 +191,7 @@ class Users:
-         """
- 
-         childpid = os.fork()
--        root = kwargs.get("root", ROOT_PATH)
-+        root = kwargs.get("root", iutil.getSysroot())
- 
-         if not childpid:
-             if not root in ["","/"]:
-@@ -258,7 +257,7 @@ class Users:
-                         available one is used.
-         """
-         childpid = os.fork()
--        root = kwargs.get("root", ROOT_PATH)
-+        root = kwargs.get("root", iutil.getSysroot())
- 
-         if not childpid:
-             if not root in ["","/"]:
-@@ -358,7 +357,7 @@ class Users:
-         else:
-             return False
- 
--    def checkUserExists(self, username, root=ROOT_PATH):
-+    def checkUserExists(self, username, root=iutil.getSysroot()):
-         childpid = os.fork()
- 
-         if not childpid:
--- 
-1.9.3
-
diff --git a/SOURCES/0005-main-Set-flags.extlinux-if-extlinux-is-used-in-inter.patch b/SOURCES/0005-main-Set-flags.extlinux-if-extlinux-is-used-in-inter.patch
deleted file mode 100644
index ab00082..0000000
--- a/SOURCES/0005-main-Set-flags.extlinux-if-extlinux-is-used-in-inter.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From ef84a6c944b5a877e5d268845f08ad01f4859790 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Sun, 4 May 2014 22:54:28 +0000
-Subject: [PATCH 05/20] main: Set flags.extlinux if extlinux is used in
- interactive-defaults.ks
-
-For making a custom Project Atomic boot ISO, I tried adding
-"bootloader --extlinux" to /usr/share/anaconda/interactive-defaults.ks.
-
-Confusingly this doesn't work because extlinux is a flag, and not just
-a kickstart variable; the flag is set by the dracut KS parser. (Does
-extlinux really need to be a flag?)
-
-This small patch just ensures the flag is set if the KS enables
-extlinux.
-
-Note: I left a log.info in there since it seems useful to log when
-we're parsing a KS file, but feel free to remove it.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit f4921edf42d57523e8b42ba21d79e78a47d88e8b
----
- anaconda | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/anaconda b/anaconda
-index 2a802a3..0cd031f 100755
---- a/anaconda
-+++ b/anaconda
-@@ -903,6 +903,7 @@ if __name__ == "__main__":
-             continue
- 
-         kickstart.preScriptPass(f)
-+        log.info("Parsing kickstart: " + f)
-         ksdata = kickstart.parseKickstart(f)
- 
-         # Only load the first defaults file we find.
-@@ -911,6 +912,10 @@ if __name__ == "__main__":
-     if not ksdata:
-         ksdata = kickstart.AnacondaKSHandler(addon_paths["ks"])
- 
-+    # Pick up any changes from interactive-defaults.ks that would
-+    # otherwise be covered by the dracut KS parser.
-+    if ksdata.bootloader.extlinux:
-+        flags.extlinux = True
-     if ksdata.rescue.rescue:
-         anaconda.rescue = True
- 
--- 
-1.9.3
-
diff --git a/SOURCES/0006-iutil-Transparently-redirect-anyone-who-asks-root-mn.patch b/SOURCES/0006-iutil-Transparently-redirect-anyone-who-asks-root-mn.patch
deleted file mode 100644
index 9f70493..0000000
--- a/SOURCES/0006-iutil-Transparently-redirect-anyone-who-asks-root-mn.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 6e37ac460ec6a9ec34ff067bf6b74f1d2bdce13d Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Thu, 24 Apr 2014 16:02:17 -0400
-Subject: [PATCH 06/20] iutil: Transparently redirect anyone who asks
- root=/mnt/sysimage to sysroot
-
-This is a followup from the previous commit to split the physical
-mount and OS root path.  No code should be asking to run code directly
-in the physical root, so just redirect them to the OS root.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 6bfa5c1c7b0b3a2301ac1468438d096407fb0a8f
----
- pyanaconda/iutil.py | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
-index 46f8079..41853f7 100644
---- a/pyanaconda/iutil.py
-+++ b/pyanaconda/iutil.py
-@@ -96,9 +96,15 @@ def _run_program(argv, root='/', stdin=None, stdout=None, env_prune=None, log_ou
-     if env_prune is None:
-         env_prune = []
- 
-+    # Transparently redirect callers requesting root=ROOT_PATH to the
-+    # configured system root.
-+    target_root = root
-+    if target_root == ROOT_PATH:
-+        target_root = getSysroot()
-+
-     def chroot():
--        if root and root != '/':
--            os.chroot(root)
-+        if target_root and target_root != '/':
-+            os.chroot(target_root)
-             os.chdir("/")
- 
-     with program_log_lock:
--- 
-1.9.3
-
diff --git a/SOURCES/0007-install-Move-Payload-postInstall-after-bootloader.patch b/SOURCES/0007-install-Move-Payload-postInstall-after-bootloader.patch
deleted file mode 100644
index 4909179..0000000
--- a/SOURCES/0007-install-Move-Payload-postInstall-after-bootloader.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 4158c741f889513aff3ee0918c3d38273a8f3a60 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Fri, 25 Apr 2014 08:37:09 -0400
-Subject: [PATCH 07/20] install: Move Payload postInstall() after bootloader
-
-None of the current Payload subclasses are sensitive to ordering with
-respect to the bootloader.  The forthcoming OSTreePayload class will
-require postprocessing of the bootloader, so let's just swap the
-ordering.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit f433850099e98eee50ae995d0a864b86619ee84f
----
- pyanaconda/install.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/pyanaconda/install.py b/pyanaconda/install.py
-index db66e78..8068bf0 100644
---- a/pyanaconda/install.py
-+++ b/pyanaconda/install.py
-@@ -172,12 +172,12 @@ def doInstall(storage, payload, ksdata, instClass):
-     if flags.flags.livecdInstall:
-         storage.write()
- 
--    with progress_report(_("Performing post-installation setup tasks")):
--        payload.postInstall()
--
-     # Do bootloader.
-     if not flags.flags.dirInstall:
-         with progress_report(_("Installing bootloader")):
-             writeBootLoader(storage, payload, instClass, ksdata)
- 
-+    with progress_report(_("Performing post-installation setup tasks")):
-+        payload.postInstall()
-+
-     progressQ.send_complete()
--- 
-1.9.3
-
diff --git a/SOURCES/0008-install-Handle-distinct-physical-root-sysroot.patch b/SOURCES/0008-install-Handle-distinct-physical-root-sysroot.patch
deleted file mode 100644
index 517cf59..0000000
--- a/SOURCES/0008-install-Handle-distinct-physical-root-sysroot.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From cbcd5de3b4a37b620388f1de420721d1ae3d4130 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Fri, 25 Apr 2014 08:57:47 -0400
-Subject: [PATCH 08/20] install: Handle distinct physical root/sysroot
-
-Recent changes introduced the ability to have distinct physical root
-and sysroot.  In this case, because we run the bootloader binaries
-inside the target, we need to ensure that e.g. /boot is mounted inside
-that target root.
-
-Note in this case, we also use a new Blivet API to update its
-knowledge of the system root.
-
-This patch also updates the storage write logic to note if
-ksdata.ostreesetup.osname is set, because the storage will have to be
-written after the packaging.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 0bbc9adf41b33062bbbfe478b3373a3404de21aa
----
- pyanaconda/install.py | 30 +++++++++++++++++++++++++++---
- 1 file changed, 27 insertions(+), 3 deletions(-)
-
-diff --git a/pyanaconda/install.py b/pyanaconda/install.py
-index 8068bf0..68551cc 100644
---- a/pyanaconda/install.py
-+++ b/pyanaconda/install.py
-@@ -30,6 +30,7 @@ from pyanaconda import timezone
- from pyanaconda.i18n import _
- from pyanaconda.threads import threadMgr
- import logging
-+import blivet
- log = logging.getLogger("anaconda")
- 
- def _writeKS(ksdata):
-@@ -148,7 +149,9 @@ def doInstall(storage, payload, ksdata, instClass):
-     payload.preStorage()
- 
-     turnOnFilesystems(storage, mountOnly=flags.flags.dirInstall)
--    if not flags.flags.livecdInstall and not flags.flags.dirInstall:
-+    write_storage_late = (flags.flags.livecdInstall or ksdata.ostreesetup.seen
-+                          and not flags.flags.dirInstall)
-+    if not write_storage_late:
-         storage.write()
- 
-     # Do packaging.
-@@ -169,8 +172,29 @@ def doInstall(storage, payload, ksdata, instClass):
-     payload.preInstall(packages=packages, groups=payload.languageGroups())
-     payload.install()
- 
--    if flags.flags.livecdInstall:
--        storage.write()
-+    if write_storage_late:
-+        if iutil.getSysroot() != iutil.getTargetPhysicalRoot():
-+            blivet.setSysroot(iutil.getTargetPhysicalRoot(),
-+                              iutil.getSysroot())
-+            storage.write()
-+
-+            # Now that we have the FS layout in the target, umount
-+            # things that were in the legacy sysroot, and put them in
-+            # the target root, except for the physical /.  First,
-+            # unmount all target filesystems.
-+            storage.umountFilesystems()
-+
-+            # Explicitly mount the root on the physical sysroot
-+            rootmnt = storage.mountpoints.get('/')
-+            rootmnt.setup()
-+            rootmnt.format.setup(rootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
-+
-+            # Everything else goes in the target root, including /boot
-+            # since the bootloader code will expect to find /boot
-+            # inside the chroot.
-+            storage.mountFilesystems(skipRoot=True)
-+        else:
-+            storage.write()
- 
-     # Do bootloader.
-     if not flags.flags.dirInstall:
--- 
-1.9.3
-
diff --git a/SOURCES/0009-bootloader-Allow-extlinux-loader-configuration-to-ha.patch b/SOURCES/0009-bootloader-Allow-extlinux-loader-configuration-to-ha.patch
deleted file mode 100644
index 2b03846..0000000
--- a/SOURCES/0009-bootloader-Allow-extlinux-loader-configuration-to-ha.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 918a9b0743f63c630144463df1d8daf7538aa27c Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Mon, 5 May 2014 12:42:19 -0400
-Subject: [PATCH 09/20] bootloader: Allow extlinux loader configuration to
- handle RPMOSTreePayload case
-
-For RPMOSTreePayload, we are just laying down the bootloader
-configuration with no kernel - OSTree then updates that configuration.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 627486c22cdaf6c07009026791f5bd6fc1aaadaa
----
- pyanaconda/bootloader.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
-index 90aec61..860bde3 100644
---- a/pyanaconda/bootloader.py
-+++ b/pyanaconda/bootloader.py
-@@ -2253,10 +2253,10 @@ class EXTLINUX(BootLoader):
-                   "menu hidden\n\n"
-                   "timeout %(timeout)d\n"
-                   "#totaltimeout 9000\n\n"
--                  "default %(default)s\n\n"
--                  % { "productName": productName, "timeout": self.timeout *10,
--                     "default": self.image_label(self.default)})
-+                  % { "productName": productName, "timeout": self.timeout *10 })
-         config.write(header)
-+        if self.default is not None:
-+            config.write("default %(default)s\n\n" % { "default" : self.image_label(self.default) })
-         self.write_config_password(config)
- 
-     def write_config_password(self, config):
--- 
-1.9.3
-
diff --git a/SOURCES/0010-Add-RPMOSTreePayload.patch b/SOURCES/0010-Add-RPMOSTreePayload.patch
deleted file mode 100644
index 8e0ade5..0000000
--- a/SOURCES/0010-Add-RPMOSTreePayload.patch
+++ /dev/null
@@ -1,457 +0,0 @@
-From 2a99e198c40b22fd2f3bf3988902b8d02817ea82 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Wed, 30 Apr 2014 19:26:37 -0400
-Subject: [PATCH 10/20] Add RPMOSTreePayload
-
-This is a new backend that uses ostree to install.  However, it's
-named RPMOSTree because a future iteration will use rpm-ostree which
-will support a hybrid of tree + RPM packages.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 131cbcec9c113dd5f66d14d440297d50b2900e01
----
- data/post-scripts/80-setfilecons.ks      |   3 +
- po/POTFILES.in                           |   1 +
- pyanaconda/__init__.py                   |   5 +-
- pyanaconda/bootloader.py                 |  44 +++---
- pyanaconda/install.py                    |  16 ++
- pyanaconda/packaging/__init__.py         |   6 +
- pyanaconda/packaging/rpmostreepayload.py | 246 +++++++++++++++++++++++++++++++
- 7 files changed, 302 insertions(+), 19 deletions(-)
- create mode 100644 pyanaconda/packaging/rpmostreepayload.py
-
-diff --git a/data/post-scripts/80-setfilecons.ks b/data/post-scripts/80-setfilecons.ks
-index 93ac962..f0d0414 100644
---- a/data/post-scripts/80-setfilecons.ks
-+++ b/data/post-scripts/80-setfilecons.ks
-@@ -4,6 +4,9 @@ restorecon -ir /etc/sysconfig/network-scripts /var/lib /etc/lvm \
-                /dev /etc/iscsi /var/lib/iscsi /root /var/lock /var/log \
-                /etc/modprobe.d /etc/sysconfig /var/cache/yum
- 
-+# Also relabel the OSTree variants of the normal mounts (if they exist)
-+restorecon -ir /var/roothome /var/home /var/opt /var/srv /var/media /var/mnt
-+
- restorecon -i /etc/rpm/macros /etc/dasd.conf /etc/zfcp.conf /lib64 /usr/lib64 \
-               /etc/blkid.tab* /etc/mtab /etc/fstab /etc/resolv.conf \
-               /etc/modprobe.conf* /var/log/*tmp /etc/crypttab \
-diff --git a/po/POTFILES.in b/po/POTFILES.in
-index 4b341fc..8df1636 100644
---- a/po/POTFILES.in
-+++ b/po/POTFILES.in
-@@ -25,6 +25,7 @@ pyanaconda/packaging/__init__.py
- pyanaconda/packaging/livepayload.py
- pyanaconda/packaging/tarpayload.py
- pyanaconda/packaging/yumpayload.py
-+pyanaconda/packaging/rpmostreepayload.py
- 
- # Interfaces
- pyanaconda/ui/common.py
-diff --git a/pyanaconda/__init__.py b/pyanaconda/__init__.py
-index fad7a90..34d46e0 100644
---- a/pyanaconda/__init__.py
-+++ b/pyanaconda/__init__.py
-@@ -124,7 +124,10 @@ class Anaconda(object):
-             if not klass:
-                 from flags import flags
- 
--                if flags.livecdInstall:
-+                if self.ksdata.ostreesetup.seen:
-+                    from pyanaconda.packaging.rpmostreepayload import RPMOSTreePayload
-+                    klass = RPMOSTreePayload
-+                elif flags.livecdInstall:
-                     from pyanaconda.packaging.livepayload import LiveImagePayload
-                     klass = LiveImagePayload
-                 elif self.ksdata.method.method == "liveimg":
-diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
-index 860bde3..b6d5941 100644
---- a/pyanaconda/bootloader.py
-+++ b/pyanaconda/bootloader.py
-@@ -37,6 +37,7 @@ from pyanaconda.flags import flags
- from blivet.errors import StorageError
- from blivet.fcoe import fcoe
- import pyanaconda.network
-+from pyanaconda.packaging.rpmostreepayload import RPMOSTreePayload
- from pyanaconda.nm import nm_device_hwaddress
- from blivet import platform
- from pyanaconda.i18n import _, N_
-@@ -2355,6 +2356,23 @@ def writeSysconfigKernel(storage, version):
-         f.write("HYPERVISOR_ARGS=logging=vga,serial,memory\n")
-     f.close()
- 
-+def writeBootLoaderFinal(storage, payload, instClass, ksdata):
-+    """ Do the final write of the bootloader. """
-+
-+    from pyanaconda.errors import errorHandler, ERROR_RAISE
-+
-+    # set up dracut/fips boot args
-+    # XXX FIXME: do this from elsewhere?
-+    storage.bootloader.set_boot_args(storage=storage,
-+                                     payload=payload,
-+                                     keyboard=ksdata.keyboard)
-+    try:
-+        storage.bootloader.write()
-+    except BootLoaderError as e:
-+        log.error("bootloader.write failed: %s" % e)
-+        if errorHandler.cb(e) == ERROR_RAISE:
-+            raise
-+
- def writeBootLoader(storage, payload, instClass, ksdata):
-     """ Write bootloader configuration to disk.
- 
-@@ -2362,14 +2380,19 @@ def writeBootLoader(storage, payload, instClass, ksdata):
-         image. We only have to add images for the non-default kernels and
-         adjust the default to reflect whatever the default variant is.
-     """
--    from pyanaconda.errors import errorHandler, ERROR_RAISE
--
-     if not storage.bootloader.skip_bootloader:
-         stage1_device = storage.bootloader.stage1_device
-         log.info("bootloader stage1 target device is %s" % stage1_device.name)
-         stage2_device = storage.bootloader.stage2_device
-         log.info("bootloader stage2 target device is %s" % stage2_device.name)
- 
-+    if isinstance(payload, RPMOSTreePayload):
-+        if storage.bootloader.skip_bootloader:
-+            log.info("skipping bootloader install per user request")
-+            return
-+        writeBootLoaderFinal(storage, payload, instClass, ksdata)
-+        return
-+
-     # get a list of installed kernel packages
-     kernel_versions = payload.kernelVersionList
-     if not kernel_versions:
-@@ -2414,19 +2437,4 @@ def writeBootLoader(storage, payload, instClass, ksdata):
-                                          label=label, short=short)
-         storage.bootloader.add_image(image)
- 
--    # set up dracut/fips boot args
--    # XXX FIXME: do this from elsewhere?
--    #storage.bootloader.set_boot_args(keyboard=anaconda.keyboard,
--    #                                 storage=anaconda.storage,
--    #                                 language=anaconda.instLanguage,
--    #                                 network=anaconda.network)
--    storage.bootloader.set_boot_args(storage=storage,
--                                     payload=payload,
--                                     keyboard=ksdata.keyboard)
--
--    try:
--        storage.bootloader.write()
--    except BootLoaderError as e:
--        if errorHandler.cb(e) == ERROR_RAISE:
--            raise
--
-+    writeBootLoaderFinal(storage, payload, instClass, ksdata)
-diff --git a/pyanaconda/install.py b/pyanaconda/install.py
-index 68551cc..d771f5b 100644
---- a/pyanaconda/install.py
-+++ b/pyanaconda/install.py
-@@ -107,6 +107,17 @@ def doConfiguration(storage, payload, ksdata, instClass):
- 
-     progressQ.send_complete()
- 
-+def moveBootMntToPhysical(storage):
-+    """Move the /boot mount to /mnt/sysimage/boot."""
-+    if iutil.getSysroot() == iutil.getTargetPhysicalRoot():
-+        return
-+    bootmnt = storage.mountpoints.get('/boot')
-+    if bootmnt is None:
-+        return
-+    bootmnt.format.teardown()
-+    bootmnt.teardown()
-+    bootmnt.format.setup(bootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
-+
- def doInstall(storage, payload, ksdata, instClass):
-     """Perform an installation.  This method takes the ksdata as prepared by
-        the UI (the first hub, in graphical mode) and applies it to the disk.
-@@ -189,6 +200,8 @@ def doInstall(storage, payload, ksdata, instClass):
-             rootmnt.setup()
-             rootmnt.format.setup(rootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
- 
-+            payload.prepareMountTargets(storage)
-+
-             # Everything else goes in the target root, including /boot
-             # since the bootloader code will expect to find /boot
-             # inside the chroot.
-@@ -202,6 +215,9 @@ def doInstall(storage, payload, ksdata, instClass):
-             writeBootLoader(storage, payload, instClass, ksdata)
- 
-     with progress_report(_("Performing post-installation setup tasks")):
-+        # Now, let's reset the state here so that the payload has
-+        # /boot in the system root.
-+        moveBootMntToPhysical(storage)
-         payload.postInstall()
- 
-     progressQ.send_complete()
-diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
-index 9b97149..4a5e793 100644
---- a/pyanaconda/packaging/__init__.py
-+++ b/pyanaconda/packaging/__init__.py
-@@ -128,6 +128,12 @@ class Payload(object):
-         """ Reset the instance, not including ksdata. """
-         pass
- 
-+    def prepareMountTargets(self, storage):
-+        """Run when physical storage is mounted, but other mount points may
-+        not exist.  Used by the RPMOSTreePayload subclass.
-+        """
-+        pass
-+
-     ###
-     ### METHODS FOR WORKING WITH REPOSITORIES
-     ###
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-new file mode 100644
-index 0000000..1b24a0f
---- /dev/null
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -0,0 +1,246 @@
-+# ostreepayload.py
-+# Deploy OSTree trees to target
-+#
-+# Copyright (C) 2012,2014  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): Colin Walters <walters@redhat.com>
-+#
-+
-+import os
-+import shutil
-+
-+from pyanaconda import iutil
-+from pyanaconda.i18n import _
-+from pyanaconda.progress import progressQ
-+from gi.repository import GLib
-+from gi.repository import Gio
-+
-+from blivet.size import Size
-+
-+import logging
-+log = logging.getLogger("anaconda")
-+
-+from pyanaconda.packaging import ArchivePayload, PayloadInstallError
-+import pyanaconda.errors as errors
-+
-+class RPMOSTreePayload(ArchivePayload):
-+    """ A RPMOSTreePayload deploys a tree (possibly with layered packages) onto the target system. """
-+    def __init__(self, data):
-+        super(RPMOSTreePayload, self).__init__(data)
-+
-+    def setup(self, storage):
-+        super(RPMOSTreePayload, self).setup(storage)
-+
-+    @property
-+    def handlesBootloaderConfiguration(self):
-+        return True
-+
-+    @property
-+    def kernelVersionList(self):
-+        # OSTree handles bootloader configuration
-+        return []
-+
-+    @property
-+    def spaceRequired(self):
-+        # We don't have this data with OSTree at the moment
-+        return Size(spec="500 MB")
-+
-+    def _safeExecWithRedirect(self, cmd, argv, **kwargs):
-+        """Like iutil.execWithRedirect, but treat errors as fatal"""
-+        rc = iutil.execWithRedirect(cmd, argv, **kwargs)
-+        if rc != 0:
-+            exn = PayloadInstallError("%s %s exited with code %d" % (cmd, argv, rc))
-+            if errors.errorHandler.cb(exn) == errors.ERROR_RAISE:
-+                raise exn
-+
-+    def _pullProgressCb(self, asyncProgress):
-+        status = asyncProgress.get_status()
-+        outstanding_fetches = asyncProgress.get_uint('outstanding-fetches')
-+        if status:
-+            progressQ.send_message(status)
-+        elif outstanding_fetches > 0:
-+            bytes_transferred = asyncProgress.get_uint64('bytes-transferred')
-+            fetched = asyncProgress.get_uint('fetched')
-+            requested = asyncProgress.get_uint('requested')
-+            formatted_bytes = GLib.format_size_full(bytes_transferred, 0)
-+
-+            if requested == 0:
-+                percent = 0.0
-+            else:
-+                percent = (fetched*1.0 / requested) * 100
-+
-+            progressQ.send_message("Receiving objects: %d%% (%d/%d) %s" % (percent, fetched, requested, formatted_bytes))
-+        else:
-+            progressQ.send_message("Writing objects")
-+
-+    def install(self):
-+        cancellable = None
-+        from gi.repository import OSTree
-+        ostreesetup = self.data.ostreesetup
-+        log.info("executing ostreesetup=%r" % ostreesetup)
-+
-+        # Initialize the filesystem - this will create the repo as well
-+        self._safeExecWithRedirect("ostree",
-+            ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
-+             "init-fs", iutil.getTargetPhysicalRoot()])
-+
-+        repo_arg = "--repo=" + iutil.getTargetPhysicalRoot() + '/ostree/repo'
-+
-+        # Set up the chosen remote
-+        remote_args = [repo_arg, "remote", "add"]
-+        if ((hasattr(ostreesetup, 'noGpg') and ostreesetup.noGpg) or
-+            (hasattr(ostreesetup, 'nogpg') and ostreesetup.nogpg)):
-+            remote_args.append("--set=gpg-verify=false")
-+        remote_args.extend([ostreesetup.remote,
-+                            ostreesetup.url])
-+        self._safeExecWithRedirect("ostree", remote_args)
-+
-+        sysroot_path = Gio.File.new_for_path(iutil.getTargetPhysicalRoot())
-+        sysroot = OSTree.Sysroot.new(sysroot_path)
-+        sysroot.load(cancellable)
-+
-+        repo = sysroot.get_repo(None)[1]
-+        repo.set_disable_fsync(True)
-+        progressQ.send_message(_("Starting pull of %s from %s") % \
-+                               (ostreesetup.ref, ostreesetup.remote))
-+
-+        progress = OSTree.AsyncProgress.new()
-+        progress.connect('changed', self._pullProgressCb)
-+        repo.pull(ostreesetup.remote, [ostreesetup.ref], 0, progress, cancellable)
-+
-+        progressQ.send_message(_("Preparing deployment of %s") % (ostreesetup.ref, ))
-+
-+        self._safeExecWithRedirect("ostree",
-+            ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
-+             "os-init", ostreesetup.osname])
-+
-+        admin_deploy_args = ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
-+                             "deploy", "--os=" + ostreesetup.osname]
-+
-+        admin_deploy_args.append(ostreesetup.remote + ':' + ostreesetup.ref)
-+
-+        log.info("ostree admin deploy starting")
-+        progressQ.send_message(_("Deployment starting: %s") % (ostreesetup.ref, ))
-+        self._safeExecWithRedirect("ostree", admin_deploy_args)
-+        log.info("ostree admin deploy complete")
-+        progressQ.send_message(_("Deployment complete: %s") % (ostreesetup.ref, ))
-+
-+        # Reload now that we've deployed, find the path to the new deployment
-+        sysroot.load(None)
-+        deployments = sysroot.get_deployments()
-+        assert len(deployments) > 0
-+        deployment = deployments[0]
-+        deployment_path = sysroot.get_deployment_directory(deployment)
-+        iutil.setSysroot(deployment_path.get_path())
-+
-+        varroot = iutil.getTargetPhysicalRoot() + '/ostree/deploy/' + ostreesetup.osname + '/var'
-+
-+        # This is a bit of a hack; we precreate the targets of
-+        # possible mounts of legacy paths like /home and /opt so the
-+        # installer/%post scripts can find them.  In particular,
-+        # Anaconda itself writes to /root/anaconda-ks.cfg.  What we
-+        # really should do is export this data in some way the
-+        # installer can read reliably.  Right now it's just encoded in
-+        # systemd-tmpfiles.
-+        for (dname, mode) in [('root', 0700), ('home', 0755),
-+                              ('opt', 0755), ('srv', 0755),
-+                              ('media', 0755), ('mnt', 0755)]:
-+            linksrc = iutil.getSysroot() + '/' + dname
-+            if os.path.islink(linksrc) and not os.path.isdir(linksrc):
-+                linkdata = os.readlink(linksrc)
-+                if linkdata.startswith('var/'):
-+                    linkdest = varroot + '/' + linkdata[4:]
-+                    log.info("Creating %s" % linkdest)
-+                    os.mkdir(linkdest, mode)
-+
-+        # Copy specific bootloader data files from the deployment
-+        # checkout to the target root.  See
-+        # https://bugzilla.gnome.org/show_bug.cgi?id=726757 This
-+        # happens once, at installation time.
-+        # extlinux ships its modules directly in the RPM in /boot.
-+        # For GRUB2, Anaconda installs device.map there.  We may need
-+        # to add other bootloaders here though (if they can't easily
-+        # be fixed to *copy* data into /boot at install time, instead
-+        # of shipping it in the RPM).
-+        physboot = iutil.getTargetPhysicalRoot() + '/boot'
-+        sysboot = iutil.getSysroot() + '/boot'
-+        for fname in ['extlinux', 'grub2']:
-+            srcpath = os.path.join(sysboot, fname)
-+            if os.path.isdir(srcpath):
-+                log.info("Copying bootloader data: " + fname)
-+                shutil.copytree(srcpath, os.path.join(physboot, fname))
-+
-+    def prepareMountTargets(self, storage):
-+        ostreesetup = self.data.ostreesetup
-+
-+        varroot = iutil.getTargetPhysicalRoot() + '/ostree/deploy/' + ostreesetup.osname + '/var'
-+
-+        # Set up bind mounts as if we've booted the target system, so
-+        # that %post script work inside the target.
-+        binds = [(iutil.getTargetPhysicalRoot(),
-+                  iutil.getSysroot() + '/sysroot'),
-+                 (varroot,
-+                  iutil.getSysroot() + '/var'),
-+                 (iutil.getSysroot() + '/usr', None)]
-+
-+        for (src, dest) in binds:
-+            self._safeExecWithRedirect("mount",
-+                                       ["--bind", src, dest if dest else src])
-+            if dest is None:
-+                self._safeExecWithRedirect("mount",
-+                                           ["--bind", "-o", "ro", src, src])
-+
-+    def postInstall(self):
-+        super(RPMOSTreePayload, self).postInstall()
-+
-+        physboot = iutil.getTargetPhysicalRoot() + '/boot'
-+
-+        # If we're using extlinux, rename extlinux.conf to
-+        # syslinux.cfg, since that's what OSTree knows about.
-+        # syslinux upstream supports both, but I'd say that upstream
-+        # using syslinux.cfg is somewhat preferred.
-+        physboot_extlinux = physboot + '/extlinux'
-+        if os.path.isdir(physboot_extlinux):
-+            physboot_syslinux = physboot + '/syslinux'
-+            physboot_loader = physboot + '/loader'
-+            assert os.path.isdir(physboot_loader)
-+            orig_extlinux_conf = physboot_extlinux + '/extlinux.conf'
-+            target_syslinux_cfg = physboot_loader + '/syslinux.cfg'
-+            log.info("Moving %s -> %s" % (orig_extlinux_conf, target_syslinux_cfg))
-+            os.rename(orig_extlinux_conf, target_syslinux_cfg)
-+            # A compatibility bit for OSTree
-+            os.mkdir(physboot_syslinux)
-+            os.symlink('../loader/syslinux.cfg', physboot_syslinux + '/syslinux.cfg')
-+            # And *also* tell syslinux that the config is really in /boot/loader
-+            os.symlink('loader/syslinux.cfg', physboot + '/syslinux.cfg')
-+
-+        # OSTree owns the bootloader configuration, so here we give it
-+        # the argument list we computed from storage, architecture and
-+        # such.
-+        set_kargs_args = ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
-+                          "instutil", "set-kargs"]
-+        set_kargs_args.extend(self.storage.bootloader.boot_args)
-+        set_kargs_args.append("root=" + self.storage.rootDevice.fstabSpec)
-+        self._safeExecWithRedirect("ostree", set_kargs_args)
-+
-+        # This command iterates over all files we might have created
-+        # and ensures they're labeled. It's like running
-+        # chroot(iutil.getTargetPhysicalRoot()) + fixfiles, except
-+        # with a better name and semantics.
-+        self._safeExecWithRedirect("ostree",
-+            ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
-+             "instutil", "selinux-ensure-labeled", iutil.getTargetPhysicalRoot(), ""])
--- 
-1.9.3
-
diff --git a/SOURCES/0011-Make-an-ostree-string-easier-for-translators-to-deal.patch b/SOURCES/0011-Make-an-ostree-string-easier-for-translators-to-deal.patch
deleted file mode 100644
index 8e3e652..0000000
--- a/SOURCES/0011-Make-an-ostree-string-easier-for-translators-to-deal.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 82e5678664441645071a42860316d481d85320f6 Mon Sep 17 00:00:00 2001
-From: Chris Lumens <clumens@redhat.com>
-Date: Wed, 14 May 2014 10:46:14 -0400
-Subject: [PATCH 11/20] Make an ostree string easier for translators to deal
- with.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit cb3c55eb4f25d15400fc10298d589ed2992d74ee
----
- pyanaconda/packaging/rpmostreepayload.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index 1b24a0f..d5f7a23 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -115,8 +115,8 @@ class RPMOSTreePayload(ArchivePayload):
- 
-         repo = sysroot.get_repo(None)[1]
-         repo.set_disable_fsync(True)
--        progressQ.send_message(_("Starting pull of %s from %s") % \
--                               (ostreesetup.ref, ostreesetup.remote))
-+        progressQ.send_message(_("Starting pull of %(branchName)s from %(source)s") % \
-+                               {"branchName": ostreesetup.ref, "source": ostreesetup.remote})
- 
-         progress = OSTree.AsyncProgress.new()
-         progress.connect('changed', self._pullProgressCb)
--- 
-1.9.3
-
diff --git a/SOURCES/0012-rpmostreepayload-Use-systemd-tmpfiles-rather-than-ha.patch b/SOURCES/0012-rpmostreepayload-Use-systemd-tmpfiles-rather-than-ha.patch
deleted file mode 100644
index aaa8bc9..0000000
--- a/SOURCES/0012-rpmostreepayload-Use-systemd-tmpfiles-rather-than-ha.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 5dccbe00aa1b160cd35e5e17fc1121e3e3f4f203 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Thu, 15 May 2014 07:44:18 -0400
-Subject: [PATCH 12/20] rpmostreepayload: Use systemd-tmpfiles rather than
- handrolling mkdir
-
-I hit an issue where something in Anaconda may invoke a program or
-library which uses rpm, and because the OSTree model has /var/lib/rpm
--> /usr/share/rpm, but that's created during boot, I'd end up with a
-new empty rpmdb in /var/lib.
-
-Fix this by switching to running systemd-tmpfiles on the target root
-*only* for the directories we'll need at install time.  For example,
-we don't need /var/spool/abrt until the target is running, so don't
-try to create it.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit a5f48d26312bfde6800d8bb608c5f08186c8eed1
----
- pyanaconda/packaging/rpmostreepayload.py | 33 +++++++++++++-------------------
- 1 file changed, 13 insertions(+), 20 deletions(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index d5f7a23..0210017 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -147,26 +147,6 @@ class RPMOSTreePayload(ArchivePayload):
-         deployment_path = sysroot.get_deployment_directory(deployment)
-         iutil.setSysroot(deployment_path.get_path())
- 
--        varroot = iutil.getTargetPhysicalRoot() + '/ostree/deploy/' + ostreesetup.osname + '/var'
--
--        # This is a bit of a hack; we precreate the targets of
--        # possible mounts of legacy paths like /home and /opt so the
--        # installer/%post scripts can find them.  In particular,
--        # Anaconda itself writes to /root/anaconda-ks.cfg.  What we
--        # really should do is export this data in some way the
--        # installer can read reliably.  Right now it's just encoded in
--        # systemd-tmpfiles.
--        for (dname, mode) in [('root', 0700), ('home', 0755),
--                              ('opt', 0755), ('srv', 0755),
--                              ('media', 0755), ('mnt', 0755)]:
--            linksrc = iutil.getSysroot() + '/' + dname
--            if os.path.islink(linksrc) and not os.path.isdir(linksrc):
--                linkdata = os.readlink(linksrc)
--                if linkdata.startswith('var/'):
--                    linkdest = varroot + '/' + linkdata[4:]
--                    log.info("Creating %s" % linkdest)
--                    os.mkdir(linkdest, mode)
--
-         # Copy specific bootloader data files from the deployment
-         # checkout to the target root.  See
-         # https://bugzilla.gnome.org/show_bug.cgi?id=726757 This
-@@ -204,6 +184,19 @@ class RPMOSTreePayload(ArchivePayload):
-                 self._safeExecWithRedirect("mount",
-                                            ["--bind", "-o", "ro", src, src])
- 
-+        # Now, ensure that all other potential mount point directories such as
-+        # (/home) are created.  We run through the full tmpfiles here in order
-+        # to also allow Anaconda and %post scripts to write to directories like
-+        # /root.  We don't iterate *all* tmpfiles because we don't have the
-+        # matching NSS configuration inside Anaconda, and we can't "chroot" to
-+        # get it because that would require mounting the API filesystems in the
-+        # target.
-+        for varsubdir in ('home', 'roothome', 'lib/rpm', 'opt', 'srv',
-+                          'usrlocal', 'mnt', 'media'):
-+            self._safeExecWithRedirect("systemd-tmpfiles",
-+                                       ["--create", "--boot", "--root=" + iutil.getSysroot(),
-+                                        "--prefix=/var/" + varsubdir])
-+
-     def postInstall(self):
-         super(RPMOSTreePayload, self).postInstall()
- 
--- 
-1.9.3
-
diff --git a/SOURCES/0013-format.setup-in-blivet-takes-only-kwargs.patch b/SOURCES/0013-format.setup-in-blivet-takes-only-kwargs.patch
deleted file mode 100644
index eb3b008..0000000
--- a/SOURCES/0013-format.setup-in-blivet-takes-only-kwargs.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 84331d93435fb84b7e22b4a248a8495390c5f6ba Mon Sep 17 00:00:00 2001
-From: Chris Lumens <clumens@redhat.com>
-Date: Thu, 5 Jun 2014 10:49:36 -0400
-Subject: [PATCH 13/20] format.setup in blivet takes only kwargs.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 6d682319baff79fad351688c45ae06f69c1315c5
----
- pyanaconda/install.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/pyanaconda/install.py b/pyanaconda/install.py
-index d771f5b..959878b 100644
---- a/pyanaconda/install.py
-+++ b/pyanaconda/install.py
-@@ -116,7 +116,7 @@ def moveBootMntToPhysical(storage):
-         return
-     bootmnt.format.teardown()
-     bootmnt.teardown()
--    bootmnt.format.setup(bootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
-+    bootmnt.format.setup(options=bootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
- 
- def doInstall(storage, payload, ksdata, instClass):
-     """Perform an installation.  This method takes the ksdata as prepared by
-@@ -198,7 +198,7 @@ def doInstall(storage, payload, ksdata, instClass):
-             # Explicitly mount the root on the physical sysroot
-             rootmnt = storage.mountpoints.get('/')
-             rootmnt.setup()
--            rootmnt.format.setup(rootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
-+            rootmnt.format.setup(options=rootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
- 
-             payload.prepareMountTargets(storage)
- 
--- 
-1.9.3
-
diff --git a/SOURCES/0014-Make-sure-var-log-anaconda-gets-copied-under-the-rig.patch b/SOURCES/0014-Make-sure-var-log-anaconda-gets-copied-under-the-rig.patch
deleted file mode 100644
index 0ef9787..0000000
--- a/SOURCES/0014-Make-sure-var-log-anaconda-gets-copied-under-the-rig.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 277737af2d02a91f69ecc9167a3678235200d01a Mon Sep 17 00:00:00 2001
-From: Chris Lumens <clumens@redhat.com>
-Date: Thu, 5 Jun 2014 13:47:54 -0400
-Subject: [PATCH 14/20] Make sure /var/log/anaconda gets copied under the right
- root.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 4cbde571d8d8897d92db8877351ecf6e39be2d97
----
- data/post-scripts/99-copy-logs.ks | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/data/post-scripts/99-copy-logs.ks b/data/post-scripts/99-copy-logs.ks
-index 1a60756..7e1263e 100644
---- a/data/post-scripts/99-copy-logs.ks
-+++ b/data/post-scripts/99-copy-logs.ks
-@@ -1,7 +1,7 @@
- # Note, this script log will not be copied to the installed system.
- %post --nochroot
- 
--mkdir -p /mnt/sysimage/var/log/anaconda
-+mkdir -p $ANA_INSTALL_PATH/var/log/anaconda
- [ -e /tmp/anaconda.log ] && cp /tmp/anaconda.log $ANA_INSTALL_PATH/var/log/anaconda/anaconda.log
- [ -e /tmp/syslog ] && cp /tmp/syslog $ANA_INSTALL_PATH/var/log/anaconda/syslog
- [ -e /tmp/X.log ] && cp /tmp/X.log $ANA_INSTALL_PATH/var/log/anaconda/anaconda.xlog
-@@ -11,6 +11,6 @@ mkdir -p /mnt/sysimage/var/log/anaconda
- [ -e /tmp/ifcfg.log ] && cp /tmp/ifcfg.log $ANA_INSTALL_PATH/var/log/anaconda/anaconda.ifcfg.log
- [ -e /tmp/yum.log ] && cp /tmp/yum.log $ANA_INSTALL_PATH/var/log/anaconda/anaconda.yum.log
- cp /tmp/ks-script*.log $ANA_INSTALL_PATH/var/log/anaconda/
--chmod 0600 /mnt/sysimage/var/log/anaconda/*
-+chmod 0600 $ANA_INSTALL_PATH/var/log/anaconda/*
- 
- %end
--- 
-1.9.3
-
diff --git a/SOURCES/0015-Only-fail-on-a-missing-firewalld-command-if-the-fire.patch b/SOURCES/0015-Only-fail-on-a-missing-firewalld-command-if-the-fire.patch
deleted file mode 100644
index 17aa7b1..0000000
--- a/SOURCES/0015-Only-fail-on-a-missing-firewalld-command-if-the-fire.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 03f73112ec29c6c1e5c898c38b57dae76992bbf9 Mon Sep 17 00:00:00 2001
-From: Chris Lumens <clumens@redhat.com>
-Date: Mon, 23 Sep 2013 13:13:11 -0400
-Subject: [PATCH 15/20] Only fail on a missing firewalld command if the
- firewall is enabled.
-
-If the user gives firewall --disabled and their package set does not include the
-firewalld package, we should not raise an error.  The firewall will be disabled
-on the target system due to the lack of firewalld.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit a1f1d2248ca8e1b6c4e0437aeff9f7cc165e785e
----
- pyanaconda/kickstart.py | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
-index 92a406a..cb3de8b 100644
---- a/pyanaconda/kickstart.py
-+++ b/pyanaconda/kickstart.py
-@@ -582,8 +582,9 @@ class Firewall(commands.firewall.F20_Firewall):
- 
-         cmd = "/usr/bin/firewall-offline-cmd"
-         if not os.path.exists(iutil.getSysroot()+cmd):
--            msg = _("%s is missing. Cannot setup firewall.") % (cmd,)
--            raise KickstartError(msg)
-+            if self.enabled:
-+                msg = _("%s is missing. Cannot setup firewall.") % (cmd,)
-+                raise KickstartError(msg)
-         else:
-             iutil.execInSysroot(cmd, args)
- 
--- 
-1.9.3
-
diff --git a/SOURCES/0016-Use-absolute-path-for-extlinux-menu.c32.patch b/SOURCES/0016-Use-absolute-path-for-extlinux-menu.c32.patch
deleted file mode 100644
index f02cf26..0000000
--- a/SOURCES/0016-Use-absolute-path-for-extlinux-menu.c32.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8a7013802803b8ccbe2953696bef39de2a6698ff Mon Sep 17 00:00:00 2001
-From: Radek Vykydal <rvykydal@redhat.com>
-Date: Fri, 20 Jun 2014 12:58:56 +0200
-Subject: [PATCH 16/20] Use absolute path for extlinux/menu.c32
-
-Perhaps thanks to all the syslinux.cfg symlinking done by ostree
-payload, extlinux can't find the file given by relative path.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
----
- pyanaconda/bootloader.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
-index b6d5941..6c693db 100644
---- a/pyanaconda/bootloader.py
-+++ b/pyanaconda/bootloader.py
-@@ -2248,7 +2248,7 @@ class EXTLINUX(BootLoader):
- 
-     def write_config_header(self, config):
-         header = ("# extlinux.conf generated by anaconda\n\n"
--                  "ui menu.c32\n\n"
-+                  "ui /extlinux/menu.c32\n\n"
-                   "menu autoboot Welcome to %(productName)s. Automatic boot in # second{,s}. Press a key for options.\n"
-                   "menu title %(productName)s Boot Options.\n"
-                   "menu hidden\n\n"
--- 
-1.9.3
-
diff --git a/SOURCES/0017-rpmostreepayload-Don-t-recreateInitrds-for-this-payl.patch b/SOURCES/0017-rpmostreepayload-Don-t-recreateInitrds-for-this-payl.patch
deleted file mode 100644
index 2ea0250..0000000
--- a/SOURCES/0017-rpmostreepayload-Don-t-recreateInitrds-for-this-payl.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 0de3ad9f51a21556adebf6cc1f6929091a4d8dae Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Mon, 26 May 2014 15:57:13 -0400
-Subject: [PATCH 17/20] rpmostreepayload: Don't recreateInitrds for this
- payload
-
-The OSTree replication design has the initramfs generated on a compose
-server.  Avoid regenerating them locally.
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 528b6215fff48337b45edfa2dbc548c54437b42b
----
- pyanaconda/packaging/rpmostreepayload.py | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index 0210017..b425ec4 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -197,6 +197,12 @@ class RPMOSTreePayload(ArchivePayload):
-                                        ["--create", "--boot", "--root=" + iutil.getSysroot(),
-                                         "--prefix=/var/" + varsubdir])
- 
-+    def recreateInitrds(self, force=False):
-+        # For rpmostree payloads, we're replicating an initramfs from
-+        # a compose server, and should never be regenerating them
-+        # per-machine.
-+        pass
-+
-     def postInstall(self):
-         super(RPMOSTreePayload, self).postInstall()
- 
--- 
-1.9.3
-
diff --git a/SOURCES/0018-rpmostreepayload-create-var-spool-mail-required-when.patch b/SOURCES/0018-rpmostreepayload-create-var-spool-mail-required-when.patch
deleted file mode 100644
index 380bf80..0000000
--- a/SOURCES/0018-rpmostreepayload-create-var-spool-mail-required-when.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 723d1fa54243dc1cba14d0684f4e161251f02fd3 Mon Sep 17 00:00:00 2001
-From: Radek Vykydal <rvykydal@redhat.com>
-Date: Thu, 3 Jul 2014 13:23:09 +0200
-Subject: [PATCH 18/20] rpmostreepayload: create /var/spool/mail required when
- adding user
-
-Resolves: rhbz#1113535
-Port of rpmostreepayload patches from master
-commit 43ee318334e3c9c91c84323e3c699b77c5b3ad85
----
- pyanaconda/packaging/rpmostreepayload.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index b425ec4..aba85bb 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -192,7 +192,7 @@ class RPMOSTreePayload(ArchivePayload):
-         # get it because that would require mounting the API filesystems in the
-         # target.
-         for varsubdir in ('home', 'roothome', 'lib/rpm', 'opt', 'srv',
--                          'usrlocal', 'mnt', 'media'):
-+                          'usrlocal', 'mnt', 'media', 'spool'):
-             self._safeExecWithRedirect("systemd-tmpfiles",
-                                        ["--create", "--boot", "--root=" + iutil.getSysroot(),
-                                         "--prefix=/var/" + varsubdir])
--- 
-1.9.3
-
diff --git a/SOURCES/0019-Skip-source-and-software-spoke-in-text-live-installa.patch b/SOURCES/0019-Skip-source-and-software-spoke-in-text-live-installa.patch
deleted file mode 100644
index 1feca63..0000000
--- a/SOURCES/0019-Skip-source-and-software-spoke-in-text-live-installa.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 84f32dc53aeaf5ec3f6b2b2f2c480daa97e3b69a Mon Sep 17 00:00:00 2001
-From: "Brian C. Lane" <bcl@redhat.com>
-Date: Tue, 29 Apr 2014 16:39:33 -0700
-Subject: [PATCH 19/20] Skip source and software spoke in text live
- installations (#1092763)
-
-text liveimg kickstart installations were failing because it was trying
-to show the software and source spokes. This copies the showable logic
-over from the GUI spokes and skips them for live and liveimg kickstart
-installations.
-
-Resolves: rhbz#1092763
----
- pyanaconda/ui/tui/hubs/__init__.py   | 4 ++--
- pyanaconda/ui/tui/spokes/software.py | 4 ++++
- pyanaconda/ui/tui/spokes/source.py   | 4 ++++
- 3 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/pyanaconda/ui/tui/hubs/__init__.py b/pyanaconda/ui/tui/hubs/__init__.py
-index b637f94..55a67d8 100644
---- a/pyanaconda/ui/tui/hubs/__init__.py
-+++ b/pyanaconda/ui/tui/hubs/__init__.py
-@@ -61,13 +61,13 @@ class TUIHub(TUIObject, common.Hub):
-                     continue
- 
-                 spoke = s(self.app, self.data, self.storage, self.payload, self.instclass)
--                spoke.initialize()
- 
-                 if not spoke.showable:
--                    spoke.teardown()
-                     del spoke
-                     continue
- 
-+                spoke.initialize()
-+
-                 if spoke.indirect:
-                     continue
- 
-diff --git a/pyanaconda/ui/tui/spokes/software.py b/pyanaconda/ui/tui/spokes/software.py
-index dc337e1..44f3da3 100644
---- a/pyanaconda/ui/tui/spokes/software.py
-+++ b/pyanaconda/ui/tui/spokes/software.py
-@@ -72,6 +72,10 @@ class SoftwareSpoke(NormalTUISpoke):
-         self._ready = True
- 
-     @property
-+    def showable(self):
-+        return not flags.livecdInstall and not self.data.method.method == "liveimg"
-+
-+    @property
-     def status(self):
-         """ Where we are in the process """
-         if self.errors:
-diff --git a/pyanaconda/ui/tui/spokes/source.py b/pyanaconda/ui/tui/spokes/source.py
-index 3afe01b..fc889c6 100644
---- a/pyanaconda/ui/tui/spokes/source.py
-+++ b/pyanaconda/ui/tui/spokes/source.py
-@@ -203,6 +203,10 @@ class SourceSpoke(SourceSwitchHandler, EditTUISpoke):
-             return _("Nothing selected")
- 
-     @property
-+    def showable(self):
-+        return not flags.livecdInstall and not self.data.method.method == "liveimg"
-+
-+    @property
-     def status(self):
-         if self.errors:
-             return _("Error setting up software source")
--- 
-1.9.3
-
diff --git a/SOURCES/0020-tui-show-software-and-source-spoke-iff-payload-is-Pa.patch b/SOURCES/0020-tui-show-software-and-source-spoke-iff-payload-is-Pa.patch
deleted file mode 100644
index 1cc08f4..0000000
--- a/SOURCES/0020-tui-show-software-and-source-spoke-iff-payload-is-Pa.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 2a4ea01e202e04b0bdc599c0e948eccaf2346d64 Mon Sep 17 00:00:00 2001
-From: Radek Vykydal <rvykydal@redhat.com>
-Date: Fri, 12 Sep 2014 11:35:02 +0200
-Subject: [PATCH 20/20] tui: show software and source spoke iff payload is
- PackagePayload (#1139142)
-
-Resolves: rhbz#1139142
-
-The same what we do in GUI in
-commit b2730604a2089236ebb94c22d96bbacc71235c59
----
- pyanaconda/ui/tui/spokes/software.py | 4 ++--
- pyanaconda/ui/tui/spokes/source.py   | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/pyanaconda/ui/tui/spokes/software.py b/pyanaconda/ui/tui/spokes/software.py
-index 44f3da3..5c93d78 100644
---- a/pyanaconda/ui/tui/spokes/software.py
-+++ b/pyanaconda/ui/tui/spokes/software.py
-@@ -23,7 +23,7 @@ from pyanaconda.flags import flags
- from pyanaconda.ui.tui.spokes import NormalTUISpoke
- from pyanaconda.ui.tui.simpleline import TextWidget, ColumnWidget, CheckboxWidget
- from pyanaconda.threads import threadMgr, AnacondaThread
--from pyanaconda.packaging import MetadataError, DependencyError
-+from pyanaconda.packaging import MetadataError, DependencyError, PackagePayload
- from pyanaconda.i18n import N_, _
- 
- from pyanaconda.constants import THREAD_PAYLOAD, THREAD_PAYLOAD_MD
-@@ -73,7 +73,7 @@ class SoftwareSpoke(NormalTUISpoke):
- 
-     @property
-     def showable(self):
--        return not flags.livecdInstall and not self.data.method.method == "liveimg"
-+        return isinstance(self.payload, PackagePayload)
- 
-     @property
-     def status(self):
-diff --git a/pyanaconda/ui/tui/spokes/source.py b/pyanaconda/ui/tui/spokes/source.py
-index fc889c6..125ce1a 100644
---- a/pyanaconda/ui/tui/spokes/source.py
-+++ b/pyanaconda/ui/tui/spokes/source.py
-@@ -25,7 +25,7 @@ from pyanaconda.ui.tui.spokes import EditTUISpoke, NormalTUISpoke
- from pyanaconda.ui.tui.spokes import EditTUISpokeEntry as Entry
- from pyanaconda.ui.tui.simpleline import TextWidget, ColumnWidget
- from pyanaconda.threads import threadMgr, AnacondaThread
--from pyanaconda.packaging import PayloadError, MetadataError
-+from pyanaconda.packaging import PayloadError, MetadataError, PackagePayload
- from pyanaconda.i18n import N_, _
- from pyanaconda.image import opticalInstallMedia, potentialHdisoSources
- from pyanaconda.iutil import DataHolder
-@@ -204,7 +204,7 @@ class SourceSpoke(SourceSwitchHandler, EditTUISpoke):
- 
-     @property
-     def showable(self):
--        return not flags.livecdInstall and not self.data.method.method == "liveimg"
-+        return isinstance(self.payload, PackagePayload)
- 
-     @property
-     def status(self):
--- 
-1.9.3
-
diff --git a/SOURCES/0021-Graphically-handle-errors-arising-from-ostree-repo-p.patch b/SOURCES/0021-Graphically-handle-errors-arising-from-ostree-repo-p.patch
deleted file mode 100644
index a6ea201..0000000
--- a/SOURCES/0021-Graphically-handle-errors-arising-from-ostree-repo-p.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 67a9b1477ef706b6b47fc5f37d864076b653c017 Mon Sep 17 00:00:00 2001
-From: Chris Lumens <clumens@redhat.com>
-Date: Fri, 3 Oct 2014 11:04:35 -0400
-Subject: [PATCH 21/21] Graphically handle errors arising from ostree repo pull
- problems.
-
-This requires setting up a new glib main context as well, so ostree doesn't
-nuke the one we're currently using and make it impossible to do anything
-with GTK.
-
-Resolves: rhbz#1131382
----
- pyanaconda/packaging/rpmostreepayload.py | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index aba85bb..8be6d3b 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -22,7 +22,9 @@
- 
- import os
- import shutil
-+import sys
- 
-+from pyanaconda import constants
- from pyanaconda import iutil
- from pyanaconda.i18n import _
- from pyanaconda.progress import progressQ
-@@ -88,6 +90,9 @@ class RPMOSTreePayload(ArchivePayload):
-             progressQ.send_message("Writing objects")
- 
-     def install(self):
-+        mainctx = GLib.MainContext.new()
-+        mainctx.push_thread_default()
-+
-         cancellable = None
-         from gi.repository import OSTree
-         ostreesetup = self.data.ostreesetup
-@@ -120,7 +125,16 @@ class RPMOSTreePayload(ArchivePayload):
- 
-         progress = OSTree.AsyncProgress.new()
-         progress.connect('changed', self._pullProgressCb)
--        repo.pull(ostreesetup.remote, [ostreesetup.ref], 0, progress, cancellable)
-+
-+        try:
-+            repo.pull(ostreesetup.remote, [ostreesetup.ref], 0, progress, cancellable)
-+        except GLib.GError as e:
-+            exn = PayloadInstallError("Failed to pull from repository: %s" % e)
-+            log.error(str(exn))
-+            if errors.errorHandler.cb(exn) == errors.ERROR_RAISE:
-+                progressQ.send_quit(1)
-+                iutil.ipmi_report(constants.IPMI_ABORTED)
-+                sys.exit(1)
- 
-         progressQ.send_message(_("Preparing deployment of %s") % (ostreesetup.ref, ))
- 
-@@ -164,6 +178,8 @@ class RPMOSTreePayload(ArchivePayload):
-                 log.info("Copying bootloader data: " + fname)
-                 shutil.copytree(srcpath, os.path.join(physboot, fname))
- 
-+        mainctx.pop_thread_default()
-+
-     def prepareMountTargets(self, storage):
-         ostreesetup = self.data.ostreesetup
- 
--- 
-1.9.3
-
diff --git a/SOURCES/0022-Take-RHEL-Atomic-Host-as-rhel-installclass.patch b/SOURCES/0022-Take-RHEL-Atomic-Host-as-rhel-installclass.patch
deleted file mode 100644
index d03ce73..0000000
--- a/SOURCES/0022-Take-RHEL-Atomic-Host-as-rhel-installclass.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 96b9be656648adda25ec4cd0f4a16e3edbe36183 Mon Sep 17 00:00:00 2001
-From: Radek Vykydal <rvykydal@redhat.com>
-Date: Tue, 7 Oct 2014 13:44:07 +0200
-Subject: [PATCH 22/22] Take "RHEL Atomic Host" as rhel installclass.
-
-Atomic is using this product name that does not match "Red Hat " prefix,
-due to lorax length limita on the name (32 chars?).
----
- pyanaconda/installclasses/rhel.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py
-index 74052fd..8a694e3 100644
---- a/pyanaconda/installclasses/rhel.py
-+++ b/pyanaconda/installclasses/rhel.py
-@@ -30,7 +30,7 @@ class InstallClass(BaseInstallClass):
-     id = "rhel"
-     name = N_("Red Hat Enterprise Linux")
-     sortPriority = 20000
--    if not productName.startswith("Red Hat "):
-+    if not productName.startswith(("Red Hat ", "RHEL Atomic")):
-         hidden = 1
-     defaultFS = "xfs"
- 
--- 
-1.9.3
-
diff --git a/SOURCES/0023-Handle-the-case-of-rpmostreepayload-GRUB2.patch b/SOURCES/0023-Handle-the-case-of-rpmostreepayload-GRUB2.patch
deleted file mode 100644
index f0bc8d8..0000000
--- a/SOURCES/0023-Handle-the-case-of-rpmostreepayload-GRUB2.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 9277b3b38557cbdb60abe06af93513ebcb0038c9 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Mon, 13 Oct 2014 21:01:23 -0400
-Subject: [PATCH 1/5] Handle the case of rpmostreepayload + GRUB2
-
-NOTE: Incompatible change for trees constructed prior to
-NOTE: https://github.com/projectatomic/rpm-ostree/pull/35
-
-For rpmostreepayload (in contrast to yum mainline) is that Anaconda
-lays down the bootloader data and computes the kernel arguments, but
-ostree takes care of writing the configuration file (as it does on
-upgrades as well).
-
-However, the handling of /boot in OSTree was a bit broken, and trying
-to support GRUB2 forced this change, because we need to ultimately
-execute grub2-mkconfig in the chroot and we need both the *real* /boot
-as well as the new /usr/lib/ostree-boot.
-
-We switch to keeping /boot in the target root, and call ostree from
-there.  This should still work for extlinux because we're just
-rewriting a config file.
-
-For moving the GRUB2 config file, see a similar change for
-rpmostreepayload+extlinux in commit: 627486c22cdaf6c07009026791f5bd6fc1aaadaa
-
-Note: This commit is only useful on BIOS systems as of yet.
-
-Conflicts:
-	pyanaconda/bootloader.py
-	pyanaconda/install.py
-	pyanaconda/packaging/rpmostreepayload.py
----
- pyanaconda/bootloader.py                 | 11 ++++----
- pyanaconda/install.py                    | 14 ----------
- pyanaconda/packaging/rpmostreepayload.py | 48 +++++++++++++++-----------------
- 3 files changed, 28 insertions(+), 45 deletions(-)
-
-diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
-index 6c693db..29004b1 100644
---- a/pyanaconda/bootloader.py
-+++ b/pyanaconda/bootloader.py
-@@ -1551,11 +1551,12 @@ class GRUB2(GRUB):
-             log.error("bootloader password setup failed: %s" % e)
- 
-         # make sure the default entry is the OS we are installing
--        entry_title = "%s Linux, with Linux %s" % (productName,
--                                                   self.default.version)
--        rc = iutil.execInSysroot("grub2-set-default", [entry_title])
--        if rc:
--            log.error("failed to set default menu entry to %s" % productName)
-+        if self.default is not None:
-+            entry_title = "%s Linux, with Linux %s" % (productName,
-+                                                       self.default.version)
-+            rc = iutil.execInSysroot("grub2-set-default", [entry_title])
-+            if rc:
-+                log.error("failed to set default menu entry to %s" % productName)
- 
-         # now tell grub2 to generate the main configuration file
-         rc = iutil.execInSysroot("grub2-mkconfig",
-diff --git a/pyanaconda/install.py b/pyanaconda/install.py
-index 959878b..8c90221 100644
---- a/pyanaconda/install.py
-+++ b/pyanaconda/install.py
-@@ -107,17 +107,6 @@ def doConfiguration(storage, payload, ksdata, instClass):
- 
-     progressQ.send_complete()
- 
--def moveBootMntToPhysical(storage):
--    """Move the /boot mount to /mnt/sysimage/boot."""
--    if iutil.getSysroot() == iutil.getTargetPhysicalRoot():
--        return
--    bootmnt = storage.mountpoints.get('/boot')
--    if bootmnt is None:
--        return
--    bootmnt.format.teardown()
--    bootmnt.teardown()
--    bootmnt.format.setup(options=bootmnt.format.options, chroot=iutil.getTargetPhysicalRoot())
--
- def doInstall(storage, payload, ksdata, instClass):
-     """Perform an installation.  This method takes the ksdata as prepared by
-        the UI (the first hub, in graphical mode) and applies it to the disk.
-@@ -215,9 +204,6 @@ def doInstall(storage, payload, ksdata, instClass):
-             writeBootLoader(storage, payload, instClass, ksdata)
- 
-     with progress_report(_("Performing post-installation setup tasks")):
--        # Now, let's reset the state here so that the payload has
--        # /boot in the system root.
--        moveBootMntToPhysical(storage)
-         payload.postInstall()
- 
-     progressQ.send_complete()
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index 8be6d3b..dfb0466 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -222,40 +222,36 @@ class RPMOSTreePayload(ArchivePayload):
-     def postInstall(self):
-         super(RPMOSTreePayload, self).postInstall()
- 
--        physboot = iutil.getTargetPhysicalRoot() + '/boot'
-+        boot = iutil.getSysroot() + '/boot'
- 
-         # If we're using extlinux, rename extlinux.conf to
-         # syslinux.cfg, since that's what OSTree knows about.
-         # syslinux upstream supports both, but I'd say that upstream
-         # using syslinux.cfg is somewhat preferred.
--        physboot_extlinux = physboot + '/extlinux'
--        if os.path.isdir(physboot_extlinux):
--            physboot_syslinux = physboot + '/syslinux'
--            physboot_loader = physboot + '/loader'
--            assert os.path.isdir(physboot_loader)
--            orig_extlinux_conf = physboot_extlinux + '/extlinux.conf'
--            target_syslinux_cfg = physboot_loader + '/syslinux.cfg'
--            log.info("Moving %s -> %s" % (orig_extlinux_conf, target_syslinux_cfg))
--            os.rename(orig_extlinux_conf, target_syslinux_cfg)
--            # A compatibility bit for OSTree
--            os.mkdir(physboot_syslinux)
--            os.symlink('../loader/syslinux.cfg', physboot_syslinux + '/syslinux.cfg')
--            # And *also* tell syslinux that the config is really in /boot/loader
--            os.symlink('loader/syslinux.cfg', physboot + '/syslinux.cfg')
-+        boot_extlinux = boot + '/extlinux'
-+        if os.path.isdir(boot_extlinux):
-+            boot_syslinux = boot + '/syslinux'
-+            boot_loader = boot + '/loader'
-+            orig_extlinux_conf = boot_extlinux + '/extlinux.conf'
-+            target_syslinux_cfg = boot_loader + '/syslinux.cfg'
-+            log.info("Moving %s -> %s", orig_extlinux_conf, target_syslinux_cfg)
-+            os.symlink('loader/syslinux.cfg', boot + '/syslinux.cfg')
-+
-+        # And if we're using GRUB2, move its config file, also with a
-+        # compatibility symlink.
-+        boot_grub2 = boot + '/grub2'
-+        if os.path.isdir(boot_grub2):
-+            boot_loader = boot + '/loader'
-+            orig_grub_cfg = boot_grub2 + '/grub.cfg'
-+            target_grub_cfg = boot_loader + '/grub.cfg'
-+            log.info("Moving %s -> %s", orig_grub_cfg, target_grub_cfg)
-+            os.rename(orig_grub_cfg, target_grub_cfg)
-+            os.symlink('../loader/grub.cfg', orig_grub_cfg)
- 
-         # OSTree owns the bootloader configuration, so here we give it
-         # the argument list we computed from storage, architecture and
-         # such.
--        set_kargs_args = ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
--                          "instutil", "set-kargs"]
-+        set_kargs_args = ["admin", "instutil", "set-kargs"]
-         set_kargs_args.extend(self.storage.bootloader.boot_args)
-         set_kargs_args.append("root=" + self.storage.rootDevice.fstabSpec)
--        self._safeExecWithRedirect("ostree", set_kargs_args)
--
--        # This command iterates over all files we might have created
--        # and ensures they're labeled. It's like running
--        # chroot(iutil.getTargetPhysicalRoot()) + fixfiles, except
--        # with a better name and semantics.
--        self._safeExecWithRedirect("ostree",
--            ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
--             "instutil", "selinux-ensure-labeled", iutil.getTargetPhysicalRoot(), ""])
-+        self._safeExecWithRedirect("ostree", set_kargs_args, root=iutil.getSysroot())
--- 
-1.8.3.1
-
diff --git a/SOURCES/0024-rpmostreepayload-Copy-all-subdirectories-of-usr-lib-.patch b/SOURCES/0024-rpmostreepayload-Copy-all-subdirectories-of-usr-lib-.patch
deleted file mode 100644
index 5890a6c..0000000
--- a/SOURCES/0024-rpmostreepayload-Copy-all-subdirectories-of-usr-lib-.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 273559fae459326ff6fccfe5cc026020daf151f6 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Fri, 17 Oct 2014 00:01:25 -0400
-Subject: [PATCH 2/5] rpmostreepayload: Copy all subdirectories of
- /usr/lib/ostree-boot
-
-Previously we were special casing extlinux/ and grub2/, but this
-misses out on efi/.  To support rpmostreepayload + GRUB2 + EFI, we
-need special handling here.  Any bootloaders installing files in /boot
-instead of a subdirectory will then need to be special cased (or
-"fixed").
-
-Now in a perfect world, I'd have a time machine and we could go back
-and have every bootloader install in a subdirectory /boot/data or
-something.  But we basically can't change existing systems, which kind
-of traps us into the current RPM-level layout forever, with rpm-ostree
-postprocessing it.
-
-(One could argue it's rpm-ostree's job to postprocess this so Anaconda
- wouldn't have to care.  Open to that.)
----
- pyanaconda/packaging/rpmostreepayload.py | 60 +++++++++++++++++++++++---------
- 1 file changed, 44 insertions(+), 16 deletions(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index dfb0466..bf8d7e1 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -89,6 +89,41 @@ class RPMOSTreePayload(ArchivePayload):
-         else:
-             progressQ.send_message("Writing objects")
- 
-+    def _copyBootloaderData(self):
-+        # Copy bootloader data files from the deployment
-+        # checkout to the target root.  See
-+        # https://bugzilla.gnome.org/show_bug.cgi?id=726757 This
-+        # happens once, at installation time.
-+        # extlinux ships its modules directly in the RPM in /boot.
-+        # For GRUB2, Anaconda installs device.map there.  We may need
-+        # to add other bootloaders here though (if they can't easily
-+        # be fixed to *copy* data into /boot at install time, instead
-+        # of shipping it in the RPM).
-+        physboot = iutil.getTargetPhysicalRoot() + '/boot'
-+        ostree_boot_source = iutil.getSysroot() + '/usr/lib/ostree-boot'
-+        if not os.path.isdir(ostree_boot_source):
-+            ostree_boot_source = iutil.getSysroot() + '/boot'
-+        for fname in os.listdir(ostree_boot_source):
-+            srcpath = os.path.join(ostree_boot_source, fname)
-+            destpath = os.path.join(physboot, fname)
-+
-+            # We're only copying directories
-+            if not os.path.isdir(srcpath):
-+                continue
-+
-+            # Special handling for EFI, as it's a mount point that's
-+            # expected to already exist (so if we used copytree, we'd
-+            # traceback).  If it doesn't, we're not on a UEFI system,
-+            # so we don't want to copy the data.
-+            if fname == 'efi' and os.path.isdir(destpath):
-+                for subname in os.listdir(srcpath):
-+                    sub_srcpath = os.path.join(srcpath, subname)
-+                    sub_destpath = os.path.join(destpath, subname)
-+                    self._safeExecWithRedirect('cp', ['-r', '-p', sub_srcpath, sub_destpath])
-+            else:
-+                log.info("Copying bootloader data: " + fname)
-+                shutil.copytree(srcpath, destpath)
-+
-     def install(self):
-         mainctx = GLib.MainContext.new()
-         mainctx.push_thread_default()
-@@ -161,22 +196,15 @@ class RPMOSTreePayload(ArchivePayload):
-         deployment_path = sysroot.get_deployment_directory(deployment)
-         iutil.setSysroot(deployment_path.get_path())
- 
--        # Copy specific bootloader data files from the deployment
--        # checkout to the target root.  See
--        # https://bugzilla.gnome.org/show_bug.cgi?id=726757 This
--        # happens once, at installation time.
--        # extlinux ships its modules directly in the RPM in /boot.
--        # For GRUB2, Anaconda installs device.map there.  We may need
--        # to add other bootloaders here though (if they can't easily
--        # be fixed to *copy* data into /boot at install time, instead
--        # of shipping it in the RPM).
--        physboot = iutil.getTargetPhysicalRoot() + '/boot'
--        sysboot = iutil.getSysroot() + '/boot'
--        for fname in ['extlinux', 'grub2']:
--            srcpath = os.path.join(sysboot, fname)
--            if os.path.isdir(srcpath):
--                log.info("Copying bootloader data: " + fname)
--                shutil.copytree(srcpath, os.path.join(physboot, fname))
-+        try:
-+            self._copyBootloaderData()
-+        except (OSError, RuntimeError) as e:
-+            exn = PayloadInstallError("Failed to copy bootloader data: %s" % e)
-+            log.error(str(exn))
-+            if errors.errorHandler.cb(exn) == errors.ERROR_RAISE:
-+                progressQ.send_quit(1)
-+                iutil.ipmi_report(constants.IPMI_ABORTED)
-+                sys.exit(1)
- 
-         mainctx.pop_thread_default()
- 
--- 
-1.8.3.1
-
diff --git a/SOURCES/0025-rpmostreepayload-Add-remote-from-inside-sysroot.patch b/SOURCES/0025-rpmostreepayload-Add-remote-from-inside-sysroot.patch
deleted file mode 100644
index 4063633..0000000
--- a/SOURCES/0025-rpmostreepayload-Add-remote-from-inside-sysroot.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From fcd77ee59912d3945950c048d79b8601e7d8bca4 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Fri, 17 Oct 2014 13:17:46 -0400
-Subject: [PATCH 3/5] rpmostreepayload: Rework remote add handling
-
-We really want the remote to be in /etc/ostree/remotes.d, so
-that it can be easily manipulated post-install.
-
-To do that unfortunately is a complex dance.
----
- pyanaconda/packaging/rpmostreepayload.py | 34 +++++++++++++++++++++++++-------
- 1 file changed, 27 insertions(+), 7 deletions(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index bf8d7e1..b5ee16b 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -140,16 +140,17 @@ class RPMOSTreePayload(ArchivePayload):
- 
-         repo_arg = "--repo=" + iutil.getTargetPhysicalRoot() + '/ostree/repo'
- 
--        # Set up the chosen remote
--        remote_args = [repo_arg, "remote", "add"]
-+        # Store this for use in postInstall too, where we need to
-+        # undo/redo this step.
-+        self._base_remote_args = ["remote", "add"]
-         if ((hasattr(ostreesetup, 'noGpg') and ostreesetup.noGpg) or
-             (hasattr(ostreesetup, 'nogpg') and ostreesetup.nogpg)):
--            remote_args.append("--set=gpg-verify=false")
--        remote_args.extend([ostreesetup.remote,
--                            ostreesetup.url])
--        self._safeExecWithRedirect("ostree", remote_args)
-+            self._base_remote_args.append("--set=gpg-verify=false")
-+        self._base_remote_args.extend([ostreesetup.remote,
-+                                     ostreesetup.url])
-+        self._safeExecWithRedirect("ostree", [repo_arg] + self._base_remote_args)
- 
--        sysroot_path = Gio.File.new_for_path(iutil.getTargetPhysicalRoot())
-+        self._sysroot_path = sysroot_path = Gio.File.new_for_path(iutil.getTargetPhysicalRoot())
-         sysroot = OSTree.Sysroot.new(sysroot_path)
-         sysroot.load(cancellable)
- 
-@@ -250,6 +251,24 @@ class RPMOSTreePayload(ArchivePayload):
-     def postInstall(self):
-         super(RPMOSTreePayload, self).postInstall()
- 
-+        from gi.repository import OSTree
-+        cancellable = None
-+
-+        # Reload this data - we couldn't keep it open across
-+        # the remounts happening.
-+        sysroot = OSTree.Sysroot.new(self._sysroot_path)
-+        sysroot.load(cancellable)
-+        repo = sysroot.get_repo(None)[1]
-+
-+        # This is an ugly hack - we didn't have /etc/ostree/remotes.d,
-+        # so the remote went into /ostree/repo/config.  But we want it
-+        # in /etc, so delete that remote, then re-add it to
-+        # /etc/ostree/remotes.d, executing ostree inside the sysroot
-+        # so that it understands it's a "system repository" and should
-+        # modify /etc.
-+        repo.remote_delete(self.data.ostreesetup.remote, None)
-+        self._safeExecWithRedirect("ostree", self._base_remote_args, root=iutil.getSysroot())
-+
-         boot = iutil.getSysroot() + '/boot'
- 
-         # If we're using extlinux, rename extlinux.conf to
-@@ -276,6 +295,7 @@ class RPMOSTreePayload(ArchivePayload):
-             os.rename(orig_grub_cfg, target_grub_cfg)
-             os.symlink('../loader/grub.cfg', orig_grub_cfg)
- 
-+
-         # OSTree owns the bootloader configuration, so here we give it
-         # the argument list we computed from storage, architecture and
-         # such.
--- 
-1.8.3.1
-
diff --git a/SOURCES/0026-rpmostreepayload-Handle-grub2-EFI-layout.patch b/SOURCES/0026-rpmostreepayload-Handle-grub2-EFI-layout.patch
deleted file mode 100644
index 31e928d..0000000
--- a/SOURCES/0026-rpmostreepayload-Handle-grub2-EFI-layout.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 363ef4269a70772985955b17f309a3c9726af3b5 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Sun, 19 Oct 2014 20:03:53 -0400
-Subject: [PATCH 4/5] rpmostreepayload: Handle grub2+EFI layout
-
-We previously assumed if /boot/grub2 exists it's in use, but we
-actually need to check for /boot/grub2/grub.cfg, as on EFI the config
-file is in /boot/EFI.
----
- pyanaconda/packaging/rpmostreepayload.py | 12 +++++-------
- 1 file changed, 5 insertions(+), 7 deletions(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index b5ee16b..e69d695 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -286,15 +286,13 @@ class RPMOSTreePayload(ArchivePayload):
- 
-         # And if we're using GRUB2, move its config file, also with a
-         # compatibility symlink.
--        boot_grub2 = boot + '/grub2'
--        if os.path.isdir(boot_grub2):
-+        boot_grub2_cfg = boot + '/grub2/grub.cfg'
-+        if os.path.isfile(boot_grub2_cfg):
-             boot_loader = boot + '/loader'
--            orig_grub_cfg = boot_grub2 + '/grub.cfg'
-             target_grub_cfg = boot_loader + '/grub.cfg'
--            log.info("Moving %s -> %s", orig_grub_cfg, target_grub_cfg)
--            os.rename(orig_grub_cfg, target_grub_cfg)
--            os.symlink('../loader/grub.cfg', orig_grub_cfg)
--
-+            log.info("Moving %s -> %s", boot_grub2_cfg, target_grub_cfg)
-+            os.rename(boot_grub2_cfg, target_grub_cfg)
-+            os.symlink('../loader/grub.cfg', boot_grub2_cfg)
- 
-         # OSTree owns the bootloader configuration, so here we give it
-         # the argument list we computed from storage, architecture and
--- 
-1.8.3.1
-
diff --git a/SOURCES/0027-bootloader-Bridge-efi_dir-configuration-earlier-for-.patch b/SOURCES/0027-bootloader-Bridge-efi_dir-configuration-earlier-for-.patch
deleted file mode 100644
index 01d4cc5..0000000
--- a/SOURCES/0027-bootloader-Bridge-efi_dir-configuration-earlier-for-.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 1e3e73a6a939286c7ee3f7ea78dc5431501981eb Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Sun, 19 Oct 2014 21:01:22 -0400
-Subject: [PATCH 5/5] bootloader: Bridge efi_dir configuration earlier for
- rpmostreepayload
-
-rpmostreepayload wants a stub bootloader configuration to be written,
-then it updates it.  There is a bit of magic in the middle of
-bootloader.py to bridge the install class' efi_dir to the bootloader
-configuration - we just need to set this up before calling
-writeBootLoaderFinal().
-
-Otherwise the config ends up in BOOT, which doesn't work.
----
- pyanaconda/bootloader.py | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
-index 29004b1..24ae3f9 100644
---- a/pyanaconda/bootloader.py
-+++ b/pyanaconda/bootloader.py
-@@ -2387,6 +2387,10 @@ def writeBootLoader(storage, payload, instClass, ksdata):
-         stage2_device = storage.bootloader.stage2_device
-         log.info("bootloader stage2 target device is %s" % stage2_device.name)
- 
-+    # Bridge storage EFI configuration to bootloader
-+    if hasattr(storage.bootloader, 'efi_dir'):
-+        storage.bootloader.efi_dir = instClass.efi_dir
-+
-     if isinstance(payload, RPMOSTreePayload):
-         if storage.bootloader.skip_bootloader:
-             log.info("skipping bootloader install per user request")
-@@ -2413,8 +2417,6 @@ def writeBootLoader(storage, payload, instClass, ksdata):
-                                          short=base_short_label)
-     storage.bootloader.add_image(default_image)
-     storage.bootloader.default = default_image
--    if hasattr(storage.bootloader, 'efi_dir'):
--        storage.bootloader.efi_dir = instClass.efi_dir
- 
-     # write out /etc/sysconfig/kernel
-     writeSysconfigKernel(storage, version)
--- 
-1.8.3.1
-
diff --git a/SOURCES/0028-Let-finding-install-classes-be-more-flexible-for-Fed.patch b/SOURCES/0028-Let-finding-install-classes-be-more-flexible-for-Fed.patch
deleted file mode 100644
index 71ca44b..0000000
--- a/SOURCES/0028-Let-finding-install-classes-be-more-flexible-for-Fed.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From b50aab52e9e45178c317cb6efc258244a1943161 Mon Sep 17 00:00:00 2001
-From: Chris Lumens <clumens@redhat.com>
-Date: Fri, 5 Sep 2014 14:19:45 -0400
-Subject: [PATCH 28/30] Let finding install classes be more flexible for Fedora
- (#1155452).
-
-Related: rhbz#1155452
-
-(1) Make it so a valid install class does not have to be named "InstallClass"
-which should make inheritance less cumbersome.
-
-(2) Allow putting more than one install class into a single file.
-
-(3) Rename the existing install classes to be <distro>BaseInstallClass.  This
-makes it more clear for subclasses where they're coming from.
-
-Port of commit 8c2550d20d7fd8964cd3ec5797ff34949fe0f8fd from master.
----
- pyanaconda/installclass.py          | 16 ++++++----------
- pyanaconda/installclasses/fedora.py |  2 +-
- pyanaconda/installclasses/rhel.py   |  2 +-
- 3 files changed, 8 insertions(+), 12 deletions(-)
-
-diff --git a/pyanaconda/installclass.py b/pyanaconda/installclass.py
-index 76609de..83af984 100644
---- a/pyanaconda/installclass.py
-+++ b/pyanaconda/installclass.py
-@@ -183,7 +183,6 @@ def availableClasses(showHidden=0):
- 	if done.has_key(mainName): continue
- 	done[mainName] = 1
- 
--
-         try:
-             found = imputil.imp.find_module(mainName)
-         except ImportError as e:
-@@ -192,16 +191,13 @@ def availableClasses(showHidden=0):
- 
-         try:
-             loaded = imputil.imp.load_module(mainName, found[0], found[1], found[2])
-+            for (_key, obj) in loaded.__dict__.items():
-+                # If it's got these two methods, it's an InstallClass.
-+                if hasattr(obj, "setDefaultPartitioning") and hasattr(obj, "setPackageSelection"):
-+                    sortOrder = getattr(obj, "sortPriority", 0)
-+                    if obj.hidden == 0 or showHidden == 1:
-+                        list.append(((obj.name, obj), sortOrder))
- 
--            obj = loaded.InstallClass
--
--	    if obj.__dict__.has_key('sortPriority'):
--		sortOrder = obj.sortPriority
--	    else:
--		sortOrder = 0
--
--            if obj.hidden == 0 or showHidden == 1:
--                list.append(((obj.name, obj), sortOrder))
-         except ImportError as e:
-             log.warning ("module import of %s failed: %s" % (mainName, sys.exc_type))
-             if flags.debug: raise
-diff --git a/pyanaconda/installclasses/fedora.py b/pyanaconda/installclasses/fedora.py
-index 3e0a5f2..058fdba 100644
---- a/pyanaconda/installclasses/fedora.py
-+++ b/pyanaconda/installclasses/fedora.py
-@@ -26,7 +26,7 @@ from pyanaconda.i18n import _, N_
- 
- import os, types
- 
--class InstallClass(BaseInstallClass):
-+class FedoraBaseInstallClass(BaseInstallClass):
-     # name has underscore used for mnemonics, strip if you dont need it
-     id = "fedora"
-     name = N_("_Fedora")
-diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py
-index 8a694e3..a0dae4c 100644
---- a/pyanaconda/installclasses/rhel.py
-+++ b/pyanaconda/installclasses/rhel.py
-@@ -25,7 +25,7 @@ from pyanaconda import nm
- from pyanaconda import iutil
- import types
- 
--class InstallClass(BaseInstallClass):
-+class RHELBaseInstallClass(BaseInstallClass):
-     # name has underscore used for mnemonics, strip if you dont need it
-     id = "rhel"
-     name = N_("Red Hat Enterprise Linux")
--- 
-1.9.3
-
diff --git a/SOURCES/0029-A-couple-updates-to-installclasses.patch b/SOURCES/0029-A-couple-updates-to-installclasses.patch
deleted file mode 100644
index fc318e6..0000000
--- a/SOURCES/0029-A-couple-updates-to-installclasses.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 4813b74c235bdfd911cd64c73c9eec1f795ebee5 Mon Sep 17 00:00:00 2001
-From: Chris Lumens <clumens@redhat.com>
-Date: Mon, 8 Sep 2014 15:07:50 -0400
-Subject: [PATCH 29/30] A couple updates to installclasses.
-
-Related: rhbz#1155452
-
-Port of commit e8952489ce4c130612d6d06f3bc20155eb5fc102 from master.
-
-* hidden and showHidden should be booleans, not ints in disguise.
-* Get rid of default and id.  These are unused.
-* Stop marking names for translation and remove mnemonics.  These haven't been
-  used since the days of workstation/server/custom selection in the UI.  Does
-  anyone else even still remember this?
----
- po/POTFILES.in                      |  4 ----
- pyanaconda/installclass.py          | 15 ++++++---------
- pyanaconda/installclasses/fedora.py |  8 ++------
- pyanaconda/installclasses/rhel.py   |  6 ++----
- 4 files changed, 10 insertions(+), 23 deletions(-)
-
-diff --git a/po/POTFILES.in b/po/POTFILES.in
-index 8df1636..086e799 100644
---- a/po/POTFILES.in
-+++ b/po/POTFILES.in
-@@ -16,10 +16,6 @@ pyanaconda/product.py
- pyanaconda/rescue.py
- pyanaconda/vnc.py
- 
--# Install class definitions
--pyanaconda/installclasses/fedora.py
--pyanaconda/installclasses/rhel.py
--
- # Packaging module source files
- pyanaconda/packaging/__init__.py
- pyanaconda/packaging/livepayload.py
-diff --git a/pyanaconda/installclass.py b/pyanaconda/installclass.py
-index 83af984..5415bc6 100644
---- a/pyanaconda/installclass.py
-+++ b/pyanaconda/installclass.py
-@@ -43,7 +43,7 @@ from pyanaconda.kickstart import getAvailableDiskSpace
- 
- class BaseInstallClass(object):
-     # default to not being hidden
--    hidden = 0
-+    hidden = False
-     name = "base"
-     bootloaderTimeoutDefault = None
-     bootloaderExtraArgs = []
-@@ -64,9 +64,6 @@ class BaseInstallClass(object):
-     # Blivet uses by default.
-     defaultFS = None
- 
--    # don't select this class by default
--    default = 0
--
-     @property
-     def l10n_domain(self):
-         if self._l10n_domain is None:
-@@ -124,8 +121,8 @@ class BaseInstallClass(object):
- allClasses = []
- allClasses_hidden = []
- 
--# returns ( className, classObject, classLogo ) tuples
--def availableClasses(showHidden=0):
-+# returns ( className, classObject ) tuples
-+def availableClasses(showHidden=False):
-     global allClasses
-     global allClasses_hidden
- 
-@@ -195,7 +192,7 @@ def availableClasses(showHidden=0):
-                 # If it's got these two methods, it's an InstallClass.
-                 if hasattr(obj, "setDefaultPartitioning") and hasattr(obj, "setPackageSelection"):
-                     sortOrder = getattr(obj, "sortPriority", 0)
--                    if obj.hidden == 0 or showHidden == 1:
-+                    if not obj.hidden or showHidden:
-                         list.append(((obj.name, obj), sortOrder))
- 
-         except ImportError as e:
-@@ -217,8 +214,8 @@ def availableClasses(showHidden=0):
- 
- def getBaseInstallClass():
-     # figure out what installclass we should base on.
--    allavail = availableClasses(showHidden = 1)
--    avail = availableClasses(showHidden = 0)
-+    allavail = availableClasses(showHidden=True)
-+    avail = availableClasses(showHidden=False)
- 
-     if len(avail) == 1:
-         (cname, cobject) = avail[0]
-diff --git a/pyanaconda/installclasses/fedora.py b/pyanaconda/installclasses/fedora.py
-index 058fdba..ee2773f 100644
---- a/pyanaconda/installclasses/fedora.py
-+++ b/pyanaconda/installclasses/fedora.py
-@@ -22,17 +22,13 @@ from pyanaconda.product import productName
- from pyanaconda import network
- from pyanaconda import iutil
- from pyanaconda import nm
--from pyanaconda.i18n import _, N_
--
- import os, types
- 
- class FedoraBaseInstallClass(BaseInstallClass):
--    # name has underscore used for mnemonics, strip if you dont need it
--    id = "fedora"
--    name = N_("_Fedora")
-+    name = "Fedora"
-     sortPriority = 10000
-     if productName.startswith("Red Hat "):
--        hidden = 1
-+        hidden = True
- 
-     _l10n_domain = "anaconda"
- 
-diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py
-index a0dae4c..b7691cf 100644
---- a/pyanaconda/installclasses/rhel.py
-+++ b/pyanaconda/installclasses/rhel.py
-@@ -26,12 +26,10 @@ from pyanaconda import iutil
- import types
- 
- class RHELBaseInstallClass(BaseInstallClass):
--    # name has underscore used for mnemonics, strip if you dont need it
--    id = "rhel"
--    name = N_("Red Hat Enterprise Linux")
-+    name = "Red Hat Enterprise Linux"
-     sortPriority = 20000
-     if not productName.startswith(("Red Hat ", "RHEL Atomic")):
--        hidden = 1
-+        hidden = True
-     defaultFS = "xfs"
- 
-     bootloaderTimeoutDefault = 5
--- 
-1.9.3
-
diff --git a/SOURCES/0030-atomic-set-up-atomic-specific-partitioning-defaults.patch b/SOURCES/0030-atomic-set-up-atomic-specific-partitioning-defaults.patch
deleted file mode 100644
index 7b641b4..0000000
--- a/SOURCES/0030-atomic-set-up-atomic-specific-partitioning-defaults.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 4808f43abc14396add62e9b0a92fbe8cf5b41346 Mon Sep 17 00:00:00 2001
-From: Radek Vykydal <rvykydal@redhat.com>
-Date: Tue, 21 Oct 2014 17:46:47 +0200
-Subject: [PATCH 30/30] atomic: set up atomic specific partitioning defaults
-
-Resolves: rhbz#1155452
-
-/boot will be 300M and / LV will be 3G. LVs for docker will be created by special
-service using root's VG.
----
- pyanaconda/installclasses/rhel.py | 36 ++++++++++++++++++++++++++++++++++--
- 1 file changed, 34 insertions(+), 2 deletions(-)
-
-diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py
-index b7691cf..a9a99f6 100644
---- a/pyanaconda/installclasses/rhel.py
-+++ b/pyanaconda/installclasses/rhel.py
-@@ -24,11 +24,15 @@ from pyanaconda import network
- from pyanaconda import nm
- from pyanaconda import iutil
- import types
-+from pyanaconda.kickstart import getAvailableDiskSpace
-+from blivet.partspec import PartSpec
-+from blivet.platform import platform
-+from blivet.devicelibs import swap
- 
- class RHELBaseInstallClass(BaseInstallClass):
-     name = "Red Hat Enterprise Linux"
-     sortPriority = 20000
--    if not productName.startswith(("Red Hat ", "RHEL Atomic")):
-+    if not productName.startswith("Red Hat "):
-         hidden = True
-     defaultFS = "xfs"
- 
-@@ -45,7 +49,7 @@ class RHELBaseInstallClass(BaseInstallClass):
- 
-     def configure(self, anaconda):
-         BaseInstallClass.configure(self, anaconda)
--        BaseInstallClass.setDefaultPartitioning(self, anaconda.storage)
-+        self.setDefaultPartitioning(anaconda.storage)
- 
-     # Set first boot policy regarding ONBOOT value
-     # (i.e. which network devices should be activated automatically after reboot)
-@@ -84,3 +88,31 @@ class RHELBaseInstallClass(BaseInstallClass):
- 
-     def __init__(self):
-         BaseInstallClass.__init__(self)
-+
-+class RHELAtomicInstallClass(RHELBaseInstallClass):
-+    name = "RHEL Atomic Host"
-+    if productName.startswith("RHEL Atomic"):
-+        hidden = False
-+
-+    def setDefaultPartitioning(self, storage):
-+        autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType,
-+                                size=1024, maxSize=3*1024, grow=True, lv=True)]
-+
-+        bootreqs = platform.setDefaultPartitioning()
-+        if bootreqs:
-+            autorequests.extend(bootreqs)
-+
-+        disk_space = getAvailableDiskSpace(storage)
-+        swp = swap.swapSuggestion(disk_space=disk_space)
-+        autorequests.append(PartSpec(fstype="swap", size=swp, grow=False,
-+                                    lv=True, encrypted=True))
-+
-+        for autoreq in autorequests:
-+            if autoreq.fstype is None:
-+                if autoreq.mountpoint == "/boot":
-+                    autoreq.fstype = storage.defaultBootFSType
-+                    autoreq.size = 300
-+                else:
-+                    autoreq.fstype = storage.defaultFSType
-+
-+        storage.autoPartitionRequests = autorequests
--- 
-1.9.3
-
diff --git a/SOURCES/0031-rpmostreepayload-Avoid-shutil.copytree-in-favor-of-c.patch b/SOURCES/0031-rpmostreepayload-Avoid-shutil.copytree-in-favor-of-c.patch
deleted file mode 100644
index 1a09493..0000000
--- a/SOURCES/0031-rpmostreepayload-Avoid-shutil.copytree-in-favor-of-c.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d4cd779ea38a42a2f122738e7c8083ca3ac6a367 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 2 Dec 2014 21:47:43 -0500
-Subject: [PATCH] rpmostreepayload: Avoid shutil.copytree in favor of cp -r to
- fix symlinks
-
-shutil.copytree() follows symlinks by default which I didn't realize,
-and this actively breaks things as grubenv is a symlink.
-
-Since we're shelling out to 'cp' in a case above, might as well do it
-here.
-
-This also means that if we hit e.g. ENOSPC we'll enter the error
-handling codepath instead of an uncaught traceback.
-
-(Yes, this code is crappy, should probably live in bootloader.py,
- except I'm going through gyrations here to avoid requiring
- any changes in how mainline bootloaders work)
----
- pyanaconda/packaging/rpmostreepayload.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index ade664c..f96a316 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -119,7 +119,7 @@ class RPMOSTreePayload(ArchivePayload):
-                     self._safeExecWithRedirect('cp', ['-r', '-p', sub_srcpath, sub_destpath])
-             else:
-                 log.info("Copying bootloader data: " + fname)
--                shutil.copytree(srcpath, destpath)
-+                self._safeExecWithRedirect('cp', ['-r', '-p', srcpath, destpath])
- 
-     def install(self):
-         mainctx = GLib.MainContext.new()
--- 
-1.8.3.1
-
diff --git a/SOURCES/0032-rescue-find-root-partition-of-ostree-atomic-installa.patch b/SOURCES/0032-rescue-find-root-partition-of-ostree-atomic-installa.patch
deleted file mode 100644
index 2ec1b62..0000000
--- a/SOURCES/0032-rescue-find-root-partition-of-ostree-atomic-installa.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 2fe1fea904f40256387dea56405a369c22354e2c Mon Sep 17 00:00:00 2001
-From: Radek Vykydal <rvykydal@redhat.com>
-Date: Tue, 9 Dec 2014 11:01:18 +0100
-Subject: [PATCH 32/32] rescue: find root partition of ostree (atomic)
- installations (#1152041)
-
----
- pyanaconda/rescue.py | 37 +++++++++++++++++++++++++++++++++++++
- 1 file changed, 37 insertions(+)
-
-diff --git a/pyanaconda/rescue.py b/pyanaconda/rescue.py
-index e0c4e13..fbf3f06 100644
---- a/pyanaconda/rescue.py
-+++ b/pyanaconda/rescue.py
-@@ -264,6 +264,42 @@ def _unlock_devices(intf, storage):
-                         device.format.passphrase = None
-                         try_passphrase = None
- 
-+def findExistingOstreePartitions(devicetree):
-+    import blivet
-+    if not os.path.exists(blivet.getTargetPhysicalRoot()):
-+        util.makedirs(blivet.getTargetPhysicalRoot())
-+
-+    roots = []
-+    for device in devicetree.leaves:
-+        if not device.format.linuxNative or not device.format.mountable or \
-+           not device.controllable:
-+            continue
-+
-+        try:
-+            device.setup()
-+        except Exception: # pylint: disable=broad-except
-+            log.warning("setup of %s failed", [device.name])
-+            continue
-+
-+        options = device.format.options + ",ro"
-+        try:
-+            device.format.mount(options=options, mountpoint=iutil.getSysroot())
-+        except Exception: # pylint: disable=broad-except
-+            log.warning("mount of %s as %s failed", device.name, device.format.type)
-+            device.teardown()
-+            continue
-+
-+        if not os.access(iutil.getSysroot() + "/ostree", os.R_OK):
-+            device.teardown(recursive=True)
-+            continue
-+
-+        name = _("Ostree on %s") % device.name
-+        roots.append(blivet.Root(mounts=None, swaps=None, name=device.name))
-+
-+    return roots
-+
-+
-+
- def doRescue(intf, rescue_mount, ksdata):
-     import blivet
- 
-@@ -323,6 +359,7 @@ def doRescue(intf, rescue_mount, ksdata):
-     blivet.storageInitialize(sto, ksdata, [])
-     _unlock_devices(intf, sto)
-     roots = blivet.findExistingInstallations(sto.devicetree)
-+    roots.extend(findExistingOstreePartitions(sto.devicetree))
- 
-     if not roots:
-         root = None
--- 
-1.9.3
-
diff --git a/SOURCES/0033-Add-crashkernel-auto-by-default.patch b/SOURCES/0033-Add-crashkernel-auto-by-default.patch
deleted file mode 100644
index 4cbe462..0000000
--- a/SOURCES/0033-Add-crashkernel-auto-by-default.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From debde5ede7018c5d227c9e02e846383f4fe98f26 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Wed, 21 Jan 2015 14:00:23 -0500
-Subject: [PATCH] Add crashkernel=auto by default
-
----
- pyanaconda/bootloader.py | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
-index 24ae3f9..6e55807 100644
---- a/pyanaconda/bootloader.py
-+++ b/pyanaconda/bootloader.py
-@@ -810,6 +810,11 @@ class BootLoader(object):
-             self.boot_args.add("boot=%s" % self.stage2_device.fstabSpec)
- 
-         #
-+        # http://post-office.corp.redhat.com/archives/atomic-host-dev/2015-January/msg00051.html
-+        #
-+        self.boot_args.add("crashkernel=auto")
-+
-+        #
-         # dracut
-         #
- 
--- 
-1.8.3.1
-
diff --git a/SOURCES/9800-rpmostreepayload-Rework-remote-add-handling.patch b/SOURCES/9800-rpmostreepayload-Rework-remote-add-handling.patch
deleted file mode 100644
index 16b0660..0000000
--- a/SOURCES/9800-rpmostreepayload-Rework-remote-add-handling.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From c72f979499f5af3091ad8f2017442b3728cdff2f Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 16 Jun 2015 11:24:20 -0400
-Subject: [PATCH] Rebase
-
----
- pyanaconda/packaging/rpmostreepayload.py | 67 ++++++++++++++++++++------------
- 1 file changed, 43 insertions(+), 24 deletions(-)
-
-diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
-index 5eacd9f..f979c3e 100644
---- a/pyanaconda/packaging/rpmostreepayload.py
-+++ b/pyanaconda/packaging/rpmostreepayload.py
-@@ -138,24 +138,25 @@ class RPMOSTreePayload(ArchivePayload):
-             ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
-              "init-fs", iutil.getTargetPhysicalRoot()])
- 
--        repo_arg = "--repo=" + iutil.getTargetPhysicalRoot() + '/ostree/repo'
-+        self._sysroot_path = Gio.File.new_for_path(iutil.getTargetPhysicalRoot())
-+        sysroot = OSTree.Sysroot.new(self._sysroot_path)
-+        sysroot.load(cancellable)
-+        repo = sysroot.get_repo(None)[1]
-+        # We don't support resuming from interrupted installs
-+        repo.set_disable_fsync(True)
- 
--        # Store this for use in postInstall too, where we need to
--        # undo/redo this step.
--        self._base_remote_args = ["remote", "add"]
-+        self._remoteOptions = {}
-+
-+        # Handle variations in pykickstart
-         if ((hasattr(ostreesetup, 'noGpg') and ostreesetup.noGpg) or
-             (hasattr(ostreesetup, 'nogpg') and ostreesetup.nogpg)):
--            self._base_remote_args.append("--set=gpg-verify=false")
--        self._base_remote_args.extend([ostreesetup.remote,
--                                     ostreesetup.url])
--        self._safeExecWithRedirect("ostree", [repo_arg] + self._base_remote_args)
-+            self._remoteOptions['gpg-verify'] = GLib.Variant('b', False)
- 
--        self._sysroot_path = sysroot_path = Gio.File.new_for_path(iutil.getTargetPhysicalRoot())
--        sysroot = OSTree.Sysroot.new(sysroot_path)
--        sysroot.load(cancellable)
-+        repo.remote_change(None, OSTree.RepoRemoteChange.ADD_IF_NOT_EXISTS,
-+                           ostreesetup.remote, ostreesetup.url,
-+                           GLib.Variant('a{sv}', self._remoteOptions),
-+                           cancellable)
- 
--        repo = sysroot.get_repo(None)[1]
--        repo.set_disable_fsync(True)
-         progressQ.send_message(_("Starting pull of %(branchName)s from %(source)s") % \
-                                {"branchName": ostreesetup.ref, "source": ostreesetup.remote})
- 
-@@ -174,6 +175,14 @@ class RPMOSTreePayload(ArchivePayload):
- 
-         progressQ.send_message(_("Preparing deployment of %s") % (ostreesetup.ref, ))
- 
-+        # Now that we have the data pulled, delete the remote for now.
-+        # This will allow a remote configuration defined in the tree
-+        # (if any) to override what's in the kickstart.  Otherwise,
-+        # we'll re-add it in post.  Ideally, ostree would support a
-+        # pull without adding a remote, but that would get quite
-+        # complex.
-+        repo.remote_delete(self.data.ostreesetup.remote, None)
-+
-         self._safeExecWithRedirect("ostree",
-             ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(),
-              "os-init", ostreesetup.osname])
-@@ -250,24 +259,34 @@ class RPMOSTreePayload(ArchivePayload):
- 
-     def postInstall(self):
-         super(RPMOSTreePayload, self).postInstall()
--
-+        
-         from gi.repository import OSTree
-         cancellable = None
- 
--        # Reload this data - we couldn't keep it open across
--        # the remounts happening.
-         sysroot = OSTree.Sysroot.new(self._sysroot_path)
-         sysroot.load(cancellable)
-         repo = sysroot.get_repo(None)[1]
- 
--        # This is an ugly hack - we didn't have /etc/ostree/remotes.d,
--        # so the remote went into /ostree/repo/config.  But we want it
--        # in /etc, so delete that remote, then re-add it to
--        # /etc/ostree/remotes.d, executing ostree inside the sysroot
--        # so that it understands it's a "system repository" and should
--        # modify /etc.
--        repo.remote_delete(self.data.ostreesetup.remote, None)
--        self._safeExecWithRedirect("ostree", self._base_remote_args, root=iutil.getSysroot())
-+        # CentOS specific patch (for now) - pull the remote config from usr/etc if it exists.
-+        # The OSTree handling here was buggy in that it wasn't looking in the sysroot
-+        # for existing remotes.
-+        default_remote_path = iutil.getSysroot() + '/usr/etc/ostree/remotes.d/' + self.data.ostreesetup.osname + '.conf'
-+        if os.path.isfile(default_remote_path):
-+            destpath = iutil.getSysroot() + '/etc/ostree/remotes.d/' + os.path.basename(default_remote_path)
-+            self._safeExecWithRedirect('cp', ['-r', '-p', default_remote_path, destpath])
-+        else:
-+            # Following up on the "remote delete" above, we removed the
-+            # remote from /ostree/repo/config.  But we want it in /etc, so
-+            # re-add it to /etc/ostree/remotes.d, using the sysroot path.
-+            #
-+            # However, we ignore the case where the remote already exists,
-+            # which occurs when the content itself provides the remote
-+            # config file.
-+            repo.remote_change(Gio.File.new_for_path(iutil.getSysroot()),
-+                               OSTree.RepoRemoteChange.ADD_IF_NOT_EXISTS,
-+                               self.data.ostreesetup.remote, self.data.ostreesetup.url,
-+                               GLib.Variant('a{sv}', self._remoteOptions),
-+                               cancellable)
- 
-         boot = iutil.getSysroot() + '/boot'
- 
--- 
-1.8.3.1
-
diff --git a/SOURCES/9900-CentOS-atomic-branding.patch b/SOURCES/9900-CentOS-atomic-branding.patch
deleted file mode 100644
index 9d51cf2..0000000
--- a/SOURCES/9900-CentOS-atomic-branding.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 6b70a1867fef732cd75ef79782f71c13241622b7 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Fri, 12 Jun 2015 13:59:05 -0400
-Subject: [PATCH] Use CentOS branding, increase install priority for Atomic
-
-This is similar to the patch CentOS normally applies to Anaconda,
-but updated for Atomic.
----
- pyanaconda/installclasses/rhel.py | 17 +++++++++++------
- 1 file changed, 11 insertions(+), 6 deletions(-)
-
-diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py
-index a9a99f6..b924cd2 100644
---- a/pyanaconda/installclasses/rhel.py
-+++ b/pyanaconda/installclasses/rhel.py
-@@ -30,9 +30,9 @@ from blivet.platform import platform
- from blivet.devicelibs import swap
- 
- class RHELBaseInstallClass(BaseInstallClass):
--    name = "Red Hat Enterprise Linux"
-+    name = "CentOS Linux"
-     sortPriority = 20000
--    if not productName.startswith("Red Hat "):
-+    if not productName.startswith("CentOS "):
-         hidden = True
-     defaultFS = "xfs"
- 
-@@ -45,7 +45,7 @@ class RHELBaseInstallClass(BaseInstallClass):
- 
-     _l10n_domain = "comps"
- 
--    efi_dir = "redhat"
-+    efi_dir = "centos"
- 
-     def configure(self, anaconda):
-         BaseInstallClass.configure(self, anaconda)
-@@ -90,9 +90,14 @@ class RHELBaseInstallClass(BaseInstallClass):
-         BaseInstallClass.__init__(self)
- 
- class RHELAtomicInstallClass(RHELBaseInstallClass):
--    name = "RHEL Atomic Host"
--    if productName.startswith("RHEL Atomic"):
--        hidden = False
-+    name = "CentOS Atomic Host"
-+    # We have to bump priority because RHEL upstream is relying on a
-+    # side effect of the OS name starting with "RHEL" instead of "Red
-+    # Hat" and thus the normal RHELBaseInstallClass above not
-+    # matching.
-+    sortPriority = 20001
-+    if not productName.startswith("CentOS "):
-+        hidden = True
- 
-     def setDefaultPartitioning(self, storage):
-         autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType,
--- 
-1.8.3.1
-
diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec
index d93467d..21f7d65 100644
--- a/SPECS/anaconda.spec
+++ b/SPECS/anaconda.spec
@@ -1,10 +1,10 @@
-%define livearches %{ix86} x86_64 ppc ppc64
+%define livearches %{ix86} x86_64 ppc ppc64 ppc64le
 
 Summary: Graphical system installer
 Name:    anaconda
-Version: 19.31.79
-Release: 28.atomic%{?dist}.7
-License: GPLv2+
+Version: 21.48.22.121
+Release: 3.rhelah.0%{?dist}
+License: GPLv2+ and MIT
 Group:   Applications/System
 URL:     http://fedoraproject.org/wiki/Anaconda
 
@@ -14,60 +14,20 @@ URL:     http://fedoraproject.org/wiki/Anaconda
 # ./autogen.sh
 # make dist
 Source0: %{name}-%{version}.tar.bz2
-Patch0: 0001-gui-spokes-software-Enable-iff-payload-is-PackagePay.patch
-Patch1: 0002-Override-ROOT_PATH-with-environmental-variable.patch
-Patch2: 0003-Use-ROOT_PATH-not-mnt-sysimage.patch
-Patch3: 0004-iutil-Introduce-getSysroot-getTargetPhysicalRoot-use.patch
-Patch4: 0005-main-Set-flags.extlinux-if-extlinux-is-used-in-inter.patch
-Patch5: 0006-iutil-Transparently-redirect-anyone-who-asks-root-mn.patch
-Patch6: 0007-install-Move-Payload-postInstall-after-bootloader.patch
-Patch7: 0008-install-Handle-distinct-physical-root-sysroot.patch
-Patch8: 0009-bootloader-Allow-extlinux-loader-configuration-to-ha.patch
-Patch9: 0010-Add-RPMOSTreePayload.patch
-Patch10: 0011-Make-an-ostree-string-easier-for-translators-to-deal.patch
-Patch11: 0012-rpmostreepayload-Use-systemd-tmpfiles-rather-than-ha.patch
-Patch12: 0013-format.setup-in-blivet-takes-only-kwargs.patch
-Patch13: 0014-Make-sure-var-log-anaconda-gets-copied-under-the-rig.patch
-Patch14: 0015-Only-fail-on-a-missing-firewalld-command-if-the-fire.patch
-Patch15: 0016-Use-absolute-path-for-extlinux-menu.c32.patch
-Patch16: 0017-rpmostreepayload-Don-t-recreateInitrds-for-this-payl.patch
-Patch17: 0018-rpmostreepayload-create-var-spool-mail-required-when.patch
-Patch18: 0019-Skip-source-and-software-spoke-in-text-live-installa.patch
-Patch19: 0020-tui-show-software-and-source-spoke-iff-payload-is-Pa.patch
-Patch20: 0021-Graphically-handle-errors-arising-from-ostree-repo-p.patch
-Patch21: 0022-Take-RHEL-Atomic-Host-as-rhel-installclass.patch
-Patch22: 0023-Handle-the-case-of-rpmostreepayload-GRUB2.patch
-Patch23: 0024-rpmostreepayload-Copy-all-subdirectories-of-usr-lib-.patch
-Patch24: 0025-rpmostreepayload-Add-remote-from-inside-sysroot.patch
-Patch25: 0026-rpmostreepayload-Handle-grub2-EFI-layout.patch
-Patch26: 0027-bootloader-Bridge-efi_dir-configuration-earlier-for-.patch
-Patch27: 0028-Let-finding-install-classes-be-more-flexible-for-Fed.patch
-Patch28: 0029-A-couple-updates-to-installclasses.patch
-Patch29: 0030-atomic-set-up-atomic-specific-partitioning-defaults.patch
-Patch30: 0031-rpmostreepayload-Avoid-shutil.copytree-in-favor-of-c.patch
-Patch31: 0032-rescue-find-root-partition-of-ostree-atomic-installa.patch
-Patch32: 0033-Add-crashkernel-auto-by-default.patch
-
-### *** CentOS specific patches
-# This one needed to be backported from Fedora because CentOS doesn't
-# use subscription-manager
-Patch9800: 9800-rpmostreepayload-Rework-remote-add-handling.patch
-# Rebranding patch, an adaption of the patch for CentOS Core
-Patch9900: 9900-CentOS-atomic-branding.patch
-### ^^^ CentOS specific patches
+# backported for RHELAH 7.4.2
+Patch0: 0001-rpmostreepayload-Rollup-backport-of-Fedora-patches.patch
+Patch1: 0001-installclasses-rhelah-Bump-default-to-15GB-max.patch
 
 # Versions of required components (done so we make sure the buildrequires
 # match the requires versions of things).
-%define gettextver 0.11
-%define gconfversion 2.28.1
+%define gettextver 0.18.1
 %define intltoolver 0.31.2-3
-%define libnlver 1.0
-%define pykickstartver  1.99.43.10
+%define pykickstartver 1.99.66.12
 %define yumver 3.4.3-91
 %define partedver 1.8.1
 %define pypartedver 2.5-2
 %define pythonpyblockver 0.45
-%define nmver 1:0.7.1-3.git20090414
+%define nmver 1.0.0-6.git20150107
 %define dbusver 1.2.3
 %define yumutilsver 1.1.11-3
 %define mehver 0.23-1
@@ -75,28 +35,29 @@ Patch9900: 9900-CentOS-atomic-branding.patch
 %define firewalldver 0.3.5-1
 %define pythonurlgrabberver 3.9.1-5
 %define utillinuxver 2.15.1
-%define dracutver 033-26
+%define dracutver 033-240
 %define isomd5sum 1.0.10
 %define fcoeutilsver 1.0.12-3.20100323git
 %define iscsiver 6.2.0.870-3
 %define rpmver 4.10.0
 %define libarchivever 3.0.4
-%define langtablever 0.0.13-4
+%define langtablever 0.0.31-3
+%define libxklavierver 5.4
+%define libtimezonemapver 0.4.1-2
+%define helpver 1:7.3.1-1
 
 BuildRequires: audit-libs-devel
 BuildRequires: gettext >= %{gettextver}
 BuildRequires: gtk3-devel
 BuildRequires: gtk-doc
+BuildRequires: gtk3-devel-docs
+BuildRequires: glib2-doc
 BuildRequires: gobject-introspection-devel
 BuildRequires: glade-devel
 BuildRequires: pygobject3
 BuildRequires: intltool >= %{intltoolver}
-BuildRequires: libX11-devel
-BuildRequires: libXt-devel
-BuildRequires: libXxf86misc-devel
 BuildRequires: libgnomekbd-devel
-BuildRequires: libnl-devel >= %{libnlver}
-BuildRequires: libxklavier-devel
+BuildRequires: libxklavier-devel >= %{libxklavierver}
 BuildRequires: pango-devel
 BuildRequires: pykickstart >= %{pykickstartver}
 %if ! 0%{?rhel}
@@ -119,20 +80,27 @@ BuildRequires: desktop-file-utils
 %ifarch s390 s390x
 BuildRequires: s390utils-devel
 %endif
+BuildRequires: libtimezonemap-devel >= %{libtimezonemapver}
 
-Requires: anaconda-widgets = %{version}-%{release}
-Requires: python-blivet >= 0.18.30
-Requires: gnome-icon-theme-symbolic
-Requires: python-meh-gui >= %{mehver}
+Requires: anaconda-core = %{version}-%{release}
+Requires: anaconda-gui = %{version}-%{release}
+Requires: anaconda-tui = %{version}-%{release}
+
+%description
+The anaconda package is a metapackage for the Anaconda installer.
+
+%package core
+Summary: Core of the Anaconda installer
+Requires: python-blivet >= 1:0.61.15.60
+Requires: python-meh >= %{mehver}
 Requires: libreport-anaconda >= 2.0.21-1
 Requires: libreport-rhel-anaconda-bugzilla >= 2.1.11-1
 Requires: libselinux-python
-Requires: rpm-python
+Requires: rpm-python >= %{rpmver}
 Requires: parted >= %{partedver}
 Requires: pyparted >= %{pypartedver}
 Requires: yum >= %{yumver}
 Requires: python-urlgrabber >= %{pythonurlgrabberver}
-Requires: system-logos
 Requires: pykickstart >= %{pykickstartver}
 Requires: langtable-data >= %{langtablever}
 Requires: langtable-python >= %{langtablever}
@@ -144,18 +112,12 @@ Requires: dbus-python
 Requires: python-pwquality
 Requires: python-IPy
 Requires: python-nss
-Requires: tigervnc-server-minimal
 Requires: pytz
-Requires: libxklavier
-Requires: libgnomekbd
 Requires: realmd
 Requires: teamd
-Requires: keybinder3
 %ifarch %livearches
 Requires: usermode
-Requires: zenity
 %endif
-Requires: GConf2 >= %{gconfversion}
 %ifarch s390 s390x
 Requires: openssh
 %endif
@@ -163,13 +125,13 @@ Requires: isomd5sum >= %{isomd5sum}
 Requires: yum-utils >= %{yumutilsver}
 Requires: createrepo
 Requires: NetworkManager >= %{nmver}
-Requires: nm-connection-editor
+Requires: NetworkManager-team
+Requires: NetworkManager-glib >= %{nmver}
 Requires: dhclient
 Requires: kbd
 Requires: chrony
-Requires: ntpdate
+Requires: python-ntplib
 Requires: rsync
-Requires: hostname
 Requires: systemd
 %ifarch %{ix86} x86_64
 Requires: fcoe-utils >= %{fcoeutilsver}
@@ -181,19 +143,58 @@ Requires: dmidecode
 Requires: hfsplus-tools
 %endif
 %endif
+Requires: kexec-tools
 
 Requires: python-coverage
 
+# required because of the rescue mode and VNC question
+Requires: anaconda-tui = %{version}-%{release}
+
 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
-The anaconda package contains the program which was used to install your
+%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 = %{version}-%{release}
+Requires: anaconda-widgets = %{version}-%{release}
+Requires: python-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: yelp
+Requires: anaconda-user-help >= %{helpver}
+
+# Needed to compile the gsettings files
+BuildRequires: gsettings-desktop-schemas
+
+%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 = %{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
@@ -207,7 +208,7 @@ This package contains a set of custom GTK+ widgets used by the anaconda installe
 Summary: Development files for anaconda-widgets
 Group: Development/Libraries
 Requires: glade
-Requires: anaconda-widgets = %{version}-%{release}
+Requires: %{name}-widgets%{?_isa} = %{version}-%{release}
 
 %description widgets-devel
 This package contains libraries and header files needed for writing the anaconda
@@ -230,41 +231,6 @@ runtime on NFS/HTTP/FTP servers or local disks.
 %setup -q
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
-%patch18 -p1
-%patch19 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
-%patch23 -p1
-%patch24 -p1
-%patch25 -p1
-%patch26 -p1
-%patch27 -p1
-%patch28 -p1
-%patch29 -p1
-%patch30 -p1
-%patch31 -p1
-%patch32 -p1
-
-%patch9800 -p1
-
-%patch9900 -p1
 
 %build
 %configure --disable-static \
@@ -278,12 +244,19 @@ find %{buildroot} -type f -name "*.la" | xargs %{__rm}
 
 %ifarch %livearches
 desktop-file-install ---dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/liveinst.desktop
-%else
-%{__rm} -rf %{buildroot}%{_bindir}/liveinst %{buildroot}%{_sbindir}/liveinst
+
+# Add a sitecustomize.py to be loaded by liveinst
+mkdir -p %{buildroot}%{_datadir}/anaconda/site-python
+install -m 0644 pyanaconda/sitecustomize.py %{buildroot}%{_datadir}/anaconda/site-python/
 %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
 
 %find_lang %{name}
 
+%post widgets -p /sbin/ldconfig
+%postun widgets -p /sbin/ldconfig
+
 
 %ifarch %livearches
 %post
@@ -295,18 +268,25 @@ update-desktop-database &> /dev/null || :
 update-desktop-database &> /dev/null || :
 %endif
 
-%files -f %{name}.lang
+%files
+%doc COPYING
+
+%files core -f %{name}.lang
 %doc COPYING
 %{_unitdir}/*
 %{_prefix}/lib/systemd/system-generators/*
 %{_bindir}/instperf
+%{_bindir}/anaconda-disable-nm-ibft-plugin
 %{_sbindir}/anaconda
 %{_sbindir}/handle-sshpw
-%{_sbindir}/logpicker
 %{_datadir}/anaconda
+%{_datadir}/anaconda/help/*
+%exclude %{_datadir}/anaconda/tzmapdata
 %{_prefix}/libexec/anaconda
 %{_libdir}/python*/site-packages/pyanaconda/*
-%{_libdir}/python*/site-packages/log_picker/*
+%exclude %{_libdir}/python*/site-packages/pyanaconda/rescue.py*
+%exclude %{_libdir}/python*/site-packages/pyanaconda/ui/gui/*
+%exclude %{_libdir}/python*/site-packages/pyanaconda/ui/tui/*
 %{_bindir}/analog
 %{_bindir}/anaconda-cleanup
 %ifarch %livearches
@@ -316,14 +296,20 @@ update-desktop-database &> /dev/null || :
 %config(noreplace) %{_sysconfdir}/security/console.apps/*
 %{_sysconfdir}/X11/xinit/xinitrc.d/*
 %{_datadir}/applications/*.desktop
-%{_datadir}/icons/hicolor/*
 %endif
 
+%files gui
+%{_libdir}/python*/site-packages/pyanaconda/ui/gui/*
+%{_datadir}/themes/Anaconda/*
+
+%files tui
+%{_libdir}/python*/site-packages/pyanaconda/rescue.py
+%{_libdir}/python*/site-packages/pyanaconda/ui/tui/*
+
 %files widgets
 %{_libdir}/libAnacondaWidgets.so.*
 %{_libdir}/girepository*/AnacondaWidgets*typelib
 %{_libdir}/python*/site-packages/gi/overrides/*
-%{_datadir}/anaconda/tzmapdata/*
 
 %files widgets-devel
 %{_libdir}/libAnacondaWidgets.so
@@ -337,3256 +323,3939 @@ update-desktop-database &> /dev/null || :
 %{_prefix}/libexec/anaconda/dd_*
 
 %changelog
-* Wed Jun 17 2015 Karanbir Singh <kbsingh@centos.org> - 19.31.79.28.atomic.centos.7
-- Roll in 9800 and 9900 for the branding and ostree remote repo url changes
+* Mon Aug 21 2017 Colin Walters <walters@verbum.org> - 21.48.22.121-3.rhelah.0
+- Backport patches for RHELAH /var and ISO default storage increase
+- Related: rhbz#1098303
+- Related: rhbz#1391725
+
+* Wed Jun 21 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.121-1
+- rpmostreepayload: Stub out payload methods which use `import rpm` (walters)
+  Related: rhbz#1462979
+
+* Tue Jun 13 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.120-1
+- Update translations (ljanda)
+  Related: rhbz#1383911
+
+* Mon Jun 12 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.119-1
+- Delete file systems used only by a given installation (vponcova)
+  Resolves: rhbz#1453097
+
+* Thu Jun 08 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.118-1
+- rpmostreepayload: [rhel7only] Move tmpfiles to after mount setup (walters)
+  Resolves: rhbz#1459623
+- rpmostreepayload: Handle /var as a user-specified mountpoint (walters)
+  Resolves: rhbz#1459623
+
+* Tue May 30 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.117-1
+- Root checking fixes password for password from kickstart (mkolman)
+  Related: rhbz#1356966
+- Improve the GUI password checker (mkolman)
+  Related: rhbz#1356966
+- Respect changesok policy on root password spoke (mkolman)
+  Resolves: rhbz#1356966
+- Update translations of password checking strings (rvykydal)
+  Resolves: rhbz#1383911
+
+* Mon May 29 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.116-1
+- Allow nonstrict behaviour for all passwords in tui (vponcova)
+  Resolves: rhbz#1450326
+- Fix setting errors and warnings in the StorageCheckHandler (vponcova)
+  Resolves: rhbz#1453130
+- Mark post inst tools as disabled only if firstboot --disable is used
+  (mkolman)
+  Resolves: rhbz#1448940
+- Set the default filesystem type from a kickstart file (vponcova)
+  Resolves: rhbz#1449099
+
+* Wed May 24 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.115-1
+- Show a no network warning for network installation source. (vponcova)
+  Related: rhbz#1418604
+- Show warnings about enabling the network time (vponcova)
+  Resolves: rhbz#1418604
+- Fix generating UUID even for pre snapshots (jkonecny)
+  Related: rhbz#1113207
+
+* Mon May 15 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.114-1
+- Show the text of completions in the datetime spoke. (vponcova)
+  Related: rhbz#1447984
+- Look higher for the combobox associated with an entry (dshea)
+  Resolves: rhbz#1447984
+- Fix the addon handlers for the checkbox (vponcova)
+  Resolves: rhbz#1448187
+
+* Thu May 11 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.113-1
+- network: handle multiple connections for one device better (rvykydal)
+  Resolves: rhbz#1444887
+- network: catch exception when reading in-memory connection being removed
+  (rvykydal)
+  Related: rhbz#1444887
+- Compare empty confirmation field against input (mkolman)
+  Resolves: rhbz#1438832
+
+* Tue May 09 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.112-1
+- Properly iterate over kickstart locations in a job (vponcova)
+  Resolves: rhbz#1443485
+- Onlyuse devices of the ignoredisk command should be only disks (vponcova)
+  Related: rhbz#1327439
+- Fix device_name_is_disk to fully support raid devices (vponcova)
+  Resolves: rhbz#1327439
+
+* Thu Apr 27 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.111-1
+- Adapt to treeinfo addon section format change (rvykydal)
+  Related: rhbz#1437510
+- Make geolocation with kickstart possible (mkolman)
+  Resolves: rhbz#1358331
+- Show or hide the content of the expander (vponcova)
+  Resolves: rhbz#1441733
+- Fix a typo in anaconda-pre.service (mkolman)
+  Resolves: rhbz#1421246
+
+* Thu Apr 20 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.110-1
+- Adapt to treeinfo format change (variants -> addons) (rvykydal)
+  Resolves: rhbz#1437510
+- network: fix setting hostname via boot options (rvykydal)
+  Resolves: rhbz#1441337
+- Bump version of Pykickstart and Blivet (jkonecny)
+  Related: rhbz#1113207
+- Add XFS uuid changer (jkonecny)
+  Related: rhbz#1113207
+- Support --when parameter in snapshot (jkonecny)
+  Related: rhbz#1113207
+- Add snapshot support (jkonecny)
+  Resolves: rhbz#1113207
+
+* Wed Apr 12 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.109-1
+- Update 64bit grub2 support to reflect packages as they actually landed
+  (pjones)
+  Related: rhbz#1310779
+- Fix potential bugs reported by Pylint 1.6 (mkolman)
+  Related: rhbz#1440190
+- Fix unused variables and imports (mkolman)
+  Related: rhbz#1440190
+- Disable Pylint false positives (mkolman)
+  Related: rhbz#1440190
+- Fix Pylint LoggingChecker usage (mkolman)
+  Resolves: rhbz#1440190
+- Call subprocess.Popen with absolute path to a binary (rvykydal)
+  Resolves: rhbz#1411407
+
+* Mon Apr 10 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.108-1
+- Gtk: Fix css selectors. (vponcova)
+  Resolves: rhbz#1439766
+- Gtk: Set CSS names on all of the anaconda classes. (dshea)
+  Resolves: rhbz#1439766
+- Gtk: Fix deprecated pseudo-classes. (vponcova)
+  Resolves: rhbz#1433943
+- Gtk: Fix warnings in anaconda widgets. (dshea)
+  Resolves: rhbz#1433943
+- Gtk: Calculate the preferred size of the image. (vponcova)
+  Resolves: rhbz#1433943
+
+* Tue Apr 04 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.107-1
+- Gtk: Add gi.require_version to specify versions. (vponcova)
+  Resolves: rhbz#1433943
+- Use the function we already have for applying disk selection (rvykydal)
+  Related: rhbz#1412022
+- Ignore disks labeled OEMDRV (rvykydal)
+  Resolves: rhbz#1412022
+
+* Mon Apr 03 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.106-1
+- Pylint fixes (rvykydal)
+  Related: rhbz#1429576
+- Make 64-bit kernel on 32-bit firmware work for x86 efi machines (pjones)
+  Resolves: rhbz#1310779
+
+* Wed Mar 29 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.105-1
+- gui: show supported locales on Atomic Host installs (jlebon)
+  Resolves: rhbz#1429576
+- Specify unit for reserved space in VG (vpodzime)
+  Resolves: rhbz#1260887
+- Add support for --chunksize raid kickstart option (vtrefny)
+  Resolves: rhbz#1332316
+
+* Thu Mar 23 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.104-1
+- util: Add script to capture logs (riehecky)
+  Resolves: rhbz#1431313
+
+* Mon Mar 20 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.103-1
+- network tui: fix changing ipv4 config from static to dhcp (rvykydal)
+  Resolves: rhbz#1432886
+
+* Thu Mar 16 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.102-1
+- Add support for kickstart %%onerror scripts (clumens)
+  Resolves: rhbz#1412538
+- Fix partial kickstart software selection in GUI (jkonecny)
+  Related: rhbz#1404158
+- Show the network spoke in Initial Setup TUI (mkolman)
+  Resolves: rhbz#1302165
+- yum: Always release payload and catch raised exceptions. (vponcova)
+  Related: rhbz#979307
+- tui: Treat dependency errors as errors in the software spoke (vponcova)
+  Resolves: rhbz#979307
+- tui: Properly initialize the software spoke. (vponcova)
+  Related: rhbz#1371229
+- Propagate firstboot --disable to Screen Access Manager (mkolman)
+  Related: rhbz#1422867
+- Use Screen Access Manager (mkolman)
+  Related: rhbz#1422867
+- Add screen entry/exit callbacks (mkolman)
+  Related: rhbz#1422867
+- Add screen access manager (mkolman)
+  Resolves: rhbz#1422867
+- Removed unused code in the Software spoke (jkonecny)
+  Related: rhbz#1404158
+- Fix selection logic in Software spoke (jkonecny)
+  Resolves: rhbz#1404158
+- Support --nohome option in the autopartitioning (vponcova)
+  Resolves: rhbz#663099
+- tui: Remember the custom software selection (vponcova)
+  Resolves: rhbz#1371229
+
+* Mon Mar 13 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.101-1
+- Mock can now be set more easily by CI (jkonecny)
+  Resolves: rhbz#1430728
+
+* Mon Mar 06 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.100-1
+- Fix Driver Disc documentation (jkonecny)
+  Related: rhbz#1377233
+- Support DD rpm loading from local disk device (jkonecny)
+  Resolves: rhbz#1377233
+- Fix a Pylint warning (mkolman)
+  Related: rhbz#1425760
+- Remove redundant help content generation code (mkolman)
+  Resolves: rhbz#1428787
+- network: create dracut arguments for iSCSI root accessed via vlan (rvykydal)
+  Resolves: rhbz#1374003
+- Add support for RHVH custom storage checking (vponcova)
+  Related: rhbz#1412151
+- Enable the install class to customize the storage checking (vponcova)
+  Resolves: rhbz#1412151
+- Replace sanity check with more advanced storage checker (vponcova)
+  Related: rhbz#1412151
+- Rename StorageChecker to StorageCheckHandler (vponcova)
+  Related: rhbz#1412151
+- Perform recursive copying of driver disk RPM repo contents (esyr)
+  Resolves: rhbz#1425760
+- Fix a typo in an error message (esyr)
+  Related: rhbz#1425760
+- Don't block gui during dasd formating (vponcova)
+  Resolves: rhbz#1335465
+- rhev: add /home /tmp /var/log /var/log/audit (dougsland)
+  Resolves: rhbz#1422952
+- Increase verbosity of lvmdump in pre logging script (jkonecny)
+  Related: rhbz#1255659
+
+* Mon Feb 27 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.99-1
+- Improved password quality checking (mkolman)
+  Resolves: rhbz#1380277
+  Resolves: rhbz#1383718
+  Resolves: rhbz#1356975
+- Use correct default password quality value (mkolman)
+  Related: rhbz#1380277
+  Related: rhbz#1383718
+- Use initialization controller for spoke initialization (mkolman)
+  Related: rhbz#1380224
+- Add module initialization controller (mkolman)
+  Resolves: rhbz#1380224
+- Add the synchronized decorator (mkolman)
+  Related: rhbz#1380224
+- Add a signal/slot implementation (mkolman)
+  Related: rhbz#1380224
+
+* Mon Feb 20 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.98-1
+- Lock empty root password during kickstart installation (mkolman)
+  Resolves: rhbz#1383656
+- Enable multiple inst.stage2 urls (vponcova)
+  Resolves: rhbz#1391724
+- Enable multiple inst.ks urls (vponcova)
+  Resolves: rhbz#1391724
+- tui: AutoPartSpoke should not be discovered by a hub (vponcova)
+  Related: rhbz#1380767
+- Enable to define the autopart type in an install class (vponcova)
+  Resolves: rhbz#1380767
+- Always set the default partitioning (vponcova)
+  Resolves: rhbz#1380767
+
+* Mon Feb 13 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.97-1
+- Add inst.waitfornet option (rvykydal)
+  Resolves: rhbz#1315160
+- Add support for IPoIB in tui (rvykydal)
+  Resolves: rhbz#1366935
+
+* Tue Feb 07 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.96-1
+- Add unit test for RepoMDMetaHash object (jkonecny)
+  Related: rhbz#1373449
+- Make the comments in payload and yumpayload consistent (jkonecny)
+  Related: rhbz#1373449
+- Fix Anaconda forces payload restart when network (not)change (jkonecny)
+  Resolves: rhbz#1358778
+  Resolves: rhbz#1373449
+- network: index team slave connection names starting with 1 (rvykydal)
+  Resolves: rhbz#1401403
+- network: fix --noipv4 via %%pre (rvykydal)
+  Resolves: rhbz#1418289
+
+* Thu Feb 02 2017 Radek Vykydal <rvykydal@redhat.com> - 21.48.22.95-1
+- Close connections to the yum database (vponcova)
+  Resolves: rhbz#1362427
+- network: fix --activate for bridge slaves configured via %%pre ks (rvykydal)
+  Resolves: rhbz#1416655
+- network: activate bridge for first network command in ks via %%pre (rvykydal)
+  Resolves: rhbz#1416655
+- network: unify slave connection names for ks %%pre with ks and gui (rvykydal)
+  Resolves: rhbz#1416655
+- network: respect --activate value for bridge from kickstart (rvykydal)
+  Resolves: rhbz#1416687
+
+* Mon Jan 30 2017  Radek Vykydal <rvykydal@redhat.com> - 21.48.22.94-1
+- network: bind slave connections to DEVICE, not HWADDR (rvykydal)
+  Related: rhbz#1373360
+- Catch race-condition error reading from in-memory connection being removed
+  (rvykydal)
+  Related: rhbz#1373360
+- Allow setting up bridge for fetching isntaller image from kickstart
+  (rvykydal)
+  Resolves: rhbz#1373360
+
+* Mon Sep 26 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.93-1
+- Accept any non-empty password in non-strict mode (mkolman)
+  Resolves: rhbz#1379323
+- Disable the potfile check on the password quality tests (mkolman)
+  Related: rhbz#1365112
+  Related: rhbz#1365032
+- Fix two trivial typos in the password checking code (mkolman)
+  Related: rhbz#1365112
+  Related: rhbz#1365032
+- Tweak lambda use in Dracut test (jkonecny)
+  Related: rhbz#1101653
+- Add Dracut test for reloading mod dependencies (jkonecny)
+  Related: rhbz#1101653
+
+* Tue Sep 20 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.92-1
+- Check /var/tmp directory before creating it (rvykydal)
+  Resolves: rhbz#1377761
+
+* Thu Sep 15 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.91-1
+- Fix password length in the password policy (mkolman)
+  Related: rhbz#1365112
+  Related: rhbz#1365032
+- network: avoid registering GTypes from multiple threads (lkundrak)
+  Resolves: rhbz#1366271
+- Fix traceback when payload have None as url (jkonecny)
+  Resolves: rhbz#1371494
+- Add new Dracut test and fix another ones (jkonecny)
+  Related: rhbz#1101653
+- Fix bug when we add set to list (jkonecny)
+  Related: rhbz#1101653
+- Add new helper script files to build system (jkonecny)
+  Related: rhbz#1101653
+- Add new helper scripts to the README-dd documentation (jkonecny)
+  Related: rhbz#1101653
+- Fix driver unload is disabling network settings (jkonecny)
+  Related: rhbz#1101653
+
+* Mon Sep 12 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.90-1
+- rhv: Adding rhv for installclasses (dougsland)
+  Resolves: rhbz#1337595
+
+* Mon Sep 12 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.89-1
+- Default policy should not allow empty passwords (mkolman)
+  Related: rhbz#1365112
+  Related: rhbz#1365032
+- Add unit tests for password quality checking (mkolman)
+  Related: rhbz#1365112
+  Related: rhbz#1365032
+- Fix password quality checking (mkolman)
+  Resolves: rhbz#1365112
+  Resolves: rhbz#1365032
+- dud: fix multiple inst.dd=http:// instances stalling in dracut (rvykydal)
+  Related: rhbz#1268792
+
+* Thu Sep 08 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.88-1
+- Revert "Show network spoke in the TUI reconfig mode (mkolman)"
+  Resolves: rhbz#1302165
+- Improved driver disk copying (mkolman)
+  Related: rhbz#1269915
+- network: adapt to ibft plugin being enabled by default in NM (rvykydal)
+  Resolves: rhbz#1371188
+
+* Mon Sep 05 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.87-1
+- Drop T from cp command flags when copying driver disk RPMs (mkolman)
+  Resolves: rhbz#1269915
+- network: set onboot correctly for vlan on bond device in ks (rvykydal)
+  Related: rhbz#1234849
+- network: don't show ibft configured devices in UI (rvykydal)
+  Resolves: rhbz#1309661
+- Translate press-c-to-continue correctly in TUI (mkolman)
+  Resolves: rhbz#1364539
+- network: don't set empty team slave config for NM (rvykydal)
+  Related: rhbz#1254929
+
+* Thu Aug 25 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.86-1
+- network: don't stumble upon new Device.Statistics NM dbus iface (rvykydal)
+  Resolves: rhbz#1370099
+
+* Wed Aug 24 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.85-1
+- Check before removing repo specific caches (bcl)
+  Resolves: rhbz#1369698
+
+* Tue Aug 23 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.84-1
+- Ensure LDL DASDs formatted in text ks. (sbueno+anaconda)
+  Resolves: rhbz#1259437
+- Run cache hack after moving cache to mounted storage (bcl)
+  Resolves: rhbz#1287438
+- Fix reset payload only on network change (jkonecny)
+  Resolves: rhbz#1364367
+- Disable strict password quality checking for partial kickstart installations
+  (mkolman)
+  Related: rhbz#1360263
+- Fix anaconda-pre.service wasn't properly installed (jkonecny)
+  Related: rhbz#1255659
+
+* Thu Aug 11 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.83-1
+- Fix PropertyNotFoundError PermHwAddress (jkonecny)
+  Resolves: rhbz#1364977
+- Fix screenshot taking logic (mkolman)
+  Resolves: rhbz#1327456
+- network: don't require gateway for static ipv4 config in TUI (rvykydal)
+  Resolves: rhbz#1365532
+
+* Tue Aug 09 2016 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22.82-1
+- Fix needsNetwork() to test only enabled repositories (jkonecny)
+  Resolves: rhbz#1361213
+  Related: rhbz#1358788
+- Make sure unformatted DASDs are dasdfmted in ks. (sbueno+anaconda)
+  Resolves: rhbz#1359865
+- Fix architecutre selection for help content (mkolman)
+  Related: rhbz#1260880
+- Fix needsNetwork testing only additional repositories (jkonecny)
+  Related: rhbz#1358788
+- Fix retry to download local treeinfo file (jkonecny)
+  Related: rhbz#1270354
+- Rename function for better consistency (rvykydal)
+  Related: rhbz#1259284
+- Update error message for consistency (rvykydal)
+  Related: rhbz#1259284
+- Add more specific username check messages also to gui (rvykydal)
+  Related: rhbz#1259284
+  Resolves: rhbz#1360334
+- Fix restart payload only when repo needs network (jkonecny)
+  Resolves: rhbz#1358788
+
+* Wed Jul 27 2016  <> - 21.48.22.81-1
+- network: don't activate bond/team devices regardless of --activate (rvykydal)
+  Resolves: rhbz#1358795
+- iscsi: fix getting iscsi target iface of bound target (rvykydal)
+  Resolves: rhbz#1359739
+- Clarify a nosave related log message (mkolman)
+  Related: rhbz#1285519
+- network: fix ksdata generating for for non-active virtual devices (rvykydal)
+  Related: rhbz#1321288
+- network: update kickstart data also with bond bridge slaves (rvykydal)
+  Related: rhbz#1321288
+- network: add support for bridge bond slaves (rvykydal)
+  Resolves: rhbz#1321288
+- Fix bootDrive driveorder fallback (jkonecny)
+  Related: rhbz#1355795
+- Fix bootloader when re-using existing /boot part (jkonecny)
+  Related: rhbz#1355795
+- fix style guide test false positive on username variable (rvykydal)
+  Related: rhbz#1350375
+- Store logs before anaconda starts (japokorn)
+  Resolves: rhbz#1255659
+- DD can now replace existing drivers (japokorn)
+  Related: rhbz#1101653
+- tui: use functions instead of fake REs for checking values (rvykydal)
+  Related: rhbz#1350375
+- tui: get proper index of entry we are handling in input (rvykydal)
+  Related: rhbz#1331054
+- tui: fix user name validity checking (rvykydal)
+  Related: rhbz#1259284
+  Resolves: rhbz#1350375
+- Change bootloader boot drive fallback (jkonecny)
+  Resolves: rhbz#1355795
+- Make it possible to disable sshd service from running. (sbueno+anaconda)
+  Resolves: rhbz#1262707
+- Attempt to unload modules updated by a driver disk (dshea)
+  Resolves: rhbz#1101653
+- Fix the processing of device nodes as driver disks (dshea)
+  Related: rhbz#1269915
+
+* Fri Jul 08 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.80-1
+- Allow kickstart users to ignore the free space error (dshea)
+  Resolves: rhbz#1287308
+- Fix dhcpclass to work both via kickstart and the boot cmdline. (clumens)
+  Resolves: rhbz#1293051
+- Add support for device specification variants (mkolman)
+  Resolves: rhbz#1200833
+- Add NTP server configuration to the TUI (mkolman)
+  Resolves: rhbz#1269399
+- Move the NTP server checking constants to constants.py (mkolman)
+  Related: rhbz#1269399
+- Use a constant for the NTP check thread name prefix (mkolman)
+  Related: rhbz#1269399
+
+* Fri Jun 24 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.79-1
+- Fix adding new VG in Custom spoke can't be applied (jkonecny)
+  Resolves: rhbz#1263715
+- Fix pylint errors in Timezone. (dshea)
+  Related: rhbz#1312135
+- hostname: don't set installer env hostname to localhost.localdomain
+  (rvykydal)
+  Related: rhbz#1290858
+- Add the nosave option to the boot option docs file (mkolman)
+  Related: rhbz#1285519
+
+* Fri Jun 17 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.78-1
+- Use the RHEL 7 timezone kickstart command version (mkolman)
+  Resolves: rhbz#1312135
+- Use the signal handlers to set initial widget sensitivies (dshea)
+  Resolves: rhbz#1259742
+- Fix the name sensitivity in the custom spoke. (dshea)
+  Resolves: rhbz#1316269
+- Require network for network-based driver disks (dshea)
+  Resolves: rhbz#1261024
+
+* Fri Jun 10 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.77-1
+- Add wordwrap to text mode and use it by default (rvykydal)
+  Resolves: rhbz#1267881
+- Display storage errors that cause no disks to be selected (bcl)
+  Related: rhbz#1340240
+- Overwrite network files when using ks liveimg (bcl)
+  Resolves: rhbz#1342639
+
+* Wed Jun 08 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.76-1
+- Fix a covscan warning about fetch-driver-net (bcl)
+  Related: rhbz#1269915
+- network: handle also ifcfg files of not activated virtual devices (rvykydal)
+  Resolves: rhbz#1313173
+- network: check onboot value in ksdata, not NM connections (rvykydal)
+  Related: rhbz#1341636
+  Resolves: rhbz#1313173
+- network: do not activate device on kickstart --onboot="yes" (rvykydal)
+  Resolves: rhbz#1341636
+- Use the LUKS device for encrypted swap on RAID (dshea)
+  Related: rhbz#1302747
+- Use the LUKS device for swap in fstab (vpodzime)
+  Resolves: rhbz#1302747
+- Keep the subdir in driver disk update paths (dshea)
+  Resolves: rhbz#1296306
+- Warn about broken keyboard layout switching in VNC (jkonecny)
+  Resolves: rhbz#1274228
+- Make the anaconda-generator exit early outside of the installation
+  environment (mkolman)
+  Resolves: rhbz#1289179
+
+* Fri Jun 03 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.75-1
+- Add a button to refresh the disk list. (dlehman)
+  Resolves: rhbz#1191305
+- Fix some residual issues of dasdfmt in text-mode. (sbueno+anaconda)
+  Resolves: rhbz#1259437
+- Only try to restart payload in the Anaconda environment (mkolman)
+  Related: rhbz#1270354
+- Make current runtime environment identifiers available via flags (mkolman)
+  Related: rhbz#1270354
+- network tui: do not activate device when setting its onboot value (rvykydal)
+  Resolves: rhbz#1261864
+- network tui: edit persistent configuration, not active connection (rvykydal)
+  Related: rhbz#1261864
+- network: add support for --no-activate kickstart opton (rvykydal)
+  Resolves: rhbz#1277975
+- More descriptive message on invalid username (kvalek)
+  Resolves: rhbz#1259284
+- Don't mark an empty string for translation. (clumens)
+  Related: rhbz#1255094
+- Update the disk summary on Ctrl-A (dshea)
+  Resolves: rhbz#1264958
+- Added PROGRESS_REPORT for retry messages (kvalek)
+  Resolves: rhbz#1255094
+- Handle unsupported disklabels. (dlehman)
+  Related: rhbz#1266199
+  Related: rhbz#1294081
+- network: fix filtering of libvirt devices (check for None values) (rvykydal)
+  Related: rhbz#1298444
+- NFS DDs installation now works correctly (japokorn)
+  Resolves: rhbz#1269915
+
+* Fri May 27 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.74-1
+- Print an error when the kickstart file is missing (bcl)
+  Resolves: rhbz#1297380
+- Adapt the pwpolicy defaults to the old behavior (vpodzime)
+  Related: rhbz#1240303
+- Ignore addon and anaconda sections in handle-sshpw (bcl)
+  Related: rhbz#1240303
+- Ignore %%anaconda section in parse-kickstart (bcl)
+  Related: rhbz#1240303
+- Add documentation on %%anaconda kickstart command (bcl)
+  Related: rhbz#1240303
+- TUI pwpolicy setup was supposed to be in __init__ not refresh (bcl)
+  Related: rhbz#1240303
+- Fix pylint/translation issues from the pwpolicy patches. (clumens)
+  Related: rhbz#1240303
+- Implement %%anaconda kickstart section for pwpolicy (bcl)
+  Resolves: rhbz#1240303
+- Add pwpolicy support to TUI interface (bcl)
+  Related: rhbz#1240303
+- Add pwpolicy for the LUKS passphrase dialog. (bcl)
+  Related: rhbz#1240303
+- Add pwpolicy for the user spoke. (bcl)
+  Related: rhbz#1240303
+- Use pwpolicy for the root password spoke. (bcl)
+  Related: rhbz#1240303
+- hostname: add tooltip to Apply button (rvykydal)
+  Related: rhbz#1290858
+- hostname: fix accelerator collision (rvykydal)
+  Related: rhbz#1290858
+- hostname: don't set hostname in initrafms of target system (rvykydal)
+  Related: rhbz#1290858
+- hostname: set current hostname from target system hostname on demand
+  (rvykydal)
+  Related: rhbz#1290858
+- hostname: suggest current hostname for storage containers (rvykydal)
+  Related: rhbz#1290858
+- hostname: don't set target system static hostname to current hostname
+  (rvykydal)
+  Resolves: rhbz#1290858
+
+* Wed May 25 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.73-1
+- network: don't crash on devices with zero MAC address (rvykydal)
+  Resolves: rhbz#1334632
+- network: fix regression in network tui device configuration (rvykydal)
+  Resolves: rhbz#1338620
+- Fix TUI ErrorDialog processing (bcl)
+  Resolves: rhbz#1337427
+- Fix a pylint error in the source switch handler mixin (mkolman)
+  Related: rhbz#1275771
+- Don't crash when selecting the same hdd ISO again (mkolman)
+  Resolves: rhbz#1275771
+- Protect extended partition when ISO file is on logical partition (vtrefny)
+  Resolves: rhbz#1255237
+- Fix error handling for s390 bootloader errors (sbueno+anaconda)
+  Resolves: rhbz#1260934
+- Move yum.cache to disk after partitioning (bcl)
+  Resolves: rhbz#1287438
+
+* Fri May 13 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.72-1
+- Lower required squashfs ram to 350M (bcl)
+  Resolves: rhbz#1333113
+- Add epoch for anaconda-user-help & bump version (mkolman)
+  Related: rhbz#1275285
+- Specify string format arguments as logging function parameters (mkolman)
+  Related: rhbz#1235726
+
+* Wed May 11 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.71-1
+- Do not override StorageChecker.errors in StorageSpoke (vtrefny)
+  Resolves: rhbz#1269195
+- Add single language mode (mkolman)
+  Resolves: rhbz#1235726
+- Move default X keyboard setting out of the Welcome spoke (mkolman)
+  Related: rhbz#1235726
+- bootloader: Use shim on Aarch64. (pjones)
+  Resolves: rhbz#1256942
+- Fix bad indentation (rvykydal)
+  Related: rhbz#1265593
+- network: don't show libvirt virtual devices (rvykydal)
+  Related: rhbz#1298444
+- network: don't crash when adding device without connection to list (rvykydal)
+  Related: rhbz#1265593
+- Use a different ipmi command to log events. (clumens)
+  Resolves: rhbz#1268195
+- Add missing glib schema dependencies (dshea)
+  Related: rhbz#1324889
+- Compile glib schema overrides with --strict. (dshea)
+  Related: rhbz#1324889
+
+* Fri May 06 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.70-1
+- Don't join two absolute paths (mkolman)
+  Related: rhbz#1249598
+- Switch to the new Initial Setup unit name (mkolman)
+  Related: rhbz#1249598
+- Don't crash when taking a screenshot on the hub (mkolman)
+  Resolves: rhbz#1327456
+- network: validate netmask in tui (rvykydal)
+  Resolves: rhbz#1331054
+
+* Fri Apr 29 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.69-1
+- Check minimal memory requirements properly (jstodola)
+  Resolves: rhbz#1267673
+- Check that cache PVs (if any) are in the VG the LV belongs to (vpodzime)
+  Resolves: rhbz#1263258
+- Move settings_changed from NCB to Network Spoke (jkonecny)
+  Related: rhbz#1270354
+- Changes in network state revalidate sources rhbz#1270354 (riehecky)
+  Resolves: rhbz#1270354
+
+* Wed Apr 27 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.68-1
+- Update storage snapshot after running dasdfmt. (sbueno+anaconda)
+  Resolves: rhbz#1266151
+- Add access to the payload from addons (jkonecny)
+  Resolves: rhbz#1288636
+- Update the on-disk snapshot of storage when adv. disks are added (vpodzime)
+  Resolves: rhbz#1267944
+
+* Thu Apr 21 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.67-1
+- Combine formatting of LDL and unformatted DASDs. (sbueno+anaconda)
+  Resolves: rhbz#1316088
+- Move metacity settings into anaconda. (dshea)
+  Resolves: rhbz#1324889
+
+* Fri Apr 15 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.66-1
+- Check software selection in tui kickstart (bcl)
+  Resolves: rhbz#1320436
+- Run the checkSoftwareSelection even when no environment is selected (bcl)
+  Resolves: rhbz#1320436
+- Stop kickstart when space check fails (bcl)
+  Resolves: rhbz#1320436
+- Fix problem of DASDs not being formatted in text ks. (sbueno+anaconda)
+  Resolves: rhbz#1259437
+
+* Thu Apr 14 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.65-1
+- Move the pykickstart version test into a different subdirectory. (clumens)
+  Resolves: rhbz#1263367
+- Show network spoke in the TUI reconfig mode (mkolman)
+  Resolves: rhbz#1302165
+- iscsi: don't generate kickstart iscsi commands for offload devices (rvykydal)
+  Related: rhbz#1252879
+- iscsi: allow installing bootloader on offload iscsi disks (qla4xxx)
+  (rvykydal)
+  Resolves: rhbz#1325134
+- Fix iSCSI kickstart options aren't generated (jkonecny)
+  Resolves: rhbz#1252879
+- Fix adding offload iSCSI devices (vtrefny)
+  Resolves: rhbz#1255280
+
+* Fri Apr 08 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.64-1
+- Exclude software raid block devices from list-harddrives output (mkolman)
+  Resolves: rhbz#1311512
+
+* Tue Apr 05 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.63-1
+- network: don't set 803-3-ethernet.name setting (rvykydal)
+  Resolves: rhbz#1323589
+- Add retry when downloading .treeinfo (jkonecny)
+  Resolves: rhbz#1292613
+- Make it possible to skip saving of kickstarts and logs (mkolman)
+  Resolves: rhbz#1285519
+- Add a function for empty file creation (mkolman)
+  Related: rhbz#1285519
+- Run actions for argparse arguments (mkolman)
+  Related: rhbz#1285519
+
+* Fri Apr 01 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.62-1
+- Reset invalid disk selection before proceeding. (dlehman)
+  Resolves: rhbz#1265330
+- Fix bad sensitivity on boxes in source spoke (jkonecny)
+  Resolves: rhbz#1262833
+- Fix only one address is shown in anaconda (jkonecny)
+  Resolves: rhbz#1264400
+- network: copy static routes configured in installer to system (rvykydal)
+  Resolves: rhbz#1255801
+- network: fix kickstart --noipv4 option in %%pre section (rvykydal)
+  Related: rhbz#1291333
+- network: fix kickstart --noipv4 option (rvykydal)
+  Resolves: rhbz#1291333
+
+* Thu Mar 24 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.61-1
+- Fix crash when new device appear in Welcome screen (jkonecny)
+  Resolves: rhbz#1216926
+- Add reason when logging invalid repository (jkonecny)
+  Resolves: rhbz#1240379
+- network: fix vlan over bond in kickstart (rvykydal)
+  Resolves: rhbz#1234849
+
+* Fri Mar 18 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.60-1
+- Remove unused import in storage_utils (sbueno+anaconda)
+  Related: rhbz#1268025
+- Remove the last instance of singlePV (sbueno+anaconda)
+  Resolves: rhbz#1268025
+- Remove duplicate informational message from rescue mode. (sbueno+anaconda)
+  Resolves: rhbz#1249082
+- If doing dirinstall on s390x, don't prompt to login via ssh to begin install.
+  (sbueno+anaconda)
+  Resolves: rhbz#1269207
+- Fix a problem introduced by a cherry-pick (dshea)
+  Resolves: rhbz#1317558
+  Related: rhbz#1274855
+- Fix duplicate network settings in dracut (jkonecny)
+  Related: rhbz#1293539
+- Fix create device with bad name when parsing KS (jkonecny)
+  Resolves: rhbz#1293539
+- network: don't traceback when trying to turn off misconfigured team
+  connection (rvykydal)
+  Resolves: rhbz#1263971
+- network: don't set NM_CONTROLLED=no for root on SAN (rvykydal)
+  Resolves: rhbz#1273323
+- Use a lock for repoStore access (bcl)
+  Resolves: rhbz#1315414
+- network: use NAME to find ifcfg on s390 with net.ifnames=0 (rvykydal)
+  Resolves: rhbz#1249750
+- fix multiple inst.dd=<path> args (rhbz#1268792) (wwoods)
+  Resolves: rhbz#1268792
+- network: fix configuring team in kickstart pre (rvykydal)
+  Resolves: rhbz#1254929
+- network: Don't set --device link default for hostname only network cmd
+  (rvykydal)
+  Resolves: rhbz#1272274
+- Make the No Space dialog look less terrible. (clumens)
+  Resolves: rhbz#1264328
+
+* Thu Mar 10 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.59-1
+- Fix a DBus InvalidProperty handling (jkonecny)
+  Resolves: rhbz#1315843
+- Fix a bad usage of execWithRedirect (dshea)
+  Resolves: rhbz#1270319
+- Use an icon that exists in Adwaita for the dasd confirmation (dshea)
+  Related: rhbz#1259016
+- Translate the help button. (dshea)
+  Resolves: rhbz#1314451
+- Translate the required space labes in resize.py (dshea)
+  Resolves: rhbz#1314451
+- Increase yum debug logging level from 3 to 6 (jkonecny)
+  Resolves: rhbz#1254368
+
+* Fri Mar 04 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.58-1
+- Add device id to dasdfmt screen. (sbueno+anaconda)
+  Resolves: rhbz#1269174
+- Unify displayed columns in custom spoke dialogs. (sbueno+anaconda)
+  Resolves: rhbz#1289577
+- Show some confirmation to users if adding a DASD was successful.
+  (sbueno+anaconda)
+  Resolves: rhbz#1259016
+- Fix dasdfmt during graphical kickstart. (sbueno+anaconda)
+  Resolves: rhbz#1269863
+- Improve password salt creation (bcl)
+  Resolves: rhbz#1229474
+- Display a fatal error if unable to encrypt a password. (dshea)
+  Related: rhbz#1229474
+- NTP should have better behavior (jkonecny)
+  Resolves: rhbz#1260725
+
+* Tue Mar 01 2016 Brian C. Lane <bcl@redhat.com> - 21.48.22.57-1
+- Make sure pluginconf.d exists (bcl)
+  Resolves: rhbz#1271766
+- Check to see if DD repo is already in addOn list (bcl)
+  Resolves: rhbz#1268357
+- Add --sshkey to kickstart sshpw command (bcl)
+  Resolves: rhbz#1240410
+- Add sshkey kickstart command (bcl)
+  Resolves: rhbz#1311755
+- Fix nfs source crash when options change (bcl)
+  Resolves: rhbz#1264071
+- Fix pre-install script execution (bcl)
+  Related: rhbz#1311184
+- Add kickstart %%pre-install section support (bcl)
+  Resolves: rhbz#1311184
+- Fix a race between a window continuing and the next starting (dshea)
+  Resolves: rhbz#1255858
+- Don't process continue-clicked events for windows that aren't shown.
+  (clumens)
+  Related: rhbz#1255858
+- Generate resources.h before compiling widgets-common.c (dshea)
+  Related: rhbz#1243929
+- Use CSS to style the internal widgets. (dshea)
+  Resolves: rhbz#1243929
+- Lookup IPv6 address without brackets (bcl)
+  Resolves: rhbz#1267872
+- Copy rhsm logs to target system (bcl)
+  Resolves: rhbz#1130268
+- Add specific error string to TUI user dialog (bcl)
+  Resolves: rhbz#1248421
+- Make EditTUIDialog error generic (bcl)
+  Related: rhbz#1248421
+- Don't clear the _currentIsoFile if another iso was selected (bcl)
+  Related: rhbz#1274855
+- Fix problems with the hdiso method (clumens)
+  Resolves: rhbz#1274855
+- Always quote values in ifcfg- files (bcl)
+  Resolves: rhbz#1279131
+- Include original kickstart in /root/original-ks.cfg (bcl)
+  Resolves: rhbz#1227939
+- Manually set clock shifts on UI idle (rmarshall)
+  Resolves: rhbz#1251044
+- Import iutil earlier so we can use ipmi_report from check_for_ssh. (clumens)
+  Resolves: rhbz#1267658
+- In tui cmdline mode skip showError and log message (bcl)
+  Resolves: rhbz#1280371
+- Fix a typo in the hardware error message. (clumens)
+  Resolves: rhbz#1284165
+- Make reclaim work with small screens and big labels (dshea)
+  Resolves: rhbz#1262778
+- Use GtkResponseType values in the iso chooser dialog (dshea)
+  Resolves: rhbz#1265060
+
+* Thu Oct 29 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.56-1
+- Ignore interfaces with invalid VLAN IDs. (dshea)
+  Resolves: rhbz#1274893
+
+* Fri Oct 09 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.55-1
+- network: create ifcfg files in tui if needed (rvykydal)
+  Resolves: rhbz#1268155
+- Do not limit ONBOOT default setting to url and nfs installation methods
+  (rvykydal)
+  Resolves: rhbz#1269264
+
+* Wed Oct 07 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.54-1
+- ibft: fix setting dracut boot args for static ibft nic configuration
+  (rvykydal)
+  Resolves: rhbz#1267526
+- dracut: accept inst.dd=[file:]/dd.iso (wwoods)
+  Resolves: rhbz#1268792
+- Fix issues with the date&time not being updated on timezone changes
+  (vpodzime)
+  Resolves: rhbz#1267450
+
+* Tue Sep 29 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.53-1
+- Use otps.display_mode during early startup (mkolman)
+  Resolves: rhbz#1267140
+
+* Mon Sep 28 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.52-1
+- Mount stage2 cdrom after running driver-updates (bcl)
+  Resolves: rhbz#1266478
+
+* Fri Sep 25 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.51-1
+- Pull in new translations
+  Related: rhbz#1047457
+
+* Wed Sep 23 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.50-1
+- Fix a pylint problem with the ostree patch. (clumens)
+  Related: rhbz#1253527
+- Update storage config after running dasdfmt. (sbueno+anaconda)
+  Resolves: rhbz#1264411
+- rpmostreepayload: Forcibly unmount everything in sysroot (walters)
+  Resolves: rhbz#1253527
+
+* Tue Sep 22 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.49-1
+- Use correct installclass for RHEL Atomic Host (rvykydal)
+  Resolves: rhbz#1265213
+- Catch blkid failure in driver-updates (bcl)
+  Resolves: rhbz#1262963
+- Maximize anaconda instead of running fullscreen (dshea)
+  Related: rhbz#1231856
+- Do not display markup in showDetailedError. (dshea)
+  Resolves: rhbz#1263963
+
+* Fri Sep 18 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.48-1
+- Skip setting up env and groups in software spoke for ks (bcl)
+  Resolves: rhbz#1263493
+
+* Tue Sep 15 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.47-1
+- Show correct status for no %%packages with selected environment (mkolman)
+  Related: rhbz#1261393
+- Keep environment selection when reentering the software spoke (mkolman)
+  Resolves: rhbz#1261393
+- Remove an unused import. (clumens)
+  Related: rhbz#1253672
+- Only show the user spoke if no users are specified in kickstart (mkolman)
+  Resolves: rhbz#1253672
+
+* Fri Sep 11 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.46-1
+- Handle driver rpms retrieved via network (bcl)
+  Resolves: rhbz#1257916
+- Use getDiskDescription for disk description strings (bcl)
+  Resolves: rhbz#1247861
+- Add getDiskDescription helper function (bcl)
+  Related: rhbz#1247861
+- Make sure anaconda reads in ks file from OEMDRV device. (sbueno+anaconda)
+  Resolves: rhbz#1057271
+- Try to deal with expected errors from devicetree.populate (vpodzime)
+  Resolves: rhbz#1257648
+
+* Thu Sep 10 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.45-1
+- Fix 'cat: /tmp/dd_disk: No such file or directory' (jkonecny)
+  Resolves: rhbz#1251394
+
+* Wed Sep 09 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.44-1
+- Fix another bash syntax problem in kickstart-genrules.sh (sbueno+anaconda)
+  Resolves: rhbz#1057271
+- Install all required packages. (dshea)
+  Resolves: rhbz#1260624
+
+* Tue Sep 08 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.43-1
+- Quit in askvnc should not reboot image and dirinstall (bcl)
+  Resolves: rhbz#1255069
+- network: assume --device=link as default also for ks on hd (rvykydal)
+  Related: rhbz#1085310
+- Don't try to concatenate a list with a string (mkolman)
+  Related: rhbz#1252444
+- Always show the Network spoke in Initial Setup (mkolman)
+  Resolves: rhbz#1259801
+- Fix hiding curl 404 errors outside debug mode (vtrefny)
+  Resolves: rhbz#1182776
+
+* Thu Sep 03 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.42-1
+- Remove a call to execute in storage thread to avoid a threading disaster.
+  (sbueno+anaconda)
+  Resolves: rhbz#1245268
+- Remove a rogue reference to self.back_clicked. (clumens)
+  Related: rhbz#1254548
+- Fix a typo in service enablement in kickstart.py. (clumens)
+  Related: rhbz#1252444
+- Verify Initial Setup services are present before turning them ON/OFF
+  (mkolman)
+  Resolves: rhbz#1252444
+- Set both .format's and .originalFormat's passphrase on unlock (vpodzime)
+  Resolves: rhbz#1255679
+- Make the Encrypt checkbox insensitive for encrypted non-BTRFS devices
+  (vpodzime)
+  Related: rhbz#1255679
+- Make the default screen height yet one line shorter (vpodzime)
+  Resolves: rhbz#1184378
+- Don't crash if the Japanese PC-98 keyboard is selected (mkolman)
+  Resolves: rhbz#1190589
+
+* Wed Sep 02 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.41-1
+- Enforce sane disk selections. (dlehman)
+  Resolves: rhbz#1254548
+
+* Tue Sep 01 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.40-1
+- Skip OEMDRV if interactive DD is requested (bcl)
+  Related: rhbz#1254270
+- Copy updated driver ko to correct directory (bcl)
+  Related: rhbz#1254270
+- addRepo takes a repo object not a string (bcl)
+  Related: rhbz#1254270
+- Drivers are simply under /run/install/DD-x/ (bcl)
+  Related: rhbz#1254270
+- Fix a bash error in kickstart-genrules.sh (sbueno+anaconda)
+  Resolves: rhbz#1057271
+- Run nm-connection-editor with the --keep-above flag (mkolman)
+  Resolves: rhbz#1231856
+
+* Mon Aug 31 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.39-1
+- Disallow /boot on lvm until grub2 fully supports it. (dlehman)
+  Resolves: rhbz#1252466
+- Force an encoding of utf-8 on liveinst installs (dshea)
+  Resolves: rhbz#1257060
+- Ignore zram block devices in the list-harddrives script output (mkolman)
+  Resolves: rhbz#1247886
+  Resolves: rhbz#1253184
+
+* Fri Aug 28 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.38-1
+- Run AnacondaExceptionHandler in cmdline mode (bcl)
+  Resolves: rhbz#1256385
+- anaconda.target: Wants systemd-logind.service (awilliam)
+  Resolves: rhbz#1257311
+
+* Wed Aug 26 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.37-1
+- Process excludedGroupList after packages and groups. (clumens)
+  Resolves: rhbz#1249036
+- Fix the help button mnemonic display on spokes (dshea)
+  Resolves: rhbz#1250918
+
+* Mon Aug 24 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.36-1
+- Don't write nfs repos to the target system (bcl)
+  Resolves: rhbz#1246212
+- Fix nfs mountpoint removal (bcl)
+  Related: rhbz#1246212
+- Fix the handling of nfs:// URLs. (dshea)
+  Related: rhbz#1246212
+- Start hubs with the buttons insensitive. (dshea)
+  Resolves: rhbz#1255752
+- Move locale environment logic into localization.py (dshea)
+  Related: rhbz#1198642
+
+* Mon Aug 17 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.35-1
+- Skip source url checks when network is off (bcl)
+  Resolves: rhbz#1251130
+- Don't set net.device to link if there is no ksdevice (bcl)
+  Resolves: rhbz#1085310
+- Reading carrier while link is down raises IOError (bcl)
+  Related: rhbz#1085310
+- Make sure username entered in TUI if create a user chosen. (sbueno+anaconda)
+  Resolves: rhbz#1249660
+
+* Sun Aug 16 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.34-1
+- Network protocols don't list Closest mirror first (vpodzime)
+  Resolves: rhbz#1253196
+- Make sure proper installclass selected for RHEL installs. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix traceback on tz spoke in text mode (sbueno+anaconda)
+  Resolves: rhbz#1252025
 
-* Wed Jun 3 2015 Karanbir Singh <kbsingh@centos.org> - 19.31.79-28.atomic.centos
-- Add CentOS branding for installclass
+* Thu Aug 13 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.33-1
+- Re-enable addons as additional repositories. (clumens)
+  Resolves: rhbz#1248323
 
-* Wed Jan 21 2015 Colin Walters <walters@redhat.com> - 19.31.79-28.atomic
-- Add crashkernel=auto by default
+* Wed Aug 12 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.32-1
+- product.img buildstamp should override distribution buildstamp (bcl)
+  Resolves: rhbz#1240238
+- Tell libreport if it is a final release or not (vpodzime)
+  Resolves: rhbz#1252036
+- On incomplete ks, don't automatically proceed with install. (sbueno+anaconda)
+  Resolves: rhbz#1251978
+- Add the "make ci" target. (clumens)
+  Related: rhbz#1196721
+- Tweak tmux configuration file (jkonecny)
+  Resolves: rhbz#1238799
+
+* Fri Aug 07 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.31-1
+- Only pass DASDs to is_ldl_dasd function. (sbueno+anaconda)
+  Resolves: rhbz#1248666
+
+* Wed Aug 05 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.30-1
+- Add the anaconda-user-help package as dependency (mkolman)
+  Resolves: rhbz#1247779
+
+* Tue Aug 04 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.29-1
+- Fix a line that still treated the fstype as a GtkComboBoxText (dshea)
+  Resolves: rhbz#1248885
+- Fix fastestmirror plugin check (bcl)
+  Resolves: rhbz#1249569
 
-* Mon Jan 19 2015 Radek Vykydal <rvykydal@redhat.com> - 19.31.79-27.atomic
+* Fri Jul 31 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.28-1
+- Display a EULA-related warning on progress hub at end of installation.
+  (sbueno+anaconda)
+  Resolves: rhbz#1249185
+  Resolves: rhbz#1248432
+
+* Thu Jul 30 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.27-1
+- Fix error with OEMDRV ks auto-load check. (sbueno+anaconda)
+  Related: rhbz#1057271
+
+* Wed Jul 29 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.26-1
+- Prevent incomplete translations from making the TUI unusable (mkolman)
+  Resolves: rhbz#1235617
+- Disable a Pylint false-positive (mkolman)
+  Related: rhbz#1234896
+
+* Tue Jul 28 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.25-1
+- Add support for autostep and --autoscreenshot (mkolman)
+  Resolves: rhbz#1234896
+- Really fix unexpected exits in execReadlines (dshea)
+  Related: rhbz#1188287
+- iscsi: display portal (address:port) of node in node list (rvykydal)
+  Related: rhbz#1195570
+
+* Fri Jul 24 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.24-1
+- Add parentheses around the IPV6 regex fragment. (dshea)
+  Resolves: rhbz#1246133
+- Add tests for IPv6 literals in URLs (dshea)
+  Related: rhbz#1246133
+- Do not set user home to / in advanced user dialog (bcl)
+  Resolves: rhbz#1245837
+- Fix Initial PPC PReP Boot Selector Name (rmarshall)
+  Resolves: rhbz#1172755
+
+* Thu Jul 23 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.23-1
+- Handle missing environment without traceback (bcl)
+  Resolves: rhbz#1245296
+- Disable a Pylint false-positive (mkolman)
+  Related: rhbz#1182562
+- Make sure TUI is readable for non-latin languages (mkolman)
+  Resolves: rhbz#1182562
+- Auto-load ks.cfg if OEMDRV volume available. (sbueno+anaconda)
+  Resolves: rhbz#1057271
+- dracut: minor cleanup (wwoods)
+  Related: rhbz#1168902
+- dracut: fix missing messages for inst.ks=cdrom (wwoods)
+  Related: rhbz#1168902
+- Wait forever for kickstarts on CDROM (wwoods)
+  Resolves: rhbz#1168902
+- Allow cdrom-swapping when doing "inst.ks=cdrom[:...]" (wwoods)
+  Resolves: rhbz#1168902
+- anaconda-lib.sh: add tell_user() and dev_is_cdrom() (wwoods)
+  Related: rhbz#1168902
+
+* Wed Jul 22 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.22-1
+- Fix various pylint problems caused by the new rescue mode. (clumens)
+  Related: rhbz#965985
+- network: use ibftx interface for iSCSI from iBFT in dracut (rvykydal)
+  Resolves: rhbz#1077291
+- Remove text.py from spec file (bcl)
+  Related: rhbz#965985
+
+* Mon Jul 20 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.21-1
+- Remove the last usage of newt and get rid of it as a dependency
+  (sbueno+anaconda)
+  Related: rhbz#965985
+- Enable anaconda to use the new rescue mode. (sbueno+anaconda)
+  Resolves: rhbz#965985
+- Get rid of unnecessary constants in constants_text. (sbueno+anaconda)
+  Related: rhbz#965985
+- Get rid of some unnecessary files. (sbueno+anaconda)
+  Related: rhbz#965985
+
+* Fri Jul 17 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.20-1
+- Add support for architecture suffixes in help files (mkolman)
+  Related: rhbz#1196721
+  Related: rhbz#1072033
+- network: add s390 options to default ifcfg files (rvykydal)
+  Resolves: rhbz#1074570
+
+* Wed Jul 15 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.19-1
+- Don't ask to start vnc if user specifies text mode. (sbueno+anaconda)
+  Resolves: rhbz#1241425
+  Related: rhbz#1196721
+- Fix pylint errors in the new driver disk code. (clumens)
+  Related: rhbz#1084197
+- Restore RHEL-specific stylesheet data. (dshea)
+  Related: rhbz#1196721
+
+* Fri Jul 10 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.18-1
+- Start the network before the display (dshea)
+  Resolves: rhbz#1240732
+- Bump pykickstart version required. (sbueno+anaconda)
+  Resolves: rhbz#1241413
+- Set the no network error in refresh() (dshea)
+  Resolves: rhbz#1238797
+- Show the event box immediately when setting infobar messages. (dshea)
+  Related: rhbz#1238797
+- dracut: fix boot failure waiting for finished/dd.sh (wwoods)
+  Related: rhbz#1084197
+- driver_updates: fixes from patch review (wwoods)
+  Related: rhbz#1084197
+- dd-refactor: dracut + build bits (wwoods)
+  Resolves: rhbz#1084197
+  Resolves: rhbz#1164131
+  Related: rhbz#1213546
+- parse-kickstart: just emit 'inst.dd=XXX' for driverdisk (wwoods)
+  Related: rhbz#1084197
+- parse-kickstart: pylint fixes (wwoods)
+  Related: rhbz#1084197
+- dd-refactor: new driver_updates.py + tests (wwoods)
+  Related: rhbz#1084197
+- payload: fix driverdisk repos (wwoods)
+  Related: rhbz#1084197
+- Always write NTP servers to config files (wwoods)
+  Resolves: rhbz#1197575
+- dracut: fix boot with inst.ks and no inst.{repo,stage2} (wwoods)
+  Resolves: rhbz#1238987
+
+* Thu Jul 09 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.17-1
+- Check for Gtk before importing escape_markup (bcl)
+  Related: rhbz#1236995
+- Add handling for unusable storage configurations. (dlehman)
+  Resolves: rhbz#1236995
+- Allow markup in the label/message of DetailedErrorDialog. (dlehman)
+  Related: rhbz#1236995
+- Allow passing an optional button list to showDetailedError. (dlehman)
+  Related: rhbz#1236995
+- Allow kwargs with gtk_action_wait, gtk_action_nowait decorators. (dlehman)
+  Related: rhbz#1236995
+
+* Tue Jul 07 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.16-1
+- Ellipsize the file system type combo box (dshea)
+  Resolves: rhbz#1212615
+- Shorten the mount point entry to match the capacity entry (dshea)
+  Resolves: rhbz#1212615
+- Re-save custom.glade (dshea)
+  Resolves: rhbz#1212615
+- Ellipsize comboboxes (dshea)
+  Resolves: rhbz#1212615
+- Wrap device labels earlier (dshea)
+  Resolves: rhbz#1212615
+- Change text shown to users about the need to dasdfmt. (sbueno+anaconda)
+  Related: rhbz#1170653
+- Fix a typo in the dasdfmt dialog box. (sbueno+anaconda)
+  Related: rhbz#1170653
+- Enable anaconda to use the new cdl ks option, and detect ldl dasds.
+  (sbueno+anaconda)
+  Resolves: rhbz#1170656
+  Resolves: rhbz#1170653
+- Fix GRUB2 Password Update Scope (rmarshall)
+  Related: rhbz#985962
+- Enable Custom GRUB2 Password Utility (rmarshall)
+  Related: rhbz#985962
+
+* Tue Jul 07 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.15-1
+- Explicitly try fetching netroot after network kickstart fetch (vpodzime)
+  Resolves: rhbz#1238987
+- Refresh advanced disks after disk summary dialog (bcl)
+  Resolves: rhbz#1226354
+- Show an alternative prompt if a hub contains only a single spoke (mkolman)
+  Resolves: rhbz#1199234
+- Don't crash if incorrect environment is set in kickstart (mkolman)
+  Resolves: rhbz#1234890
+- Allow /boot partition on iscsi with ibft (jkonecny)
+  Related: rhbz#1164195
+- Make sure we work with fresh data when trying to do netroot (vpodzime)
+  Related: rhbz#1082500
+- Make our manual triggering on network in dracut work (vpodzime)
+  Resolves: rhbz#1082500
+- Fix broken test by infiniband patch (jkonecny)
+  Related: rhbz#1177032
+
+* Thu Jul 02 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.14-1
+- Add RAID swaps to /etc/fstab (bcl)
+  Resolves: rhbz#1234469
+- Fix kickstart install with infiniband (jkonecny)
+  Resolves: rhbz#1177032
+- Disable Label Entry for PPC PReP Boot (rmarshall)
+  Resolves: rhbz#1172773
+- Correctly propagate --ipv6gateway to ifcfg files(mkolman)
+  Resolves: rhbz#1170845
+- Ask for encryption passphrase when not specified in ks (vtrefny)
+  Resolves: rhbz#1185466
+- Connect scroll adjustments in the right class (dshea)
+  Related: rhbz#1189899
+
+* Wed Jul 01 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.13-1
+- Cancel Container Edit Sensitizes Update (rmarshall)
+  Resolves: rhbz#1168656
+- Add support for specifying arbitrary mkfs options. (clumens)
+  Resolves: rhbz#1217110
+- Do not display curl 404 errors that can be safely ignored (vtrefny)
+  Resolves: rhbz#1182776
+- Fix the line counting when printing long widgets (vpodzime)
+  Related: rhbz#1184378
+- Improve how we set the default screen height in text mode (vpodzime)
+  Resolves: rhbz#1184378
+
+* Tue Jun 30 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.12-1
+- dd: drop unnecessary archive_read_data_skip (Will Woods)
+  Related: rhbz#1222056
+- dd_extract: -l should not extract modules+firmware (Will Woods)
+  Related: rhbz#1222056
+- dd: fix permissions on extracted files (wwoods)
+  Resolves: rhbz#1222056
+- Create and use snapshot of on-disk storage with no modifications (vpodzime)
+  Resolves: rhbz#1160862
+  Resolves: rhbz#1187644
+- Implement the class for storage snapshots (vpodzime)
+  Related: rhbz#1187644
+  Related: rhbz#1160862
+- Prevent any changes in the StorageSpoke if just going back (vpodzime)
+  Related: rhbz#1187644
+  Related: rhbz#1160862
+- fix inst.ks.sendmac for static ip=XXX (wwoods)
+  Resolves: rhbz#1190115
+
+* Fri Jun 26 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.11-1
+- network: catch another race when calling dbus methods on invalid devices
+  (rvykydal)
+  Related: rhbz#1179276
+- network: GUI, add connection even when virtual device activation failed
+  (rvykydal)
+  Resolves: rhbz#1179276
+- Remove an extra '>' in the betanag warning (vpodzime)
+  Related: rhbz#1196721
+- Do not mix two lists of fields when applying changes in text mode (vpodzime)
+  Resolves: rhbz#1231149
+
+* Thu Jun 25 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.10-1
+- Eliminate some false test results when running glade tests. (atodorov)
+  Related: rhbz#1196721
+- Fix adding 'boot=' option in FIPS mode (vtrefny)
+  Resolves: rhbz#1190146
+- Use the index in grubenv (bcl)
+  Resolves: rhbz#1209678
+- Make colon optional while adding iSCSI Initiator Name (sujithpshankar)
+  Resolves: rhbz#1177573
+- Add basic support for LVM cache creation in kickstart (vpodzime)
+  Resolves: rhbz#1120421
+- Change the betanag wording (back) to be better for RHEL (vpodzime)
+  Related: rhbz#1196721
+- Set sensitivity of the "Encrypt" checkbox together with its label (vpodzime)
+  Resolves: rhbz#1181468
+- Use Size, not int, for size (amulhern)
+  Related: rhbz#1076055
+  Related: rhbz#1196721
+- Changes for scheduling size change on an existing device (amulhern)
+  Related: rhbz#1076055
+  Related: rhbz#1196721
+- Remove too strict condition for changing size (amulhern)
+  Related: rhbz#1076055
+  Related: rhbz#1196721
+
+* Mon Jun 22 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.9-1
+- Enable Anaconda to configure NTP (jkonecny)
+  Resolves: rhbz#1085013
+- Retry package repository metadata downloads (mkolman)
+  Resolves: rhbz#1177366
+- Use UEFI VFAT ESP when kickstarting Intel Macs (jan.kundrat)
+  Resolves: rhbz#1219196
+- If using pre-existing, no size needs to be specified in ksdata (amulhern)
+  Resolves: rhbz#1169783
+  Related: rhbz#1196721
+- Use the RHEL7 versions of certain partitioning commands. (clumens)
+  Related: rhbz#1217110
+- Fix set size to partition in custom spoke (jkonecny)
+  Related: rhbz#1196721
+- Expect addons to have categories for both GUI and TUI (vpodzime)
+  Related: rhbz#1128616
+
+* Thu Jun 18 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.8-1
+- Fix nfs4 stage2 and repo handling (bcl)
+  Resolves: rhbz#1230329
+- Add support for reboot --kexec kickstart command (bcl)
+  Related: rhbz#1207747
+- Add inst.kexec and --kexec support to reboot with kexec (bcl)
+  Resolves: rhbz#1207747
+- Add setup_kexec method to prepare the system for a reboot with kexec (bcl)
+  Related: rhbz#1207747
+- Include NetworkManager-glib in anaconda-core (bcl)
+  Related: rhbz#1196721
+- Use simple_replace to edit langpacks.conf (bcl)
+  Resolves: rhbz#1165980
+- Add simple_replace config file function (bcl)
+  Related: rhbz#1165980
+- Keyboard Scroll Fails in Viewports (dshea)
+  Resolves: rhbz#1189899
+- Fix Issue with Spaces in Network IPs and Bad Input(jkonecny)
+  Resolves: rhbz#1174451
+- network: fix a typo in condition for installing teamd (rvykydal)
+  Resolves: rhbz#1199185
+- Fix IP / hostname mismatches when showing VNC server address (rvykydal)
+  Resolves: rhbz#1186726
+- Check also ipv6 default routes when looking for onboot=yes device (rvykydal)
+  Resolves: rhbz#1185280
+
+* Mon Jun 15 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.7-1
+- Update upd-kernel so that it actually works (bcl)
+  Resolves: rhbz#1166535
+- Fix passing ,nfsvers=3 to dracut (bcl)
+  Resolves: rhbz#1161820
+- Extract xattrs from tar payload (bcl)
+  Resolves: rhbz#1196021
+- rpmostreepayload: write storage config after shared var is mounted (rvykydal)
+  Resolves: rhbz#1203608
+- Do not log Xorg output to tty5 (dshea)
+  Related: rhbz#1188287
+- Fix for "Kickstart installation fails..." (jkonecny)
+  Resolves: rhbz#1197960
+
+* Wed Jun 10 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.6-1
+- Modify Proxy Label in Installation Source Spoke (rmarshall)
+  Resolves: rhbz#1168554
+- Add error checks to liveimg mount code (bcl)
+  Related: rhbz#1178703
+- If the network is disabled, also disable the network part of the source
+  spoke. (clumens)
+  Related: rhbz#1196721
+- Grubby no longer needs to be explicitly included (dmarlin)
+  Resolves: rhbz#1176705
+- Don't allow /boot on iSCSI. (sbueno+anaconda)
+  Resolves: rhbz#1164195
+- Fix building docs when running under "make distcheck". (clumens)
+  Related: rhbz#1196721
+- Fix problems discovered by the glade tests. (clumens)
+  Related: rhbz#1196721
+- Include .glade.h files in the distribution. (clumens)
+  Related: rhbz#1196721
+
+* Mon Jun 08 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.5-1
+- Actually distribute the clickable message test (dshea)
+  Related: rhbz#1125145
+- Get rid of the find button in the filter spoke. (dshea)
+  Related: rhbz#1168950
+- Rearrange filter.glade (dshea)
+  Related: rhbz#1168950
+- Fix errors in the vendor column renderers. (dshea)
+  Related: rhbz#1168950
+- Fix some minor inconsistencies in filter.glade (dshea)
+  Related: rhbz#1168950
+- Fix issues with advanced storage searching. (dshea)
+  Resolves: rhbz#1168950
+- Remove duplicate entries from search combo boxes (dshea)
+  Resolves: rhbz#1168950
+- Use named IDs for the filter type combo boxes. (dshea)
+  Related: rhbz#1168950
+- Rearrange filter.glade the way glade wants it now (dshea)
+  Related: rhbz#1168950
+- Pass the pylint test. (clumens)
+  Related: rhbz#1196721
+
+* Fri Jun 05 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.4-1
+- network: on rhel don't assume autoconnections created by NM (rvykydal)
+  Related: rhbz#1196721
+- Start vncconfig for cut/paste (hamzy)
+  Resolves: rhbz#1169991
+- Don't unconditionally set ksdata.lang.seen to True (mkolman)
+  Related: rhbz#1198642
+- Make sure LANG is always set to something (dshea)
+  Resolves: rhbz#1198642
+- Add links to clickable warning and error messages. (dshea)
+  Resolves: rhbz#1125145
+- Add a test to look for clickable messages that aren't clickable enough.
+  (dshea)
+  Related: rhbz#1125145
+- Allow markup and links in the info bar. (dshea)
+  Related: rhbz#1125145
+- Update the FCOE command to use the RHEL7 base class. (clumens)
+  Related: rhbz#1196721
+- Fix RHEL Atomic installclass test (bcl)
+  Related: rhbz#1196721
+- Use a rhel7.2 mock chroot for rc-release (bcl)
+  Related: rhbz#1196721
+- Build documentation during build instead of dist (dshea)
+  Related: rhbz#1196721
+- Clean out the mock chroot before attempting to run the rest of the test.
+  (clumens)
+  Related: rhbz#1196721
+- Put all mock results into the top-level source dir. (clumens)
+  Related: rhbz#1196721
+- Change dracut requires to the RHEL7 version. (bcl)
+  Related: rhbz#1196721
+- dnf is not supported in RHEL7 (bcl)
+  Related: rhbz#1196721
+- Use createrepo, createrepo_c isn't available in RHEL7 (bcl)
+  Related: rhbz#1196721
+- Change F21 pykickstart commands to RHEL7 (jkonecny)
+  Related: rhbz#1196721
+- Add an option to startProgram to not reset the locale (dshea)
+  Related: rhbz#1188287
+- Set $LIBUSER_CONF early (dshea)
+  Related: rhbz#1188287
+- Assume UTC if setting the system time without a timezone (dshea)
+  Related: rhbz#1188287
+- Do not set $TZ (dshea)
+  Related: rhbz#1188287
+- Beware of 0 being the same bool value as None when setting time (vpodzime)
+  Related: rhbz#1188287
+- Fix the last member of the struct_time struct (vpodzime)
+  Related: rhbz#1188287
+- Remove timestamp-based version support. (dshea)
+  Related: rhbz#1188287
+- Avoid setting $LANG and $LANGUAGE, except where we can't (dshea)
+  Resolves: rhbz#1188287
+- Add a parameter to iutil.startProgram to extend the environment (dshea)
+  Related: rhbz#1188287
+- Add a method to set environment variables for child processes (dshea)
+  Related: rhbz#1188287
+- Set $DISPLAY before threads are started. (dshea)
+  Related: rhbz#1188287
+- Handle the simple cases of environment modification. (dshea)
+  Related: rhbz#1188287
+- Always use iutil to start processes. (dshea)
+  Related: rhbz#1188287
+- Move the X startup logic to iutil (dshea)
+  Related: rhbz#1188287
+- Move process watching to iutil. (dshea)
+  Related: rhbz#1188287
+- Close file descriptors while daemonizing auditd (dshea)
+  Related: rhbz#1188287
+- Add an option to only capture stdout with execWithCapture (dshea)
+  Related: rhbz#1188287
+- Simplify iutil.execReadlines. (dshea)
+  Related: rhbz#1188287
+- Add close_fds to the Popen call. (dshea)
+  Related: rhbz#1188287
+- Add an option to startProgram to reset signal handlers. (dshea)
+  Related: rhbz#1188287
+- Add a method startProgram to handle process starting (dshea)
+  Related: rhbz#1188287
+- Lock program_log_lock closer to where the log is written. (dshea)
+  Related: rhbz#1188287
+- Add missing files to po/POTFILES.in, after fixing the test for them.
+  (clumens)
+  Related: rhbz#1196721
+- Backport iutil_test.py updates from master (atodorov). (clumens)
+  Related: rhbz#1196721
+- Backport pylint updates from master (atodorov). (clumens)
+  Related: rhbz#1196721
+- Fix strings with style problems. (clumens)
+  Related: rhbz#1196721
+- Backport gettext updates from master (atodorov). (clumens)
+  Related: rhbz#1196721
+- Remove the automated GUI tests. (clumens)
+  Related: rhbz#1196721
+- Fix Kickstart installation without default gateway errors out (jkonecny)
+  Resolves: rhbz#1147181
 - rescue: find root partition of ostree (atomic) installations (rvykydal)
   Resolves: rhbz#1152041
+- Identify Atomic install class by correct product name (rvykydal)
+  Resolves: rhbz#1193268
+- rpmostreepayload: Avoid shutil.copytree in favor of cp -r to fix symlinks
+  (walters)
+  Resolves: rhbz#1199127
+- atomic: set up atomic specific partitioning defaults (rvykydal)
+  Resolves: rhbz#1155452
+- A couple updates to installclasses. (clumens)
+  Related: rhbz#1155452
+- rpmostreepayload: Rework remote add handling (walters)
+  Resolves: rhbz#1199127
+- Use RHEL7 Bootloader command in parse-kickstart (rvykydal)
+  Related: rhbz#1196721
+- Use RHEL7 Network command in parse-kickstart (rvykydal)
+  Related: rhbz#1196721
+
+* Wed Jun 03 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.3-1
+- Revert "Select http source if there is no mirror enabled." (bcl)
+  Related: rhbz#1196721
+- Make sure /boot is not LVM LV if we're on s390x (sbueno+anaconda)
+  Resolves: rhbz#873135
+  Related: rhbz#1196721
+- Preserve kickstart url behavior for mirrorlist (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#1109933
+- Use a backslash to escape nfs spaces instead of x20 (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#1109933
+- Create missing parent directories for user's home directory (bcl)
+  Resolves: rhbz#1163775
+  Related: rhbz#1196721
+- custom: Clearing errors should also clear Done clicked state (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1158609
+- Clear errors when downloading new MD in text (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#1125927
+- Return result of default key handling in text summary hub (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#997405
+- Protect protected devices in custom spoke (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1052883
+- Don't call storage.write for dirinstall (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#1120206
+- Don't call BusyCursor before Gdk is setup (bcl)
+  Resolves: rhbz#1078868
+  Related: rhbz#1196721
+- Handle spaces in inst.repo, kickstart nfs, and url commands (bcl)
+  Resolves: rhbz#1109933
+  Related: rhbz#1196721
+- Exclude hfsplus-tools from rhel (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1119305
+- Skip nvram update on ppc64 image/dir installations (bcl)
+  Resolves: rhbz#1136486
+  Related: rhbz#1196721
+- CmdlineError should exit with a 1 (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#1102318
+- Remove logging to tty3 and tty5 (bcl)
+  Resolves: rhbz#1073336
+  Related: rhbz#1196721
+- Only install liveinst symlink on supported arches (bcl)
+  Related: rhbz#1121678
+  Related: rhbz#1196721
+- Mountpoint encrypted checkbox reflects container state (bcl)
+  Resolves: rhbz#1076171
+  Related: rhbz#1196721
+- Write sslverify=0 for url kickstart method (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1116858
+- Add noverifyssl and proxy support to dracut ks handling (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1116858
+- Install selected ks repos to target (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1119867
+- Add check for the format of grub2 encrypted password (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#1070327
+- Use low level file i/o for rpm callback logging (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1035745
+- Add platform specific group selection (bcl)
+  Resolves: rhbz#884385
+  Related: rhbz#1196721
+- reiserfs is not supported (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1066635
+- remove epdb SIGHUP debug handler (bcl)
+  Related: rhbz#1196721
+  Related: rhbz#1065557
+- Clean up some rpmdiff errors (bcl)
+  Related: rhbz#1196721
+  Resolves: rhbz#1012624
+- Remove Closest mirrors if no mirrors (bcl)
+  Related: rhbz#876135
+  Related: rhbz#1196721
+- Select http source if there is no mirror enabled. (bcl)
+  Related: rhbz#876135
+  Related: rhbz#1196721
+- Use RHEL7 kickstart commands (bcl)
+  Related: rhbz#1196721
+- Show error on invalid username attempts in TUI. (sbueno+anaconda)
+  Resolves: rhbz#1171778
+- Fix enlightbox call in ZFCPDialog. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Get rid of unnecessary python disable-msg in zfcp spoke. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix some pylint errors in the zfcp panel. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix an accelerator collision found on the filter page. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix some issues pylint found. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Show disk paths on Other page in advstorage. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Add missing translation context for Add ECKD DASD button in advstorage.
+  (sbueno+anaconda)
+  Related: rhbz#1196721
+- Add translation contexts for z and zfcp panel in advstorage.
+  (sbueno+anaconda)
+  Related: rhbz#1196721
+- Convert devices size to str for GUI for zFCP devices (amulhern)
+  Related: rhbz#1196721
+- Fix string formatting of zFCP devices. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix the way zFCP devices are displayed in storage spoke. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Show labels on Add zFCP dialog. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix failure to search by LUN in advanced storage spoke. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Get rid of the clear button in advanced storage spoke. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix up the z Panel in advanced storage. (sbueno+anaconda)
+  Related: rhbz#1196721
+- Add support for adding zFCP devices in the GUI (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix dracut reads ksdevice from missing os enviromnent (jkonecny)
+  Related: rhbz#1085310
+- Fix --device=link and --device not specified (rvykydal)
+  Resolves: rhbz#1085310
+
+* Mon Jun 01 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.2-1
+- Remove an extlinux-related block from rpmostreepayload.py. (clumens)
+  Related: rhbz#1196721
+  Related: rhbz#1153409
+- bootloader: Bridge efi_dir configuration earlier for rpmostreepayload
+  (walters)
+  Related: rhbz#1196721
+  Related: rhbz#1153409
+- rpmostreepayload: Handle grub2+EFI layout (walters)
+  Related: rhbz#1196721
+  Related: rhbz#1153409
+- rpmostreepayload: Copy all subdirectories of /usr/lib/ostree-boot (walters)
+  Related: rhbz#1196721
+  Related: rhbz#1153409
+- Handle the case of rpmostreepayload + GRUB2 (walters)
+  Related: rhbz#1196721
+  Related: rhbz#1153409
+- Implement the new reqpart command. (clumens)
+  Resolves: rhbz#1164660
+
+* Fri May 29 2015 Brian C. Lane <bcl@redhat.com> - 21.48.22.1-1
+- Update scripts/makebumpver to current version from master (bcl)
+  Related: rhbz#1196721
+- Add .0 to version number -- 21.48.22.0 (bcl)
+  Related: rhbz#1196721
+- Show empty VGs in the custom spoke. (dlehman)
+  Related: rhbz#1196721
+- Fix makeupdates handling of Release: (bcl)
+  Related: rhbz#1196721
+- network: add teamd package if team is used during installation (#1185670) (rvykydal)
+  Related: rhbz#1196721
+- network: pass team opts to dracut for netroot (#1075666) (rvykydal)
+  Related: rhbz#1196721
+- iscsi: when logging into nodes consider ip:port of node (#1114820) (rvykydal)
+  Related: rhbz#1196721
+- Don't traceback if connection does not have read-only setting (#1158919) (rvykydal)
+  Related: rhbz#1196721
+- network: display only actual fqdn of ip we offer for vnc connection (#1089429) (rvykydal)
+  Related: rhbz#1196721
+- network: fix a typo making creating virtual devices in %pre fail (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- network: support for bridge, require pykickstart with the support (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- network: Catch exception from NM failing to create a bridge device (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- network: add bridge support for kickstart %pre phase (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- network: generate kickstart commands for bridge devices (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- network: add bridge support to kickstart (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- network: support for adding bridge devices (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- network: display bridge devices in status (#1075195) (rvykydal)
+  Related: rhbz#1196721
+- parent is unused, so mark it as such. (clumens)
+  Related: rhbz#1196721
+- network: enable NM ibft plugin only for ip=ibft boot option (#804511) (rvykydal)
+  Related: rhbz#1196721
+- network: add support for vlan tag in iBFT (#804511) (rvykydal)
+  Related: rhbz#1196721
+- network: GUI: reactivate connection automatically after configuration (#1033063) (rvykydal)
+  Related: rhbz#1196721
+- Fix position of Refresh List button in filter spoke (#1065716) (rvykydal)
+  Related: rhbz#1196721
+- Fix accelerator collision of Refresh button (#1065716) (rvykydal)
+  Related: rhbz#1196721
+- gui: add Refresh button to network storage UI (#1065716) (rvykydal)
+  Related: rhbz#1196721
+- Use absolute path for extlinux/menu.c32 (rvykydal)
+  Related: rhbz#1196721
+- iscsi: pass rd.* options of devices to be mouted in dracut (#1192398) (rvykydal)
+  Related: rhbz#1196721
+- network: adapt to NetworkManager package split-up (#1182633) (rvykydal)
+  Related: rhbz#1196721
+- Take "RHEL Atomic Host" as rhel installclass (#1150410) (rvykydal)
+  Related: rhbz#1196721
+- network: handle dbus UnknownMethod exception on invalid objects (#1061796) (rvykydal)
+  Related: rhbz#1196721
+- network: fix typo 'Private ksy pasword' (#1120374) (rvykydal)
+  Related: rhbz#1196721
+- Fix up a string style issue found in the last network commits. (clumens)
+  Related: rhbz#1196721
+- network: WPA Enterprise: don't ask twice for password (#1120374) (rvykydal)
+  Related: rhbz#1196721
+- network: add support for WPA Enterprise (#1120374) (rvykydal)
+  Related: rhbz#1196721
+- network: add s390 network ifcfg options also for bond slaves (#1090558) (rvykydal)
+  Related: rhbz#1196721
+- network: don't crash, just log for unrecognized bond options (#1039006) (rvykydal)
+  Related: rhbz#1196721
+- network: don't traceback on invalid team options (#1114282) (rvykydal)
+  Related: rhbz#1196721
+- network: copy resolv.conf to chroot before installing packages (#1048520) (rvykydal)
+  Related: rhbz#1196721
+- network: don't write HWADDR in ifcfgs generated by kickstart (#1130042) (rvykydal)
+  Related: rhbz#1196721
+- network: show ip of device with default route for vnc and ssh (#1083305) (rvykydal)
+  Related: rhbz#1196721
+- network: adapt to NM fixing virtual device disconnection (#1084953) (rvykydal)
+  Related: rhbz#1196721
+- Log installation successes and failures via ipmitool. (clumens)
+  Related: rhbz#1196721
+- In dracut, do not display a warning for network lines with just a hostname.  (clumens)
+  Related: rhbz#1196721
+- Preserve the order of boot args added by kickstart. (clumens)
+  Related: rhbz#1196721
+- Make the Selected Disks and Configure Mount Point dialogs wider. (clumens)
+  Related: rhbz#1196721
+- Sync up the Selected Disks and Configure Mount Points dialogs. (clumens)
+  Related: rhbz#1196721
+- Add rc-release target (bcl)
+  Related: rhbz#1196721
+- Change --skip-tx to --skip-zanata in scratch-bumpver (bcl)
+  Related: rhbz#1196721
+- Add --newrelease to makebumpver (bcl)
+  Related: rhbz#1196721
+- Update translation documentation for Zanata (bcl)
+  Related: rhbz#1196721
+- Switch translation support to fedora.zanata.org (bcl)
+  Related: rhbz#1196721
+- Revert "Use gettext to process glade files." (clumens)
+  Related: rhbz#1196721
+- Change of label in iscsi storage spoke (jkonecny)
+  Related: rhbz#1196721
+- Clear TUI source spoke errors that may have been leftover from a prior attempt. (#1196721) (sbueno+anaconda)
+  Related: rhbz#1196721
+- Fix completion setting in TUI language spoke. (#1196721) (sbueno+anaconda)
+  Related: rhbz#1196721
+
+* Mon Dec 08 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.22-1
+- Really fix issue with starting in cmdline mode on s390x. (#1040933)
+  (sbueno+anaconda)
+- Fix EOF error that occurs if user input required in x3270. (#1171135)
+  (jstodola)
+
+* Tue Dec 02 2014 Vratislav Podzimek <vpodzime@redhat.com> - 21.48.21-1
+- Revert "Make Python's default encoding detection work on Live installations
+  (#1169019)" (awilliam)
+
+* Mon Dec 01 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.20-1
+- Revert "Search for a valid stage1 device on disks with stage1 mount points
+  (#1168118)" (sbueno+anaconda)
+- Make Python's default encoding detection work on Live installations
+  (#1169019) (vpodzime)
+- Force translation files download instead of skipping them (#1169023)
+  (vpodzime)
+
+* Fri Nov 28 2014 Vratislav Podzimek <vpodzime@redhat.com> - 21.48.19-1
+- Search for a valid stage1 device on disks with stage1 mount points (#1168118)
+  (awilliam)
+
+* Thu Nov 27 2014 Vratislav Podzimek <vpodzime@redhat.com> - 21.48.18-1
+- Tell curl it should follow redirects when fetching updates.img (#1168561)
+  (vpodzime)
+- Snapshot free space after clearpart for swap suggestion (#1167965) (vpodzime)
+
+* Wed Nov 26 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.17-1
+- Make sure storage info bar is displayed (#1166730) (bcl)
+- Fix SELINUX_DEFAULT import (#1167047) (bcl)
+- Fix noselinux cmdline default (#1167047) (bcl)
+
+* Thu Nov 20 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.16-1
+- Support high contrast mode in fedora-welcome (#1160499) (dshea)
+
+* Tue Nov 18 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.15-1
+- do not delete liveimg --url=file:/// file (gczarcinski)
+- Provide useful hints on TTY1 during the installation (mkolman)
+- Fix typo from commit 9b3259874. (#1120964) (dlehman)
+- Remove the old custom partitioning help dialog (mkolman)
+- Check if we read something when emptying stdin queue (vpodzime)
+- Require min entropy for 'part --encrypted' devices (#1162695) (vpodzime)
+- Don't rely on terminal attributes being configurable (#1162702) (vpodzime)
+- Disable payloads that failed to setup (#1162732) (dshea)
+- Don't change langpacks config of installer environment (#1066017) (rvykydal)
+
+* Tue Nov 11 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.14-1
+- Add support for doing a liveimg kickstart with local file (#1140358) (bcl)
+- Add a placeholder for a product-specific logo (dshea)
+- Load a stylesheet from product.img (dshea)
+- Fix make distcheck (mkolman)
+- Include help content in the Anaconda tarball (mkolman)
+- Fix typo causing traceback when NTP is turned ON/OFF (vpodzime)
+- Unpack the callback data given to us by blivet (vpodzime)
+- Add timeout to callbacks waiting for enough entropy (#1073679) (vpodzime)
+- Prevent tb on s390x when de-selecting a DASD and doing custom part.
+  (sbueno+anaconda)
+- Revert "Revert productName repo name change (#1128474)" (bcl)
+- Update the background image paths used in Fedora. (dshea)
+- dracut/save-initramfs.sh: don't save /tmp (wwoods)
+- Add a pylint module to detect uses of interruptible system calls. (dshea)
+- Wrap interruptible system calls in a loop (#1160041) (dshea)
+- Warn users about liveinst usage of --updates (#1153550) (bcl)
+- Catch EOFError in raw_input (#1158841) (bcl)
+- Ensure we are specifying sensible target sizes for resize. (#1120964)
+  (dlehman)
+- Set the autopart fstype for boot too (#1112697) (bcl)
+- Unconditionally clear the process handle when nm-c-e exits (#1132645) (dshea)
+- Make anaconda more scrollable (#1135024) (dshea)
+- Lightly rearrange the nav_area (dshea)
+- Do not install interactive exception handler in cmdline mode (#1155979)
+  (vpodzime)
+- Wait until all spokes are setup before updating continue button (bcl)
+- Allow adding prepboot to a blank disk in custom (#1155660) (bcl)
+- Remove unused imports (vpodzime)
+
+* Tue Oct 28 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.13-1
+- Fix handling of md fwraid names in kickstart bootloader command. (#1156354)
+  (dlehman)
+- Fix switching environments when no environment is selected (#1155756) (dshea)
+- Use an empty string for no root password instead of None (#1155576) (dshea)
+- Just preserve the %%addon header args if an addon is missing (#1155026)
+  (vpodzime)
+
+* Thu Oct 23 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.12-1
+- Fix a spelling error (#1153672) (dshea)
+- Update checkSizes to work in terms of Size objects (#1129629). (clumens)
+
+* Mon Oct 20 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.11-1
+- Don't panic prematurely on a missing size (#1154190) (amulhern)
+- Log when using updates from /tmp/updates/ (bcl)
+- Fix # handling in SimpleConfigFile (#1045687) (bcl)
+
+* Wed Oct 15 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.10-1
+- Change our docs that are close to ReST to proper ReST (vpodzime)
+- Run restorecon on /etc/hostname (#1133368) (bcl)
+- Add authconfig and firewalld packages when used in ks (#1147687) (bcl)
+- Allow kickstart with no method (#972265) (bcl)
+- Fix a typo from 73d3a8e5. (sbueno+anaconda)
+- Respect both ways how to disable bootloader installation (vpodzime)
+- Don't care about crash args in bootloader (#1116323) (vpodzime)
+- Add nombr to anaconda to suppress updating MBR (#886502) (gczarcinski)
+- Use translated versions of the AM/PM strings consistently (vpodzime)
+- Import GUI-specific stuff only when running GUI in entropy handling
+  (vpodzime)
+- Always store the information about display mode in ksdata (vpodzime)
+- Make the date format locale-dependent in our GUI (#1044233) (vpodzime)
+- A function for resolving date format and order (vpodzime)
+- Reorganize the right side of the Custom spoke (#1094856) (vpodzime)
+- Move _verifyLUKSDevicesHaveKey to Anaconda's codebase (vpodzime)
+- Add support for thin pool profile specification in kickstart (vpodzime)
+- Fix file name of the entropy dialog in POTFILES.in (vpodzime)
+- Require minimum random data entropy when creating LUKS (#1073679) (vpodzime)
+- Give blivet callbacks for reporting partitioning progress (vpodzime)
+- Split localed's converted layouts and variants (#1073825) (vpodzime)
+- Create free space snapshot before doing custom->autopart (vpodzime)
+- Specify thin pool metadata/chunk size only if given by user (#1140635)
+  (vpodzime)
+- Distribute the right docs files (vpodzime)
+- Don't automatically select environments for kickstart installs (#1018226)
+  (dshea)
+- Initialize the GUI lock in a way that doesn't break the API (dshea)
+- Don't check enabledPlugins if plugins are not yet enabled (#1142544) (dshea)
+- Really fix an enlightbox call. (dshea)
+- Don't strip accents from the user-inputted keyboard string (dshea)
+- Convert strings to unicode in have_word_match (#1146581) (dshea)
+- Switch to using the new help content path (#1072033) (mkolman)
+- Fix a race between checking for Gtk.main_level and running Gtk.main (dshea)
+- Allow recursive lightbox calls (#1147337) (dshea)
+- Disable the ntp service with --nontp (#1135768) (dshea)
+- Ignore partition start if there is a biosboot partition (#1044849) (bcl)
+- Require a larger /boot (#1129629). (clumens)
+- Remove duplicates when adding new devices (#887526) (bcl)
+
+* Wed Oct 08 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.9-1
+- Bump blivet version requires for all the DASD changes in 0.61.4.
+  (sbueno+anaconda)
+- We now need to specify an epoch for the python-blivet version requires.
+  (clumens)
+- Fix autotools rules to properly include help placeholders (#1072033)
+  (mkolman)
+- Modify nm to return defaults when no dbus is available (bcl)
+- Skip networkInitialize for image and dir installations (bcl)
+- Ignore safe_dbus errors in keyboard setup (bcl)
+- Skip syslog for dirinstall (bcl)
+- s390x: show dialog if kernel cmdline in zipl.conf is too long.
+  (sbueno+anaconda)
+- Really exit when "Exit installer" in the error dialog is clicked (vpodzime)
+- Don't allow /boot on lvm on s390x. (sbueno+anaconda)
+- Add the new langsupport.py TUI spoke to POTFILES.in. (clumens)
+- Remove the now-unused imports of storageInitialize. (clumens)
+- Add support for language selection in text mode. (sbueno+anaconda)
+- Don't force a user to return to the storage spoke after dasdfmt
+  (sbueno+anaconda)
+- Don't run storageInitialize after dasdfmt (sbueno+anaconda)
+- s390x: Apply disk selection before dasdfmt to preserve data.
+  (sbueno+anaconda)
+- Don't show the Add DASD button unless on s390x. (sbueno+anaconda)
+- Don't show the Add DASD button unless on s390x. (sbueno+anaconda)
+- Preserve network args on s390x. (sbueno+anaconda)
+- Deprecate RUNKS cmdline option. (sbueno+anaconda)
+- Re-order the tz's in text mode to mirror the graphical order.
+  (sbueno+anaconda)
+- Fix an issue with bad NFS info specified in source spoke. (sbueno+anaconda)
+- Warn if software selection size exceeds available space. (sbueno+anaconda)
+- Fix q for quit issue in text mode (#997405) (sbueno+anaconda)
+- Change the accelerator key for Add DASD label. (sbueno+anaconda)
+- Add dialog box for adding DASDs. (sbueno+anaconda)
+- Add a button for adding an ECKD DASD. (sbueno+anaconda)
+- Change a confusing string in TUI NFS configuration screen. (#1057690)
+  (sbueno+anaconda)
+- NM-wifi is missing on s390(x) (dan)
+
+* Wed Oct 01 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.8-1
+- Show help also when alt+F1 is pressed (mkolman)
+- Support display of the custom mnemonics on the help button (mkolman)
+- Activate the built-in help when F1 is pressed (mkolman)
+- Specify help file names for hubs and spokes (mkolman)
+- Add a help button to every Anaconda screen (mkolman)
+- Don't attempt terminal size detection on the s390 (#1145065) (mkolman)
+- Fix Welcome spoke not showing up during kickstart installation (#1147943)
+  (mkolman)
+- Clear the list of watched PIDs before exiting. (#1146708) (dshea)
+- Avoid the possibility of size variables being unset (#1146585) (dshea)
+- Adapt to corrected interpetation of logvol --percent. (#1146156) (dlehman)
+- Handle cancellation of new container creation. (dlehman)
+- Reflect previous custom/autopart selection in the storage spoke. (#1144520)
+  (dlehman)
+- Clear out custom storage ksdata after first attempt to apply it. (#1144560)
+  (dlehman)
+- Pass size as Size when adjusting container after device removal. (#1141707)
+  (dlehman)
+- Handle 0's returned by Gdk (dshea)
+- When running on HiDPI monitors, scale anaconda by a factor of 2 (dshea)
+- Highlight languages in langsupport that contain selected locales (dshea)
+- Add a wrapper function for GtkTreeViewColumn.set_cell_data_func (dshea)
+- Clear the kickstart password if cleared by the user (#1133185) (dshea)
+- Remove inactive languages from LINGUAS. (dshea)
+- Use suggested-action on more buttons (#1131254) (dshea)
+- Filter empty comps groups from both specific and generic lists (dshea)
+- Use one thread for payload setup. (dshea)
+
+* Wed Sep 17 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.7-1
+- Set flags.rescue_mode not anaconda.rescue (#1101341) (amulhern)
+
+* Thu Sep 11 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.6-1
+- Update tx config (sbueno+anaconda)
+- Use only the digits from productVersion (bcl)
+
+* Tue Sep 09 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.5-1
+- Revert productName repo name change (#1128474) (bcl)
+- Do not try to disable no firstboot services (#1139621) (vpodzime)
+- Let finding install classes be more flexible for Fedora (#1138820). (clumens)
+
+* Thu Sep 04 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.4-1
+- Use first part of Product for UEFI entry (#1128474) (bcl)
+- Use first part of Product as repo name (#1128474) (bcl)
+- makeupdates: Report git diff errors (bcl)
+
+* Wed Aug 27 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.3-1
+- Prevent crashes due to accessing X server from multiple threads (#1134507)
+  (vpodzime)
+- Remove anaconda_make_pixbuf (dshea)
+- Require anaconda-widgets from anaconda-widgets-devel (dshea)
+- Run /sbin/ldconfig when installing or uninstalling anaconda-widgets (dshea)
+- Remove the shebang from anaconda.py (dshea)
+- Exclude the compiled text and rescue files from anaconda-core (dshea)
+- Update our copy of the GPL (dshea)
+- Rearrange the entry, example and tip on Advanced User dialog (vpodzime)
+- Write storage after liveimg install (#1080396) (bcl)
+- Add some sanity checking to live payload (vpodzime)
+- Use blivet's getFreeSpace for limitting automatic swap size (vpodzime)
+- Ask users for enough space right at the first time (#876916) (vpodzime)
+- Don't require user creation when root is locked (#1030626) (bcl)
+
+* Fri Aug 01 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.2-1
+- Mark zRAM devices as protected and ignore them (vpodzime)
+- Make storage sanity check aware of base RAM requirements (#1123466)
+  (vpodzime)
+- Move sanityCheck code to anaconda's codebase (vpodzime)
+- Do not multiply/divide RAM sizes by 1024 back and forth (vpodzime)
+- Raise exception if reading lines from a killed process (vpodzime)
+- Use zRAM swap up to 2 GB of RAM (vpodzime)
+- RAM requirements depend on squashfs.img's origin (vpodzime)
+
+* Wed Jul 23 2014 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 21.48.1-1
+
+* Wed Jul 16 2014 Brian C. Lane <bcl@redhat.com> - 21.48-1
+- Fix the custom accelerators in custom partitioning (#1118999) (dshea)
+- Revert "Reset dnf package sack" (bcl)
+- Ignore the home directory setting if no change was requested (#1119900)
+  (dshea)
+- Set an upper limit on uids and gids. (dshea)
+- Remove the "Create a home directory" checkbox (dshea)
+- Fix a typo: inital -> initial (mkolman)
+- Don't create the configured.ini file (#1119166) (mkolman)
+- zRAM swap for Anaconda (vpodzime)
+- Split kickstart arg handling (bcl)
+- Update icon names used within python code. (dshea)
+- Add a check for whether icons used in glade files are valid (dshea)
+- Load icons by name instead of stock-id. (dshea)
+- Remove extra list() call with no effect (vpodzime)
+- Add NetworkManager-wifi dependency for the GUI subpackage (#1111417)
+  (mkolman)
+- Python's octals changed; mount's didn't. (pjones)
+- Add a basic test for ostree-based installs. (clumens)
+- Print out exceptions at log level critical. (clumens)
+- Rename environment variables in run_gui_tests.sh. (clumens)
+- Rename gui/runtest.sh to fit in with the other test names. (clumens)
+- Write the grub config even on errors (#1114774) (bcl)
+
+* Fri Jul 11 2014 Brian C. Lane <bcl@redhat.com> - 21.47-1
+- Fix references to requiredPackages (bcl)
+- Drop anaconda. prefix from copied logs (bcl)
+- dnf should put its logs in /tmp/ (bcl)
+- Make sure the software listboxes are shown (bcl)
+- dnf should report that it supports Closest Mirror (bcl)
+- Do not prefer /tmp for dnf downloads (bcl)
+- Reset dnf package sack (bcl)
+- Fix dnf base repo setup to fall back to default gracefully (bcl)
+- Move addDriverRepo into PackagePayload class (bcl)
+- Rename some dnf items to match yum (bcl)
+- rpmostreepayload: Drop selinux-ensure-labeled call (walters)
+- Run anaconda in fullscreen whenever possible. (dshea)
+- Correct the constant used with gtk_widget_set_state_flags (dshea)
+- Restore some CSS rules from the pre-3.13 Adwaita theme. (dshea)
+- Adapt to changes in blivet.udev interface. (amulhern)
+- Bump blivet version to pick up blivet.udev interface changes. (amulhern)
+- Use the enlightbox context manager for the add network device dialog
+  (mkolman)
+- DNFPayload: do not add group 'core' twice. (ales)
+- Remove the window property from UIObject. (dshea)
+- Unravel the Hub and Spoke classes. (dshea)
+- Fix --kickstart option (bcl)
+- Bump up the required pykickstart version (vpodzime)
+- Use GtkRevealer for widget hiding in storage spoke (mkolman)
+- rpmostreepayload: create /var/spool/mail required when adding user (rvykydal)
+- rpmostreepayload: Don't recreateInitrds for this payload (walters)
+- Don't use geolocation when installing with kickstart (mkolman)
+
+* Wed Jul 02 2014 Brian C. Lane <bcl@redhat.com> - 21.46-1
+- Ignore an error from pylint incorrectly analyzing types in dbus-python
+  (dshea)
+- Remove the Lightbox widget (dshea)
+- Implement the lightbox in MainWindow (dshea)
+- Added a method to create new GdkPixbufs from in-memory data (dshea)
+- Add a delete-event handler for the main window (dshea)
+- Add a window to manage Anaconda screen transitions. (dshea)
+- Add a class BaseStandalone. (dshea)
+- Increased the version of anaconda-widgets to 3.0 (dshea)
+- Use globs for the anaconda widgets library paths (dshea)
+- Remove the custom accelerators from custom storage. (dshea)
+- Add a couple more deprecation warning ignores (dshea)
+- Use a dict for string substitutions in a /boot/efi message. (clumens)
+- Use the right index for selecting region (#1114234) (vpodzime)
+- Add autopart --fstype support (#1112697) (bcl)
+- Patches to allow /boot/efi to be RAID1 (#788313) (amulhern)
+- Bump blivet version for succeeding commit. (amulhern)
+- Map our log levels to syslog log levels (bcl)
+- makeupdates: Put systemd files under /usr/lib/ (bcl)
+- Make octal literals Python 3 compatible (mkolman)
+- Use the built-in next() function for generators (mkolman)
+- Make reduce function usage Python 3 compatible (mkolman)
+- Use createrepo_c in place of createrepo (mkolman)
+
+* Fri Jun 27 2014 Brian C. Lane <bcl@redhat.com> - 21.45-1
+- Switch to tty1 if we get an exception before meh is setup (dshea)
+- Remove surprises from X startup. (dshea)
+- Import KS_MISSING_IGNORE from pykickstart.constants in DNF payload (mkolman)
+- Import Pykickstart constants directly (mkolman)
+- Switch error exit codes to 1 (bcl)
+- Add help texts for the remaining Anaconda options (mkolman)
+
+* Wed Jun 25 2014 Brian C. Lane <bcl@redhat.com> - 21.44-1
+- Fix storage checker docstring (bcl)
+- Modify --dirinstall to take a path (bcl)
+- Drop ROOT_PATH, add a method to set it (bcl)
+- Call setUpBootLoader in custom autopart (#1086811) (bcl)
+- Remove the noipv6 Anaconda option (mkolman)
+- Remove the -s/--script Anaconda option (mkolman)
+- Make rescue_mode part of flags, hence more publicly available (#1090009)
+  (amulhern)
+- Check host filesystem space for dirinstall (bcl)
+- Remove the viewport from the addon repo tree view (dshea)
+- Add a check for GtkScrollables contained in GtkViewports (dshea)
+- Enable rubber-banding in the disk tree views (dshea)
+- Make the configure mount point dialog taller. (#924182) (dshea)
+- Add the disk TreeViews directly to the scrolled windows (dshea)
+- Opened up custom_storage_helpers.glade and hit Save (dshea)
+- Add help texts for more Anaconda CLI options (mkolman)
+- Remove the targetarch Anaconda option (mkolman)
+- Add anaconda_options.txt to makeupdates (dshea)
+- Allow the location of anaconda_options.txt to be overridden (dshea)
+- Remove an unused import. (dshea)
+- Remove the headless Anaconda option (mkolman)
+
+* Thu Jun 19 2014 Brian C. Lane <bcl@redhat.com> - 21.43-1
+- Allow NFS addon repos (#985080) (dshea)
+- Add --disklabel support to clearpart (#1078537) (bcl)
+- Replace redundant ifs with direct assignments to the anaconda variables
+  (mkolman)
+- Replace ifs when assigning option values to flags where possible (mkolman)
+- Use True/False instead of 1/0 for flags (mkolman)
+- Store auto gui results in the same directory as the test itself. (clumens)
+- Use whatever network device was used to start installation. (clumens)
+- Ignore more deprecation warnings. (dshea)
+- Add help texts for the dmraid and nodmraid options (mkolman)
+- Use True instead of 1 for the dmraid flag default value (mkolman)
+- Add help texts for the ibft and noibft options (mkolman)
+- Use True instead of 1 for the ibft flag default value (mkolman)
+- Remove the iscsi and noiscsi options (mkolman)
+- Add a new log level 'lock' for _yum_lock (bcl)
+- Replace uses of gtk-missing-image (dshea)
+- Improve the SpokeSelector icon error reporting. (dshea)
+
+* Thu Jun 12 2014 Brian C. Lane <bcl@redhat.com> - 21.42-1
+- Adjust the ui package paths to find hubs and spokes (bcl)
+- Change emphasis from subvolumes to snapshots in removal warning. (dlehman)
+- Reflect the fact that some block devices cannot be reformatted. (dlehman)
+- Use StorageDevice.direct to detemine if a device is directly accessible.
+  (dlehman)
+
+* Wed Jun 11 2014 Brian C. Lane <bcl@redhat.com> - 21.41-1
+- Use /usr/lib* in updates images. (dshea)
+- Fix the paths we check for spokes. (sbueno+anaconda)
+- Remove the kbdtype option (mkolman)
+- Remove the noipv4 option (mkolman)
+- Remove the autostep option (mkolman)
+- Remove the disused nofb option (mkolman)
+- Remove the module option (mkolman)
+
+* Tue Jun 10 2014 Brian C. Lane <bcl@redhat.com> - 21.40-1
+- fedora-welcome: Correct an icon name after the switch to Adwaita
+  (kalevlember)
+- Pass/check displaymode in collect_categories and collectCategoriesAndSpokes.
+  (sbueno+anaconda)
+- Add help texts to some Anaconda CLI options (mkolman)
+- Don't install implicitly added but explicitly excluded packages (#1105013)
+  (vpodzime)
+- Update configure, make files, and PO files with new category changes.
+  (sbueno+anaconda)
+- Fix up collectCategoriesAndSpokes function. (sbueno+anaconda)
+- Update all relevant UI files with new category path. (sbueno+anaconda)
+- Move categories to pyanaconda.ui.categories. (sbueno+anaconda)
+- Allow testing a regular install from the live environment. (clumens)
+- Make sure /var/log/anaconda gets copied under the right root. (clumens)
+- format.setup in blivet takes only kwargs. (clumens)
+- Tweak spacing in the other storage options grid. (clumens)
+- Remove the dlable option (mkolman)
+- change default for grub2 save_entry to 0 (gczarcinski)
+- Revert "Refresh after checkbox clicked (#1074188)" (dshea)
+- Move assureLogoImage to GraphicalUserInterface (#1102238) (dshea)
+- If we cannot activate keyboard, at least populate the missing items
+  (#1104541) (vpodzime)
+- network: generate dracut arguments also for IPADDRn ifcfg values (#1103571)
+  (rvykydal)
+- Memoize the results for *RaidLevelsSupported() functions (amulhern)
+- RAID related changes for custom spoke. (amulhern)
+- Bump required blivet version. (amulhern)
+- Make parse-kickstart aware of the %%addon section (#1083002) (vpodzime)
+- Revert "Work around a parsing bug in GtkBuilder" (dshea)
+- Fix a typo in one of the bootloader installation warning messages (#1103410)
+  (mkolman)
+- Don't require network in standalone spoke for media installs (#1066807)
+  (rvykydal)
+
+* Mon Jun 02 2014 Brian C. Lane <bcl@redhat.com> - 21.39-1
+- eu_ES has been dropped from the supported languages (bcl)
+- Change 'elif encrypted' statement to 'else' statement. (amulhern)
+- Work around a parsing bug in GtkBuilder (dshea)
+- Don't uppercase the size values in the disk shopping cart. (clumens)
+- Display the sentence about being able to reuse partitions even without roots.
+  (clumens)
+- Allow a couple more keyboard shortcuts on the custom part spoke. (clumens)
+- Reword the close button on the software spoke's error dialog. (clumens)
+- Fix up quoting around passing args to anaconda in the gui test. (clumens)
+- Don't hide a serious issue (vpodzime)
+- Move autopart choices to one place and use them in both GUI and TUI
+  (vpodzime)
+- Define default autopart type as a constant (vpodzime)
+- Use enumerate() instead of getting indices of iterated items (vpodzime)
+- Preserve net.ifnames cmdline arg (#1102401) (bcl)
+- Revert the dialog sizing chunk from resize.glade. (clumens)
+- Update GUI tests for changes in gtk/atk/anaconda/whatever. (clumens)
+- Fix gui/runtest.sh to work under either "make check" or being run manually.
+  (clumens)
+- Add a -c argument to the ksflatten invocation. (clumens)
+- Do basic logging setup when short circuiting the normal Anaconda init
+  (mkolman)
+- Fix boot option warning string formatting (mkolman)
+- always rescan for vmlinuz if rescueKernelList (gczarcinski)
+- move new-kernel-pkg rpmposttrans to end of install (gczarcinski)
+- allow /boot on btrfs subvol or filesystem (gczarcinski)
+- Allow /boot on LVMlv (gczarcinski)
+
+* Wed May 28 2014 Brian C. Lane <bcl@redhat.com> - 21.38-1
+- Parse boot options before parsing CLI options (#1101341) (mkolman)
+- Check that bootloader devices are configured before validating (#1100928)
+  (dshea)
+- network: use IpInterface only for activated devices (#1101781) (rvykydal)
+- Enable LVM Thin Provisioning in text mode (vpodzime)
+- Remove the executable bit from anaconda.spec.in. (clumens)
+- Fix the nm test for big-endian results (dshea)
+- Fix issues with auto* and version.py (dshea)
+- Allow file:// url handler in --repo arg (bcl)
+- Ignore deprecation warnings for atk_role_register (dshea)
+- Handle renames in makeupdates. (pjones)
+- Move Anaconda version detection from isys to Python code (mkolman)
+- network: use IpInterface instead of Interface (#1058906, #1029214) (rvykydal)
+- network: don't modify network config for dirInstall and imageInstall
+  (rvykydal)
+- network: remove redundant image install guard (rvykydal)
+- network: add first tests for nm.py (rvykydal)
+- network: consolidate setNetworkOnbootDefault (rvykydal)
+- Set ONBOOT=yes for the device used for installation (#1002544). (rvykydal)
+- Use proper data for autopart type initialization (vpodzime)
+- Line up the right side of the FCOE dialog. (clumens)
+- Use default_width and _height on dialogs instead of _request. (clumens)
+- Remove the border around the refresh storage dialog's button. (clumens)
+- Short-circuit initialization when printing out Anaconda version (mkolman)
+- Make print statements Python 3 compatible (mkolman)
+- Fix the handling of set_const options pulled in from the boot cmdline (dshea)
+- Fix the modify software tooltip on the installation options dialogs.
+  (clumens)
+- Better visually distinguish TUI spokes states (vpodzime)
+- Reset the text direction as soon as the locale is changed (dshea)
+- Show errors from the displayed mountpoint when exiting the custom spoke
+  (dshea)
+- Check that container names input by the user are valid (dshea)
+
+* Tue May 20 2014 Brian C. Lane <bcl@redhat.com> - 21.37-1
+- Chain up to parent size_allocate functions in our standalone widgets.
+  (clumens)
+- Format the help text to properly fit to the terminal window (mkolman)
+- Call getPossiblePhysicalExtents() only once (vpodzime)
+- Default PE size to blivet's default when requested from kickstart (#1098139)
+  (vpodzime)
+- A couple of anaconda whitespace fixes (mkolman)
+- Replace the deprecated has_key() by in (mkolman)
+- Disable pylint errors on NetworkData in the new network_test.py. (clumens)
+- Tweak borders on the filter UI. (clumens)
+- network: add tests (rvykydal)
+- network: don't use ifcfg PREFIX when generating ipv6 dracut args (rvykydal)
+- network: cleanup - remove ksdevice variable (rvykydal)
+- Horizontally center the user creation spoke contents. (clumens)
+- Un-indent the reclaim space checkbox. (clumens)
+- Remove the RAID page from the filter UI. (clumens)
+- install -> installation in a string on the source spoke. (clumens)
+- Switch Anaconda to argparse (mkolman)
+- rpmostreepayload: Use systemd-tmpfiles rather than handrolling mkdir
+  (walters)
+- Add some padding to the custom partitioning note. (dshea)
+- Wrap the custom partitioning note (#1031850) (dshea)
+- Make an ostree string easier for translators to deal with. (clumens)
+- Fix the gettext warnings test for VPATH builds (dshea)
+- network: fix crash on empty ksdevice boot option (#1096846) (rvykydal)
+- Add RPMOSTreePayload (walters)
+- bootloader: Allow extlinux loader configuration to handle RPMOSTreePayload
+  case (walters)
+- install: Handle distinct physical root/sysroot (walters)
+- parse-kickstart: drop "mtu=" args (wwoods)
+- Drop workaround for old dracut BOOTIF+ip problem (wwoods)
+- Fix behavior (and docs) for ks=nfs:<path>/ (#1094645) (wwoods)
+- Allow non-ASCII characters in passwords (#960837) (dshea)
+- Use a separate label for passphrase warnings. (dshea)
+- Move more of the passphrase dialog into the glade file. (dshea)
+- Don't add redundant grub installs if stage1 is not a disk (dshea)
+- Let the user continue on bootloader errors (#1006304) (bcl)
+- Fix the parsing of NFS addon URLs (#966240) (dshea)
+- Remove redundant import (mkolman)
+- Don't overwrite function argument when parsing help texts (mkolman)
+- Return CLI help text at once (mkolman)
+- Fix typo in previous commit adjusting to blivet API change. (dlehman)
+- Adjust for movement of functions from examples into blivet proper. (dlehman)
+
+* Thu May 08 2014 Brian C. Lane <bcl@redhat.com> - 21.36-1
+- Switch to adwaita-icon-theme (kalevlember)
+- Hook up the TUI categories to autoconf/make. (#1095220) (dshea)
+- Fix the object type specifying argument name for findActions (vpodzime)
+- Remove keyword args 'ignoreErrors' from umountFilesystems() call. (amulhern)
+- Updates for new blivet.size.Size.__new__ interface. (amulhern)
+- Change uses of 'format' keyword param to 'fmt' keyword param (amulhern)
+- Update devicetree.findActions invocations to match blivet interface change
+  (amulhern)
+- Bump blivet version to ensure next four patches get the right interface.
+  (amulhern)
 
-* Wed Jan 14 2015 Colin Walters <walters@redhat.com> - 19.31.79-26.atomic
-- Require meh-gui
-
-* Wed Jan 14 2015 Colin Walters <walters@redhat.com> - 19.31.79-25.atomic
-- Rebuilt to update version number
-
-* Tue Jan 06 2015 Colin Walters <walters@redhat.com> - 19.31.79-23.atomic
-- Add patch to fix grubenv handling
-
-* Fri Dec 19 2014 Colin Walters <walters@redhat.com> - 19.31.79-22.atomic
-- Rebuild for 7.1
-
-* Wed Oct 22 2014 Radek Vykydal <rvykydal@redhat.com> - 19.31.79-21.atomic
-- Add Atomic installclass and default partitioning for Atomic.
-
-* Sun Oct 19 2014 Colin Walters <walters@redhat.com> - 19.31.79-20.atomic
-- GRUB2+EFI
-
-* Fri Oct 17 2014 Colin Walters <walters@redhat.com> - 19.31.79-17.atomic
-- More OSTree-GRUB2 work, plus some remote add fixes for ImageFactory
-
-* Tue Oct 14 2014 Colin Walters <walters@redhat.com> - 19.31.79-9.atomic
-- Add OSTree-GRUB2 patch in progress
-
-* Wed Oct 8 2014 Radek Vykydal<rvykydal@redhat.com> - 19.31.79-4.atomic
-- Take "RHEL Atomic Host" as rhel installclass (rvykydal)
-  Resolves: rhbz#1150410
-
-* Mon Oct 6 2014 Radek Vykydal<rvykydal@redhat.com> - 19.31.79-3.atomic
-- atomic: fix race of glib loops by setting up a new context (clumens)
-  Resolves: rhbz#1131382
-
-* Fri Sep 12 2014 Radek Vykydal <rvykydal@redhat.com> - 19.31.79-2.atomic
-- atomic: add patches from rhel7-branch (rvykydal)
-  Resolves: rhbz#1113535
-
-* Tue Apr 29 2014 Brian C. Lane <bcl@redhat.com> - 19.31.79-1
-- network: fix device configuration in text mode (rvykydal)
-  Resolves: rhbz#1091434
-
-* Mon Apr 28 2014 Brian C. Lane <bcl@redhat.com> - 19.31.78-1
-- Fix unloading modules in driver-updates (wwoods)
-  Resolves: rhbz#1085099
-
-* Wed Apr 09 2014 Brian C. Lane <bcl@redhat.com> - 19.31.77-1
-- network: show ip of device with default route for vnc and ssh (rvykydal)
-  Resolves: rhbz#1083305
-
-* Mon Apr 07 2014 Brian C. Lane <bcl@redhat.com> - 19.31.76-1
-- network: adapt to NM fixing virtual device disconnection (rvykydal)
-  Resolves: rhbz#1084953
-
-* Tue Apr 01 2014 Brian C. Lane <bcl@redhat.com> - 19.31.75-1
-- Display WWIDs in the filter UI for FCoE devices (clumens).
-  Resolves: rhbz#1080316
-- Make it possible to override translation domain in GUIObjects (mkolman).
-  Related: rhbz#1040240
-
-* Fri Mar 28 2014 Brian C. Lane <bcl@redhat.com> - 19.31.74-1
-- network: don't crash on virtual devices turned off (rvykydal)
-  Resolves: rhbz#1080640
-- Do not try to set keyboard preview dialog's size (vpodzime)
-  Resolves: rhbz#1011140
-
-* Thu Mar 27 2014 Brian C. Lane <bcl@redhat.com> - 19.31.73-1
-- Add a list of cmdline args that append instead of replace (bcl)
-  Related: rhbz#1073130
-
-* Mon Mar 24 2014 Brian C. Lane <bcl@redhat.com> - 19.31.72-1
-- Check boot args for None (bcl)
-  Related: rhbz#1073130
-  Resolves: rhbz#1075918
-- network: don't pop HWADDR twice for vlan on s390 (rvykydal)
-  Related: rhbz#1061646
-
-* Fri Mar 21 2014 Brian C. Lane <bcl@redhat.com> - 19.31.71-1
-- driverdisk: Show selection menu for network driver isos (bcl)
-  Resolves: rhbz#1075918
-
-* Wed Mar 19 2014 Brian C. Lane <bcl@redhat.com> - 19.31.70-1
-- Write a modprobe blacklist (bcl)
-  Resolves: rhbz#1073130
-- Append cmdline arg values in BootArgs (bcl)
-  Related: rhbz#1073130
-- Only the Summary TUI hub wants to accept 'b' to continue (vpodzime)
-  Resolves: rhbz#1077546
-
-* Tue Mar 18 2014 Brian C. Lane <bcl@redhat.com> - 19.31.69-1
-- Convert iter from filter model iter to backing store iter (amulhern)
-  Resolves: rhbz#1074188
-
-* Fri Mar 14 2014 Brian C. Lane <bcl@redhat.com> - 19.31.68-1
-- Revert "Refresh after checkbox clicked (amulhern)"
-  Related: rhbz#1074188
-- Wait for other threads to finish before sending ready (bcl)
-  Resolves: rhbz#1075103
-
-* Tue Mar 11 2014 Brian C. Lane <bcl@redhat.com> - 19.31.67-1
-- driver-updates: accept burned driver discs (wwoods)
-  Resolves: rhbz#1073719
-- Refresh after checkbox clicked (amulhern)
-  Resolves: rhbz#1074188
-- Don't create bootloader entries for kdump initrd and kernel.
+* Mon May 05 2014 Brian C. Lane <bcl@redhat.com> - 21.35-1
+- Use format strings in the new kickstart error message translations. (clumens)
+- Mark kickstart errors as translatable, and hopefully make them more useful
+  too. (clumens)
+- install: Move Payload postInstall() after bootloader (walters)
+- iutil: Transparently redirect anyone who asks root=/mnt/sysimage to sysroot
+  (walters)
+- Fix the way categories are handled in text mode. (sbueno+anaconda)
+- Move GUI-specific helper classes to a separate module (#1091542) (dshea)
+- Fix license in parse-kickstart (mkolman)
+- main: Set flags.extlinux if extlinux is used in interactive-defaults.ks
+  (walters)
+- anaconda.service: Set GIO_USE_VFS=local (walters)
+- Use a gettext context where necessary when retranslating (#1091207) (dshea)
+- Update makebumpver for python-bugzilla 1.0.0 (bcl)
+- Skip source and software spoke in text live installations (#1092763) (bcl)
+- Add correct kernel params if rootfs is btrfs on s390x. (#874622)
+  (sbueno+anaconda)
+- Don't crash on anaconda-yum output containing multiple colons (#1092441)
+  (mkolman)
+- Revert chrooting when setting user/root password (vpodzime)
+- network: fix device configuration in text mode (#1058336) (rvykydal)
+- Change order in which packages/groups are selected/excluded (#1091952)
+  (vpodzime)
+- Check the correct button when saving changes in the Custom spoke (#1090786)
+  (vpodzime)
+- Fix unloading modules in driver-updates (#1085099) (wwoods)
+- Re-saved some of the glade files with a newer version of glade. (dshea)
+- Add viewports for the ListBoxes in the software spoke. (dshea)
+- Extend format string checks to translated format strings. (dshea)
+- Fix typo in nm_is_connected method check. (rvykydal)
+- iutil: Introduce getSysroot()/getTargetPhysicalRoot(), use instead of
+  ROOT_PATH (walters)
+
+* Thu Apr 24 2014 Brian C. Lane <bcl@redhat.com> - 21.34-1
+- Improve the "adding yum repo" message structure (mkolman)
+- Fix missing log message about adding a repository (#1089297) (mkolman)
+- Ignore use of eval warnings. (dshea)
+- Specify string format arguments as logging function parameters (dshea)
+- New encrypted state is the dialog's encrypted attribute (vpodzime)
+- Use human readable sizes with two decimal spaces in the GUI (vpodzime)
+- Make the LUKS unlock callback a timed action (vpodzime)
+- Hitting ENTER in the LUKS passwd entry should click the Unlock button
+  (vpodzime)
+- Block leaf device encryption if container is encrypted consistently
+  (vpodzime)
+- Do not remove the replacing item, remove the replaced one instead (vpodzime)
+- Give include_btrfs variable a better name (vpodzime)
+- Make the _resolve_btrfs_restrictions method's code nicer (vpodzime)
+- Refactor the btrfs magic into a separate method (vpodzime)
+- Switch the condition in long if-else statement (vpodzime)
+- Give an opaque condition a better name explaining its real meaning (vpodzime)
+- Refactor out the code for removing empty parents (vpodzime)
+- Use the (vpodzime)
+- Refactor out the code for adding device/mountpoint into a method (vpodzime)
+- Relabel /home partition if using and existing one (#1087736) (vpodzime)
+- Don't forget to call os._exit() in the child process (vpodzime)
+- users: Add root= keyword argument to set{User,Root}Password (walters)
+- users: Deduplicate code to fork()+chroot() (walters)
+- gui/spokes/software: Enable iff payload is PackagePayload (walters)
+- Use descriptive pylint messages instead of numbers. (clumens)
+- Add input validation to the source spoke. (dshea)
+- Remove the tests for duplicate and invalid repo names (dshea)
+- Expand the proxy URL validation. (dshea)
+- Convert the repository name test into a regex (dshea)
+- Add a remove_check method for InputCheckHandler. (dshea)
+- Use ID columns in the protocol combo boxes (dshea)
+- Added a link to a bug about the user data in glade problem. (dshea)
+- Remove the top and bottom padding from source spoke action area (dshea)
+- Re-add a false-positive for the GLib module (dshea)
+
+* Thu Apr 17 2014 Brian C. Lane <bcl@redhat.com> - 21.33-1
+- Add an option to copy translation files to an updates.img (dshea)
+- Set the selinux state from the command line (#784828) (dshea)
+- Remove a whole bunch of pylint false positives (dshea)
+- Ignore more informational messages printed by pylint pragmas (dshea)
+- Use more wildcards in the tests dist_ variable (dshea)
+- Make sure the idx variable is used instead of the old found variable
+  (vpodzime)
+- Disable a false positive from pylint (dshea)
+- Only run dialogs in the enlightbox context (vpodzime)
+- Separate code for finding item in containers combo and processing it
+  (vpodzime)
+- Check Update Settings button sensitivity when saving changes in one place
+  (vpodzime)
+- Only save changes if needed when adding mountpoint (vpodzime)
+- No need to call bool() on a boolean expression result (vpodzime)
+- Give names to some magic tuples, make them reusable and reuse them (vpodzime)
+- Add DEVICE_TYPE_DISK's text description to the mapping (vpodzime)
+- Move a few constants and mappings to the storage_utils module (vpodzime)
+- Split long label's string into two lines (vpodzime)
+- Don't rely on the ordering of autopart types in the combobox (vpodzime)
+- Only save changes if there are any changes to be saved (vpodzime)
+- Add device type constants to the device type combobox's store (vpodzime)
+- Change some anaconda-yum DEBUGs to be more informative (bcl)
+- Change Proxy Add Button to Ok (bcl)
+- Display a message for missing required packages and groups (#1064565) (dshea)
+- Fix issues with the errorHandler callback arguments (dshea)
+
+* Thu Apr 10 2014 Brian C. Lane <bcl@redhat.com> - 21.32-1
+- Refactor the code setting up the device type combobox a method (vpodzime)
+- Rename 'swap' variable to 'is_swap' to better express its meaning (vpodzime)
+- Refactor out the code setting up the fstype combobox into a method (vpodzime)
+- Refactor the code updating info about device container into a method
+  (vpodzime)
+- Remove the default None value from the addPage's cb argument (vpodzime)
+- Make on_updates_settings_clicked timed callback (vpodzime)
+- Rename the callback for updating mountpoint settings (vpodzime)
+- Hook up the GUI test so it's run as part of "make check". (clumens)
+- Skip running pylint on files containing "skip-file". (clumens)
+- Add comments to the kickstart tests. (clumens)
+- Add the beginnings of an automated GUI test suite. (clumens)
+- Add accessibility information to the user spoke. (clumens)
+- Add accessibility information to the root password spoke. (clumens)
+- Add accessibility information to the progress hub. (clumens)
+- Add accessibility information to most of the widgets on the storage spoke.
+  (clumens)
+- Add enough accessibility information to the network spoke for livecds.
+  (clumens)
+- Add accessibility information to the keyboard spoke. (clumens)
+- Add accessibility information to the date & time spoke. (clumens)
+- Add a script and base kickstart file for making a dogtail-enabled livecd.
+  (clumens)
+- Add accessibility information to the welcome spoke and summary hub. (clumens)
+- Add accessibility information to some of our widgets. (clumens)
+- Don't use dhcp ntpservers for dir or image installation (bcl)
+- Implement and use decorator for logging UI storage actions (vpodzime)
+- Refactor out the code doing device reformat into a function (vpodzime)
+- Refactor out the code handling encryption change into a function (vpodzime)
+- Fix variable name when logging new fstype (vpodzime)
+- Make it possible to override translation domain in GUIObjects (#1040240)
+  (mkolman)
+- Refactor out the code for handling device size change into a function
+  (vpodzime)
+- Refactor out the code for bounding size into a function (vpodzime)
+- Refactor code for reverting device reformat into a function (vpodzime)
+- Make the code changing an existing device more compact (vpodzime)
+- Comment the part of the code changing an existing device (vpodzime)
+- Do device change logging in one place where possible (vpodzime)
+- Pass information about old and new device as a dictionary (vpodzime)
+- Move code attempting to replace device into a separate function (vpodzime)
+- Mountpoint validation should only care about the new fs type (vpodzime)
+- Make size properties refreshing reused code (vpodzime)
+- Use generator instead of list for auxiliary old_disk_names variable
+  (vpodzime)
+- Remove and unused variable in Custom spoke (vpodzime)
+- Refactor mountpoint configuration validation out from _save_right_side
+  (vpodzime)
+- Don't overload selectorFromDevice function (vpodzime)
+- Use dir_tree_map for the cleanPStore function (vpodzime)
+- Check xconfig before setting the installed displaymode (dshea)
+- DNFPayload: call close() when done with the Base. (ales)
+- Do not try to get "" translated (vpodzime)
+- Use for-cycle else: branch instead of extra variable (vpodzime)
+- Have mountpoint descriptions defined in a dictionary (vpodzime)
+- Uppercase global constants in the Custom spoke (vpodzime)
+- Use cannonical RAID level names when populating RAID stores (vpodzime)
+- No RAID level (RAID level None) is a valid choice for LVM(ThP) (vpodzime)
+- LVM Thin Provisioning supports the same RAID levels as plain LVM (vpodzime)
+- Only block the password/user spokes if data was given in kickstart (vpodzime)
+- Disable a pylint error message for now. (clumens)
+- Suppress selinux error log when using default (#1083239) (bcl)
+- Use the AnacondaWidgets python gi-overrides for pylint (dshea)
+
+* Wed Apr 02 2014 Brian C. Lane <bcl@redhat.com> - 21.31-1
+- Only install consolehelper link on livearches (bcl)
+
+* Wed Apr 02 2014 Brian C. Lane <bcl@redhat.com> - 21.30-1
+- Add support ppc64le (hamzy)
+- Validate proxy URLs (dshea)
+- Provide feedback for invalid NTP hostnames. (dshea)
+- Use GUIDialogInputCheckHandler in the advanced user dialog (dshea)
+- Add a new InputCheck status for silent failures. (dshea)
+- Add an InputCheckHandler subclass for dialogs. (dshea)
+- Generalized and improved the proxy URL parsing regex (dshea)
+- Update makebumpver for the newer python-bugzilla on rawhide. (clumens)
+- network: don't crash on virtual devices turned off (#1080640) (rvykydal)
+- network: don't pop HWADDR twice for vlan on s390 (#1061646) (rvykydal)
+- Make safe_dbus module's functions less 'safe' (vpodzime)
+- Add a list of cmdline args that append instead of replace (#1073130) (bcl)
+- safe_dbus: Don't export DBus connection addresses as variables (walters)
+
+* Wed Mar 26 2014 Brian C. Lane <bcl@redhat.com> - 21.29-1
+- Add a Makefile target to create a set of empty .po files. (dshea)
+- os.path.exists -> os.path.lexists when checking for authconfig. (clumens)
+- Add support for tarfiles to liveimg kickstart command (bcl)
+- mountExistingSystem raises an exception with dirty FS (#1080210) (vpodzime)
+- Don't do yum lock logging when using updates.img (vpodzime)
+- Pass Size(0) instead of 0 to the ContainerDialog if no size is given
+  (vpodzime)
+- Update the BaseWindow and HubWindow example UI fragments (dshea)
+- Convert GtkHBox and GtkVBox to GtkBox. (dshea)
+- Fix keyboard accelerator collisions from former stock buttons (dshea)
+- Set the secret agent icon in the glade file (dshea)
+- Remove stock labels and icons. (dshea)
+- Run the pykickstart version test on the commands in parse-dracut (dshea)
+- Don't reimport os - it's imported very early on. (clumens)
+- Use an alternative image if logo is missing (mkolman)
+- Update parse-kickstart for the new bootloader command. (clumens)
+- Make sure the error info message starts on a new line (vpodzime)
+- Define two env variables removing useless warnings (vpodzime)
+- Check boot args for None (#1075918) (bcl)
+- Revert "Enable make check in %%check and add the necessary BuildRequires"
+  (dshea)
+- Fix the argument list passed to the payloadInitialize thread (#1079628)
+  (dshea)
+- Fix filtering the _storage_playground out (vpodzime)
+- Sync up step counts in install.py with reality. (clumens)
+- Avoid the "unable to init server" message. (dshea)
+- Do not attempt to run authconfig if it doesn't exist. (clumens)
+- Allow skipping installation of the core group, if asked for in kickstart.
+  (clumens)
+- Drop the vconsole.font boot arg (#1074113) (vpodzime)
+
+* Thu Mar 20 2014 Brian C. Lane <bcl@redhat.com> - 21.28-1
+- Get the DBus session bus address in a method (dshea)
+- Specify string format arguments as logging function parameters (dshea)
+- Inhibit the screen saver on live installs (#928825) (dshea)
+- Handle the dbus method call not returning anything. (dshea)
+- Convert errors raised during dbus connection to DBusCallError (dshea)
+- driverdisk: Show selection menu for network driver isos (#1075918) (bcl)
+- Write a modprobe blacklist (#1073130) (bcl)
+- Append cmdline arg values in BootArgs (#1073130) (bcl)
+- Wait for other threads to finish before sending ready (#1075103) (bcl)
+- set proxy related environmental variables (#854029) (bcl)
+- Fix pylint error in yumpayload. (sbueno+anaconda)
+- The custom spoke requires mountPointStore and mountPointCompletion, too.
+  (clumens)
+- Make the lists of files to check consistent across all checks. (dshea)
+- Fix error handling in cmdline mode. (#1034773) (sbueno+anaconda)
+- Don't create bootloader entries for kdump initrd and kernel. (#1036086)
   (sbueno+anaconda)
-  Resolves: rhbz#1036086
-- Cover both possible ways that GUI WWID may have been set (amulhern)
-  Resolves: rhbz#1074184
-- network: apply ks configuration to devices activated in initramfs (rvykydal)
-  Resolves: rhbz#1037605
-- Make it obvious user is going to begin installation. (sbueno+anaconda)
-  Resolves: rhbz#975793
-- Fix error handling in cmdline mode. (sbueno+anaconda)
-  Resolves: rhbz#1034773
-- Do nothing if previously selected selector gets focus again (vpodzime)
-  Resolves: rhbz#1029798
-
-* Fri Mar 07 2014 Brian C. Lane <bcl@redhat.com> - 19.31.66-1
-- set proxy related environmental variables (bcl)
-  Resolves: rhbz#854029
-- network: handle race condition of disappearing active connection (rvykydal)
-  Resolves: rhbz#1073424
-- Do not write out /etc/adjtime file on s390(x) (vpodzime)
-  Resolves: rhbz#1070748
-- Don't traceback, just log a warning if connection is unavailable (mkolman)
-  Resolves: rhbz#1070928
-
-* Tue Mar 04 2014 Brian C. Lane <bcl@redhat.com> - 19.31.65-1
-- driver-updates: skip iso selection with OEMDRV (bcl)
-  Related: rhbz#1066784
+- Add a setting to network.py that got left out of the cherry-pick. (clumens)
+- Enable make check in %%check and add the necessary BuildRequires (atodorov)
+- Make it obvious user is going to begin installation. (#975793)
+  (sbueno+anaconda)
+- Move libtimezonemap requires to the anaconda-gui subpackage (vpodzime)
+- network: apply ks configuration to devices activated in initramfs (#1037605)
+  (rvykydal)
+- Add support for kickstart --interfacename for vlans (#1061646) (rvykydal)
+- network: handle race condition of disappearing active connection (#1073424)
+  (rvykydal)
+- Convert iter from filter model iter to backing store iter (#1074188)
+  (amulhern)
+- Provide ways in kickstart to skip kernel and bootloader (#1074522). (clumens)
+- DNFPayload: apply the kickstart excludedList. (ales)
+- Only pylint files that are in the git working copy (dshea)
+- Move accordion population into a separate function (vpodzime)
+- Short-circuit testing if root has any devices (vpodzime)
+- Getting new devices is not enough cheap operation for being a property
+  (vpodzime)
+- Hide and unhide the same set of disks in the Custom spoke (vpodzime)
+- Use GtkActionList when populating filesystem store (vpodzime)
+- Fix XDG_RUNTIME_DIR not set messages by creating one (dshea)
+- Make the ui_storage_logger reusable (vpodzime)
+- Decide on supported RAID levels in a better way (vpodzime)
+- Fix typo in the comment (vpodzime)
+- Add and use MountpointSelector's attributes we need (vpodzime)
+- Make code to get Size instance from user's input reusable (vpodzime)
+- Make getting raid level less hacky (vpodzime)
+- Implement a function to get container type name (vpodzime)
+- Make custom partitioning helper constants look as constants (vpodzime)
+- Simplify mountpoint validation and error reporting (vpodzime)
+- Simplify label validation and error reporting (vpodzime)
+- Move translated_new_install_name to the right place (vpodzime)
+- Rename the __storage attribute to a more propriate name (vpodzime)
+- Split out helper code from the Custom partitioning spoke (vpodzime)
+- The reset button should only be sensitive if there's something to reset.
+  (clumens)
+- Confirm before resetting custom partitioning selections (#970093). (clumens)
+- DNFPayload: Add languageGroups(). (ales)
+- Use ROOT_PATH not /mnt/sysimage (bcl)
+- Override ROOT_PATH with environmental variable (bcl)
+- Import /etc/login.defs in libuser.conf (#979815) (dshea)
+- Fix environment group changes based on ListBox row activation (dshea)
+- DNFPayload: do not crash when an addon is unavailable. (ales)
+- Payloads: make DEFAULT_REPOS a part of the interface. (ales)
+
+* Tue Mar 11 2014 Brian C. Lane <bcl@redhat.com> - 21.27-1
+- Don't disable anaconda repo on rawhide (bcl)
+- Set log level to debug when using an updates image (bcl)
+- driver-updates: accept burned driver discs (#1073719) (wwoods)
+- Do nothing if previously selected selector gets focus again (#1029798)
+  (vpodzime)
+- Firstboot is deprecated and gone on Fedora 20 and anything newer (vpodzime)
+- Reraise the exception properly (vpodzime)
+- Set progress bar to 100 %% in a different way (#1058755) (vpodzime)
+- Refresh after checkbox clicked (#1074188) (amulhern)
+- Use instclass.efi_dir when constructing the EFI path (dshea)
+- Add rescue kernels to the bootloader install list. (#1036349) (dshea)
+- Cover both possible ways that GUI WWID may have been set (#1074184)
+  (amulhern)
+- Do not write out /etc/adjtime file on s390(x) (#1070748) (vpodzime)
+- Ignore the data model and just return self.environment (mkolman)
+- Software spoke can't be complete if the payload thread is running (mkolman)
+- DNFPayload: blivet.size.Size() only knows 'spec' kwarg now. (ales)
+- Specify string format arguments as logging function parameters (dshea)
+- Add missing changelog entries (bcl)
+
+* Fri Mar 07 2014 Brian C. Lane <bcl@redhat.com> - 21.26-1
+- Don't traceback, just log a warning if connection is unavailable (#1070928)
+  (mkolman)
+- Remove unnecessary use_markup attributes. (dshea)
+- Add a check for unnecessary markup. (dshea)
+- Ignore the server keymap for spoke status if using VNC (#1045115) (dshea)
+- Call % outside of the translation (dshea)
+- Fix pylint errors about dangerous default values (dshea)
+- Typo fix (dshea)
+- driver-updates: skip iso selection with OEMDRV (#1066784) (bcl)
 - driver-updates: allow interactive mode to load multiple devices (wwoods)
-  Related: rhbz#1066784
-- driver-updates: add DoRefresh loop to select_iso() (wwoods)
-  Resolves: rhbz#1066784
+- driver-updates: add DoRefresh loop to select_iso() (#1066784) (wwoods)
 - driver-updates: add 'refresh' to selection_menu() (wwoods)
-  Related: rhbz#1066784
 - driver-updates: rework 'dd_finished' handling (wwoods)
-  Related: rhbz#1066784
 - driver-updates: refactor dd_scan (wwoods)
-  Related: rhbz#1066784
 - driver-updates: refactor menu to allow other options (wwoods)
-  Related: rhbz#1066784
-- Bump blivet Requires for DASD changes. (sbueno+anaconda)
-  Related: rhbz#1064423
-- Add GUI and TUI logic to handle unformatted DASDs. (sbueno+anaconda)
-  Resolves: rhbz#1064423
-- Show unformatted DASDs in the local disk store. (sbueno+anaconda)
-  Resolves: rhbz#1064423
-- Add dialog box to warn about formatting DASDs. (sbueno+anaconda)
-  Resolves: rhbz#1064423
-- Update disk refs when recovering from a devicefactory failure. (dlehman)
-  Resolves: rhbz#1032141
-- network kickstart: do not bind to MAC if SUBCHANNELS are present (rvykydal)
-  Resolves: rhbz#1070232
-
-* Fri Feb 28 2014 Brian C. Lane <bcl@redhat.com> - 19.31.64-1
-- Fix console for s390 and 'noshell' mode (wwoods)
-  Resolves: rhbz#1070672
+- Bump blivet Requires for DASD changes. (#1064423) (sbueno+anaconda)
+- Add GUI and TUI logic to handle unformatted DASDs. (#1064423)
+  (sbueno+anaconda)
+- Show unformatted DASDs in the local disk store. (#1064423) (sbueno+anaconda)
+- Add dialog box to warn about formatting DASDs. (#1064423) (sbueno+anaconda)
+- Update disk refs when recovering from a devicefactory failure. (#1032141)
+  (dlehman)
+- Add typelib and library paths to the test environment. (dshea)
+- Run pylint with NO_AT_BRIDGE=1 set in the environment (dshea)
+- pylint: Clean up accordion warnings (bcl)
+- Let Gtk pick the size for the isoChooserDialog (#973376) (dshea)
+- network kickstart: do not bind to MAC if SUBCHANNELS are present (#1070232)
+  (rvykydal)
+
+* Fri Feb 28 2014 Brian C. Lane <bcl@redhat.com> - 21.25-1
+- pylint: Add a pile of new E1101 exceptions (bcl)
+- pylint: change disable-msg to disable (bcl)
+- Fix console for s390 and 'noshell' mode (#1070672) (wwoods)
+- Check that the addon selection state exists before reading it (dshea)
 - Set the name in the volume group store (dshea)
-  Resolves: rhbz#1070854
-- Always run efibootmgr from ROOT_PATH (bcl)
-  Resolves: rhbz#1054968
-- Only run gtk actions in the gtk thread. (dshea)
-  Resolves: rhbz#1067405
 - Don't ignore the directory of the driver disk iso file (vpodzime)
-  Related: rhbz#1036765
-
-* Wed Feb 26 2014 Brian C. Lane <bcl@redhat.com> - 19.31.63-1
-- Revert "Force reboot the system on cmdline error. (sbueno+anaconda)"
-  Related: rhbz#1034773
-- Revert "Make it obvious user is going to begin installation.
-  (sbueno+anaconda)"
-  Related: rhbz#975793
-- Add createrepo Requires (bcl)
-  Related: rhbz#1016004
-- ListStore.remove expects an iter, not an int (clumens).
-  Resolves: rhbz#1062752
-- Don't require network in standalone spoke for media installs (rvykydal)
-  Resolves: rhbz#1066807
-- Add support for kickstart --interfacename for vlans (rvykydal)
-  Resolves: rhbz#1061646
-- network: detect also fcoe vlan device names exceeding IFNAMESIZ (rvykydal)
-  Related: rhbz#1051268
-
-* Tue Feb 25 2014 Brian C. Lane <bcl@redhat.com> - 19.31.62-1
-- driverdisk: Create a repo for network drivers (bcl)
-  Resolves: rhbz#1016004
-- fix inst.noshell (wwoods)
-  Resolves: rhbz#1058607
-- Don't use tmux for inst.noshell (wwoods)
-  Resolves: rhbz#1058607
-- driverdisk: Catch blkid failure (bcl)
-  Related: rhbz#1036765
-- driverdisk: Ignore extra blkid fields (bcl)
-  Resolves: rhbz#1036765
+- Set rpm macros in DNFPayload (dshea)
+- Implement %%packages --instLangs (#156477) (dshea)
+- Set rpm macro information in anaconda-yum. (dshea)
+- Move the anaconda-yum exception handler (#1057120) (dshea)
+- Only run gtk actions in the gtk thread. (dshea)
+- Add createrepo Requires (#1016004) (bcl)
+- Fix a traceback gathering free space info for a container. (#1069854)
+  (dlehman)
+- network: detect also fcoe vlan device names exceeding IFNAMESIZ (#1051268)
+  (rvykydal)
+- DNFPayload: display the download progress on the hub. (ales)
+- driverdisk: Fix typo in error logging (#1016004) (bcl)
+- driverdisk: Create a repo for network drivers (#1016004) (bcl)
+- driverdisk: Catch blkid failure (#1036765) (bcl)
+- driverdisk: Ignore extra blkid fields (#1036765) (bcl)
 - We can't trust rhcrashkernel-param to give us newline-free text. (pjones)
-  Related: rhbz#814813
+- Remove redundant _setCurrentFreeSpace() call (#1043763) (amulhern)
 - Enable python-coverage in anaconda (dshea)
-  Resolves: rhbz#1066339
-- Remove redundant _setCurrentFreeSpace() call (amulhern)
-  Related: rhbz#1043763
+- Move the sidebar to the right for RTL languages (dshea)
+- Remove a bunch of unused includes and tests for headers (dshea)
+- Add a note about when and how to remove isys.sync (dshea)
+- Remove isys.isPseudoTTY (dshea)
+- Convert isys.isIsoImage to python code (dshea)
+- Focus the language search input by default (#973967) (dshea)
 - Ensure media being verified is always unmounted (dshea)
-  Resolves: rhbz#1050943
 - Write 'text'/'cmdline' in anaconda-ks.cfg in text/cmdline mode (wwoods)
-  Related: rhbz#1021963
-- text install -> text system (wwoods)
-  Resolves: rhbz#1021963
+- text install -> text system (#1021963) (wwoods)
 - Support the 'skipx' kickstart command (wwoods)
-  Related: rhbz#1021963
-- setup default environment in initialize instead of refresh (bcl)
-  Resolves: rhbz#1066972
+- let systemd decide when to start anaconda-sshd (wwoods)
+- Don't use tmux for inst.noshell (#1058607) (wwoods)
 - Fix a nitpick from bcl. (pjones)
-  Related: rhbz#814813
-- Force reboot the system on cmdline error. (sbueno+anaconda)
-  Resolves: rhbz#1034773
 - Make rhcrashkernel-param get run on non-GRUB 2 platforms. (pjones)
-  Resolves: rhbz#814813
-- fix typo, extra bracket (bcl)
-  Resolves: rhbz#1067758
-- Do not use shim.efi on ARMv8 aarch64 (dmarlin)
-  Resolves: rhbz#1067758
-- Handle missing environments specified through kickstart (clumens).
-  Resolves: rhbz#1067492
-- Add 'c' to continue to timezone TUI spoke. (sbueno+anaconda)
-  Resolves: rhbz#979335
-- Make it obvious user is going to begin installation. (sbueno+anaconda)
-  Resolves: rhbz#975793
-
-* Fri Feb 21 2014 Brian C. Lane <bcl@redhat.com> - 19.31.61-1
-- Skip running efibootmgr for image and dir installations (bcl)
-  Resolves: rhbz#1067749
-- reiserfs is not supported (bcl)
-  Resolves: rhbz#1066635
-- Show hidden disk images (bcl)
-  Resolves: rhbz#1034996
-- remove epdb SIGHUP debug handler (bcl)
-  Related: rhbz#1065557
-- Preserve ipv6.disable=1 on target system (wwoods)
-  Resolves: rhbz#1040751
-- Check that s390x LVM configuration is valid. (sbueno+anaconda)
-  Resolves: rhbz#873135
-  Resolves: rhbz#885011
-- Re-apply disk selection on error in TUI storage. (sbueno+anaconda)
-  Resolves: rhbz#1056316
-- Disable tmpfs in the GUI (mkolman)
-  Resolves: rhbz#1061666
-- Change the CSS class name of the sidebar (clumens).
-  Resolves: rhbz#1067049
-- Error on "bootloader --location=partition" when using grub2 (clumens).
-  Resolves: rhbz#969095
-- Fix heredoc usage in generated /etc/grub.d/01_users (dcantrell).
-  Resolves: rhbz#1044404
-
-* Tue Feb 18 2014 Brian C. Lane <bcl@redhat.com> - 19.31.60-1
-- Set mandatory property in network tui spoke. (sbueno+anaconda)
-  Resolves: rhbz#1064139
-- Disallow /boot on RAID on s390x. (sbueno+anaconda)
-  Resolves: rhbz#1027670
-- Use devicetree.resolveDevice instead of udev_resolve_devspec. (dlehman)
-  Resolves: rhbz#1047338
-- Set ThreadManager.any_errors to be a property (dshea)
-  Resolves: rhbz#1066467
-- driverdisk: Parse all blkid output (bcl)
-  Resolves: rhbz#857248
-  Related: rhbz#1036765
-- Use vc_keymap as X layout only if we get nothing from localed (vpodzime)
-  Resolves: rhbz#1066018
-- Tell libreport if it is a final release or not (vpodzime)
-  Resolves: rhbz#1063690
+- Cast the blame appropriately when the kernel refuses efivars changes.
+  (pjones)
+- Do not use shim.efi on ARMv8 aarch64 (#1067758) (dmarlin)
+- Handle missing environments specified through kickstart (#1067492). (clumens)
+- create_sparse_file in blivet now expects a Size object. (clumens)
+- Don't traceback when no size is given in kickstart (#1067707). (clumens)
+
+* Fri Feb 21 2014 Brian C. Lane <bcl@redhat.com> - 21.24-1
+- setup default environment in initialize (bcl)
+- Move environmentAddons into packaging (bcl)
+- Skip running efibootmgr for image and dir installations (#1067749) (bcl)
+- Move translatable format strings into python. (dshea)
+- Added a check for translatable format strings in glade. (dshea)
+- Use a single script to run the glade tests. (dshea)
+- Check that s390x LVM configuration is valid. (#873135, 885011)
+  (sbueno+anaconda)
+- Re-apply disk selection on error in TUI storage. (#1056316) (sbueno+anaconda)
+- Properly retry package downloads (#924860) (mkolman)
+- Change the CSS class name of the sidebar (#1067049). (clumens)
+- Preserve ipv6.disable=1 on target system (#1040751) (wwoods)
+- Remove an unused import in driver-updates. (clumens)
+- Fix heredoc usage in generated /etc/grub.d/01_users (#1044404). (dcantrell)
+
+* Tue Feb 18 2014 Brian C. Lane <bcl@redhat.com> - 21.23-1
+- driverdisk: Parse all blkid output (#857248) (bcl)
 - Fix blkid output parsing and our output (vpodzime)
-  Related: rhbz#1036765
-
-* Fri Feb 14 2014 Brian C. Lane <bcl@redhat.com> - 19.31.59-1
-- Allow using globs and alternative paths for specifying boot drive (clumens).
-  Resolves: rhbz#1057282
-- Remove app_paintable from a couple nav boxes (clumens).
-  Resolves: rhbz#1064708
-- Allow catching exceptions from threads (vpodzime)
-  Resolves: rhbz#1063705
-
-* Tue Feb 11 2014 Brian C. Lane <bcl@redhat.com> - 19.31.58-1
-- adding support for new rhel7 branding graphics (duffy)
-  Related: rhbz#1045250
-- Properly retry package downloads (mkolman)
-  Resolves: rhbz#924860
-- Mark language search string in welcome spoke translatable. (sbueno+anaconda)
-  Resolves: rhbz#955229
-- Automatically reboot after successful cmdline installation. (sbueno+anaconda)
-  Resolves: rhbz#1056507
-- dracut: add when_any_cdrom_appears for cdrom autoprobe (wwoods)
-  Resolves: rhbz#1049237
-- Update the Aarch64 packages to include efibootmgr (dmarlin)
-  Resolves: rhbz#1061927
-- kickstart user accounts should be locked by default (bcl)
-  Resolves: rhbz#1063554
-- Move save_netinfo into a hook (bcl)
-  Resolves: rhbz#1048231
-- Fix kickstart 'updates' command (wwoods)
-  Resolves: rhbz#999898
-- Make sure LUKS devices can say they have a key (amulhern)
-  Resolves: rhbz#1060255
-- Handle LUKS passphrase before doing sanity check (amulhern)
-  Resolves: rhbz#1060255
-- Remove some unnecessary resets (amulhern)
-  Related: rhbz#1060255
+- Don't use positional arguments to initialize Gtk objects (dshea)
+- Set mandatory property in network tui spoke. (#1064139) (sbueno+anaconda)
+- Disallow /boot on RAID on s390x. (#1027670) (sbueno+anaconda)
+- Remove a stray break statement (dshea)
+- Use devicetree.resolveDevice instead of udev_resolve_devspec. (#1047338)
+  (dlehman)
+- Set ThreadManager.any_errors to be a property (dshea)
+- Error on "bootloader --location=partition" when using grub2 (#969095).
+  (clumens)
+- Fix the handling of kernel parameters with no = (#1065704) (dshea)
+- Deal with a couple more "except Exception" lines. (clumens)
+- Fix pylint errors in the latest dnf-related commit. (clumens)
+- DNFPayload: pick the right FS as package download target. (ales)
+- DNFPayload: log import crashes. (ales)
+- DNFPayload: use dnf.exceptions.MarkingError. (ales)
+- Return the returned value in the fire_gtk_action (vpodzime)
+- Allow AddonData classes to parse options in the %%addon line (dshea)
+- Pass ints to Gtk resize functions (#1065021) (bcl)
+
+* Fri Feb 14 2014 Brian C. Lane <bcl@redhat.com> - 21.22-1
+- Remove app_paintable from a couple nav boxes (#1064708). (clumens)
+- Give a more correct error for missing groups/packages on exclude (#1060194).
+  (clumens)
+- Fix some incorrect RPM macros in the spec file. (clumens)
+- Allow using globs and alternative paths for specifying boot drive (#1057282).
+  (clumens)
+- Don't reset input check status when disabling a check (#1062273) (dshea)
+- Fix how an input check is disabled (#1062275). (dshea)
+- ListStore.remove expects an iter, not an int (#1062752). (clumens)
+
+* Tue Feb 11 2014 Brian C. Lane <bcl@redhat.com> - 21.21-1
+- Move save_netinfo into a hook (#1048231) (bcl)
+- Cleanup log message for pylint (bcl)
+- kickstart user accounts should be locked by default (#1063554) (bcl)
+- pre-push hook checking bugzilla IDs on rhelX branches (vpodzime)
+- Make sure LUKS devices can say they have a key (#1060255) (amulhern)
+- Handle LUKS passphrase before doing sanity check (#1060255) (amulhern)
+- Remove some unnecessary resets (#1060255) (amulhern)
 - Do not consider no available LUKS passphrase an error in do_autopart
+  (#1060255) (amulhern)
+- Adapt to new blivet.sanityCheck() return type (#1060255) (amulhern)
+- Adapt StorageChecker class for changed return type of sanityCheck (#1060255)
+  (amulhern)
+- Add sanityCheck functionality back into AutoPart.execute() (#1060255)
   (amulhern)
-  Resolves: rhbz#1060255
-- Adapt to new blivet.sanityCheck() return type (amulhern)
-  Related: rhbz#1060255
-- Adapt StorageChecker class for changed return type of sanityCheck (amulhern)
-  Related: rhbz#1060255
-- Add sanityCheck functionality back into AutoPart.execute() (amulhern)
-  Related: rhbz#1060255
 - Bump blivet version for changed sanityCheck() interface (amulhern)
-  Related: rhbz#1060255
-- Removed unused ErrorRecoveryFailure import (amulhern)
-  Related: rhbz#1060255
+- UnmanagedDeviceError and UnknownConnectionError are in the nm module.
+  (clumens)
+- blivet no longer has a protectedDevices property. (clumens)
 - network: adapt to changed handling of devices without carrier in NM
-  (rvykydal)
-  Resolves: rhbz#1062417
-- Once again fix cmdline error handling. (sbueno+anaconda)
-  Resolves: rhbz#1034773
-- On incomplete ks, don't automatically proceed with install. (sbueno+anaconda)
-  Resolves: rhbz#1034282
-- Add correct kernel params if rootfs is btrfs on s390x. (sbueno+anaconda)
-  Resolves: rhbz#874622
-
-* Fri Feb 07 2014 Brian C. Lane <bcl@redhat.com> - 19.31.57-1
-- driverdisk: Use a single systemd service to start DD UI (bcl)
-  Related: rhbz#1035663
-- driverdisk: Add dd_args_ks handling to driver-updates (bcl)
-  Resolves: rhbz#1035663
-- driverdisk: Process kickstart driverdisk commands (bcl)
-  Related: rhbz#1035663
-- driverdisk: Handle kickstart driverdisk command (bcl)
-  Related: rhbz#1035663
-- driverdisk: Use getargs instead of the env variable (bcl)
-  Related: rhbz#1035663
-- If a user has been created, don't allow entering the user spoke (clumens).
-  Resolves: rhbz#1058564
+  (#1062417) (rvykydal)
+- driverdisk: Rename skip_dds to make pylint happy (bcl)
+- driverdisk: Use a single systemd service to start DD UI (#1035663) (bcl)
+- driverdisk: Add dd_args_ks handling to driver-updates (#1035663) (bcl)
+- driverdisk: Process kickstart driverdisk commands (#1035663) (bcl)
+- driverdisk: Handle kickstart driverdisk command (#1035663) (bcl)
+- driverdisk: Use getargs instead of the env variable (#1035663) (bcl)
+- Remove now-unused isys/devices.[ch]. (clumens)
+- Call finalize functions in parent classes. (dshea)
 - Fix crashes in the LayoutIndicator dispose function. (dshea)
-  Resolves: rhbz#1061206
-- Add support for fcoe --autovlan option (rvykydal)
-  Resolves: rhbz#1055779
 - Require systemd (dshea)
-  Resolves: rhbz#1060823
 - Remove the now-unused anaconda_spoke_header.png. (clumens)
-  Related: rhbz#1045250
-- Minor aesthetic cleanups (duffy).
-  Resolves: rhbz#1045250
-- Add a topbar design to SpokeWindows. (duffy)
-  Resolves: rhbz#1045250
-- Prevent kickstart parsing errors from ending up in boot options (mkolman)
-  Resolves: rhbz#1060184
-- Add a sidebar to the standalone and hub windows (duffy)
-  Resolves: rhbz#1045250
-- Allow specifying an environment in the kickstart file (clumens).
-  Resolves: rhbz#1050994
+- Minor aesthetic cleanups (#1045250). (duffy)
+- Add a topbar design to SpokeWindows. (#1045250) (duffy)
+- Update the Aarch64 packages to include efibootmgr. (dmarlin)
+- Add a sidebar to the standalone and hub windows (#1045250) (duffy)
+- Allow specifying an environment in the kickstart file (#1050994). (clumens)
 - The autopart scheme combo should work for creating partitions manually, too.
   (clumens)
-  Related: rhbz#1014671
-- Global screenshot support (mkolman)
-  Related: rhbz#1025038
-
-* Tue Feb 04 2014 Brian C. Lane <bcl@redhat.com> - 19.31.56-1
-- Add option help text for --image and --dirinstall flags (amulhern)
-  Resolves: rhbz#1056791
-- Search for service files of all first boot utilities (vpodzime)
-  Resolves: rhbz#1060698
-- Check RAID10 box for BTRFS (amulhern)
-  Resolves: rhbz#1021856
-- Remove unused import (amulhern)
-  Related: rhbz#1022497
-- Change the string used to test for serial console (dmarlin)
-  Resolves: rhbz#1054951
-
-* Fri Jan 31 2014 Brian C. Lane <bcl@redhat.com> - 19.31.55-1
-- Fix iscsi target selection checkbox in GUI (rvykydal)
-  Resolves: rhbz#1058653
-- Don't Require NetworkManager-config-server (rvykydal)
-  Resolves: rhbz#1012511
-  Related: rhbz#1012511
-- Set progress bar to 100 %% in a different way (vpodzime)
-  Resolves: rhbz#1058755
-- Do not add step for realmd if we are not gonna run it (vpodzime)
-  Related: rhbz#1058755
+
+* Tue Feb 04 2014 Brian C. Lane <bcl@redhat.com> - 21.20-1
+- makebumpver: Any failure should cancel the bump (bcl)
+- Add option help text for --image and --dirinstall flags (#1056791) (amulhern)
+- Update bumpver to allow Related bugs (bcl)
+- Fix up some pylint errors. (clumens)
+- If a user has been created, don't allow entering the user spoke (#1058564).
+  (clumens)
+- Tweak passphrase wording a bit. (clumens)
+- Tweak the final progress messages to fit on the screen a little better
+  (#1058463). (clumens)
+- Fix iscsi target selection checkbox in GUI (#1058653) (rvykydal)
+- network ks: allow setting only hostname with network command (#1051564)
+  (rvykydal)
+- fcoe: add fcoe=<NIC>:<EDB> to boot options for nics added manually (#1040215)
+  (rvykydal)
+- network GUI: ignore fcoe vlan devices (#1051268) (rvykydal)
+- Use an unused variable. (dshea)
+- Ignore an unused function warning on isys_init (dshea)
+- Remove unused isys files. (dshea)
+- Fix the handling of realloc failures. (dshea)
+- Run cppcheck on the C source files. (dshea)
+- Check RAID10 box for BTRFS (#1021856) (amulhern)
 - Make sure directory for DD extraction exists (vpodzime)
-  Related: rhbz#1016004
-- Removed unused variable (amulhern)
-  Resolves: rhbz#982164
-  Related: rhbz#982164
-- Handle --image arguments more thoroughly (amulhern)
-  Resolves: rhbz#982164
+- Handle --image arguments more thoroughly (#982164,#994488) (amulhern)
+- Remove the border from the custom part notebook. (clumens)
 - Style the Done button to make it more noticable (mizmo). (clumens)
-  Related: rhbz#1045250
-- Display free space remaining in containers (clumens).
-  Resolves: rhbz#1035832
-- If a root password is set, don't show the spoke (clumens).
-  Resolves: rhbz#1041405
+- Change the string used to test for serial console (#1054951) (dmarlin)
 
-* Tue Jan 28 2014 Brian C. Lane <bcl@redhat.com> - 19.31.54-1
-- Set an upper limit on uids and gids. (dshea)
-  Resolves: rhbz#1053103
-- Change the reclaim space button rules (bcl)
-  Resolves: rhbz#980496
-  Related: rhbz#980496
-- Check the validity of generated usernames in TUI (dshea)
-  Resolves: rhbz#1058634
-- Allow capital letters in usernames (dshea)
-  Resolves: rhbz#1058638
-- Display custom part warnings/errors on the spoke itself (clumens).
-  Resolves: rhbz#975840
-- Use integer numbers of megabytes in the Reclaim dialog (vpodzime)
-  Resolves: rhbz#1034232
+* Tue Jan 28 2014 Brian C. Lane <bcl@redhat.com> - 21.19-1
+- Change the reclaim space button rules (#980496) (bcl)
+- Revert "Fix up username checking regex a bit." (dshea)
+- Fix a pylint-caught problem from my previous cherry-pick. (clumens)
+- Give priority to IPv4 addresses when showing VNC & SSH IP (#1056420)
+  (mkolman)
+- Display custom part warnings/errors on the spoke itself (#975840). (clumens)
+- Fix listing threads that caused an error (vpodzime)
+- Do not add errors item for thread in advance (vpodzime)
+- Log exceptions before running exception handling (vpodzime)
+- Fix kickstart 'updates' command (#1056727) (wwoods)
+- Fix exitHandler loop deactivation (bcl)
+- Show hidden disk images (#1034996) (bcl)
 - Fix pylint errors (dshea)
-  Related: rhbz#1021506
-- Move the Quit button to the right and make it consistently sized (clumens).
-  Resolves: rhbz#1038802
-- Change the product name we key off (clumens).
-  Resolves: rhbz#1055019
-- Don't include zero sized disks in the custom part UI either (clumens).
-  Resolves: rhbz#903131
-- "Delete All" on the reclaim dialog should not delete hdiso source (clumens).
-  Resolves: rhbz#980496
-- Add a scrollbar to the error dialog (clumens).
-  Resolves: rhbz#1021506
-- Don't show the language twice for keyboard layouts. (dshea)
-  Resolves: rhbz#1021849
-
-* Fri Jan 24 2014 Brian C. Lane <bcl@redhat.com> - 19.31.53-1
-- Put Xorg on tty6 in accordance with Ancient Anaconda Tradition (wwoods)
-  Resolves: rhbz#980062
-- handle "ks=cdrom[:<path>]" on systems with multiple CDs (wwoods)
-  Resolves: rhbz#1049237
-- Fix page logic in driver selection (bcl)
-  Resolves: rhbz#1055333
+- Provide a maximum width to the betanag dialog. (clumens)
+- Don't include zero sized disks in the custom part UI either (#903131).
+  (clumens)
+- Move the Quit button to the right and make it consistently sized (#1038802).
+  (clumens)
+- "Delete All" on the reclaim dialog should not delete hdiso source (#980496).
+  (clumens)
+- Add a scrollbar to the error dialog (#1021506). (clumens)
+- Change the product name we key off (#1055019). (clumens)
+- Another dracut pylint change. (dshea)
+- Fix page logic in driver selection (#1055333) (bcl)
+- Give users way to select DD ISO interactively (#1036765) (vpodzime)
+- Make network-fetched driver disk .iso files work (#1003595) (vpodzime)
+- Disable pylint messages too annoying to deal with. (dshea)
+- Fix unused variable warnings (dshea)
+- Remove unused imports (dshea)
+- Specify string format arguments as logging function parameters (dshea)
+- Remove the raidstart and raidstop commands (dshea)
+- Expand the reach of pylint (dshea)
+- Put Xorg on tty6 in accordance with Ancient Anaconda Tradition (#980062)
+  (wwoods)
+- Fix the handling of kickstart NFS repos with options (#1045528) (dshea)
+- Skip empty layout-variant specifications when setting layouts (#1057442)
+  (vpodzime)
+
+* Thu Jan 23 2014 Brian C. Lane <bcl@redhat.com> - 21.18-1
+- Use validate_label to check whether label should be updated (#1038590)
+  (amulhern)
+- Always reject label if the format exists (#1038590) (amulhern)
+- Make label field always sensitive (#1038590) (amulhern)
+- Save module list after initial module load (#1050352) (bcl)
+- Require gtk3 and glib2 documentation to build (dshea)
+- Rename get_widgets_datadir to anaconda_get_widgets_datadir. (dshea)
+- Include the annotation-glossary (dshea)
+- Set device.format.label field close to where we read it (#1056139) (amulhern)
+- Install the rpmrc file to the initrd.img (#1016004) (vpodzime)
+- Give users hint about VNC password restrictions (#1053546) (vpodzime)
+- Be more liberal in what is accepted as a size unit. (dshea)
+- Remove en_spec parameters from blivet.size.Size. (dshea)
+
+* Tue Jan 21 2014 Brian C. Lane <bcl@redhat.com> - 21.17-1
+- Test for DataHolder Class (#1034427) (bcl)
+- Use DataHolder for TUI nfs data (#1034427) (bcl)
+- Add DataHolder class (#1034427) (bcl)
+- Handle inst.{gpt,dnf,extlinux} using cmdline.getbool() (wwoods)
+- Drop unreferenced 'useIPv[46]' flag (wwoods)
+- Don't force shell on tty2 (#980062) (wwoods)
+- add comment about boot-options.txt (wwoods)
+- Add support for getting stage2 image from boot.iso (#1035514) (mkolman)
+- Various changes to handling of filesystem label setting (#1038590) (amulhern)
+- Fix translation context on the storage options dialogs. (clumens)
 - Fix problems going into custom partitioning with the new work flow. (clumens)
-  Related: rhbz#1014671
-- Allow going to the reclaim dialog even for autopart (clumens).
-  Resolves: rhbz#1014671
-- Add the autopart type combo to custom storage (clumens).
-  Resolves: rhbz#1014671
-- Tweak DiskOverview spacing a little bit (clumens).
-  Resolves: rhbz#1014671
-- Add custom part and encryption buttons to the main storage spoke (clumens).
-  Resolves: rhbz#1014671
-- Remove the existing install_options1 dialog, rename the others (clumens).
-  Resolves: rhbz#1014671
-- Extend the timeout period to 180s in the case of cmdline error.
+- Don't show actions next to free space lines in the reclaim dialog (#1054208).
+  (clumens)
+- If there's a label in the ISO device combo, put it on a new line (#1031727).
+  (clumens)
+- Make the device name in a MountpointSelector less wide (#1048583). (clumens)
+- If a root password is set, don't show the spoke (#910355, #1041405).
+  (clumens)
+- Check for certain disk attrs before trying to access them. (#1053055)
   (sbueno+anaconda)
-  Resolves: rhbz#1034773
-
-* Thu Jan 23 2014 Brian C. Lane <bcl@redhat.com> - 19.31.52-1
-- Only eject CDROM devices we're actually using (wwoods)
-  Resolves: rhbz#966495
-- Use validate_label to check whether label should be updated (mulhern)
-  Related: rhbz#1038590
-- Always reject label if the format exists (mulhern)
-  Related: rhbz#1038590
-- Make label field always sensitive (mulhern)
-  Related: rhbz#1038590
-- Give users way to select DD ISO interactively (vpodzime)
-  Resolves: rhbz#1036765
-- Save module list after initial module load (bcl)
-  Resolves: rhbz#1050352
-
-* Wed Jan 22 2014 Brian C. Lane <bcl@redhat.com> - 19.31.51-1
-- fcoe: add fcoe=<NIC>:<EDB> to boot options for nics added manually (rvykydal)
-  Resolves: rhbz#1040215
-- Be more liberal in what is accepted as a size unit. (dshea)
-  Resolves: rhbz#1039485
-- Set device.format.label field close to where we read it (amulhern)
-  Resolves: rhbz#1056139
-- network: set ONBOOT=yes for iface used during DVD (hd:) installation
-  (rvykydal)
-  Resolves: rhbz#1052898
-- Fix tb due to non-existant disk attr. (sbueno+anaconda)
-  Resolves: rhbz#1056019
-  Resolves: rhbz#1054746
-- Install the rpmrc file to the initrd.img (vpodzime)
-  Resolves: rhbz#1016004
-- Give users hint about VNC password restrictions (vpodzime)
-  Resolves: rhbz#1053546
-- Unlock encrypted partitions before finding installations (vpodzime)
-  Resolves: rhbz#1043783
-
-* Mon Jan 20 2014 Brian C. Lane <bcl@redhat.com> - 19.31.50-1
-- Use DataHolder for TUI nfs data (bcl)
-  Resolves: rhbz#1034427
-- Add DataHolder class (bcl)
-  Related: rhbz#1034427
-  Resolves: rhbz#1034427
-- Various changes to handling of filesystem label setting (mulhern)
-  Related: rhbz#1038590
-- Don't show actions next to free space lines in the reclaim dialog (clumens).
-  Resolves: rhbz#1054208
-- If there's a label in the ISO device combo, put it on a new line (clumens).
-  Resolves: rhbz#1031727
-- network: don't activate default auto connections after switchroot (rvykydal)
-  Resolves: rhbz#1012511
-- network ks: allow setting only hostname with network command (rvykydal)
-  Resolves: rhbz#1051564
-
-* Fri Jan 17 2014 Brian C. Lane <bcl@redhat.com> - 19.31.49-1
-- Show labels on Add zFCP dialog. (sbueno+anaconda)
-  Resolves: rhbz#1054675
-- Check for certain disk attrs before trying to access them. (sbueno+anaconda)
-  Resolves: rhbz#1053055
-- Change the name of the system z devices panel. (sbueno+anaconda)
-  Related: rhbz#1024949
-  Resolves: rhbz#1024949
-- Fix selector device matching for unallocated partitions. (dlehman)
-  Resolves: rhbz#1044523
-- Grow the spoke gradient image to fit the nav_area (clumens).
-  Resolves: rhbz#1035772
-- Remove the UID and GID maximums. (dshea)
-  Resolves: rhbz#1053103
-
-* Thu Jan 16 2014 Brian C. Lane <bcl@redhat.com> - 19.31.48-1
+- Use gtk_get_locale_direction. (dshea)
+- Always run efibootmgr from ROOT_PATH (bcl)
+- A class for scheduling Gtk actions and running them all at once (vpodzime)
+- Remove some leftover float conversions. (dshea)
+- Use uint64 for the resize target size. (dshea)
 - Return program output as a string instead of a list (dshea)
-  Resolves: rhbz#1054142
-
-* Thu Jan 16 2014 Vratislav Podzimek <vpodzime@redhat.com> - 19.31.47-1
-- Fix closest mirror showing up when it shouldn't (mkolman)
-  Resolves: rhbz#1031663
-- There is no raid module on rhel7-branch (vpodzime)
-  Related: rhbz#1052446
-- Skip empty layout-variant specifications when setting layouts (vpodzime)
-  Resolves: rhbz#1054083
-- Add left and right margins to the Progress hub (vpodzime)
-  Resolves: rhbz#1039556
-- Disallow /boot on btrfs subvolume until grubby supports it. (dlehman)
-  Resolves: rhbz#1052446
-- Decode potentially 8-bit strings in TUI windows (dshea)
-  Resolves: rhbz#1046836
-- Do not translate strings defined at the module or class level. (clumens)
-  Related: rhbz#1046836
-- Require package for proper reporting to RHEL bugzilla (vpodzime)
-  Related: rhbz#1015093
-
-* Tue Jan 14 2014 Brian C. Lane <bcl@redhat.com> - 19.31.46-1
-- Fix typo (bcl)
-  Resolves: rhbz#1032066
-
-* Tue Jan 14 2014 Brian C. Lane <bcl@redhat.com> - 19.31.45-1
-- Get rid of the clear button in advanced storage spoke. (sbueno+anaconda)
-  Related: rhbz#1024949
-  Resolves: rhbz#1024949
-- Fix failure to search by LUN in advanced storage spoke. (sbueno+anaconda)
-  Resolves: rhbz#1026822
-- Fix up the z Panel in advanced storage. (sbueno+anaconda)
-  Resolves: rhbz#1024949
-- Add support for adding zFCP devices in the GUI (sbueno+anaconda)
-  Resolves: rhbz#994423
-- Clean up rebase artifacts from previous commit. (dlehman)
-  Related: rhbz#1029630
-- Fix minimal install selection with incomplete kickstart (mkolman)
-  Resolves: rhbz#1032066
-- Disallow /boot on lvm until grub2 fully supports it. (dlehman)
-  Resolves: rhbz#967880
-- Handle cancelation of device resize in the custom spoke. (dlehman)
-  Resolves: rhbz#1029630
-- Handle non-leaf btrfs volumes with mountpoints. (dlehman)
-  Resolves: rhbz#1026210
-- Make sure to actually set the autopart flag when needed. (dlehman)
-  Resolves: rhbz#1023584
-- Make sure upper and lower bounds for resize are applied. (dlehman)
-  Resolves: rhbz#1023190
-- Disregard raid level combo when it isn't applicable. (dlehman)
-  Resolves: rhbz#1020370
-- Make the clear icon functional in language spoke. (sbueno+anaconda)
-  Resolves: rhbz#1051609
-- Remove the reference to "anaconda" in reIPL. (sbueno+anaconda)
-  Resolves: rhbz#1052167
-- Fix traceback on s390x bootloader install. (sbueno+anaconda)
-  Resolves: rhbz#1052167
-- Additional completion checks in network spoke. (sbueno+anaconda)
-  Resolves: rhbz#1044571
-- Fix interactive partitioning with incomplete kickstart (mkolman)
-  Resolves: rhbz#1032124
-
-* Mon Jan 13 2014 Brian C. Lane <bcl@redhat.com> - 19.31.44-1
+- Implement and use a function for one-off running Gtk actions (vpodzime)
 - Be more defensive when getting layouts and their variants (vpodzime)
-  Related: rhbz#1024774
 - Implement and use functions for conversion between keymaps and layouts
   (vpodzime)
-  Related: rhbz#1024774
-- Provide our own sorting functions for regions and timezones (vpodzime)
-  Resolves: rhbz#1025029
-- Translate timezones in GUI (vpodzime)
-  Resolves: rhbz#1015209
-- Make layout and switching options description translated (vpodzime)
-  Resolves: rhbz#1015209
-- Update dumping of network info for new nmcli interface (rvykydal)
-  Resolves: rhbz#1048166
-- network: do not crash when device for network --device is not found
-  (rvykydal)
-  Resolves: rhbz#1023829
-- network GUI: don't crash when wifi is activated in standalone spoke
-  (rvykydal)
-  Resolves: rhbz#1046138
-- network GUI: ignore fcoe vlan devices (rvykydal)
-  Resolves: rhbz#1051268
-
-* Fri Jan 10 2014 Brian C. Lane <bcl@redhat.com> - 19.31.43-1
-- Fix the release notes image cycler. (dshea)
-  Resolves: rhbz#1049967
-- Error gracefully if we have a question in cmdline mode. (sbueno+anaconda)
-  Resolves: rhbz#869731
+- Fix reset of existing device to its original size. (dlehman)
+- Don't disable checks for global at the module level. (dshea)
+- Clean up the pylint-false-positives. (dshea)
+- Remove pylint comments that are no longer necessary (dshea)
+- Allow pylint-false-positives to end with a newline (dshea)
+- Change storage widget visibility based on disks selected. (clumens)
+- Rename widgets in the two remaining options dialogs. (clumens)
+- Allow going to the reclaim dialog even for autopart (#1014671). (clumens)
+- Add the autopart type combo to custom storage (#1014671). (clumens)
+- Tweak DiskOverview spacing a little bit (#1014671). (clumens)
+- Add custom part and encryption buttons to the main storage spoke (#1014671).
+  (clumens)
+- Remove the existing install_options1 dialog, rename the others (#1014671).
+  (clumens)
+- Grow the spoke gradient image to fit the nav_area (#1035772). (clumens)
+- Additional completion checks in network spoke. (#1044571) (sbueno+anaconda)
+- Fix problems reported by pylint (dshea)
+- Decode potentially 8-bit strings in TUI windows (dshea)
+
+* Fri Jan 10 2014 Brian C. Lane <bcl@redhat.com> - 21.16-1
+- Use blivet.size.Size for all size quantities. (dlehman)
+- make anaconda-shell (wwoods)
+- handle "ks=cdrom[:<path>]" on systems with multiple CDs (#1049237) (wwoods)
+- dracut: add when_any_cdrom_appears for cdrom autoprobe (wwoods)
+- dracut: minor shell cleanup (wwoods)
+- fix inst.noshell (#807703) (wwoods)
+- Error gracefully if we have a question in cmdline mode. (#869731)
+  (sbueno+anaconda)
 - Verify that designated label can be set (#1038590) (amulhern)
-  Related: rhbz#1038590
 - Do not change sensitivity of label field (#1038590) (amulhern)
-  Related: rhbz#1038590
-- Also update POTFILES.in for the new category name (clumens).
-  Resolves: rhbz#1050053
-- Rename network spoke header (mkolman).
-  Resolves: rhbz#1050053
-- Rename the network config spoke a little bit (clumens).
-  Resolves: rhbz#1050053
-- Consolidate storage and networking under one category (clumens).
-  Resolves: rhbz#1050053
-- Fix bool parsing of boot options with inst. prefix (mkolman)
-  Resolves: rhbz#1044391
-- Treat the output of vncpasswd as binary data, since it is (dshea)
-  Resolves: rhbz#1045162
+- Make the clear icon functional in language spoke. (sbueno+anaconda)
+- Fix the translated pango markup check (dshea)
+- Remove iutil.strip_markup. (dshea)
+- Pass additional command-line arguments to pylint (dshea)
+- Fix and ignore markup warnings where appropriate (dshea)
+- Check that the Pango markup in glade files is valid (dshea)
+- Added a pylint module to check pango markup. (dshea)
+- Split the po-based translation code into a separate file. (dshea)
+- Fix bool parsing of boot options with inst. prefix (#1044391) (mkolman)
+- Use vc_keymap as X layout only if we get nothing from localed (#1048592)
+  (vpodzime)
+- Warn user if entering LUKS password with non-ASCII characters (#1039168)
+  (vpodzime)
+- Add back some erroneously removed set_use_underline calls (dshea)
+- Only show the "DATA" heading if there are data mount points under it.
+  (clumens)
+- Don't allow the advanced user dialog to be saved with errors (dshea)
+- Move the add_check stuff into helper classes. (dshea)
+- Remove the UID and GID maximums. (#978846) (dshea)
+- Fix an invalid mnemonic widget reference in passphrase entry (dshea)
+- Added checks for some potential issues in glade files (dshea)
+- Remove scrot dependency for global screenshot support (mkolman)
+- Fix mnemonic widget reference id (vpodzime)
+
+* Tue Jan 07 2014 Brian C. Lane <bcl@redhat.com> - 21.15-1
+- Use the new Gtk.ListBox for displaying environments and addons (#1039683).
+  (clumens)
+- Display additional disk attributes in TUI storage spoke. (#1024760)
+  (sbueno+anaconda)
+- Fix 'select all disks' logic in TUI storage spoke. (sbueno+anaconda)
+- Ignore the compile script (dshea)
+- network GUI: don't crash when wifi is activated in standalone spoke
+  (#1046138) (rvykydal)
+- Use the right test for there being any storage actions. (clumens)
+- Only display the actions summary dialog if there are any actions (#1030511).
+  (clumens)
+- Do not support kickstart+live installs (#1027160). (clumens)
+- We no longer directly use libnl (#1034830). (clumens)
+- Remove _transactionErrors from yumpayload.py. (clumens)
+- Move xhost handling to the xinit script (#1045280) (dshea)
+- Check for ready before baseRepo in completed (#1044985) (bcl)
+- Treat the output of vncpasswd as binary data, since it is (#1045119) (dshea)
 - Add iutil.exec* options for handling binary data (dshea)
-  Related: rhbz#1045162
-- Do not allow 'root' as a user name (vpodzime)
-  Resolves: rhbz#1032671
-- Add Shell spoke to s390x installations (vpodzime)
-  Resolves: rhbz#1019248
-- Put TUI spokes in common categories (vpodzime)
-  Related: rhbz#1019248
-
-* Tue Jan 07 2014 Brian C. Lane <bcl@redhat.com> - 19.31.42-1
-- Display additional disk attributes in TUI storage spoke. (sbueno+anaconda)
-  Resolves: rhbz#1024760
-- network GUI: fix typo making device adding fail silently (rvykydal)
-  Resolves: rhbz#1047799
-- network GUI: fix porting thinko in log msg causing traceback on Configure
-  (rvykydal)
-  Resolves: rhbz#1047941
-- Only display the actions summary dialog if there are any actions (clumens).
-  Resolves: rhbz#1030511
-
-* Fri Dec 20 2013 Brian C. Lane <bcl@redhat.com> - 19.31.41-1
-- Check for ready before baseRepo in completed (bcl)
-  Resolves: rhbz#1044985
 - Print a message and exit if a user attempts to upgrade via kickstart. (dshea)
-  Resolves: rhbz#1036756
-- Don't show the language twice for keyboard layouts (dshea)
-  Resolves: rhbz#1021849
-- If there are incomplete spokes, let the user know which (clumens).
-  Resolves: rhbz#1032801
-- network: GUI, don't ask for wifi secrets upon Configure (rvykydal)
-  Resolves: rhbz#1033073
-- network: GUI, add support for virtual devices removing (rvykydal)
-  Resolves: rhbz#1030870
-- network: fix naming of slave ifcfg files from kickstart (rvykydal)
-  Related: rhbz#1036047
-  Resolves: rhbz#1036047
-- network: GUI, handle virtual devices (bond, vlan, team) properly (rvykydal)
-  Resolves: rhbz#1036047
-- network: call GDBus proxy methods like python (rvykydal)
-  Related: rhbz#1036047
-  Resolves: rhbz#1036047
-- network: add team support for kickstart %%pre phase (rvykydal)
-  Resolves: rhbz#1003591
-- network: generate kickstart commands for team devices (rvykydal)
-  Resolves: rhbz#1003591
-- network: support for adding team devices (rvykydal)
-  Resolves: rhbz#1003591
-- network: display team devices in status (rvykydal)
-  Resolves: rhbz#1003591
-- network: add team support to kickstart (rvykydal)
-  Resolves: rhbz#1003591
-- Accept only .iso files from the IsoChooser dialog (vpodzime)
-  Resolves: rhbz#1015169
-- Fix a typo (rvykydal)
-  Related: rhbz#1039223
-  Resolves: rhbz#1039223
-
-* Tue Dec 17 2013 Brian C. Lane <bcl@redhat.com> - 19.31.40-1
-- Add initial 64-bit ARM aarch64 EFI support (dmarlin)
-  Resolves: rhbz#1034428
-- Don't wait for systemctl shutdown command to exit (bcl)
-  Resolves: rhbz#994188
-- Fix default device for ks=cdrom (bcl)
-  Resolves: rhbz#1042500
-- Fix geolocation on live installs (mkolman)
-  Resolves: rhbz#1032735
-- Use ExceptionInfo namedtuple when dumping anaconda (vpodzime)
-  Resolves: rhbz#983787
-- Catch OSError if there are problems running authconfig. (sbueno+anaconda)
-  Resolves: rhbz#994674
-- Move atexit registration before running rescue mode (vpodzime)
-  Resolves: rhbz#1042722
-- Set environment variables in anaconda systemd shell file (amulhern)
-  Resolves: rhbz#1023913
-- Don't allow bootloader and /boot on iSCSI on s390 (vpodzime)
-  Resolves: rhbz#1034222
-- Remove enablement of whiteout/blackout plugins and adapt requires (notting)
-  Resolves: rhbz#1040530
-
-* Mon Dec 16 2013 Brian C. Lane <bcl@redhat.com> - 19.31.39-1
-- use deepcopy on ksdata method (bcl)
-  Resolves: rhbz#1024509
-- Update source on errors (bcl)
-  Resolves: rhbz#1030997
-- clear errors when metadata is ok in tui source spoke (bcl)
-  Resolves: rhbz#1034420
-- Generate missing machine-id (bcl)
-  Resolves: rhbz#1034916
-- fcoe gui: repopulate device tree only if device was actually added (rvykydal)
-  Related: rhbz#1039223
-  Resolves: rhbz#1039223
-- Exclude FCoE disks from local disks (rvykydal)
-  Related: rhbz#1039223
-  Resolves: rhbz#1039223
-- fcoe: repopulate devicetree after adding FCoE SAN (rvykydal)
-  Resolves: rhbz#1039223
-- createUser is already in a chroot (bcl)
-  Resolves: rhbz#1038241
-- Hide password characters in iSCSI login fields (vpodzime)
-  Resolves: rhbz#1034202
-- Do not try to setup None NFS repository (vpodzime)
-  Resolves: rhbz#1028699
-
-* Wed Dec 11 2013 Brian C. Lane <bcl@redhat.com> - 19.31.38-1
-- Make _yum.preconf setup atomic (bcl)
-  Resolves: rhbz#882279
-- refactor into _setupInstallDevice (bcl)
-  Related: rhbz#882279
-  Resolves: rhbz#882279
-- Pass biosdevname boot option to installed system (rvykydal)
-  Resolves: rhbz#1030943
-- network: add s390 options in ifcfgs generated from kickstart (rvykydal)
-  Resolves: rhbz#1031376
-- Don't require pressing escape twice to kill the media check window (clumens)
-  Resolves: rhbz#1015173
-- Change source spoke proxy handling to use local copy (bcl)
-  Resolves: rhbz#1029245
-- clear software environment (bcl)
-  Resolves: rhbz#1029536
-- Make thread manager operations atomic (mkolman)
-  Resolves: rhbz#1029898
-
-* Thu Dec 05 2013 Brian C. Lane <bcl@redhat.com> - 19.31.37-1
-- Omit /dev/sr* from list-harddrives (sbueno+anaconda)
-  Resolves: rhbz#1032500
-
-* Thu Nov 21 2013 Brian C. Lane <bcl@redhat.com> - 19.31.36-1
-- Network protocols don't list Closest mirror first (vpodzime)
-  Resolves: rhbz#1028697
-
-* Mon Nov 18 2013 Brian C. Lane <bcl@redhat.com> - 19.31.35-1
-- Set spokes' distribution and beta warning only once (vpodzime)
-  Related: rhbz#1028370
 
-* Mon Nov 11 2013 Brian C. Lane <bcl@redhat.com> - 19.31.34-1
-- Don't try to unicode unicode strings (vpodzime)
-  Resolves: rhbz#1029109
-- Add tmpfs support (mkolman)
-  Resolves: rhbz#918621
-
-* Wed Nov 06 2013 Brian C. Lane <bcl@redhat.com> - 19.31.33-1
-- Avoid raising an exception if epdb module unavailable (amulhern)
-  Resolves: rhbz#1026779
-- Display a EULA-related warning on progress hub at end of installation.
+* Wed Dec 18 2013 Brian C. Lane <bcl@redhat.com> - 21.14-1
+- Fix the release notes image cycler. (#1043393) (dshea)
+- Do not schedule resize actions for non-resizing requests (#1039491)
+  (vpodzime)
+- Use ceil for minSize in resize dialog (#1040012) (bcl)
+- Use integer numbers of megabytes in the Reclaim dialog (#1040012) (vpodzime)
+- fcoe gui: repopulate device tree only if device was actually added (#1039223)
+  (rvykydal)
+- Exclude FCoE disks from local disks (#1039223) (rvykydal)
+- fcoe: repopulate devicetree after adding FCoE SAN (#1039223) (rvykydal)
+- Add initial 64-bit ARM aarch64 EFI support (#1034428) (dmarlin)
+- Rename network spoke header (mkolman)
+- Show the Shell spoke in debug mode (vpodzime)
+- Accept only .iso files from the IsoChooser dialog (#1015169) (vpodzime)
+- Just run the IsoChooser dialog lightbox (vpodzime)
+- Use libxklavier's new methods instead of our nasty hack (vpodzime)
+- Move atexit registration before running rescue mode (#1038855) (vpodzime)
+- Only display the addon separator if there's a reason to. (clumens)
+- Stop using deprecated gtk margin functions. (clumens)
+- Fix the check_accelerators srcdir path. (dshea)
+- Show msg in TUI if user attempts to create invalid username. (#965561)
   (sbueno+anaconda)
-  Resolves: rhbz#909309
-  Related: rhbz#909309
-- Show last 4 bytes of wwid (jstodola)
-  Resolves: rhbz#1024966
-- Display a EULA-related warning on the progress hub at the end of installation. (clumens)
-  Related: rhbz#909309
-- Handle focus changes of MountpointSelectors from outside (vpodzime)
-  Resolves: rhbz#975838
-- Make network-fetched driver disk .iso files work (vpodzime)
-  Resolves: rhbz#1003595
-- Updates to boot-options.txt document (amulhern)
-  Related: rhbz#1026385
-  Resolves: rhbz#1026385
-- No longer install anaconda user documentation (amulhern)
-  Resolves: rhbz#1026385
-
-* Fri Nov 01 2013 Brian C. Lane <bcl@redhat.com> - 19.31.32-1
-- Send the continue click after the queue is empty (bcl)
-  Resolves: rhbz#1025346
-- Fix kickstart block device resolution. (dlehman)
-  Resolves: rhbz#1025508
+- Fix up username checking regex a bit. (sbueno+anaconda)
+- Fix default device for ks=cdrom (#1042500) (bcl)
+- createUser is already in a chroot (#1038241) (bcl)
+- Skip checks on files that are not staged for commit. (dshea)
+- Allow catching exceptions from threads (vpodzime)
+- Enable warnings about abstract methods not overridden (dshea)
+- Provide empty methods to override abstract parent methods. (dshea)
+- Implement status in StandaloneSpoke. (dshea)
+- Move a bunch of abstract methods from Payload to PackagePayload (dshea)
+- Remove some methods from packaging.Payload. (dshea)
+- Disable abstract method warnings in intermediate abstract classes. (dshea)
+- Remove Personalization spoke (dshea)
+- Remove some vestigal code from an earlier version of GUICheck (dshea)
+
+* Thu Dec 12 2013 Brian C. Lane <bcl@redhat.com> - 21.13-1
+- Refresh environment addons on source change (#1033749) (bcl)
+- Fix selector device matching for unallocated partitions. (#1039292) (dlehman)
+- Rename the network config spoke a little bit. (clumens)
+- Don't encrypt device if container is encrypted (bcl)
+- network: add s390 options in ifcfgs generated from kickstart (#1031376)
+  (rvykydal)
+- Remove enablement of whiteout/blackout plugins, and the requires on anaconda-
+  yum-plugins. (notting)
+- Fix checking if we are collecting our module (vpodzime)
+- Remove an unnecessary continue statement in the potfiles check (vpodzime)
+- Use sys.exit instead of os._exit in the potfiles test (vpodzime)
+- List addons in exception report data (vpodzime)
+- Make Hub.storage and Spoke.storage a property (dshea)
+- Fix the botched helperization of StorageChecker (dshea)
+- Disable tmpfs in the GUI (#1039511) (mkolman)
+- Don't crash on NTP lookup without network (#1026079) (mkolman)
+- Don't rely on Gtk being importable for exception handling (vpodzime)
+- Support rnotes in SVG format (#1034407). (clumens)
+- Fix a couple warnings from -Werror=format-security (#1036989). (clumens)
+- Use abstract base classes for mixins. (dshea)
+- Display free space remaining in containers (#1035832). (clumens)
+- Make sure url and mirrorlist are not set at once (#1026834) (mkolman)
+- if rootfs is btrfs, add rootflags=subvol to kernel parameters (gene)
+- add ro to bootloader kernel parameters (gene)
+- Added missing entries to POTFILES.in (dshea)
+- Add a check that files with translatable strings are in POTFILES.in (dshea)
+- Fix the handling of renames in the pylint git hook. (dshea)
+- Remove startup-id from AnacondaBaseWindow. (dshea)
+
+* Wed Dec 04 2013 Brian C. Lane <bcl@redhat.com> - 21.12-1
+- Handle cancelation of device resize in the custom spoke. (#1027947) (dlehman)
+- Disallow /boot on lvm until grub2 fully supports it. (#1036705) (dlehman)
+- Disallow /boot on btrfs subvolume until grubby supports it. (#864198)
+  (dlehman)
+- Remove an empty initialize function. (clumens)
+- Move PathDict into pyanaconda/ui/__init__.py. (clumens)
+- Add one more directory for ignoring test log files (dshea)
+- Defer translation of device_type_name (dshea)
+- Disable pylint errors about gobject-introspection methods (dshea)
+- Remove unused variables (dshea)
+- Document the instl.multilib boot option (vpodzime)
+- Minor tweak of our driver disk documentation (vpodzime)
+- network: GUI, don't ask for wifi secrets upon Configure (#1033073) (rvykydal)
+- network: GUI, add support for virtual devices removing (#1030870) (rvykydal)
+- network: fix naming of slave ifcfg files from kickstart (#1036047) (rvykydal)
+- network: GUI, handle virtual devices (bond, vlan, team) properly (#1036047)
+  (rvykydal)
+- Change how we test if the GUI is available in the anaconda script. (clumens)
+- Update boot-options.txt. (amulhern)
+- Omit /dev/sr* from list-harddrives (#1032500) (sbueno+anaconda)
+- Fix EditTUISpoke to operate only on visible entries (vpodzime)
+- Don't try to investigate empty string for unicode chars (#1035799) (vpodzime)
+- Fix issues reported by the check_pw_visibility test (vpodzime)
+- Add check testing visibility of password entries (vpodzime)
+- Put tests of .glade files into a separate directory (vpodzime)
+- Save a reference to the imported Xkl module for get_current_layout (dshea)
+- Fix the Makefile.am subdirs for widget data. (dshea)
+- Fix some pylint warnings. (clumens)
+- Switch to libtimezonemap for the timezone map. (dshea)
+- Set the _config_dialog property during __init__. (dshea)
+- Fix handling of long release ids (mkolman)
+- Store older valid packages in separate folder (mkolman)
+- Fetch older valid releases (mkolman)
+- Import Xkl only when really needed (vpodzime)
+- Global screenshot support (#1025038) (mkolman)
+- Require new version of python-blivet (vpodzime)
+- Hide password characters in iSCSI login fields (#1034202) (vpodzime)
+- Use format names instead of types in the resize dialog (vpodzime)
+- Do not write out the vconsole.keymap boot option (#1035316) (vpodzime)
+
+* Wed Nov 27 2013 Brian C. Lane <bcl@redhat.com> - 21.11-1
+- Use raid RAID level constants instead of mdraid RAID level constants.
+  (amulhern)
+- Use level objects instead of level integer codes. (amulhern)
+- clear software environment (#1029536) (bcl)
+- Update source on errors (#1030997) (bcl)
+- Fix errors in kickstart.py. (dshea)
+- Update gettext.txt (dshea)
+- Don't allow bootloader and /boot on iSCSI on s390 (#1034222) (vpodzime)
+- Round float values coming from the Gtk stack (#1013586) (vpodzime)
+- Generate missing machine-id (bcl)
+- Fix problems reported by pylint. (dshea)
+- Add HDD ISO support for TUI (#1000327) (mkolman)
+- Use a directory in build tree for pylint data. (dshea)
+- Remove MOSTLYCLEANDIRS from Makefile.am (dshea)
+- fixup spec for fedup (bcl)
+
+* Mon Nov 25 2013 Brian C. Lane <bcl@redhat.com> - 21.10-1
+- Cleanup anaconda.spec.in (bcl)
+- Handle non-leaf btrfs volumes with mountpoints. (#1016959) (dlehman)
+- Use en_spec for blivet Size spec strings with constant components. (#1029616)
+  (dshea)
+- The gui and tui subpackages cannot be noarch (vpodzime)
+- Cleanup unused and overly complicated stuff in isys (vpodzime)
+- DNFPayload: tweak to the API changes in dnf-0.4.8 (ales)
+- Don't use cached packages with different release id (mkolman)
+
+* Fri Nov 22 2013 Brian C. Lane <bcl@redhat.com> - 21.9-1
+- Add a test for accesses of yum.preconf outside of _resetYum. (clumens)
+- Remove base_repo cache (#1011555) (bcl)
+- Make _yum.preconf setup atomic (#1028245) (bcl)
+- Remove threading from getBaseRepo handling (#1011555) (bcl)
+- If there are incomplete spokes, let the user know which (#1032801). (clumens)
+- tui: show Processing while source is busy (bcl)
+- tui: wait for threads before entering source and software (#1032823) (bcl)
+- clear errors when metadata is ok in tui source spoke (#1006570) (bcl)
+- Fix parallel pylint in distcheck. (dshea)
+
+* Wed Nov 20 2013 Brian C. Lane <bcl@redhat.com> - 21.8-1
+- Fix geolocation on live installs (mkolman)
+- Ignore the pylint warning on importing GraphicalUserInterface. (clumens)
+- Fall back to text mode if GUI is not available (vpodzime)
+- Get rid of unused isys.isCapsLockEnabled function (vpodzime)
+- Don't rely on having zenity and require it only for GUI (vpodzime)
+- No longer need the Gconf2 package (vpodzime)
+- Split out anaconda's user interfaces into separate packages (vpodzime)
+- Do not include tzmapdata into the main package (vpodzime)
+- Create directories for stubs if they don't exist (vpodzime)
+- Do not try to fetch our own packages that will be built (vpodzime)
+- Remove the unused flags import from installclass.py. (clumens)
+- Fix logging of pylint-one output (bcl)
+- Do yum lock logging only with inst.debug or loglevel=debug (vpodzime)
+- Don't panic on installclasses failing with inst.debug (vpodzime)
+
+* Mon Nov 18 2013 Brian C. Lane <bcl@redhat.com> - 21.7-1
+- Expand the use of ANACONDA_WIDGETS_DATADIR. (dshea)
+- Make thread manager operations atomic (#1029898) (mkolman)
+- Run pylint in multiple processes (vpodzime)
+- Fix how "changed" signal is emitted on the TreeSelection (vpodzime)
+- Pass biosdevname boot option to installed system (#1023609) (rvykydal)
+- network: update required NetworkManager version (team support) (rvykydal)
+- Use timing decorator for more actions (vpodzime)
+- Add test for the have_word_match function (vpodzime)
+- A nice decorator making Anaconda's GUI more responsive (vpodzime)
+- Short-circuit layouts matching (vpodzime)
+- Enforce upper bound for resize. (#1027947) (dlehman)
+- Fix some pylint problems in network.py. (clumens)
+- Add an updates location for the AnacondaWidgets overrides (dshea)
+- Fix typo (#1003591) (rvykydal)
+- network: call GDBus proxy methods like python (rvykydal)
+- network: add team support for kickstart %%pre phase (#1003591) (rvykydal)
+- network: generate kickstart commands for team devices (#1003591) (rvykydal)
+- network: support for adding team devices (#1003591) (rvykydal)
+- network: display team devices in status (#1003591) (rvykydal)
+- network: add team support to kickstart (#1003591) (rvykydal)
+- Initialize the AddLayouts dialog in advance in the KeyboardSpoke (vpodzime)
+- Add function to map functions on items in the main thread (vpodzime)
+- Allow having unique thread names with given prefix (vpodzime)
+- Remove an unused and non-working leftover function resetResolve (vpodzime)
+- Always center dialogs shown on top of lightbox (vpodzime)
+- Set spokes' distribution and beta warning only once (vpodzime)
+- use deepcopy on ksdata method (#1028243) (bcl)
+- Change source spoke proxy handling to use local copy (#967805) (bcl)
+- Apply a little tweak to the VNC password length message. (clumens)
+- Match layouts with stripped accents in AddLayout dialog (vpodzime)
+- Sort layout descriptions properly (#1026238) (vpodzime)
+- Make AddLayout dialog persistent (vpodzime)
+- Use Sphinx syntax in the iutil module (vpodzime)
+- Warn if vnc passwd is longer than 8 chars (hamzy)
+- Don't try to unicode unicode strings (#1029109) (vpodzime)
+- Add tmpfs support (#918621) (mkolman)
+- Added a few things that autoscan complained about (dshea)
+- Actually use the config header we generate (dshea)
+- Redirect pylint stderr to stdout (dshea)
+- Fix the handling of files generated for xgettext (dshea)
+- Use gettext to process glade files. (dshea)
+- Always use $prefix in directory names. (dshea)
+- Pass --enable-gtk-doc to configure in distcheck (dshea)
+- Fix the liveinst install/uninstall hooks (dshea)
+- Clean up after intltool (dshea)
+- Add missing files to dist (dshea)
+- DNFPayload: tweak to the API changes in dnf-0.4.7. (ales)
+- Add tests for iutil (mkolman)
+
+* Fri Nov 08 2013 Brian C. Lane <bcl@redhat.com> - 21.6-1
+- Fix typos in translation functions (dshea)
+- Put the cityCompletion back on the list of widgets (vpodzime)
+- Do not translate strings defined at the module or class level. (clumens)
+- Fix a couple places where we're doing %% inside of _(). (clumens)
+- Add a custom pylint module to check i18n problems. (clumens)
+- Remove an unused import. (clumens)
+- Provide our own sorting functions for regions and timezones (#1025029)
+  (vpodzime)
+- Set locale for our process (vpodzime)
+- Translate timezones in GUI (vpodzime)
+- network gui: add apply tooltip to Configure button (#1018471) (rvykydal)
+- Make dialog return code checking more robust (amulhern)
+- Show last 4 bytes of wwid (#1024966) (jstodola)
+- Handle focus changes of MountpointSelectors from outside (#975838) (vpodzime)
+- network: do not crash when device for network --device is not found
+  (#1023829) (rvykydal)
+- Log continuing from hub if there are no spokes (vpodzime)
+- Updates to boot-options.txt document (#1026449) (amulhern)
+- No longer install anaconda user documentation (#1026449) (amulhern)
+
+* Fri Nov 01 2013 Brian C. Lane <bcl@redhat.com> - 21.5-1
+- Fix spoke sorting issues in text-mode. (#929177) (sbueno+anaconda)
+- Send the continue click after the queue is empty (#1025347) (bcl)
 - No longer use summary screen visit to decide whether bootloader has been
-  configured (amulhern)
-  Resolves: rhbz#916529
-- Remove the bootloader line from the interactive kickstart file (amulhern)
-  Resolves: rhbz#916529
-  Related: rhbz#916529
-- Set bootloader default location to mbr in constructor (amulhern)
-  Resolves: rhbz#916529
-- Add HDD ISO support for TUI (mkolman)
-  Resolves: rhbz#1000327
-
-* Wed Oct 30 2013 Brian C. Lane <bcl@redhat.com> - 19.31.31-1
-- Update bootDrive info when storage config updated in text-mode.
+  configured (#1025811) (amulhern)
+- Remove the bootloader line from the interactive kickstart file (#1025811)
+  (amulhern)
+- Set bootloader default location to mbr in constructor (#1025811) (amulhern)
+- Remove column titles from the software spoke. (dshea)
+- Fix the selection of default groups (#1023263) (dshea)
+- Use the default yscale for the HubWindow alignment (dshea)
+- Fix kickstart block device resolution. (#1022206) (dlehman)
+- Specify query territory when getting language native name (vpodzime)
+- Get rid of trailing whitespace (vpodzime)
+- Export the right classes from the tui.spokes package (vpodzime)
+- Define newLayoutStore before it is used by the filter (vpodzime)
+
+* Wed Oct 30 2013 Brian C. Lane <bcl@redhat.com> - 21.4-1
+- Fix up a couple more pylint errors. (clumens)
+- Add check for Linux HFS+ ESP on Mac (#1010495) (bcl)
+- Update bootDrive info when storage config updated in text-mode. (#861018)
   (sbueno+anaconda)
-  Resolves: rhbz#861018
-- Ignore SIGINT (amulhern)
-  Resolves: rhbz#971323
-- Make Software spoke ready even if there is no repo (vpodzime)
-  Resolves: rhbz#1001054
-- Correctly accept 'sshd' boot arg as alias for 'inst.sshd' (wwoods)
-  Resolves: rhbz#924157
+- Remove the special handling for en (dshea)
+- Ignore SIGINT (#1024822) (amulhern)
+- Don't show language twice for keyboard layouts (#1021907) (petersen)
+- Make Software spoke ready even if there is no repo (#1010348) (vpodzime)
+- Use decorator for methods that invalidate base repo cache (vpodzime)
+- Use cache for base repo if possible (vpodzime)
+- Make sure to actually set the autopart flag when needed. (#1023554) (dlehman)
+- Fix Gtk errors about list store columns (dshea)
+- Fix the layout up and down button sensitivies. (dshea)
 - Fix the Gkbd spec string for layouts with no variant (dshea)
-  Resolves: rhbz#1011155
+- pylint wants regexes with backslashes to be specified with 'r'. (clumens)
+- Add ack flag checking to makebumpver (bcl)
+- Correctly accept 'sshd' boot arg as alias for 'inst.sshd' (#924157) (wwoods)
+- Only eject CDROM devices we're actually using (#949919) (wwoods)
 - mem may not exist when it's printed out in these error messages. (clumens)
-  Related: rhbz#1019322
-- Use devicetree to resolve device specs in kickstart. (dlehman)
-  Resolves: rhbz#1019322
-- Add bootloader execute before autopart (bcl)
-  Resolves: rhbz#1022418
-- BootLoaderError should not reset storage (bcl)
-  Resolves: rhbz#1022418
-  Related: rhbz#1022418
-- Mountpoint is an attr of the format, not the device. (dlehman)
-  Resolves: rhbz#1019510
+
+* Fri Oct 25 2013 Brian C. Lane <bcl@redhat.com> - 21.3-1
+- Reset _proxyChange when a change is triggered (bcl)
+- Setup No Update checkbox correctly (#1016801) (bcl)
+- Fall back to closest mirror in source (#1016801) (bcl)
+- anaconda-dracut: fix ks failure with hd:<dev>:some/path.ks (wwoods)
+- Make sure lower bound for resize is applied. (#986575) (dlehman)
+- Use devicetree to resolve device specs in kickstart. (#1022206) (dlehman)
+- Disregard raid level combo when it isn't applicable. (#1022203) (dlehman)
+- Mountpoint is an attr of the format, not the device. (#892747) (dlehman)
+- Add bootloader execute before autopart (#1021258) (bcl)
 - Do error checking of repository names on "Installation Source" screen.
   (amulhern)
-  Resolves: rhbz#1020991
+- Avoid configure-event loops. (#1021511) (dshea)
 
-* Wed Oct 23 2013 Brian C. Lane <bcl@redhat.com> - 19.31.30-1
-- Turn spinner back on for configuration (bcl)
-  Related: rhbz#1019970
-  Resolves: rhbz#1019970
-- Correctly generate rescue initrd (bcl)
-  Related: rhbz#1019970
-  Resolves: rhbz#1019970
-- Always regenerate initramfs (bcl)
-  Resolves: rhbz#1019970
-- remove signal disconnect (bcl)
-  Resolves: rhbz#996899
+* Wed Oct 23 2013 Brian C. Lane <bcl@redhat.com> - 21.2-1
+- remove signal disconnect (#996899) (bcl)
+- Re-saved every glade file with glade-3.16.0 (dshea)
+- Fix pylint errors in network.py. (clumens)
 - Always use decimal notation for Size specs (dshea)
-  Resolves: rhbz#999440
-- network kickstart: add support for devices configured in %%pre (rvykydal)
-  Resolves: rhbz#1019796
-- network gui spoke: use GDBus to obtain list of settings (rvykydal)
-  Resolves: rhbz#1019775
-- network: remove function we don't need anymore (rvykydal)
-  Resolves: rhbz#1019775
-  Related: rhbz#1019775
+- network kickstart: add support for devices configured in %%pre (#1019796)
+  (rvykydal)
 - network gui: make Configure button insensitive when no ap is selected
+  (#1015212) (rvykydal)
+- Encode possible unicode objects before calling str() on them (vpodzime)
+- Fix a typo in function documentation (vpodzime)
+- Use more general status for installations from media (#1017703) (vpodzime)
+
+* Mon Oct 21 2013 Brian C. Lane <bcl@redhat.com> - 21.1-1
+- Adds additional debug logging to yumpayload.py. (amulhern)
+- Handle invalid JSON in geoloc (#1021410) (dshea)
+- Revert "Only prompt for LUKS password if the user has chosen to configure
+  automatically." (amulhern)
+- Add context support to check_accelerators (dshea)
+- Added translation contexts to the TUI. (dshea)
+- Added translation contexts to the GUI. (dshea)
+- Add support for context-based translations (dshea)
+- Reset checks on both password fields. (#1020580) (dshea)
+- Fix swaps added to fstab for noformat (gene)
+- Don't update hub's continue button and label for every spoke (#1020373)
+  (vpodzime)
+- Add storage tests. (clumens)
+- Add option to select all hard drives in text mode. (#965580)
+  (sbueno+anaconda)
+- BootLoaderError should not reset storage (#1019541) (bcl)
+- Only prompt for LUKS password if the user has chosen to configure
+  automatically. (amulhern)
+- Remove an unused string (dshea)
+- Translate AM and PM (dshea)
+- Translate strings marked as translatable (dshea)
+- network gui spoke: use GDBus to obtain list of settings (#1018467) (rvykydal)
+- network: look for device settings also based on DEVICE value (#1017788)
   (rvykydal)
-  Resolves: rhbz#1015212
-- Use a temporary directory for verifying ISO media (dshea)
-  Related: rhbz#1017648
-- Skip devices not controllable by blivet (dshea)
-  Resolves: rhbz#1017648
-- Use more general status for installations from media (vpodzime)
-  Resolves: rhbz#1017703
-
-* Mon Oct 21 2013 Brian C. Lane <bcl@redhat.com> - 19.31.29-1
-- Use Unicode in the TUI buffer strings (dshea)
-  Resolves: rhbz#1002462
-- Don't ask to start vnc if user specifies text mode. (sbueno+anaconda)
-  Resolves: rhbz#959119
-- Do not accept changes if the user presses Esc on summary screen.
-  Resolves: rhbz#998384
-
-* Thu Oct 17 2013 Brian C. Lane <bcl@redhat.com> - 19.31.28-1
-- Fix liveinst to work with livemedia-creator (bcl)
-  Resolves: rhbz#1009711
-- Fix initramfs generation for disk image installations. (dlehman)
-  Resolves: rhbz#1018925
-- Save mountpoints specified for existing btrfs volumes. (dlehman)
-  Resolves: rhbz#1019510
-- Add a command line option for disabling friendly multipath names. (dlehman)
-  Resolves: rhbz#977815
-- Keyboard variant names may contain dashes (vpodzime)
-  Resolves: rhbz#1017556
-- swap devices should be under the System portion (clumens).
-  Resolves: rhbz#1017838
-- Don't try to configure a bootloader for s390 disk image installs. (dlehman)
-  Resolves: rhbz#994521
-- Install bootloader to loop device in disk image installations. (dlehman)
-  Resolves: rhbz#955202
-- network: look for device settings also based on DEVICE value (rvykydal)
-  Resolves: rhbz#1017788
-
-* Fri Oct 11 2013 Brian C. Lane <bcl@redhat.com> - 19.31.27-1
+- Fix liveinst to work with livemedia-creator (#1009711) (bcl)
+- Remove the button-label property on SpokeWindow. (clumens)
+- Log entering/exiting spokes and hubs in the GUI. (clumens)
+- Escape text inserted into markup strings (dshea)
+- Move markup out of translatable strings (dshea)
+- Move formating markup out of python where possible (dshea)
+- Use explicit children to set label attributes (dshea)
+- Turn on the image on the "Add a disk..." button. (dshea)
+
+* Wed Oct 16 2013 Brian C. Lane <bcl@redhat.com> - 20.26-1
+- Install bootloader to loop device in disk image installations. (#1019502)
+  (dlehman)
+- Don't try to configure a bootloader for s390 disk image installs. (#1019502)
+  (dlehman)
+- Fix initramfs generation for disk image installations. (#1019502) (dlehman)
+- Save mountpoints specified for existing btrfs volumes. (#892747) (dlehman)
+- Add a command line option for disabling friendly multipath names. (#977815)
+  (dlehman)
+- Remove en (dshea)
+- "Fix" the zSeries device filter "label" (dshea)
+- Replace placeholders with the strings from python (dshea)
+- Add and fix keyboard accelerators (dshea)
+- Check for labels with use_underline and no accelerator (dshea)
+- Support checking the translation of plural strings (dshea)
+- Specify a node id in check_accelerator exceptions (dshea)
+- BTRFS cannot hold swap, no need to care about fstab swaps (vpodzime)
+- Add ANACONDA_INSTALL_CLASSES to testenv.sh. (clumens)
+- Put a version on the DNF requirement. (clumens)
+- Revert "For now, ignore checking dnfpayload.py with pylint." (clumens)
+- Fix the alignment of the Network Time switch (#1019301) (dshea)
+- Tell blivet which swaps should appear in the fstab (#1011391) (vpodzime)
+- Put only newly created or reformated swaps to the new root (vpodzime)
+- Make code to get new devices reusable as property (vpodzime)
+- Grab journal only from the last boot (vpodzime)
+- DNFPayload: allow enable/disable calls for repos that do not exist. (ales)
+- Add shell spoke to s390x installations (vpodzime)
+- Put TUI spokes in common categories (vpodzime)
+- MountpointSelector is a widget, set its property properly (#1013612)
+  (vpodzime)
+- Include the journal log on installed system (bcl)
+- DNFPayload: error handling and logging cleanups. (ales)
+- DNFPayload: reset the transaction goal on new package selection check. (ales)
+- DNFPayload: implement environmentGroups() (ales)
+- Some partition scheme is always selected (#1017435) (vpodzime)
+
+* Fri Oct 11 2013 Brian C. Lane <bcl@redhat.com> - 20.25-1
+- Don't use g_object_set on initialized objects. (dshea)
+- Remove the "other" tab in the network spoke. (dshea)
+- Fix duplicated id in custom.glade (dshea)
+- Correctly generate rescue initrd (#1013087) (bcl)
 - Refresh swap suggestion once we know which disks to use (vpodzime)
-  Related: rhbz#1016673
-- fix luksformat references (bcl)
-  Resolves: rhbz#1014493
-- kickstart: check for correct format (bcl)
-  Resolves: rhbz#1014545
+- Initialize the kickstart install method (#1017614) (dshea)
+- Use correct format for raise in kickstart.py (bcl)
+- Add install-requires target to the Anaconda makefile (mkolman)
+- fix luksformat references (#1014493) (bcl)
+- kickstart: check for correct format (#1014545) (bcl)
+- Add checks for unexpanded macros. (dshea)
 - UIScreen doesn't necessarily have the ready property (vpodzime)
-  Related: rhbz#1000409
 - Print long widgets in a nice way (vpodzime)
-  Related: rhbz#1000409
-- Take into account disk space when calculating swap suggestion (vpodzime)
-  Resolves: rhbz#1016673
-
-* Wed Oct 09 2013 Brian C. Lane <bcl@redhat.com> - 19.31.26-1
-- Clear bootDisk and bootloader stage info on errors (bcl)
-  Resolves: rhbz#1013482
-- Catch BootLoaderError when setting up bootloader (bcl)
-  Resolves: rhbz#1013474
-
-* Wed Oct 09 2013 Vratislav Podzimek <vpodzime@redhat.com> - 19.31.25-1
-- Clean up some rpmdiff errors (bcl)
-  Resolves: rhbz#1012624
-* Tue Oct 08 2013 Brian C. Lane <bcl@redhat.com> - 19.31.24-1
-- Pass layout and variant in specific format to Gkbd (vpodzime)
-  Resolves: rhbz#1011155
-- Return switching options with the same order as shown (vpodzime)
-  Resolves: rhbz#1011130
-- Make the keyboard layout preview dialog bigger (vpodzime)
-  Resolves: rhbz#1011140
-- Make Keyboard spoke's status consistent with other statuses (vpodzime)
-  Resolves: rhbz#1011166
-- Generate ifcfg VLAN_ID value for kickstart network --vlanid (rvykydal)
-  Resolves: rhbz#1011860
-- Set ONBOOT=yes for the device used for installation (rvykydal).
-  Resolves: rhbz#1002544
-- Add a tooltip to the container combobox (bcl)
-  Resolves: rhbz#975801
-- Support for removing services from the firewall needs newer PyKickstart
-  (mkolman)
-  Related: rhbz#1016008
-- Add support for removing services from the firewall (mkolman)
-  Related: rhbz#1016008
-- Don't set ksdata.lang.seen to True if using default value (mkolman)
-  Resolves: rhbz#997397
-- network gui: do not crash on devices without settings (eg wireless)
-  (rvykydal)
-  Related: rhbz#1011928
-  Resolves: rhbz#1011928
-- Network TUI: show the same status as in gui (rvykydal)
-  Resolves: rhbz#1011928
-- Network TUI: don't traceback when applying config to device without link
-  (rvykydal)
-  Resolves: rhbz#1011866
-- Network TUI: fix updating of ksdata in apply (rvykydal)
-  Resolves: rhbz#1011855
-- Network TUI: ignore slaves devices for configuration (rvykydal)
-  Resolves: rhbz#1011841
-- network: don't create ksdata for devices enslaved in GUI (rvykydal)
-  Resolves: rhbz#1011826
-- Clean up ifcfg file handling (rvykydal)
-  Resolves: rhbz#1011826
-- Don't use temporary file and move when writing out an ifcfg file (vpodzime)
-  Related: rhbz#1011826
-  Resolves: rhbz#1011826
-
-* Fri Oct 04 2013 Brian C. Lane <bcl@redhat.com> - 19.31.23-1
-- Only encrypt the TUI user password once. (dshea)
-  Related: rhbz#1012028
-
-* Tue Oct 01 2013 Brian C. Lane <bcl@redhat.com> - 19.31.22-1
+- Consider errno 5 I/O errors hardware faults (vpodzime)
+- Install kernel-lpae if supported (#1013015) (vpodzime)
+- Bump firewalld version (mkolman)
+
+* Wed Oct 09 2013 Brian C. Lane <bcl@redhat.com> - 20.24-1
+- Clear bootDisk and bootloader stage info on errors (#1013482) (bcl)
+- Catch BootLoaderError when setting up bootloader (#1013474) (bcl)
+- Fix an incorrect formatting string in makeupdates. (clumens)
+- network: remove function we don't need anymore (rvykydal)
+- Don't translate constant strings. (dshea)
+- Take into account disk space when calculating swap suggestion (#1016673)
+  (vpodzime)
+- DNFPayload: adapt to DNF change c3de85d6 of Base.install() error reporting.
+  (ales)
+- DNFPayload: the new libcomps makes env.option_ids a list of GroupID objects.
+  (ales)
+- Fix warning message when package version is not found in Koji (mkolman)
+
+* Tue Oct 08 2013 Brian C. Lane <bcl@redhat.com> - 20.23-1
+- Use Unicode in the TUI buffer strings (#1015620) (dshea)
+- DNFPayload: install DNF itself. (ales)
+- DNFPayload: direct conf.persistdir to the sysimage. (ales)
+- Add a tooltip to the container combobox (#975801) (bcl)
+- Use different colors for different message types. (dshea)
+- Exit on exception in the askVNC spoke (#962804) (dshea)
+- Don't skip the strength check if overriding a kickstart password (dshea)
+- Allow password spoke to be exited without password (#1004931) (dshea)
+- Re-check the password strength when the username changes (dshea)
+- Only call pwquality once per password. (dshea)
+- Use GUICheck checks for the root password strength (dshea)
+- Use constants for password check failure messages (dshea)
+- Use a constant to indicate GUICheck success (dshea)
+- Remove a redundant error property from UserSpoke (dshea)
+- Fix the usages of PWQError. (#1014405) (dshea)
+- Fix usage of GtkLevelBar in glade. (dshea)
+- Clean up callbacks in the user spoke. (dshea)
+- Removed an untrue portion of a doc comment (dshea)
+- Support for removing services from firewall needs newer PyKickstart (mkolman)
+- Add support for removing services from the firewall (#957809) (mkolman)
+
+* Fri Oct 04 2013 Brian C. Lane <bcl@redhat.com> - 20.22-1
+- Only encrypt the TUI user password once (#1015220) (dshea)
+- Don't try to collect removed modules (vpodzime)
 - Moved the NFS nolock option into Payload._setupNFS (dshea)
-  Resolves: rhbz#1001593
-- Don't try to parse langcode if none given (vpodzime)
-  Resolves: rhbz#1013955
+- Grab journalctl logs if there is no /tmp/syslog (vpodzime)
+- Pass layout and variant in specific format to Gkbd (#1011155) (vpodzime)
+- Translate the "Quit" string at the end of liveinst. (dshea)
 
-* Mon Sep 30 2013 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 19.31.21-1
-- Move DEFAULT_VC_FONT to constants (vpodzime)
-  Resolves: rhbz#1012811
-- Fix issue where spoke returns to hub early in text mode. (sbueno+anaconda)
-  Resolves: rhbz#979375
-- Don't confuse users by misleading tooltip (vpodzime)
-  Resolves: rhbz#1011112
-- Display newly created partitions without a mountpoint, too (clumens).
-  Resolves: rhbz#886039
+* Fri Sep 27 2013 Brian C. Lane <bcl@redhat.com> - 20.21-1
+- Remove another reference to log_picker. (clumens)
+- Turn spinner back on for configuration (bcl)
+- Use assertIsInstance in the kickstart version test. (clumens)
 - If the full device path is given in repo=hd:, still select it in the UI
-  (clumens).
-  Resolves: rhbz#980479
-- tui ErrorDialog needs to be modal (bcl)
-  Resolves: rhbz#983316
-
-* Thu Sep 26 2013 Brian C. Lane <bcl@redhat.com> - 19.31.20-1
-- Encrypt normal user passwords when doing text install. (sbueno+anaconda)
-  Resolves: rhbz#1012028
-- Fixup Eula class (bcl)
-  Related: rhbz#1000409
-- Center the Langsupport spoke's description (vpodzime)
-  Related: rhbz#1006458
-- Normalize keyboard layout and variant strings from langtable (vpodzime)
-  Related: rhbz#1006458
-- More robust parsing of the layout and variant string specification (vpodzime)
-  Related: rhbz#1006458
-- Share code between the Welcome and Langsupport spokes (vpodzime)
-  Related: rhbz#1006458
-- Rework the Langsupport spoke to work with all locales (vpodzime)
-  Related: rhbz#1006458
-- Match langs with stripped accents when filtering languages (vpodzime)
-  Related: rhbz#1006458
-- Get rid of the non-deterministic expand_langs and its usage (vpodzime)
-  Related: rhbz#1006458
-- Rework the Welcome spoke to allow users choose from all locales (vpodzime)
-  Resolves: rhbz#1006458
-- Allow seting up locale without modifying ksdata (vpodzime)
-  Related: rhbz#1006458
-- Remove an unused argument of get_available_translations (vpodzime)
-  Related: rhbz#1006458
-- Specify also query script when getting locale's native name (vpodzime)
-  Related: rhbz#1006458
-- Fix the langcode parsing regexp (vpodzime)
-  Related: rhbz#1006458
-- Adapt to the new localization module (vpodzime)
-  Related: rhbz#1006458
-- Rewrite the localization module (vpodzime)
-  Related: rhbz#1006458
-
-* Wed Sep 25 2013 Brian C. Lane <bcl@redhat.com> - 19.31.19-1
-- Export the pykickstart Eula command (vpodzime)
-  Related: rhbz#1000409
-- LiveImageKSPayload skip the parent class setup method (bcl)
-  Resolves: rhbz#1010500
-
-* Fri Sep 20 2013 Brian C. Lane <bcl@redhat.com> - 19.31.18-1
-- Search all disk types for install media (dshea)
-  Resolves: rhbz#1004726
-
-* Fri Sep 13 2013 Brian C. Lane <bcl@redhat.com> - 19.31.17-1
-- Don't set up the resize slider for non-resizable devices. (dlehman)
-  Resolves: rhbz#1008049
-- Fix handling of flexible specs in onpart for member devices. (dlehman)
-  Resolves: rhbz#1008048
-- Don't mount cdroms that contain no mountable media. (dlehman)
-  Resolves: rhbz#1008050
-- Check MBR gap size even when /boot is on a plain partition. (dlehman)
-  Resolves: rhbz#1008051
-- Try to use VConsole keymap name as X layout (vpodzime)
-  Resolves: rhbz#1007359
-- Check ready state before baseRepo (bcl)
-  Resolves: rhbz#1001538
-  Related: rhbz#1001538
-
-* Wed Sep 11 2013 Brian C. Lane <bcl@redhat.com> - 19.31.16-1
-- Let users configure autopart options in interactive text ks.
-  (sbueno+anaconda)
-  Resolves: rhbz#1001061
-- Catch race of network device state vs reading its config properties
-  (rvykydal)
-  Resolves: rhbz#919478
-- Fix check for device state when reading its IPXConfig (rvykydal)
-  Resolves: rhbz#1005681
-- Network spoke: fix showing of ipv6 addresses (rvykydal)
-  Resolves: rhbz#1005681
-- Network spoke: show global ipv6 addresses (rvykydal)
-  Resolves: rhbz#1005681
-- Network spoke: fix refresh of device IP configuration (rvykydal)
-  Resolves: rhbz#1005681
-- Firstboot should be disabled by default after automated installations
-  (vpodzime)
-  Resolves: rhbz#985277
-
-* Mon Sep 09 2013 Brian C. Lane <bcl@redhat.com> - 19.31.15-1
-- Handle kickstarts that don't specify timezone (mkolman)
-  Resolves: rhbz#1001598
-- Only ignore missing packages entries (bcl)
-  Resolves: rhbz#983316
-
-* Thu Sep 05 2013 Brian C. Lane <bcl@redhat.com> - 19.31.14-1
-- Add more details to iso device selector (bcl)
-  Resolves: rhbz#971290
-- Warn user if they enter a weak password in TUI. (sbueno+anaconda)
-  Resolves: rhbz#1001039
-- Don't mark spoke as completed if no repo is set. (sbueno+anaconda)
-  Resolves: rhbz#1001538
-- Run firstboot-only spokes on first boot by default (vpodzime)
-  Related: rhbz#1000409
-- Let hubs specify which environments they support (vpodzime)
-  Related: rhbz#1000409
-- Don't enable chronyd if disabled in kickstart (mkolman)
-  Resolves: rhbz#1002583
-
-* Wed Sep 04 2013 Brian C. Lane <bcl@redhat.com> - 19.31.13-1
-- Remove Closest mirrors if no mirrors (bcl)
-  Related: rhbz#876135
-- Fix fastestmirror plugin check (bcl)
-  Related: rhbz#876135
-- Optionally hide the GUI option to install updates (dshea)
-  Resolves: rhbz#999442
-- Move the really_hide and really_show functions to utils (vpodzime)
-
-* Wed Aug 28 2013 Samantha N. Bueno <sbueno+anaconda@redhat.com> - 19.31.12-1
-- Text network spoke: more strict ipv6 address input checking (rvykydal)
-  Resolves: rhbz#909299
-- Text network spoke: add to translated files (po/POTFILES.in) (rvykydal)
-  Resolves: rhbz#909299
-- Text network spoke: require netmask and gateway for static ipv4 (rvykydal)
-  Resolves: rhbz#909299
-- Text network spoke: Condense device configuration information (rvykydal)
-  Resolves: rhbz#909299
-- Text network spoke: fix ipv4 regex (rvykydal)
-  Resolves: rhbz#909299
-- Text network spoke: basic configuration support (rvykydal)
-  Resolves: rhbz#909299
-- Add support for network configuration in TUI. (sbueno+anaconda)
-  Resolves: rhbz#909299
-
-* Mon Aug 26 2013 Brian C. Lane <bcl@redhat.com> - 19.31.11-1
-- Return only network devices supported in installer from nm_devices (rvykydal)
-  Resolves: rhbz#999514
-- Obtain network device type specific dbus interface dynamically (rvykydal)
-  Resolves: rhbz#999514
-- Catch no-hwaddr exception only for the respective call (rvykydal)
-  Resolves: rhbz#999514
-- Don't catch hwaddr not found exception for ethernet devices (rvykydal)
-  Resolves: rhbz#999514
-
-* Thu Aug 22 2013 Brian C. Lane <bcl@redhat.com> - 19.31.10-1
-- Check for hwaddress exceptions. (dshea)
-  Resolves: rhbz#999514
-- If LANG isn't set, set it to default value. (sbueno+anaconda)
-  Resolves: rhbz#997397
-- Do not run another instance of the TUI for errors (vpodzime)
-  Resolves: rhbz#997661
-- Do not try to exit from the installation thread (vpodzime)
-  Related: rhbz#997661
-- Tell which thread failed to be added by the ThreadMgr (vpodzime)
-  Related: rhbz#997661
-
-* Wed Aug 21 2013 Brian C. Lane <bcl@redhat.com> - 19.31.9-1
-- The NFS text dialog should never attempt to use method.url (clumens).
-  Resolves: rhbz#998446
-- Update both the method and repo info. (dshea)
-  Resolves: rhbz#999185
-
-* Mon Aug 19 2013 Brian C. Lane <bcl@redhat.com> - 19.31.8-1
-- dracut no longer auto assembles everything (bcl)
-  Resolves: rhbz#960496
-- Don't override multilib setting unless the option was passed. (dlehman)
-  Resolves: rhbz#987557
-- Don't read proxy for methods that have no proxy (dshea)
-  Resolves: rhbz#997410
-
-* Wed Aug 14 2013 Brian C. Lane <bcl@redhat.com> - 19.31.7-1
-- dracut/parse-kickstart should use the updated method-related classes
-  (clumens).
-  Resolves: rhbz#994978
-
-* Tue Aug 13 2013 Brian C. Lane <bcl@redhat.com> - 19.31.6-1
-- Change the betanag wording to be better for RHEL (clumens).
-  Resolves: rhbz#917820
-
-* Wed Aug 07 2013 Brian C. Lane <bcl@redhat.com> - 19.31.5-1
-- Need to import the version constant we are using, too (clumens).
-  Resolves: rhbz#994366
-
-* Tue Aug 06 2013 Brian C. Lane <bcl@redhat.com> - 19.31.4-1
-- Use ksdata.method.seen (bcl)
-  Resolves: rhbz#989461
-- Check that we're doing an HD install before examining the attr (clumens).
-  Resolves: rhbz#989428
-
-* Mon Aug 05 2013 Brian C. Lane <bcl@redhat.com> - 19.31.3-1
-- Skip password strength check for kickstart passwords (dshea)
-  Resolves: rhbz#993040
-- Add unsupported hardware dialog (bcl)
-  Resolves: rhbz#872728
-- Only move INSTALL_TREE when it is mounted (bcl)
-  Resolves: rhbz#888196
-- Require fcoe-utils only on ix86 and x86_64 architectures (vpodzime)
-  Resolves: rhbz#989913
-- For vnc require network in intramfs (rvykydal)
-  Resolves: rhbz#990071
-- Honor hostname set in kickstart (rvykydal)
-  Resolves: rhbz#988483
-- Don't prompt for ssh on s390x if doing an image install. (sbueno)
-  Resolves: rhbz#983056
-
-* Thu Jul 25 2013 Brian C. Lane <bcl@redhat.com> - 19.31.2-1
-- Fix driver disk path for inst.dd= method (bcl)
-  Resolves: rhbz#987513
-- Allow logging into multiple iscsi nodes at once (clumens).
-  Resolves: rhbz#975831
-- Add support for NFS as install source in TUI. (sbueno+anaconda)
-  Resolves: rhbz#971298
-- Fix crash while parsing ntp servers from DHCP6 (dshea)
-  Resolves: rhbz#987978
-- Wait for device connections for iface-bound iscsi in kickstart (rvykydal)
-  Resolves: rhbz#740105
-- Refer to blivet instead of storage in iscsi kickstart (rvykydal)
-  Resolves: rhbz#740105
-- Mark disk 'selected' if only one present in TUI. (sbueno+anaconda)
-  Resolves: rhbz#975790
-- Update devicetree only if we logged in to some target in add iscsi dialog.
-  (rvykydal)
-  Related: rhbz#740105
-- Don't show multipath members in specialized disks overview (rvykydal)
-  Resolves: rhbz#740105
-- Do not populate devicetree after each single login in iscsi dialog (rvykydal)
-  Resolves: rhbz#740105
-- Match also iface when logging into selected iface-bound iscsi target
-  (rvykydal)
-  Resolves: rhbz#740105
-- Make sure proper installclass selected for RHEL installs. (sbueno+anaconda)
-  Resolves: rhbz#975720
-
-* Tue Jul 09 2013 Brian C. Lane <bcl@redhat.com> - 19.31.1-1
-
-* Thu May 23 2013 Brian C. Lane <bcl@redhat.com> - 19.30-1
-- Fix software selection in text UI. (#965974) (sbueno+anaconda)
-- Don't call _update_summary from within _add_disk_overview. (clumens)
-- getDisks should not return a list that has duplicates in it. (clumens)
-- Fix the rescan button (#929299). (clumens)
-- Let checkbox disable updates-testing (#962522) (bcl)
-- disable updates when method is set in ks (#952791) (bcl)
-- Fix string formatting on text UI storage spoke. (#965460) (sbueno+anaconda)
-
-* Tue May 21 2013 Brian C. Lane <bcl@redhat.com> - 19.29-1
-- Handle empty text in simpleline (bcl)
-- Fixup TUI source to work with kickstart (bcl)
-- Add missing disk_selection XML (#962012,#962631) (bcl)
-- Add ability for users to specify an installation source repo in text UI.
-  (sbueno+anaconda)
-- Add the ability to select software in text UI. (sbueno+anaconda)
-- Add 'refresh' option in TUI; lock users out of threads that aren't ready
-  (sbueno+anaconda)
-- Add 'software' category to TUI summary hub (sbueno+anaconda)
-- Only try to activate layouts if runtime system can be changed (vpodzime)
-- Be more defensive in handling layouts from kickstart (#963103) (vpodzime)
-- Return all layouts the XklWrapper knows about (#883555) (vpodzime)
-- Fix issue where FS selection not applied in text UI. (#964069)
-  (sbueno+anaconda)
-
-* Thu May 16 2013 Brian C. Lane <bcl@redhat.com> - 19.28-1
-- Remove testing leftover (#963503) (rvykydal)
-
-* Wed May 15 2013 Brian C. Lane <bcl@redhat.com> - 19.27-1
-- Partial fix for screen resize problems (#869364) (clumens)
-- Remove an extra call to page clicked handler from refresh. (#959722)
-  (dlehman)
-- Always run through the full storage spoke. (#960732) (dlehman)
-- Update apply button as appropriate after invoking dialogs. (#960254)
-  (dlehman)
-- Don't allow setting btrfs subvolumes' size. (#959723) (dlehman)
-- Drop btrfs-specific raid level "single" for non-btrfs. (#959688) (dlehman)
-- Update btrfs volume label when changing volume name. (#959727) (dlehman)
-- Don't allow setting labels for btrfs subvolumes. (#960601) (dlehman)
-
-* Wed May 15 2013 Brian C. Lane <bcl@redhat.com> - 19.26-1
-- Pressing Delete on custom part should remove the selected mountpoint.
-  (clumens)
-- Use the same text formatting on the langsupport spoke as on the welcome
-  spoke. (clumens)
-- Remove the now-unused LanguageMixIn. (clumens)
-- Do not BuildRequire python-bugzilla on RHEL (#953182) (dcantrell)
-- Don't require network configuration in Live DVD (#962485) (rvykydal)
-- Set default FS choice to LVM in text mode (#962600) (sbueno+anaconda)
-- Move udev rules generation to pre-trigger (#958924) (bcl)
-- Suggest names for btrfs mountpoints (bcl)
-- Use a method to reset current_selector (#959707) (bcl)
-- Fix non-default language being hidden in welcome spoke (mkolman)
-- Mark placeholder text in add addtnl keyboard screen as translatable.
-  (sbueno+anaconda)
-- Mark language search string translatable. (#955229) (sbueno+anaconda)
-- Remove the get_current_layout_name function (#895766) (vpodzime)
-- Add support for the realm command (mkolman)
-- Revert "Add support for the realm command" (mkolman)
-- Add support for the realm command (mkolman)
-- Support for getting NTP servers from DHCP (#862755) (mkolman)
-
-* Thu May 09 2013 Brian C. Lane <bcl@redhat.com> - 19.25-1
-- Change the buttons on the quit dialog. (clumens)
-- Add FONT=latarcyrheb-sun16 to /etc/vconsole.conf (vpodzime)
-- Use ntpdate instead of rdate (#950267) (vpodzime)
-- Add layouts with a country if not added with a language (#960569) (vpodzime)
-- Fixup xconf keymap code for text/dirinstall (bcl)
-- Bump pykickstart to 1.99.30 for liveimg support (bcl)
-- Add kickstart liveimg install command (bcl)
-- Make sure all threads are done before install (bcl)
-- Make sure stage1_disk isn't empty (#950487) (bcl)
-- Add /boot/efi to suggested mountpoints (#960677) (bcl)
-- Add extlinux command-line option. (mattdm)
-- Add extlinux as a bootloader type. (mattdm)
-- Bump the pykickstart requirement for the extlinux patches. (clumens)
-- Revert "Busy cursor when applying changes in the custom spoke" (mkolman)
-- Revert "Context manager for doing things with busied cursor" (mkolman)
-- Use the F19 bootloader class from pykickstart, for --extlinux (mattdm)
-- Transform bootloader --extlinux to extlinux command-line option (mattdm)
-- Rework the layout of the storage spoke for low resolution setups. (clumens)
-- Fix lower resolution display problems on the filter spoke. (clumens)
-- Don't show iscsi passwords when focused, either.  Enjoy typing blind.
-  (clumens)
-- Add a couple more things to .gitignore. (clumens)
-- Remove the bootloader class's obsoletes attribute. (clumens)
-- Disable sort indicators on the filter UI. (clumens)
-- Remove the Viewport from the disk shopping cart. (clumens)
-- Cleaning up some of the TUI storage code (sbueno+anaconda)
-- Add ability in TUI for users to select partitioning scheme. (sbueno+anaconda)
-- Use the firmware-provided language if it's something we support. (pjones)
-- Use systemd-localed for writing out xorg conf file (#958714) (vpodzime)
-- Busy cursor when applying changes in the custom spoke (vpodzime)
-- Make sure the "unbusy cursor" is used for the exception window (vpodzime)
-- Context manager for doing things with busied cursor (vpodzime)
-- Revert "Add signal handlers for controlling password entry visibility."
-  (#958608). (clumens)
-- Force a password to be set if option checked in TUI. (#927956)
-  (sbueno+anaconda)
-- Fix a minor display issue in TUI. (sbueno+anaconda)
-- hostname has dropped -v option (bcl)
-- Only override proxy and noverifyssl if specified (#880482) (bcl)
-
-* Fri May 03 2013 Brian C. Lane <bcl@redhat.com> - 19.24-1
-- Fix check for early exit from on_container_changed. (dlehman)
-- Add ability to manipulate container sizes directly. (dlehman)
-- Don't lock users who chose custom storage out. (dlehman)
-- Don't allow unhiding of hidden disks during disk image installs. (#956020)
-  (dlehman)
-- Add layout indicator to the LUKS passphrase dialog (vpodzime)
-- Add layout indicator to the BaseWindow (vpodzime)
-- LayoutIndicator widget (vpodzime)
-- self._password is set to None not "" initially (#958723) (vpodzime)
-- Use constants for protocol's order instead of magic numbers (vpodzime)
-- Support setting the name of a btrfs subvol (#892363). (clumens)
-- If there are errors processing the kickstart file early on, just print them.
-  (clumens)
-- Stop defining _, N_, and P_ all over the place. (clumens)
-- Fix a probably rare traceback in resizing from the custom part UI. (clumens)
-- Add methods to do some hiding/showing that we do several different places.
+  (#980479). (clumens)
+- Display newly created partitions without a mountpoint, too (#886039).
   (clumens)
-- Make it more obvious which fields on custom part are editable (#958251).
+- Don't require pressing escape twice to kill the media check window (#965625).
   (clumens)
-- Clean up some of the get_object usage in custom.py. (clumens)
-- Streamline DatetimeSpoke's timezone updating (#953311) (vpodzime)
-- Allow setting timezone on the map without signal (vpodzime)
-- Sensitivity of the date&time settings doesn't depend on timezone (vpodzime)
-- Give the RAID level label on custom a mnemonic widget. (clumens)
-- Give the hostname entry a keyboard shortcut. (clumens)
-
-* Mon Apr 29 2013 Brian C. Lane <bcl@redhat.com> - 19.23-1
-- Only check mandatory spokes in automated install (#956960,#895258) (bcl)
-- Add scratch-bumpver target (bcl)
-- Add Driver Update Disk repo handling to Anaconda (bcl)
-- Add Driver Update Disk support to anaconda-dracut (bcl)
-- Port driver update utilities from loader (bcl)
-- Fix a typo. (clumens)
-- Do not translate a blank window name. (clumens)
-- Add a separator under the default language on the welcome screen. (clumens)
-- Move the selected language to the top of the list on the welcome screen.
-  (clumens)
-- Remove the unused LanguageSpoke. (clumens)
-- Add the "Add FCoE" dialog (#903122). (clumens)
-- Allow enabling /etc/anaconda.repos.d repos like the docs say (#955724).
-  (clumens)
-- Move where the password quality checker is created (#956049). (clumens)
-- Allow multiple disk selection with Shift-click (#864707) (vpodzime)
-- Select all disks in the box with advanced storage as well (vpodzime)
-- Don't change DiskOverview's background on 'chosen' changed (vpodzime)
-- Fix number of arguments for languageGroups (liveDVD class) (#957038)
-  (rvykydal)
-- Apply some minor padding fixes on the container editing dialog. (clumens)
-- If no root password was given, lock root's account (#927922). (clumens)
-- Remove some unneeded boxes and alignments in the NTP config dialog. (clumens)
-- Default to using the iscsi discovery credentials for login, if provided.
-  (clumens)
-- langsupport spoke: keep data.lang.lang first in status of spoke (rvykydal)
-- Unpack property value returned by GDBus before using it (#956614) (rvykydal)
-- Don't traceback when no activated devices were found for ks network default
-  (#956614) (rvykydal)
-- Ask about VNC also in connecting state, not only connected (#952801)
+- Fix display of weak password warning (#1011850) (dshea)
+- Fix the tui simpleline imports. (dshea)
+- Don't confuse users by misleading tooltip (#1011112) (vpodzime)
+- Assorted other pylint fixes for scripts and utils (dshea)
+- Pass string format arguments as paramters to logging (dshea)
+- Ignore the use of func_globals in a test case (dshea)
+- Fix issues in the AnacondaWidgets python wrapper (dshea)
+- Make exception handling more specific (dshea)
+- Remove unused imports and variables (dshea)
+- Remove unnecessary lambdas (dshea)
+- Remove obsolete files. (dshea)
+- Check whether the commit matches the tree (dshea)
+- Run pylint on all python files (dshea)
+- Don't use relative imports (dshea)
+- Use g_signal_handler_disconnect instead of g_object_disconnect (#1010486)
+  (vpodzime)
+- Fixup Eula class (bcl)
+- Allow searching for keyboard layouts in English (#1009806) (vpodzime)
+- network: don't create ksdata for devices enslaved in GUI (#1011826)
   (rvykydal)
+- Allow a proxy to be set before the method is saved (#1012096) (dshea)
+- Export the pykickstart Eula command (vpodzime)
 
-* Wed Apr 24 2013 Brian C. Lane <bcl@redhat.com> - 19.22-1
-- Container management improvements. (dlehman)
-- Include swap-related disk space needs in storage options dialogs. (#951269)
-  (dlehman)
-- Show the summary screen before the luks passphrase dialog. (dlehman)
-- Add language support spoke (#912364) (rvykydal)
-- Add kickstart lang --addsupport option (#912364) (rvykydal)
-- Add network --ipv6gateway kickstart option (#905226) (rvykydal)
-- Remove pre-18.0 history from anaconda.spec. (clumens)
-- Add free space information to DiskOverviews (#949746). (clumens)
-- Raise exception if our module fails to be imported (vpodzime)
-- Fix exception handling in rescue mode (vpodzime)
-- Select all disks when Ctrl+A is pressed (#864707) (vpodzime)
-- DiskOverview needs to grab focus if clicked (vpodzime)
-
-* Mon Apr 22 2013 Brian C. Lane <bcl@redhat.com> - 19.21-1
-- Set seen for lang from option & use constant for default (mkolman)
-- Hook the Geolocation module to Anaconda (mkolman)
-- Add geolocation module (mkolman)
-- Add logging to exception handling (vpodzime)
-- Run exception handling in the main thread also in TUI (vpodzime)
-- Update network ksdata with cmdline options (#893784) (rvykydal)
-- Return network devices actually activated (instead of just active) (#949002)
-  (rvykydal)
-- Don't traceback if we can't find PermHwAddr when looking for slaves (#949341)
-  (rvykydal)
-- Add support for iSCSI iface binding. (rvykydal)
-- Fix a traceback when handling node login authentication. (clumens)
-- Add a requirement on python-IPy now. (clumens)
-- Display individual buttons on the filter UI instead of a combo. (clumens)
-- Hook up authentication for iSCSI discovery and node login. (clumens)
-- When the clear button is clicked on the filter spoke, clear out the fields.
-  (clumens)
-- Remove the extra "Target LUN" search option. (clumens)
-- If all iSCSI nodes have been logged into, leave the dialog. (clumens)
-- Populate the port combo on the filter spoke's search page. (clumens)
-- Hook up filtering for iSCSI devices. (clumens)
-- Add initial iSCSI support to the advanced storage UI. (clumens)
-- Add a generic function to FilterPage for setting up a GtkComboBoxText.
-  (clumens)
-- self.disks -> self.pages in filter UI refresh method. (clumens)
-- Add a button to bring up the Add Additional dialogs. (clumens)
-- Remove pixmaps no longer needed by newui. (clumens)
-- Add a checkmark on a DiskOverview when it is selected. (clumens)
-- Make a couple UI modifications to the resize slider. (clumens)
-- Make several changes to how addons are displayed (#873498). (clumens)
-- Allow clicking on environment and addon text to toggle them (#928010).
-  (clumens)
-- Fix scrolling problems on the environment side of software selection
-  (#928008). (clumens)
-- Handle quit messages on the text progress UI hub (#895756). (clumens)
-- If there's an error while in text mode, display it. (clumens)
-- Force sizes on the network toolbar buttons (#951580). (clumens)
-- Disable the "Closest mirror" option if there's no fastestmirror plugin
-  (#876135). (clumens)
-- Move text UI summary hub setup into the setup method (#927315, #950956).
-  (clumens)
-- Bring the text storage spoke a little more in line with the graphical one.
-  (clumens)
-- Make a home directory for the user by default (#950792). (clumens)
-- Add some padding under the ransom notes on the progress hub. (clumens)
-- Remove a lot of ancient crud from the installclasses. (clumens)
-- Set the default fs type on RHEL (#951088). (clumens)
-- Add a Spoke.changed attribute. (clumens)
-- Display device names on MountpointSelectors (#888872). (clumens)
-- Add signal handlers for controlling password entry visibility. (clumens)
-- Ransom notes can be either PNGs or JPGs. (clumens)
-- dracut/parse-kickstart: handle network --mtu (wwoods)
-- Exclude a couple more password variables from dumps (bcl)
-- Enlightbox dialogs in the custom spoke (vpodzime)
-- Create and use GtkWindowGroup for our windows (vpodzime)
-- We can import Gtk globally now (vpodzime)
-- Handle both types of data we can get from libxklavier (#950921) (vpodzime)
-
-* Tue Apr 16 2013 Brian C. Lane <bcl@redhat.com> - 19.20-1
-- Fix two more syntax errors in the custom spoke. (#952662) (dlehman)
-
-* Mon Apr 15 2013 Brian C. Lane <bcl@redhat.com> - 19.19-1
-- Show device size with full precision to avoid spurious resize. (#951276)
-  (dlehman)
-- Fix another typo (old_fstype->old_fs_type). (#951593) (dlehman)
-- Fix typo encryption_changed->changed_encryption. (#950700) (dlehman)
-- Remove some remnants of old multipath code. (#951259) (dlehman)
-- Protect the block device containing the stage2 image. (dlehman)
-- Clarify code for iutil.get_active_console() etc. (wwoods)
-
-* Thu Apr 11 2013 Brian C. Lane <bcl@redhat.com> - 19.18-1
-- Revert "Revert "Don't emit "gfxterm" in grub2 configs (#821355)"" (pjones)
-- Make "s" a hotkey for "Save Changes" on Advanced User Configuration. (pjones)
-- Clean up tracebacks saved in pstore space (#950709) (pjones)
-- Move anaconda-yum to /usr/libexec/anaconda/ (bcl)
-- Cleanup: remove dead upgrade code (wwoods)
-- Fix console= persistence, remove serial (#928269) (wwoods)
-- Revert "Don't emit "gfxterm" in grub2 configs (#821355)" (pjones)
-- Disable grub2-mkconfig's submenus by default. (pjones)
-- Don't emit "gfxterm" in grub2 configs (#821355) (pjones)
-- updates to boot-options.txt (wwoods)
-- flags.py: remove unused flags (wwoods)
-- remove flags.virtpconsole (wwoods)
-- Call os.chdir("/") after calling os.chroot (vpodzime)
-
-* Tue Apr 09 2013 Brian C. Lane <bcl@redhat.com> - 19.17-1
-- Pass open file to execWithRedirect for vncpasswd (#948638) (bcl)
-- Fix ip= saving in parse-kickstart (hamzy)
-- Fix initial raid level when switching to a raid-capable device type.
-  (dlehman)
-- The raid level combo cannot be not sensitive for preexisting devices.
-  (dlehman)
-- Make sure fstype combo is not sensitive for btrfs devices. (dlehman)
-- Add an entry to the raid level combo for btrfs' single. (dlehman)
-- Clean up _save_right_side and adapt to changes in blivet.devicefactory.
-  (dlehman)
-- Remove anaconda's udev rules. (dlehman)
-- Add requires for some things that aren't strictly required by blivet.
-  (dlehman)
-- Parent's finalize method needs self (vpodzime)
-- Use Sphinx syntax for docstrings (vpodzime)
-- Use None for unbounded size requests. (dlehman)
-- Disable yum lock debugging for the final release. (clumens)
-- The source spoke should display something nicer than "Not ready" (#948112).
-  (clumens)
-- Don't run storage execution in an endless loop (#948331, #948285). (clumens)
-- If an incorrect source is given for a ks install, don't fallback (#948212).
-  (clumens)
-- Fix a bug when creating a new mountpoint with no given size (#948228).
-  (clumens)
-- memInstalled has moved (#947261). (clumens)
-- Correctly report an error if OSError is hit when setting up the source
-  (#947634). (clumens)
-- Add anaconda-yum to %%files (bcl)
-
-* Thu Apr 04 2013 Brian C. Lane <bcl@redhat.com> - 19.16-1
-- Modify LocaledWrapper to use our safe_dbus module (#928287) (vpodzime)
-- Add module providing safe DBus operations (vpodzime)
-- Define a DEFAULT_DBUS_TIMEOUT constant and use it (vpodzime)
-- Execute the yum transaction in another process (bcl)
-- Add anaconda-yum (bcl)
-- Add execReadlines utility (bcl)
-- Use namedtuple instead of our magic tuples (vpodzime)
-- Tell python-meh architecture of the anaconda package (vpodzime)
-- Add release number to the result of getAnacondaVersion (vpodzime)
-- Fix _isys.so location in the updates.img (vpodzime)
-- Network spoke: Fix reading of device type from combobox (#947120) (rvykydal)
-
-* Tue Apr 02 2013 Brian C. Lane <bcl@redhat.com> - 19.15-1
-- Fix two small problems with the UID/GID spin buttons (#929173, #929138).
-  (clumens)
-- The Update Settings button should only be sensitive if you change something.
-  (clumens)
-- Move datetime spoke initialization into its own thread, too. (clumens)
-- Make it more clear nothing will happen immediately on custom storage
-  (#883195). (clumens)
-- Replace the custom part size spinner with an entry. (clumens)
-- Add a factory class for our various communications queues. (clumens)
-- Make exception handling in the rescue mode work (#926913) (vpodzime)
-
-* Thu Mar 28 2013 Brian C. Lane <bcl@redhat.com> - 19.14-1
-- Handle the end of the %%addon section (vpodzime)
-- Don't allow setting a mountpoint for an fstype we cannot mount. (dlehman)
-- Fix a bug I introduced with 3c78c1a5c. (clumens)
-- Get rid of the customization expanders on custom partitioning. (clumens)
-- Translate the "Create a new volume group..." text (#892782). (clumens)
-- Move the Desired Capacity label and spinner into its own row (#907883,
-  #904999). (clumens)
-- move Xorg test up so we might start vnc instead (hamzy)
-- Set word wrapping on the label telling you how to switch layouts (#924885).
-  (clumens)
-- gtk_thread_wait -> gtk_action_wait in custom.py (#926926). (clumens)
-- Support multiple values for kicstart network --namserver= in dracut (#917481)
-  (rvykydal)
-- get_widget -> get_object (#927898). (clumens)
-- THREAD_* constants are in pyanaconda, not pykickstart. (clumens)
-- Network spoke: fix model access thinko in Add device dialog (rvykydal)
-- Use constants for thread names (mkolman)
-- Move network connection timeout from network to constants (mkolman)
-- udev-settle.service is now systemd-udev-settle.service (wwoods)
-- Add boot-options.txt (wwoods)
-
-* Fri Mar 22 2013 Brian C. Lane <bcl@redhat.com> - 19.13-1
-- Set Tip text on the create user spoke. (dcantrell)
-- Use space instead of underscore when user uses the timezone name (#924352)
-  (msivak)
-- Use only self.data in TUI timezone spoke's status (msivak)
-- Use the named tuple in root password dialog (#924138) (msivak)
-- Add message instructing users they can type to search for language.
+* Wed Sep 25 2013 Brian C. Lane <bcl@redhat.com> - 20.20-1
+- Encrypt normal user passwords when doing text install. (#977732)
   (sbueno+anaconda)
-- Don't unbusy the cursor until the first action is ready to display. (clumens)
-- Move custom storage setup into its own thread. (clumens)
-- When you turn off NTP, clear the warning along the bottom of the screen.
-  (clumens)
-- If the disk has no serial number, don't give the DiskOverview a popup.
-  (clumens)
-- Reorder the columns on the shopping cart so name is next to description.
-  (clumens)
-- Add device node names to the resize dialog as a new column. (clumens)
-- Use an emblem for indicating spokes have not been completed. (clumens)
-- If you remove all the disks in the shopping cart, disable the buttons.
-  (clumens)
-- Apply a style to the network spoke's toolbar. (clumens)
-- Add a little more space between the updates checkbox and the add repo stuff.
-  (clumens)
-- Remove the partition scheme expanders. (clumens)
-- Don't error out if a ks %%include is missing when looking for sshpw
-  (#923627). (clumens)
-- Do not guess username immediately when user clears it (#924184) (msivak)
-- Do not require password when no user is requested (#924150) (msivak)
-- Refresh the checkboxes on AdvancedUser dialog properly (#924257) (msivak)
-- Allow setting the default GID of the new user. (msivak)
-- Add call to new-kernel-pkg --rpmposttrans (#922988) (bcl)
-- Make our gtk_* decorators safer and more intelligent (vpodzime)
-- Add method for checking if in main thread to the ThreadManager (vpodzime)
-- Port the mandatory logic for User and Password spokes from GUI to TUI
-  (msivak)
-- Use only self.data to determine completeness in User spoke (msivak)
-- Make firstboot kickstart command aware of initial-setup (msivak)
-- Add command and data updates to AnacondaKSHandler's __init__ (msivak)
-
-* Tue Mar 19 2013 Brian C. Lane <bcl@redhat.com> - 19.12-1
-- _model -> model in filter.py. (clumens)
-- Add some documentation to FilterPage. (clumens)
-- Add the advanced storage UI and hook it up. (clumens)
-- Don't wrap the DO creation in gtk_thread_wait. (clumens)
-- Add a button to the specialized window to bring up the add dialog. (clumens)
-- Filter out multipath devices from the getDisks results. (clumens)
-- Reduce duplicated code between the GUI and TUI. (clumens)
-- Set the horizontal and vertical scales to what we want. (clumens)
-- Move DiskOverview creation out into its own method. (clumens)
-- Add a slot on the storage spoke for display of advanced storage. (clumens)
-- Log the actual exception for getPackage (bcl)
-- Add the addon repos from a repo's treeinfo file (bcl)
-- Disable failed repos, not remove them (bcl)
-- Add repo addon to source spoke (bcl)
-- Remove the previous addon repo code and UI (bcl)
-- Addon repo glade changes (bcl)
-- Enable updates repo by default (bcl)
-- Adjust _getTreeInfo so that proxy_url can be passed (bcl)
-- Add enable flag to RepoData object (bcl)
-- Modify repo interface in packaging (bcl)
-- Change the source DiskOverview to a label (bcl)
-- Display the reason for payloadInstallHandler error (bcl)
-
-* Mon Mar 18 2013 Brian C. Lane <bcl@redhat.com> - 19.11-1
-- Don't create temporary lists if not needed (vpodzime)
-- Fix reclaiming disk space for non-us installations. (rvykydal)
-- Allow for raising thread exceptions when threadMgr.get is called (bcl,
-  clumens). (clumens)
-- Hook up the new refresh dialog. (clumens)
-- Add a dialog prompting the user to refresh anaconda's view of storage.
-  (clumens)
-- Add a refresh button to the custom partitioning toolbar. (clumens)
-- Add a reset button to the bottom right of the custom spoke. (clumens)
-- Hook up the new action summary dialog. (clumens)
-- Add a summary screen of actions to be performed on all disks. (clumens)
-- Catch error when incorrect nfs address entered (sbueno+anaconda)
-- Use GDBus also for connection settings update. (rvykydal)
-- Network spoke: improve message format parametrization for translators
-  (rvykydal)
-- Don't set ibft device renaming for dracut, let it just do its job (#828505)
-  (rvykydal)
-- Mark Timezone selection as firstboot spoke (msivak)
-- Add user creation spoke to TUI (msivak)
-- Refactor TUI password spoke to use the declarative EditTUISpoke (msivak)
-- Use guess_username from pyanaconda.users in gui.spokes.UserSpoke (msivak)
-- Add declarative EditTUISpoke (msivak)
-- Allow modyfying exit question in TUI (msivak)
-- Return False from TUI.run() if it was exited prematurely (msivak)
-- Add guess_username function to users.py (msivak)
-- Mark incomplete mandatory spokes in text mode (msivak)
-- Network spoke: move formatting parameters out of translation function
-  (rvykydal)
-- Network spoke: add keyboard accelerator to add device combobox (#906263)
-  (rvykydal)
-- Network spoke: don't decorate add_device_dialog (#906263) (rvykydal)
-- Don't pass undefined stdout from execWithCapture. (rvykydal)
-- Network spoke: import network module instead of list of too many functions
-  (rvykydal)
-- Vlan support: kickstart (#906272) (rvykydal)
-- Vlan support: generate kickstart (#906272) (rvykydal)
-- Vlan support: GUI - hub status information (#906272) (rvykydal)
-- Network spoke: check whether added network device is already in list
-  (#906272) (rvykydal)
-- Vlan support: GUI - add "Vlan ID" and "Parent" to vlan tab (#906272)
-  (rvykydal)
-- Return correct nm_device_setting_value for bonds and vlans (#906272)
-  (rvykydal)
-- Vlan support: GUI - show vlan devices (#906272) (rvykydal)
-- Vlan support: GUI - add "Parent" and "Vlan ID" info (glade) (#906272)
-  (rvykydal)
-- Vlan support: GUI - add vlan device (glade) (#906272) (rvykydal)
-- Show that password was set by kickstart in TUI (msivak)
-- Add settable quit message to TUI (msivak)
-- Check _current_action for not being None before using it (vpodzime)
-
-* Mon Mar 11 2013 Brian C. Lane <bcl@redhat.com> - 19.10-1
-- Bonding support: GUI - hub status information (#906263) (rvykydal)
-- Bonding support: GUI - generate kickstart network command for bonds (#906263)
-  (rvykydal)
-- Bonding support: GUI - add device dialog (#906263) (rvykydal)
-- Bonding support: GUI - add device dialog (glade) (#906263) (rvykydal)
-- Bonding support: GUI - device list, configuration and adding bond (#906263)
-  (rvykydal)
-- Bonding support: GUI - Slaves line in Wired tab (glade) (#906263) (rvykydal)
-- Crypt the root we get from the user (#918991). (jkeating)
-- Adapt to the new libxklavier's behaviour (vpodzime)
-- We use python-meh's interfaces instead of Anaconda's (vpodzime)
-- Redraw screen in case of valid input and nothing new scheduled (vpodzime)
-- Fix two places where we are locking up the main thread (#886680). (clumens)
-- Log when we acquire and release the _yum_lock (dlehman, clumens). (clumens)
-- Do not fail when the logging stream cannot be opened (in initial-setup..)
-  (msivak)
-- Mark DateTime spoke as usable for Firstboot (msivak)
-- Fix a missing import and move the addon KS output template (msivak)
-- Make the TUI mainloop more resistant to screen implementation errors (msivak)
-- Teach TUI how to react on async events (msivak)
-- Could not load UI file advanced_user.glade (hamzy)
-- Don't try to remove the timer when it's None (DatetimeSpoke) (vpodzime)
-- Log failed imports in the collect functions (vpodzime)
-- remove the remnants of sparc support (dennis)
-- Remove installmethod.py (dead code) (wwoods)
-- Make default media eject behavior match old behavior (wwoods)
-- Silence "cp: cannot stat '/etc/cmdline'..." error message (wwoods)
-
-* Fri Mar 01 2013 Brian C. Lane <bcl@redhat.com> - 19.9-1
-- Behave nice when root password is set by kickstart (msivak)
-- Password spoke is mandatory if the created user is not an admin (msivak)
-- Use the user data provided by kickstart (msivak)
-- Add the User creation spoke including the Advanced dialog (msivak)
-- Bonding support: kickstart (rvykydal)
-- Condense some duplicated and overly wordy code in custom.py. (clumens)
-- Add a new allMembers property that returns a list of pages and members.
-  (clumens)
-- All Pages have a title, so get rid of the getattr games. (clumens)
-- Allow more than one Page to be expanded at a time. (clumens)
-- Get rid of the currentPage method. (clumens)
-- Promote page._members to page.members. (clumens)
-- Require passing the title to a Page's constructor. (clumens)
-- Pressing F12 should do the same thing as clicking "Done" (#840998). (clumens)
-- A bunch more "install" -> "installation" changes. (clumens)
-- When the user clicks "Reclaim Space", go back to the hub (#911792). (clumens)
-- Modify the logic that makes the reclaim button sensitive (#911793). (clumens)
-- Add a free space line under every disk in the reclaim dialog. (clumens)
-- Remove the initial sentence from the top of the reclaim dialog (#911793).
-  (clumens)
-- Fix a traceback in verifying optical media on the source spoke. (clumens)
-- Revert "Hook up the "Remove Packages" button on the dep solving error
-  screen." (#905899). (clumens)
-- Don't display "(null)" as a MountpointSelector's mountpoint. (clumens)
-- dracut: add anaconda-pre-shutdown.sh to fix eject (#809920) (wwoods)
-- Continue booting when checkisomd5 is aborted (#891551) (bcl)
-- Fix ksdevice=<MAC> - instead of renaming the device to ksdev0 just use it
-  (rvykydal)
-- Add pigz to initrd.img (wwoods)
-- Use %%_prefix macro value when calling configure in makeupdates (vpodzime)
-- Try to import modules the standard way first in collect (msivak)
-
-* Thu Feb 21 2013 Brian C. Lane <bcl@redhat.com> - 19.8-1
-- Add more stuff to the exception reporting skip list. (clumens)
-- Compare Sizes to Sizes in the reclaim dialog (#913484). (clumens)
-- The disk cart summary does not need a mnemonic. (clumens)
-
-* Wed Feb 20 2013 Brian C. Lane <bcl@redhat.com> - 19.7-1
-- Fix RAID level test (bcl)
-- unpack product.img to /updates (#911873) (bcl)
-- If you attempt to search on the network device pane, don't crash. (clumens)
-- Don't treat the _ in x86_64 as a mnemonic. (clumens)
-- If you set_markup, the label forgets set_use_underline from glade. (clumens)
-- Don't try to update spokes that are indirect. (clumens)
-- If you cannot reclaim more space, don't show the reclaim radio (#911791).
-  (clumens)
-- Swap the order of the part scheme combo and encryption checkbox. (clumens)
-- Fix for the addons kickstart support (vpodzime)
-- kickstart.py needs udev that now lives in blivet (vpodzime)
-- Refactor pieces of the Datetime spoke and move some parts to kickstart.py
+- Escape the status before setting it as markup (vpodzime)
+- network gui: do not crash on devices without settings (eg wireless)
+  (#1010519) (rvykydal)
+- Make the keyboard layout preview dialog bigger (#1011140) (vpodzime)
+- Return switching options with the same order as shown (#1011130) (vpodzime)
+- Use a temporary directory for verifying ISO media (dshea)
+- Skip devices not controllable by blivet (#1009809) (dshea)
+- Add translation support to check_accelerators (dshea)
+- Make sure autopart type is handled deterministicaly in text mode (#1010453)
   (vpodzime)
-- Set ONBOOT=no for default autoconnections (#905918, #886090) (rvykydal)
-- Don't use "type" to name a variable. (rvykydal)
-- Update all spokes on a Hub when spoke is exited (msivak)
-- Wait for continueButton in KS mode if the user changed anything (msivak)
-- Fix up word wrap on the DetailedErrorDialog. (clumens)
-- Display storage warnings, similar to how errors are displayed (#909410).
-  (clumens)
-- Fix reprompting and screen redrawing on invalid input (vpodzime)
-- Refresh addons_paths once we know if gui or tui takes place (vpodzime)
-- Fixup anaconda.spec (bcl)
-
-* Thu Feb 14 2013 Brian C. Lane <bcl@redhat.com> - 19.6-1
-- fix uuid reference in parse-kickstart (bcl)
-- Fixup kickstart script logging (bcl)
-- Tell libreport the crash happened in Anaconda (#885690) (vpodzime)
-- Restore older behavior regarding ks argument without a file name (#910550).
-  (clumens)
-- Move the encryption checkbox to the dialog (bcl)
-- re-fetch metadata when proxy settings change (bcl)
-- Apply some fixes to the spec file (#909592, metherid (clumens)
-- install -> installation in a couple user-visible strings. (clumens)
-- Restore support for partial kickstart files (#887254). (clumens)
-- Get rid of packagesSeen. (clumens)
-- Remove debugging print (DatetimeSpoke) (vpodzime)
-- Honor modules' __all__ when doing collect (msivak)
-- Use ksdata.addons instead of ksdata.addon and add ADDON_PATHS to sys.path
+- Don't rely on X server adding empty variant for its defaults (#1011658)
   (vpodzime)
-- Remove unused modules (dbus) and stuff from network.py (rvykydal)
-- Replace get_NM_connection() using new nm module. (rvykydal)
-- Replace get_NM_settings_value() using new nm module (rvykydal)
-- Replace nmIsConnected() using new nm module (rvykydal)
-- Replace hasActiveNetDev() using new nm module (rvykydal)
-- Replace getDevicesProperies() using new nm module (rvykydal)
-- Replace getIPAddresses() using new nm module (rvykydal)
-- Replace getMacAddress() using new nm module (rvykydal)
-- Replace isWirelessDevice() using new nm module (rvykydal)
-- Replace getLinkStatus() using new nm module (rvykydal)
-- Replace getActiveNetDevs() using new nm module (rvykydal)
-- Replace getDevices() using new nm module (rvykydal)
-- Move NM dbus calls to separate module. (rvykydal)
-- Move networking functions from isys to network module. (rvykydal)
-- Remove unused stuff from network.py (rvykydal)
-- Remove unused networking stuff from isys (rvykydal)
-- Network spoke: remove unused NM path and interface constants (rvykydal)
-- Add 'eject' to the anaconda initramfs (wwoods)
-- Ensure hookdir exists before creating eject script (wwoods)
-- remove anaconda-cleanup-initramfs.service (wwoods)
-- Add dracut/save-initramfs.sh (wwoods)
-- Bring back the askmethod parameter (#889887). (clumens)
-- Add a new selectorFromDevice method to the accordion. (clumens)
-- The storage logger is now the blivet logger. (dlehman)
-- DeviceFactory has moved from blivet to blivet.devicefactory. (dlehman)
-
-* Fri Feb 08 2013 Brian C. Lane <bcl@redhat.com> - 19.5-1
-- Add --dirinstall command (bcl)
-- Convert the mount point entry to one containing a drop down. (clumens)
-- Move the Modify SW button into a link in the text. (clumens)
-- Rework all the dialogs after you click Done on the storage spoke (#903501).
-  (clumens)
-- Overrides for the Gdk have _2BUTTON_PRESS defined (vpodzime)
-- Add entries with completions to the comboboxes (DatetimeSpoke) (vpodzime)
-- Make the custom partitioning bullet points take up less horizontal space.
-  (clumens)
-- Don't say you can reuse existing mountpoints unless there are some. (clumens)
-- Point gobject-introspection at our updates directory for overrides. (clumens)
-
-* Mon Feb 04 2013 Brian C. Lane <bcl@redhat.com> - 19.4-1
-- Remove libcurl requirement from configure.ac. (dlehman)
-- DMI_CHASSIS_VENDOR has moved into blivet. (dlehman)
-
-* Fri Feb 01 2013 Brian C. Lane <bcl@redhat.com> - 19.3-1
-- unpack product.img to correct location (#869098) (bcl)
-- Fix including _isys.so and isys/__init__.py in updates.img (vpodzime)
-- Fix typo "DHCPV6" (rvykydal)
-- Don't crash on wireless connections created in Live CD desktop (#895736)
-  (rvykydal)
-- Adapt ifcfg -> ksdata mapping to NM change from IPADDR to IPADDR0. (rvykydal)
-- Fix static and dhcp of network --ipv6 command (set IPV6_AUTOCONF=no)
-  (rvykydal)
-- NM defaults to IPV6_AUTOCONF=yes (rvykydal)
-- Fix up spacing on installation options dialog buttons a little bit. (clumens)
-- Ignore double clicks on the DiskOverviews (#902467). (clumens)
-- When the user creates a new mountpoint, display it by default (#886039).
-  (clumens)
-- Add device node name information to the storage spoke and disk cart
-  (#902617). (clumens)
-- Do not include disks that have 0 size (#903131, #904977). (clumens)
-- Preserve the state of the Customize... expanders on custom storage (#883134).
-  (clumens)
-- Make it a little more clear what's happening on the disk selection spoke
-  (#903498). (clumens)
-- Move Xorg to vt7 (bcl)
-- Network: read ipv6 configuration type from NM settings instead of ifcfg file
-  (rvykydal)
-- Don't fail on missing ifcfg file when setting default ONBOOT (#904817)
-  (rvykydal)
-- Don't fail on invalid network --device kickstart specification. (rvykydal)
-- Ignore ipv6 for a device (IPV6INIT=no) only for noipv6 option. (rvykydal)
-- Network: fix disabling of ipv6 (noipv6 option) (rvykydal)
-- Stop writing /etc/sysconfig/network (#895900) (rvykydal)
-- We dont create missing ifcfg files on our own in anaconda anymore. (rvykydal)
-- Use NM dbus interface to modify ifcfg configuration (#893892) (rvykydal)
-- Document FileSystemSpaceChecker. (clumens)
-- Add the customization category to POTFILES.in. (clumens)
-- Add a license and overview to the g-i overrides file. (clumens)
-- Create/clarify some documentation in the custom widgets. (clumens)
-- Condense string formatting in a couple custom widgets. (clumens)
-- Remove the widget-specific TODO list. (clumens)
-- Add selinux to the list of parameters we pass on (#895860). (clumens)
-- Display error status messages in a darker red color. (clumens)
-- Add newline at the end of xorg.conf generated from ksdata (vpodzime)
-- Move pyanaconda.packaging.get_mount_* into blivet.util. (dlehman)
-- Remove obsolete references to simpleFilter. (dlehman)
-- Remove the storage module and replace it with blivet. (dlehman)
-- Move tsort, platform, and baseudev into storage. (dlehman)
-- Start laying groundwork for splitting storage out of pyanaconda. (dlehman)
-- Remove anaconda flag checking from OpticalDevice.eject. (dlehman)
-- Remove unused functions and move storage-specific utils to storage. (dlehman)
-- Remove installclass arch filtering. (dlehman)
-- Handle sending program output to tty5 through the logging setup. (dlehman)
-- Use dumpe2fs output to determine dirty fs. (dlehman)
-- Remove filesystem migration code. (dlehman)
-- Use threadMgr.wait to check threads (bcl)
-- Add error reporting to threadMgr (bcl)
-
-* Fri Jan 25 2013 Brian C. Lane <bcl@redhat.com> - 19.2-1
-- Use only one large grid for the hubs. (clumens)
-- Indicate nothing will happen until "Begin Installation" is clicked (#883195).
-  (clumens)
-- Exit anaconda correctly on SIGTERM (vpodzime)
-- Move communication module to pyanaconda/ui (vpodzime)
-- Function getDefaultHostname was renamed some time ago. (rvykydal)
-- Use constant for default hostname ("localhost.localdomain" currently)
-  (rvykydal)
-- Make update_hostname function do just one thing - update ksdata. (rvykydal)
-- Rename wait_for_dhcp pieces to say what they actually do (rvykydal)
-- Initialize network synchronously (#902090) (rvykydal)
-- xgettext wants "utf-8", not "utf8".  Python doesn't seem to care. (clumens)
-- On the storage spoke, only show the summary button if a disk is selected.
-  (clumens)
-- Add text letting people know they can use existing filesystems (#883150).
-  (clumens)
-- Default to mirrored RAID instead of striped (#888867). (clumens)
-- Replace the RAID level checkboxes with a single combo box. (clumens)
-- Don't allow mountpoints to start with /proc or /sys either. (clumens)
-- Add 'nmcli dev list' output to data gathered after crash (vpodzime)
-- Add lsblk output to data gathered after crash (#879940) (vpodzime)
-- Cleanup some trailing whitespace on otherwise empty lines (vpodzime)
-- Refactor and cleanup exception handling pieces (vpodzime)
-- Exception handling for text mode (#865325) (vpodzime)
-- python-meh's saveExceptionWindow no longer uses the accountManager (vpodzime)
-- Enable line wrapping in a couple more places (#901551). (clumens)
-- Support /boot on RAID metadata version 1.2 (#896163). (clumens)
-- Don't check memory for rescue mode (#895948). (clumens)
-- Split __init__ and setup in TUI screens so we can set the environment and
-  search paths (msivak)
-- Add a requirement on device-mapper-multipath (#895973) (msivak)
-- Update default fs type code (#855401). (clumens)
-- Display the background gradient image from a map signal handler. (clumens)
-- Remove the old cmdline and script interfaces. (clumens)
-- anaconda-cleanup doesn't use an interface at all. (clumens)
-- Remove the old text mode UI. (clumens)
-- Move constants_text out of the textw directory. (clumens)
-- Remove more references to system-config-*. (clumens)
-- Add device NM_DEVICE_TYPE_ETHERNET to isys (#893892) (rvykydal)
-- Dump missing ifcfg ifles only for ethernet devices (#893892) (rvykydal)
-- Take over dhcp connection by NM for network root (eg nfs) (#883451, #893656)
-  (rvykydal)
-- Use DEFAULT_LANG instead of magic value "en_US.UTF-8" (vpodzime)
-- fixup spec with 19.1 commits (bcl)
-
-* Mon Jan 14 2013 Brian C. Lane <bcl@redhat.com> - 19.1-1
-- Rework the reclaim dialog to have a resize slider. (clumens)
-- g_type_init call is no longer needed (bcl)
-
-* Fri Jan 11 2013 Brian C. Lane <bcl@redhat.com> - 18.40-1
-- Prepare structures to save spoke completenes for firstboot and GIE (msivak)
-- Do not call exit at the end of GUI interface, just quit the main loop
-  (msivak)
-- Improve handling of .py and .pyc equivalence while collecting classes
-  (msivak)
-- Set default language to en_US.UTF-8 (#891379) (msivak)
-- Set the local hostname during installation (vpodzime)
-- Refactor and cleanup our localization module (vpodzime)
-- Network spoke: use correct state value to display device status. (rvykydal)
-- drop fcoe-utils dependency for s390x (rhbz#894025) (sbueno+anaconda)
-- More TODO list wrangling. (clumens)
-- On storage, remove the "Continue" button and make "Done" do it all (#882737).
-  (clumens)
-- getLUKSPassphrase is no longer used, so kill it. (clumens)
-- "Hub" shouldn't be in the title for any text mode hub. (clumens)
-- Do not lightbox any dialogs on the custom storage spoke (#875291). (clumens)
-- Revert "Do not lightbox the Add Mountpoint dialog (#875291)." (clumens)
-- Don't allow changing a VG name to empty in the VG editor (#892395). (clumens)
-- Check country_layouts is not None when using it (#893026) (vpodzime)
-- Don't redownload payload from closest mirror only if we actually have some
-  (#892665) (rvykydal)
-- Remove some modules obsoleted by the packaging module. (dlehman)
-- Prefer country over language when returning default layout (#867110)
+- Make Keyboard spoke's status consistent with other statuses (#1011166)
   (vpodzime)
-- Fix Quit button in standalone network spoke (#892120) (rvykydal)
-- Network spoke: add sanity check for hostname setting (#856456) (rvykydal)
-- Network spoke: add hostname setting (#856456) (rvykydal)
-- Fix completeness check for md fwraid arrays. (#892621) (dlehman)
-- Fix handling of failure to create a new container. (#892046) (dlehman)
-- Force disk selection for interactive installs. (#888293) (dlehman)
-- Mark another string for translation (#892760). (clumens)
-- Do not lightbox the Add Mountpoint dialog (#875291). (clumens)
-- Strip out pango markup before attempting to match languages (#892463).
-  (clumens)
-- Mark the live progress hub message for translation (#892069). (clumens)
-- Allow deleting whole disks using the reclaim dialog (#880686). (clumens)
-- Don't allow mountpoints to start with /dev (#891447). (clumens)
-- Disable the configure button for pre-existing devices (#888296). (clumens)
-- Add keyboard mnemonics to the spoke selectors, too. (clumens)
-- Add keyboard accelerators to a whole lot of widgets (#864964). (clumens)
-- Try fallback if none exactly matching language is found (#891487) (vpodzime)
-- Only skip welcome screen for ks installs (#891755) (bcl)
-- protect getDirSize from vanishing files (#891759) (bcl)
-- start vnc without ip address (#832510) (bcl)
-- Update physical device's sysfs path for btrfs (sub)volumes. (#891443)
-  (dlehman)
-- Wrap text on the updates checkbox to fix screen placement (#888880).
-  (clumens)
-- The return value from execWithRedirect is an int (#891313). (clumens)
-- Add placeholder names to a couple strings (#890157). (clumens)
-- Fix multiple copies of spokes appearing from update image (msivak)
-- Import pyanaconda.addons in the anaconda script (vpodzime)
-- Update the API which controls where should spokes be displayed (msivak)
-- Update the way we look for glade files, spokes, hubs and categories (msivak)
-- Make screenshot routines reusable in Firstboot (msivak)
-- Do not fail when missing directories are present in addon paths (msivak)
-- Pass addons paths to user interfaces (msivak)
-- hook up help window close button (#889570) (bcl)
-- add setKeyboardCheckButton to list of things to translate (#889352) (bcl)
-- Mark for translation and show translated some more GUI elements (#877658)
+- LiveImageKSPayload skip the parent class setup method (#1010500) (bcl)
+- Pass the actual format instead of Python built-in (#1009678) (vpodzime)
+- Don't allow using updates with non-default network sources (#1008028)
   (vpodzime)
-- Translate storage errors (#877658) (vpodzime)
-- Don't allow changing the boot disk from inside the custom spoke. (#889585)
-  (dlehman)
-- Add help text and a help button to the custom storage spoke. (#889570)
-  (dlehman)
-- Allow /boot on btrfs subvol if using grub2. (#888603,868465) (dlehman)
-- Don't keep old device name when switching to btrfs in custom. (dlehman)
-- Fix container member set management for md arrays. (#889101) (dlehman)
-- Include incomplete devices when listing dependant devices. (#889330)
+- Use Sphinx documentation format in nm.py. (rvykydal)
+- Changed the keyboard accelerator for iscsi "Retry Log In" (dshea)
+- Only fail on a missing firewalld command if the firewall is enabled
+  (#1004976). (clumens)
+- Cleanup some pylint failures in the network module (bcl)
+- Add GtkNotebook support to the accelerators check. (dshea)
+
+* Fri Sep 20 2013 Brian C. Lane <bcl@redhat.com> - 20.19-1
+- tui ErrorDialog needs to be modal (#983316) (bcl)
+- Keyboard variant names may contain dashes (#1008730) (vpodzime)
+- Forbid "root" as a user or group name. (#968451) (dshea)
+- Set the password strength color based on strength (#965596) (dshea)
+- Fix the password confirmation match check (#1009907) (dshea)
+- Replace removed python modules with stubs in makeupdates (vpodzime)
+- Unlock encrypted partitions before finding installations (#901917) (vpodzime)
+- Network TUI: remove unused import, import nm. (rvykydal)
+- Network TUI: show the same status as in gui. (rvykydal)
+- Network TUI: don't traceback when applying config to device without link.
+  (rvykydal)
+- Generate ifcfg VLAN_ID value for kickstart network --vlanid. (rvykydal)
+- Network TUI: fix updating of ksdata in apply. (rvykydal)
+- Network TUI: ignore slaves devices for configuration. (rvykydal)
+- Clean up ifcfg file handling. (rvykydal)
+- Check the validity of generated usernames in TUI (#965543) (dshea)
+- Behave better when PYTHONPATH is already set (dshea)
+- Decode keyboard layout descriptions as UTF-8 (#1009278) (dshea)
+- Filter out devices with no media from custom (#960794) (bcl)
+
+* Wed Sep 18 2013 Brian C. Lane <bcl@redhat.com> - 20.18-1
+- ProgressHub no longer exists in pyanaconda/ui/tui/hubs. (clumens)
+- Search all disk types for install media (#1004726) (dshea)
+- git commit check for ack flag on rhel branches (bcl)
+- Fix Lightbox for compositing window managers (#1008446) (dshea)
+- Add metalink support to yumpayload (bcl)
+- Make progress screen in text mode standalone spoke instead of hub (vpodzime)
+- Render the right arrow based on the widget direction (#1008397) (vpodzime)
+- Mirror the GUI if an RTL language is chosen (#1008397) (vpodzime)
+- Removed unused GUI elements (dshea)
+- Clean up what is and isn't translatable and how. (dshea)
+- Removed the exceptionsText constant (dshea)
+- Add comments for translators to TUI input strings (#854226) (dshea)
+- Use python-format on all intltool-extract strings (dshea)
+
+* Mon Sep 16 2013 Brian C. Lane <bcl@redhat.com> - 20.17-1
+- Fix handling of blank size specs in the custom spoke. (#1004903) (dlehman)
+- Block resize slider value changed handler when setting range. (#1007387)
   (dlehman)
-- Use systemd to run checkisomd5 (#874486) (harald)
-- fixup direct nfs iso url handling (#879187) (bcl)
-- fixup nfs repo install code (#879187) (bcl)
-
-* Wed Dec 19 2012 Brian C. Lane <bcl@redhat.com> - 18.39-1
-- Add more yum locking to yumpayload (#860022) (bcl)
-- The percent bar can go in the same column as the space label. (clumens)
-- Don't resize NTFS partitions to smaller than the filesystem on them
-  (#885912). (clumens)
-- Remove some unused error handling code from old UI. (clumens)
-- Don't generate ifcfg files for non-existing devices in parse-kickstart
-  (#886647) (rvykydal)
-- Encode unicode strings returned by pytz.country_timezones() (#887236)
+- Remove an unused import. (clumens)
+- Create the XklWrapper singleton in background (vpodzime)
+- Translate layout and switching options descriptions on the fly (vpodzime)
+- Improve XklWrapper's API (vpodzime)
+- Move upcase_first_letter function to iutil (vpodzime)
+- Remove the Layout class and things we don't need in XklWrapper (vpodzime)
+- Ignore the whole m4 directory (vpodzime)
+- Do not schedule hubs with no spokes available (#1006357) (vpodzime)
+- Retranslate language filtering placeholder texts (#1007090) (vpodzime)
+- Use pigz to create updates.img (vpodzime)
+- The Desktop class doesn't need to inherit from SimpleConfigFile. (clumens)
+- Fix yet another pylint error caught after the fact. (clumens)
+- Move all languages found by geoip to the top in Welcome spoke (mkolman)
+- Don't set ksdata.lang.seen to True if using default value (mkolman)
+- DNFPayload: reset the sack and repos on updateBaseRepo() (ales)
+- refactor: YumPayload: selectKernelPackage()->_select_kernel_package() (ales)
+- DNFPayload: mirrorlist can not be an empty string. (ales)
+- DNFPayload: display the download step in progressQ. (ales)
+- DNFPayload: logging the missed packages/groups. (ales)
+- DNFPayload: select kernel packages. (ales)
+- DNFPayload: log when the transaction process unexpectedly terminates. (ales)
+- DNFpayload: disable all NSS operations in RPM. (ales)
+- DNFPayload: keyerror in isRepoEnabled() (ales)
+- DNFPayload: implement selectEnvironment() (ales)
+
+* Fri Sep 13 2013 Brian C. Lane <bcl@redhat.com> - 20.16-1
+- add pre-commit hook to run pylint (bcl)
+- Allow runpylint.sh to be passed files (bcl)
+- handle case of no ifcfg and no hostname (#1002737) (bcl)
+- Allow make targets to be run outside of $srcdir (dshea)
+- Fix the wildcard usage in automake files. (dshea)
+- Move the intltool Makefile rules into configure.ac (dshea)
+- Fix a format parameter mapping (#1007472) (dshea)
+- Check whether keyboard translations are stale (#972236) (dshea)
+- Fix the handling of xklavier strings. (dshea)
+- Center the Langsupport spoke's description (vpodzime)
+- Set minimal width request for the locales box (vpodzime)
+- Use constant for default keyboard layout (vpodzime)
+- Try to use VConsole keymap name as X layout (#1007359) (vpodzime)
+- Retranslate also layout indicator when retranslating BaseWindow (#1007087)
   (vpodzime)
-- Always set passphrase for newly encrypted devices. (#888560) (dlehman)
-- Handle edit of preexisting encrypted lv. (#885378) (dlehman)
-- Raise DeviceError instead of ValueError from device ctor. (#888089) (dlehman)
-- Set line wrap on the info bar (#888112). (clumens)
-- Don't crash when vg edit triggers spurious change event. (#883699) (dlehman)
-- Add handling for incomplete lvm/md devices. (#876441) (dlehman)
-- Fallback to mdN if no name was found for incomplete md array. (#873224)
-  (dlehman)
-- Add product.py to POTFILES (#858628). (clumens)
-- Sort categories in GUI alphabetically (msivak)
-- Fix typo in variable name (msivak)
-- Collect addon paths properly (msivak)
-- Move the import constants line below setupPythonUpdates (msivak)
-- Only close AddLayout dialog on double-click if something is selected
-  (#887371) (vpodzime)
-- Add warning to keyboard spoke on live installations (#886463) (vpodzime)
-- Split ksdata execute and setup methods for addons (msivak)
-- Add support for KS %%addon section and the API+code to use it (msivak)
-- Import collected modules only once (msivak)
-- Update run-spoke to use paths (msivak)
-- Export QuitDialog and it's message string (msivak)
-- Update the hack we use to preload AnacondaWidgets - we need to load the
-  typelib not just the .so file (msivak)
-- Add FirstbootMixIn (msivak)
-- Move the path definitions to Interface and pass it to the Hubs from there
-  (msivak)
-- Make TUI ready for getting spokes from multiple directories (msivak)
-- Make GUI more reusable and support multiple directories for spokes and
-  categories (msivak)
-- Modify collect so it works with directories with missing __init__.py (msivak)
-- Split completed and mandatory attributes (msivak)
-- Move info about possible actions below the free space info (vpodzime)
-- Fix a couple pylint errors (#867125). (clumens)
-- Fix an undefined variable error (#867129). (clumens)
-- The fs type combo should be sensitive when reformat is checked (#887201).
-  (clumens)
-- Remove idiomatic, hard to translate text (#865598). (clumens)
-- Activate default layout when it is changed (#882440) (vpodzime)
-- Validate and correct vg names as needed. (dlehman)
-- Don't allow resize of devices with no/unrecognized formatting. (#869841)
-  (dlehman)
-- Add keyboard dracut setup args (#875567) (vpodzime)
-- recheck software when source changes (#875599) (bcl)
-- Include the new lib directory in the package (#886319, #886470). (clumens)
-- Add a gradient background to spoke headers (mizmo, clumens). (clumens)
-- Only allow changing filesystem type if the reformat combo is checked
-  (#885906). (clumens)
-- It's possible for mountpoint to be None (#885279). (clumens)
-- Explicitly set True/False in the bootloader setting (#885381). (clumens)
-
-* Tue Dec 11 2012 Brian C. Lane <bcl@redhat.com> - 18.38-1
-- In interactive installs, default to bootloader in the MBR (#885284).
-  (clumens)
-- Make sure software selection is checked against filesystem space. (#853636)
-  (dlehman)
-- Update default install size and disk space estimate. (dlehman)
-- Add checkbox for setting language default layout (#866887) (vpodzime)
-- Change testing area label to something more appropriate (KeyboardSpoke)
+- Check ready state before baseRepo (#1007448) (bcl)
+- Fix po/Rules-extract so it doesn't remove itself (dshea)
+- Include LayoutIndicator and TimezoneMap to the Micsellaneous Widgets
   (vpodzime)
-- Fix getting country layout variants (vpodzime)
-- Wait for slower dhcp before running vnc server (#868777) (rvykydal)
-- Network spoke: fix NMClient signal callback arguments (#885488) (rvykydal)
-- Add logging for networking and improve logging of ifcfg files (rvykydal)
-- Honor user request via UI to not install a bootloader. (#885240) (dlehman)
-- Handle partition removals regardless of deepcopy. (#884896) (dlehman)
-- Default to partitions for /boot* instead of just /boot/efi. (#884606)
-  (dlehman)
-- Fix a logic error in ActionDestroyFormat.obsoletes. (#885004) (dlehman)
-- Take device type into account when making the config button sensitive
-  (#885051). (clumens)
-- Hide VG-related widgets when displaying a non-LV mountpoint first (#885131).
-  (clumens)
-- Install default system for %%packages --default (#869978) (bcl)
-- Fix a typo in the live cd completion text (#884373). (clumens)
-- Do not allow deleting or editing a protected device in custom part (#884599).
-  (clumens)
-- If path doesn't exist, don't traceback.  Return None. (clumens)
-- Add/remove the HDISO source from protectedDevSpecs (#882147). (clumens)
-- Put the bad VG name into the error message (#884359). (clumens)
-- Use updated connection settings object for default auto config files
-  (#883383) (rvykydal)
-
-* Wed Dec 05 2012 Brian C. Lane <bcl@redhat.com> - 18.36-1
-- Call udev_settle from inside udev_trigger. (dlehman)
-- Prevent enabling the encryption checkbutton erroneously. (dlehman)
-- Make sure Storage is initialized before refreshing the custom spoke.
-  (dlehman)
-- Fix initialization of Storage.roots to use a list. (#884270) (dlehman)
-- Don't allow reformat without setting a mountpoint. (#883076) (dlehman)
-- Fix check for toggled encryption checkbutton. (#882722) (dlehman)
-- Make sure FS minSize is never greater than its currentSize. (#876547)
-  (dlehman)
-- When considering whether anything can be shrunk, throw out protected devs.
-  (clumens)
-- In the UI, mark the HDISO source device as protected (#879610). (clumens)
-- update mdraid superBlock space calculation (#883483) (bcl)
-- Remove resetResolver function, we don't need it anymore (#868695) (rvykydal)
-- Network spoke: improve logging. (rvykydal)
-- Unify writeNetworkConf with other modules (rename, put in ks.execute)
-  (rvykydal)
-- Fix network command --onboot and --activate options. (rvykydal)
-- Fix two calls of self.window.set_info (#883632) (vpodzime)
-- Use BaseWindow.set_warning and set_error in GUIObject's methods (vpodzime)
-
-* Tue Dec 04 2012 Brian C. Lane <bcl@redhat.com> - 18.35-1
-- Fix a bug when switching back to an HDISO install source (#879612). (clumens)
-- Lower case the DONE button on media check. (clumens)
-- Change mirrorlist checkbox text (#883191). (clumens)
-- Change the bootloader button to indicate you can also not install one.
-  (clumens)
-- Stop writing /etc/sysconfig/keyboard (#871543) (mschmidt)
-- Stop writing /etc/sysconfig/i18n (#871543) (mschmidt)
-- Write /etc/hostname (#871543) (mschmidt)
-- Correct doing string substitution for encryption. (clumens)
-- Add install.py to POTFILES.in so a lot more strings can be translated.
-  (clumens)
-- Only instantiate main line action objects when they are needed. (clumens)
-- Add a category to POTFILES.in so "USER SETTINGS" gets translated. (clumens)
-- Make sure product info and spoke titles are translated throughout. (clumens)
-- Substitute on new_install_name when it's needed, not at the top of custom.py.
-  (clumens)
-- Compare the protocol combox box on position, not text. (clumens)
-- When we retranslate the welcome window, inform glibc. (clumens)
-- Add gettext checks to widgets/configure.ac. (clumens)
-- The initial welcome screen is the only one that needs to do retranslation.
-  (clumens)
-- Remove the generic retranslate method from the python portion of the UI.
-  (clumens)
-- Do not allow manipulating protected devices in the reclaim dialog (#882147).
-  (clumens)
-- ISOImage needs to look at /run/install/source for the mounted image
-  (#879142). (clumens)
-- Minor TODO list update. (clumens)
-- Get rid of the unneeded action1. (clumens)
-- Do not list some layouts twice (#882526) (vpodzime)
-- Check if the given NTP server is a valid hostname (#865869) (vpodzime)
-- Improve and document network.sanityCheckHostname (vpodzime)
-- don't write network settings on image install (bcl)
-
-* Sat Dec 01 2012 Brian C. Lane <bcl@redhat.com> - 18.34-1
-- remove extra space in custom.py (bcl)
-
-* Fri Nov 30 2012 Brian C. Lane <bcl@redhat.com> - 18.33-1
-- Escape single percent signs in RPM changelog entries. (dcantrell)
-- Fixes for PkgWrangler review. (dcantrell)
-- Don't let defaults override user-specified container settings. (#879702)
-  (dlehman)
-- Fix partition allocation when enabling container encryption. (#879702)
-  (dlehman)
-- Remove partitions from all appropriate DiskLabel instances. (#870586)
-  (dlehman)
-- Add a way for users to set the names of lvm and md devices. (dlehman)
-- Update the RAID-specific UI after changing the device's disk set. (dlehman)
-- Correctly handle the default vg not having been instantiated yet. (dlehman)
-- Drop requested container disks that don't have enough space. (#873293)
-  (dlehman)
-- Don't allow LVM disk set selection via configure button. (dlehman)
-- Try to add new device to an existing container if disks are full. (dlehman)
-- Fix code to lock encryption checkbutton for LV in existing VG (#877871)
-  (dlehman)
-- Add support for changing a new LV's VG. (dlehman)
-- Fix check for in-use LV name to include VG name. (#875477) (dlehman)
-- Remove the automatic show_all from those info_bar related functions.
-  (clumens)
-- Add set_info, set_error, set_warning functions to the BaseWindow object.
-  (clumens)
-- set_info functions may not be called from outside the main thread (#873600).
-  (clumens)
-- Test if path is valid before using it (NTPConfigDialog) (vpodzime)
 
-* Wed Nov 28 2012 Brian C. Lane <bcl@redhat.com> - 18.32-1
-- Bootloader checking should work in terms of self.stage1/2_ attrs (#880277).
-  (clumens)
-- Catch OverflowError in manual partitioning. (sbueno+anaconda)
-- Do not accept tabs in the keyboard layout test box (#897312). (clumens)
-- Wait for slower dhcp for payload setup and hostname setting (#873468)
+* Wed Sep 11 2013 Brian C. Lane <bcl@redhat.com> - 20.15-1
+- Don't set up the resize slider for non-resizable devices. (#997690) (dlehman)
+- Remove 'completed' property from Autopart spoke in text UI. (sbueno+anaconda)
+- Clean up code for input handling in TUI spokes. (sbueno+anaconda)
+- set_hostname should proceed only on DVD and live installations (vpodzime)
+- Don't use temporary file and move when writing out an ifcfg file (vpodzime)
+- Set hostname when leaving network spokes (vpodzime)
+- Keep file-naming convention with the Lightbox widget (vpodzime)
+- Let users configure autopart options in interactive text ks. (#1001061)
+  (sbueno+anaconda)
+- Add parameters to format strings (dshea)
+- Fix pre-processing of files for xgettext (#1005644) (dshea)
+- Added a test to check for xgettext warnings (dshea)
+- Make sure XklWrapper isn't dumped to the anaconda-tb file (vpodzime)
+- Catch race of network device state vs reading its config properties (#980576)
   (rvykydal)
 
-* Mon Nov 26 2012 Brian C. Lane <bcl@redhat.com> - 18.31-1
-- Rename icons for liveinst (conflict with redhat-logos) (#878037) (rvykydal)
-- Rework actions in the resize dialog to avoid shortcomings (#866209, #867770).
-  (clumens)
-- Check that everything's a GDK window before attempting to manipulate it.
-  (clumens)
-- On live installs, the progress hub should have a Quit button (#854904).
-  (clumens)
-- If no bootloader is to be installed, pop up a warning. (clumens)
-- Escape ampersands in spoke status text. (clumens)
-- Allow not setting any boot device via the UI (#867469). (clumens)
-- Allow specifying whether the URL you've given is a mirrorlist or not
-  (#868558). (clumens)
-- Prevent false positives when checking for encryption change. (dlehman)
-- Don't add incomplete VGs to the LVM reject filter. (#878225) (dlehman)
-- Show device names for devices in the Unknown page/subsection. (#855646)
-  (dlehman)
-- Add a page to the custom RHS notebook for uneditable devices. (#875942)
-  (dlehman)
-- Fix error in iutil.execCapture when fatal and non-zero exit (stefw)
-- Allow iutil.execWithCapture to work without a chroot (stefw)
-- Handle hd iso leavings by dracut (#876897) (jkeating)
-- show error when rsync fails (#868755) (bcl)
-
-* Mon Nov 19 2012 Brian C. Lane <bcl@redhat.com> - 18.30-1
-- only raise rsync error on error 12 (#868755) (bcl)
-- Dump default auto connection's ifcfg file instead of writing a new one
-  (#870922) (rvykydal)
-- Number timezones starting with 1 (#859342) (msivak)
-- only call bootloader.check() if bootloader is setup (#875278) (bcl)
-- Fix operator precedence when checking for the presence of transifex-client.
-  (clumens)
-- Make the custom and keyboard toolbar buttons larger (mizmo). (clumens)
-- More changes to leave the spoke via a glib idle call, not calling directly.
-  (clumens)
-- Hide the custom addon button. (clumens)
-- Enable verbose yum logging once more (jkeating)
-- rm transifex-client buildreq; check and install only if needed (sbueno)
-- Handle nfsiso leavings by dracut (#876223) (jkeating)
-- Prevent some raid-related tracebacks. (#874034) (dlehman)
-- Don't try to save changes to a locked luks device. (#876180) (dlehman)
-- Keyboard test layout padding fix (mizmo). (clumens)
-- Correct colors for selected items in mountpoint selector widget (mizmo).
-  (clumens)
-- Include hidden disks in the storage spoke's list of devices (#875475).
-  (clumens)
-- Make the DetailedErrorDialog taller by default (#874620). (clumens)
-- If there's only a Quit button, don't make it secondary. (clumens)
-- Handle package dependency errors on kickstart installs too (#865073).
-  (clumens)
-- Remove iso-codes dependency, libxklavier has it fixed now (vpodzime)
-- Rework custom partitioning alignment too (mizmo). (clumens)
-- Attempt to fix the shrunken storage UI (mizmo). (clumens)
-- Do not allow TreeView search in AddLayout dialog (#876131) (vpodzime)
-- DiskOverview widget selection color correction (mizmo). (clumens)
-- Use the main loop to control displaying the resize dialog. (clumens)
-- Use ksdata to set default runlevel (jkeating)
-- Execute xconfig data (#874868) (jkeating)
-- Write out xconfig data when executed (jkeating)
-- Code cleanups (jkeating)
-- Link to the correct default target (jkeating)
-- Add a mapping of old run level to new systemd target (jkeating)
-
-* Mon Nov 12 2012 Brian C. Lane <bcl@redhat.com> - 18.29-1
-- Quit after handling transaction errors. (clumens)
-- Add a function to display relevant transaction errors (#873106). (clumens)
-- Don't decorate error dialogs. (clumens)
-- Fix error handling when new device ends up with size 0. (dlehman)
-- Explicitly request all free space when no size given in custom. (#872833)
-  (dlehman)
-- Disable the language spoke off the first hub, for now (#874263). (clumens)
-- Wrap text on install options dialogs (#874265). (clumens)
-- Encode unicode strings from XklWrapper (#873762) (vpodzime)
-- New version (out of order) (bcl)
-- Network spoke: fix traceback (number of callback parameters) (#875393)
+* Tue Sep 10 2013 Brian C. Lane <bcl@redhat.com> - 20.14-1
+- Convert the lightbox into a GObject (#1000927) (dshea)
+- Remove some more unused imports. (clumens)
+- Move the Anaconda class to a proper module (vpodzime)
+- Firstboot should be disabled by default after automated installations
+  (vpodzime)
+- Fix typo introduced in refactorization (#1005511) (vpodzime)
+- Remove unused imports in the network spoke. (clumens)
+- Get rid of the now-unused new_firmware variable. (clumens)
+- Remove magic from the passphrase dialog (#921948) (vpodzime)
+- Don't pass extra arguments to LangLocaleHandler.__init__() (vpodzime)
+- Fix check for device state when reading its IPXConfig (#1001776, # 1005198)
   (rvykydal)
-- Adjust right margin for MountpointSelector (mizmo). (clumens)
-- Fix introspection warnings for widgets (stefw)
-
-* Fri Nov 09 2012 Brian C. Lane <bcl@redhat.com> - 18.28-1
-- Show NFS as the source if dracut left it for us (#875235) (jkeating)
-- Convert the accordion Button to a LinkButton (mizmo). (clumens)
-- Buttons shouldn't scream at people (#868536, mizmo). (clumens)
-- Don't attempt to handle exceptions when NFS mounts fail. (clumens)
-- If there's an error setting up the source, display it as the status.
-  (clumens)
-- Add logging around the messages that can be processed by the hub. (clumens)
-- You can't reformat a btrfs volume/subvolume. (dlehman)
-- Always account for device removals in their containers. (dlehman)
-- Fix container member management for md devices. (dlehman)
-- Use a more robust method for removing previous autopart. (#868589) (dlehman)
-- Post-custom sanity check determines storage spoke completeness. (#868925)
-  (dlehman)
-- Fix detection of inactive md arrays. (#873031) (dlehman)
-- Vastly simplify the process for applying changes from custom spoke. (dlehman)
-- Clean up container disk set and encryption change handling. (#874714)
+
+* Mon Sep 09 2013 Brian C. Lane <bcl@redhat.com> - 20.13-1
+- Fix handling of flexible specs in onpart for member devices. (#1004885)
   (dlehman)
-- Honor kickstart bootloader --location=none. (#871143) (dlehman)
-- Use original raid level and disk set when reverting a device. (dlehman)
-- Set raid level based on defined volume for not-yet-btrfs mounts. (dlehman)
-- Network spoke: improve status info (shorten) (rvykydal)
-- Network spoke: update list of connected devices in hub status (rvykydal)
-- Network spoke: Add "Connecting..." state to status (#868704) (rvykydal)
-- Network spoke: Update status of networking in hub (#868704) (rvykydal)
-- check for small grub2 embed space (#737508) (bcl)
-- Set SpokeSelector's tooltip to spoke's status (vpodzime)
-- Don't let mount/umount block python threads (#873600). (clumens)
-- Fix makeupdates to correctly detect and include changes in isys. (clumens)
-- Update pot file with proper lower cased buttons (#868536, mizmo). (clumens)
-- Default to LVM on text installs too (#874586). (clumens)
-- Remove network enablement in anaconda from rescue mode (#873854) (rvykydal)
-- Add very basic U-Boot support for ARM platforms (dmarlin)
-- Fix test for changed disk set for partitions. (#873994) (dlehman)
-- Add support for preexisting whole-disk formatting. (#870476) (dlehman)
-- There is no Storage.destroyFormat method. (dlehman)
-- Move DEVICE_TYPE constants into storage and use them everywhere. (dlehman)
-- A device scheduled for reformat is not unused. (dlehman)
-- Catch the right exception when settin up raid options ui. (#873486) (dlehman)
-- Network spoke: Use connection state that triggered a callback (bug #871429)
+- Always regenerate initramfs (#994180) (bcl)
+- Avoid the use of NamedTuple._make (dshea)
+- Add superclass __init__()s and fix an indent (dshea)
+- Pass logging string format variables as parameters (dshea)
+- Remove unnecessary variables, imports, semicolons (dshea)
+- Fix the user/group name regex (dshea)
+- Fix problems with the test scripts (dshea)
+- Handle kickstarts that don't specify timezone (#1001598) (mkolman)
+- Don't set "date of last password change" /etc/shadow field (#985572)
+  (hdegoede)
+
+* Fri Sep 06 2013 Brian C. Lane <bcl@redhat.com> - 20.12-1
+- Cleanup arch tests (dshea)
+- Rearranged the automake tests. (dshea)
+- Update po/ build files to the current gettext (dshea)
+- Use libtool with gtkdoc-scanobj (dshea)
+- Use autoconf to set the spec file Version. (dshea)
+- Use the ustar format with make dist (dshea)
+- Fix widgets autotools generation. (dshea)
+- Require gtk-doc and GObject. (dshea)
+- dracut no longer auto assembles everything (#960496) (bcl)
+- Only ignore missing packages entries (#983316) (bcl)
+- Fix a string that was modified before translation (#1004960) (dshea)
+- Let users configure keyboard via anaconda in live installations (#1002533)
+  (vpodzime)
+- Use copy instead of move for NTP configuration (#985566) (hdegoede)
+- Share code between the Welcome and Langsupport spokes (vpodzime)
+- Do not try to set None as hostname (#1002737) (vpodzime)
+- Fix crash on LiveCD if network is configured before installing (#1002373)
   (rvykydal)
-- Use sr_Latn_RS instead of sr_RS (vpodzime)
 
-* Wed Nov 07 2012 Brian C. Lane <bcl@redhat.com> - 18.27-1
-- Mark more UI strings with N_ (#874276). (clumens)
-- Pressing Enter on the passphrase dialog should continue (#788556). (clumens)
-- Pressing Enter should activate the rightmost button on the detailed dialog.
-  (clumens)
-- Pressing enter on a MountpointSelector should display it on the RHS
-  (#873352). (clumens)
-- Make language groups work again (#873865) (jkeating)
-- Update payload if slower dhcp succeeds in network pre-hub spoke (#873468)
+* Thu Sep 05 2013 Brian C. Lane <bcl@redhat.com> - 20.11-1
+- Add more details to iso device selector (#971290) (bcl)
+- Warn user if they enter a weak password in TUI. (#1001039) (sbueno+anaconda)
+- Don't mark spoke as completed if no repo is set. (#1001538) (sbueno+anaconda)
+- Don't enable chronyd if disabled in kickstart (#1002583) (mkolman)
+- Run firstboot-only spokes on first boot by default (vpodzime)
+- Let hubs specify which environments they support (vpodzime)
+- Don't mount cdroms that contain no mountable media. (#1000889) (dlehman)
+- Don't try to parse langcode if none given (vpodzime)
+- Get rid of the non-deterministic expand_langs and its usage (vpodzime)
+- Rework the Langsupport spoke to work with all locales (vpodzime)
+- Rework the Welcome spoke to allow users choose from all locales (vpodzime)
+- Improve import in GUI utils a bit (vpodzime)
+- Remove the cryptic "language-default keyboard" checkbutton (vpodzime)
+- Allow seting up locale without modifying ksdata (vpodzime)
+- Remove an unused argument of get_available_translations (vpodzime)
+- Setup language early to a value we can figure out (vpodzime)
+
+* Tue Sep 03 2013 Brian C. Lane <bcl@redhat.com> - 20.10-1
+- Optionally hide the GUI option to install updates (dshea)
+- Move the really_hide and really_show functions to utils (vpodzime)
+- Search for all translations, not only one per langauge (#1001446) (vpodzime)
+- Use the DEFAULT_LANG if GeoIP suggestion cannot be used (#1000715) (vpodzime)
+- Network spoke: fix showing of ipv6 addresses (rvykydal)
+- Use the sensitive-info log for sensitive location info (#986844) (mkolman)
+- Add new logger for sensitive information (mkolman)
+- Handle %%define changes for autofetch (mkolman)
+- Update dumping of network info for new nmcli interface. (rvykydal)
+- Text network spoke: more strict ipv6 address input checking (#909299)
   (rvykydal)
-- Fix group access after parsing btrfs subvol list output. (#868468) (dlehman)
-- Account for autopart swap size when checking free space. (dlehman)
-- ignoredisk.onlyuse contains names, not StorageDevice instances. (#873463)
-  (dlehman)
-- Correctly handle toggle of encryption state for devices. (#873445) (dlehman)
-- Handle changes to encryption state of container members. (#873445) (dlehman)
-- Change custom spoke to apply encryption to PVs, not LVs. (dlehman)
-- Widen the sidebar on custom partitioning (mizmo). (clumens)
-- Fix spacing and padding on SpokeSelectors (mizmo). (clumens)
-- Set the font globally (mizmo). (clumens)
-- Handle if we get something other than a .treeinfo file (#872012). (clumens)
-- If repo metadata fetching fails, set an info error message (#873605).
-  (clumens)
-- Enable yum langpacks plugin to get conditional packages (#868869) (jkeating)
-- Base whether an add-on is selected on the selectedGroups, not ksdata
-  (#873092). (clumens)
-- Add UTC and GMT-X timezones (#863199) (vpodzime)
-- TimezoneMap should handle "" timezone (vpodzime)
-- raise error on rsync failure (#868755) (bcl)
-- exclude bind mounts from rsync (#871637) (bcl)
-- Fix up the InstallOptions3Dialog.refresh arguments (#873392). (clumens)
-- Mark strings at the top of spokes with N_; translate later with _ (#872791).
-  (clumens)
-- Do not decorate the dialog that appears when you click on storage info bar.
-  (clumens)
-- You have to give "raise" an exception if you're outside a handler (#872874).
-  (clumens)
-- Prompt for encryption passphrase in reclaim path. (#869391) (dlehman)
-- Prevent user from hitting save without entering a passphrase. (#869391)
-  (dlehman)
-- Font and padding updates for the network spoke (mizmo). (clumens)
-- Fix alignment on the Add and Configure Mount Point dialogs. (clumens)
-- Network spoke: activate wifi connection after setting secrets (#871132)
+- Network spoke: show global ipv6 addresses (rvykydal)
+- Text network spoke: add to translated files (po/POTFILES.in) (#902299)
   (rvykydal)
-- Fix nfsiso as stage2 (#871554) (jkeating)
-- Fix traceback when saving changes to an existing partition. (#872446)
-  (dlehman)
-- Some more stuff for the mangleMap (#866730) (vpodzime)
-- Handle locale's encoding and script in a better way (vpodzime)
-- Use both language and country to guess layout (#861061) (vpodzime)
-- Fix remaining issues with md fwraid. (#872739) (dlehman)
-- Do not return None from Size.__str__ (#869405) (vpodzime)
-- Add a platform weight for ARM images (dmarlin)
-- Remove a bunch of stuff from the TODO list. (clumens)
-- Don't decorate the main exception window. (clumens)
-- Move the custom partitioning's Apply Changes button. (clumens)
-- Indent partition type options under the expander further. (clumens)
-- Left align the Label label, and indent the custom options further. (clumens)
-- Lots of custom partitioning UI changes (mizmo). (clumens)
-- Update fonts on the welcome language spoke (rlerch). (clumens)
-- Lots of storage spoke font and spacing changes (mizmo). (clumens)
-- Set the background of the custom partitioning accordion back to white
-  (mizmo). (clumens)
-- Set the Local Standard Disks background back to white (mizmo). (clumens)
-- Reorder Device Type options in custom part to match the Partition Type combo.
-  (clumens)
-- Use the same terminology for partitions as is in use on the custom spoke.
-  (clumens)
-- livecd specific code has moved (bcl)
-- Add progress percentage info to liveinst (bcl)
-
-* Thu Nov 01 2012 Brian C. Lane <bcl@redhat.com> - 18.23-1
-- Update parsing of 'btrfs subvol list' to match its new output. (#868468)
-  (dlehman)
-- Add a way to select the default device type. (dlehman)
-- Enable specification of disk(s) for individual mountpoints. (#870569)
-  (dlehman)
-- Improve management of complex devices in custom spoke. (#865199) (dlehman)
-- Save btrfs subvols' requested size. (dlehman)
-- Reclaim extra set member growth evenly across members. (dlehman)
-- Give lvmpv a slightly more realistic minimum size. (dlehman)
-- Fix required space calculation for lvm. (dlehman)
-- Don't filter disks when scanning storage after autopart fails. (#866717)
-  (dlehman)
-- Fix detection of partitioned md devices. (#866519) (dlehman)
-- Correct handling of disks with hidden formats. (#866519) (dlehman)
-- Revert "Fall back to lvm autopart if the default fails." (dlehman)
-- Revert the default autopart type to lvm. (#870207) (dlehman)
-- Apparently necessary kpartx changes (#867593) (dlehman)
-- Mark a few more important strings for translation. (clumens)
-- If lang= was provided on the command line, set the installation language.
-  (clumens)
-- Make the decision to skip the welcome screen more complicated. (clumens)
-- Set a translation domain before loading a glade file. (clumens)
-- Don't decorate the NTP config dialog. (clumens)
-- Mark properties in existing glade files as translatable. (clumens)
-- Widget properties exposed via glade need to be marked as translatable.
-  (clumens)
-- Network spoke: don't try to call replace on None (traceback) (#869106)
+- Text network spoke: require netmask and gateway for static ipv4 (#902299)
   (rvykydal)
-- Fix nfsiso repo selection (#871648) (jkeating)
-
-* Wed Oct 31 2012 Brian C. Lane <bcl@redhat.com> - 18.22-1
-- Revert "Update parsing of 'btrfs subvol list' to match its new output.
-  (#868468)" (dlehman)
-- Pass RAID level to btrfs volume constructor. (#866101) (dlehman)
-- Fix a traceback when removing non-existing partitions in custom. (#869839)
-  (dlehman)
-- Update parsing of 'btrfs subvol list' to match its new output. (#868468)
-  (dlehman)
-- Remove the word "review" from the label on the custom checkbutton. (#871109)
-  (dlehman)
-- Require that the root filesystem be created by anaconda. (#871104) (dlehman)
-- On error, reset the RHS to what it used to be (#869422). (clumens)
-- Don't prompt when in cmdline mode (#869685) (jkeating)
-- Force a root password to be set (#869675) (jkeating)
-- Network spoke: fix hostname handling in standalone spoke (#868535) (rvykydal)
-- Network spoke: fix config info update after switching device OFF and ON
-  (#871429) (rvykydal)
-- Network spoke: connected requires activated (not active) connection (#871129)
+- Text network spoke: Condense device configuration information (#902299)
   (rvykydal)
-- Blank out passphrases from /root/anaconda-ks.cfg (#868519). (clumens)
-- Setup package repo in the background (#870552) (jkeating)
-- check disklabels when calculating free space (#863892) (bcl)
-- updateBaseRepo does not need a storage argument. (clumens)
-- Fix up calling superclass setup methods in packaging (#870556). (clumens)
-- Fix a race condition with kickstarts (#868834) (jkeating)
-- run checkisomd5 from anaconda-diskroot (#848764) (bcl)
-- skip luks passphrase in exception dump (#868509) (bcl)
-- Replace ' ' with '_' when looking for ifcfg files (#869106) (rvykydal)
-- Remove storageComplete, which was only called from dispatch.py. (clumens)
-- Remove dispatch.py and its associated test case. (clumens)
-- Use a slightly different method to get supported languages (#858801, tagoh).
-  (clumens)
-- Fix problems when changing things in the software spoke (#868742, #869424).
-  (clumens)
-- Network spoke: fix callback arguments for device add/remove. (rvykydal)
-- display storage errors in text mode storage spoke (bcl)
-- only clear errors if re-running the check (#868707) (bcl)
-- set boot flag and name for EFI partition (#866106) (bcl)
-- clear pmbr_boot on EFI systems (#844551) (bcl)
-- Lots of UI layout tweaks (mizmo). (clumens)
-- /etc/sysconfig/keyboard doesn't support vconsole.xyz options. (notting)
-
-* Thu Oct 25 2012 Brian C. Lane <bcl@redhat.com> - 18.21-1
-- Add PowerNV as a recognized PPC platform (nacc)
-- anaconda should print unknown platform information (hamzy)
-- Toggle chosen property on focus change (MountpointSelector) (vpodzime)
-- Lock source spoke while depsolving (#867591) (jkeating)
-- In custom part, don't display mountpoints without associated disks (#865942).
-  (clumens)
-- Tie "Reclaim Space" button sensitivity to how much space the user freed
-  (#869375). (clumens)
-
-* Tue Oct 23 2012 Brian C. Lane <bcl@redhat.com> - 18.20-1
-- Add dialog for configuring layout switching options (vpodzime)
-- Initialize layout switching if needed (vpodzime)
-- Save layout switching configuration (vpodzime)
-- Add support for layout switching options to XklWrapper (vpodzime)
-- We need to set _root in two places for a MountpointSelector. (clumens)
-- Correctly destroy the deletion confirmation dialog. (clumens)
-- Don't set self.data.method.url until after checking for a protocol (#869102).
-  (clumens)
-- Fix an undetected bug when setting up an HTTPS method. (clumens)
-- YabootSILOBase objects don't have an encrypted_password parameter (#869016).
-  (clumens)
-- rprivate -> make-rprivate (#869246). (clumens)
-- If NFS is selected in the source spoke, the URL must contain a colon
-  (#869103). (clumens)
-- Modify behavior when leaving the reclaim storage dialog (#864128, #867770,
-  #868903). (clumens)
-- Set the status text in the SpokeSelector widget differently now. (clumens)
-- Use the correct font for each language on the welcome screen (#868836,
-  tagoh). (clumens)
-- Everywhere we make a MountpointSelector, give it a _root attr (#868702).
-  (clumens)
-- payloadInstallHandler should only optionally take a package argument
-  (#868542). (clumens)
-- Add a reformat checkbutton to indicate a desire to reformat the device.
-  (dlehman)
-
-* Fri Oct 19 2012 Brian C. Lane <bcl@redhat.com> - 18.19-1
-- Reset the comps to empty along with everything else in yum. (clumens)
-- Hook up the "Remove Packages" button on the dep solving error screen.
-  (clumens)
-- If nothing's changed in the software spoke, don't redo dep solving. (clumens)
-- skip vnc prompt with text mode and kickstart (bcl)
-- Use correct name for MD RAID device description text. (dlehman)
-- Fix selector management after a reformat action is scheduled. (dlehman)
-- Aqcuire yum lock before doing the work of _yumCacheDirHack. (#858993)
-  (dlehman)
-- Reset error list on success of doKickstartStorage. (dlehman)
-- Tighten up management of passphrases across Storage resets. (#865364)
-  (dlehman)
-- Do not count not-yet-created filesystems as free space. (#866895) (dlehman)
-- Remove any preexisting autopart layout before space check. (#866895)
-  (dlehman)
-- Apply disk selections to the devicetree before the space check. (#866895)
-  (dlehman)
-- Update free space totals before refresh after removing a device. (dlehman)
-- Log exceptions raised from PartitionDevice constructor. (dlehman)
-- Fix size specs for PartitionFactory. (dlehman)
-- Reinitialize disks after removing the last partition from custom spoke.
-  (dlehman)
-- Refactor shouldClear slightly. (dlehman)
-- Use correct means for getting device type in the custom spoke. (dlehman)
-- Repopulate the RHS after editing a device. (dlehman)
-- Don't bother resizing a container that has just been emptied. (dlehman)
-- Don't allow implicit fstype change via mountpoint. (#866953) (dlehman)
-- Set up devices before trying to decrypt them. (#865247, #867533) (dlehman)
-- Don't short-circuit devicetree populate based on clearpart setting. (dlehman)
-- Keep hostname when updating ksdata after GUI network configuration (#866516)
+- Text network spoke: fix ipv4 regex (#909299) (rvykydal)
+- Resolved accelerator conflicts and marked excpetions. (dshea)
+- Added tests for duplicated keyboard accelerators (dshea)
+- Implement group creation with GID in GUI (#968085) (dshea)
+- Remove unused imports. (dshea)
+- Move dynamic labels out of custom.glade (#1000703) (dshea)
+
+* Mon Aug 26 2013 Brian C. Lane <bcl@redhat.com> - 20.9-1
+- Text network spoke: basic configuration support (#909299) (rvykydal)
+- Add support for network configuration in TUI. (#909299) (sbueno+anaconda)
+- Remove partial matches from Koji search results (mkolman)
+- Handle >=,<=,= for package version, fix -a/--add (mkolman)
+- Return only network devices supported in installer from nm_devices (#999514)
   (rvykydal)
-- don't save system time on s390 (#867856) (dan)
-- Network spoke: make Configure button insensitive when running nmce (#865931)
+- Obtain network device type specific dbus interface dynamically (#999514)
   (rvykydal)
-
-* Wed Oct 17 2012 Brian C. Lane <bcl@redhat.com> - 18.18-1
-- remove firewall.py from POTFILES.in (bcl)
-- Add missing pieces for kickstart's encryption cipher option. (dlehman)
-- update to use firewalld (#815540) (bcl)
-- Fix a typo in method name (#863765) (msivak)
-- Add missing import (#867296) (msivak)
-- There is no anaconda object available in writeSysconfigKernel (vpodzime)
-
-* Tue Oct 16 2012 Brian C. Lane <bcl@redhat.com> - 18.17-1
-- Add an error handler for fatal package installation errors (#865291).
-  (clumens)
-- Modify the status test for the software selection spoke. (clumens)
-- Various layout and font improvements to the keyboard spoke (mizmo, rlerch).
-  (clumens)
-- Just return the size string uppercased (#867074). (clumens)
-- Revert "Use a capital "B" in the size module (#859932)." (clumens)
-- Revert "Fix one more reference to bits (#859932)." (clumens)
-- Fix padding around the addons view in the software spoke. (clumens)
-- The Unknown page selectors/devices have no root. (dlehman)
-- Avoid using mount --move on shared paths (#853508) (jkeating)
-- Revert "Release Gdk lock in exception handling" (msivak)
-- Make all Gtk calls from inside of it's main loop (and thread) (msivak)
-- Remove Gdk thread initialization, introduce new helper functions and make
-  exception handler be called by Gtk only once (msivak)
-- Fix threading initialization (msivak)
-- Do not remove the layout if it was added back (#865830) (vpodzime)
-- Release Gdk lock in exception handling (vpodzime)
-- Configure new-kernel-pkg to keep tboot configuration on updates (#742885)
-  (pjones)
-- Honor the nompath option. (dlehman)
-- Validate lv names. (dlehman)
-- Add support for specifying encryption cipher mode via kickstart. (dlehman)
-- Acquire the yum lock before accessing YumBase.repos. (#858993) (dlehman)
-- Remove the entry on the resize dialog's combo boxes. (clumens)
-- disks_free -> disks_size (#863647). (clumens)
-- Fix one more reference to bits (#859932). (clumens)
-- Fix a traceback in media check (#865897). (clumens)
-- Add support for deleting an entire root via the existing ConfirmDeleteDialog.
-  (clumens)
-- Don't traceback when removing a mountpoint with no expanded selector
-  (#862746). (clumens)
-- Remove the code for removing an entire Root all at once. (clumens)
-- Yet more TODO list updates. (clumens)
-- Don't display "None" in the name of a root. (clumens)
-- Fix configuration of protected wireless connections (#855526) (rvykydal)
-- Fix graphical kickstart with %%packages data (jkeating)
-- Add password validation to text password spoke (jkeating)
-- Make use of the validatePassword routine from users.py (jkeating)
-- Add a password verification method to users.py (jkeating)
-- Always honor the 'nokill' flag (vpodzime)
-- Fall back to lvm autopart if the default fails. (#864708) (dlehman)
-- Special boot devices are handled the same whether they exist or not.
-  (dlehman)
-- Fix a bug allocating fixed-size partitions. (dlehman)
-- Clean up size sets immediately after allocation run. (#864771) (dlehman)
-- Make sure partition base sizes are adequate for their formatting. (dlehman)
-- Don't fail to account for all set members' growth. (dlehman)
-- Remove some extra calls to show_first_mountpoint. (dlehman)
-- Show the correct raid options for btrfs. (dlehman)
-- Support change of raid level in custom spoke. (dlehman)
-- Use devicetree as partition list source instead of parted. (#864718)
-  (dlehman)
-- Use Storage convenience methods to schedule reclaim actions. (dlehman)
-- Pass disk list when trying to recover from device type change failure.
-  (dlehman)
-- Fill in missing parts of the disabled raid features dict. (dlehman)
-- Clear errors when entering or leaving the custom spoke. (dlehman)
-- Hook up signal handler for raid feature checkbuttons. (dlehman)
-- Raise MDRaidError instead of ValueError from devicelibs.mdraid. (dlehman)
-- Minimum we have to do with HW clock (vpodzime)
-- Check X layouts specified in kickstart for validity (vpodzime)
-- Work with VConsole keymap and X layouts separately (vpodzime)
-- Add class wrapping systemd-localed functionality (vpodzime)
-- Don't write XkbVariants if none are specified (vpodzime)
-- Add comment to the begining of generated xorg.conf file (vpodzime)
-- Don't display "None" for NIC vendors and products NM can't identify (#859540)
+- Catch no-hwaddr exception only for the respective call (#999514) (rvykydal)
+- Don't catch hwaddr not found exception for ethernet devices (#999514)
   (rvykydal)
-
-* Thu Oct 11 2012 Brian C. Lane <bcl@redhat.com> - 18.16-1
-- Don't try to load ifcfg files for wifi devices (#865355) (vpodzime)
-- Rewrite isWirelessDevice to Python and DBus calls (#862801) (vpodzime)
-- Use a capital "B" in the size module (#859932). (clumens)
-- The environment window needs a vertical scroll bar (#865066). (clumens)
-- liveinst should recognize inst.updates too (#865398). (clumens)
-- Improve validation of device edit requests. (dlehman)
-- Fix listing of subvolumes for existing btrfs volumes. (dlehman)
-- Remove overzealous correction of device type for /boot*. (#863574) (dlehman)
-- Pad filesystem minimum sizes to ensure other OS can still run. (dlehman)
-- Handle encrypted partitions in size set classes. (dlehman)
-- Don't set mountpoints of "(null)" in mountpoint selectors. (dlehman)
-- Prevent crash trying to populate raid options on a one-disk system. (dlehman)
-- Rework type combos and don't offer RAID on one-disk systems. (dlehman)
-- Bundle more of data/ in updates.img (jkeating)
-- Revive reipl (#860244) (jkeating)
-
-* Wed Oct 10 2012 Brian C. Lane <bcl@redhat.com> - 18.15-1
-- add noverifyssl to anaconda-dracut (#852229) (bcl)
-- Don't crash when running anaconda a second time (jkeating)
-- Handle ssh prompt in new tmux world (jkeating)
-- Add a service to run anaconda directly on the tty (jkeating)
-- Add a script to attach to anaconda's tmux (jkeating)
-- Add ARM-OMAP class to create a uboot partition to support the boot-loader.
-  (dmarlin)
-- Avoid a loop of storage spoke executions during kickstart (#865048).
+- Added a validation test for the GUI group list (dshea)
+- Validate input fields on the user spoke. (#967245) (dshea)
+- Added an input validation framework. (dshea)
+- Pre-fetch widgets in advanced user dialog (dshea)
+- Change validatePassword to be more flexible. (dshea)
+- Moved regexes into regexes.py. (dshea)
+
+* Fri Aug 23 2013 Brian C. Lane <bcl@redhat.com> - 20.8-1
+- Fix a SIGSEGV when returning from storage spoke (#983319) (dshea)
+- makebumpver: Fix problem with single line body (bcl)
+- For now, ignore checking dnfpayload.py with pylint. (clumens)
+- Don't do str() on an exception we're passing into a string substitution.
   (clumens)
-- Correct lookup of raid.XX "mountpoints" for kickstart installs (#864764).
-  (clumens)
-- Change language matching on the welcome screen back around. (clumens)
-- Another attempt at fixing the squished screen bug (#849211). (clumens)
-- Fix a stupid typo in the disk shopping cart (#864842). (clumens)
-- Reorder the buttons and labels on the bottom left of the storage spoke.
-  (clumens)
-- Modify the DetailedErrorDialog buttons. (clumens)
-- Sync up hidden/unhidden disks between the UI and storage module (#864180).
-  (clumens)
-- When handling a storage error, reload self.disks (#862972). (clumens)
-- Fix sshd bringup when also using a kickstart file (#863441) (jkeating)
-- Require root password spoke be visited (#859069) (jkeating)
-- add some thread logging (bcl)
-- Reword the description on the resize dialog (#863577). (clumens)
-- Present an error message if no disks are detected (#864093). (clumens)
-- When changing environments, don't explicitly exclude groups (#863886).
-  (clumens)
-- Fix marking the "Modify Software Selection" button as sensitive in one case.
+- Check for hwaddress exceptions. (dshea)
+- If LANG isn't set, set it to default value. (#997397) (sbueno+anaconda)
+- Remove yet another unused import. (clumens)
+- swap devices should be under the System portion (#962668). (clumens)
+- Populate the repo store before changed can ever be called (#994940).
   (clumens)
+- Make the ISO choosing widget wider (#973376). (clumens)
+- Don't recommend /usr as a separate mount point anymore (#981465). (clumens)
+- Do not run another instance of the TUI for errors (#997661) (vpodzime)
+- Do not try to exit from the installation thread (vpodzime)
+- Tell which thread failed to be added by the ThreadMgr (vpodzime)
 
-* Mon Oct 08 2012 Brian C. Lane <bcl@redhat.com> - 18.14-1
-- Add UI support for encrypted automatic partitioning. (dlehman)
-- Add support to the custom spoke for encrypted block devices. (dlehman)
-- Add a page for decrypting existing LUKS devices. (dlehman)
-- Add a dialog for collecting a passphrase for newly encrypted devices.
-  (dlehman)
-- Add a property that provides a list of all selectors in the accordion.
-  (dlehman)
-- Handle luks formats during populate if they have a passphrase set. (dlehman)
-- Add encryption support to the device factory classes. (dlehman)
-- s/dev/disk in the disk shopping cart. (clumens)
-- Set a default payload in InstallOptions1Dialog (#863582). (clumens)
-- Pass disks into the SelectedDisksDialog (#863588). (clumens)
-
-* Fri Oct 05 2012 Chris Lumens <clumens@redhat.com> - 18.13-1
-- Make sure packages anaconda requires are installed. (clumens)
-- Add method returning current activated X layout (vpodzime)
-- Fix a deadlock when trying to add a keyboard layout (#862612). (clumens)
-- ntfsresize uses SI (MB) while the rest of us use IEC (MiB). (#862109)
-  (dlehman)
-- Remove empty extended partitions after removing a logical partition.
-  (dlehman)
-- Handle all logical/extended partitions in unusedDevices. (dlehman)
-- Update autopart/custom setting before moving to reclaim dialog. (#863225)
-  (dlehman)
-- Raise an exception early in newDevice if no disks were specified. (#858139)
-  (dlehman)
-- Fix a regression in BTRFSVolumeDevice.listSubVolumes. (#862742) (dlehman)
-- Fix behavior of resolveDevice when devspec is a device name. (dlehman)
-- Prevent BTRFS volumes from ever having the name None. (dlehman)
-- Prevent negative free value for filesystems. (#861812) (dlehman)
-- Don't show extended partitions that contain logical partitions. (#862971)
-  (dlehman)
-- Delete ts data instead of trying to undo dep installs. (#851114) (dlehman)
-- Change the manglings for a couple locales (petersen). (clumens)
-- Hook up the "Modify Software Selection" button on install opts dialogs.
+* Wed Aug 21 2013 Brian C. Lane <bcl@redhat.com> - 20.7-1
+- Modify the gtk_warning function in anaconda to use gtk3. (clumens)
+- Fix some pylint warnings in the new DNF code. (clumens)
+- Fix a couple more pykickstart handler version mismatches. (clumens)
+- anaconda requires a later version of partitioning syntax now. (clumens)
+- packaging: add dnf to the Anaconda's requires. (ales)
+- Enable DNFPayload on specific triggers. (ales)
+- DNFPayload: initial version. (ales)
+- refactor: tear down the install device in PackagePayload.reset(). (ales)
+- refactor: extract the device handling in YumPayload._configureBaseRepo up to
+  PackagePayload. (ales)
+- refactor: move YumPayload._setUpMedia() up to PackagePayload._setupMedia().
+  (ales)
+- Tweaks in the Payload interface. (ales)
+- remove: configureAddOnRepo from the Payload interface. (ales)
+- Payload: forgotten comment in spaceRequired() (ales)
+- Payload: define txID to None. (ales)
+- The NFS text dialog should never attempt to use method.url (#998446).
   (clumens)
-- More TODO list updates. (clumens)
-- Add a label to the resize dialog for how much space is required. (clumens)
-- Add a column to the disk shopping cart for setting the boot device (#860430).
+- Remove the unittest target, since "make check" will do this for us. (clumens)
+- Use the latest version of the RAID kickstart handler. (clumens)
+- Update both the method and repo info. (dshea)
+- remove the UBOOT class arm systems are now using EXTLINUX (dennis)
+- ARM: switch to using extlinux by default (dennis)
+- Update our pylint arguments. (clumens)
+- Don't implicitly unpack exceptions.  That won't be supporetd in the future.
   (clumens)
-- Rework the disk shopping cart link a little bit. (clumens)
-- Do not use constant value in SoftwareSpoke's completed property (vpodzime)
-- Pull in existing swaps and bootloader devices whenever there are mounts.
-  (dlehman)
-- Revert broken logic for newly formatted devices in unusedDevices. (dlehman)
-- Add an apply button to the device/mountpoint configuration options. (dlehman)
-- Don't base StorageSpoke.ready on storage execute thread presence. (#861574)
-  (dlehman)
-- Prevent systemd timeout waiting for encryption passphrase. (#861123)
-  (dlehman)
-- Fix traceback when switching device type to lvm. (#860990) (dlehman)
-- Fix error handling in the add mountpoint dialog. (#860992) (dlehman)
-- Allow xfs /boot. (dlehman)
-- Fix makeupdates to work for glade files in subdirs of spokes/ or hubs/.
+- Modify how we call logging functions to take a list of parameters. (clumens)
+- Use "raise Exception()" instead of "raise Exception, ..." (clumens)
+- Hook up pylint and our nosetests to be run via "make check". (clumens)
+- Drop unneeded required_space_text variable. (#997690) (dlehman)
+- Specify also query script when getting locale's native name (vpodzime)
+- Update runpylint.sh for pylint 1.0.0 (bcl)
+- Clean up translation placeholders (#890157) (bcl)
+- Don't override multilib setting unless the option was passed. (#987557)
   (dlehman)
-- Fix parsing of NFS method strings (#860966) (jkeating)
-- Make the URL entry sensitive for NFS installs, too (#863014). (clumens)
-- Add in a locale mapping to avoid incorrect system settings (#858591).
+- Set the encoding of custom.py to utf-8 (dshea)
+- Report if a package was not found in Koji during autofetch (mkolman)
+- Convert makeupdates from getopt to argparse (mkolman)
+- Fixed the interpretation of RAID levels (dshea)
+- Consolidate get_object() calls. (dshea)
+- Add ASCII-only upper and lower string functions. (dshea)
+- Fix the User/Group already exists log messages. (dshea)
+- Normalize keyboard layout and variant strings from langtable (vpodzime)
+- A few tests for the keyboard layout and variant strings processing (vpodzime)
+- More robust parsing of the layout and variant string specification (vpodzime)
+- Move DEFAULT_VC_FONT to constants (vpodzime)
+- Match langs with stripped accents when filtering languages (vpodzime)
+- Fix the User subclass using an old version of the pykickstart superclass.
   (clumens)
+- Bring the kickstart version test back to life. (clumens)
+- Don't read proxy for methods that have no proxy (dshea)
 
-* Wed Oct 03 2012 Brian C. Lane <bcl@redhat.com> - 18.12-1
-- copy-logs changed names (bcl)
-- Reference correct UI button name (#862409) (jkeating)
-- Don't echo vnc password to the screen (#862593) (jkeating)
-- Make the log copy script the last one to run (jkeating)
-- Copy ks script logs into the install root as well (jkeating)
-- Create ks script logs outside of chroot (jkeating)
-- Don't look for ifcfgs of wireless devices (#860791) (rvykydal)
-- doAutoPartition should raise errors instead of handle them. (clumens)
-- In the install options dialogs, call out how much space is on selected disks.
-  (clumens)
-- In order to display the resize prompt dialog, we need to compare Sizes to
-  Sizes. (clumens)
-- Use a better starting value for required space than 0. (clumens)
-- Default to CLEARPART_TYPE_NONE (#855976). (clumens)
-- Remove some unused clearpart-related settings. (clumens)
-- Hook up the new resize dialog. (clumens)
-- Add a resize dialog. (clumens)
-- Require the hostname package (#862419) (jkeating)
-
-* Tue Oct 02 2012 Chris Lumens <clumens@redhat.com> - 18.11-1
-- Use gdk_threaded() when running AddLayout dialog (vpodzime)
-- Work the anaconda object into the VNC test (jkeating)
-- Use askvnc spoke to change vnc password (jkeating)
-- Fix logic error in vnc password length check (jkeating)
-- Allow vncpassword spoke text to be configurable (jkeating)
-- Don't ask for VNC if we can't do it (jkeating)
-- Skip VNC prompt if text is requested in kickstart (jkeating)
-- KEYTABLE is now vconsole.keymap (#859298) (bcl)
-- The partitionErrorHandler text needs a 's' in the format string (#861376).
-  (clumens)
-- Fix a problem with storage error handling (#861376). (clumens)
-- Fix bootloader setup on s390. (#857940) (dlehman)
-- Make Keboard and Welcome spokes runtime-system friendly (vpodzime)
-- Make DateTime spoke runtime-system friendly (vpodzime)
-- Add a guard for testing if we can modify runtime system (vpodzime)
-- Bring back prompt for VNC (jkeating)
-- Add standalone spoke to prompt for VNC (jkeating)
-- Fail on incomplete ksdata when in cmdline mode (jkeating)
-- Add a flag attribute to handle cmdline mode (jkeating)
-- fix libuser setup (#855481) (bcl)
-- Remove obsolete requirement on comps-extras. (notting)
-
-* Wed Sep 26 2012 Chris Lumens <clumens@redhat.com> - 18.10-1
-- isys.mount needs to be told when something should be mounted NFS (#860273).
-  (clumens)
-- Disks with new disklabels don't count as new devices in custom. (dlehman)
-- Fix thread synchronization issue going from storage to custom. (#860495)
-  (dlehman)
-- Treat disks with unrecognized or no formatting as empty. (#858862) (dlehman)
-- Improve management of mountpoint selectors in the custom spoke. (dlehman)
-- Improve handling of existing devices when refreshing the custom spoke.
-  (dlehman)
-- Apply custom changes not involving actions to the main devicetree. (dlehman)
-- Add a mountpoint entry to the device options area. (dlehman)
-- Move mountpoint validation out of the add mountpoint dialog. (dlehman)
-- Only run the storage sanity check if we've run autopart. (dlehman)
-- Add a method to reset a device to its original state. (dlehman)
-- Make a copy of the original format instead of just storing another ref.
-  (dlehman)
-- Reformatting effectively removes a device from an existing Root. (dlehman)
-- Fix test for whether to create biosboot during autopart. (#853628) (dlehman)
-- Close AddLayout dialog on double-click (vpodzime)
-- Remove useless handler of Cancel button (AddLayout dialog) (vpodzime)
-- Don't rely on having some month and year selected (#859185) (vpodzime)
-- Add debug option to bumpver (bcl)
-- Raise an error if bootDrive is invalid (jkeating)
-- Handle automated installs (jkeating)
-- Handle errors from text storage execute (jkeating)
-- Fix ready and completed properties for text storage (jkeating)
-- Use ksdata to determine text password completeness (jkeating)
-
-* Tue Sep 25 2012 Chris Lumens <clumens@redhat.com> - 18.9-1
-- And remove compssort.py from POTFILES.in, too. (clumens)
-- Select a default environment (#858180). (clumens)
-- Remove compssort.py. (clumens)
-- Don't attempt to catch and re-raise a SystemError from AnacondaThread.run.
+* Wed Aug 14 2013 Brian C. Lane <bcl@redhat.com> - 20.6-1
+- Import DBusGMainLoop directly (bcl)
+- Catch AttributeError when looking for InstallClass (bcl)
+- dracut/parse-kickstart should use the updated method-related classes
+  (#994978). (clumens)
+- Ignore warnings about the global keyword and the DefaultInstall class.
   (clumens)
-- Add a progress message for quitting the installer. (clumens)
-- GUI error handling dialogs need to be protected from threading deadlocks.
+- Fix all the pylint warnings in the anaconda file. (clumens)
+- Deal with the last of the catching Exception warnings. (clumens)
+- Always define a continueButton and quitButton property. (clumens)
+- Fix pylint warnings in the installclasses. (clumens)
+- Remove a directory that does not exist from the PYTHONPATH for pylint.
   (clumens)
-- Initialize gdk threading as well. (clumens)
-- Handle --ignoremissing in _applyYumSelections (#859021). (clumens)
-- Fix the destination path for anaconda.xlog (#860041). (clumens)
-- Hide the ISO install source if you've nuked all possible drives (#858088).
+- Fix up some warnings about calling the superclass's __init__ method.
   (clumens)
-- Don't write out /etc/sysconfig/clock anymore (#859217). (clumens)
-- Index the exn mapping by string, not by object. (clumens)
-- Don't write HOSTNAME=HOSTNAME=myhostnamehere (#859141). (clumens)
-- Close temp file before moving it (#858681) (vpodzime)
-- Update widget-specific TODO list. (clumens)
-- Don't use grey for the status text of a SpokeSelector (#855638). (clumens)
-- Fix a typo in makeupdates. (clumens)
-- UEFI paths must include a leading backslash on some machines. (#856938)
-  (pjones)
-- Read cmdline files from /run/install (jkeating)
-- Copy command line files prior to pivot (jkeating)
-- Grab the proxy username from the correct text entry (#858536). (clumens)
-- Remove our use of scsi_wait_scan (#858393). (clumens)
-- Don't overwrite the opts attribute on NFS installs (#858700). (clumens)
-- Change the keyboard shortcut for the updates checkbox. (clumens)
-- Add the storage category to POTFILES.in. (clumens)
-- Don't explicitly start the progress spinner in python code. (clumens)
-- Move the progress bar back down to the bottom of the progress hub. (clumens)
-- Remove a bunch of stuff from the TODO list for a change. (clumens)
-- Move check of new partition size against format limits. (dlehman)
-- Improve growth check when deciding where to allocate new partitions.
-  (dlehman)
-- Keep btrfs selectors' sizes in sync as volume size changes. (dlehman)
-- Allow specification of a label for new swap space via custom ui. (dlehman)
-- Don't allow stage2 as stage1 unless specified via location. (dlehman)
-- Remove reference to PartitioningWarning, which was removed last week
-  (#875931). (clumens)
-- Add a way to test exception handling (vpodzime)
-- Fix dumpState to work with the new python-meh (#856235) (vpodzime)
-
-* Fri Sep 14 2012 Chris Lumens <clumens@redhat.com> - 18.8-1
-- Make sure the InstallOptionsNDialogs get the correct space labels. (clumens)
-- Get rid of the big pause going from the storage spoke back to the hub.
+- Remove the reference to "anaconda" in reIPL. (clumens)
+- Fix up almost all of the redefining warning messages. (clumens)
+- Add a bunch of gobject-introspection related ignore lines. (clumens)
+- StorageChecker ought to have a self.storage attribute. (clumens)
+- Ignore another error pylint can't quite figure out. (clumens)
+- pylint doesn't understand what's in AnacondaKSHandler. (clumens)
+- Remove the "Add custom add-on" button. (clumens)
+- Fix up places where overridden methods don't take the same number of args.
   (clumens)
-- Don't fail when making updates if the symlink already exists. (clumens)
-- Make sure to set the default TZ in ksdata so the completed method works.
+- Fix up all unused variable warnings. (clumens)
+- Added files to MAINTAINERCLEANFILES (dshea)
+- Reenabled the pylint test target (dshea)
+- Cleanup the autogen scripts. (dshea)
+- Remove m4 files from the widgets project. (dshea)
+- Install gettext files at build time. (dshea)
+- Use the python checks provided by automake. (dshea)
+- Added a missing type check found by autoscan (dshea)
+- Cleanup the widgets autoconf file (dshea)
+- Add detail to logs when creating users and groups (dshea)
+- Fix miscellaneous errors in installclass.py. (clumens)
+- Fix a variety of errors in the packaging module. (clumens)
+- Do not run pylint against executable files in pyanaconda/. (clumens)
+- Clean up deprecated uses of the string module. (clumens)
+- Call the right superclass's method. (clumens)
+- Straighten out text UI methods so they have the same method signature.
   (clumens)
-- Allow creation of biosboot and prepboot partitions in the custom spoke.
-  (dlehman)
-- Hide removable disks containing install media from the custom spoke.
-  (dlehman)
-- Make the minimum size for custom spoke partitions 1MB. (dlehman)
-- The return value of execWithRedirect is an integer. (dlehman)
-- Only include following free space in partitions' max size. (dlehman)
-- Handle btrfs volumes with a dataLevel of None. (dlehman)
-- Handle newDevice partitions smaller than the default of 500MB. (#853125)
-  (dlehman)
-- Add underlines to the expander and encryption checkbox in custom
-  partitioning. (clumens)
-- Remember to mark an environment as selected in the store. (clumens)
-- Rename the addon/environment store columns to make sense. (clumens)
-- Use slightly less confusing labels for the various back buttons. (clumens)
-- Add a property to SpokeWindow for setting the single button's label.
+- Remove the lines to ignore E0611. (clumens)
+- Bootloader.read is completely unused; cut it. (clumens)
+- Fix all the "X is defined outside of __init__" warnings. (clumens)
+- Display the correct string for the space required by packages. (clumens)
+- Remove lines that clearly just don't do anything. (clumens)
+- If we're not going to use the return value, don't grab it. (clumens)
+- kernelVersionList in tarpayload.py should act the same as all other versions.
   (clumens)
-- Rename the SpokeWindow's back button to just button. (clumens)
-- Use the blocking read to avoid busy wait in TUI progress (msivak)
-- Make progress hub spokes possible and move the root password there (msivak)
-- Don't let user hit Add button if no new layouts are selected (vpodzime)
-- Gtk.ListStore.iter_previous now returns new iterator (#849060) (vpodzime)
-- Write storage configs after payload install for live installs. (#856836)
-  (dlehman)
-- Update the pot file for various important string changes. (clumens)
-- Attempt to fix word wrapping issues with the betanag dialog (#853913).
+- If we're not going to use the exception object, don't grab it. (clumens)
+- Define stage2_device in the BootLoader class. (clumens)
+- Don't call getPassAlgo before running createGroup. (clumens)
+- Remove some unused values out of constants.py. (clumens)
+- Finish taking care of pylint warnings in image.py. (clumens)
+- Remove the unused network and write methods from the Anaconda object.
   (clumens)
-- CONTINUE -> BEGIN INSTALLATION (#856614). (clumens)
-- Language selection should work the same as keyboard selection (#854570).
+- Remove the disable-msg lines for a couple C messages. (clumens)
+- Remove some easy unused argument warnings. (clumens)
+- Remove everything from InstallInterfaceBase except what Rescue needs.
   (clumens)
-- Fix ransom notes cycling. (clumens)
-- Improve the clarity of the custom checkbutton label. (dlehman)
-- Add error handling around significant ui-initiated storage operations.
-  (dlehman)
-- Improve error granularity slightly in automatic partitioning. (dlehman)
-- Fix detection of preexisting md arrays again. (dlehman)
-- Handle changes to sizes of predefined devices in custom spoke. (dlehman)
-- Fix traceback when switching device type to BTRFS. (dlehman)
-- Validate mountpoints in the add-a-mountpoint dialog. (dlehman)
-- Tell 'lvm' that yes, we really, really want to remove PV (vpodzime)
-- Use 250ms interval for installation progress updating (vpodzime)
-- network spoke: hide for live CD and image installs (#854586) (rvykydal)
-- Fixed luks_add_key() (jsafrane)
-- Display a radio button next to the environment choices. (clumens)
-- Update TODO list. (clumens)
-- Set the busy spinning cursor while the UI is loading. (clumens)
-- network spoke: add "No network devices available" status (rvykydal)
-- network spoke: clear device info if no network devices are found (#853903)
-  (rvykydal)
-- fix root password setup (#855481) (bcl)
-- Rewrite expand_langs to return more items (vpodzime)
-- Don't try to setup X layouts in text installation (#852447) (vpodzime)
-- Add UTF-8 enconding suffix to our language strings (#854688) (vpodzime)
-- Require rsync (vpodzime)
-- Don't rely on chrony.conf file being available (#854899) (vpodzime)
-- Require chrony and rdate, because Anaconda needs them (#854899) (vpodzime)
-- Use the real path to dracut-lib.sh (#851362) (jkeating)
-- fixup live install (#853988, #854962) (bcl)
-- Only check media if we really want it (#853404) (jkeating)
-- Fix thinko in anaconda arg handling portion of multilib patch. (dlehman)
-- Honor kickstart and command line switches to enable multilib. (dlehman)
-- Quitting the live installer shouldn't reboot the system (#854904). (clumens)
-- The kickstart language-related command is "lang", not "language". (clumens)
-- Fix btrfs/lvm/raid kickstart installs (#853649). (clumens)
-- Store "en" as the default, not "en_US". (clumens)
-- Mark ksdata.*.execute invocations as another step (vpodzime)
-- Reorder and comment options passed to rsync (vpodzime)
-- Fix bug in writing keyboard configuration files (vpodzime)
-- network spoke: require connection only for url and nfs methods (#853899)
-  (rvykydal)
-- Drop the addBase handling in anaconda - if you want a group, list a group.
-  (notting)
-- Don't depend on storage or instClass in EFIGRUB (pjones)
-- Use self.stage1_device where appropriate in EFIGRUB. (pjones)
-- Explicitly disable the rootpw lock (#853788) (jkeating)
-- require nm-connection-editor (#854586) (bcl)
-- Include packaging log in exception reports. (dlehman)
-- Add Kazakh as a valid translation. (clumens)
-- Deselect any existing environment when selecting a new one (#851510).
+- Remove the duplicated imports. (clumens)
+- Do not use a list or a dict as a default argument to a method. (clumens)
+- Remove unneeded lambdas. (clumens)
+- Fix up all the warnings where we used a reserved function name or keyword.
   (clumens)
-- Use chvt command for tty switching (vpodzime)
-- Use the disk's serial number instead of index as an ID. (clumens)
-- Use the disk's ID for deleting from the shopping cart, not an index
-  (#853798). (clumens)
-- Use the F18_Partition class (#853593). (clumens)
-- Remove anaconda.instLanguage object and language module (vpodzime)
-- Remove lang-table and localeinfo.py (vpodzime)
-- parse-kickstart: handle 'network --ipv6=auto ...' (wwoods)
-- parse-kickstart: set IPV6INIT=yes when using ipv6 (#830434) (wwoods)
-- Make TUI password spoke behave the same as it's GUI counterpart (msivak)
-- Remove ROOT_PATH/etc/localtime before symlinking timezone (vpodzime)
-- Continue post-installation steps even if writing NTP configuration fails
-  (vpodzime)
-- update transifex.txt for newui (bcl)
-- Handle invalid spoke input (#853253) (jkeating)
-- Remove unnecessary (and broken) import (#853576) (jkeating)
-- Destroy the Add Mountpoint dialog when escape is pressed (#853058). (clumens)
-- Keep the current spoke on top of the hub. (clumens)
-- And then fix an assortment of non-packaging pylint errors, too. (clumens)
-- Fix problems in the packaging module that pylint detected. (clumens)
-- Update runpylint to find newui modules correctly. (clumens)
-- Prevent duplicate mountpoint creation. (dlehman)
-- If there's only one disk, select it by default. (dlehman)
-- Evaulate growth potential for all reqs, even when allocating a fixed req.
-  (dlehman)
-- Do not honor partitions' disk attr when reallocating them. (dlehman)
-- Set size is a safe max size for partitions. (dlehman)
-- Set the ANACONDA udev property in the post-switchroot udevdb. (dlehman)
-- Calculate size func kwargs at call time to pick up changes. (dlehman)
-- Add support md devices and btrfs raid features in the custom spoke. (dlehman)
-- Move the BTRFS options to last and remove unsupported options. (dlehman)
-- Remove "Technology" ComboBoxes from device options for now. (dlehman)
-- Tweak setContainerMembers to work with a defined md array. (dlehman)
-- Add support for named md devices. (dlehman)
-- Make sure a disk is partitioned before treating it as such. (#849707)
+- Fix up about half of the "except:" and "except Exception:" lines. (clumens)
+- Fix a couple undefined variable errors that were real bugs. (clumens)
+- Ignore statements that have no effect. (clumens)
+- Fix up all the wildcard imports except two in packaging. (clumens)
+- Remove all unused import lines. (clumens)
+- Remove unnecessary pass statements. (clumens)
+- Fix bad indentation and tab-instead-of-space warnings from pylint. (clumens)
+- Put the pylint test back into service. (clumens)
+- Run make with multiple jobs in makeupdates (vpodzime)
+- Use gtk_image_new_from_icon_name (bcl)
+- Remove caching of unused device list. (dlehman)
+- Check MBR gap size even when /boot is on a plain partition. (#986431)
   (dlehman)
-- Setup python path /after/ we've done updates (jkeating)
-- Fix a string substitution think-o (jkeating)
-- We now BuildRequires python-babel as well. (clumens)
-- Update TODO list. (clumens)
-- Only show groups in the UI if they have members that install by default
-  (default or manadtory packages). (notting)
-- Symlink /run/initramfs/inst.{updates,product} to /tmp (jkeating)
-- Use shutil.move for replacing old config with the new one (vpodzime)
-- Honor user's choice on NTP (ON/OFF) (vpodzime)
-- Don't crash if someone gives us bad timezone (vpodzime)
-- Use expand_langs to find matching language (LanguageSpoke) (vpodzime)
-- Move expandLangs to localization module (vpodzime)
-- Use Gtk.main_level() to check if main loop is already running (vpodzime)
-- Move setup from ImagePayload to LiveImagePayload. (clumens)
-- Avoid duplicates in the packages property. (clumens)
-- Set a progress message when liveinst starts installing software. (clumens)
-- Fix default definitions of some payload class methods. (clumens)
-- Add a spaceRequired property for LiveImagePayload. (clumens)
-- getDirSize should stay on a single filesystem, not look at submounts.
+
+* Thu Aug 08 2013 Brian C. Lane <bcl@redhat.com> - 20.5-1
+- Don't wait for systemctl shutdown command to exit (#974383) (bcl)
+- Fix the logging of the spice-vdagent status (dshea)
+- Update PYTHONPATH so unit tests work right out of the source tree. (clumens)
+- Don't check for a firstboot service file before processing the command.
   (clumens)
-- Don't look for existing installations on live devices. (clumens)
-- We don't need image_file in the live payload. (clumens)
-- Now that we're using rsync, the livecd and rootfs do not have to match.
+- Strengthen the services command processing a bit. (clumens)
+- Start spice-vdagent (#969405) (dshea)
+- Skip password strength check for kickstart passwords (#986490) (dshea)
+- Network spoke: fix refresh of device IP configuration (rvykydal)
+- Add unsupported hardware dialog (#872728) (bcl)
+- storage.py -> system.py in POTFILES.in (clumens)
+- border_width=5 -> border_width=6 (clumens)
+- No need to call threads_init anymore (bcl)
+- Consolidate storage and networking under one category (#973013). (clumens)
+- When doing a live install, set the ks method appropriately (#986069).
   (clumens)
-- Disable software selection and source spokes on live installs. (clumens)
-- Fix args to LiveImagePayload.setup (#852272). (clumens)
-- require anaconda-widgets (bcl)
-- Handle already mounted optical devices (#851274) (jkeating)
-- Return full device object of selected optical drive (jkeating)
-- Add a method to determine if device is mounted (jkeating)
-- anaconda-cleanup: fix DeviceTree args (bcl)
-- Unset install_device if repo setup fails (jkeating)
-- _peopleRepositoriesFilter -> _peopleRepositoriesFilterEntry (#852182).
+- Check that we're doing an HD install before examining the attr (#989428).
   (clumens)
-- on_*_changed callbacks take one argument, not two. (clumens)
-- Use the correct icon size constant. (clumens)
-- remove dead code (setMethodstr, expandFTPMethod) (wwoods)
-- parse-kickstart: update some TODO comments (wwoods)
-- parse-kickstart: simplify logging (wwoods)
-- enable fastestmirror yum plugin (#849797) (bcl)
-- networking: remove Network() object (rvykydal)
-- networking: use ksdata.network.hostname instead of actual installer hostname
+
+* Thu Aug 01 2013 Brian C. Lane <bcl@redhat.com> - 20.4-1
+- POTFILES.in: rename time.py to time_spoke.py (bcl)
+- Only move INSTALL_TREE when it is mounted (#888196) (bcl)
+- Use ksdata.method.seen (#986069) (bcl)
+- Threaded Koji RPM lookups and downloads (mkolman)
+- Fix the langcode parsing regexp (vpodzime)
+- Move tests to old_tests and add some new, working tests (vpodzime)
+- Replace hostname with hostnamectl (#989584) (rvykydal)
+- Require fcoe-utils only on ix86 and x86_64 architectures (#989913) (vpodzime)
+- Fix searching for local RPMs with no version required (vpodzime)
+- Expand the '~' in the RPM_FOLDER_NAME (vpodzime)
+- Set system date and time with our own function (vpodzime)
+- Remove the useless, confusing and lying PoolsNote (vpodzime)
+- Use tiny, fast and thread-safe ntplib module instead of ntpdate (vpodzime)
+- For vnc require network in intramfs (#989156) (rvykydal)
+- Fix makeupdates' package fetching when no version is specified (vpodzime)
+- Make it clear on the summary dialog that changes take effect later. (clumens)
+- Don't mark the summary dialog's tree view as insensitive. (clumens)
+- Work with files in a more pythonic way in makeupdates (vpodzime)
+- Honor hostname set in kickstart (#988483) (rvykydal)
+- Do not automatically set UTC mode on kickstart installs. (clumens)
+- Add automatic fetching of RPMs for new Defines & Requires (mkolman)
+- Don't prompt for ssh on s390x if doing an image install. (#983056) (sbueno)
+- Rename tz spoke to avoid potential conflict with std 'time' module. (sbueno)
+
+* Thu Jul 25 2013 Brian C. Lane <bcl@redhat.com> - 20.3-1
+- Fix driver disk path for inst.dd= method (#987513) (bcl)
+- Add support for NFS as install source in TUI. (#971298) (sbueno+anaconda)
+- Allow logging into multiple iscsi nodes at once (#975831). (clumens)
+- Fix crash while parsing ntp servers from DHCP6 (#969303) (dshea)
+- Use ExceptionInfo namedtuple when dumping anaconda (#982299) (vpodzime)
+- Wait for device connections for iface-bound iscsi in kickstart (#740105)
   (rvykydal)
-- networking: consolidate writing/copying of configuration files (rvykydal)
-- networking: 70-persistent-net.rules doesn't exist anymore. (rvykydal)
-- networking: disable ipv6 directly in installed system config file (rvykydal)
-- networking: mirror end-of-installation network config tweaks in ksdata.
+- Refer to blivet instead of storage in iscsi kickstart (#740105) (rvykydal)
+- Mark disk 'selected' if only one present in TUI. (#975790) (sbueno+anaconda)
+- Update devicetree only if we logged in to some target in add iscsi dialog.
   (rvykydal)
-- networking: write configuration in doInstall (rvykydal)
-- Add mounts before swaps so the default selection is a mount. (dlehman)
-- Use MB if a new mountpoint size does not include a unit spec. (#850839)
-  (dlehman)
-- Correctly handle partitions with sizes smaller than 500MB. (#850839)
-  (dlehman)
-- Don't include removed devices in Storage.unusedDevices. (dlehman)
-- Handle SameSizeSet growth trimming when all members are too large. (dlehman)
-- Add several missing yum lock aqcuisitions. (#851212) (dlehman)
-- Offer completions for new mountpoints. (dlehman)
-- Add old_source checking for closest mirror and url methods too (#851336).
-  (clumens)
-- Revert "Only use mounted media that has repodata" (jkeating)
-- Only use mounted media that has repodata (jkeating)
-- _bootloaderClass -> bootloaderClass for some platforms (#848173). (clumens)
-- Make the storage info bar clickable to reveal error messages. (clumens)
-- Move the software-specific error message out of the DetailedErrorDialog
-  class. (clumens)
-- Add a gui password spoke (jkeating)
-- Put traceback reports on a diet. (clumens)
-
-* Wed Aug 22 2012 Chris Lumens <clumens@redhat.com> - 18.7-1
-- Do another _main_window -> main_window change. (clumens)
-- Mark the storage category title for translation. (clumens)
-- _actions should be set up in the __init__ method. (clumens)
-- Don't require hfs-tools on RHEL (#849987). (clumens)
-- dracut: remove workarounds for broken splitsep() (wwoods)
-- dracut: update Requires: in spec (wwoods)
-- Use ksdata.timezone and timezone module instead of anaconda.timezone
-  (vpodzime)
-- Remove the last usage of the system-config-date in Anaconda (vpodzime)
-- Add support for swap --hibernation on LVM (vpodzime)
-- Don't rely on selection staying selected when doing crazy things to it
-  (vpodzime)
-- Replace nonexisting icon with an existing one (DatetimeSpoke) (vpodzime)
-- integer out of range for L format code (hamzy)
-- Network spoke: use chr() instead of str() to convert dbus.Byte (#849395)
+- Don't show multipath members in specialized disks overview (#740105)
   (rvykydal)
-- verify package checksums against metadata (bcl)
-- use F18_PartData for hibernation flag support. (bcl)
-- fix Gtk import in software.py (bcl)
-- dracut: fix rd.neednet use in parse-kickstart (#849672) (wwoods)
-- parse-anaconda-net: Add missing semicolon for dhclient.conf (bcl)
-- anaconda-modprobe: fix .ko removal (bcl)
-- Only devices that already exist may be ISO install sources (#849482).
-  (clumens)
-- Use python-meh's MainExceptionWindow's main_window property (vpodzime)
-- dracut: fix syntax error in parse-kickstart (wwoods)
-- Show fstype as "Unknown" for devices with unrecognised formatting. (dlehman)
-- BTRFS magic for custom spoke. (dlehman)
-- The device type of preexisting devices cannot be changed. (dlehman)
-- Revert old hack that disabled btrfs in the old ui. (dlehman)
-- Use correct device instance when updating selector w/ new device. (dlehman)
-- Fix a traceback when clicking on the summary in custom spoke. (dlehman)
-- Move device size calculation and setting into DeviceFactory. (dlehman)
-- Stop pretending btrfs subvols can have a size. (dlehman)
-- Fix a typo in StorageDevice._setSize. (dlehman)
-- dracut: add info about special variables to README (wwoods)
-- dracut: fix invalid use of 'eth0' (wwoods)
-- dracut: drop upgrade-specific hack (wwoods)
-- dracut: set "$netif" correctly in initqueue/online scripts (wwoods)
-- dracut: fix old-style static ip=xxx gw=yyy... (wwoods)
-- dracut: import anaconda-lib.sh in pre-udev hook (wwoods)
-- dracut: fix set_neednet so network comes up (#849672) (wwoods)
-- dracut: drop save_netinfo (wwoods)
-- move anaconda-modprobe to pre-udev hook, silence modprobe errors (wwoods)
-- parse-kickstart: fix crash with PXE + ks=file: (#844478) (wwoods)
-- parse-kickstart: clarify/refactor Network handling (wwoods)
-- Actually create default ifcfg files (#849012) (rvykydal)
-- Don't fail on write of nonexisting IfcfgFile(SimpleConfigFile) (#849012,
-  #849095) (rvykydal)
-- If dracut left the DVD mounted, don't try to remount it (#849152). (clumens)
-- Add support for most device editing functions. (dlehman)
-- Various fixes, cleanups, and added logging for the custom spoke. (dlehman)
-- Work around some signal handling issues in the custom spoke. (dlehman)
-- Make choosing an auto-selected page after refresh slightly less fallible.
-  (dlehman)
-- Raise an exception if a new device ends up with size 0. (dlehman)
-- Split out logic to determine container based on factory and/or device.
-  (dlehman)
-- Allow adding disks to a container's disk set. (dlehman)
-- Allow passing a device into newDevice for adjustment. (dlehman)
-- Add PartitionFactory class so partitions don't need a separate code path.
-  (dlehman)
-- Add a convenience method for scheduling resize actions. (dlehman)
-- Return early from doKickstartStorage if there are no disks selected.
-  (dlehman)
-- Remove isomd5sum-static from build requires (vpodzime)
-- Don't rely on having some network devices available (vpodzime)
-- Enlightbox mainExceptionWindow (vpodzime)
-- Put mainExceptionWindow in a WindowGroup (vpodzime)
-- Bump required yum version to get the environment code. (notting)
-- Add a flag so we don't get spurious 'change' events from the treeview while
-  we're setting up the UI. (notting)
-- Wire in the new environment logic through the UI. (notting)
-- Add a local method for exposing group visibility from the comps file.
-  (notting)
-- Add methods to yumpayload for handling environments. (notting)
-- Add some nicer wording to the column heads in the software selection UI.
-  (notting)
-- Rename 'description' to 'groupDescription'. (notting)
-- dracut: add README (wwoods)
-
-* Thu Aug 16 2012 Chris Lumens <clumens@redhat.com> - 18.6-1
-- Remove linuxrc.s390 (dcantrell)
-- Source in url-lib.sh if we don't have it (#847831) (jkeating)
-- parse-kickstart: add proc_cmdline (fix init_logger()) (wwoods)
-- Remove the data/bootdisk directory tree. (clumens)
-- Remove duplicate boot disk setting code (#848841). (clumens)
-- Force authconfig to be installed on the target system (#848803). (clumens)
-
-* Wed Aug 15 2012 Chris Lumens <clumens@redhat.com> - 18.5-1
-- Mark/unmark some strings for translation, as appropriate. (clumens)
-- Save the distro label into the right variable for retranslation. (clumens)
-- Add custom widget files to POTFILES.in. (clumens)
-- Fix attribution on common UI code. (clumens)
-- don't set armMachine in class definition (bcl)
-- libudev now has a version of .1 (hamzy)
-- Load anaconda-lib.sh if necessary (jkeating)
-- Use shell code to work around missing basename (jkeating)
-- Enable text mode once again! (jkeating)
-- Update text prompt to include c for continue (jkeating)
-- Don't continue if incomplete spokes exist (jkeating)
-- Return a bool for timezone completed property (jkeating)
-- Add a text progress hub to do the install (jkeating)
-- text based storage spoke. (jkeating)
-- Allow updating tmux.conf via makeupdates. (clumens)
-- Prevent yum messages from showing on tty (jkeating)
-- Remove unused imports from the installclasses. (clumens)
-- NoSuchGroup is provided by packaging now.  yuminstall is on the way out.
-  (clumens)
-- Set transaction color in case of multilib install. (clumens)
-- Add selinux-specific RPM macro setup. (clumens)
-- Add the user-agent to urlgrabber from the old yuminstall.py. (clumens)
-- Fix inheritance problems with the gui *Spoke classes. (clumens)
-- Only setup python-meh when doing graphical installs (jkeating)
-- Call the correct method to schedule the screen (jkeating)
-- Add a missing import of os (jkeating)
-- Don't display indirect spokes in the hub (jkeating)
-- Revert "Remove unncessary __init__ definition. (clumens)" (jkeating)
-- Honor displayMode from kickstart files (jkeating)
-- Merge master into newtui (jkeating)
-- Remove the base_tests file for now (jkeating)
-- Remove unused import of UIObject (jkeating)
-- Fix up detailederror for new common UI code (jkeating)
-- Translate the base text hub class (jkeating)
-- Translate the base tui class strings (jkeating)
-- Remove unncessary __init__ definition. (clumens) (jkeating)
-- Translate some strings in the base tui spokes classes (jkeating)
-- Always use collect directly from common (jkeating)
-- Add comment headers to the new files (jkeating)
-- Ad source files to POTFILES.in (msivak)
-- Merge remote-tracking branch 'origin/master' into newtui (msivak)
-- import localization stuff and use it to translate more strings (msivak)
-- finish renaming _mainloop (msivak)
-- Fix naming for data attribute and move the NormalSpoke.__init__ under the
-  proper class (msivak)
-- Improve documentation and add licensing headers (msivak)
-- Add translations to the simpleline framework (msivak)
-- Add translations to Password Spoke (msivak)
-- Add elementary timezone spoke (msivak)
-- Pass screen args argument to prompt and input methods + fix for run-text-
-  spoke (msivak)
-- Merge master into newtui (msivak)
-- Add automake files for TUI (msivak)
-- add couple of tests and fix write method of widget (newline added unwanted
-  space) (msivak)
-- add couple of tests and support for them (msivak)
-- add documentation and comments to TUI classes (msivak)
-- Add documentation to the simpleline library for TUI (msivak)
-- Add the new Summary hub and Password TUI spokes + tools to test TUI stuff
-  (msivak)
-- Fix bits and pieces to make TUI hub and spoke model work + example Hub and
-  Password spoke (msivak)
-- Create common abstract classes usable for all types of UI (msivak)
-- Create the base classes for TUI Hub and Spoke model (msivak)
-- Make collect and part of UserInterface setup more generic (msivak)
-- Text based UI framework core (msivak)
-
-* Mon Aug 13 2012 Chris Lumens <clumens@redhat.com> - 18.4-1
-- dracut: fix inst.ks.sendmac (#826657) (wwoods)
-- dracut: suppress ks errors from missing %%include (wwoods)
-- dracut: add comment to run_kickstart() (wwoods)
-- Remove unused writeKS methods. (clumens)
-- Only show unused devices that haven't been removed/deleted. (dlehman)
-- Don't unexpand already-expanded pages when trying to expand them again.
-  (dlehman)
-- Make parents of hidden devices appear to be leaves. (dlehman)
-- Remove the right device name from the lvm filter when unhiding device.
-  (dlehman)
-- Take configured filesystems into account when checking package space.
-  (dlehman)
-- Make sure the ksdata autopart type matches the storage one. (dlehman)
-- Base auto-generated name prefixes on productName, not device type. (dlehman)
-- Remove shrink code that was a workaround for the old ui flow. (dlehman)
-- Remove old ui progress args from devicelibs.btrfs. (dlehman)
-- Make sure we allocate partitions and grow lvm as needed in kickstart.
-  (dlehman)
-- Streamline autopart request setup slightly. (dlehman)
-- Make it possible to call setUpBootLoader safely at any time. (dlehman)
-- Move setup of new partition weight arg to Storage.newPartition. (dlehman)
-- Use a copy of the main Storage instance during custom partitioning. (dlehman)
-- Track requested sizes of btrfs subvols. (dlehman)
-- Add a method to retrieve a devicetree device by id number. (dlehman)
-- Fix DiskLabel so it can be deep-copied. (dlehman)
-- Add a method to produce a deep copy of a Storage instance. (dlehman)
-- Fix subtraction for Size. (dlehman)
-- Add support for creating device based on a top-down specification. (dlehman)
-- Add size-set managers to keep a set of growable requests in sync. (dlehman)
-- Add a function to estimate required disk space for an md array. (dlehman)
-- Add a method to estimate disk space needs for a new logical volume. (dlehman)
-- Add a convenience method for new btrfs subvols and drop subvol size args.
-  (dlehman)
-- Use the UEFI shim to load grub. (pjones)
-- Check that Gtk.main is not already running before starting another one
-  (vpodzime)
-- With tmux, we no longer need to start up a shell during VNC installs.
-  (clumens)
-- We no longer need getkeymaps, mapshdr, or readmap. (clumens)
-- Remove the last references to isysLoadKeymap. (clumens)
-- remove Security class (bcl)
-- replace lokkit for selinux settings (#815540) (bcl)
-- tests: Add tests for new SimpleConfigFile features (bcl)
-- tests: cleanup whitespace in simpleconfig_test.py (bcl)
-- simpleconfig: rewrite to better support commented config files (bcl)
-- If the anaconda process crashes, don't delete its window. (clumens)
-- On interactive installs, default the root account to locked. (clumens)
-- Make the keyboard layout test a big text area instead of a single line.
-  (clumens)
-- Remove our loadKeymap code from isys (vpodzime)
-- Replace system-config-keyboard with our methods using ksdata.keyboard
-  (vpodzime)
-- A little fix of newui -> master merge (iscsi offload devices) (rvykydal)
-- Require new version of python-meh (vpodzime)
-- Modify kernelPackages to select the right kernel for ARM systems. (dmarlin)
-- ARM: clean up the kernel selection to be consistent with the rest of the code
-  (dennis)
-- add command line option to set the arm platform. (dennis)
-- Add support to determine the ARM processor variety and select the correct
-  kernel to install. (dmarlin)
-- TODO list updates. (clumens)
-- Sent pot file updates to the master branch in transifex, not f17. (clumens)
-
-* Fri Aug 03 2012 Chris Lumens <clumens@redhat.com> - 18.3-1
-- New graphical user interface.
-- Removed loader.
-
-* Wed Apr 18 2012 Brian C. Lane <bcl@redhat.com> - 18.2-1
-- Fixes from F17 branch
+- Do not populate devicetree after each single login in iscsi dialog (#740105)
+  (rvykydal)
+- Match also iface when logging into selected iface-bound iscsi target
+  (#740105) (rvykydal)
+- Fix handling of non-ASCII names (#969309) (dshea)
+- Use inline completion for the region/city selection (vpodzime)
+- Fix copyright of the main anaconda script (vpodzime)
+
+* Mon Jul 15 2013 Brian C. Lane <bcl@redhat.com> - 20.2-1
+- Use the new wait for connectivity function (mkolman)
+- Improve waiting for network connectivity (mkolman)
+- Use langtable to get default layout instead of our magic (#485137) (vpodzime)
+- Adapt to the new localization module (vpodzime)
+- Rewrite the localization module (vpodzime)
+- Make the Welcome spoke wait for Geolocation lookup to finish (#975193)
+  (mkolman)
+
+* Tue Jul 09 2013 Brian C. Lane <bcl@redhat.com> - 20.1-1
+- bump major version number