[rhel6-branch] Catch custom partitioning problems on UEFI (#991620)
by Brian C. Lane
When installing over the top of a previous UEFI installation it would
not check to see if the previous EFI System Partition had been assigned
a mountpoint. The installation would proceed and then crash in the
bootloader step.
Resolves: rhbz#991620
---
platform.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/platform.py b/platform.py
index e866133..8338f44 100644
--- a/platform.py
+++ b/platform.py
@@ -272,7 +272,7 @@ class EFI(Platform):
NOTE: X86 does not have a separate checkBootRequest method,
so this one must work for x86 as well as EFI.
"""
- if not req and self.isEfi:
+ if self.isEfi and (not req or not req.format.mountpoint):
return [_("You have not created a /boot/efi partition.")]
elif not req:
return [_("You have not created a bootable partition.")]
@@ -292,6 +292,9 @@ class EFI(Platform):
boot_errors = Platform.checkBootRequest(self, boot_device)
errors += boot_errors
+ if not boot_device:
+ return errors
+
# Limit /boot to 2TB
if boot_device.size > 2*1024*1024:
# If there is no /boot, ask for one
--
1.9.3
9 years, 11 months
[PATCH] Use whatever network device was used to start installation.
by Chris Lumens
Without this, anaconda will stop and ask. Not desired behavior for automated
testing.
---
tests/gui/anaconda-autogui-testing.ks | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/gui/anaconda-autogui-testing.ks b/tests/gui/anaconda-autogui-testing.ks
index 35f96d9..e54e711 100644
--- a/tests/gui/anaconda-autogui-testing.ks
+++ b/tests/gui/anaconda-autogui-testing.ks
@@ -3,7 +3,7 @@
url --mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=x86_64
shutdown
-network --bootproto=dhcp --activate
+network --bootproto=dhcp --activate --device=link
rootpw qweqwe
# Override dumb values from the spin-kickstarts.
--
1.9.0
9 years, 11 months
[PATCH] Ignore more deprecation warnings.
by David Shea
Ignore the warnings about GtkAlignment being deprecated because getting
rid of it would involve changes to all downstream interface files. Put
off for a while telling everyone to change their code just because gtk
changed their mind about something.
Ignore the warnings about GtkMisc being deprecated because gtk is
garbage. Not calling gtk_misc_set_alignment still results in the xalign
and yalign properties defaulting to 0.5, so you can mess around with
halign and valign properties on GtkWidget all day and your widget will
still be centered.
Get rid of the gtk_misc_set_padding call, because setting the margin
properties really does work as a substitute. Great work, everyone.
Switch the existing deprecation warning ignorations to use the glib
macros provided for this because they look a lot nicer than #pragma
junk.
---
widgets/src/BaseWindow.c | 16 ++++++++++++++++
widgets/src/DiskOverview.c | 5 ++---
widgets/src/MountpointSelector.c | 7 +++++++
widgets/src/SpokeSelector.c | 13 +++++++++----
4 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/widgets/src/BaseWindow.c b/widgets/src/BaseWindow.c
index 7fcb296..cabbcfc 100644
--- a/widgets/src/BaseWindow.c
+++ b/widgets/src/BaseWindow.c
@@ -259,7 +259,13 @@ static void anaconda_base_window_init(AnacondaBaseWindow *win) {
* to control the amount of space the Window's content takes up on the
* screen.
*/
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ /*
+ * GtkAlignment is deprecated, but getting rid of it would have severe downstream
+ * repurcusions, so put that off for as long as we can.
+ */
win->priv->alignment = gtk_alignment_new(0.5, 0.0, 1.0, 1.0);
+G_GNUC_END_IGNORE_DEPRECATIONS
gtk_box_pack_start(GTK_BOX(win->priv->main_box), win->priv->alignment, TRUE, TRUE, 0);
/* The action_area goes inside the alignment and represents the main
@@ -277,7 +283,13 @@ static void anaconda_base_window_init(AnacondaBaseWindow *win) {
markup = g_markup_printf_escaped("<span weight='bold' size='large'>%s</span>", _(DEFAULT_WINDOW_NAME));
gtk_label_set_markup(GTK_LABEL(win->priv->name_label), markup);
g_free(markup);
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ /*
+ * GtkMisc is deprecated, but if you don't set the GtkMisc properties then they
+ * still default to everything being centered. A+ work everyone.
+ */
gtk_misc_set_alignment(GTK_MISC(win->priv->name_label), 0, 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
gtk_widget_set_hexpand(win->priv->name_label, TRUE);
win->priv->orig_name = g_strdup(DEFAULT_WINDOW_NAME);
@@ -287,14 +299,18 @@ static void anaconda_base_window_init(AnacondaBaseWindow *win) {
markup = g_markup_printf_escaped("<span size='large'>%s</span>", _(DEFAULT_DISTRIBUTION));
gtk_label_set_markup(GTK_LABEL(win->priv->distro_label), markup);
g_free(markup);
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gtk_misc_set_alignment(GTK_MISC(win->priv->distro_label), 0, 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
win->priv->orig_distro = g_strdup(DEFAULT_DISTRIBUTION);
/* Create the beta label. */
win->priv->beta_label = gtk_label_new(NULL);
format_beta_label(win, _(DEFAULT_BETA));
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gtk_misc_set_alignment(GTK_MISC(win->priv->beta_label), 0, 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
gtk_widget_set_no_show_all(win->priv->beta_label, TRUE);
win->priv->orig_beta = g_strdup(DEFAULT_BETA);
diff --git a/widgets/src/DiskOverview.c b/widgets/src/DiskOverview.c
index 5c7fe10..8569ec2 100644
--- a/widgets/src/DiskOverview.c
+++ b/widgets/src/DiskOverview.c
@@ -327,12 +327,11 @@ static void anaconda_disk_overview_init(AnacondaDiskOverview *widget) {
/* And this one is to handle when you select a DiskOverview via keyboard. */
g_signal_connect(widget, "key-release-event", G_CALLBACK(anaconda_disk_overview_clicked), NULL);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
/* No existing role is appropriate for this, so ignore the warning raised
by registering a new role. */
role = atk_role_register("disk overview");
-#pragma GCC diagnostic pop
+G_GNUC_END_IGNORE_DEPRECATIONS
atk = gtk_widget_get_accessible(GTK_WIDGET(widget));
atk_object_set_role(atk, role);
diff --git a/widgets/src/MountpointSelector.c b/widgets/src/MountpointSelector.c
index 730f107..b2323b4 100644
--- a/widgets/src/MountpointSelector.c
+++ b/widgets/src/MountpointSelector.c
@@ -208,7 +208,10 @@ static void anaconda_mountpoint_selector_init(AnacondaMountpointSelector *mountp
/* Create the name label. */
mountpoint->priv->name_label = gtk_label_new(NULL);
format_name_label(mountpoint, _(DEFAULT_NAME));
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ /* gtk+ did a garbage job of "deprecating" GtkMisc, so keep using it for now */
gtk_misc_set_alignment(GTK_MISC(mountpoint->priv->name_label), 0, 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
gtk_label_set_ellipsize(GTK_LABEL(mountpoint->priv->name_label), PANGO_ELLIPSIZE_MIDDLE);
gtk_label_set_max_width_chars(GTK_LABEL(mountpoint->priv->name_label), 25);
gtk_widget_set_hexpand(GTK_WIDGET(mountpoint->priv->name_label), TRUE);
@@ -216,12 +219,16 @@ static void anaconda_mountpoint_selector_init(AnacondaMountpointSelector *mountp
/* Create the size label. */
mountpoint->priv->size_label = gtk_label_new(NULL);
format_size_label(mountpoint, _(DEFAULT_SIZE));
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gtk_misc_set_alignment(GTK_MISC(mountpoint->priv->size_label), 0, 0.5);
+G_GNUC_END_IGNORE_DEPRECATIONS
/* Create the mountpoint label. */
mountpoint->priv->mountpoint_label = gtk_label_new(NULL);
format_mountpoint_label(mountpoint, DEFAULT_MOUNTPOINT);
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gtk_misc_set_alignment(GTK_MISC(mountpoint->priv->mountpoint_label), 0, 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
gtk_widget_set_hexpand(GTK_WIDGET(mountpoint->priv->mountpoint_label), TRUE);
/* Add everything to the grid, add the grid to the widget. */
diff --git a/widgets/src/SpokeSelector.c b/widgets/src/SpokeSelector.c
index 53f563c..03ae610 100644
--- a/widgets/src/SpokeSelector.c
+++ b/widgets/src/SpokeSelector.c
@@ -260,7 +260,8 @@ static void set_icon(AnacondaSpokeSelector *widget, const char *icon_name) {
widget->priv->icon = gtk_image_new_from_pixbuf(pixbuf);
gtk_image_set_pixel_size(GTK_IMAGE(widget->priv->icon), 64);
gtk_widget_set_valign(widget->priv->icon, GTK_ALIGN_START);
- gtk_misc_set_padding(GTK_MISC(widget->priv->icon), 12, 0);
+ gtk_widget_set_margin_start(widget->priv->icon, 12);
+ gtk_widget_set_margin_end(widget->priv->icon, 12);
gtk_grid_attach(GTK_GRID(widget->priv->grid), widget->priv->icon, 0, 0, 1, 2);
}
@@ -300,14 +301,19 @@ static void anaconda_spoke_selector_init(AnacondaSpokeSelector *spoke) {
format_title_label(spoke, _(DEFAULT_TITLE));
gtk_label_set_justify(GTK_LABEL(spoke->priv->title_label), GTK_JUSTIFY_LEFT);
gtk_label_set_mnemonic_widget(GTK_LABEL(spoke->priv->title_label), GTK_WIDGET(spoke));
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ /* gtk+ did a garbage job of "deprecating" GtkMisc, so keep using it for now */
gtk_misc_set_alignment(GTK_MISC(spoke->priv->title_label), 0, 1);
+G_GNUC_END_IGNORE_DEPRECATIONS
gtk_widget_set_hexpand(GTK_WIDGET(spoke->priv->title_label), FALSE);
/* Create the status label. */
spoke->priv->status_label = gtk_label_new(NULL);
format_status_label(spoke, _(DEFAULT_STATUS));
gtk_label_set_justify(GTK_LABEL(spoke->priv->status_label), GTK_JUSTIFY_LEFT);
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gtk_misc_set_alignment(GTK_MISC(spoke->priv->status_label), 0, 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
gtk_label_set_ellipsize(GTK_LABEL(spoke->priv->status_label), PANGO_ELLIPSIZE_MIDDLE);
gtk_label_set_max_width_chars(GTK_LABEL(spoke->priv->status_label), 45);
gtk_widget_set_hexpand(GTK_WIDGET(spoke->priv->status_label), FALSE);
@@ -320,12 +326,11 @@ static void anaconda_spoke_selector_init(AnacondaSpokeSelector *spoke) {
gtk_container_add(GTK_CONTAINER(spoke), spoke->priv->grid);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
/* No existing role is appropriate for this, so ignore the warning raised
by registering a new role. */
role = atk_role_register("spoke selector");
-#pragma GCC diagnostic pop
+G_GNUC_END_IGNORE_DEPRECATIONS
atk = gtk_widget_get_accessible(GTK_WIDGET(spoke));
atk_object_set_name(atk, _(DEFAULT_TITLE));
--
2.0.0
9 years, 11 months
[PATCH] Remove an unused import.
by David Shea
Not real sure why pylint didn't catch this one.
---
pyanaconda/ui/gui/__init__.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/pyanaconda/ui/gui/__init__.py b/pyanaconda/ui/gui/__init__.py
index 3f1bab2..2a1dad2 100644
--- a/pyanaconda/ui/gui/__init__.py
+++ b/pyanaconda/ui/gui/__init__.py
@@ -354,8 +354,6 @@ class GraphicalUserInterface(UserInterface):
window.main_window.set_transient_for(lightbox)
def _instantiateAction(self, actionClass):
- from pyanaconda.ui.gui.spokes import StandaloneSpoke
-
# Instantiate an action on-demand, passing the arguments defining our
# spoke API and setting up continue/quit signal handlers.
obj = actionClass(self.data, self.storage, self.payload, self.instclass)
--
2.0.0
9 years, 11 months
[firstboot][rhel6-branch][PATCH] Check if firstboot is disabled even if firstboot is run directly (#1024176)
by Martin Kolman
And also tell the user why firstboot is not starting.
Signed-off-by: Martin Kolman <mkolman(a)redhat.com>
---
progs/firstboot | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/progs/firstboot b/progs/firstboot
index 470aca6..51f66a2 100755
--- a/progs/firstboot
+++ b/progs/firstboot
@@ -136,6 +136,19 @@ if __name__ == "__main__":
config.mode = config.mode | MODE_RECONFIG
# First check to see if firstboot should even run.
+
+ # check if firstboot has not been disabled
+ config_path = "/etc/sysconfig/firstboot"
+ if os.path.isfile(config_path):
+ with open(config_path, "r") as f:
+ buf = f.readlines()
+ # check if one of the options in the config file (stripped of trailing newlines)
+ # is equal to the option that disables firstboot
+ if "RUN_FIRSTBOOT=NO" in (l.rstrip("\n") for l in buf):
+ logging.error(_("Firstboot startup disabled in /etc/sysconfig/firstboot, exiting."))
+ os._exit(0)
+
+ # check if we are running as root
if not opts.test and (os.getuid() > 0 or os.geteuid() > 0):
logging.error(_("You must be root to run firstboot."))
os._exit(0)
--
1.9.3
9 years, 11 months
[blivet:master 0/5] Minor documentation changes (v2)
by Anne Mulhern
The third patch was
"Add doctest extension so that doctest target runs.".
Now it's
"Remove doctest target from Makefile."
Nothing else has changed, so I'm not resending.
mulhern (5):
Automate generation of the .rst files which just set up the modules.
Allow the table of contents to go one level deeper.
Remove doctest target from Makefile.
Change intersphinx mapping to avoid linkcheck redirect errors.
Ignore _build directory in doc directory.
.gitignore | 5 ++
doc/Makefile | 48 +++++++------
doc/blivet.devicelibs.rst | 82 ---------------------
doc/blivet.formats.rst | 91 -----------------------
doc/blivet.rst | 179 ----------------------------------------------
doc/conf.py | 2 +-
doc/index.rst | 2 +-
doc/modules.rst | 7 --
8 files changed, 32 insertions(+), 384 deletions(-)
delete mode 100644 doc/blivet.devicelibs.rst
delete mode 100644 doc/blivet.formats.rst
delete mode 100644 doc/blivet.rst
delete mode 100644 doc/modules.rst
--
1.9.3
9 years, 11 months
[blivet:master 0/5] Minor documentation changes
by Anne Mulhern
Most of the *.rst files are total boilerplate and can be generated
from the source by the sphinx-apidoc tool, without overwriting the
non-boilerplate *.rst files. The first patch handles that.
The remaining patches are boring little tweaks.
mulhern (5):
Automate generation of the .rst files which just set up the modules.
Allow the table of contents to go one level deeper.
Add doctest extension so that doctest target runs.
Change intersphinx mapping to avoid linkcheck redirect errors.
Ignore _build directory in doc directory.
.gitignore | 5 ++
doc/Makefile | 45 +++++++-----
doc/blivet.devicelibs.rst | 82 ---------------------
doc/blivet.formats.rst | 91 -----------------------
doc/blivet.rst | 179 ----------------------------------------------
doc/conf.py | 4 +-
doc/index.rst | 2 +-
doc/modules.rst | 7 --
8 files changed, 34 insertions(+), 381 deletions(-)
delete mode 100644 doc/blivet.devicelibs.rst
delete mode 100644 doc/blivet.formats.rst
delete mode 100644 doc/blivet.rst
delete mode 100644 doc/modules.rst
--
1.9.3
9 years, 11 months
[anaconda][rhel6-branch][PATCH] Write --percent to kickstart output even if --grow was used (#1046320)
by Martin Kolman
Signed-off-by: Martin Kolman <mkolman(a)redhat.com>
---
storage/devices.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/storage/devices.py b/storage/devices.py
index 305f866..7a2cbf2 100644
--- a/storage/devices.py
+++ b/storage/devices.py
@@ -2416,6 +2416,8 @@ class LVMLogicalVolumeDevice(DMDevice):
if self.req_max_size > 0:
args.append("--maxsize=%s" % self.req_max_size)
+ if self.req_percent > 0:
+ args.append("--percent=%s" % self.req_percent)
else:
if self.req_percent > 0:
args.append("--percent=%s" % self.req_percent)
--
1.9.3
9 years, 11 months
[PATCH] Add a new log level 'lock' for _yum_lock
by Brian C. Lane
It is useful to log debug output from packaging without the yum_lock
logging. With this change yum_lock logging is only turned on with
inst.loglevel=lock
inst.debug, inst.updates, and inst.loglevel=debug now only turn on debug
logging for packaging.log with no yum_lock output.
---
anaconda | 15 ++++++---------
pyanaconda/anaconda_log.py | 11 ++++++++---
pyanaconda/constants.py | 3 +++
pyanaconda/packaging/yumpayload.py | 9 +++++----
4 files changed, 22 insertions(+), 16 deletions(-)
diff --git a/anaconda b/anaconda
index 1be9eda..513965d 100755
--- a/anaconda
+++ b/anaconda
@@ -379,22 +379,19 @@ def setupEnvironment():
del os.environ["LD_PRELOAD"]
def setupLoggingFromOpts(options):
- want_yum_lock_logs = False
- if options.debug or options.updateSrc:
- # debugging means debug logging
+ if (options.debug or options.updateSrc) and not options.loglevel:
+ # debugging means debug logging if an explicit level hasn't been st
options.loglevel = "debug"
- want_yum_lock_logs = options.debug
if options.loglevel and options.loglevel in anaconda_log.logLevelMap:
- level = anaconda_log.logLevelMap[opts.loglevel]
+ log.info("Switching logging level to %s", options.loglevel)
+ level = anaconda_log.logLevelMap[options.loglevel]
anaconda_log.logger.tty_loglevel = level
anaconda_log.setHandlersLevel(log, level)
storage_log = logging.getLogger("storage")
anaconda_log.setHandlersLevel(storage_log, level)
-
- if options.loglevel != "debug" or want_yum_lock_logs:
- packaging_log = logging.getLogger("packaging")
- anaconda_log.setHandlersLevel(packaging_log, level)
+ packaging_log = logging.getLogger("packaging")
+ anaconda_log.setHandlersLevel(packaging_log, level)
if options.syslog:
anaconda_log.logger.updateRemote(options.syslog)
diff --git a/pyanaconda/anaconda_log.py b/pyanaconda/anaconda_log.py
index 8105835..1a48ea9 100644
--- a/pyanaconda/anaconda_log.py
+++ b/pyanaconda/anaconda_log.py
@@ -30,6 +30,7 @@ import types
import warnings
from pyanaconda.flags import flags
+from pyanaconda.constants import LOGLVL_LOCK
DEFAULT_TTY_LEVEL = logging.INFO
ENTRY_FORMAT = "%(asctime)s,%(msecs)03d %(levelname)s %(name)s: %(message)s"
@@ -49,8 +50,11 @@ ANACONDA_SYSLOG_FACILITY = SysLogHandler.LOG_LOCAL1
from threading import Lock
program_log_lock = Lock()
-logLevelMap = {"debug": logging.DEBUG, "info": logging.INFO,
- "warning": logging.WARNING, "error": logging.ERROR,
+logLevelMap = {"lock": LOGLVL_LOCK,
+ "debug": logging.DEBUG,
+ "info": logging.INFO,
+ "warning": logging.WARNING,
+ "error": logging.ERROR,
"critical": logging.CRITICAL}
# sets autoSetLevel for the given handler
@@ -87,6 +91,7 @@ class AnacondaLog:
logging.addLevelName(logging.WARNING, "WARN")
logging.addLevelName(logging.ERROR, "ERR")
logging.addLevelName(logging.CRITICAL, "CRIT")
+ logging.addLevelName(LOGLVL_LOCK, "LOCK")
# Create the base of the logger hierarchy.
self.anaconda_logger = logging.getLogger("anaconda")
@@ -123,7 +128,7 @@ class AnacondaLog:
# Create the packaging logger.
packaging_logger = logging.getLogger("packaging")
- packaging_logger.setLevel(logging.DEBUG)
+ packaging_logger.setLevel(LOGLVL_LOCK)
self.addFileHandler(PACKAGING_LOG_FILE, packaging_logger,
minLevel=logging.INFO,
autoLevel=True)
diff --git a/pyanaconda/constants.py b/pyanaconda/constants.py
index db786b5..4f9b64a 100644
--- a/pyanaconda/constants.py
+++ b/pyanaconda/constants.py
@@ -166,3 +166,6 @@ TAR_SUFFIX = (".tar", ".tbz", ".tgz", ".txz", ".tar.bz2", "tar.gz", "tar.xz")
CMDLINE_APPEND = ["modprobe.blacklist"]
DEFAULT_AUTOPART_TYPE = AUTOPART_TYPE_LVM
+
+import logging
+LOGLVL_LOCK = logging.DEBUG-1
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index 760fa02..c05d36a 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -63,7 +63,8 @@ except ImportError:
log.error("import of yum failed")
yum = None
-from pyanaconda.constants import BASE_REPO_NAME, DRACUT_ISODIR, INSTALL_TREE, ISO_DIR, MOUNT_DIR
+from pyanaconda.constants import BASE_REPO_NAME, DRACUT_ISODIR, INSTALL_TREE, ISO_DIR, MOUNT_DIR, \
+ LOGLVL_LOCK
from pyanaconda.flags import flags
from pyanaconda import iutil
@@ -101,16 +102,16 @@ class YumLock(object):
frame = inspect.stack()[2]
threadName = threading.currentThread().name
- log.debug("about to acquire _yum_lock for %s at %s:%s (%s)", threadName, frame[1], frame[2], frame[3])
+ log.log(LOGLVL_LOCK, "about to acquire _yum_lock for %s at %s:%s (%s)", threadName, frame[1], frame[2], frame[3])
_private_yum_lock.acquire()
- log.debug("have _yum_lock for %s", threadName)
+ log.log(LOGLVL_LOCK, "have _yum_lock for %s", threadName)
return _private_yum_lock
def __exit__(self, exc_type, exc_val, exc_tb):
_private_yum_lock.release()
if not isFinal:
- log.debug("gave up _yum_lock for %s", threading.currentThread().name)
+ log.log(LOGLVL_LOCK, "gave up _yum_lock for %s", threading.currentThread().name)
def refresh_base_repo(cond_fn=None):
"""
--
1.9.3
9 years, 11 months
[PATCH 0/2] It's like a thousand icons when all you need is a knife
by David Shea
Fixes for an icon loading problem. Mostly this just output error messages from
gtk_icon_info_load_icon when running an image with the newest
adwaita-icon-theme.
David Shea (2):
Improve the SpokeSelector icon error reporting.
Replace uses of gtk-missing-image
pyanaconda/ui/gui/spokes/lib/passphrase.glade | 2 +-
widgets/glade/AnacondaWidgets.xml | 2 +-
widgets/src/SpokeSelector.c | 18 +++++++++++++++++-
3 files changed, 19 insertions(+), 3 deletions(-)
--
2.0.0
9 years, 11 months