]> git.sur5r.net Git - bacula/rescue/blobdiff - rescue/linux/cdrom/makebinaries
Update
[bacula/rescue] / rescue / linux / cdrom / makebinaries
index f026ffb100199f92e958ab32fdd8beae8de86e8d..dbaaf067d11a0a921c604bc93ef82a098fdc2231 100755 (executable)
@@ -10,7 +10,7 @@ R=roottree
 PATH="/sbin:/bin:/usr/sbin:/usr/bin:$PATH"
 
 
-
+# Cleanup and make necessary directories
 rm -rf $R/sbin
 mkdir -p $R/etc $R/initrd $R/lib $R/mnt $R/mnt/cdrom
 mkdir -p $R/proc $R/root $R/sbin $R/tmp $R/var 
@@ -25,12 +25,30 @@ cd $R
 ln -sf sbin bin
 cd $TOPDIR
 
+#
+# Some users have a different shell for root, so be
+#  sure to add it to the rootsbin list. Note, the shell may
+#  be copied twice, but it is not worth the effort to run uniq
+#  here.
+#
+TMPFILE=`mktemp -t bin.XXXXXXXXXX`
+if [ $? !=  0 ]; then
+   echo "Could not make temp file"
+   exit 1
+fi
+cat rootsbin.list >${TMPFILE}
+command=`grep ^root: /etc/passwd | cut -d ':' -f 7`
+command=`basename $command`
+if [ x$command != "xbash" ] ; then
+   echo "roottree/sbin/$command" >>${TMPFILE}
+fi
+
 echo "Building root /sbin. Some Could not find messages are normal ..."
-for file in `cat rootsbin.list` ; do
+for file in `cat ${TMPFILE}` ; do
     command=`basename $file`
     fullfile=`which $command 2> /dev/null`
     if [ x$fullfile != x ] ; then
-#       echo "updating $command in roottree with $fullfile"
+        echo "updating $command in roottree with $fullfile"
         cp -fpd $fullfile $file
         if [ $? != 0 ] ; then
            echo "Update failed."
@@ -42,6 +60,8 @@ for file in `cat rootsbin.list` ; do
         rm -f $file
     fi
 done
+rm -f ${TMPFILE}
+
 cd roottree/sbin
 ln -sf halt reboot
 cd $TOPDIR
@@ -62,20 +82,24 @@ for lib in `find roottree/sbin/ -type f -exec ldd {} \; | awk '{print $3}' | sor
      fi
   fi
 done
-cp -fp /lib/ld-linux.so.2 roottree/lib/
+#
+# Wouldn't you know, there is one so that is critical to have or
+#  nothing will load on 2.6 kernels.
+#
+cp -fp /lib/ld-linux.so.* roottree/lib/
 strip `find roottree/lib/ -maxdepth 1 -type f` 2>/dev/null
 
 
+#
+# Get a bunch of stuff from /etc
+#
+echo "Building /etc ..."
 cp -p /etc/services roottree/etc/
 if [ $? != 0 ] ; then
    echo "Update failed."
    exit 1
 fi
 
-#
-# Get a bunch of stuff from /etc
-#
-echo "Building /etc ..."
 for file in `cat rootetc.list` ; do
    if [ -e $file ] ; then
       cp -fp $file roottree/etc/
@@ -124,8 +148,8 @@ fi
 #
 # Pull a few files needed by PAM
 #
-if [ -e /lib/libnss_files.so.1 ] ; then
+if [ -f /lib/libnss_files.so.1 ] ; then
   cp -fp /lib/libnss_files.so.1 roottree/lib/
 fi
-cp -fp /lib/libnss_files.so.2 roottree/lib/
+cp -fp /lib/libnss_files.so.* roottree/lib/
 cp -a /lib/security roottree/lib/