Add new file copy mode for recovery patition - MVWITHLIBS 34/143234/3
authorKunhoon Baik <knhoon.baik@samsung.com>
Wed, 9 Aug 2017 06:53:02 +0000 (15:53 +0900)
committerSunmin Lee <sunm.lee@samsung.com>
Mon, 14 Aug 2017 06:07:33 +0000 (15:07 +0900)
To reduce rootfs size, we need to erase some redundant files.
Especially, files used in just recovery partition should be removed from rootfs.

Until now, the existing file copy mode of current recovery partition creation support followings.
1) Symlink creation in just recovery partition
2) Copy binary with related lib (related lib is copied)
3) Copy just the binary without related lib
               :

However, there are no copy mode - Move binary with related lib (related lib is copied)
If recovery partition has such copy mode, some binary can be removed from rootfs.

This patch supports such requirement, and modify existing scripts

Change-Id: Ib995794e2cba798093b0ccfb859037ccb0f07c06

src/initrd-recovery/00-initrd-recovery.list
src/initrd-recovery/mkinitrd-recovery.sh
src/system-recovery/50-system-recovery.list.m4

index 711150b..8f26d56 100644 (file)
@@ -1,6 +1,7 @@
 # ---- Target contents ----------------------------------------------------- #
-VERBATIMS="
+MVWITHLIBS="
 /usr/lib/initrd-recovery/init
+/usr/lib/initrd-recovery/minireboot
 "
 
 WITHLIBS="
@@ -16,7 +17,6 @@ WITHLIBS="
 /usr/bin/sync
 /usr/bin/tr
 /usr/bin/umount
-/usr/lib/initrd-recovery/minireboot
 /usr/sbin/partx
 /usr/sbin/blkid
 "
index 2042231..acc91d0 100755 (executable)
@@ -9,6 +9,7 @@ PARTX="/usr/sbin/partx"
 DIRNAME="/usr/bin/dirname"
 MKDIR="/bin/mkdir"
 LD_LINUX="/lib/ld-linux.so.3"
+RM="/bin/rm"
 
 INITRD_ROOT="/mnt/initrd-recovery"
 
@@ -18,6 +19,7 @@ OBJECTS_VERBATIM=
 OBJECTS_WITHLIB=
 OBJECTS_LIBONLY=
 OBJECTS_SYMLINK=
+OBJECTS_MVWITHLIB=
 
 BASE_DIRECTORIES="
 /dev
@@ -115,6 +117,7 @@ get_initrd_objects() {
         WITHLIBS=
         LIBONLYS=
         SYMLINKS=
+        MVWITHLIBS=
         source "${OBJECTS_SPECIFY_DIR}"/$f
         OBJECTS_DIRECTORY="$OBJECTS_DIRECTORY $DIRECTORIES"
         OBJECTS_DIR_SYMLINK="$OBJECTS_DIR_SYMLINK $DIR_SYMLINKS"
@@ -122,6 +125,7 @@ get_initrd_objects() {
         OBJECTS_WITHLIB="$OBJECTS_WITHLIB $WITHLIBS"
         OBJECTS_LIBONLY="$OBJECTS_LIBONLY $LIBONLYS"
         OBJECTS_SYMLINK="$OBJECTS_SYMLINK $SYMLINKS"
+        OBJECTS_MVWITHLIB="$OBJECTS_MVWITHLIB $MVWITHLIBS"
     done
 
     OBJECTS_DIRECTORY=$(echo "$OBJECTS_DIRECTORY" | sort | uniq)
@@ -130,6 +134,7 @@ get_initrd_objects() {
     OBJECTS_WITHLIB=$(echo "$OBJECTS_WITHLIB" | sort | uniq)
     OBJECTS_LIBONLY=$(echo "$OBJECTS_LIBONLY" | sort | uniq)
     OBJECTS_SYMLINK=$(echo "$OBJECTS_SYMLINK" | sort | uniq)
+    OBJECTS_MVWITHLIB=$(echo "$OBJECTS_MVWITHLIB" | sort | uniq)
 }
 
 #-----------------------------------------------------------------------------
@@ -164,6 +169,23 @@ withlib_objects() {
     done
 }
 
+mvwithlib_objects() {
+    for content in $@; do
+
+        do_copy $content
+
+        "$LD_LINUX" --verify $1
+        if [ $? -eq 0 ]; then
+            DEP_LIBS=$(get_dep_libs $content)
+            for lib in $DEP_LIBS; do
+                do_copy $lib
+            done
+        fi
+
+        "$RM" -rf $content
+    done
+}
+
 #-----------------------------------------------------------------------------
 #       Copy libonly objects
 #-----------------------------------------------------------------------------
@@ -207,6 +229,7 @@ make_initrd_recovery() {
     withlib_objects $OBJECTS_WITHLIB
     libonly_objects $OBJECTS_LIBONLY
     symlink_objects $OBJECTS_SYMLINK
+    mvwithlib_objects $OBJECTS_MVWITHLIB
 }
 
 #-----------------------------------------------------------------------------
index 6082ed4..4cecb04 100644 (file)
@@ -18,13 +18,15 @@ DIR_SYMLINKS="
 /sbin:usr/sbin
 "
 
-VERBATIMS="
+MVWITHLIBS="
 /usr/lib/system-recovery/recovery-init
+/usr/lib/initrd-recovery/minireboot
 m4_ifdef(`RECOVERY_GUI',
 `/usr/lib/system-recovery/res/images/font.png
 /usr/lib/system-recovery/res/images/menu-title.png
 /usr/lib/system-recovery/res/images/tizen-anim.png
 /usr/lib/system-recovery/res/images/warning.png')
+m4_ifdef(`RECOVERY_GUI', `/usr/lib/system-recovery/system-recovery')
 "
 
 WITHLIBS="
@@ -35,12 +37,10 @@ WITHLIBS="
 /usr/bin/sync
 /usr/bin/touch
 /usr/bin/umount
-/usr/lib/initrd-recovery/minireboot
 /usr/sbin/partx
 /usr/sbin/blkid
 /usr/bin/ls
 /usr/sbin/agetty
-m4_ifdef(`RECOVERY_GUI', `/usr/lib/system-recovery/system-recovery')
 "
 
 # LinkFileName:Target