Initrd image updates

This commit is contained in:
Martin Gracik 2010-10-22 16:02:53 +02:00
parent e22457b09a
commit d6998bd841
5 changed files with 140 additions and 24 deletions

View File

@ -0,0 +1,3 @@
PS1="[anaconda \u@\h \W]\\\\$ "
PATH=/bin:/usr/bin:/usr/sbin:/mnt/sysimage/sbin:/mnt/sysimage/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin
export PATH PS1

View File

@ -0,0 +1,10 @@
[defaults]
skeleton = /mnt/sysimage/etc/skel
mailspooldir = /mnt/sysimage/var/mail
crypt_style = md5
modules = files shadow
create_modules = files shadow
[files]
directory = /mnt/sysimage/etc
[shadow]
directory = /mnt/sysimage/etc

View File

@ -0,0 +1,2 @@
SELINUX=permissive
SELINUXTYPE=targeted

View File

@ -8,7 +8,7 @@ install "NetworkManager-gnome"
install "at-spi"
install "at-spi-python"
install "audit"
install "bind-libs-lite"
install "bind-libs"
install "bind-utils"
install "bitmap-fangsongti-fonts"
install "btrfs-progs"
@ -64,6 +64,7 @@ install "lsof"
install "lvm2-cluster"
install "madan-fonts"
install "man-db"
install "memtest86+"
install "metacity"
install "mt-st"
install "mtr"
@ -264,7 +265,6 @@ remove "libselinux-utils"
remove "libsndfile"
remove "libsoup"
remove "libtiff"
remove "libusb1"
remove "libutempter"
remove "libvirt-client"
remove "libwnck"
@ -521,7 +521,9 @@ remove "NetworkManager" "/etc/rc.d/*"
remove "NetworkManager" "/lib/systemd/*"
remove "NetworkManager" "/usr/bin/*"
remove "NetworkManager" "/usr/share/NetworkManager/*"
remove "NetworkManager" "/usr/share/locale/*/NetworkManager.mo"
remove "NetworkManager-gnome" "/etc/xdg/*"
remove "NetworkManager-gnome" "/usr/bin/nm-applet"
remove "NetworkManager-gnome" "/usr/${libdir}/*"
remove "NetworkManager-gnome" "/usr/share/applications/*"
remove "anaconda" "/etc/*"
@ -540,6 +542,11 @@ remove "bash" "/etc/*"
remove "bash" "/usr/bin/*"
remove "bash" "/usr/share/*"
remove "bitmap-fangsongti-fonts" "/usr/share/fonts/*"
remove "btrfs-progs" "/sbin/btrfs"
remove "btrfs-progs" "/sbin/btrfs-*"
remove "btrfs-progs" "/sbin/btrfstune"
remove "ca-certificates" "/etc/pki/java/*"
remove "ca-certificates" "/etc/pki/tls/certs/ca-bundle.trust.crt"
remove "ca-certificates" "/etc/ssl/*"
remove "cjkuni-uming-fonts" "/etc/X11/*"
remove "coreutils" "/etc/*"
@ -561,6 +568,8 @@ remove "dejavu-sans-fonts" "/usr/share/fonts/dejavu/DejaVuSans-BoldOblique*"
remove "dejavu-sans-fonts" "/usr/share/fonts/dejavu/DejaVuSans-ExtraLight*"
remove "dejavu-sans-fonts" "/usr/share/fonts/dejavu/DejaVuSans-Oblique*"
remove "dejavu-sans-fonts" "/usr/share/fonts/dejavu/DejaVuSansCondensed*"
remove "dejavu-sans-mono-fonts" "/usr/share/fonts/dejavu/DejaVuSansMono-Bold*"
remove "dejavu-sans-mono-fonts" "/usr/share/fonts/dejavu/DejaVuSansMono-Oblique*"
remove "device-mapper-multipath" "/etc/*"
remove "dhclient" "/usr/*"
remove "dmz-cursor-themes" "/usr/share/icons/dmz/*"
@ -580,7 +589,11 @@ remove "fcoe-utils" "/etc/rc.d/*"
remove "fedora-gnome-theme" "/etc/gtk-3.0/*"
remove "fedora-gnome-theme" "/usr/share/themes/*"
remove "file-libs" "/usr/share/*"
remove "findutils" "/usr/bin/oldfind"
remove "findutils" "/usr/share/*"
remove "firstboot" "/usr/sbin/*"
remove "firstboot" "/usr/share/firstboot/*"
remove "firstboot" "/usr/share/locale/*"
remove "fontconfig" "/usr/bin/*"
remove "gawk" "/usr/bin/*"
remove "gawk" "/usr/libexec/*"
@ -622,10 +635,15 @@ remove "gnome-themes" "/usr/share/themes/LowContrast*"
remove "gnome-themes" "/usr/share/themes/Mist/*"
remove "gnome-themes" "/usr/share/themes/Simple/*"
remove "gnutls" "/usr/share/locale/*"
remove "gpgme" "/usr/${libdir}/libgpgme-*"
remove "grep" "/etc/*"
remove "grep" "/usr/share/locale/*"
remove "grub" "/sbin/grub-*"
remove "grub" "/usr/bin/*"
remove "groff" "/usr/share/*"
remove "gstreamer" "/usr/bin/*"
remove "gstreamer" "/usr/lib64/gstreamer-0.10/*"
remove "gstreamer" "/usr/lib64/libgst*"
remove "gstreamer" "/usr/libexec/*"
remove "gstreamer" "/usr/share/locale/*"
remove "gtk+" "/etc/*"
@ -661,6 +679,10 @@ remove "iproute" "/usr/*"
remove "iputils" "/etc/*"
remove "iputils" "/usr/sbin/*"
remove "iscsi-initiator-utils" "/etc/rc.d/*"
remove "jfsutils" "/sbin/jfs_fsck"
remove "jfsutils" "/sbin/jfs_fscklog"
remove "jfsutils" "/sbin/jfs_logdump"
remove "jfsutils" "/sbin/jfs_mkfs"
remove "kbd" "/usr/share/locale/*"
remove "krb5-libs" "/usr/${libdir}/*"
remove "less" "/etc/*"
@ -693,9 +715,14 @@ remove "libuser" "/usr/share/locale/*"
remove "libvorbis" "/usr/${libdir}/libvorbisenc.*"
remove "libxcb" "/usr/${libdir}/libxcb-*"
remove "libxml2" "/usr/bin/*"
remove "libxml2-python" "/usr/${libdir}/python?.?/site-packages/libxml2mod.a"
remove "libxml2-python" "/usr/${libdir}/python?.?/site-packages/libxml2mod.la"
remove "lldpad" "/etc/*"
remove "lua" "/usr/bin/*"
remove "lvm2" "/etc/*"
remove "lvm2-cluster" "/etc/rc.d/init.d/*"
remove "lvm2-cluster" "/usr/sbin/*"
remove "madan-fonts" "/usr/share/fonts/madan/*"
remove "man-db" "/etc/sysconfig/*"
remove "man-db" "/usr/bin/*"
remove "man-db" "/usr/libexec/*"
@ -714,6 +741,8 @@ remove "metacity" "/usr/share/themes/Esco/*"
remove "metacity" "/usr/share/themes/Metabox/*"
remove "metacity" "/usr/share/themes/Simple/*"
remove "module-init-tools" "/etc/*"
remove "module-init-tools" "/sbin/insmod.static"
remove "module-init-tools" "/sbin/weak-modules"
remove "mt-st" "/etc/*"
remove "mt-st" "/sbin/*"
remove "mtools" "/etc/*"
@ -733,6 +762,8 @@ remove "openldap" "/etc/openldap/*"
remove "openssh" "/etc/ssh/*"
remove "openssh" "/usr/libexec/*"
remove "openssh-clients" "/etc/ssh/*"
remove "openssh-clients" "/usr/bin/slogin"
remove "openssh-clients" "/usr/bin/ssh-*"
remove "openssh-clients" "/usr/${libdir}/*"
remove "openssh-clients" "/usr/libexec/*"
remove "openssh-server" "/etc/ssh/*"
@ -782,6 +813,8 @@ remove "samba-winbind-clients" "/usr/${libdir}/libnss_*"
remove "sed" "/usr/share/locale/*"
remove "selinux-policy-targeted" "/usr/share/selinux/*"
remove "smartmontools" "/etc/*"
remove "smartmontools" "/usr/sbin/smartd"
remove "smartmontools" "/usr/sbin/update-smart-drivedb"
remove "smartmontools" "/usr/share/smartmontools/*"
remove "sqlite" "/usr/bin/*"
remove "system-config-date" "/etc/*"
@ -813,6 +846,32 @@ remove "xorg-x11-drv-wacom" "/usr/bin/*"
remove "xorg-x11-fonts-ethiopic" "/etc/X11/*"
remove "xorg-x11-fonts-misc" "/etc/X11/*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/encodings/*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/10x20*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/12x*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/18x18*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/4x6*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/5x7*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/5x8*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/6x10*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/6x12*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/6x9*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/7x*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/8x*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/9x*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/arabic*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/cl*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/cu-*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/cu12*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/cuarabic*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/cudevnag*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/dec*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/gb*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/hang*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/jiskan*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/k14*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/micro*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/nil2*"
remove "xorg-x11-fonts-misc" "/usr/share/X11/fonts/misc/olg*"
remove "yum" "etc/*"
remove "yum" "/usr/share/locale/*"
remove "yum" "/usr/share/yum-cli/*"

View File

@ -186,7 +186,8 @@ class Lorax(BaseLoraxClass):
# set up install tree
logger.info("setting up install tree")
self.installtree = LoraxInstallTree(self.yum, self.basearch)
self.installtree = LoraxInstallTree(self.yum, self.basearch,
self.libdir)
# set up required build parameters
logger.info("setting up build parameters")
@ -251,9 +252,7 @@ class Lorax(BaseLoraxClass):
logger.info("moving stubs")
self.installtree.move_stubs()
# cleanup python files
logger.info("cleaning up python files")
self.installtree.cleanup_python_files()
# get the list of required modules
logger.info("getting list of required modules")
@ -288,8 +287,8 @@ class Lorax(BaseLoraxClass):
self.installtree.get_config_files(config_dir)
# get loader
self.installtree.get_loader()
# get anaconda portions
self.installtree.get_anaconda_portions()
# set up output tree
logger.info("setting up output tree")
@ -394,6 +393,10 @@ class Lorax(BaseLoraxClass):
logger.debug("{0}\t{1}".format(package, pattern_list))
self.installtree.yum.remove(package, pattern_list)
# cleanup python files
logger.info("cleaning up python files")
self.installtree.cleanup_python_files()
# compress install tree
InitRD = namedtuple("InitRD", "fname fpath")
initrd = InitRD("initrd.img", joinpaths(self.workdir, "initrd.img"))
@ -695,11 +698,12 @@ class Lorax(BaseLoraxClass):
class LoraxInstallTree(BaseLoraxClass):
def __init__(self, yum, basearch):
def __init__(self, yum, basearch, libdir):
BaseLoraxClass.__init__(self)
self.yum = yum
self.root = self.yum.installroot
self.basearch = basearch
self.libdir = libdir
self.lcmds = constants.LoraxRequiredCommands()
@ -797,6 +801,13 @@ class LoraxInstallTree(BaseLoraxClass):
dst = joinpaths(self.root, "usr/bin")
shutil.move(src, dst)
# move sitecustomize.py
pythonpath = joinpaths(self.root, "usr", self.libdir, "python?.?")
for path in glob.glob(pythonpath):
src = joinpaths(path, "site-packages/pyanaconda/sitecustomize.py")
dst = joinpaths(path, "site-packages")
shutil.move(src, dst)
def cleanup_python_files(self):
for root, dnames, fnames in os.walk(self.root):
for fname in fnames:
@ -1045,11 +1056,35 @@ class LoraxInstallTree(BaseLoraxClass):
dst = joinpaths(self.root, "root")
shutil.copy2(src, dst)
def get_loader(self):
# get .profile
src = joinpaths(src_dir, ".profile")
dst = joinpaths(self.root, "root")
shutil.copy2(src, dst)
# get libuser.conf
src = joinpaths(src_dir, "libuser.conf")
dst = joinpaths(self.root, "etc")
shutil.copy2(src, dst)
# get selinux config
if os.path.exists(joinpaths(self.root, "etc/selinux/targeted")):
src = joinpaths(src_dir, "selinux.config")
dst = joinpaths(self.root, "etc/selinux", "config")
shutil.copy2(src, dst)
def get_anaconda_portions(self):
src = joinpaths(self.root, "usr", self.libdir, "anaconda", "loader")
dst = joinpaths(self.root, "sbin")
shutil.copy2(src, dst)
src = joinpaths(self.root, "usr/share/anaconda", "loader.tr")
dst = joinpaths(self.root, "etc")
shutil.move(src, dst)
src = joinpaths(self.root, "usr/libexec/anaconda", "auditd")
dst = joinpaths(self.root, "sbin")
shutil.copy2(src, dst)
def create_install_img(self, paths, type="squashfs", workdir="/tmp"):
tempdir = tempfile.mkdtemp(prefix="install.img.", dir=workdir)
@ -1183,8 +1218,8 @@ normally would.
"""
readme = joinpaths(imgdir, "README")
with open(readme, "w") as fobj:
fobj.write(text.format(self))
#with open(readme, "w") as fobj:
# fobj.write(text.format(self))
# write the images/pxeboot/README file
text = """
@ -1197,8 +1232,8 @@ initrd.img - an initrd with support for all install methods and
"""
readme = joinpaths(pxebootdir, "README")
with open(readme, "w") as fobj:
fobj.write(text.format(self))
#with open(readme, "w") as fobj:
# fobj.write(text.format(self))
def get_kernels(self):
kernels = self.installtree.kernels[:]
@ -1238,11 +1273,13 @@ initrd.img - an initrd with support for all install methods and
"kernel {0}".format(self.main_kernel.fname))
# set label for finding stage2 with a hybrid iso
replace(isolinuxcfg, r"initrd=initrd.img",
'initrd=initrd.img stage2=hd:LABEL="{0.product}"'.format(self))
#replace(isolinuxcfg, r"initrd=initrd.img",
# 'initrd=initrd.img stage2=hd:LABEL="{0.product}"'.format(self))
# copy memtest
memtest = joinpaths(self.installtree.root, "boot/memtest*")
memtest = joinpaths(self.installtree.root,
"boot/memtest*")
for fname in glob.glob(memtest):
shutil.copy2(fname, joinpaths(self.isolinuxdir, "memtest"))
@ -1259,18 +1296,20 @@ initrd.img - an initrd with support for all install methods and
break
# get splash
vesasplash = joinpaths(self.installtree.root,
"usr/share/anaconda/syslinux-vesa-splash.jpg")
vesasplash = joinpaths(self.installtree.root, "usr/share/anaconda",
"boot/syslinux-vesa-splash.jpg")
vesamenu = joinpaths(self.installtree.root,
"usr/share/syslinux/vesamenu.c32")
splashtolss = joinpaths(self.installtree.root,
"usr/share/anaconda/splashtolss.sh")
syslinuxsplash = joinpaths(self.installtree.root,
"usr/share/anaconda/boot/syslinux-splash.jpg")
splashlss = joinpaths(self.installtree.root,
"usr/share/anaconda/boot/splash.lss")
syslinuxsplash = joinpaths(self.installtree.root, "usr/share/anaconda",
"boot/syslinux-splash.jpg")
splashlss = joinpaths(self.installtree.root, "usr/share/anaconda",
"boot/splash.lss")
if os.path.isfile(vesasplash):
shutil.copy2(vesasplash, joinpaths(self.isolinuxdir, "splash.jpg"))
@ -1280,7 +1319,10 @@ initrd.img - an initrd with support for all install methods and
elif os.path.isfile(splashtolss):
cmd = [splashtolss, syslinuxsplash, splashlss]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
p.wait()
rc = p.wait()
if not rc == 0:
logger.error("failed to create splash.lss")
sys.exit(1)
if os.path.isfile(splashlss):
shutil.copy2(splashlss, self.isolinuxdir)