123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521 |
- #!/bin/bash
- ################################################################################
- # This file is part of OpenELEC - http://www.openelec.tv
- # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
- #
- # OpenELEC is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 2 of the License, or
- # (at your option) any later version.
- #
- # OpenELEC is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
- ################################################################################
- . config/options $1
- show_config
- $SCRIPTS/checkdeps
- $SCRIPTS/build toolchain
- $SCRIPTS/build squashfs:host
- $SCRIPTS/build dosfstools:host
- $SCRIPTS/build fakeroot:host
- $SCRIPTS/build kmod:host
- $SCRIPTS/build mtools:host
- $SCRIPTS/build populatefs:host
- BUILD_DATE=`date +%Y%m%d%H%M%S`
- if [ "$LIBREELEC_VERSION" = devel ]; then
- if ! GIT_BUILD=$(git rev-list --count HEAD 2>/dev/null)
- then
- GIT_BUILD=$(git rev-list HEAD | wc -l)
- fi
- GIT_HASH=$(git rev-parse HEAD)
- GIT_ABBREV=$(git log -1 --pretty=format:%h)
- DEVEL_VERSION=$LIBREELEC_VERSION
- LIBREELEC_VERSION=$LIBREELEC_VERSION-$BUILD_DATE-r$GIT_BUILD-g$GIT_ABBREV
- fi
- TARGET_VERSION="$PROJECT.$TARGET_ARCH-$LIBREELEC_VERSION"
- IMAGE_NAME="$DISTRONAME-$TARGET_VERSION"
- if [ "$DEVEL_VERSION" = "devel" ] ; then
- IMAGE_NAME="$DISTRONAME-$PROJECT.$TARGET_ARCH-$OS_VERSION-$LIBREELEC_VERSION"
- fi
- if [ "$PROJECT" == "imx6" -a -n "$SYSTEM" ]; then
- IMAGE_NAME="$IMAGE_NAME-$SYSTEM"
- fi
- if [ -n "$IMAGE_SUFFIX" ]; then
- IMAGE_NAME="$IMAGE_NAME-$IMAGE_SUFFIX"
- fi
- # setup fakeroot
- rm -rf $FAKEROOT_SCRIPT # remove $FAKEROOT_SCRIPT if it exist
- touch $FAKEROOT_SCRIPT # create an empty $FAKEROOT_SCRIPT
- chmod +x $FAKEROOT_SCRIPT # make $FAKEROOT_SCRIPT executable
- echo "chown -R 0:0 $INSTALL" >> $FAKEROOT_SCRIPT
- # clean old install dirs
- rm -rf $INSTALL
- rm -rf $STAMPS_INSTALL
- mkdir -p $INSTALL
- # create baselayout
- mkdir -p $INSTALL/bin
- mkdir -p $INSTALL/etc
- mkdir -p $INSTALL/lib
- mkdir -p $INSTALL/sbin
- mkdir -p $INSTALL/dev
- mkdir -p $INSTALL/proc
- mkdir -p $INSTALL/run
- mkdir -p $INSTALL/sys
- mkdir -p $INSTALL/tmp
- mkdir -p $INSTALL/usr
- mkdir -p $INSTALL/var
- mkdir -p $INSTALL/flash
- mkdir -p $INSTALL/storage
- ln -sf /var/media $INSTALL/media
- if [ "$TARGET_ARCH" = "x86_64" -o "$TARGET_ARCH" = "powerpc64" ]; then
- ln -s /lib $INSTALL/lib64
- ln -s lib $INSTALL/usr/lib64
- fi
- echo "$TARGET_VERSION" > $INSTALL/etc/release
- # create /etc/os-release
- echo -e "NAME=\"$DISTRONAME\"" > $INSTALL/etc/os-release
- echo -e "VERSION=\"$LIBREELEC_VERSION\"" >> $INSTALL/etc/os-release
- echo -e "ID=\"libreelec\"" >> $INSTALL/etc/os-release
- echo -e "VERSION_ID=\"$OS_VERSION\"" >> $INSTALL/etc/os-release
- echo -e "PRETTY_NAME=\"$DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "community")) - Version: $LIBREELEC_VERSION\"" >> $INSTALL/etc/os-release
- echo -e "HOME_URL=\"http://www.libreelec.tv\"" >> $INSTALL/etc/os-release
- echo -e "BUG_REPORT_URL=\"https://github.com/LibreELEC/LibreELEC.tv\"" >> $INSTALL/etc/os-release
- if [ -n "$GIT_HASH" ]; then
- echo -e "BUILD_ID=\"$GIT_HASH\"" >> $INSTALL/etc/os-release
- fi
- echo -e "LIBREELEC_ARCH=\"$PROJECT.$TARGET_ARCH\"" >> $INSTALL/etc/os-release
- if [ "$OFFICIAL" = "yes" ]; then
- echo -e "LIBREELEC_BUILD=\"official\"" >> $INSTALL/etc/os-release
- else
- echo -e "LIBREELEC_BUILD=\"community\"" >> $INSTALL/etc/os-release
- fi
- # create /etc/issue
- echo "$GREETING0" > $INSTALL/etc/issue
- echo "$GREETING1" >> $INSTALL/etc/issue
- echo "$GREETING2" >> $INSTALL/etc/issue
- echo "$GREETING3" >> $INSTALL/etc/issue
- echo "$GREETING4" >> $INSTALL/etc/issue
- echo "$DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "community")) Version: $LIBREELEC_VERSION" >> $INSTALL/etc/issue
- if [ -n "$GIT_HASH" ]; then
- echo "$DISTRONAME git: $GIT_HASH" >> $INSTALL/etc/issue
- fi
- ln -sf /etc/issue $INSTALL/etc/motd
- # Basissystem...
- $SCRIPTS/install libc
- $SCRIPTS/install gcc
- $SCRIPTS/install linux
- $SCRIPTS/install linux-drivers
- $SCRIPTS/install linux-firmware
- $SCRIPTS/install $BOOTLOADER
- $SCRIPTS/install busybox
- $SCRIPTS/install util-linux
- $SCRIPTS/install corefonts
- $SCRIPTS/install network
- # Graphic support
- [ ! "$DISPLAYSERVER" = "no" ] && $SCRIPTS/install $DISPLAYSERVER
- # Multimedia support
- [ ! "$MEDIACENTER" = "no" ] && $SCRIPTS/install mediacenter
- # Sound support
- [ "$ALSA_SUPPORT" = "yes" ] && $SCRIPTS/install alsa
- # Automounter support
- [ "$UDEVIL" = "yes" ] && $SCRIPTS/install udevil
- # NTFS 3G support
- [ "$EXFAT" = "yes" ] && $SCRIPTS/install fuse-exfat
- # NTFS 3G support
- [ "$NTFS3G" = "yes" ] && $SCRIPTS/install ntfs-3g_ntfsprogs
- # Remote support
- [ "$REMOTE_SUPPORT" = "yes" ] && $SCRIPTS/install remote
- # LCD support
- [ ! "$LCD_DRIVER" = "none" ] && $SCRIPTS/install lcdproc
- # Installer support
- [ "$INSTALLER_SUPPORT" = "yes" ] && $SCRIPTS/install installer
- # Devtools... (not for Release)
- [ "$TESTING" = "yes" ] && $SCRIPTS/install testing
- [ "$DEVTOOLS" = "yes" ] && $SCRIPTS/install debug
- # OEM packages
- [ "$OEM_SUPPORT" = "yes" ] && $SCRIPTS/install oem
- # copy project related files to filesystem
- if [ -d "$PROJECT_DIR/$PROJECT/filesystem" ]; then
- cp -PR $PROJECT_DIR/$PROJECT/filesystem/* $INSTALL
- # install project specific systemd services
- for service in $PROJECT_DIR/$PROJECT/filesystem/usr/lib/systemd/system/*.service ; do
- if [ -f "$service" ] ; then
- enable_service $(basename $service)
- fi
- done
- fi
- # copy vendor related files to filesystem
- if [ -d "$HOME/.libreelec/filesystem" ]; then
- cp -PR $HOME/.libreelec/filesystem/* $INSTALL
- # install project specific systemd services
- for service in $HOME/.libreelec/filesystem/usr/lib/systemd/system/*.service ; do
- if [ -f "$service" ] ; then
- enable_service $(basename $service)
- fi
- done
- fi
- # copy vendor project related files to filesystem
- if [ -d "$HOME/.libreelec/projects/$PROJECT/filesystem" ]; then
- cp -PR $HOME/.libreelec/projects/$PROJECT/filesystem/* $INSTALL
- # install project specific systemd services
- for service in $HOME/.libreelec/projects/$PROJECT/filesystem/usr/lib/systemd/system/*.service ; do
- if [ -f "$service" ] ; then
- enable_service $(basename $service)
- fi
- done
- fi
- # run depmod
- MODVER=$(basename $(ls -d $INSTALL/lib/modules/*))
- find $INSTALL/lib/modules/$MODVER/ -name *.ko | \
- sed -e "s,$INSTALL/lib/modules/$MODVER/,," > $INSTALL/lib/modules/$MODVER/modules.order
- $ROOT/$TOOLCHAIN/bin/depmod -b $INSTALL $MODVER 2> /dev/null
- # strip kernel modules
- for MOD in `find $INSTALL/lib/modules/ -type f -name *.ko`; do
- $STRIP --strip-debug $MOD
- done
- # make target dir
- mkdir -p $TARGET_IMG
- rm -rf $TARGET_IMG/$IMAGE_NAME.kernel
- # copy kernel to target dir
- if [ "$BOOTLOADER" = "bcm2835-bootloader" ]; then
- echo "injecting DeviceTreeBlobs to kernel..."
- perl $BUILD/linux-$(kernel_version)/scripts/mkknlimg $BUILD/linux-$(kernel_version)/arch/$TARGET_KERNEL_ARCH/boot/$KERNEL_TARGET $TARGET_IMG/$IMAGE_NAME.kernel
- echo "...done"
- else
- cp -PR $BUILD/linux-$(kernel_version)/arch/$TARGET_KERNEL_ARCH/boot/$KERNEL_TARGET $TARGET_IMG/$IMAGE_NAME.kernel
- fi
- chmod 0644 $TARGET_IMG/$IMAGE_NAME.kernel
- # create squashfs file
- if [ -z "$SQUASHFS_COMPRESSION" ]; then
- SQUASHFS_COMPRESSION="gzip"
- fi
- echo "rm -rf $TARGET_IMG/$IMAGE_NAME.system" >> $FAKEROOT_SCRIPT
- echo "$ROOT/$TOOLCHAIN/bin/mksquashfs $BUILD/image/system $TARGET_IMG/$IMAGE_NAME.system -noappend -comp $SQUASHFS_COMPRESSION" >> $FAKEROOT_SCRIPT
- # run fakeroot
- $ROOT/$TOOLCHAIN/bin/fakeroot -- $FAKEROOT_SCRIPT
- rm -rf $FAKEROOT_SCRIPT
- # set permissions
- chmod 0644 $TARGET_IMG/$IMAGE_NAME.system
- if [ "$1" = "release" -o "$1" = "mkimage" -o "$1" = "amlpkg" ]; then
- RELEASE_DIR="target/$IMAGE_NAME"
- # cleanup
- rm -rf $RELEASE_DIR
- # create release dir
- mkdir -p $RELEASE_DIR
- # remove n previous created release image
- rm -rf $TARGET_IMG/$IMAGE_NAME.img.gz
- if [ -n "$BOOTLOADER" ]; then
- BOOTLOADER_DIR=""
- if [ -z "$BOOTLOADER_DIR" -a -d $HOME/.openelec/projects/$PROJECT/packages ]; then
- BOOTLOADER_DIR=`find $HOME/.openelec/projects/$PROJECT/packages -type d -name $BOOTLOADER 2>/dev/null`
- fi
- if [ -z "$BOOTLOADER_DIR" -a -d $HOME/.openelec/packages ]; then
- BOOTLOADER_DIR=`find $HOME/.openelec/packages -type d -name $BOOTLOADER 2>/dev/null`
- fi
- if [ -z "$BOOTLOADER_DIR" -a -d $PROJECT_DIR/$PROJECT/packages ]; then
- BOOTLOADER_DIR=`find $PROJECT_DIR/$PROJECT/packages -type d -name $BOOTLOADER 2>/dev/null`
- fi
- if [ -z "$BOOTLOADER_DIR" -o ! -d "$BOOTLOADER_DIR" ]; then
- BOOTLOADER_DIR=`find $PACKAGES -type d -name $BOOTLOADER 2>/dev/null`
- fi
- if [ -d "$BOOTLOADER_DIR"/files ]; then
- cp -R $BOOTLOADER_DIR/files/* $RELEASE_DIR
- fi
- if [ -f $HOME/.openelec/projects/$PROJECT/bootloader/release ]; then
- . $HOME/.openelec/projects/$PROJECT/bootloader/release
- elif [ -f $HOME/.openelec/bootloader/release ]; then
- . $HOME/.openelec/bootloader/release
- elif [ -f $PROJECT_DIR/$PROJECT/bootloader/release ]; then
- . $PROJECT_DIR/$PROJECT/bootloader/release
- elif [ -f "$BOOTLOADER_DIR"/release ]; then
- . $BOOTLOADER_DIR/release
- fi
- fi
- # MfgTool2 for TBS Matrix support (add it to .tar)
- # only for matrix system or all? (one tar for all updates?)
- if [ "$PROJECT" == "imx6" -a "$SYSTEM" == "matrix" ]; then
- $SCRIPTS/unpack imx6-mfgtool2-tbs-matrix
- mkdir -p $RELEASE_DIR/MfgTool2-TBS-Matrix
- cp -PR $BUILD/imx6-mfgtool2-tbs-matrix-*/* $RELEASE_DIR/MfgTool2-TBS-Matrix
- fi
- cp $ROOT/README* $RELEASE_DIR
- cp $ROOT/CHANGELOG* $RELEASE_DIR
- echo "$TARGET_VERSION" > $RELEASE_DIR/RELEASE
- if [ -n "$MEDIACENTER" ] ; then
- echo "Kodi commit: `scripts/git_version $MEDIACENTER`" >> $RELEASE_DIR/RELEASE
- fi
- mkdir -p $RELEASE_DIR/licenses
- cp $ROOT/licenses/* $RELEASE_DIR/licenses
- mkdir -p $RELEASE_DIR/target
- cp $TARGET_IMG/$IMAGE_NAME.system $RELEASE_DIR/target/SYSTEM
- cp $TARGET_IMG/$IMAGE_NAME.kernel $RELEASE_DIR/target/KERNEL
- # create md5sum's
- ( cd $RELEASE_DIR;
- md5sum -t target/SYSTEM > target/SYSTEM.md5;
- md5sum -t target/KERNEL > target/KERNEL.md5;
- )
- # create target directory
- mkdir -p $TARGET_IMG
- # remove an previous created release tarball
- rm -rf $TARGET_IMG/$IMAGE_NAME.tar
- # create release tarball
- tar cf $TARGET_IMG/$IMAGE_NAME.tar -C target $IMAGE_NAME
- # create image files if requested
- if [ "$1" = "mkimage" -a -n "$BOOTLOADER" ]; then
- # projects can set KERNEL_NAME (kernel.img)
- if [ -z "$KERNEL_NAME" ] ; then
- KERNEL_NAME="KERNEL"
- fi
- UBOOT_SYSTEM=""
- if [ "$PROJECT" == "imx6" ]; then
- if [ -n "$SYSTEM" ]; then
- UBOOT_SYSTEM="$SYSTEM"
- else
- UBOOT_SYSTEM="cuboxi"
- fi
- fi
- # variables used in image script must be passed
- env \
- PATH="$PATH:/sbin" \
- ROOT="$ROOT" \
- TOOLCHAIN="$TOOLCHAIN" \
- TARGET_IMG="$TARGET_IMG" \
- IMAGE_NAME="$IMAGE_NAME" \
- BOOTLOADER="$BOOTLOADER" \
- KERNEL_NAME="$KERNEL_NAME" \
- RELEASE_DIR="$RELEASE_DIR" \
- UUID_SYSTEM="$(uuidgen)" \
- UUID_STORAGE="$(uuidgen)" \
- UBOOT_SYSTEM="$UBOOT_SYSTEM" \
- EXTRA_CMDLINE="$EXTRA_CMDLINE" \
- $SCRIPTS/mkimage
- fi
- # create WeTek Play (Amlogic) ZIP update and auto-install packages if requested
- if [ "$1" = "amlpkg" ]; then
- echo "Creating Amlogic ZIP update package"
- INSTALL_SRC_DIR="$PROJECT_DIR/$PROJECT/install"
- AML_PKG_DIR="$RELEASE_DIR/ampl-pkg"
- # create package directory
- mkdir -p "$AML_PKG_DIR"
- # copy system and kernel images
- mkdir -p "$AML_PKG_DIR/system"
- cp $TARGET_IMG/$IMAGE_NAME.system $AML_PKG_DIR/system/SYSTEM
- cp $TARGET_IMG/$IMAGE_NAME.kernel $AML_PKG_DIR/KERNEL
- # copy update-binary and updater-script
- META_INF_DIR="$AML_PKG_DIR/META-INF/com/google/android"
- mkdir -p "$META_INF_DIR"
- cp $INSTALL_SRC_DIR/update-binary $META_INF_DIR
- cp $INSTALL_SRC_DIR/updater-script $META_INF_DIR
- # copy other files if any
- if [ -d "$INSTALL_SRC_DIR/files" ]; then
- cp -PR $INSTALL_SRC_DIR/files/* $AML_PKG_DIR
- fi
- # create the update package
- pushd "$AML_PKG_DIR" > /dev/null
- zip -rq update.zip *
- # sign the update package
- echo "Signing the update package"
- mkdir -p sign
- SIGNAPK_DIR="$ROOT/tools/signapk"
- java -Xmx1024m -jar $SIGNAPK_DIR/signapk.jar -w $SIGNAPK_DIR/testkey.x509.pem $SIGNAPK_DIR/testkey.pk8 update.zip sign/$IMAGE_NAME-update.zip
- # create the auto-install package
- if [ -f "$INSTALL_SRC_DIR/files/recovery.img" ]; then
- echo "Creating Amlogic ZIP auto-install package"
- pushd sign > /dev/null
- echo --update_package=/sdcard/$IMAGE_NAME-update.zip > factory_update_param.aml
- cp $INSTALL_SRC_DIR/files/recovery.img .
- if [ -f $INSTALL_SRC_DIR/files/aml_autoscript ]; then
- cp $INSTALL_SRC_DIR/files/aml_autoscript .
- fi
- zip -q $TARGET_IMG/$IMAGE_NAME.zip *
- popd > /dev/null
- fi
- # copy update package to target directory
- cp sign/$IMAGE_NAME-update.zip $TARGET_IMG
- popd > /dev/null
- fi
- # cleanup release dir
- rm -rf $RELEASE_DIR
- elif [ "$1" = "noobs" ]; then
- RELEASE_DIR="$TARGET_IMG/${IMAGE_NAME}-$1"
- # cleanup
- rm -rf $RELEASE_DIR
- # create release dir
- mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT}
- cp -PR $DISTRO_DIR/$DISTRO/${DISTRONAME}.png $RELEASE_DIR/${DISTRONAME}_${PROJECT}/${DISTRONAME}_${PROJECT}.png
- cp -PR $ROOT/config/noobs/os.json $RELEASE_DIR/${DISTRONAME}_${PROJECT}
- cp -PR $ROOT/config/noobs/partition_setup.sh $RELEASE_DIR/${DISTRONAME}_${PROJECT}
- cp -PR $ROOT/config/noobs/partitions.json $RELEASE_DIR/${DISTRONAME}_${PROJECT}
- if [ -d $DISTRO_DIR/$DISTRO/noobs/marketing ]; then
- tar cf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/marketing.tar -C $DISTRO_DIR/$DISTRO/noobs/marketing .
- else
- tar cf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/marketing.tar -C $ROOT/config/noobs/marketing .
- fi
- 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%@LIBREELEC_VERSION@%$LIBREELEC_VERSION%g" \
- -e "s%@RELEASE_DATE@%$(date +%F)%g" \
- -e "s%@KERNEL_VERSION@%$(kernel_version)%g" \
- -e "s%@DESCRIPTION@%$DESCRIPTION%g" \
- -e "s%@ROOT_PASSWORD@%$ROOT_PASSWORD%g" \
- -e "s%@NOOBS_SUPPORTED_MODELS@%$NOOBS_SUPPORTED_MODELS%g" \
- -e "s%@NOOBS_HEX@%$NOOBS_HEX%g" \
- -i $RELEASE_DIR/${DISTRONAME}_${PROJECT}/os.json
- sed -e "s%@DISTRONAME@%$DISTRONAME%g" \
- -e "s%@PROJECT@%$PROJECT%g" \
- -i $RELEASE_DIR/${DISTRONAME}_${PROJECT}/partitions.json
- # create System dir
- 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/${DISTRONAME}_${PROJECT}/System
- fi
- # copy Bootloader
- 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/${DISTRONAME}_${PROJECT}/System/SYSTEM
- cp $TARGET_IMG/$IMAGE_NAME.kernel $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/kernel.img
- for dtb in $INSTALL/usr/share/bootloader/*.dtb ; do
- if [ -f $dtb ]; then
- cp -PR $dtb $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System
- fi
- done
- 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/${DISTRONAME}_${PROJECT}/System;
- md5sum -t SYSTEM > SYSTEM.md5;
- md5sum -t kernel.img > kernel.img.md5;
- )
- # copy additional files
- mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/licenses
- cp $ROOT/licenses/* $RELEASE_DIR/${DISTRONAME}_${PROJECT}/System/licenses
- # create Storage dir
- mkdir -p $RELEASE_DIR/${DISTRONAME}_${PROJECT}/Storage
- # remove an previous created release tarball
- 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}_${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/${DISTRONAME}_${PROJECT}/System
- rm -rf $RELEASE_DIR/${DISTRONAME}_${PROJECT}/Storage
- # remove an previous created release tarball
- rm -rf $TARGET_IMG/${IMAGE_NAME}-$1.tar
- # create release tarball
- tar cf $TARGET_IMG/${IMAGE_NAME}-$1.tar -C $TARGET ${IMAGE_NAME}-$1
- # cleanup release dir
- rm -rf $RELEASE_DIR
- fi
|