From b9a320772ff7918999e85ade604e747a9909dcab Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 16 Dec 2013 00:13:15 +0100 Subject: [PATCH] scripts/install: add support for 'init' packages, add more support for new package format Signed-off-by: Stephan Raue --- config/path | 1 + scripts/install | 143 +++++++++++++++++++++++++++++------------------- 2 files changed, 87 insertions(+), 57 deletions(-) diff --git a/config/path b/config/path index 1e6dc1ae4f..21e68e73a7 100644 --- a/config/path +++ b/config/path @@ -35,6 +35,7 @@ FAKEROOT_SCRIPT=$ROOT/.fakeroot.$PROJECT.$TARGET_ARCH if [ -z "$INSTALL" ]; then INSTALL=$BUILD/image/system fi +INSTALL_INIT=$BUILD/image/initramfs/root-image . config/sources diff --git a/scripts/install b/scripts/install index 4a1d5b5ccc..c4fa16af9c 100755 --- a/scripts/install +++ b/scripts/install @@ -23,8 +23,6 @@ . config/options $1 -STAMP=$STAMPS_INSTALL/$1/install - if [ -z "$1" ]; then echo "usage: $0 package_name" exit 1 @@ -34,7 +32,16 @@ if [ -z "$INSTALL" ] ; then echo "error: '\$INSTALL' not set! this script is not intended to be run manually" exit 1 fi -mkdir -p $STAMPS_INSTALL/$1 + +# set defaults + PACKAGE_NAME=$(echo $1 | awk -F : '{print $1}') + TARGET=$(echo $1 | awk -F : '{print $2}') + if [ -z "$TARGET" ]; then + TARGET="target" + fi + +STAMP=$STAMPS_INSTALL/$PACKAGE_NAME/install_$TARGET +mkdir -p $STAMPS_INSTALL/$PACKAGE_NAME if [ -f $STAMP -a $PKG_DIR/install -nt $STAMP ]; then rm -f $STAMP @@ -49,61 +56,76 @@ fi $SCRIPTS/build $@ -printf "%${BUILD_INDENT}c INSTALL $1\n" ' '>&$SILENT_OUT +if [ -f $PKG_DIR/package.mk ]; then + printf "%${BUILD_INDENT}c INSTALL $PACKAGE_NAME ($TARGET)\n" ' '>&$SILENT_OUT +elif [ -f $PKG_DIR/install ]; then + printf "%${BUILD_INDENT}c INSTALL $PACKAGE_NAME (deprecated packageformat, please convert soon!)\n" ' '>&$SILENT_OUT +fi export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) -for p in $PKG_DEPENDS $PKG_DEPENDS_TARGET; do - $SCRIPTS/install $p -done - -if [ -d $PKG_DIR/profile.d ]; then - mkdir -p $INSTALL/etc/profile.d - cp $PKG_DIR/profile.d/*.conf $INSTALL/etc/profile.d/ +if [ "$TARGET" = target ] ; then + for p in $PKG_DEPENDS $PKG_DEPENDS_TARGET; do + $SCRIPTS/install $p + done +elif [ "$TARGET" = init ] ; then + for p in $PKG_DEPENDS $PKG_DEPENDS_INIT; do + $SCRIPTS/install $p + done + INSTALL=$BUILD/initramfs fi -if [ -d $PKG_DIR/tmpfiles.d ]; then - mkdir -p $INSTALL/usr/lib/tmpfiles.d - cp $PKG_DIR/tmpfiles.d/*.conf $INSTALL/usr/lib/tmpfiles.d -fi +mkdir -p $INSTALL -if [ -d $PKG_DIR/system.d ]; then - mkdir -p $INSTALL/lib/systemd/system - cp $PKG_DIR/system.d/*.* $INSTALL/lib/systemd/system -fi +if [ "$TARGET" = target ] ; then + if [ -d $PKG_DIR/profile.d ]; then + mkdir -p $INSTALL/etc/profile.d + cp $PKG_DIR/profile.d/*.conf $INSTALL/etc/profile.d/ + fi -if [ -d $PKG_DIR/udev.d ]; then - mkdir -p $INSTALL/lib/udev/rules.d - cp $PKG_DIR/udev.d/*.rules $INSTALL/lib/udev/rules.d -fi + if [ -d $PKG_DIR/tmpfiles.d ]; then + mkdir -p $INSTALL/usr/lib/tmpfiles.d + cp $PKG_DIR/tmpfiles.d/*.conf $INSTALL/usr/lib/tmpfiles.d + fi -if [ -d $PKG_DIR/sleep.d ]; then - mkdir -p $INSTALL/lib/systemd/system-sleep/ - cp $PKG_DIR/sleep.d/* $INSTALL/lib/systemd/system-sleep/ + if [ -d $PKG_DIR/system.d ]; then + mkdir -p $INSTALL/lib/systemd/system + cp $PKG_DIR/system.d/*.* $INSTALL/lib/systemd/system + fi -fi -if [ -d $PKG_DIR/sleep.d.serial ]; then - mkdir -p $INSTALL/lib/systemd/system-sleep.serial - cp $PKG_DIR/sleep.d.serial/* $INSTALL/lib/systemd/system-sleep.serial -fi + if [ -d $PKG_DIR/udev.d ]; then + mkdir -p $INSTALL/lib/udev/rules.d + cp $PKG_DIR/udev.d/*.rules $INSTALL/lib/udev/rules.d + fi -if [ -d $PKG_DIR/sysctl.d ]; then - mkdir -p $INSTALL/usr/lib/sysctl.d/ - cp $PKG_DIR/sysctl.d/*.conf $INSTALL/usr/lib/sysctl.d/ -fi + if [ -d $PKG_DIR/sleep.d ]; then + mkdir -p $INSTALL/lib/systemd/system-sleep/ + cp $PKG_DIR/sleep.d/* $INSTALL/lib/systemd/system-sleep/ + fi -if [ -d $PKG_DIR/modules-load.d ]; then - mkdir -p $INSTALL/usr/lib/modules-load.d/ - cp $PKG_DIR/modules-load.d/*.conf $INSTALL/usr/lib/modules-load.d/ -fi + if [ -d $PKG_DIR/sleep.d.serial ]; then + mkdir -p $INSTALL/lib/systemd/system-sleep.serial + cp $PKG_DIR/sleep.d.serial/* $INSTALL/lib/systemd/system-sleep.serial + fi -if [ -d $PKG_DIR/sysconf.d ]; then - mkdir -p $INSTALL/etc/sysconf.d - cp $PKG_DIR/sysconf.d/*.conf $INSTALL/etc/sysconf.d -fi + if [ -d $PKG_DIR/sysctl.d ]; then + mkdir -p $INSTALL/usr/lib/sysctl.d/ + cp $PKG_DIR/sysctl.d/*.conf $INSTALL/usr/lib/sysctl.d/ + fi -if [ -d $PKG_DIR/debug.d ]; then - mkdir -p $INSTALL/usr/share/debugconf - cp $PKG_DIR/debug.d/*.conf $INSTALL/usr/share/debugconf + if [ -d $PKG_DIR/modules-load.d ]; then + mkdir -p $INSTALL/usr/lib/modules-load.d/ + cp $PKG_DIR/modules-load.d/*.conf $INSTALL/usr/lib/modules-load.d/ + fi + + if [ -d $PKG_DIR/sysconf.d ]; then + mkdir -p $INSTALL/etc/sysconf.d + cp $PKG_DIR/sysconf.d/*.conf $INSTALL/etc/sysconf.d + fi + + if [ -d $PKG_DIR/debug.d ]; then + mkdir -p $INSTALL/usr/share/debugconf + cp $PKG_DIR/debug.d/*.conf $INSTALL/usr/share/debugconf + fi fi if [ -f $PKG_DIR/package.mk ]; then @@ -114,17 +136,24 @@ if [ -f $PKG_DIR/package.mk ]; then # include buildfile . $PKG_DIR/package.mk - # install - if [ "$(type -t pre_install)" = "function" ]; then - pre_install - fi - if [ -d $PKG_BUILD/.install_pkg ]; then - mkdir -p $INSTALL - cp -PR $PKG_BUILD/.install_pkg/* $INSTALL - fi - if [ "$(type -t post_install)" = "function" ]; then - post_install - fi + if [ "$TARGET" = target ] ; then + # install + if [ "$(type -t pre_install)" = "function" ]; then + pre_install + fi + fi + if [ "$TARGET" = "target" -a -d $PKG_BUILD/.install_pkg ]; then + mkdir -p $INSTALL + cp -PR $PKG_BUILD/.install_pkg/* $INSTALL + elif [ "$TARGET" = "init" -a -d $PKG_BUILD/.install_init ]; then + mkdir -p $INSTALL + cp -PR $PKG_BUILD/.install_init/* $INSTALL + fi + if [ "$TARGET" = target ] ; then + if [ "$(type -t post_install)" = "function" ]; then + post_install + fi + fi elif [ -f $PKG_DIR/install ]; then $PKG_DIR/install $@ >&$VERBOSE_OUT fi