X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=appliance%2Fmake.sh.in;h=efd1f463cf972575f7182b970e09d16a2a332f98;hp=57f5223f07e2a52d80af2e5259bae739649d5c2b;hb=641ccab6c3b17f1c94676eab99e8baa9cddf5a0b;hpb=3f903f01d9d68f427d6afe8aa3daf24257c05c22 diff --git a/appliance/make.sh.in b/appliance/make.sh.in index 57f5223..efd1f46 100755 --- a/appliance/make.sh.in +++ b/appliance/make.sh.in @@ -21,6 +21,7 @@ unset CDPATH set -e +set -x if [ "@DIST@" = "REDHAT" ]; then cd @top_builddir@ @@ -40,17 +41,27 @@ if [ "@DIST@" = "REDHAT" ]; then @FEBOOTSTRAP@ $packages -u @UPDATES@ @REPO@ initramfs @MIRROR@ + # Create modules.dep. This is only used in the normal appliance + # (not supermin). + kversion=$(basename initramfs/lib/modules/*) + @FEBOOTSTRAP_RUN@ initramfs -- /sbin/depmod -a $kversion + # /sysroot is where the guest root filesystem will be mounted. @FEBOOTSTRAP_RUN@ initramfs -- mkdir -p --mode=0777 /sysroot # Create /tmp if it is missing. @FEBOOTSTRAP_RUN@ initramfs -- mkdir -p --mode=0777 /tmp + # Create /selinux if it is missing. + @FEBOOTSTRAP_RUN@ initramfs -- mkdir -p --mode=0755 /selinux + # Nuke some stuff. The kernel pulls mkinitrd and plymouth which pulls in # all of Python. Sheez. + (cd initramfs && find -name '*python*' -print0) | + xargs -0 @FEBOOTSTRAP_RUN@ initramfs -- rm -rf (cd initramfs && find -name '*plymouth*' -print0) | xargs -0 @FEBOOTSTRAP_RUN@ initramfs -- rm -rf - (cd initramfs && find -name '*python*' -print0) | + (cd initramfs && find -name 'libply-*' -print0) | xargs -0 @FEBOOTSTRAP_RUN@ initramfs -- rm -rf # In Fedora >= 11, it pulls in all of Perl from somewhere. Nuke from orbit. @@ -65,8 +76,8 @@ if [ "@DIST@" = "REDHAT" ]; then # Don't need any keyboard maps. @FEBOOTSTRAP_RUN@ initramfs -- rm -rf /lib/kbd - # Remove anything in home directory. Because this is potentially - # liable to monstrous fuck-ups, we don't put a slash before 'home'. + # Remove anything in home directory. Because of the potential for disaster + # we don't put a slash before 'home'. (cd initramfs && echo home/*) | xargs @FEBOOTSTRAP_RUN@ initramfs -- rm -rf @@ -75,13 +86,15 @@ if [ "@DIST@" = "REDHAT" ]; then # Remove some unreadable binaries which are incompatible with # the supermin appliance. Since these binaries can't be read - # from the host filesystem, they generate warnings like: - # cpio: ./usr/bin/chfn: Cannot open: Permission denied - # These binaries are not needed for operation of the appliance. + # from the host filesystem, they cannot be added to the supermin + # appliance at run time. XXX Need a better fix for this. + # Probably we should change febootstrap-supermin-helper to just + # ignore such files. @FEBOOTSTRAP_RUN@ initramfs -- rm -f \ /usr/bin/chfn \ /usr/bin/chsh \ /usr/libexec/pt_chown \ + /usr/libexec/utempter/utempter \ /usr/sbin/groupdel \ /usr/sbin/groupadd \ /usr/sbin/useradd \ @@ -91,6 +104,28 @@ if [ "@DIST@" = "REDHAT" ]; then /usr/sbin/groupmod \ /usr/sbin/groupmems \ /sbin/unix_update \ + /usr/sbin/tcpd \ + /usr/share/dbus-1/services/org.selinux.Restorecond.service \ + /lib/dbus-1/dbus-daemon-launch-helper \ + /lib64/dbus-1/dbus-daemon-launch-helper \ + /etc/passwd- \ + /etc/group- \ + /etc/gshadow \ + /etc/gshadow- \ + /etc/shadow \ + /etc/shadow- \ + /etc/securetty \ + /etc/sysconfig/iptables-config \ + /etc/default/useradd \ + /etc/security/opasswd \ + /etc/libaudit.conf \ + /var/log/tallylog \ + /var/log/maillog \ + /var/log/secure \ + /var/log/spooler \ + /var/log/messages \ + /var/log/btmp \ + /var/log/yum.log \ $(cd initramfs && echo usr/sbin/glibc_post_upgrade.*) # Kernel modules take up nearly half of the image. Only include ones @@ -128,20 +163,15 @@ __EOF__ @FEBOOTSTRAP_RUN@ initramfs -- touch /etc/fstab fi - echo nameserver 10.0.2.3 > resolv.conf.new + echo nameserver 169.254.2.3 > resolv.conf.new @FEBOOTSTRAP_INSTALL@ initramfs resolv.conf.new /etc/resolv.conf 0644 root.root rm resolv.conf.new ls -lh $koutput - # Now directly run the update script to copy/update the daemon in the - # initramfs. - cd appliance && bash update.sh - elif [ "@DIST@" = "DEBIAN" ]; then cd @top_builddir@/appliance debirf make -n debian mkdir -p @top_builddir@/initramfs touch @top_builddir@/initramfs/fakeroot.log fi -