scripts/install: add support for 'init' packages, add more support for new package format

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2013-12-16 00:13:15 +01:00
parent 5587ec51dd
commit b9a320772f
2 changed files with 87 additions and 57 deletions

View File

@ -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

View File

@ -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