From d6744daa2d668e66b9afb3487bc1bd9f7d88bcec Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 8 Feb 2015 15:29:24 +0100 Subject: [PATCH] noobs: add support for PROJECT based multiple noobs builds Signed-off-by: Stephan Raue --- config/noobs/os.json | 2 +- config/noobs/partitions.json | 4 +-- scripts/image | 70 +++++++++++++++++++----------------- 3 files changed, 41 insertions(+), 35 deletions(-) diff --git a/config/noobs/os.json b/config/noobs/os.json index 138711e799..0e47c8e09e 100644 --- a/config/noobs/os.json +++ b/config/noobs/os.json @@ -1,5 +1,5 @@ { - "name": "@DISTRONAME@", + "name": "@DISTRONAME@_@PROJECT@", "version": "@OPENELEC_VERSION@", "release_date": "@RELEASE_DATE@", "kernel": "@KERNEL_VERSION@", diff --git a/config/noobs/partitions.json b/config/noobs/partitions.json index 01c1885d7a..6848178017 100644 --- a/config/noobs/partitions.json +++ b/config/noobs/partitions.json @@ -1,7 +1,7 @@ { "partitions": [ { - "label": "@DISTRONAME@System", + "label": "@DISTRONAME@_@PROJECT@_System", "filesystem_type": "FAT", "partition_size_nominal": 160, "want_maximised": false, @@ -9,7 +9,7 @@ "mkfs_options": "" }, { - "label": "@DISTRONAME@Storage", + "label": "@DISTRONAME@_@PROJECT@_Storage", "filesystem_type": "ext4", "partition_size_nominal": 864, "want_maximised": true, diff --git a/scripts/image b/scripts/image index d881dc5c8f..e7c793f0d8 100755 --- a/scripts/image +++ b/scripts/image @@ -324,76 +324,82 @@ IMAGE_NAME="$DISTRONAME-$TARGET_VERSION" rm -rf $RELEASE_DIR # create release dir - mkdir -p $RELEASE_DIR + mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT} - cp -PR $ROOT/config/$1/* $RELEASE_DIR + cp -PR $ROOT/config/$1/* $RELEASE_DIR/${DISTRONAME}_${PROJECT} - cp $ROOT/README* $RELEASE_DIR - cp $ROOT/CHANGELOG $RELEASE_DIR/release_notes.txt + cp $ROOT/README* $RELEASE_DIR/${DISTRONAME}_${PROJECT} + cp $ROOT/CHANGELOG $RELEASE_DIR/${DISTRONAME}_${PROJECT}/release_notes.txt sed -e "s%@DISTRONAME@%$DISTRONAME%g" \ + -e "s%@PROJECT@%$PROJECT%g" \ -e "s%@OPENELEC_VERSION@%$OPENELEC_VERSION%g" \ -e "s%@RELEASE_DATE@%$(date +%F)%g" \ -e "s%@KERNEL_VERSION@%$(kernel_version)%g" \ -e "s%@DESCRIPTION@%$DESCRIPTION%g" \ - -i $RELEASE_DIR/os.json + -i $RELEASE_DIR/${DISTRONAME}_${PROJECT}/os.json sed -e "s%@DISTRONAME@%$DISTRONAME%g" \ - -i $RELEASE_DIR/partitions.json + -e "s%@PROJECT@%$PROJECT%g" \ + -i $RELEASE_DIR/${DISTRONAME}_${PROJECT}/partitions.json # create System dir - mkdir -p $RELEASE_DIR/System + mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System BOOTLOADER_DIR=`find $PACKAGES -type d -name $BOOTLOADER 2>/dev/null` if [ -d "$BOOTLOADER_DIR"/files/3rdparty/bootloader/ ]; then - cp -PR $BOOTLOADER_DIR/files/3rdparty/bootloader/* $RELEASE_DIR/System + cp -PR $BOOTLOADER_DIR/files/3rdparty/bootloader/* $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System fi # copy Bootloader - cp -PR $BUILD/bcm2835-bootloader-*/LICENCE* $RELEASE_DIR/System/ - cp -PR $BUILD/bcm2835-bootloader-*/bootcode.bin $RELEASE_DIR/System/ - cp -PR $BUILD/bcm2835-bootloader-*/fixup_x.dat $RELEASE_DIR/System/fixup.dat - cp -PR $BUILD/bcm2835-bootloader-*/start_x.elf $RELEASE_DIR/System/start.elf + cp -PR $BUILD/bcm2835-bootloader-*/LICENCE* $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/ + cp -PR $BUILD/bcm2835-bootloader-*/bootcode.bin $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/ + cp -PR $BUILD/bcm2835-bootloader-*/fixup_x.dat $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/fixup.dat + cp -PR $BUILD/bcm2835-bootloader-*/start_x.elf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/start.elf # copy system files - cp $TARGET_IMG/$IMAGE_NAME.system $RELEASE_DIR/System/SYSTEM - cp $TARGET_IMG/$IMAGE_NAME.kernel $RELEASE_DIR/System/kernel.img + cp $TARGET_IMG/$IMAGE_NAME.system $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/SYSTEM + cp $TARGET_IMG/$IMAGE_NAME.kernel $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/kernel.img - if [ -f $INSTALL/usr/share/bootloader/*.dtb ]; then - cp -PR $INSTALL/usr/share/bootloader/*.dtb $RELEASE_DIR/System - fi + for dtb in $INSTALL/usr/share/bootloader/*.dtb ; do + if [ -f $dtb ]; then + cp -PR $dtb $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System + fi + done - if [ -f $INSTALL/usr/share/bootloader/overlays/* ]; then - mkdir -p $RELEASE_DIR/System/overlays - cp -PR $INSTALL/usr/share/bootloader/overlays/* $RELEASE_DIR/System/overlays - fi + for overlay in $INSTALL/usr/share/bootloader/overlays/* ; do + if [ -f $overlay ]; then + mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/overlays + cp -PR $overlay $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/overlays + fi + done # create md5sum's - ( cd $RELEASE_DIR/System; + ( cd $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System; md5sum -t SYSTEM > SYSTEM.md5; md5sum -t kernel.img > kernel.img.md5; ) # copy additional files - cp -R $CONFIG/release/openelec.ico $RELEASE_DIR/System - mkdir -p $RELEASE_DIR/System/licenses - cp $ROOT/licenses/* $RELEASE_DIR/System/licenses + cp -R $CONFIG/release/openelec.ico $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System + mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/licenses + cp $ROOT/licenses/* $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/licenses # create Storage dir - mkdir -p $RELEASE_DIR/Storage + mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT}/Storage # remove an previous created release tarball - rm -rf $RELEASE_DIR/${DISTRONAME}System.tar.xz - rm -rf $RELEASE_DIR/${DISTRONAME}Storage.tar.xz + rm -rf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/${DISTRONAME}_${PROJECT}_System.tar.xz + rm -rf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/${DISTRONAME}_${PROJECT}_Storage.tar.xz # create filesystem tarballs - tar cJf $RELEASE_DIR/${DISTRONAME}System.tar.xz -C $RELEASE_DIR/System/ . - tar cJf $RELEASE_DIR/${DISTRONAME}Storage.tar.xz -C $RELEASE_DIR/Storage/ . + tar cJf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/${DISTRONAME}_${PROJECT}_System.tar.xz -C $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/ . + tar cJf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/${DISTRONAME}_${PROJECT}_Storage.tar.xz -C $RELEASE_DIR/${DISTRONAME}_${PROJECT}/Storage/ . # remove an filesystem dirs - rm -rf $RELEASE_DIR/System - rm -rf $RELEASE_DIR/Storage + rm -rf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System + rm -rf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/Storage # remove an previous created release tarball rm -rf $TARGET_IMG/${IMAGE_NAME}-$1.tar