Move definition of several directory paths to configure.ac 73/145173/6
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Wed, 13 Sep 2017 12:16:20 +0000 (14:16 +0200)
committerŁukasz Stelmach <l.stelmach@samsung.com>
Thu, 21 Sep 2017 08:08:55 +0000 (10:08 +0200)
Define directories where data and programmes are installed in
configure.ac and refer to those values in scripts and programmes.

Move executable programmes and scripts from /usr/lib to /usr/libexec.

Change-Id: Ibef97c88497d9d5b56b4a9a1eb3ea333927b7df3
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
13 files changed:
Makefile.am
configure.ac
packaging/initrd-recovery.spec
src/initrd-recovery/00-initrd-recovery.list [deleted file]
src/initrd-recovery/00-initrd-recovery.list.in [new file with mode: 0644]
src/initrd-recovery/mkinitrd-recovery.sh [deleted file]
src/initrd-recovery/mkinitrd-recovery.sh.in [new file with mode: 0755]
src/librui/rui-image.h
src/system-recovery/50-system-recovery.list.m4 [deleted file]
src/system-recovery/50-system-recovery.list.m4.in [new file with mode: 0644]
src/system-recovery/recovery-init.in
src/system-recovery/recovery-rui.c
src/system-recovery/system-recovery.h

index 09d32804935623af2abac240decff9e267bacd60..8bd11a30408b90cdfacc3859d6003bd9fe41c7c1 100644 (file)
@@ -2,9 +2,9 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 
 SUBDIRS = .
 
-initrd_recovery_libexecdir=$(prefix)/lib/initrd-recovery
-initrd_recovery_sharedir=$(prefix)/share/initrd-recovery
-initrd_recovery_install_dropindir=$(initrd_recovery_sharedir)/initrd.list.d
+initrd_recovery_libexecdir=$(INITRD_RECOVERY_LIBEXEC_DIR)
+initrd_recovery_datadir=$(INITRD_RECOVERY_DATA_DIR)
+initrd_recovery_install_dropindir=$(INITRD_RECOVERY_INSTALL_DROPIN_DIR)
 
 DEFAULT_CFLAGS = \
        $(LIBSYSTEM_CFLAGS) \
@@ -102,16 +102,10 @@ librui_la_LIBADD = \
 endif
 
 # ------------------------------------------------------------------------------
-system_recovery_libexecdir = \
-       $(prefix)/lib/system-recovery
+system_recovery_imagedir = $(SYSTEM_RECOVERY_IMAGE_DIR)
+system_recovery_libexecdir = $(SYSTEM_RECOVERY_LIBEXEC_DIR)
 
 if RECOVERY_GUI
-system_recovery_resdir = \
-       $(system_recovery_libexecdir)/res
-
-system_recovery_res_imagedir = \
-       $(system_recovery_resdir)/images
-
 system_recovery_SOURCES = \
        src/system-recovery/process-util.c \
        src/system-recovery/recovery-main.c \
@@ -129,7 +123,7 @@ system_recovery_LDADD = \
 system_recovery_libexec_PROGRAMS = \
        system-recovery
 
-system_recovery_res_image_DATA = \
+system_recovery_image_DATA = \
        src/system-recovery/res/images/font.png \
        src/system-recovery/res/images/menu-title.png \
        src/system-recovery/res/images/tizen-anim.png \
@@ -161,6 +155,10 @@ substitutions = \
        '|includedir=$(includedir)|' \
        '|VERSION=$(VERSION)|' \
        '|MKDIR_P=$(MKDIR_P)|' \
+       '|INITRD_RECOVERY_INSTALL_DROPIN_DIR=$(INITRD_RECOVERY_INSTALL_DROPIN_DIR)|' \
+       '|INITRD_RECOVERY_LIBEXEC_DIR=$(INITRD_RECOVERY_LIBEXEC_DIR)|' \
+       '|SYSTEM_RECOVERY_IMAGE_DIR=$(SYSTEM_RECOVERY_IMAGE_DIR)|' \
+       '|SYSTEM_RECOVERY_LIBEXEC_DIR=$(SYSTEM_RECOVERY_LIBEXEC_DIR)|' \
        '|RECOVERY_GUI=$(RECOVERY_GUI)|'
 
 SED_PROCESS = \
index 54e08e07e6751206b404bc7de8a1b6349e0b6138..4f131a7a7fe26da4a0002fac336368f913f6d7e0 100644 (file)
@@ -6,6 +6,7 @@ AC_INIT([initrd-recovery], [2.1.1], [walyong.cho@samsung.com])
 
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR([build-aux])
 
 AC_USE_SYSTEM_EXTENSIONS
 AC_SYS_LARGEFILE
@@ -60,7 +61,6 @@ AC_SUBST([OUR_CFLAGS], "$our_cflags")
 AC_SUBST([OUR_LDFLAGS], "$our_ldflags")
 
 M4_DEFINES=
-
 # ------------------------------------------------------------------------------
 AC_ARG_WITH([tdm],
        AS_HELP_STRING([--without-tdm], [disable TDM/TBM graphical backend (default: test)]))
@@ -98,6 +98,32 @@ AC_SUBST([RECOVERY_GUI])
 AM_CONDITIONAL([RECOVERY_GUI], [test "x$enable_recovery_gui" != "xno"])
 AM_CONDITIONAL([HAVE_TDM], [test "x$have_libtdm" = "xyes"])
 
+SYSTEM_RECOVERY_DATA_DIR="${datadir}/system-recovery"
+AC_DEFINE_UNQUOTED([SYSTEM_RECOVERY_DATA_DIR], ["$SYSTEM_RECOVERY_DATA_DIR"], "Directory where data for system-recovery UI are stored")
+AC_SUBST([SYSTEM_RECOVERY_DATA_DIR])
+
+SYSTEM_RECOVERY_IMAGE_DIR="${datadir}/system-recovery/res/images"
+AC_DEFINE_UNQUOTED([SYSTEM_RECOVERY_IMAGE_DIR], ["$SYSTEM_RECOVERY_IMAGE_DIR"], "Directory where images for system-recovery UI are stored")
+AC_SUBST([SYSTEM_RECOVERY_IMAGE_DIR])
+
+RUI_IMAGES_DIR="${SYSTEM_RECOVERY_IMAGE_DIR}"
+AC_DEFINE_UNQUOTED([RUI_IMAGES_DIR], ["$RUI_IMAGES_DIR"], "Directory where images for system-recovery UI are stored")
+
+SYSTEM_RECOVERY_LIBEXEC_DIR="${libexecdir}/system-recovery"
+AC_DEFINE_UNQUOTED([SYSTEM_RECOVERY_LIBEXEC_DIR], ["$SYSTEM_RECOVERY_LIBEXEC_DIR"], "Directory where sub-programmes for system-recovery UI are stored")
+AC_SUBST([SYSTEM_RECOVERY_LIBEXEC_DIR])
+
+INITRD_RECOVERY_DATA_DIR="${datadir}/initrd-recovery"
+AC_DEFINE_UNQUOTED([INITRD_RECOVERY_DATA_DIR], ["$INITRD_RECOVERY_DATA_DIR"], "Directory where data for recovery initrd are stored")
+AC_SUBST([INITRD_RECOVERY_DATA_DIR])
+
+INITRD_RECOVERY_INSTALL_DROPIN_DIR="${INITRD_RECOVERY_DATA_DIR}/initrd.list.d"
+AC_DEFINE_UNQUOTED([INITRD_RECOVERY_INSTALL_DROPIN_DIR], ["$INITRD_RECOVERY_INSTALL_DROPIN_DIR"], "Directory where configuration drop-in files for recovery initrd are stored")
+AC_SUBST([INITRD_RECOVERY_INSTALL_DROPIN_DIR])
+
+INITRD_RECOVERY_LIBEXEC_DIR="${libexecdir}/initrd-recovery"
+AC_DEFINE_UNQUOTED([INITRD_RECOVERY_LIBEXEC_DIR], ["$INITRD_RECOVERY_LIBEXEC_DIR"], "Directory where sub-progremmes for recovery initrd are stored")
+AC_SUBST([INITRD_RECOVERY_LIBEXEC_DIR])
 # ------------------------------------------------------------------------------
 AC_SUBST(M4_DEFINES)
 
index f4e635803eb9ebf8452a105c78bc7f2119455f40..4f83f80f5179c4c5685f721fe76df63c0027b97a 100644 (file)
@@ -97,8 +97,8 @@ popd
 # common, wearable
 pushd build_non_gui
 %make_install
-mv %{buildroot}%{_libdir}/system-recovery/recovery-init \
-          %{buildroot}%{_libdir}/system-recovery/recovery-init.non_gui
+mv %{buildroot}%{_libexecdir}/system-recovery/recovery-init \
+          %{buildroot}%{_libexecdir}/system-recovery/recovery-init.non_gui
 mv %{buildroot}%{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list \
           %{buildroot}%{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.non_gui
 popd
@@ -106,8 +106,8 @@ popd
 # mobile
 pushd build_gui
 %make_install
-mv %{buildroot}%{_libdir}/system-recovery/recovery-init \
-          %{buildroot}%{_libdir}/system-recovery/recovery-init.gui
+mv %{buildroot}%{_libexecdir}/system-recovery/recovery-init \
+          %{buildroot}%{_libexecdir}/system-recovery/recovery-init.gui
 mv %{buildroot}%{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list \
           %{buildroot}%{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.gui
 popd
@@ -120,36 +120,36 @@ install -m 644 units/mnt-inform.mount %{buildroot}%{_unitdir}
 ln -s ../mnt-inform.mount %{buildroot}%{_unitdir}/local-fs.target.wants
 
 %post -n system-recovery-non_gui
-ln -s %{_libdir}/system-recovery/recovery-init.non_gui \
-          %{_libdir}/system-recovery/recovery-init
+ln -s %{_libexecdir}/system-recovery/recovery-init.non_gui \
+          %{_libexecdir}/system-recovery/recovery-init
 mv %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.non_gui \
           %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list
 %preun -n system-recovery-non_gui
-rm -f %{_libdir}/system-recovery/recovery-init
+rm -f %{_libexecdir}/system-recovery/recovery-init
 mv %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list \
           %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.non_gui
 
 %post -n system-recovery-gui
-ln -s %{_libdir}/system-recovery/recovery-init.gui \
-          %{_libdir}/system-recovery/recovery-init
+ln -s %{_libexecdir}/system-recovery/recovery-init.gui \
+          %{_libexecdir}/system-recovery/recovery-init
 mv %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.gui \
           %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list
 %preun -n system-recovery-gui
-rm -f %{_libdir}/system-recovery/recovery-init
+rm -f %{_libexecdir}/system-recovery/recovery-init
 mv %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list \
           %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.gui
 
 %posttrans
-%{_libdir}/initrd-recovery/mkinitrd-recovery.sh
+%{_libexecdir}/initrd-recovery/mkinitrd-recovery.sh
 
 %files
 %defattr(-,root,root,-)
 %manifest initrd-recovery.manifest
-%{_libdir}/initrd-recovery/init
-%{_libdir}/initrd-recovery/mkinitrd-recovery.sh
-%{_libdir}/initrd-recovery/minireboot
-%{_datadir}/initrd-recovery/initrd.list.d/00-initrd-recovery.list
 %license LICENSE
+%{_datadir}/initrd-recovery/initrd.list.d/00-initrd-recovery.list
+%{_libexecdir}/initrd-recovery/init
+%{_libexecdir}/initrd-recovery/mkinitrd-recovery.sh
+%{_libexecdir}/initrd-recovery/minireboot
 
 %files -n system-recovery
 %defattr(-,root,root,-)
@@ -157,13 +157,13 @@ mv %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list \
 
 %files -n system-recovery-non_gui
 %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.non_gui
-%{_libdir}/system-recovery/recovery-init.non_gui
+%{_libexecdir}/system-recovery/recovery-init.non_gui
 
 %files -n system-recovery-gui
 %{_datadir}/initrd-recovery/initrd.list.d/50-system-recovery.list.gui
-%{_libdir}/system-recovery/recovery-init.gui
-%{_libdir}/system-recovery/system-recovery
-%{_libdir}/system-recovery/res/images/*.png
+%{_datadir}/system-recovery/res/images/*.png
+%{_libexecdir}/system-recovery/recovery-init.gui
+%{_libexecdir}/system-recovery/system-recovery
 
 %files -n reboot-param-helper
 %{_unitdir}/mnt-inform.mount
diff --git a/src/initrd-recovery/00-initrd-recovery.list b/src/initrd-recovery/00-initrd-recovery.list
deleted file mode 100644 (file)
index d5d28ed..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# ---- Target contents ----------------------------------------------------- #
-MVWITHLIBS="
-/usr/lib/initrd-recovery/init
-/usr/lib/initrd-recovery/minireboot
-"
-
-WITHLIBS="
-/usr/bin/bash
-/usr/bin/cat
-/usr/bin/cut
-/usr/bin/echo
-/usr/bin/grep
-/usr/bin/mkdir
-/usr/bin/mount
-/usr/bin/sleep
-/usr/bin/sync
-/usr/bin/tr
-/usr/bin/umount
-"
-
-# LinkFileName:Target
-SYMLINKS="
-/bin/sh:bash
-/sbin/init:/usr/lib/initrd-recovery/init
-/sbin/minireboot:/usr/lib/initrd-recovery/minireboot
-/sbin/reboot:/usr/lib/initrd-recovery/minireboot
-"
diff --git a/src/initrd-recovery/00-initrd-recovery.list.in b/src/initrd-recovery/00-initrd-recovery.list.in
new file mode 100644 (file)
index 0000000..42d30be
--- /dev/null
@@ -0,0 +1,27 @@
+# ---- Target contents ----------------------------------------------------- #
+MVWITHLIBS="
+@INITRD_RECOVERY_LIBEXEC_DIR@/init
+@INITRD_RECOVERY_LIBEXEC_DIR@/minireboot
+"
+
+WITHLIBS="
+/usr/bin/bash
+/usr/bin/cat
+/usr/bin/cut
+/usr/bin/echo
+/usr/bin/grep
+/usr/bin/mkdir
+/usr/bin/mount
+/usr/bin/sleep
+/usr/bin/sync
+/usr/bin/tr
+/usr/bin/umount
+"
+
+# LinkFileName:Target
+SYMLINKS="
+/bin/sh:bash
+/sbin/init:@INITRD_RECOVERY_LIBEXEC_DIR@/init
+/sbin/minireboot:@INITRD_RECOVERY_LIBEXEC_DIR@/minireboot
+/sbin/reboot:@INITRD_RECOVERY_LIBEXEC_DIR@/minireboot
+"
diff --git a/src/initrd-recovery/mkinitrd-recovery.sh b/src/initrd-recovery/mkinitrd-recovery.sh
deleted file mode 100755 (executable)
index aa01d8b..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-#!/bin/sh
-
-CP="/bin/cp"
-LN="/bin/ln"
-SED="/bin/sed"
-MKDIR="/bin/mkdir"
-PARTX="/usr/sbin/partx"
-BLKID="/usr/sbin/blkid"
-DIRNAME="/usr/bin/dirname"
-MKDIR="/bin/mkdir"
-LD_LINUX="/lib/ld-linux.so.3"
-RM="/bin/rm"
-TR="/bin/tr"
-GREP="/bin/grep"
-CUT="/bin/cut"
-
-INITRD_ROOT="/mnt/initrd-recovery"
-
-OBJECTS_SPECIFY_DIR="/usr/share/initrd-recovery/initrd.list.d"
-OBJECTS_DIRECTORY=
-OBJECTS_VERBATIM=
-OBJECTS_WITHLIB=
-OBJECTS_LIBONLY=
-OBJECTS_SYMLINK=
-OBJECTS_MVWITHLIB=
-
-BASE_DIRECTORIES="
-/dev
-/etc
-/proc
-/sdcard
-/smack
-/sys
-/system
-/system-ro
-/run
-/tmp
-/usr/bin
-/usr/sbin
-/usr/lib
-/var/log
-"
-
-BASE_DIR_SYMLINKS="
-/bin:usr/bin
-/sbin:usr/sbin
-/lib:usr/lib
-/opt:system/opt
-"
-
-OPT="default"
-
-#-----------------------------------------------------------------------------
-#       help
-#-----------------------------------------------------------------------------
-show_help() {
-    echo
-    echo "usage: `basename $0` [OPTION]"
-    echo "make initrd image"
-    echo
-    echo "  -h, --help          show help"
-    echo "  -p, --post          find initrd partition and format and make"
-    echo "                       initrd image to there"
-    echo
-}
-
-#-----------------------------------------------------------------------------
-#       find initrd-recovery partition
-#-----------------------------------------------------------------------------
-find_initrd_recovery_partition() {
-    EMMC_DEVICE="/dev/mmcblk0"
-    RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
-    TEST=$(echo "$RET_PARTX" | "$TR" -s ' ' | "$SED" -e '1d' -e 's/^ //' | "$CUT" -d ' ' -f 6)
-    if [ "z$TEST" == "z" ]; then
-        PART_INITRD=$("$BLKID" -L "ramdisk-recovery" -o device)
-        if [ "z$PART_INITRD" == "z" ]; then
-            PART_INITRD=$("$BLKID" -L "ramdisk" -o device)
-        fi
-    else
-        PART_INITRD=${EMMC_DEVICE}p$(
-            echo "$RET_PARTX" |
-            "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
-            "$GREP" "ramdisk2" | "$SED" 's/^ //' | "$CUT" -d ' ' -f 1)
-        if [ "z$PART_INITRD" == "z/dev/mmcblk0p" ]; then
-            PART_INITRD=${EMMC_DEVICE}p$(
-                echo "$RET_PARTX" |
-                "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
-                "$GREP" "ramdisk" | "$SED" 's/^ //' | "$CUT" -d ' ' -f 1)
-        fi
-    fi
-}
-
-#-----------------------------------------------------------------------------
-#       Prepare parent directory
-#-----------------------------------------------------------------------------
-mkdir_p_parent() {
-    dst_dir=`"$DIRNAME" "$1"`
-    if [ ! -d "$dst_dir" -a ! -L "$dst_dir" ]; then
-        "$MKDIR" -p "$dst_dir"
-    fi
-}
-
-#-----------------------------------------------------------------------------
-#       Copy content to root of mounted image
-#-----------------------------------------------------------------------------
-do_copy() {
-    src=$1
-    dst="$INITRD_ROOT/$src"
-
-    if [ ! -e "$src" -o -e "$dst" ]; then
-        return
-    fi
-
-    mkdir_p_parent $dst
-
-    "$CP" -f "$src" "$dst"
-}
-
-#-----------------------------------------------------------------------------
-#       Get dependency libraries
-#-----------------------------------------------------------------------------
-get_dep_libs() {
-    "$LD_LINUX" --list $1 | "$SED" -r 's|^[^/]+([^ \(]+).*$|\1|'
-}
-
-#-----------------------------------------------------------------------------
-#       Gather initrd objects
-#-----------------------------------------------------------------------------
-get_initrd_objects() {
-    for f in $(ls ${OBJECTS_SPECIFY_DIR}); do
-        DIRECTORIES=
-        DIR_SYMLINKS=
-        VERBATIMS=
-        WITHLIBS=
-        LIBONLYS=
-        SYMLINKS=
-        MVWITHLIBS=
-        source "${OBJECTS_SPECIFY_DIR}"/$f
-        OBJECTS_DIRECTORY="$OBJECTS_DIRECTORY $DIRECTORIES"
-        OBJECTS_DIR_SYMLINK="$OBJECTS_DIR_SYMLINK $DIR_SYMLINKS"
-        OBJECTS_VERBATIM="$OBJECTS_VERBATIM $VERBATIMS"
-        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)
-    OBJECTS_DIR_SYMLINK=$(echo "$OBJECTS_DIR_SYMLINK" | sort | uniq)
-    OBJECTS_VERBATIM=$(echo "$OBJECTS_VERBATIM" | sort | uniq)
-    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)
-}
-
-#-----------------------------------------------------------------------------
-#       Prepare directory objects
-#-----------------------------------------------------------------------------
-prepare_directory_objects() {
-    for dir in $@; do
-        "$MKDIR" -p "$INITRD_ROOT$dir"
-    done
-}
-
-#-----------------------------------------------------------------------------
-#       Copy verbatim objects
-#-----------------------------------------------------------------------------
-verbatim_objects() {
-    for obj in $@; do
-        do_copy $obj
-    done
-}
-
-#-----------------------------------------------------------------------------
-#       Copy withlib objects
-#-----------------------------------------------------------------------------
-withlib_objects() {
-    for content in $@; do
-        do_copy $content
-
-        DEP_LIBS=$(get_dep_libs $content)
-        for lib in $DEP_LIBS; do
-            do_copy $lib
-        done
-    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
-#-----------------------------------------------------------------------------
-libonly_objects() {
-    for content in $@; do
-        DEP_LIBS=$(get_dep_libs $content)
-        for lib in $DEP_LIBS; do
-            do_copy $lib
-        done
-    done
-}
-
-#-----------------------------------------------------------------------------
-#       Copy symlink objects
-#-----------------------------------------------------------------------------
-symlink_objects() {
-    for i in $@; do
-        if [ "z$i" == "z" ]; then
-            continue
-        fi
-
-        link=${i%:*}
-        target=${i#*:}
-        mkdir_p_parent "$INITRD_ROOT$link"
-        "$LN" -s "$target" "$INITRD_ROOT$link"
-    done
-}
-
-#-----------------------------------------------------------------------------
-#       Copy content
-#-----------------------------------------------------------------------------
-make_initrd_recovery() {
-    echo "copy initrd objects to $INITRD_ROOT"
-    get_initrd_objects
-
-    prepare_directory_objects $BASE_DIRECTORIES
-    symlink_objects $BASE_DIR_SYMLINKS
-    prepare_directory_objects $OBJECTS_DIRECTORY
-    symlink_objects $OBJECTS_DIR_SYMLINK
-    verbatim_objects $OBJECTS_VERBATIM
-    withlib_objects $OBJECTS_WITHLIB
-    libonly_objects $OBJECTS_LIBONLY
-    symlink_objects $OBJECTS_SYMLINK
-    mvwithlib_objects $OBJECTS_MVWITHLIB
-}
-
-#-----------------------------------------------------------------------------
-#       Check given parameter is mount point
-#-----------------------------------------------------------------------------
-check_mount_point() {
-    grep " $1 " /etc/mtab > /dev/null
-    if [ $? -ne 0 ]; then
-        echo "$1 is not mount point"
-        exit 0
-    fi
-}
-
-#-----------------------------------------------------------------------------
-#       Main
-#-----------------------------------------------------------------------------
-ARGS=$(getopt -o hp -l "help,post" -n "$0" -- "$@");
-
-eval set -- "$ARGS";
-
-while true; do
-    case "$1" in
-        -h|--help)
-            show_help >&2
-            exit 0
-            ;;
-        -p|--post)
-            OPT="post"
-            shift
-            ;;
-        --)
-            shift;
-            break;
-            ;;
-    esac
-done
-
-if [ $# -gt 1 ]; then
-    echo "Error: too many argument was given."
-    show_help >&2
-    exit 1
-fi
-
-case $OPT in
-    post)
-        find_initrd_recovery_partition
-        if [ "z$PART_INITRD" == "z/dev/mmcblk0p" ]; then
-            echo "Error: failed to find initrd partition"
-            exit 1
-        else
-            echo "Info: initrd partition: $PART_INITRD"
-        fi
-        mke2fs $PART_INITRD
-        e2fsck $PART_INITRD
-        mount $PART_INITRD $INITRD_ROOT
-        make_initrd_recovery
-        umount $INITRD_ROOT
-        ;;
-    *)
-        check_mount_point $INITRD_ROOT
-        make_initrd_recovery
-        ;;
-esac
diff --git a/src/initrd-recovery/mkinitrd-recovery.sh.in b/src/initrd-recovery/mkinitrd-recovery.sh.in
new file mode 100755 (executable)
index 0000000..18e3173
--- /dev/null
@@ -0,0 +1,312 @@
+#!/bin/sh
+
+CP="/bin/cp"
+LN="/bin/ln"
+SED="/bin/sed"
+MKDIR="/bin/mkdir"
+PARTX="/usr/sbin/partx"
+BLKID="/usr/sbin/blkid"
+DIRNAME="/usr/bin/dirname"
+MKDIR="/bin/mkdir"
+LD_LINUX="/lib/ld-linux.so.3"
+RM="/bin/rm"
+TR="/bin/tr"
+GREP="/bin/grep"
+CUT="/bin/cut"
+
+INITRD_ROOT="/mnt/initrd-recovery"
+
+OBJECTS_SPECIFY_DIR="@INITRD_RECOVERY_INSTALL_DROPIN_DIR@"
+OBJECTS_DIRECTORY=
+OBJECTS_VERBATIM=
+OBJECTS_WITHLIB=
+OBJECTS_LIBONLY=
+OBJECTS_SYMLINK=
+OBJECTS_MVWITHLIB=
+
+BASE_DIRECTORIES="
+/dev
+/etc
+/proc
+/sdcard
+/smack
+/sys
+/system
+/system-ro
+/run
+/tmp
+/usr/bin
+/usr/sbin
+/usr/lib
+/var/log
+"
+
+BASE_DIR_SYMLINKS="
+/bin:usr/bin
+/sbin:usr/sbin
+/lib:usr/lib
+/opt:system/opt
+"
+
+OPT="default"
+
+#-----------------------------------------------------------------------------
+#       help
+#-----------------------------------------------------------------------------
+show_help() {
+    echo
+    echo "usage: `basename $0` [OPTION]"
+    echo "make initrd image"
+    echo
+    echo "  -h, --help          show help"
+    echo "  -p, --post          find initrd partition and format and make"
+    echo "                       initrd image to there"
+    echo
+}
+
+#-----------------------------------------------------------------------------
+#       find initrd-recovery partition
+#-----------------------------------------------------------------------------
+find_initrd_recovery_partition() {
+    EMMC_DEVICE="/dev/mmcblk0"
+    RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
+    TEST=$(echo "$RET_PARTX" | "$TR" -s ' ' | "$SED" -e '1d' -e 's/^ //' | "$CUT" -d ' ' -f 6)
+    if [ "z$TEST" == "z" ]; then
+        PART_INITRD=$("$BLKID" -L "ramdisk-recovery" -o device)
+        if [ "z$PART_INITRD" == "z" ]; then
+            PART_INITRD=$("$BLKID" -L "ramdisk" -o device)
+        fi
+    else
+        PART_INITRD=${EMMC_DEVICE}p$(
+            echo "$RET_PARTX" |
+            "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+            "$GREP" "ramdisk2" | "$SED" 's/^ //' | "$CUT" -d ' ' -f 1)
+        if [ "z$PART_INITRD" == "z/dev/mmcblk0p" ]; then
+            PART_INITRD=${EMMC_DEVICE}p$(
+                echo "$RET_PARTX" |
+                "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+                "$GREP" "ramdisk" | "$SED" 's/^ //' | "$CUT" -d ' ' -f 1)
+        fi
+    fi
+}
+
+#-----------------------------------------------------------------------------
+#       Prepare parent directory
+#-----------------------------------------------------------------------------
+mkdir_p_parent() {
+    dst_dir=`"$DIRNAME" "$1"`
+    if [ ! -d "$dst_dir" -a ! -L "$dst_dir" ]; then
+        "$MKDIR" -p "$dst_dir"
+    fi
+}
+
+#-----------------------------------------------------------------------------
+#       Copy content to root of mounted image
+#-----------------------------------------------------------------------------
+do_copy() {
+    src=$1
+    dst="$INITRD_ROOT/$src"
+
+    if [ ! -e "$src" -o -e "$dst" ]; then
+        return
+    fi
+
+    mkdir_p_parent $dst
+
+    "$CP" -f "$src" "$dst"
+}
+
+#-----------------------------------------------------------------------------
+#       Get dependency libraries
+#-----------------------------------------------------------------------------
+get_dep_libs() {
+    "$LD_LINUX" --list $1 | "$SED" -r 's|^[^/]+([^ \(]+).*$|\1|'
+}
+
+#-----------------------------------------------------------------------------
+#       Gather initrd objects
+#-----------------------------------------------------------------------------
+get_initrd_objects() {
+    for f in $(ls ${OBJECTS_SPECIFY_DIR}); do
+        DIRECTORIES=
+        DIR_SYMLINKS=
+        VERBATIMS=
+        WITHLIBS=
+        LIBONLYS=
+        SYMLINKS=
+        MVWITHLIBS=
+        source "${OBJECTS_SPECIFY_DIR}"/$f
+        OBJECTS_DIRECTORY="$OBJECTS_DIRECTORY $DIRECTORIES"
+        OBJECTS_DIR_SYMLINK="$OBJECTS_DIR_SYMLINK $DIR_SYMLINKS"
+        OBJECTS_VERBATIM="$OBJECTS_VERBATIM $VERBATIMS"
+        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)
+    OBJECTS_DIR_SYMLINK=$(echo "$OBJECTS_DIR_SYMLINK" | sort | uniq)
+    OBJECTS_VERBATIM=$(echo "$OBJECTS_VERBATIM" | sort | uniq)
+    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)
+}
+
+#-----------------------------------------------------------------------------
+#       Prepare directory objects
+#-----------------------------------------------------------------------------
+prepare_directory_objects() {
+    for dir in $@; do
+        "$MKDIR" -p "$INITRD_ROOT$dir"
+    done
+}
+
+#-----------------------------------------------------------------------------
+#       Copy verbatim objects
+#-----------------------------------------------------------------------------
+verbatim_objects() {
+    for obj in $@; do
+        do_copy $obj
+    done
+}
+
+#-----------------------------------------------------------------------------
+#       Copy withlib objects
+#-----------------------------------------------------------------------------
+withlib_objects() {
+    for content in $@; do
+        do_copy $content
+
+        DEP_LIBS=$(get_dep_libs $content)
+        for lib in $DEP_LIBS; do
+            do_copy $lib
+        done
+    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
+#-----------------------------------------------------------------------------
+libonly_objects() {
+    for content in $@; do
+        DEP_LIBS=$(get_dep_libs $content)
+        for lib in $DEP_LIBS; do
+            do_copy $lib
+        done
+    done
+}
+
+#-----------------------------------------------------------------------------
+#       Copy symlink objects
+#-----------------------------------------------------------------------------
+symlink_objects() {
+    for i in $@; do
+        if [ "z$i" == "z" ]; then
+            continue
+        fi
+
+        link=${i%:*}
+        target=${i#*:}
+        mkdir_p_parent "$INITRD_ROOT$link"
+        "$LN" -s "$target" "$INITRD_ROOT$link"
+    done
+}
+
+#-----------------------------------------------------------------------------
+#       Copy content
+#-----------------------------------------------------------------------------
+make_initrd_recovery() {
+    echo "copy initrd objects to $INITRD_ROOT"
+    get_initrd_objects
+
+    prepare_directory_objects $BASE_DIRECTORIES
+    symlink_objects $BASE_DIR_SYMLINKS
+    prepare_directory_objects $OBJECTS_DIRECTORY
+    symlink_objects $OBJECTS_DIR_SYMLINK
+    verbatim_objects $OBJECTS_VERBATIM
+    withlib_objects $OBJECTS_WITHLIB
+    libonly_objects $OBJECTS_LIBONLY
+    symlink_objects $OBJECTS_SYMLINK
+    mvwithlib_objects $OBJECTS_MVWITHLIB
+}
+
+#-----------------------------------------------------------------------------
+#       Check given parameter is mount point
+#-----------------------------------------------------------------------------
+check_mount_point() {
+    grep " $1 " /etc/mtab > /dev/null
+    if [ $? -ne 0 ]; then
+        echo "$1 is not mount point"
+        exit 0
+    fi
+}
+
+#-----------------------------------------------------------------------------
+#       Main
+#-----------------------------------------------------------------------------
+ARGS=$(getopt -o hp -l "help,post" -n "$0" -- "$@");
+
+eval set -- "$ARGS";
+
+while true; do
+    case "$1" in
+        -h|--help)
+            show_help >&2
+            exit 0
+            ;;
+        -p|--post)
+            OPT="post"
+            shift
+            ;;
+        --)
+            shift;
+            break;
+            ;;
+    esac
+done
+
+if [ $# -gt 1 ]; then
+    echo "Error: too many argument was given."
+    show_help >&2
+    exit 1
+fi
+
+case $OPT in
+    post)
+        find_initrd_recovery_partition
+        if [ "z$PART_INITRD" == "z/dev/mmcblk0p" ]; then
+            echo "Error: failed to find initrd partition"
+            exit 1
+        else
+            echo "Info: initrd partition: $PART_INITRD"
+        fi
+        mke2fs $PART_INITRD
+        e2fsck $PART_INITRD
+        mount $PART_INITRD $INITRD_ROOT
+        make_initrd_recovery
+        umount $INITRD_ROOT
+        ;;
+    *)
+        check_mount_point $INITRD_ROOT
+        make_initrd_recovery
+        ;;
+esac
index 03a6b3e550ec9a245fd72898dc8fe79c442cab7a..bd7408f4f857eb79eecd722f4eb58d0ffd7c0881 100644 (file)
@@ -24,9 +24,6 @@
 extern "C" {
 #endif
 
-/* #define RUI_IMAGES_DIR  "/usr/share/librui/res/images" */
-#define RUI_IMAGES_DIR  "/usr/lib/system-recovery/res/images"
-
 typedef enum {
        RUI_IMAGE_NONE = -1
 } rui_image_id;
diff --git a/src/system-recovery/50-system-recovery.list.m4 b/src/system-recovery/50-system-recovery.list.m4
deleted file mode 100644 (file)
index add69bc..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-# ---- Target contents ----------------------------------------------------- #
-DIRECTORIES="
-/dev
-/etc
-/proc
-/smack
-/sys
-/system
-/tmp
-/usr/bin
-/usr/lib
-/usr/sbin
-"
-
-DIR_SYMLINKS="
-/bin:usr/bin
-/lib:usr/lib
-/sbin:usr/sbin
-"
-
-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="
-/usr/bin/bash
-/usr/bin/grep
-/usr/bin/mount
-/usr/bin/sync
-/usr/bin/touch
-/usr/bin/umount
-/usr/sbin/partx
-/usr/sbin/blkid
-/usr/bin/ls
-/usr/sbin/agetty
-"
-
-# LinkFileName:Target
-SYMLINKS="
-/usr/bin/system-recovery:/usr/lib/system-recovery/system-recovery
-/sbin/recovery-init:/usr/lib/system-recovery/recovery-init
-"
diff --git a/src/system-recovery/50-system-recovery.list.m4.in b/src/system-recovery/50-system-recovery.list.m4.in
new file mode 100644 (file)
index 0000000..6a813e0
--- /dev/null
@@ -0,0 +1,49 @@
+# ---- Target contents ----------------------------------------------------- #
+DIRECTORIES="
+/dev
+/etc
+/proc
+/smack
+/sys
+/system
+/tmp
+/usr/bin
+/usr/lib
+/usr/sbin
+"
+
+DIR_SYMLINKS="
+/bin:usr/bin
+/lib:usr/lib
+/sbin:usr/sbin
+"
+
+MVWITHLIBS="
+@SYSTEM_RECOVERY_LIBEXEC_DIR@/recovery-init
+@INITRD_RECOVERY_LIBEXEC_DIR@/minireboot
+m4_ifdef(`RECOVERY_GUI',
+`/usr/share/system-recovery/res/images/font.png
+/usr/share/system-recovery/res/images/menu-title.png
+/usr/share/system-recovery/res/images/tizen-anim.png
+/usr/share/system-recovery/res/images/warning.png')
+m4_ifdef(`RECOVERY_GUI', `@SYSTEM_RECOVERY_LIBEXEC_DIR@/system-recovery')
+"
+
+WITHLIBS="
+/usr/bin/bash
+/usr/bin/grep
+/usr/bin/mount
+/usr/bin/sync
+/usr/bin/touch
+/usr/bin/umount
+/usr/sbin/partx
+/usr/sbin/blkid
+/usr/bin/ls
+/usr/sbin/agetty
+"
+
+# LinkFileName:Target
+SYMLINKS="
+/usr/bin/system-recovery:@SYSTEM_RECOVERY_LIBEXEC_DIR@/system-recovery
+/sbin/recovery-init:@SYSTEM_RECOVERY_LIBEXEC_DIR@/recovery-init
+"
index 171920aac4fd87504dc00a88b1ac3bf2dd044b12..825073d0f0d5cfc356a13d52aa1ffc76884efcac 100644 (file)
@@ -7,7 +7,7 @@ GREP="/usr/bin/grep"
 MOUNT="/usr/bin/mount"
 PARTX="/usr/sbin/partx"
 BLKID="/usr/sbin/blkid"
-REBOOT="/usr/lib/initrd-recovery/minireboot"
+REBOOT="@INITRD_RECOVERY_LIBEXEC_DIR@/minireboot"
 SYNC="/usr/bin/sync"
 TOUCH="/usr/bin/touch"
 UMOUNT="/usr/bin/umount"
index 5b3cfc056d4b4f0115d6706cbef7926da8b6607b..dbf4b914f76b2489ff2221f5db50df57f8e89035 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "rui.h"
 #include "common.h"
+#include "config.h"
 #include "rui-menu.h"
 #include "graphics.h"
 #include "rui-image.h"
@@ -34,7 +35,7 @@
 
 static rui_image rui_images[] = {
        [RECOVERY_RUI_IMAGE_BACKGROUND_DEFAULT] = {
-               .fname          = RUI_RECOVERY_IMAGES_DIR "/warning.png",
+               .fname          = SYSTEM_RECOVERY_IMAGE_DIR "/warning.png",
                .c_bg           = RUI_COLOR_BACKGROUND,
                .align_hor      = GR_ALIGN_CENTER,
                .align_ver      = GR_ALIGN_BOTTOM,
@@ -44,7 +45,7 @@ static rui_image rui_images[] = {
                .surface        = NULL
        },
        [RECOVERY_RUI_IMAGE_MENU_TITLE] = {
-               .fname          = RUI_RECOVERY_IMAGES_DIR "/menu-title.png",
+               .fname          = SYSTEM_RECOVERY_IMAGE_DIR "/menu-title.png",
                .c_bg           = RUI_COLOR_TITLE,
                .align_hor      = GR_ALIGN_CENTER,
                .align_ver      = GR_ALIGN_TOP,
@@ -57,7 +58,7 @@ static rui_image rui_images[] = {
 
 static rui_animation rui_animations[] = {
        [RECOVERY_RUI_ANIMATION_WORKING] = {
-               .fname          = RUI_RECOVERY_IMAGES_DIR "/tizen-anim.png",
+               .fname          = SYSTEM_RECOVERY_IMAGE_DIR "/tizen-anim.png",
                .c_bg           = RUI_COLOR_BACKGROUND,
                .align_hor      = GR_ALIGN_CENTER,
                .align_ver      = GR_ALIGN_MIDDLE,
index 4966662be513a48513252f34e30c54b36ffe9f4f..196763c18f41c44d550d97f295b24b8379713626 100644 (file)
@@ -35,8 +35,6 @@ extern "C" {
 #define INITRD_MOUNT_DIR        "/system/mnt/initrd-recovery"
 #define FACTORY_RESET           "/usr/bin/factory-reset"
 
-#define RUI_RECOVERY_IMAGES_DIR "/usr/lib/system-recovery/res/images"
-
 typedef enum {
        RECOVERY_RUI_SCREEN_MAIN,
        RECOVERY_RUI_SCREEN_REBOOT,