From: Kunhoon Baik Date: Wed, 9 Aug 2017 06:53:02 +0000 (+0900) Subject: Add new file copy mode for recovery patition - MVWITHLIBS X-Git-Tag: submit/tizen/20170823.081423~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dbf7a9fd63ab1dc60df67df6b94e8d73bade2f0e;p=platform%2Fcore%2Fsystem%2Finitrd-recovery.git Add new file copy mode for recovery patition - MVWITHLIBS 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 --- diff --git a/src/initrd-recovery/00-initrd-recovery.list b/src/initrd-recovery/00-initrd-recovery.list index 711150b..8f26d56 100644 --- a/src/initrd-recovery/00-initrd-recovery.list +++ b/src/initrd-recovery/00-initrd-recovery.list @@ -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 " diff --git a/src/initrd-recovery/mkinitrd-recovery.sh b/src/initrd-recovery/mkinitrd-recovery.sh index 2042231..acc91d0 100755 --- a/src/initrd-recovery/mkinitrd-recovery.sh +++ b/src/initrd-recovery/mkinitrd-recovery.sh @@ -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 } #----------------------------------------------------------------------------- diff --git a/src/system-recovery/50-system-recovery.list.m4 b/src/system-recovery/50-system-recovery.list.m4 index 6082ed4..4cecb04 100644 --- a/src/system-recovery/50-system-recovery.list.m4 +++ b/src/system-recovery/50-system-recovery.list.m4 @@ -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