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) \
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 \
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 \
'|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 = \
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR([build-aux])
AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
AC_SUBST([OUR_LDFLAGS], "$our_ldflags")
M4_DEFINES=
-
# ------------------------------------------------------------------------------
AC_ARG_WITH([tdm],
AS_HELP_STRING([--without-tdm], [disable TDM/TBM graphical backend (default: test)]))
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)
# 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
# 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
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,-)
%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
+++ /dev/null
-# ---- 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
-"
--- /dev/null
+# ---- 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
+"
+++ /dev/null
-#!/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
--- /dev/null
+#!/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
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;
+++ /dev/null
-# ---- 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
-"
--- /dev/null
+# ---- 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
+"
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"
#include "rui.h"
#include "common.h"
+#include "config.h"
#include "rui-menu.h"
#include "graphics.h"
#include "rui-image.h"
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,
.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,
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,
#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,