Prepare for 2.5.
[febootstrap.git] / febootstrap-minimize.sh
index b4f23c5..15782f7 100755 (executable)
@@ -22,7 +22,7 @@ unset CDPATH
 
 TEMP=`getopt \
         -o '' \
-        --long help,all,none,keep-locales,drop-locales,keep-docs,drop-docs,keep-cracklib,drop-cracklib,keep-i18n,drop-i18n,keep-zoneinfo,drop-zoneinfo,keep-rpmdb,drop-rpmdb,keep-yum-cache,drop-yum-cache,keep-services,drop-services,keep-sln,drop-sln,keep-ldconfig,drop-ldconfig,no-pack-executables,pack-executables \
+        --long help,all,none,keep-locales,drop-locales,keep-docs,drop-docs,keep-cracklib,drop-cracklib,keep-i18n,drop-i18n,keep-zoneinfo,drop-zoneinfo,keep-rpmdb,drop-rpmdb,keep-yum-cache,drop-yum-cache,keep-services,drop-services,keep-sln,drop-sln,keep-ldconfig,drop-ldconfig \
         -n febootstrap-minimize -- "$@"`
 if [ $? != 0 ]; then
     echo "febootstrap-minimize: problem parsing the command line arguments"
@@ -59,7 +59,6 @@ keep_yum_cache=yes
 }
 
 set_all
-pack_executables=no
 
 usage ()
 {
@@ -135,12 +134,6 @@ while true; do
        --drop-ldconfig)
            keep_ldconfig=no
            shift;;
-       --no-pack-executables)
-           pack_executables=no
-           shift;;
-       --pack-executables)
-           pack_executables=yes
-           shift;;
        --help)
            usage
            exit 0;;
@@ -176,43 +169,50 @@ trap remove_tmpdir EXIT
 
 #----------------------------------------------------------------------
 
+# ***NOTE*** Wildcards cannot be passed to febootstrap-run.
+
 if [ "$keep_locales" != "yes" ]; then
-    rm -f "$target"/usr/lib/locale/*
-    rm -rf "$target"/usr/share/locale
-    rm -rf "$target"/usr/lib*/gconv
-    rm -f "$target"/usr/bin/localedef
-    rm -f "$target"/usr/sbin/build-locale-archive
+    febootstrap-run "$target" -- rm -rf usr/lib/locale
+    febootstrap-run "$target" -- rm -rf usr/share/locale
+    febootstrap-run "$target" -- rm -rf usr/lib/gconv usr/lib64/gconv
+    febootstrap-run "$target" -- rm -f usr/bin/localedef
+    febootstrap-run "$target" -- rm -f usr/sbin/build-locale-archive
 fi
 
 if [ "$keep_docs" != "yes" ]; then
-    rm -rf "$target"/usr/share/man
-    rm -rf "$target"/usr/share/doc
-    rm -rf "$target"/usr/share/info
-    rm -rf "$target"/usr/share/gnome/help
+    febootstrap-run "$target" -- rm -rf usr/share/man
+    febootstrap-run "$target" -- rm -rf usr/share/doc
+    febootstrap-run "$target" -- rm -rf usr/share/info
+    febootstrap-run "$target" -- rm -rf usr/share/gnome/help
 fi
 
 if [ "$keep_cracklib" != "yes" ]; then
-    rm -rf "$target"/usr/share/cracklib
+    febootstrap-run "$target" -- rm -rf usr/share/cracklib
 fi
 
 if [ "$keep_i18n" != "yes" ]; then
-    rm -rf "$target"/usr/share/i18n
+    febootstrap-run "$target" -- rm -rf usr/share/i18n
 fi
 
 if [ "$keep_zoneinfo" != "yes" ]; then
     mv "$target"/usr/share/zoneinfo/{UCT,UTC,Universal,Zulu,GMT*,*.tab} \
       "$target"
-    rm -rf "$target"/usr/share/zoneinfo/*
+    febootstrap-run "$target" -- rm -rf usr/share/zoneinfo
+    febootstrap-run "$target" -- mkdir -p --mode=0755 usr/share/zoneinfo
     mv "$target"/{UCT,UTC,Universal,Zulu,GMT*,*.tab} \
       "$target"/usr/share/zoneinfo/
 fi
 
 if [ "$keep_rpmdb" != "yes" ]; then
-    rm -rf "$target"/var/lib/rpm/*
+    febootstrap-run "$target" -- rm -rf var/lib/rpm
+    febootstrap-run "$target" -- mkdir -p --mode=0755 var/lib/rpm
+    febootstrap-run "$target" -- rm -rf var/lib/yum
+    febootstrap-run "$target" -- mkdir -p --mode=0755 var/lib/yum
 fi
 
 if [ "$keep_yum_cache" != "yes" ]; then
-    rm -rf "$target"/var/cache/yum/*
+    febootstrap-run "$target" -- rm -rf var/cache/yum
+    febootstrap-run "$target" -- mkdir -p --mode=0755 var/cache/yum
 fi
 
 if [ "$keep_services" != "yes" ]; then
@@ -270,26 +270,12 @@ __EOF__
 fi
 
 if [ "$keep_sln" != "yes" ]; then
-    rm -f "$target"/sbin/sln
+    febootstrap-run "$target" -- rm -f sbin/sln
 fi
 
 if [ "$keep_ldconfig" != "yes" ]; then
-    rm -f "$target"/sbin/ldconfig
-    rm -f "$target"/etc/ld.so.cache
-    rm -rf "$target"/var/cache/ldconfig/*
-fi
-
-if [ "$pack_executables" = "yes" ]; then
-    # NB. Be careful to keep the same inode number, since fakeroot
-    # tracks files by inode number.
-    for path in $(find "$target" -type f -perm /111 |
-                 xargs file |
-                 grep executable |
-                 awk -F: '{print $1}'); do
-       base=$(basename "$path")
-       cp "$path" "$tmpdir"
-       (cd "$tmpdir" && upx -q -q --best "$base")
-       cat "$tmpdir"/"$base" > "$path"
-       rm "$tmpdir"/"$base"
-    done
+    febootstrap-run "$target" -- rm -f sbin/ldconfig
+    febootstrap-run "$target" -- rm -f etc/ld.so.cache
+    febootstrap-run "$target" -- rm -rf var/cache/ldconfig
+    febootstrap-run "$target" -- mkdir -p --mode=0755 var/cache/ldconfig
 fi