The attached patch set turns anaconda into a regular old python module. It does this by moving lots and lots of files around. I will attach a followup email showing the exact layout of the anaconda RPM with this patch applied.
I have performed a basic test of building a scratch package and then running pungi with that package, and then doing a single basic install. pungi will require patches to reference new locations. I've got a patch for that locally and will send later. fedora-logos will also need a patch.
Notable changes:
- In order to not have to change every "import whatever" to "import anaconda.whatever", I do some python path mangling early on. Any project using anaconda that doesn't want to have to make those changes will have to do their own path mangling.
- /usr/sbin/anaconda -> /usr/sbin/anaconda-bin. I have to do this to make updates work correctly. Patch 11 should explain the situation.
- /usr/lib/anaconda-runtime is dead.
I'm looking to push this into master relatively soon so I can go back to work on storage testing.
- Chris
You know, like anaconda's any other python module. --- Makefile.am | 7 ++----- anaconda.spec.in | 5 ++--- booty/Makefile.am | 2 +- installclasses/Makefile.am | 2 +- isys/Makefile.am | 5 +---- iw/Makefile.am | 2 +- storage/Makefile.am | 2 +- storage/devicelibs/Makefile.am | 2 +- storage/formats/Makefile.am | 2 +- textw/Makefile.am | 2 +- 10 files changed, 12 insertions(+), 19 deletions(-)
diff --git a/Makefile.am b/Makefile.am index 5a1622a..94a1297 100644 --- a/Makefile.am +++ b/Makefile.am @@ -42,13 +42,10 @@ dist_sbin_SCRIPTS = anaconda udevdir = /lib/udev/rules.d dist_udev_DATA = 70-anaconda.rules
-langdir = $(libdir)/$(PACKAGE_NAME) +langdir = $(datadir)/$(PACKAGE_NAME) lang_DATA = lang-names dist_lang_DATA = lang-table
-pkgpyexecdir = $(libdir)/$(PACKAGE_NAME) -pkgpythondir = $(libdir)/$(PACKAGE_NAME) - pkgpyexec_LTLIBRARIES = xutils.la xutils_la_CFLAGS = $(PYTHON_INCLUDES) $(GDK_CFLAGS) -fno-strict-aliasing xutils_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS) $(GDK_LDFLAGS) @@ -56,7 +53,7 @@ xutils_la_LIBADD = $(PYTHON_LIBS) $(GDK_LIBS) xutils_la_SOURCES = xutils.c
# anaconda Python code -anacondadir = $(libdir)/$(PACKAGE_NAME) +anacondadir = $(pkgpyexecdir) anaconda_PYTHON = *.py
PYCHECKERPATH = isys:textw:iw:installclasses:/usr/share/system-config-date diff --git a/anaconda.spec.in b/anaconda.spec.in index a52292c..b48ebf7 100644 --- a/anaconda.spec.in +++ b/anaconda.spec.in @@ -1,5 +1,4 @@ %define livearches %{ix86} x86_64 ppc ppc64 -%define _libdir %{_prefix}/lib
Summary: Graphical system installer Name: anaconda @@ -208,9 +207,9 @@ update-desktop-database &> /dev/null || : %{_sbindir}/showpart %endif %{_datadir}/anaconda -%{_prefix}/lib/anaconda -%{_prefix}/lib/anaconda-runtime %{_prefix}/libexec/anaconda +%{_libdir}/python*/site-packages/anaconda/* +%{_libdir}/anaconda* %ifarch %livearches %{_bindir}/liveinst %{_sbindir}/liveinst diff --git a/booty/Makefile.am b/booty/Makefile.am index 7cfc29f..ee7d11f 100644 --- a/booty/Makefile.am +++ b/booty/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-bootydir = $(libdir)/$(PACKAGE_NAME)/booty +bootydir = $(pkgpyexecdir)/booty booty_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/installclasses/Makefile.am b/installclasses/Makefile.am index 0b8ddd2..e45bcc5 100644 --- a/installclasses/Makefile.am +++ b/installclasses/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-installclassesdir = $(libdir)/$(PACKAGE_NAME)/installclasses +installclassesdir = $(pkgpyexecdir)/installclasses installclasses_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/isys/Makefile.am b/isys/Makefile.am index f40a884..2600104 100644 --- a/isys/Makefile.am +++ b/isys/Makefile.am @@ -30,12 +30,9 @@ ISYS_LIBS = $(RESOLV_LIBS) $(EXT2FS_LIBS) $(ZLIB_LIBS) \ $(DEVMAPPER_LIBS) $(BLKID_LIBS) $(X11_LIBS) $(SELINUX_LIBS) \ $(LIBNL_LIBS) $(LIBNM_GLIB_LIBS)
-isysdir = $(libdir)/$(PACKAGE_NAME) +isysdir = $(pkgpyexecdir) isys_PYTHON = *.py
-pkgpyexecdir = $(libdir)/$(PACKAGE_NAME) -pkgpythondir = $(libdir)/$(PACKAGE_NAME) - pkgpyexec_LTLIBRARIES = _isys.la _isys_la_CFLAGS = $(PYTHON_INCLUDES) $(ISYS_CFLAGS) _isys_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS) diff --git a/iw/Makefile.am b/iw/Makefile.am index db5938b..0ab4890 100644 --- a/iw/Makefile.am +++ b/iw/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-iwdir = $(libdir)/$(PACKAGE_NAME)/iw +iwdir = $(pkgpyexecdir)/iw iw_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/storage/Makefile.am b/storage/Makefile.am index 18b418c..8e2c6fc 100644 --- a/storage/Makefile.am +++ b/storage/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-storagedir = $(libdir)/$(PACKAGE_NAME)/storage +storagedir = $(pkgpyexecdir)/storage storage_PYTHON = *.py
SUBDIRS = devicelibs formats diff --git a/storage/devicelibs/Makefile.am b/storage/devicelibs/Makefile.am index 90076bf..a1e3c88 100644 --- a/storage/devicelibs/Makefile.am +++ b/storage/devicelibs/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-storagedevicelibsdir = $(libdir)/$(PACKAGE_NAME)/storage/devicelibs +storagedevicelibsdir = $(pkgpyexecdir)/storage/devicelibs storagedevicelibs_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/storage/formats/Makefile.am b/storage/formats/Makefile.am index 5af707d..b24eaa1 100644 --- a/storage/formats/Makefile.am +++ b/storage/formats/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-storageformatsdir = $(libdir)/$(PACKAGE_NAME)/storage/formats +storageformatsdir = $(pkgpyexecdir)/storage/formats storageformats_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/textw/Makefile.am b/textw/Makefile.am index fcc423c..b1c320d 100644 --- a/textw/Makefile.am +++ b/textw/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-textwdir = $(libdir)/$(PACKAGE_NAME)/textw +textwdir = $(pkgpyexecdir)/textw textw_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in
This is only needed because I'm not going to change every import in anaconda to say "from anaconda import blah". There's well over two thousand of those lines, and adjusting the path is much easier. --- anaconda | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/anaconda b/anaconda index e1055ec..eab90ef 100755 --- a/anaconda +++ b/anaconda @@ -224,14 +224,20 @@ def setupPythonPath(): haveUpdates = True break
+ # With anaconda being a real module this isn't strictly necessary, but + # setting up the path now prevents having to change every import line in + # anaconda. + from distutils.sysconfig import get_python_lib + d = get_python_lib(plat_specific=1) + if haveUpdates: - sys.path.insert(ndx+1, '/usr/lib/anaconda') - sys.path.insert(ndx+2, '/usr/lib/anaconda/textw') - sys.path.insert(ndx+3, '/usr/lib/anaconda/iw') + sys.path.insert(ndx+1, "%s/anaconda" % d) + sys.path.insert(ndx+2, "%s/anaconda/textw" % d) + sys.path.insert(ndx+3, "%s/anaconda/iw" % d) else: - sys.path.insert(0, '/usr/lib/anaconda') - sys.path.insert(1, '/usr/lib/anaconda/textw') - sys.path.insert(2, '/usr/lib/anaconda/iw') + sys.path.insert(0, "%s/anaconda" % d) + sys.path.insert(1, "%s/anaconda/textw" % d) + sys.path.insert(2, "%s/anaconda/iw" % d)
sys.path.append('/usr/share/system-config-date')
--- command-stubs/loadkeys-stub | 8 +------- command-stubs/losetup-stub | 8 +------- command-stubs/mknod-stub | 8 ++------ command-stubs/raidstart-stub | 15 +-------------- command-stubs/raidstop-stub | 15 +-------------- 5 files changed, 6 insertions(+), 48 deletions(-)
diff --git a/command-stubs/loadkeys-stub b/command-stubs/loadkeys-stub index 1752717..6d72f5a 100755 --- a/command-stubs/loadkeys-stub +++ b/command-stubs/loadkeys-stub @@ -21,13 +21,7 @@ import os import sys
-# for testing -if (os.path.exists('isys')): - sys.path.append('isys') - -sys.path.append('/usr/lib/anaconda') - -import isys +from anaconda import isys
def usage(): print "usage: %s keymap" %(sys.argv[0],) diff --git a/command-stubs/losetup-stub b/command-stubs/losetup-stub index bf186a1..3728a05 100755 --- a/command-stubs/losetup-stub +++ b/command-stubs/losetup-stub @@ -21,13 +21,7 @@ import os import sys
-# for testing -if (os.path.exists('isys')): - sys.path.append('isys') - -sys.path.append('/usr/lib/anaconda') - -import isys +from anaconda import isys from sys import argv
def usage(): diff --git a/command-stubs/mknod-stub b/command-stubs/mknod-stub index dd72aeb..c8933ec 100755 --- a/command-stubs/mknod-stub +++ b/command-stubs/mknod-stub @@ -18,12 +18,8 @@ # along with this program. If not, see http://www.gnu.org/licenses/. #
-import sys, os -sys.path.append('/usr/lib/anaconda') -import isys -import string -import stat -import os +import stat, string, sys, os +from anaconda import isys
def usage(): sys.stderr.write("Usage: %s <path> [b|c] <major> <minor>\n" %(sys.argv[0],)) diff --git a/command-stubs/raidstart-stub b/command-stubs/raidstart-stub index 2a0d8b3..9aadde3 100755 --- a/command-stubs/raidstart-stub +++ b/command-stubs/raidstart-stub @@ -21,20 +21,7 @@ import os import sys
-# for testing -if (os.path.exists('rpmmodule')): - sys.path.append('rpmmodule') - sys.path.append('libfdisk') - sys.path.append('balkan') - sys.path.append('gnome-map') - sys.path.append('isys') - -sys.path.append('/usr/lib/anaconda') - -import anaconda_log -import fsset -import raid -import isys +from anaconda import anaconda_log, fsset, raid, isys from sys import argv
if len(argv) != 2 or argv[1][:7] != "/dev/md": diff --git a/command-stubs/raidstop-stub b/command-stubs/raidstop-stub index 942c29e..0c49d03 100755 --- a/command-stubs/raidstop-stub +++ b/command-stubs/raidstop-stub @@ -21,20 +21,7 @@ import os import sys
-# for testing -if (os.path.exists('rpmmodule')): - sys.path.append('rpmmodule') - sys.path.append('libfdisk') - sys.path.append('balkan') - sys.path.append('gnome-map') - sys.path.append('isys') - -sys.path.append('/usr/lib/anaconda') - -import anaconda_log -import fsset -import raid -import isys +from anaconda import anaconda_log, fsset, raid, isys from sys import argv
if len(argv) != 2 or argv[1][:7] != "/dev/md":
--- scripts/upd-instroot | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/scripts/upd-instroot b/scripts/upd-instroot index c40a409..7fdd58b 100755 --- a/scripts/upd-instroot +++ b/scripts/upd-instroot @@ -572,13 +572,6 @@ usr/bin/xkbcomp usr/bin/zenity usr/lib/anaconda usr/lib/anaconda-runtime -usr/lib/anaconda/installclasses -usr/lib/anaconda/iw -usr/lib/anaconda/textw -usr/lib/anaconda/booty -usr/lib/anaconda/storage -usr/lib/anaconda/storage/devicelibs -usr/lib/anaconda/storage/formats usr/lib/kernel-wrapper usr/lib/locale usr/lib/python?.?
--- language.py | 4 ++-- scripts/mk-images | 2 +- scripts/upd-instroot | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/language.py b/language.py index c0270c2..4de330c 100644 --- a/language.py +++ b/language.py @@ -144,7 +144,7 @@ class Language(object): self.nativeLangNames = {}
# English name -> native name mapping - search = ('lang-names', '/usr/lib/anaconda/lang-names') + search = ('lang-names', '/usr/share/anaconda/lang-names') for path in search: if os.access(path, os.R_OK): f = open(path, 'r') @@ -158,7 +158,7 @@ class Language(object):
# nick -> (name, short name, font, keyboard, timezone) mapping search = ('lang-table', '/tmp/updates/lang-table', '/etc/lang-table', - '/usr/lib/anaconda/lang-table') + '/usr/share/anaconda/lang-table') for path in search: if os.access(path, os.R_OK): f = open(path, "r") diff --git a/scripts/mk-images b/scripts/mk-images index 6cac85f..50b120a 100755 --- a/scripts/mk-images +++ b/scripts/mk-images @@ -171,7 +171,7 @@ MODLIST=$IMGPATH/usr/lib/anaconda-runtime/modlist MODINFO=$TMPDIR/modinfo-$BUILDARCH.$$ LOADERBINDIR=$IMGPATH/usr/lib/anaconda-runtime/loader BOOTDISKDIR=$IMGPATH/usr/lib/anaconda-runtime/boot -LANGTABLE=$IMGPATH/usr/lib/anaconda/lang-table +LANGTABLE=$IMGPATH/usr/share/anaconda/lang-table PCIIDS=$IMGPATH/usr/share/hwdata/pci.ids XDRIVERS=$IMGPATH/usr/share/hwdata/videoaliases XDRIVERDESCS=$IMGPATH/usr/share/hwdata/videodrivers diff --git a/scripts/upd-instroot b/scripts/upd-instroot index 7fdd58b..bebee1c 100755 --- a/scripts/upd-instroot +++ b/scripts/upd-instroot @@ -940,7 +940,7 @@ chown -R root:root $DEST chmod -R a+rX-w $DEST
# Remove locales unused during the install -cat $DEST/usr/lib/anaconda/lang-table* | awk ' +cat $DEST/usr/share/anaconda/lang-table* | awk ' { gsub("-", "", $4); print $4; print gensub(/..*$/,"","",$4);
--- installclass.py | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/installclass.py b/installclass.py index 5ede06a..26ce5ca 100644 --- a/installclass.py +++ b/installclass.py @@ -241,7 +241,8 @@ def availableClasses(showHidden=0): elif os.access("/tmp/product/installclasses", os.R_OK): path = "/tmp/product/installclasses" else: - path = "/usr/lib/anaconda/installclasses" + from distutils.sysconfig import get_python_lib + path = get_python_lib(plat_specific=1) + "/anaconda/installclasses"
# append the location of installclasses to the python path so we # can import them
--- __init__.py | 389 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ anaconda | 351 +----------------------------------------------------- 2 files changed, 390 insertions(+), 350 deletions(-) create mode 100644 __init__.py
diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..9c04cda --- /dev/null +++ b/__init__.py @@ -0,0 +1,389 @@ +#!/usr/bin/python +# +# anaconda: The Red Hat Linux Installation program +# +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 +# Red Hat, Inc. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# Author(s): Brent Fox bfox@redhat.com +# Mike Fulbright msf@redhat.com +# Jakub Jelinek jakub@redhat.com +# Jeremy Katz katzj@redhat.com +# Chris Lumens clumens@redhat.com +# Paul Nasrat pnasrat@redhat.com +# Erik Troan ewt@rpath.com +# Matt Wilson msw@rpath.com +# + +import os, time +from tempfile import mkstemp + +import logging +log = logging.getLogger("anaconda") +stdoutLog = logging.getLogger("anaconda.stdout") + +import gettext +_ = lambda x: gettext.ldgettext("anaconda", x) + +class Anaconda(object): + def __init__(self): + import desktop, dispatch, firewall, security + import system_config_keyboard.keyboard as keyboard + from flags import flags + + self._backend = None + self._bootloader = None + self.canReIPL = False + self.desktop = desktop.Desktop() + self.dir = None + self.dispatch = dispatch.Dispatcher(self) + self.displayMode = None + self.extraModules = [] + self.firewall = firewall.Firewall() + self.id = None + self._instClass = None + self._instLanguage = None + self._intf = None + self.isHeadless = False + self.keyboard = keyboard.Keyboard() + self.ksdata = None + self.mediaDevice = None + self.methodstr = None + self._network = None + self._platform = None + self.proxy = None + self.proxyUsername = None + self.proxyPassword = None + self.reIPLMessage = None + self.rescue = False + self.rescue_mount = True + self.rootParts = None + self.rootPath = "/mnt/sysimage" + self.security = security.Security() + self.simpleFilter = True + self.stage2 = None + self._storage = None + self._timezone = None + self.updateSrc = None + self.upgrade = flags.cmdline.has_key("preupgrade") + self.upgradeRoot = None + self.upgradeSwapInfo = None + self._users = None + + # *sigh* we still need to be able to write this out + self.xdriver = None + + @property + def backend(self): + if not self._backend: + b = self.instClass.getBackend() + self._backend = apply(b, (self, )) + + return self._backend + + @property + def bootloader(self): + if not self._bootloader: + import booty + self._bootloader = booty.getBootloader(self) + + return self._bootloader + + @property + def firstboot(self): + from pykickstart.constants import FIRSTBOOT_SKIP, FIRSTBOOT_DEFAULT + + if self.ksdata: + return self.ksdata.firstboot.firstboot + elif iutil.isS390(): + return FIRSTBOOT_SKIP + else: + return FIRSTBOOT_DEFAULT + + @property + def instClass(self): + if not self._instClass: + from installclass import DefaultInstall + self._instClass = DefaultInstall() + + return self._instClass + + @property + def instLanguage(self): + if not self._instLanguage: + import language + self._instLanguage = language.Language(self.displayMode) + + return self._instLanguage + + def _getInterface(self): + return self._intf + + def _setInterface(self, v): + # "lambda cannot contain assignment" + self._intf = v + + def _delInterface(self): + del self._intf + + intf = property(_getInterface, _setInterface, _delInterface) + + @property + def network(self): + if not self._network: + import network + self._network = network.Network() + + return self._network + + @property + def platform(self): + if not self._platform: + import platform + self._platform = platform.getPlatform(self) + + return self._platform + + @property + def protected(self): + import stat + + if os.path.exists("/dev/live") and \ + stat.S_ISBLK(os.stat("/dev/live")[stat.ST_MODE]): + return [os.readlink("/dev/live")] + elif self.methodstr and self.methodstr.startswith("hd:"): + method = self.methodstr[3:] + return [method.split(":", 3)[0]] + else: + return [] + + @property + def users(self): + if not self._users: + import users + self._users = users.Users(self) + + return self._users + + @property + def storage(self): + if not self._storage: + import storage + self._storage = storage.Storage(self) + + return self._storage + + @property + def timezone(self): + if not self._timezone: + import timezone + self._timezone = timezone.Timezone() + self._timezone.setTimezoneInfo(self.instLanguage.getDefaultTimeZone(self.rootPath)) + + return self._timezone + + def dumpState(self): + from meh.dump import ReverseExceptionDump + from inspect import stack as _stack + + # Skip the frames for dumpState and the signal handler. + stack = _stack()[2:] + stack.reverse() + exn = ReverseExceptionDump((None, None, stack), self.mehConfig) + + (fd, filename) = mkstemp("", "anaconda-tb-", "/tmp") + fo = os.fdopen(fd, "w") + + exn.write(self, fo) + + def initInterface(self): + if self._intf: + raise RuntimeError, "Second attempt to initialize the InstallInterface" + + # setup links required by graphical mode if installing and verify display mode + if self.displayMode == 'g': + stdoutLog.info (_("Starting graphical installation.")) + + try: + from gui import InstallInterface + except Exception, e: + stdoutLog.error("Exception starting GUI installer: %s" %(e,)) + # if we're not going to really go into GUI mode, we need to get + # back to vc1 where the text install is going to pop up. + if not flags.livecdInstall: + isys.vtActivate (1) + stdoutLog.warning("GUI installer startup failed, falling back to text mode.") + self.displayMode = 't' + if 'DISPLAY' in os.environ.keys(): + del os.environ['DISPLAY'] + time.sleep(2) + + if self.displayMode == 't': + from text import InstallInterface + if not os.environ.has_key("LANG"): + os.environ["LANG"] = "en_US.UTF-8" + + if self.displayMode == 'c': + from cmdline import InstallInterface + + self._intf = InstallInterface() + return self._intf + + def writeXdriver(self): + # this should go away at some point, but until it does, we + # need to keep it around. + if self.xdriver is None: + return + if not os.path.isdir("%s/etc/X11" %(self.rootPath,)): + os.makedirs("%s/etc/X11" %(self.rootPath,), mode=0755) + f = open("%s/etc/X11/xorg.conf" %(self.rootPath,), 'w') + f.write('Section "Device"\n\tIdentifier "Videocard0"\n\tDriver "%s"\nEndSection\n' % self.xdriver) + f.close() + + def setMethodstr(self, methodstr): + if methodstr.startswith("cdrom://"): + (device, tree) = string.split(methodstr[8:], ":", 1) + + if not tree.startswith("/"): + tree = "/%s" %(tree,) + + if device.startswith("/dev/"): + device = device[5:] + + self.mediaDevice = device + self.methodstr = "cdrom://%s" % tree + else: + self.methodstr = methodstr + + def requiresNetworkInstall(self): + fail = False + numNetDevs = isys.getNetworkDeviceCount() + + if self.methodstr is not None: + if (self.methodstr.startswith("http") or \ + self.methodstr.startswith("ftp://") or \ + self.methodstr.startswith("nfs:")) and \ + numNetDevs == 0: + fail = True + elif self.stage2 is not None: + if self.stage2.startswith("cdrom://") and \ + not os.path.isdir("/mnt/stage2/Packages") and \ + numNetDevs == 0: + fail = True + + if fail: + log.error("network install required, but no network devices available") + + return fail + + def write(self): + self.writeXdriver() + self.instLanguage.write(self.rootPath) + + self.timezone.write(self.rootPath) + self.network.write(instPath=self.rootPath, anaconda=self) + self.desktop.write(self.rootPath) + self.users.write(self.rootPath) + self.security.write(self.rootPath) + self.firewall.write(self.rootPath) + + if self.ksdata: + for svc in self.ksdata.services.disabled: + iutil.execWithRedirect("/sbin/chkconfig", + [svc, "off"], + stdout="/dev/tty5", stderr="/dev/tty5", + root=self.rootPath) + + for svc in self.ksdata.services.enabled: + iutil.execWithRedirect("/sbin/chkconfig", + [svc, "on"], + stdout="/dev/tty5", stderr="/dev/tty5", + root=self.rootPath) + + def writeKS(self, filename): + import urllib + from pykickstart.version import versionToString, DEVEL + + f = open(filename, "w") + + f.write("# Kickstart file automatically generated by anaconda.\n\n") + f.write("#version=%s\n" % versionToString(DEVEL)) + + if self.upgrade: + f.write("upgrade\n"); + else: + f.write("install\n"); + + m = None + + if self.methodstr: + m = self.methodstr + elif self.stage2: + m = self.stage2 + + if m: + if m.startswith("cdrom:"): + f.write("cdrom\n") + elif m.startswith("hd:"): + if m.count(":") == 3: + (part, fs, dir) = string.split(m[3:], ":") + else: + (part, dir) = string.split(m[3:], ":") + + f.write("harddrive --partition=%s --dir=%s\n" % (part, dir)) + elif m.startswith("nfs:"): + if m.count(":") == 3: + (server, opts, dir) = string.split(m[4:], ":") + f.write("nfs --server=%s --opts=%s --dir=%s" % (server, opts, dir)) + else: + (server, dir) = string.split(m[4:], ":") + f.write("nfs --server=%s --dir=%s\n" % (server, dir)) + elif m.startswith("ftp://") or m.startswith("http"): + f.write("url --url=%s\n" % urllib.unquote(m)) + + # Some kickstart commands do not correspond to any anaconda UI + # component. If this is a kickstart install, we need to make sure + # the information from the input file ends up in the output file. + if self.ksdata: + f.write(self.ksdata.user.__str__()) + f.write(self.ksdata.services.__str__()) + f.write(self.ksdata.reboot.__str__()) + + self.instLanguage.writeKS(f) + + if not self.isHeadless: + self.keyboard.writeKS(f) + self.network.writeKS(f) + + self.timezone.writeKS(f) + self.users.writeKS(f) + self.security.writeKS(f) + self.firewall.writeKS(f) + + self.storage.writeKS(f) + self.bootloader.writeKS(f) + + if self.backend: + self.backend.writeKS(f) + self.backend.writePackagesKS(f, self) + + # Also write out any scripts from the input ksfile. + if self.ksdata: + for s in self.ksdata.scripts: + f.write(s.__str__()) + + # make it so only root can read, could have password + os.chmod(filename, 0600) diff --git a/anaconda b/anaconda index eab90ef..64dd0f6 100755 --- a/anaconda +++ b/anaconda @@ -449,356 +449,6 @@ def startDebugger(signum, frame): import epdb epdb.serve(skip=1)
-class Anaconda(object): - def __init__(self): - import desktop, dispatch, firewall, security - import system_config_keyboard.keyboard as keyboard - from flags import flags - - self._backend = None - self._bootloader = None - self.canReIPL = False - self.desktop = desktop.Desktop() - self.dir = None - self.dispatch = dispatch.Dispatcher(self) - self.displayMode = None - self.extraModules = [] - self.firewall = firewall.Firewall() - self.id = None - self._instClass = None - self._instLanguage = None - self._intf = None - self.isHeadless = False - self.keyboard = keyboard.Keyboard() - self.ksdata = None - self.mediaDevice = None - self.methodstr = None - self._network = None - self._platform = None - self.proxy = None - self.proxyUsername = None - self.proxyPassword = None - self.reIPLMessage = None - self.rescue = False - self.rescue_mount = True - self.rootParts = None - self.rootPath = "/mnt/sysimage" - self.security = security.Security() - self.simpleFilter = True - self.stage2 = None - self._storage = None - self._timezone = None - self.updateSrc = None - self.upgrade = flags.cmdline.has_key("preupgrade") - self.upgradeRoot = None - self.upgradeSwapInfo = None - self._users = None - - # *sigh* we still need to be able to write this out - self.xdriver = None - - @property - def backend(self): - if not self._backend: - b = self.instClass.getBackend() - self._backend = apply(b, (self, )) - - return self._backend - - @property - def bootloader(self): - if not self._bootloader: - import booty - self._bootloader = booty.getBootloader(self) - - return self._bootloader - - @property - def firstboot(self): - from pykickstart.constants import FIRSTBOOT_SKIP, FIRSTBOOT_DEFAULT - - if self.ksdata: - return self.ksdata.firstboot.firstboot - elif iutil.isS390(): - return FIRSTBOOT_SKIP - else: - return FIRSTBOOT_DEFAULT - - @property - def instClass(self): - if not self._instClass: - from installclass import DefaultInstall - self._instClass = DefaultInstall() - - return self._instClass - - @property - def instLanguage(self): - if not self._instLanguage: - import language - self._instLanguage = language.Language(self.displayMode) - - return self._instLanguage - - def _getInterface(self): - return self._intf - - def _setInterface(self, v): - # "lambda cannot contain assignment" - self._intf = v - - def _delInterface(self): - del self._intf - - intf = property(_getInterface, _setInterface, _delInterface) - - @property - def network(self): - if not self._network: - import network - self._network = network.Network() - - return self._network - - @property - def platform(self): - if not self._platform: - import platform - self._platform = platform.getPlatform(self) - - return self._platform - - @property - def protected(self): - import stat - - if os.path.exists("/dev/live") and \ - stat.S_ISBLK(os.stat("/dev/live")[stat.ST_MODE]): - return [os.readlink("/dev/live")] - elif self.methodstr and self.methodstr.startswith("hd:"): - method = self.methodstr[3:] - return [method.split(":", 3)[0]] - else: - return [] - - @property - def users(self): - if not self._users: - import users - self._users = users.Users(self) - - return self._users - - @property - def storage(self): - if not self._storage: - import storage - self._storage = storage.Storage(self) - - return self._storage - - @property - def timezone(self): - if not self._timezone: - import timezone - self._timezone = timezone.Timezone() - self._timezone.setTimezoneInfo(self.instLanguage.getDefaultTimeZone(self.rootPath)) - - return self._timezone - - def dumpState(self): - from meh.dump import ReverseExceptionDump - from inspect import stack as _stack - - # Skip the frames for dumpState and the signal handler. - stack = _stack()[2:] - stack.reverse() - exn = ReverseExceptionDump((None, None, stack), self.mehConfig) - - (fd, filename) = mkstemp("", "anaconda-tb-", "/tmp") - fo = os.fdopen(fd, "w") - - exn.write(self, fo) - - def initInterface(self): - if self._intf: - raise RuntimeError, "Second attempt to initialize the InstallInterface" - - # setup links required by graphical mode if installing and verify display mode - if self.displayMode == 'g': - stdoutLog.info (_("Starting graphical installation.")) - - try: - from gui import InstallInterface - except Exception, e: - stdoutLog.error("Exception starting GUI installer: %s" %(e,)) - # if we're not going to really go into GUI mode, we need to get - # back to vc1 where the text install is going to pop up. - if not flags.livecdInstall: - isys.vtActivate (1) - stdoutLog.warning("GUI installer startup failed, falling back to text mode.") - self.displayMode = 't' - if 'DISPLAY' in os.environ.keys(): - del os.environ['DISPLAY'] - time.sleep(2) - - if self.displayMode == 't': - from text import InstallInterface - if not os.environ.has_key("LANG"): - os.environ["LANG"] = "en_US.UTF-8" - - if self.displayMode == 'c': - from cmdline import InstallInterface - - self._intf = InstallInterface() - return self._intf - - def writeXdriver(self): - # this should go away at some point, but until it does, we - # need to keep it around. - if self.xdriver is None: - return - if not os.path.isdir("%s/etc/X11" %(self.rootPath,)): - os.makedirs("%s/etc/X11" %(self.rootPath,), mode=0755) - f = open("%s/etc/X11/xorg.conf" %(self.rootPath,), 'w') - f.write('Section "Device"\n\tIdentifier "Videocard0"\n\tDriver "%s"\nEndSection\n' % self.xdriver) - f.close() - - def setMethodstr(self, methodstr): - if methodstr.startswith("cdrom://"): - (device, tree) = string.split(methodstr[8:], ":", 1) - - if not tree.startswith("/"): - tree = "/%s" %(tree,) - - if device.startswith("/dev/"): - device = device[5:] - - self.mediaDevice = device - self.methodstr = "cdrom://%s" % tree - else: - self.methodstr = methodstr - - def requiresNetworkInstall(self): - fail = False - numNetDevs = isys.getNetworkDeviceCount() - - if self.methodstr is not None: - if (self.methodstr.startswith("http") or \ - self.methodstr.startswith("ftp://") or \ - self.methodstr.startswith("nfs:")) and \ - numNetDevs == 0: - fail = True - elif self.stage2 is not None: - if self.stage2.startswith("cdrom://") and \ - not os.path.isdir("/mnt/stage2/Packages") and \ - numNetDevs == 0: - fail = True - - if fail: - log.error("network install required, but no network devices available") - - return fail - - def write(self): - self.writeXdriver() - self.instLanguage.write(self.rootPath) - - self.timezone.write(self.rootPath) - self.network.write(instPath=self.rootPath, anaconda=self) - self.desktop.write(self.rootPath) - self.users.write(self.rootPath) - self.security.write(self.rootPath) - self.firewall.write(self.rootPath) - - if self.ksdata: - for svc in self.ksdata.services.disabled: - iutil.execWithRedirect("/sbin/chkconfig", - [svc, "off"], - stdout="/dev/tty5", stderr="/dev/tty5", - root=self.rootPath) - - for svc in self.ksdata.services.enabled: - iutil.execWithRedirect("/sbin/chkconfig", - [svc, "on"], - stdout="/dev/tty5", stderr="/dev/tty5", - root=self.rootPath) - - def writeKS(self, filename): - import urllib - from pykickstart.version import versionToString, DEVEL - - f = open(filename, "w") - - f.write("# Kickstart file automatically generated by anaconda.\n\n") - f.write("#version=%s\n" % versionToString(DEVEL)) - - if self.upgrade: - f.write("upgrade\n"); - else: - f.write("install\n"); - - m = None - - if self.methodstr: - m = self.methodstr - elif self.stage2: - m = self.stage2 - - if m: - if m.startswith("cdrom:"): - f.write("cdrom\n") - elif m.startswith("hd:"): - if m.count(":") == 3: - (part, fs, dir) = string.split(m[3:], ":") - else: - (part, dir) = string.split(m[3:], ":") - - f.write("harddrive --partition=%s --dir=%s\n" % (part, dir)) - elif m.startswith("nfs:"): - if m.count(":") == 3: - (server, opts, dir) = string.split(m[4:], ":") - f.write("nfs --server=%s --opts=%s --dir=%s" % (server, opts, dir)) - else: - (server, dir) = string.split(m[4:], ":") - f.write("nfs --server=%s --dir=%s\n" % (server, dir)) - elif m.startswith("ftp://") or m.startswith("http"): - f.write("url --url=%s\n" % urllib.unquote(m)) - - # Some kickstart commands do not correspond to any anaconda UI - # component. If this is a kickstart install, we need to make sure - # the information from the input file ends up in the output file. - if self.ksdata: - f.write(self.ksdata.user.__str__()) - f.write(self.ksdata.services.__str__()) - f.write(self.ksdata.reboot.__str__()) - - self.instLanguage.writeKS(f) - - if not self.isHeadless: - self.keyboard.writeKS(f) - self.network.writeKS(f) - - self.timezone.writeKS(f) - self.users.writeKS(f) - self.security.writeKS(f) - self.firewall.writeKS(f) - - self.storage.writeKS(f) - self.bootloader.writeKS(f) - - if self.backend: - self.backend.writeKS(f) - self.backend.writePackagesKS(f, self) - - # Also write out any scripts from the input ksfile. - if self.ksdata: - for s in self.ksdata.scripts: - f.write(s.__str__()) - - # make it so only root can read, could have password - os.chmod(filename, 0600) - if __name__ == "__main__": setupPythonPath()
@@ -850,6 +500,7 @@ if __name__ == "__main__": import gettext _ = lambda x: gettext.ldgettext("anaconda", x)
+ from anaconda import Anaconda anaconda = Anaconda() warnings.showwarning = AnacondaShowWarning setupTranslations()
--- bootdisk/i386/Makefile.am | 2 +- bootdisk/ppc/Makefile.am | 2 +- bootdisk/s390x/Makefile.am | 2 +- bootdisk/sparc/Makefile.am | 2 +- bootdisk/x86_64/Makefile.am | 2 +- fonts/Makefile.am | 2 +- loader/Makefile.am | 12 +++++++----- scripts/Makefile.am | 2 +- utils/Makefile.am | 4 +++- 9 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/bootdisk/i386/Makefile.am b/bootdisk/i386/Makefile.am index 32f1188..030b8d5 100644 --- a/bootdisk/i386/Makefile.am +++ b/bootdisk/i386/Makefile.am @@ -18,7 +18,7 @@ # Author: David Cantrell dcantrell@redhat.com
if IS_I386 -bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot +bootdir = $(datadir)/$(PACKAGE_NAME)/boot dist_boot_DATA = boot.msg grub.conf syslinux.cfg endif
diff --git a/bootdisk/ppc/Makefile.am b/bootdisk/ppc/Makefile.am index f754c3b..4f6e298 100644 --- a/bootdisk/ppc/Makefile.am +++ b/bootdisk/ppc/Makefile.am @@ -18,7 +18,7 @@ # Author: David Cantrell dcantrell@redhat.com
if IS_PPC -bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot +bootdir = $(datadir)/$(PACKAGE_NAME)/boot dist_boot_DATA = magic ofboot.b yaboot.conf.in bootinfo.txt mapping \ yaboot.conf.3264 endif diff --git a/bootdisk/s390x/Makefile.am b/bootdisk/s390x/Makefile.am index 3c21560..c75ccbe 100644 --- a/bootdisk/s390x/Makefile.am +++ b/bootdisk/s390x/Makefile.am @@ -18,7 +18,7 @@ # Author: David Cantrell dcantrell@redhat.com
if IS_S390 -bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot +bootdir = $(datadir)/$(PACKAGE_NAME)/boot dist_boot_DATA = generic.ins generic.prm redhat.exec endif
diff --git a/bootdisk/sparc/Makefile.am b/bootdisk/sparc/Makefile.am index 7a833bf..4d2c3f2 100644 --- a/bootdisk/sparc/Makefile.am +++ b/bootdisk/sparc/Makefile.am @@ -18,7 +18,7 @@ # Author: Dennis Gilmore dgilmore@redhat.com
if IS_SPARC -bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot +bootdir = $(datadir)/$(PACKAGE_NAME)/boot dist_boot_DATA = boot.msg silo.conf endif
diff --git a/bootdisk/x86_64/Makefile.am b/bootdisk/x86_64/Makefile.am index 78886cd..a4012c5 100644 --- a/bootdisk/x86_64/Makefile.am +++ b/bootdisk/x86_64/Makefile.am @@ -18,7 +18,7 @@ # Author: David Cantrell dcantrell@redhat.com
if IS_X86_64 -bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/boot +bootdir = $(datadir)/$(PACKAGE_NAME)/boot dist_boot_DATA = boot.msg grub.conf syslinux.cfg endif
diff --git a/fonts/Makefile.am b/fonts/Makefile.am index 42cae2a..5ad0197 100644 --- a/fonts/Makefile.am +++ b/fonts/Makefile.am @@ -18,7 +18,7 @@ # Author: David Cantrell dcantrell@redhat.com
if IS_FONT_ARCH -fontsdir = $(libdir)/$(PACKAGE_NAME)-runtime +fontsdir = $(datadir)/$(PACKAGE_NAME) dist_fonts_DATA = screenfont-$(ARCH).gz endif
diff --git a/loader/Makefile.am b/loader/Makefile.am index a2b79d7..b54638f 100644 --- a/loader/Makefile.am +++ b/loader/Makefile.am @@ -18,22 +18,24 @@ # Author: David Cantrell dcantrell@redhat.com
bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/loader +shareddir = $(datadir)/$(PACKAGE_NAME) + boot_PROGRAMS = loader -boot_DATA = loader.tr -dist_boot_DATA = unicode-linedraw-chars.txt +shared_DATA = loader.tr +dist_shared_DATA = unicode-linedraw-chars.txt noinst_PROGRAMS = mkctype dirbrowser noinst_DATA = ctype.c noinst_HEADERS = *.h
if IS_S390 boot_PROGRAMS += shutdown -dist_boot_SCRIPTS = linuxrc.s390 +dist_shared_SCRIPTS = linuxrc.s390 else -boot_PROGRAMS += init +boot_PROGRAMS += init endif
if IS_KEYMAPS_OVERRIDE_ARCH -keymapsdir = $(libdir)/$(PACKAGE_NAME)-runtime +keymapsdir = $(datadir)/$(PACKAGE_NAME) keymaps_DATA = keymaps-override-$(ARCH) endif
diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 6d3562d..7bc04b6 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-scriptsdir = $(libdir)/$(PACKAGE_NAME)-runtime +scriptsdir = $(datadir)/$(PACKAGE_NAME) dist_scripts_SCRIPTS = upd-instroot mk-images buildinstall \ buildinstall.functions scrubtree getkeymaps \ makestamp.py maketreeinfo.py upd-updates diff --git a/utils/Makefile.am b/utils/Makefile.am index bfc8fd4..6f2b527 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -18,8 +18,10 @@ # Author: David Cantrell dcantrell@redhat.com
utilsdir = $(libdir)/$(PACKAGE_NAME)-runtime +shareddir = $(datadir)/$(PACKAGE_NAME) + utils_PROGRAMS = modlist mapshdr readmap -dist_utils_SCRIPTS = genmodinfo trimpciids +dist_shared_SCRIPTS = genmodinfo trimpciids noinst_PROGRAMS = snarffont dist_noinst_SCRIPTS = filtermoddeps
--- loader/Makefile.am | 2 +- utils/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/loader/Makefile.am b/loader/Makefile.am index b54638f..18f1fbe 100644 --- a/loader/Makefile.am +++ b/loader/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-bootdir = $(libdir)/$(PACKAGE_NAME)-runtime/loader +bootdir = $(libdir)/$(PACKAGE_NAME) shareddir = $(datadir)/$(PACKAGE_NAME)
boot_PROGRAMS = loader diff --git a/utils/Makefile.am b/utils/Makefile.am index 6f2b527..04711b2 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrell dcantrell@redhat.com
-utilsdir = $(libdir)/$(PACKAGE_NAME)-runtime +utilsdir = $(libdir)/$(PACKAGE_NAME) shareddir = $(datadir)/$(PACKAGE_NAME)
utils_PROGRAMS = modlist mapshdr readmap
--- anaconda | 2 +- loader/loader.c | 4 ++-- scripts/buildinstall | 6 +++--- scripts/getkeymaps | 10 ++++++++-- scripts/mk-images | 32 ++++++++++++++++---------------- scripts/mk-images.ppc | 2 +- scripts/mk-images.sparc | 6 +++--- scripts/mk-images.x86 | 16 ++++++++-------- scripts/upd-instroot | 28 +++++++++++++--------------- 9 files changed, 55 insertions(+), 51 deletions(-)
diff --git a/anaconda b/anaconda index 64dd0f6..ff557fe 100755 --- a/anaconda +++ b/anaconda @@ -318,7 +318,7 @@ def runVNC(): child = os.fork() if child == 0: for p in ('/tmp/updates/pyrc.py', \ - '/usr/lib/anaconda-runtime/pyrc.py'): + '/usr/share/anaconda/pyrc.py'): if os.access(p, os.R_OK|os.X_OK): os.environ['PYTHONSTARTUP'] = p break diff --git a/loader/loader.c b/loader/loader.c index d731f96..da66f36 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -389,8 +389,8 @@ static void spawnShell(void) {
if (!access("/tmp/updates/pyrc.py", R_OK|X_OK)) setenv("PYTHONSTARTUP", "/tmp/updates/pyrc.py", 1); - else if (!access("/usr/lib/anaconda-runtime/pyrc.py", R_OK|X_OK)) - setenv("PYTHONSTARTUP", "/usr/lib/anaconda-runtime/pyrc.py", 1); + else if (!access("/usr/share/anaconda/pyrc.py", R_OK|X_OK)) + setenv("PYTHONSTARTUP", "/usr/share/anaconda/pyrc.py", 1); setenv("LD_LIBRARY_PATH", LIBPATH, 1); setenv("LANG", "C", 1);
diff --git a/scripts/buildinstall b/scripts/buildinstall index 3a75d9e..e1d3443 100755 --- a/scripts/buildinstall +++ b/scripts/buildinstall @@ -213,10 +213,10 @@ else BUILDINSTALL=./buildinstall
for f in $UPD_INSTROOT $MK_IMAGES $MK_STAMP $MK_TREEINFO $BUILDINSTALL; do - if [ -n "$UPDATES" -a -f $UPDATES/usr/lib/anaconda-runtime/$f ]; then - cp -a $UPDATES/usr/lib/anaconda-runtime/$f* $BUILDINSTDIR/ + if [ -n "$UPDATES" -a -f $UPDATES/usr/share/anaconda/$f ]; then + cp -a $UPDATES/usr/share/anaconda/$f* $BUILDINSTDIR/ elif [ ! -f $f ]; then - cp -a $BUILDINSTDIR/usr/lib/anaconda-runtime/$f* $BUILDINSTDIR/ + cp -a $BUILDINSTDIR/usr/share/anaconda/$f* $BUILDINSTDIR/ else cp -a $f* $BUILDINSTDIR/ fi diff --git a/scripts/getkeymaps b/scripts/getkeymaps index 8436900..019a2a7 100755 --- a/scripts/getkeymaps +++ b/scripts/getkeymaps @@ -24,6 +24,12 @@ if [ -z "$ARCH" ]; then exit 1 fi
+if [ "$ARCH" = "x86_64" -o "$ARCH" = "s390x" -o "$ARCH" = "ppc64" ]; then + LIBDIR=lib64 +else + LIBDIR=lib +fi + TOPDIR=`pwd` OUTPUT=$2 if [ -z "$OUTPUT" ]; then @@ -36,8 +42,8 @@ if [ -z "$UTILDIR" ]; then READMAP=../utils/readmap MAPSHDR=$TOPDIR/../utils/mapshdr else - READMAP=$UTILDIR/usr/lib/anaconda-runtime/readmap - MAPSHDR=$UTILDIR/usr/lib/anaconda-runtime/mapshdr + READMAP=$UTILDIR/usr/$LIBDIR/anaconda/readmap + MAPSHDR=$UTILDIR/usr/$LIBDIR/anaconda/mapshdr fi
TMP=${TMPDIR:-/tmp}/keymaps.$$ diff --git a/scripts/mk-images b/scripts/mk-images index 50b120a..f584e9e 100755 --- a/scripts/mk-images +++ b/scripts/mk-images @@ -160,17 +160,17 @@ mkdir -p $KERNELBASE mkdir -p $INSTIMGPATH
# Stuff that we need -TRIMPCIIDS=$IMGPATH/usr/lib/anaconda-runtime/trimpciids -GETKEYMAPS=$IMGPATH/usr/lib/anaconda-runtime/getkeymaps -GENINITRDSZ=$IMGPATH/usr/lib/anaconda-runtime/geninitrdsz -MKS390CDBOOT=$IMGPATH/usr/lib/anaconda-runtime/mk-s390-cdboot -GENMODINFO=$IMGPATH/usr/lib/anaconda-runtime/genmodinfo +TRIMPCIIDS=$IMGPATH/usr/share/anaconda/trimpciids +GETKEYMAPS=$IMGPATH/usr/share/anaconda/getkeymaps +GENINITRDSZ=$IMGPATH/usr/$LIBDIR/anaconda/geninitrdsz +MKS390CDBOOT=$IMGPATH/usr/$LIBDIR/anaconda/mk-s390-cdboot +GENMODINFO=$IMGPATH/usr/share/anaconda/genmodinfo KEYMAPS=$TMPDIR/keymaps-$BUILDARCH.$$ -SCREENFONT=$IMGPATH/usr/lib/anaconda-runtime/screenfont-${BASEARCH}.gz -MODLIST=$IMGPATH/usr/lib/anaconda-runtime/modlist +SCREENFONT=$IMGPATH/usr/share/anaconda/screenfont-${BASEARCH}.gz +MODLIST=$IMGPATH/usr/$LIBDIR/anaconda/modlist MODINFO=$TMPDIR/modinfo-$BUILDARCH.$$ -LOADERBINDIR=$IMGPATH/usr/lib/anaconda-runtime/loader -BOOTDISKDIR=$IMGPATH/usr/lib/anaconda-runtime/boot +LOADERBINDIR=$IMGPATH/usr/$LIBDIR/anaconda +BOOTDISKDIR=$IMGPATH/usr/share/anaconda/boot LANGTABLE=$IMGPATH/usr/share/anaconda/lang-table PCIIDS=$IMGPATH/usr/share/hwdata/pci.ids XDRIVERS=$IMGPATH/usr/share/hwdata/videoaliases @@ -198,9 +198,9 @@ if [ -n "$dieLater" ]; then exit 1; fi
if [ "$BUILDARCH" != "s390" -a "$BUILDARCH" != "s390x" ]; then # go ahead and create the keymaps so we only have to do it once - if [ -f $IMGPATH/usr/lib/anaconda-runtime/keymaps-override-$BASEARCH ]; then + if [ -f $IMGPATH/usr/share/anaconda/keymaps-override-$BASEARCH ]; then echo "Found keymap override, using it" - cp $IMGPATH/usr/lib/anaconda-runtime/keymaps-override-$BASEARCH $KEYMAPS + cp $IMGPATH/usr/share/anaconda/keymaps-override-$BASEARCH $KEYMAPS else echo "Running: $GETKEYMAPS $BUILDARCH $KEYMAPS $IMGPATH" $GETKEYMAPS $BUILDARCH $KEYMAPS $IMGPATH @@ -658,7 +658,7 @@ makeinitrd() { ln -s ./init $MBD_DIR/sbin/poweroff else instbin $IMGPATH ${LOADERBINDIR##$IMGPATH}/shutdown $MBD_DIR /sbin/shutdown - instbin $IMGPATH /usr/lib/anaconda-runtime/loader/linuxrc.s390 $MBD_DIR /sbin/init + instbin $IMGPATH /usr/share/anaconda/linuxrc.s390 $MBD_DIR /sbin/init instbin $IMGPATH /usr/sbin/dasdfmt $MBD_DIR /sbin/dasdfmt cp -a $IMGPATH/usr/sbin/*_cio_free $MBD_DIR/sbin fi @@ -876,7 +876,7 @@ EOF done rm -f $MBD_DIR/lib/udev/rules.d/*generator*
- install -m 644 $LOADERBINDIR/$MYLOADERTR $MBD_DIR/etc/loader.tr + install -m 644 $IMGPATH/usr/share/anaconda/$MYLOADERTR $MBD_DIR/etc/loader.tr for i in a/ansi d/dumb l/linux s/screen v/vt100 v/vt100-nav v/vt102 x/xterm x/xterm-color g/gnome ; do [ -f $IMGPATH/usr/share/terminfo/$i ] && \ install -m 644 $IMGPATH/usr/share/terminfo/$i $MBD_DIR/etc/terminfo/$i @@ -968,8 +968,8 @@ makemainimage () {
if [ $type = "ext2" ]; then SIZE=$(du -sk $IMGPATH | awk '{ print int($1 * 1.1) }') - if [ -d $IMGPATH/usr/lib/anaconda-runtime ]; then - ERROR=$(du -sk $IMGPATH/usr/lib/anaconda-runtime | awk '{ print $1 }') + if [ -d $IMGPATH/usr/share/anaconda]; then + ERROR=$(du -sk $IMGPATH/usr/share/anaconda | awk '{ print $1 }') SIZE=$(expr $SIZE - $ERROR) fi if [ -d $IMGPATH/usr/share/syslinux ]; then @@ -982,7 +982,7 @@ makemainimage () { mount -o loop $mmi_tmpimage $mmi_mntpoint
(cd $IMGPATH; find . | - fgrep -v "./usr/lib/anaconda-runtime" | + fgrep -v "./usr/share/anaconda" | fgrep -v "./usr/share/syslinux" cpio -H crc -o) | (cd $mmi_mntpoint; cpio -iumd) makeproductfile $mmi_mntpoint diff --git a/scripts/mk-images.ppc b/scripts/mk-images.ppc index 47af389..21de9e3 100644 --- a/scripts/mk-images.ppc +++ b/scripts/mk-images.ppc @@ -120,7 +120,7 @@ doPostImages() { # Create ofboot.b and bootinfo.txt files, and yaboot binaries for Mac and CHRP cp $BOOTDISKDIR/bootinfo.txt $TOPDESTPATH/ppc/bootinfo.txt - cp $IMGPATH/usr/lib/anaconda-runtime/boot/efika.forth $TOPDESTPATH/ppc/efika.forth + cp $IMGPATH/usr/share/anaconda/boot/efika.forth $TOPDESTPATH/ppc/efika.forth
if [ -d $TOPDESTPATH/ppc/mac ]; then cp $BOOTDISKDIR/ofboot.b $TOPDESTPATH/ppc/mac/ofboot.b diff --git a/scripts/mk-images.sparc b/scripts/mk-images.sparc index f8fb3b6..e3d7714 100644 --- a/scripts/mk-images.sparc +++ b/scripts/mk-images.sparc @@ -133,12 +133,12 @@ makeBootImages() { --loaderbin loader \ --modules "$TFTPINITRDMODS $SPARCMODS" [ $? = 0 ] || exit 1 - if [ -f $IMGPATH/usr/lib/anaconda-runtime/boot/second.b ]; then + if [ -f $IMGPATH/usr/share/anaconda/boot/second.b ]; then echo "Building boot dir for silo" MBD_BOOTTREE=$TOPDESTPATH/boot MBD_FSIMAGE=$TOPDESTPATH/images/initrd.img mkdir $MBD_BOOTTREE - cp $IMGPATH/usr/lib/anaconda-runtime/boot/*.b $MBD_BOOTTREE/ + cp $IMGPATH/usr/share/anaconda/boot/*.b $MBD_BOOTTREE/ prepareBootTree
@@ -149,7 +149,7 @@ makeBootImages() { echo "Deleting $TOPDESTPATH/images/tftpinitrd.img , we only want this for the tftp image creation" # rm -rf $TOPDESTPATH/images/tftpinitrd.img else - echo "I can't find SILO in $IMGPATH/usr/lib/anaconda-runtime/boot ?!?" + echo "I can't find SILO in $IMGPATH/usr/share/anaconda/boot ?!?" exit 1 fi
diff --git a/scripts/mk-images.x86 b/scripts/mk-images.x86 index 7495ad4..2137119 100644 --- a/scripts/mk-images.x86 +++ b/scripts/mk-images.x86 @@ -37,20 +37,20 @@ prepareBootTree() { ln $MBD_FSIMAGE $MBD_BOOTTREE/initrd.img cp $KERNELROOT/boot/vmlinuz-* $MBD_BOOTTREE/vmlinuz
- if [ -f $IMGPATH/usr/lib/anaconda-runtime/syslinux-vesa-splash.jpg ]; then - cp $IMGPATH/usr/lib/anaconda-runtime/syslinux-vesa-splash.jpg $MBD_BOOTTREE/splash.jpg + if [ -f $IMGPATH/usr/share/anaconda/syslinux-vesa-splash.jpg ]; then + cp $IMGPATH/usr/share/anaconda/syslinux-vesa-splash.jpg $MBD_BOOTTREE/splash.jpg cp $IMGPATH/usr/share/syslinux/vesamenu.c32 $MBD_BOOTTREE/vesamenu.c32 sed -i s'/default linux/default vesamenu.c32/g' $MBD_BOOTTREE/syslinux.cfg sed -i 's/prompt 1/#prompt 1/g' $MBD_BOOTTREE/syslinux.cfg - elif [ -x $IMGPATH/usr/lib/anaconda-runtime/splashtolss.sh ]; then - $IMGPATH/usr/lib/anaconda-runtime/splashtolss.sh $BOOTDISKDIR/syslinux-splash.png $BOOTDISKDIR/splash.lss + elif [ -x $IMGPATH/usr/share/anaconda/splashtolss.sh ]; then + $IMGPATH/usr/share/anaconda/splashtolss.sh $BOOTDISKDIR/syslinux-splash.png $BOOTDISKDIR/splash.lss if [ $? != 0 ]; then echo $0: Failed to create splash.lss exit 1 fi cp $BOOTDISKDIR/splash.lss $MBD_BOOTTREE/splash.lss - elif [ -f $IMGPATH/usr/lib/anaconda-runtime/splash.lss ]; then - cp $IMGPATH/usr/lib/anaconda-runtime/splash.lss $MBD_BOOTTREE/splash.lss + elif [ -f $IMGPATH/usr/share/anaconda/splash.lss ]; then + cp $IMGPATH/usr/share/anaconda/splash.lss $MBD_BOOTTREE/splash.lss fi
rm -f $MBD_BOOTTREE/syslinux-splash.png @@ -119,8 +119,8 @@ makeBootImages() { sed -i "s/initrd=initrd.img/initrd=initrd.img stage2=hd:LABEL="$CDLABEL"/" $MBD_BOOTTREE/isolinux.cfg
# copy in memtest if present - if [ -f $IMGPATH/usr/lib/anaconda-runtime/boot/memtest* ]; then - cp $IMGPATH/usr/lib/anaconda-runtime/boot/memtest* $MBD_BOOTTREE/memtest + if [ -f $IMGPATH/usr/share/anaconda/boot/memtest* ]; then + cp $IMGPATH/usr/share/anaconda/boot/memtest* $MBD_BOOTTREE/memtest echo -e "label memtest86\n menu label ^Memory test\n kernel memtest\n append -\n" >> $MBD_BOOTTREE/isolinux.cfg fi else diff --git a/scripts/upd-instroot b/scripts/upd-instroot index bebee1c..817996e 100755 --- a/scripts/upd-instroot +++ b/scripts/upd-instroot @@ -570,8 +570,7 @@ usr/bin/vncpasswd usr/bin/wget usr/bin/xkbcomp usr/bin/zenity -usr/lib/anaconda -usr/lib/anaconda-runtime +usr/$LIBDIR/anaconda usr/lib/kernel-wrapper usr/lib/locale usr/lib/python?.? @@ -1030,8 +1029,7 @@ cp $DEST/usr/lib/anaconda/list-harddrives-stub $DEST/usr/bin/list-harddrives cp $DEST/usr/lib/anaconda/loadkeys-stub $DEST/usr/bin/loadkeys cp $DEST/usr/lib/anaconda/mknod-stub $DEST/usr/bin/mknod mv $DEST/usr/sbin/anaconda $DEST/usr/bin/anaconda -mv $DEST/usr/lib/anaconda-runtime/lib* $DEST/usr/$LIBDIR 2>/dev/null -mv $DEST/usr/lib/anaconda/sitecustomize.py $DEST/usr/$LIBDIR/python?.?/site-packages +mv $DEST/usr/$LIBDIR/python?.?/site-packages/anaconda/sitecustomize.py $DEST/usr/$LIBDIR/python?.?/site-packages
mv $DEST/etc/yum.repos.d $DEST/etc/anaconda.repos.d
@@ -1071,33 +1069,33 @@ done
# copy bootloader files for sparc if [ $ARCH = sparc -o $ARCH = sparcv9 -o $ARCH = sparc64 ]; then - mkdir -p $DEST/usr/lib/anaconda-runtime/boot + mkdir -p $DEST/usr/share/anaconda/boot [ -d $DEST/boot ] || die "ERROR: directory missing: $DEST/boot" - (cd $DEST/boot; find -name "*.b") | (cd $DEST/boot; /bin/cpio --quiet -pdmu $DEST/usr/lib/anaconda-runtime/boot) + (cd $DEST/boot; find -name "*.b") | (cd $DEST/boot; /bin/cpio --quiet -pdmu $DEST/usr/share/anaconda/boot) fi
# copy bootloader file for ppc if [ $ARCH = ppc -o $ARCH = ppc64 ]; then - mkdir -p $DEST/usr/lib/anaconda-runtime/boot - cp -af $DEST/boot/efika.forth $DEST/usr/lib/anaconda-runtime/boot + mkdir -p $DEST/usr/share/anaconda/boot + cp -af $DEST/boot/efika.forth $DEST/usr/share/anaconda/boot fi
# copy bootloader file for alpha if [ $ARCH = alpha ]; then - mkdir -p $DEST/usr/lib/anaconda-runtime/boot - cp -af $DEST/boot/bootlx $DEST/usr/lib/anaconda-runtime/boot + mkdir -p $DEST/usr/share/anaconda/boot + cp -af $DEST/boot/bootlx $DEST/usr/share/anaconda/boot fi
# copy bootloader files for ia64 if [ $ARCH = ia64 ]; then - mkdir -p $DEST/usr/lib/anaconda-runtime/boot - cp -af $DEST/boot/efi/EFI/redhat//* $DEST/usr/lib/anaconda-runtime/boot + mkdir -p $DEST/usr/share/anaconda/boot + cp -af $DEST/boot/efi/EFI/redhat//* $DEST/usr/share/anaconda/boot fi
# copy bootloader files for i386/x86_64 if [ $ARCH = i386 -o $ARCH = i586 -o $ARCH = x86_64 ]; then - mkdir -p $DEST/usr/lib/anaconda-runtime/boot - cp -af $DEST/boot/memtest* $DEST/usr/lib/anaconda-runtime/boot + mkdir -p $DEST/usr/share/anaconda/boot + cp -af $DEST/boot/memtest* $DEST/usr/share/anaconda/boot fi
rm -rf $DEST/boot $DEST/home $DEST/root $DEST/tmp @@ -1110,7 +1108,7 @@ for d in idle distutils bsddb lib-old hotshot doctest.py pydoc.py site-packages/ rm -rf $DEST/$d done
-$DEST/usr/lib/anaconda-runtime/scrubtree $DEST +$DEST/usr/share/anaconda/scrubtree $DEST
echo "Creating debug dir" mkdir -p $DEST/usr/lib/debug
This is required to allow updates images to continue working in a world where anaconda is its own python module. Since anaconda's just like any other module now, updating part of it will require making an anaconda/ directory in the updates image. However, this means you can't also update the anaconda binary at the same time because of the name collision. --- Makefile.am | 2 +- anaconda => anaconda-bin | 0 anaconda.spec.in | 2 +- liveinst/liveinst | 2 +- loader/loader.c | 2 +- po/POTFILES.in | 2 +- scripts/upd-instroot | 4 ++-- 7 files changed, 7 insertions(+), 7 deletions(-) rename anaconda => anaconda-bin (100%)
diff --git a/Makefile.am b/Makefile.am index 94a1297..eff1aa6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,7 +37,7 @@ MOSTLYCLEANDIRS = m4
dist_noinst_DATA = $(PACKAGE_NAME).spec
-dist_sbin_SCRIPTS = anaconda +dist_sbin_SCRIPTS = anaconda-bin
udevdir = /lib/udev/rules.d dist_udev_DATA = 70-anaconda.rules diff --git a/anaconda b/anaconda-bin similarity index 100% rename from anaconda rename to anaconda-bin diff --git a/anaconda.spec.in b/anaconda.spec.in index b48ebf7..f1c792c 100644 --- a/anaconda.spec.in +++ b/anaconda.spec.in @@ -201,7 +201,7 @@ update-desktop-database &> /dev/null || : %doc docs/mediacheck.txt %doc docs/anaconda-release-notes.txt /lib/udev/rules.d/70-anaconda.rules -%{_sbindir}/anaconda +%{_sbindir}/anaconda-bin %ifarch i386 i486 i586 i686 x86_64 %{_sbindir}/gptsync %{_sbindir}/showpart diff --git a/liveinst/liveinst b/liveinst/liveinst index 51eae2f..a97e543 100755 --- a/liveinst/liveinst +++ b/liveinst/liveinst @@ -45,7 +45,7 @@ if [ -n "$DISPLAY" -a -n "$LANG" ]; then fi
# eventually, we might want to allow a more "normal" install path -ANACONDA="/usr/sbin/anaconda --liveinst --method=livecd://$LIVE_BLOCK $INSTLANG" +ANACONDA="/usr/sbin/anaconda-bin --liveinst --method=livecd://$LIVE_BLOCK $INSTLANG"
if [ -x /usr/sbin/setenforce -a -e /selinux/enforce ]; then current=$(cat /selinux/enforce) diff --git a/loader/loader.c b/loader/loader.c index da66f36..4343626 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -2181,7 +2181,7 @@ int main(int argc, char ** argv) {
c = path[n]; path[n] = '\0'; - checked_asprintf(&binpath, "%s/anaconda", path); + checked_asprintf(&binpath, "%s/anaconda-bin", path); path[n] = c;
if (!access(binpath, X_OK)) { diff --git a/po/POTFILES.in b/po/POTFILES.in index 0952592..057cb8f 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -2,7 +2,7 @@ # Copyright (C) 2009 Red Hat, Inc.
# Main anaconda source files -anaconda +anaconda-bin backend.py bootloader.py cmdline.py diff --git a/scripts/upd-instroot b/scripts/upd-instroot index 817996e..607165d 100755 --- a/scripts/upd-instroot +++ b/scripts/upd-instroot @@ -591,7 +591,7 @@ usr/libexec/nm-dispatcher.action usr/libexec/polkit* usr/sbin/NetworkManager usr/sbin/addRamDisk -usr/sbin/anaconda +usr/sbin/anaconda-bin usr/sbin/chroot usr/sbin/dcbtool usr/sbin/ddcprobe @@ -1028,7 +1028,7 @@ cp $DEST/usr/lib/anaconda/losetup-stub $DEST/usr/bin/losetup cp $DEST/usr/lib/anaconda/list-harddrives-stub $DEST/usr/bin/list-harddrives cp $DEST/usr/lib/anaconda/loadkeys-stub $DEST/usr/bin/loadkeys cp $DEST/usr/lib/anaconda/mknod-stub $DEST/usr/bin/mknod -mv $DEST/usr/sbin/anaconda $DEST/usr/bin/anaconda +mv $DEST/usr/sbin/anaconda-bin $DEST/usr/bin/anaconda-bin mv $DEST/usr/$LIBDIR/python?.?/site-packages/anaconda/sitecustomize.py $DEST/usr/$LIBDIR/python?.?/site-packages
mv $DEST/etc/yum.repos.d $DEST/etc/anaconda.repos.d
This matters now that we're a proper module. --- installclass.py | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/installclass.py b/installclass.py index 26ce5ca..146b118 100644 --- a/installclass.py +++ b/installclass.py @@ -330,5 +330,4 @@ baseclass = getBaseInstallClass() # we need to be able to differentiate between this and custom class DefaultInstall(baseclass): def __init__(self): - BaseInstallClass.__init__(self) - + baseclass.__init__(self)
The external storage testing work is using kickstart to specify what partitions to set up. In order for kickstart to work correctly, all this code would need to be duplicated in every test case. It's also pretty annoying that it's a part of __main__ instead of storageInitialize. Therefore, move it. --- anaconda-bin | 13 ------------- storage/__init__.py | 12 ++++++++++++ 2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/anaconda-bin b/anaconda-bin index ff557fe..a064679 100755 --- a/anaconda-bin +++ b/anaconda-bin @@ -856,19 +856,6 @@ if __name__ == "__main__":
if anaconda.ksdata: import storage - - # Before we set up the storage system, we need to know which disks to - # ignore, etc. Luckily that's all in the kickstart data. - anaconda.storage.zeroMbr = anaconda.ksdata.zerombr.zerombr - anaconda.storage.ignoredDisks = anaconda.ksdata.ignoredisk.ignoredisk - anaconda.storage.exclusiveDisks = anaconda.ksdata.ignoredisk.onlyuse - - if anaconda.ksdata.clearpart.type is not None: - anaconda.storage.clearPartType = anaconda.ksdata.clearpart.type - anaconda.storage.clearPartDisks = anaconda.ksdata.clearpart.drives - if anaconda.ksdata.clearpart.initAll: - anaconda.storage.reinitializeDisks = anaconda.ksdata.clearpart.initAll - storage.storageInitialize(anaconda)
# Now having initialized storage, we can apply all the other kickstart diff --git a/storage/__init__.py b/storage/__init__.py index 8470201..ebbf9ed 100644 --- a/storage/__init__.py +++ b/storage/__init__.py @@ -80,6 +80,18 @@ def storageInitialize(anaconda): # populate the udev db udev_trigger(subsystem="block", action="change")
+ # Before we set up the storage system, we need to know which disks to + # ignore, etc. Luckily that's all in the kickstart data. + if anaconda.ksdata: + anaconda.storage.zeroMbr = anaconda.ksdata.zerombr.zerombr + anaconda.storage.ignoredDisks = anaconda.ksdata.ignoredisk.ignoredisk + anaconda.storage.exclusiveDisks = anaconda.ksdata.ignoredisk.onlyuse + + if anaconda.ksdata.clearpart.type is not None: + anaconda.storage.clearPartType = anaconda.ksdata.clearpart.type + anaconda.storage.clearPartDisks = anaconda.ksdata.clearpart.drives + if anaconda.ksdata.clearpart.initAll: + anaconda.storage.reinitializeDisks = anaconda.ksdata.clearpart.initAll
anaconda.intf.resetInitializeDiskQuestion() anaconda.intf.resetReinitInconsistentLVMQuestion()
I've looked over the entire patch set and it looks good to me, ack.
On 03/31/2010 08:43 PM, Chris Lumens wrote:
You know, like anaconda's any other python module.
Makefile.am | 7 ++----- anaconda.spec.in | 5 ++--- booty/Makefile.am | 2 +- installclasses/Makefile.am | 2 +- isys/Makefile.am | 5 +---- iw/Makefile.am | 2 +- storage/Makefile.am | 2 +- storage/devicelibs/Makefile.am | 2 +- storage/formats/Makefile.am | 2 +- textw/Makefile.am | 2 +- 10 files changed, 12 insertions(+), 19 deletions(-)
diff --git a/Makefile.am b/Makefile.am index 5a1622a..94a1297 100644 --- a/Makefile.am +++ b/Makefile.am @@ -42,13 +42,10 @@ dist_sbin_SCRIPTS = anaconda udevdir = /lib/udev/rules.d dist_udev_DATA = 70-anaconda.rules
-langdir = $(libdir)/$(PACKAGE_NAME) +langdir = $(datadir)/$(PACKAGE_NAME) lang_DATA = lang-names dist_lang_DATA = lang-table
-pkgpyexecdir = $(libdir)/$(PACKAGE_NAME) -pkgpythondir = $(libdir)/$(PACKAGE_NAME)
- pkgpyexec_LTLIBRARIES = xutils.la xutils_la_CFLAGS = $(PYTHON_INCLUDES) $(GDK_CFLAGS) -fno-strict-aliasing xutils_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS) $(GDK_LDFLAGS)
@@ -56,7 +53,7 @@ xutils_la_LIBADD = $(PYTHON_LIBS) $(GDK_LIBS) xutils_la_SOURCES = xutils.c
# anaconda Python code -anacondadir = $(libdir)/$(PACKAGE_NAME) +anacondadir = $(pkgpyexecdir) anaconda_PYTHON = *.py
PYCHECKERPATH = isys:textw:iw:installclasses:/usr/share/system-config-date diff --git a/anaconda.spec.in b/anaconda.spec.in index a52292c..b48ebf7 100644 --- a/anaconda.spec.in +++ b/anaconda.spec.in @@ -1,5 +1,4 @@ %define livearches %{ix86} x86_64 ppc ppc64 -%define _libdir %{_prefix}/lib
Summary: Graphical system installer Name: anaconda @@ -208,9 +207,9 @@ update-desktop-database&> /dev/null || : %{_sbindir}/showpart %endif %{_datadir}/anaconda -%{_prefix}/lib/anaconda -%{_prefix}/lib/anaconda-runtime %{_prefix}/libexec/anaconda +%{_libdir}/python*/site-packages/anaconda/* +%{_libdir}/anaconda* %ifarch %livearches %{_bindir}/liveinst %{_sbindir}/liveinst diff --git a/booty/Makefile.am b/booty/Makefile.am index 7cfc29f..ee7d11f 100644 --- a/booty/Makefile.am +++ b/booty/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrelldcantrell@redhat.com
-bootydir = $(libdir)/$(PACKAGE_NAME)/booty +bootydir = $(pkgpyexecdir)/booty booty_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/installclasses/Makefile.am b/installclasses/Makefile.am index 0b8ddd2..e45bcc5 100644 --- a/installclasses/Makefile.am +++ b/installclasses/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrelldcantrell@redhat.com
-installclassesdir = $(libdir)/$(PACKAGE_NAME)/installclasses +installclassesdir = $(pkgpyexecdir)/installclasses installclasses_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/isys/Makefile.am b/isys/Makefile.am index f40a884..2600104 100644 --- a/isys/Makefile.am +++ b/isys/Makefile.am @@ -30,12 +30,9 @@ ISYS_LIBS = $(RESOLV_LIBS) $(EXT2FS_LIBS) $(ZLIB_LIBS) \ $(DEVMAPPER_LIBS) $(BLKID_LIBS) $(X11_LIBS) $(SELINUX_LIBS) \ $(LIBNL_LIBS) $(LIBNM_GLIB_LIBS)
-isysdir = $(libdir)/$(PACKAGE_NAME) +isysdir = $(pkgpyexecdir) isys_PYTHON = *.py
-pkgpyexecdir = $(libdir)/$(PACKAGE_NAME) -pkgpythondir = $(libdir)/$(PACKAGE_NAME)
- pkgpyexec_LTLIBRARIES = _isys.la _isys_la_CFLAGS = $(PYTHON_INCLUDES) $(ISYS_CFLAGS) _isys_la_LDFLAGS = -module -avoid-version $(PYTHON_LDFLAGS)
diff --git a/iw/Makefile.am b/iw/Makefile.am index db5938b..0ab4890 100644 --- a/iw/Makefile.am +++ b/iw/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrelldcantrell@redhat.com
-iwdir = $(libdir)/$(PACKAGE_NAME)/iw +iwdir = $(pkgpyexecdir)/iw iw_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/storage/Makefile.am b/storage/Makefile.am index 18b418c..8e2c6fc 100644 --- a/storage/Makefile.am +++ b/storage/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrelldcantrell@redhat.com
-storagedir = $(libdir)/$(PACKAGE_NAME)/storage +storagedir = $(pkgpyexecdir)/storage storage_PYTHON = *.py
SUBDIRS = devicelibs formats diff --git a/storage/devicelibs/Makefile.am b/storage/devicelibs/Makefile.am index 90076bf..a1e3c88 100644 --- a/storage/devicelibs/Makefile.am +++ b/storage/devicelibs/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrelldcantrell@redhat.com
-storagedevicelibsdir = $(libdir)/$(PACKAGE_NAME)/storage/devicelibs +storagedevicelibsdir = $(pkgpyexecdir)/storage/devicelibs storagedevicelibs_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/storage/formats/Makefile.am b/storage/formats/Makefile.am index 5af707d..b24eaa1 100644 --- a/storage/formats/Makefile.am +++ b/storage/formats/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrelldcantrell@redhat.com
-storageformatsdir = $(libdir)/$(PACKAGE_NAME)/storage/formats +storageformatsdir = $(pkgpyexecdir)/storage/formats storageformats_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in diff --git a/textw/Makefile.am b/textw/Makefile.am index fcc423c..b1c320d 100644 --- a/textw/Makefile.am +++ b/textw/Makefile.am @@ -17,7 +17,7 @@ # # Author: David Cantrelldcantrell@redhat.com
-textwdir = $(libdir)/$(PACKAGE_NAME)/textw +textwdir = $(pkgpyexecdir)/textw textw_PYTHON = *.py
MAINTAINERCLEANFILES = Makefile.in
As promised, rpm -qlp on the new anaconda package:
/etc/X11/xinit/xinitrc.d/zz-liveinst.sh /etc/pam.d/liveinst /etc/security/console.apps/liveinst /lib/udev/rules.d/70-anaconda.rules /usr/bin/liveinst /usr/lib64/anaconda /usr/lib64/anaconda/init /usr/lib64/anaconda/list-harddrives-stub /usr/lib64/anaconda/loader /usr/lib64/anaconda/loadkeys-stub /usr/lib64/anaconda/losetup-stub /usr/lib64/anaconda/mapshdr /usr/lib64/anaconda/mknod-stub /usr/lib64/anaconda/modlist /usr/lib64/anaconda/raidstart-stub /usr/lib64/anaconda/raidstop-stub /usr/lib64/anaconda/readmap /usr/lib64/python2.6/site-packages/anaconda/__init__.py /usr/lib64/python2.6/site-packages/anaconda/__init__.pyc /usr/lib64/python2.6/site-packages/anaconda/__init__.pyo /usr/lib64/python2.6/site-packages/anaconda/_isys.so /usr/lib64/python2.6/site-packages/anaconda/anaconda_log.py /usr/lib64/python2.6/site-packages/anaconda/anaconda_log.pyc /usr/lib64/python2.6/site-packages/anaconda/anaconda_log.pyo /usr/lib64/python2.6/site-packages/anaconda/backend.py /usr/lib64/python2.6/site-packages/anaconda/backend.pyc /usr/lib64/python2.6/site-packages/anaconda/backend.pyo /usr/lib64/python2.6/site-packages/anaconda/backend_log.py /usr/lib64/python2.6/site-packages/anaconda/backend_log.pyc /usr/lib64/python2.6/site-packages/anaconda/backend_log.pyo /usr/lib64/python2.6/site-packages/anaconda/baseudev.py /usr/lib64/python2.6/site-packages/anaconda/baseudev.pyc /usr/lib64/python2.6/site-packages/anaconda/baseudev.pyo /usr/lib64/python2.6/site-packages/anaconda/bootloader.py /usr/lib64/python2.6/site-packages/anaconda/bootloader.pyc /usr/lib64/python2.6/site-packages/anaconda/bootloader.pyo /usr/lib64/python2.6/site-packages/anaconda/booty /usr/lib64/python2.6/site-packages/anaconda/booty/__init__.py /usr/lib64/python2.6/site-packages/anaconda/booty/__init__.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/__init__.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/alpha.py /usr/lib64/python2.6/site-packages/anaconda/booty/alpha.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/alpha.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/bootloaderInfo.py /usr/lib64/python2.6/site-packages/anaconda/booty/bootloaderInfo.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/bootloaderInfo.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/checkbootloader.py /usr/lib64/python2.6/site-packages/anaconda/booty/checkbootloader.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/checkbootloader.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/ia64.py /usr/lib64/python2.6/site-packages/anaconda/booty/ia64.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/ia64.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/lilo.py /usr/lib64/python2.6/site-packages/anaconda/booty/lilo.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/lilo.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/ppc.py /usr/lib64/python2.6/site-packages/anaconda/booty/ppc.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/ppc.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/s390.py /usr/lib64/python2.6/site-packages/anaconda/booty/s390.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/s390.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/sparc.py /usr/lib64/python2.6/site-packages/anaconda/booty/sparc.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/sparc.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/util.py /usr/lib64/python2.6/site-packages/anaconda/booty/util.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/util.pyo /usr/lib64/python2.6/site-packages/anaconda/booty/x86.py /usr/lib64/python2.6/site-packages/anaconda/booty/x86.pyc /usr/lib64/python2.6/site-packages/anaconda/booty/x86.pyo /usr/lib64/python2.6/site-packages/anaconda/cmdline.py /usr/lib64/python2.6/site-packages/anaconda/cmdline.pyc /usr/lib64/python2.6/site-packages/anaconda/cmdline.pyo /usr/lib64/python2.6/site-packages/anaconda/compssort.py /usr/lib64/python2.6/site-packages/anaconda/compssort.pyc /usr/lib64/python2.6/site-packages/anaconda/compssort.pyo /usr/lib64/python2.6/site-packages/anaconda/constants.py /usr/lib64/python2.6/site-packages/anaconda/constants.pyc /usr/lib64/python2.6/site-packages/anaconda/constants.pyo /usr/lib64/python2.6/site-packages/anaconda/desktop.py /usr/lib64/python2.6/site-packages/anaconda/desktop.pyc /usr/lib64/python2.6/site-packages/anaconda/desktop.pyo /usr/lib64/python2.6/site-packages/anaconda/dispatch.py /usr/lib64/python2.6/site-packages/anaconda/dispatch.pyc /usr/lib64/python2.6/site-packages/anaconda/dispatch.pyo /usr/lib64/python2.6/site-packages/anaconda/errors.py /usr/lib64/python2.6/site-packages/anaconda/errors.pyc /usr/lib64/python2.6/site-packages/anaconda/errors.pyo /usr/lib64/python2.6/site-packages/anaconda/exception.py /usr/lib64/python2.6/site-packages/anaconda/exception.pyc /usr/lib64/python2.6/site-packages/anaconda/exception.pyo /usr/lib64/python2.6/site-packages/anaconda/firewall.py /usr/lib64/python2.6/site-packages/anaconda/firewall.pyc /usr/lib64/python2.6/site-packages/anaconda/firewall.pyo /usr/lib64/python2.6/site-packages/anaconda/flags.py /usr/lib64/python2.6/site-packages/anaconda/flags.pyc /usr/lib64/python2.6/site-packages/anaconda/flags.pyo /usr/lib64/python2.6/site-packages/anaconda/gui.py /usr/lib64/python2.6/site-packages/anaconda/gui.pyc /usr/lib64/python2.6/site-packages/anaconda/gui.pyo /usr/lib64/python2.6/site-packages/anaconda/image.py /usr/lib64/python2.6/site-packages/anaconda/image.pyc /usr/lib64/python2.6/site-packages/anaconda/image.pyo /usr/lib64/python2.6/site-packages/anaconda/installclass.py /usr/lib64/python2.6/site-packages/anaconda/installclass.pyc /usr/lib64/python2.6/site-packages/anaconda/installclass.pyo /usr/lib64/python2.6/site-packages/anaconda/installclasses /usr/lib64/python2.6/site-packages/anaconda/installclasses/fedora.py /usr/lib64/python2.6/site-packages/anaconda/installclasses/fedora.pyc /usr/lib64/python2.6/site-packages/anaconda/installclasses/fedora.pyo /usr/lib64/python2.6/site-packages/anaconda/installclasses/rhel.py /usr/lib64/python2.6/site-packages/anaconda/installclasses/rhel.pyc /usr/lib64/python2.6/site-packages/anaconda/installclasses/rhel.pyo /usr/lib64/python2.6/site-packages/anaconda/installinterfacebase.py /usr/lib64/python2.6/site-packages/anaconda/installinterfacebase.pyc /usr/lib64/python2.6/site-packages/anaconda/installinterfacebase.pyo /usr/lib64/python2.6/site-packages/anaconda/installmethod.py /usr/lib64/python2.6/site-packages/anaconda/installmethod.pyc /usr/lib64/python2.6/site-packages/anaconda/installmethod.pyo /usr/lib64/python2.6/site-packages/anaconda/isys.py /usr/lib64/python2.6/site-packages/anaconda/isys.pyc /usr/lib64/python2.6/site-packages/anaconda/isys.pyo /usr/lib64/python2.6/site-packages/anaconda/iutil.py /usr/lib64/python2.6/site-packages/anaconda/iutil.pyc /usr/lib64/python2.6/site-packages/anaconda/iutil.pyo /usr/lib64/python2.6/site-packages/anaconda/iw /usr/lib64/python2.6/site-packages/anaconda/iw/DeviceSelector.py /usr/lib64/python2.6/site-packages/anaconda/iw/DeviceSelector.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/DeviceSelector.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/GroupSelector.py /usr/lib64/python2.6/site-packages/anaconda/iw/GroupSelector.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/GroupSelector.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/account_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/account_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/account_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/advanced_storage.py /usr/lib64/python2.6/site-packages/anaconda/iw/advanced_storage.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/advanced_storage.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/autopart_type.py /usr/lib64/python2.6/site-packages/anaconda/iw/autopart_type.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/autopart_type.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/blpasswidget.py /usr/lib64/python2.6/site-packages/anaconda/iw/blpasswidget.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/blpasswidget.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/bootloader_main_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/bootloader_main_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/bootloader_main_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/checklist.py /usr/lib64/python2.6/site-packages/anaconda/iw/checklist.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/checklist.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/cleardisks_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/cleardisks_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/cleardisks_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/congrats_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/congrats_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/congrats_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/datacombo.py /usr/lib64/python2.6/site-packages/anaconda/iw/datacombo.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/datacombo.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/examine_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/examine_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/examine_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/filter_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/filter_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/filter_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/filter_type.py /usr/lib64/python2.6/site-packages/anaconda/iw/filter_type.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/filter_type.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/iw_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/iw_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/iw_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/kbd_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/kbd_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/kbd_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/language_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/language_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/language_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/lvm_dialog_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/lvm_dialog_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/lvm_dialog_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/netconfig_dialog.py /usr/lib64/python2.6/site-packages/anaconda/iw/netconfig_dialog.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/netconfig_dialog.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/network_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/network_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/network_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/osbootwidget.py /usr/lib64/python2.6/site-packages/anaconda/iw/osbootwidget.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/osbootwidget.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/package_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/package_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/package_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/partition_dialog_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/partition_dialog_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/partition_dialog_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/partition_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/partition_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/partition_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/partition_ui_helpers_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/partition_ui_helpers_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/partition_ui_helpers_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/pixmapRadioButtonGroup_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/pixmapRadioButtonGroup_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/pixmapRadioButtonGroup_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/progress_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/progress_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/progress_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/raid_dialog_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/raid_dialog_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/raid_dialog_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/task_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/task_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/task_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/timezone_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/timezone_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/timezone_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_bootloader_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_bootloader_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_bootloader_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_migratefs_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_migratefs_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_migratefs_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_swap_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_swap_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/upgrade_swap_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/welcome_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/welcome_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/welcome_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/iw/zipl_gui.py /usr/lib64/python2.6/site-packages/anaconda/iw/zipl_gui.pyc /usr/lib64/python2.6/site-packages/anaconda/iw/zipl_gui.pyo /usr/lib64/python2.6/site-packages/anaconda/kickstart.py /usr/lib64/python2.6/site-packages/anaconda/kickstart.pyc /usr/lib64/python2.6/site-packages/anaconda/kickstart.pyo /usr/lib64/python2.6/site-packages/anaconda/language.py /usr/lib64/python2.6/site-packages/anaconda/language.pyc /usr/lib64/python2.6/site-packages/anaconda/language.pyo /usr/lib64/python2.6/site-packages/anaconda/livecd.py /usr/lib64/python2.6/site-packages/anaconda/livecd.pyc /usr/lib64/python2.6/site-packages/anaconda/livecd.pyo /usr/lib64/python2.6/site-packages/anaconda/network.py /usr/lib64/python2.6/site-packages/anaconda/network.pyc /usr/lib64/python2.6/site-packages/anaconda/network.pyo /usr/lib64/python2.6/site-packages/anaconda/packages.py /usr/lib64/python2.6/site-packages/anaconda/packages.pyc /usr/lib64/python2.6/site-packages/anaconda/packages.pyo /usr/lib64/python2.6/site-packages/anaconda/partIntfHelpers.py /usr/lib64/python2.6/site-packages/anaconda/partIntfHelpers.pyc /usr/lib64/python2.6/site-packages/anaconda/partIntfHelpers.pyo /usr/lib64/python2.6/site-packages/anaconda/platform.py /usr/lib64/python2.6/site-packages/anaconda/platform.pyc /usr/lib64/python2.6/site-packages/anaconda/platform.pyo /usr/lib64/python2.6/site-packages/anaconda/product.py /usr/lib64/python2.6/site-packages/anaconda/product.pyc /usr/lib64/python2.6/site-packages/anaconda/product.pyo /usr/lib64/python2.6/site-packages/anaconda/pyudev.py /usr/lib64/python2.6/site-packages/anaconda/pyudev.pyc /usr/lib64/python2.6/site-packages/anaconda/pyudev.pyo /usr/lib64/python2.6/site-packages/anaconda/rescue.py /usr/lib64/python2.6/site-packages/anaconda/rescue.pyc /usr/lib64/python2.6/site-packages/anaconda/rescue.pyo /usr/lib64/python2.6/site-packages/anaconda/run_test.py /usr/lib64/python2.6/site-packages/anaconda/run_test.pyc /usr/lib64/python2.6/site-packages/anaconda/run_test.pyo /usr/lib64/python2.6/site-packages/anaconda/security.py /usr/lib64/python2.6/site-packages/anaconda/security.pyc /usr/lib64/python2.6/site-packages/anaconda/security.pyo /usr/lib64/python2.6/site-packages/anaconda/simpleconfig.py /usr/lib64/python2.6/site-packages/anaconda/simpleconfig.pyc /usr/lib64/python2.6/site-packages/anaconda/simpleconfig.pyo /usr/lib64/python2.6/site-packages/anaconda/sitecustomize.py /usr/lib64/python2.6/site-packages/anaconda/sitecustomize.pyc /usr/lib64/python2.6/site-packages/anaconda/sitecustomize.pyo /usr/lib64/python2.6/site-packages/anaconda/sortedtransaction.py /usr/lib64/python2.6/site-packages/anaconda/sortedtransaction.pyc /usr/lib64/python2.6/site-packages/anaconda/sortedtransaction.pyo /usr/lib64/python2.6/site-packages/anaconda/storage /usr/lib64/python2.6/site-packages/anaconda/storage/__init__.py /usr/lib64/python2.6/site-packages/anaconda/storage/__init__.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/__init__.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/dasd.py /usr/lib64/python2.6/site-packages/anaconda/storage/dasd.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/dasd.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/deviceaction.py /usr/lib64/python2.6/site-packages/anaconda/storage/deviceaction.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/deviceaction.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/__init__.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/__init__.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/__init__.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/crypto.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/crypto.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/crypto.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/dm.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/dm.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/dm.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/edd.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/edd.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/edd.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/lvm.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/lvm.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/lvm.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/mdraid.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/mdraid.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/mdraid.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/mpath.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/mpath.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/mpath.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/swap.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/swap.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicelibs/swap.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devices.py /usr/lib64/python2.6/site-packages/anaconda/storage/devices.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devices.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/devicetree.py /usr/lib64/python2.6/site-packages/anaconda/storage/devicetree.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/devicetree.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/errors.py /usr/lib64/python2.6/site-packages/anaconda/storage/errors.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/errors.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/fcoe.py /usr/lib64/python2.6/site-packages/anaconda/storage/fcoe.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/fcoe.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats /usr/lib64/python2.6/site-packages/anaconda/storage/formats/__init__.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/__init__.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/__init__.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/disklabel.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/disklabel.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/disklabel.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/dmraid.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/dmraid.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/dmraid.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/fs.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/fs.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/fs.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/luks.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/luks.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/luks.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/lvmpv.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/lvmpv.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/lvmpv.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/mdraid.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/mdraid.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/mdraid.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/multipath.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/multipath.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/multipath.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/prepboot.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/prepboot.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/prepboot.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/formats/swap.py /usr/lib64/python2.6/site-packages/anaconda/storage/formats/swap.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/formats/swap.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/iscsi.py /usr/lib64/python2.6/site-packages/anaconda/storage/iscsi.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/iscsi.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/miscutils.py /usr/lib64/python2.6/site-packages/anaconda/storage/miscutils.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/miscutils.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/partitioning.py /usr/lib64/python2.6/site-packages/anaconda/storage/partitioning.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/partitioning.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/partspec.py /usr/lib64/python2.6/site-packages/anaconda/storage/partspec.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/partspec.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/storage_log.py /usr/lib64/python2.6/site-packages/anaconda/storage/storage_log.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/storage_log.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/udev.py /usr/lib64/python2.6/site-packages/anaconda/storage/udev.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/udev.pyo /usr/lib64/python2.6/site-packages/anaconda/storage/zfcp.py /usr/lib64/python2.6/site-packages/anaconda/storage/zfcp.pyc /usr/lib64/python2.6/site-packages/anaconda/storage/zfcp.pyo /usr/lib64/python2.6/site-packages/anaconda/text.py /usr/lib64/python2.6/site-packages/anaconda/text.pyc /usr/lib64/python2.6/site-packages/anaconda/text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw /usr/lib64/python2.6/site-packages/anaconda/textw/complete_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/complete_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/complete_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/constants_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/constants_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/constants_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/keyboard_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/keyboard_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/keyboard_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/language_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/language_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/language_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/netconfig_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/netconfig_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/netconfig_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/network_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/network_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/network_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/partition_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/partition_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/partition_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/progress_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/progress_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/progress_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/statusline_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/statusline_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/statusline_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/task_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/task_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/task_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/timezone_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/timezone_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/timezone_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/upgrade_bootloader_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/upgrade_bootloader_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/upgrade_bootloader_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/upgrade_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/upgrade_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/upgrade_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/userauth_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/userauth_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/userauth_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/welcome_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/welcome_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/welcome_text.pyo /usr/lib64/python2.6/site-packages/anaconda/textw/zipl_text.py /usr/lib64/python2.6/site-packages/anaconda/textw/zipl_text.pyc /usr/lib64/python2.6/site-packages/anaconda/textw/zipl_text.pyo /usr/lib64/python2.6/site-packages/anaconda/timezone.py /usr/lib64/python2.6/site-packages/anaconda/timezone.pyc /usr/lib64/python2.6/site-packages/anaconda/timezone.pyo /usr/lib64/python2.6/site-packages/anaconda/upgrade.py /usr/lib64/python2.6/site-packages/anaconda/upgrade.pyc /usr/lib64/python2.6/site-packages/anaconda/upgrade.pyo /usr/lib64/python2.6/site-packages/anaconda/users.py /usr/lib64/python2.6/site-packages/anaconda/users.pyc /usr/lib64/python2.6/site-packages/anaconda/users.pyo /usr/lib64/python2.6/site-packages/anaconda/vnc.py /usr/lib64/python2.6/site-packages/anaconda/vnc.pyc /usr/lib64/python2.6/site-packages/anaconda/vnc.pyo /usr/lib64/python2.6/site-packages/anaconda/xutils.so /usr/lib64/python2.6/site-packages/anaconda/yuminstall.py /usr/lib64/python2.6/site-packages/anaconda/yuminstall.pyc /usr/lib64/python2.6/site-packages/anaconda/yuminstall.pyo /usr/libexec/anaconda /usr/libexec/anaconda/analog /usr/sbin/anaconda-bin /usr/sbin/gptsync /usr/sbin/liveinst /usr/sbin/showpart /usr/share/anaconda /usr/share/anaconda/boot /usr/share/anaconda/boot/boot.msg /usr/share/anaconda/boot/grub.conf /usr/share/anaconda/boot/syslinux.cfg /usr/share/anaconda/buildinstall /usr/share/anaconda/buildinstall.functions /usr/share/anaconda/genmodinfo /usr/share/anaconda/getkeymaps /usr/share/anaconda/keymaps-override-x86_64 /usr/share/anaconda/lang-names /usr/share/anaconda/lang-table /usr/share/anaconda/loader.tr /usr/share/anaconda/makestamp.py /usr/share/anaconda/makestamp.pyc /usr/share/anaconda/makestamp.pyo /usr/share/anaconda/maketreeinfo.py /usr/share/anaconda/maketreeinfo.pyc /usr/share/anaconda/maketreeinfo.pyo /usr/share/anaconda/mk-images /usr/share/anaconda/mk-images.alpha /usr/share/anaconda/mk-images.efi /usr/share/anaconda/mk-images.ia64 /usr/share/anaconda/mk-images.ppc /usr/share/anaconda/mk-images.s390 /usr/share/anaconda/mk-images.sparc /usr/share/anaconda/mk-images.x86 /usr/share/anaconda/pixmaps /usr/share/anaconda/pixmaps/about-to-install.png /usr/share/anaconda/pixmaps/checkMark.png /usr/share/anaconda/pixmaps/config-language.png /usr/share/anaconda/pixmaps/done.png /usr/share/anaconda/pixmaps/filter-menu.png /usr/share/anaconda/pixmaps/gnome-lock.png /usr/share/anaconda/pixmaps/gnome-mouse.png /usr/share/anaconda/pixmaps/install.png /usr/share/anaconda/pixmaps/network.png /usr/share/anaconda/pixmaps/partscheme-all.png /usr/share/anaconda/pixmaps/partscheme-custom.png /usr/share/anaconda/pixmaps/partscheme-freespace.png /usr/share/anaconda/pixmaps/partscheme-replace.png /usr/share/anaconda/pixmaps/partscheme-shrink.png /usr/share/anaconda/pixmaps/root-password.png /usr/share/anaconda/pixmaps/upgrade.png /usr/share/anaconda/pyrc.py /usr/share/anaconda/pyrc.pyc /usr/share/anaconda/pyrc.pyo /usr/share/anaconda/screenfont-x86_64.gz /usr/share/anaconda/scrubtree /usr/share/anaconda/trimpciids /usr/share/anaconda/ui /usr/share/anaconda/ui/GroupSelector.glade /usr/share/anaconda/ui/account.glade /usr/share/anaconda/ui/adddrive.glade /usr/share/anaconda/ui/addrepo.glade /usr/share/anaconda/ui/anaconda.glade /usr/share/anaconda/ui/autopart.glade /usr/share/anaconda/ui/blwhere.glade /usr/share/anaconda/ui/cleardisks.glade /usr/share/anaconda/ui/create-storage.glade /usr/share/anaconda/ui/detailed-dialog.glade /usr/share/anaconda/ui/fcoe-config.glade /usr/share/anaconda/ui/filter.glade /usr/share/anaconda/ui/iscsi-config.glade /usr/share/anaconda/ui/lukspassphrase.glade /usr/share/anaconda/ui/netconfig.glade /usr/share/anaconda/ui/network.glade /usr/share/anaconda/ui/tasksel.glade /usr/share/anaconda/ui/zfcp-config.glade /usr/share/anaconda/unicode-linedraw-chars.txt /usr/share/anaconda/upd-instroot /usr/share/anaconda/upd-updates /usr/share/applications/liveinst.desktop /usr/share/doc/anaconda-14.3 /usr/share/doc/anaconda-14.3/COPYING /usr/share/doc/anaconda-14.3/anaconda-release-notes.txt /usr/share/doc/anaconda-14.3/command-line.txt /usr/share/doc/anaconda-14.3/install-methods.txt /usr/share/doc/anaconda-14.3/mediacheck.txt /usr/share/locale/af/LC_MESSAGES/anaconda.mo /usr/share/locale/am/LC_MESSAGES/anaconda.mo /usr/share/locale/ar/LC_MESSAGES/anaconda.mo /usr/share/locale/as/LC_MESSAGES/anaconda.mo /usr/share/locale/bal/LC_MESSAGES/anaconda.mo /usr/share/locale/be/LC_MESSAGES/anaconda.mo /usr/share/locale/bg/LC_MESSAGES/anaconda.mo /usr/share/locale/bn/LC_MESSAGES/anaconda.mo /usr/share/locale/bn_IN/LC_MESSAGES/anaconda.mo /usr/share/locale/bs/LC_MESSAGES/anaconda.mo /usr/share/locale/ca/LC_MESSAGES/anaconda.mo /usr/share/locale/cs/LC_MESSAGES/anaconda.mo /usr/share/locale/cy/LC_MESSAGES/anaconda.mo /usr/share/locale/da/LC_MESSAGES/anaconda.mo /usr/share/locale/de/LC_MESSAGES/anaconda.mo /usr/share/locale/de_CH/LC_MESSAGES/anaconda.mo /usr/share/locale/el/LC_MESSAGES/anaconda.mo /usr/share/locale/en@boldquot/LC_MESSAGES/anaconda.mo /usr/share/locale/en@quot/LC_MESSAGES/anaconda.mo /usr/share/locale/en_GB/LC_MESSAGES/anaconda.mo /usr/share/locale/es/LC_MESSAGES/anaconda.mo /usr/share/locale/et/LC_MESSAGES/anaconda.mo /usr/share/locale/eu/LC_MESSAGES/anaconda.mo /usr/share/locale/eu_ES/LC_MESSAGES/anaconda.mo /usr/share/locale/fa/LC_MESSAGES/anaconda.mo /usr/share/locale/fi/LC_MESSAGES/anaconda.mo /usr/share/locale/fr/LC_MESSAGES/anaconda.mo /usr/share/locale/gl/LC_MESSAGES/anaconda.mo /usr/share/locale/gu/LC_MESSAGES/anaconda.mo /usr/share/locale/he/LC_MESSAGES/anaconda.mo /usr/share/locale/hi/LC_MESSAGES/anaconda.mo /usr/share/locale/hr/LC_MESSAGES/anaconda.mo /usr/share/locale/hu/LC_MESSAGES/anaconda.mo /usr/share/locale/hy/LC_MESSAGES/anaconda.mo /usr/share/locale/id/LC_MESSAGES/anaconda.mo /usr/share/locale/ilo/LC_MESSAGES/anaconda.mo /usr/share/locale/is/LC_MESSAGES/anaconda.mo /usr/share/locale/it/LC_MESSAGES/anaconda.mo /usr/share/locale/ja/LC_MESSAGES/anaconda.mo /usr/share/locale/ka/LC_MESSAGES/anaconda.mo /usr/share/locale/kn/LC_MESSAGES/anaconda.mo /usr/share/locale/ko/LC_MESSAGES/anaconda.mo /usr/share/locale/ku/LC_MESSAGES/anaconda.mo /usr/share/locale/lo/LC_MESSAGES/anaconda.mo /usr/share/locale/lt/LC_MESSAGES/anaconda.mo /usr/share/locale/lv/LC_MESSAGES/anaconda.mo /usr/share/locale/mai/LC_MESSAGES/anaconda.mo /usr/share/locale/mk/LC_MESSAGES/anaconda.mo /usr/share/locale/ml/LC_MESSAGES/anaconda.mo /usr/share/locale/mr/LC_MESSAGES/anaconda.mo /usr/share/locale/ms/LC_MESSAGES/anaconda.mo /usr/share/locale/my/LC_MESSAGES/anaconda.mo /usr/share/locale/nb/LC_MESSAGES/anaconda.mo /usr/share/locale/ne/LC_MESSAGES/anaconda.mo /usr/share/locale/nl/LC_MESSAGES/anaconda.mo /usr/share/locale/nn/LC_MESSAGES/anaconda.mo /usr/share/locale/nso/LC_MESSAGES/anaconda.mo /usr/share/locale/or/LC_MESSAGES/anaconda.mo /usr/share/locale/pa/LC_MESSAGES/anaconda.mo /usr/share/locale/pl/LC_MESSAGES/anaconda.mo /usr/share/locale/pt/LC_MESSAGES/anaconda.mo /usr/share/locale/pt_BR/LC_MESSAGES/anaconda.mo /usr/share/locale/ro/LC_MESSAGES/anaconda.mo /usr/share/locale/ru/LC_MESSAGES/anaconda.mo /usr/share/locale/si/LC_MESSAGES/anaconda.mo /usr/share/locale/sk/LC_MESSAGES/anaconda.mo /usr/share/locale/sl/LC_MESSAGES/anaconda.mo /usr/share/locale/sq/LC_MESSAGES/anaconda.mo /usr/share/locale/sr/LC_MESSAGES/anaconda.mo /usr/share/locale/sr@latin/LC_MESSAGES/anaconda.mo /usr/share/locale/sv/LC_MESSAGES/anaconda.mo /usr/share/locale/ta/LC_MESSAGES/anaconda.mo /usr/share/locale/te/LC_MESSAGES/anaconda.mo /usr/share/locale/tg/LC_MESSAGES/anaconda.mo /usr/share/locale/th/LC_MESSAGES/anaconda.mo /usr/share/locale/tr/LC_MESSAGES/anaconda.mo /usr/share/locale/uk/LC_MESSAGES/anaconda.mo /usr/share/locale/ur/LC_MESSAGES/anaconda.mo /usr/share/locale/vi/LC_MESSAGES/anaconda.mo /usr/share/locale/zh_CN/LC_MESSAGES/anaconda.mo /usr/share/locale/zh_TW/LC_MESSAGES/anaconda.mo /usr/share/locale/zu/LC_MESSAGES/anaconda.mo
- Chris
Hi,
On 03/31/2010 08:43 PM, Chris Lumens wrote:
The attached patch set turns anaconda into a regular old python module. It does this by moving lots and lots of files around. I will attach a followup email showing the exact layout of the anaconda RPM with this patch applied.
The new layout looks good, I'm not sure I like all the scripts living under /usr/share/anaconda though. I wonder if that /usr/libexec/anaconda would not be a better place.
Regards,
Hans
The new layout looks good, I'm not sure I like all the scripts living under /usr/share/anaconda though. I wonder if that /usr/libexec/anaconda would not be a better place.
Yeah I'll do some more moving around. If you have files in particular you want to see in /usr/libexec/anaconda, let me know.
- Chris
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, 31 Mar 2010, Chris Lumens wrote:
The attached patch set turns anaconda into a regular old python module. It does this by moving lots and lots of files around. I will attach a followup email showing the exact layout of the anaconda RPM with this patch applied.
I have performed a basic test of building a scratch package and then running pungi with that package, and then doing a single basic install. pungi will require patches to reference new locations. I've got a patch for that locally and will send later. fedora-logos will also need a patch.
Notable changes:
- In order to not have to change every "import whatever" to "import
anaconda.whatever", I do some python path mangling early on. Any project using anaconda that doesn't want to have to make those changes will have to do their own path mangling.
Fine with this.
- /usr/sbin/anaconda -> /usr/sbin/anaconda-bin. I have to do this to make
updates work correctly. Patch 11 should explain the situation.
I'm not crazy about renaming it to anaconda-bin. I like what packages like pungi did where the frontend executable takes the name 'pungi' and the Python module is named 'pypungi'. Same sort of name munging, but if the module is changed to pyanaconda, that still keeps the renaming within the module move rather than also renaming /usr/sbin/anaconda
- /usr/lib/anaconda-runtime is dead.
Finally.
I'm looking to push this into master relatively soon so I can go back to work on storage testing.
With the exception of my comment above and the ones below, I am ok with this change in anaconda:
1) The scripts that are executed by tools like pungi or revisor should go in /usr/libexec/anaconda rather than /usr/share/anaconda. These would be buildinstall and related scripts. Really, any of the scripts that can be executed as-is and are typically used by other programs rather than the user directly.
2) The *-stub commands should probably go in /usr/share/anaconda and not /usr/$LIBDIR/anaconda since they are just copied in at image build time.
3) mapshdr, modlist, and readmap should go in /usr/libexec/anaconda since they are run by the buildinstall chain.
mgracik will also want to update lorax to account for changes in anaconda layout.
- -- David Cantrell dcantrell@redhat.com Red Hat / Honolulu, HI
- /usr/sbin/anaconda -> /usr/sbin/anaconda-bin. I have to do this to make
updates work correctly. Patch 11 should explain the situation.
I'm not crazy about renaming it to anaconda-bin. I like what packages like pungi did where the frontend executable takes the name 'pungi' and the Python module is named 'pypungi'. Same sort of name munging, but if the module is changed to pyanaconda, that still keeps the renaming within the module move rather than also renaming /usr/sbin/anaconda
Given the path mangling I'm already doing, this should be fine. I wasn't real big on anaconda-bin either. I just need the binary and the module directory to have different names.
- The scripts that are executed by tools like pungi or revisor should go in
/usr/libexec/anaconda rather than /usr/share/anaconda. These would be buildinstall and related scripts. Really, any of the scripts that can be executed as-is and are typically used by other programs rather than the user directly.
Can do.
- The *-stub commands should probably go in /usr/share/anaconda and not
/usr/$LIBDIR/anaconda since they are just copied in at image build time.
I'd prefer to get rid of the stubs if at all possible.
- mapshdr, modlist, and readmap should go in /usr/libexec/anaconda since they
are run by the buildinstall chain.
Also can do.
I likely will not post a second series of patches to take these changes into account, as it'll largely just be one-liners in Makefile.am.
- Chris
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/31/2010 12:04 PM, David Cantrell wrote:
- The scripts that are executed by tools like pungi or revisor should
go in /usr/libexec/anaconda rather than /usr/share/anaconda. These would be buildinstall and related scripts. Really, any of the scripts that can be executed as-is and are typically used by other programs rather than the user directly.
Wouldn't it be better to further split things up and make stand-alone scripts live in their own package, say anaconda-tools or anaconda-devel? I may have read something about doing that on irc or the list, I don't remember.
- -- Brian C. Lane bcl@redhat.com Red Hat / Port Orchard, WA
On Wed, 2010-03-31 at 17:22 -0700, Brian C. Lane wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/31/2010 12:04 PM, David Cantrell wrote:
- The scripts that are executed by tools like pungi or revisor should
go in /usr/libexec/anaconda rather than /usr/share/anaconda. These would be buildinstall and related scripts. Really, any of the scripts that can be executed as-is and are typically used by other programs rather than the user directly.
Wouldn't it be better to further split things up and make stand-alone scripts live in their own package, say anaconda-tools or anaconda-devel? I may have read something about doing that on irc or the list, I don't remember.
They used to be their own package, anaconda-runtime. They were pulled back in at some point, git log will show when, but I think Jeremy was the one leading that charge. That said, it does make sense for things like the Live CD where they want the installer executable, but not necessarily all the gunk to make images and all the deps therein.
- The scripts that are executed by tools like pungi or revisor should
go in /usr/libexec/anaconda rather than /usr/share/anaconda. These would be buildinstall and related scripts. Really, any of the scripts that can be executed as-is and are typically used by other programs rather than the user directly.
Wouldn't it be better to further split things up and make stand-alone scripts live in their own package, say anaconda-tools or anaconda-devel? I may have read something about doing that on irc or the list, I don't remember.
Well, we've got lorax in the works that ought to help a lot here. I'm willing to wait and see what that gets us before doing any work on splitting these things back out.
- Chris
Chris,
did anyone tell the guys who maintain generic-logos, fedora-logos, redhat-logos, that they need to change the path for syslinux-vesa-splash.jpg file to /usr/share/anaconda ? Because fedora-logos still puts it in /usr/lib/anaconda-runtime (and I think the other packages do the same), so buildinstall (and lorax) does not find it.
--
Martin Gracik
----- "Chris Lumens" clumens@redhat.com wrote:
- The scripts that are executed by tools like pungi or revisor
should
go in /usr/libexec/anaconda rather than /usr/share/anaconda. These
would be
buildinstall and related scripts. Really, any of the scripts that
can be
executed as-is and are typically used by other programs rather
than the
user directly.
Wouldn't it be better to further split things up and make
stand-alone
scripts live in their own package, say anaconda-tools or
anaconda-devel?
I may have read something about doing that on irc or the list, I
don't
remember.
Well, we've got lorax in the works that ought to help a lot here. I'm willing to wait and see what that gets us before doing any work on splitting these things back out.
- Chris
Anaconda-devel-list mailing list Anaconda-devel-list@redhat.com https://www.redhat.com/mailman/listinfo/anaconda-devel-list
did anyone tell the guys who maintain generic-logos, fedora-logos, redhat-logos, that they need to change the path for syslinux-vesa-splash.jpg file to /usr/share/anaconda ? Because fedora-logos still puts it in /usr/lib/anaconda-runtime (and I think the other packages do the same), so buildinstall (and lorax) does not find it.
I sent a patch off for pungi, I'll send a patch off for this today. I meant to do so earlier but the TODO list has gone in other directions. Thanks for reminding me.
- Chris
On 03/31/2010 09:04 PM, David Cantrell wrote:
I'm not crazy about renaming it to anaconda-bin. I like what packages like pungi did where the frontend executable takes the name 'pungi' and the Python module is named 'pypungi'. Same sort of name munging, but if the module is changed to pyanaconda, that still keeps the renaming within the module move rather than also renaming /usr/sbin/anaconda
Also, doing something like this will allow us move from the path mangling altogether one day and do things like
import pyanaconda.submodule
and then pyanaconda.submodule.method()
Instead of anaconda.submodule.method()
in which 'anaconda' can be confused with the top level Anaconda object that we often pass to methods as 'anaconda'.
If you know what I mean.
Ales
Also, doing something like this will allow us move from the path mangling altogether one day and do things like
import pyanaconda.submodule
and then pyanaconda.submodule.method()
Instead of anaconda.submodule.method()
in which 'anaconda' can be confused with the top level Anaconda object that we often pass to methods as 'anaconda'.
Good point.
Note that there are a couple thousand "import" lines in anaconda, so I'm not in any rush to change them at all.
- Chris
anaconda-devel@lists.stg.fedoraproject.org