[PATCH rhel5-branch] Include librt.so in initrd for s390 (#966123)
by Radek Vykydal
Resolves: rhbz#966123
---
scripts/mk-images | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/scripts/mk-images b/scripts/mk-images
index ce3beb6..455a73c 100755
--- a/scripts/mk-images
+++ b/scripts/mk-images
@@ -481,6 +481,8 @@ EOF
$IMGPATH/$LIBDIR/libattr*so* \
$IMGPATH/$LIBDIR/libresolv.so* \
$IMGPATH/$LIBDIR/libresolv-*.so* \
+ $IMGPATH/$LIBDIR/librt.so* \
+ $IMGPATH/$LIBDIR/librt-*.so* \
$IMGPATH/$LIBDIR/libm.so* \
$IMGPATH/$LIBDIR/libm-*.so* \
$IMGPATH/$LIBDIR/libz.so* \
--
1.7.4
10 years, 11 months
[PATCH] Restart syslog for remote logging (#966464)
by Brian C. Lane
From: "Brian C. Lane" <bcl(a)redhat.com>
---
anaconda | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/anaconda b/anaconda
index ac90d72..875a23b 100755
--- a/anaconda
+++ b/anaconda
@@ -337,7 +337,7 @@ def setupLoggingFromOpts(opts):
anaconda_log.setHandlersLevel(storage_log, level)
if opts.syslog:
- anaconda_log.logger.remote_syslog = opts.syslog
+ anaconda_log.logger.updateRemote(opts.syslog)
def gtk_warning(title, reason):
import gtk
--
1.8.1.4
10 years, 11 months
[PATCH] Ignore rescue kernels (#958906)
by Brian C. Lane
From: "Brian C. Lane" <bcl(a)redhat.com>
---
pyanaconda/packaging/__init__.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
index 27de538..6376076 100644
--- a/pyanaconda/packaging/__init__.py
+++ b/pyanaconda/packaging/__init__.py
@@ -374,7 +374,9 @@ class Payload(object):
files = glob.glob(ROOT_PATH + "/boot/vmlinuz-*")
files.extend(glob.glob(ROOT_PATH + "/boot/efi/EFI/redhat/vmlinuz-*"))
# strip off everything up to and including vmlinuz- to get versions
- versions = [f.split("/")[-1][8:] for f in files if os.path.isfile(f)]
+ # Ignore rescue kernels
+ versions = [f.split("/")[-1][8:] for f in files if os.path.isfile(f) \
+ and f.find("-rescue-") == -1]
versions.sort(cmp=cmpfunc)
log.debug("kernel versions: %s" % versions)
self._kernelVersionList = versions
--
1.8.1.4
10 years, 11 months
[python-meh][PATCH] Give translators hint about the cryptic strings
by Vratislav Podzimek
The comments appear in the .pot file and also in Transifex next to the
to be translated string.
Signed-off-by: Vratislav Podzimek <vpodzime(a)redhat.com>
---
meh/ui/text.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/meh/ui/text.py b/meh/ui/text.py
index 04569b8..989f3dd 100644
--- a/meh/ui/text.py
+++ b/meh/ui/text.py
@@ -66,9 +66,10 @@ class TextWindow(object):
self._io = kwargs.get("io_handler", IOHandler())
self._title = title
- # XXX: I know this must be really hard for translators, but there is no
- # usable way to include context to the POT file in Python
+ # short (one-char) answer meaning "yes"
self._yes_answer = _("y")
+
+ # short (one-char) answer meaning "no"
self._no_answer = _("n")
@property
--
1.7.11.7
10 years, 11 months
[PATCH] Fix software selection in text UI.
by Samantha N. Bueno
There were a couple of major problems with this:
-- selection was not getting applied and minimal install always
applied during installation
-- the way I handled threading in this spoke initially made things
a bit screwy, causing the occasional traceback
These amendments should make things behave much better now.
---
pyanaconda/ui/tui/spokes/software.py | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/pyanaconda/ui/tui/spokes/software.py b/pyanaconda/ui/tui/spokes/software.py
index b6912b9..63ca145 100644
--- a/pyanaconda/ui/tui/spokes/software.py
+++ b/pyanaconda/ui/tui/spokes/software.py
@@ -37,13 +37,14 @@ class SoftwareSpoke(NormalTUISpoke):
title = _("Software selection")
category = "software"
+ # default to first selection (Gnome) in list of environments
+ _selection = 0
+
def __init__(self, app, data, storage, payload, instclass):
NormalTUISpoke.__init__(self, app, data, storage, payload, instclass)
self._ready = False
self.errors = []
self._tx_id = None
- # default to first selection (Gnome) in list of environments
- self._selection = 0
self.environment = None
# for detecting later whether any changes have been made
@@ -134,15 +135,14 @@ class SoftwareSpoke(NormalTUISpoke):
def input(self, args, key):
""" Handle the input; this chooses the desktop environment. """
- if key.lower() == "c" and self._selection - 1 in range(len(self.payload.environments)):
+ if key.lower() == "c" and self._selection in range(len(self.payload.environments)):
self.apply()
- return False
try:
keyid = int(key) - 1
if keyid in range(len(self.payload.environments)):
self._selection = keyid
- return False
+ return None
except (ValueError, IndexError):
return key
@@ -158,19 +158,17 @@ class SoftwareSpoke(NormalTUISpoke):
""" Apply our selections """
self._apply()
self.data.packages.seen = True
+ threadMgr.add(AnacondaThread(name=THREAD_CHECK_SOFTWARE,
+ target=self.checkSoftwareSelection))
def _apply(self):
""" Private apply. """
- try:
- self.environment = self.payload.environments[self._selection]
- self.data.packages.seen = True
- except IndexError:
+ self.environment = self.payload.environments[self._selection]
+ if not self.environment:
return
self.payload.selectEnvironment(self.environment)
self._origEnv = self.environment
- threadMgr.add(AnacondaThread(name=THREAD_CHECK_SOFTWARE,
- target=self.checkSoftwareSelection))
def checkSoftwareSelection(self):
""" Depsolving """
--
1.7.11.7
10 years, 11 months
[PATCH 1/2] disable updates when method is set in ks (#952791)
by Brian C. Lane
From: "Brian C. Lane" <bcl(a)redhat.com>
---
pyanaconda/packaging/yumpayload.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index c0c1455..911c1ce 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -535,7 +535,6 @@ reposdir=%s
self.disableRepo(repo.id)
elif self.data.method.method and \
repo.id != BASE_REPO_NAME and \
- repo.id != "updates" and \
repo.id not in (r.name for r in self.data.repo.dataList()):
# if a method/repo was given, disable all default repos
self.disableRepo(repo.id)
--
1.8.1.4
10 years, 11 months
[PATCH 1/3] Fix the rescan button (#929299).
by Chris Lumens
This was broken by the addition of the filter UI, which has some pretty
strange requirements in terms of which disks are visible and which are not.
---
pyanaconda/ui/gui/spokes/storage.py | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py
index 501d9b1..9cb4df8 100644
--- a/pyanaconda/ui/gui/spokes/storage.py
+++ b/pyanaconda/ui/gui/spokes/storage.py
@@ -540,16 +540,22 @@ class StorageSpoke(NormalSpoke, StorageChecker):
self._previous_autopart = self.autopart
- # First, remove all non-button children of the advanced box.
- for child in self.advancedOverviews:
+ # First, remove all non-button children.
+ for child in self.localOverviews + self.advancedOverviews:
child.destroy()
+ # Then deal with local disks, which are really easy. They need to be
+ # handled here instead of refresh to take into account the user pressing
+ # the rescan button on custom partitioning.
+ for disk in filter(isLocalDisk, self.disks):
+ self._add_disk_overview(disk, self.local_disks_box)
+
# Advanced disks are different. Because there can potentially be a lot
# of them, we do not display them in the box by default. Instead, only
# those selected in the filter UI are displayed. This means refresh
# needs to know to create and destroy overviews as appropriate.
for name in self.data.ignoredisk.onlyuse:
- obj = self.storage.devicetree.getDeviceByName(name)
+ obj = self.storage.devicetree.getDeviceByName(name, hidden=True)
if isLocalDisk(obj):
continue
@@ -647,11 +653,6 @@ class StorageSpoke(NormalSpoke, StorageChecker):
if len(self.disks) == 1 and not self.selected_disks:
self._applyDiskSelection([self.disks[0].name])
- # Don't handle specialized devices here. They are handled by refresh,
- # given that they can come and go by visiting the filter spoke.
- for disk in filter(isLocalDisk, self.disks):
- self._add_disk_overview(disk, self.local_disks_box)
-
self._ready = True
hubQ.send_ready(self.__class__.__name__, False)
--
1.8.1.2
10 years, 11 months
[PATCH 1/3] When handling hidden devices in getDeviceBy*, don't use +=.
by Chris Lumens
This has the effect of making self._devices also contain all of self._hidden,
which will break lots of other things.
---
blivet/devicetree.py | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/blivet/devicetree.py b/blivet/devicetree.py
index 691f1b2..d32f09e 100644
--- a/blivet/devicetree.py
+++ b/blivet/devicetree.py
@@ -1914,9 +1914,10 @@ class DeviceTree(object):
return None
found = None
- devices = self._devices
if hidden:
- devices += self._hidden
+ devices = self._devices + self._hidden
+ else:
+ devices += self._devices
for device in devices:
if not incomplete and not getattr(device, "complete", True):
@@ -1934,9 +1935,10 @@ class DeviceTree(object):
return None
found = None
- devices = self._devices
if hidden:
- devices += self._hidden
+ devices = self._devices + self._hidden
+ else:
+ devices = self._devices
for device in devices:
if not incomplete and not getattr(device, "complete", True):
@@ -1953,9 +1955,10 @@ class DeviceTree(object):
return found
def getDevicesBySerial(self, serial, incomplete=False, hidden=False):
- devices = self._devices
if hidden:
- devices += self._hidden
+ devices = self._devices + self._hidden
+ else:
+ devices = self._devices
retval = []
for device in devices:
@@ -1976,9 +1979,10 @@ class DeviceTree(object):
return None
found = None
- devices = self._devices
if hidden:
- devices += self._hidden
+ devices = self._devices + self._hidden
+ else:
+ devices = self._devices
for device in devices:
if not incomplete and not getattr(device, "complete", True):
@@ -2002,9 +2006,10 @@ class DeviceTree(object):
return None
found = None
- devices = self._devices
if hidden:
- devices += self._hidden
+ devices = self._devices + self._hidden
+ else:
+ devices = self._devices
for device in devices:
if not incomplete and not getattr(device, "complete", True):
@@ -2031,9 +2036,10 @@ class DeviceTree(object):
leaf = None
other = None
- devices = self._devices
if hidden:
- devices += self._hidden
+ devices = self._devices + self._hidden
+ else:
+ devices = self._devices
for device in devices:
if not incomplete and not getattr(device, "complete", True):
--
1.8.1.2
10 years, 11 months
[PATCH] Fix string formatting on text UI storage spoke. (#965460)
by Samantha N. Bueno
80 character is nice and all, but sometimes it messes with the way
things look.
---
pyanaconda/ui/tui/spokes/storage.py | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/pyanaconda/ui/tui/spokes/storage.py b/pyanaconda/ui/tui/spokes/storage.py
index 3f815ca..68c6663 100644
--- a/pyanaconda/ui/tui/spokes/storage.py
+++ b/pyanaconda/ui/tui/spokes/storage.py
@@ -151,12 +151,9 @@ class StorageSpoke(NormalTUISpoke):
count) % (count, str(Size(spec="%s MB" % capacity)), free))
if len(self.disks) == 0:
- summary = _("No disks detected. Please shut down the computer, \
- connect at least one disk, and restart to complete \
- installation.")
+ summary = _("No disks detected. Please shut down the computer, connect at least one disk, and restart to complete installation.")
elif count == 0:
- summary = (_("No disks selected; please select at least one disk \
- to install to."))
+ summary = (_("No disks selected; please select at least one disk to install to."))
# Append storage errors to the summary
if self.errors:
@@ -330,8 +327,7 @@ class AutoPartSpoke(NormalTUISpoke):
completed=(PARTTYPES[parttype] == self.clearPartType))
self._window += [c, ""]
- message = _("Installation requires partitioning of your hard drive. \
- Select what space to use for the install target.")
+ message = _("Installation requires partitioning of your hard drive. Select what space to use for the install target.")
self._window += [TextWidget(message), ""]
--
1.7.11.7
10 years, 11 months
[PATCH 1/2] Fixup TUI source to work with kickstart
by Brian C. Lane
From: "Brian C. Lane" <bcl(a)redhat.com>
---
pyanaconda/ui/tui/spokes/source.py | 42 ++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 20 deletions(-)
diff --git a/pyanaconda/ui/tui/spokes/source.py b/pyanaconda/ui/tui/spokes/source.py
index efda0ac..076a124 100644
--- a/pyanaconda/ui/tui/spokes/source.py
+++ b/pyanaconda/ui/tui/spokes/source.py
@@ -19,6 +19,7 @@
# Red Hat Author(s): Samantha N. Bueno <sbueno(a)redhat.com>
#
+from pyanaconda.flags import flags
from pyanaconda.ui.tui.spokes import EditTUISpoke
from pyanaconda.ui.tui.spokes import EditTUISpokeEntry as Entry
from pyanaconda.ui.tui.simpleline import CheckboxWidget, TextWidget
@@ -49,7 +50,6 @@ class SourceSpoke(EditTUISpoke):
def __init__(self, app, data, storage, payload, instclass):
EditTUISpoke.__init__(self, app, data, storage, payload, instclass)
- self.data.method.url = ""
self._ready = False
self.errors = []
@@ -65,23 +65,27 @@ class SourceSpoke(EditTUISpoke):
threadMgr.wait(THREAD_PAYLOAD)
self._ready = True
+ def _repo_status(self):
+ """ Return a string describing repo url or lack of one. """
+ if self.data.method.method == "url":
+ return self.data.method.url or self.data.method.mirrorlist
+ elif self.payload.baseRepo:
+ return _("Closest mirror")
+ else:
+ return _("Nothing selected")
+
@property
def status(self):
if self.errors:
return _("Error setting up software source")
elif not self._ready:
return _("Processing...")
- elif self.data.method.method == "url":
- return self.data.method.url or self.data.method.mirrorlist
- elif self.payload.baseRepo:
- return _("Closest mirror")
else:
- return _("Nothing selected")
+ return self._repo_status()
def _update_summary(self):
""" Update screen with a summary. Show errors if there are any. """
- repostr = (_("Repo URL set to: "))
- summary = repostr + self.data.method.url
+ summary = (_("Repo URL set to: %s") % self._repo_status())
if self.errors:
summary = summary + "\n" + "\n".join(self.errors)
@@ -90,10 +94,10 @@ class SourceSpoke(EditTUISpoke):
@property
def completed(self):
- if not self.errors and self.ready:
- return True
- else:
+ if flags.automatedInstall and (not self.data.method.method or not self.payload.baseRepo):
return False
+ else:
+ return not self.errors and self.ready
def refresh(self, args=None):
EditTUISpoke.refresh(self, args)
@@ -116,16 +120,18 @@ class SourceSpoke(EditTUISpoke):
""" Handle the input; this decides the repo protocol. """
if key == "c" and self._selection == 1:
# closest mirror
+ self.data.method.method = None
self.apply()
if key == "c" and self._selection in range(2, 5):
- self.apply()
+ self.data.method.method = "url"
+
# want to kick off new spoke asking to specify repo
newspoke = SpecifyRepoSpoke(self.app, self.data, self.storage,
self.payload, self.instclass, self._selection)
self.app.switch_screen_modal(newspoke)
- threadMgr.add(AnacondaThread(name=THREAD_PAYLOAD_MD,
- target=self.getRepoMetadata))
+ self.apply()
+
try:
num = int(key)
if num in range(1, 5):
@@ -163,12 +169,8 @@ class SourceSpoke(EditTUISpoke):
def apply(self):
""" Execute the selections made. """
- if self._selection == 1:
- self.data.method.method = None
- elif self._selection in range(2, 5):
- self.data.method.method = "url"
- return
-
+ threadMgr.add(AnacondaThread(name=THREAD_PAYLOAD_MD,
+ target=self.getRepoMetadata))
class SpecifyRepoSpoke(EditTUISpoke):
""" Specify the repo URL here if closest mirror not selected. """
--
1.8.1.4
10 years, 11 months