diff --git a/README.md b/README.md index 834bb66..d2b74d9 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Installation ``` git clone git://github.com/YunoHost/cd_build.git cd cd_build -sudo apt-get install -f simple-cdd genisoimage qemu-kvm xorriso syslinux-utils +sudo apt-get install -f simple-cdd genisoimage qemu-kvm xorriso syslinux-utils cpio ``` Build an image diff --git a/add-firmware-to b/add-firmware-to index 2ba33be..a528a83 100755 --- a/add-firmware-to +++ b/add-firmware-to @@ -29,7 +29,7 @@ set -x is_iso() { - file "$1" | grep -q "ISO 9660" + file "$1" | grep -q "ISO 9660\|DOS/MBR boot sector" } is_initrd() { diff --git a/build-yunohost b/build-yunohost index 0b03d0e..703bc0a 100755 --- a/build-yunohost +++ b/build-yunohost @@ -28,23 +28,41 @@ function build sed -i "s#$REPO_URL jessie stable testing#$REPO_URL $DEB_DIST stable#" profiles/*.preseed sed -i "s#$REPO_URL stretch stable testing#$REPO_URL $DEB_DIST stable#" profiles/*.preseed fi + + # Build a simple/regular debian CD image ? build-simple-cdd --dist $DEB_DIST --conf ./simple-cdd-$ARCH.conf # Find the release version of debian local DEBNUM="$(grep "Version:" tmp/${DEB_DIST}_Release | awk '{print $2;}')" # Find the release version of YunoHost - wget ${REPO_URL}dists/${DEB_DIST}/${DIST}/binary-i386/Packages.gz + info "Finding out current YunoHost's stable vesion number" + wget -q ${REPO_URL}dists/${DEB_DIST}/${DIST}/binary-i386/Packages.gz gunzip Packages.gz YNH_VERSION=$(grep "^Package: yunohost$" --after-context=1 Packages | grep "Version" | awk '{print $2;}') rm -f Packages - rm -f images/yunohost-$DEB_DIST-$YNH_VERSION-$ARCH-$DIST.iso - $(pwd)/add-firmware-to images/debian-$DEBNUM-$ARCH-CD-1.iso images/yunohost-$DEB_DIST-$YNH_VERSION-$ARCH-$DIST.iso $DEB_DIST - rm -f images/debian-$DEBNUM-$ARCH-CD-1.iso - rm -f images/debian-$DEBNUM-$ARCH-CD-1.list.gz - success "The image should now be available in images/yunohost-$DEB_DIST-$YNH_VERSION-$ARCH-$DIST.iso" + local CD_STUFF="images/debian-$DEBNUM-$ARCH-CD" + # build-simple-cdd is stupid and doesn't name its output correctly -.- ... + mv images/debian-*-$ARCH-CD-1.iso $CD_STUFF.iso + mv images/debian-*-$ARCH-CD-1.list.gz $CD_STUFF.list.gz + + local OUTPUT="images/yunohost-$DEB_DIST-$YNH_VERSION-$ARCH-$DIST.iso" + + [ -e "$CD_STUFF.iso" ] \ + || critical "Expected to find $CD_STUFF.iso but it's not here ?" + + rm -f $OUTPUT + + $(pwd)/add-firmware-to $CD_STUFF.iso $OUTPUT $DEB_DIST + + rm -f $CD_STUFF.iso + rm -f $CD_STUFF.list.gz + + [ -e $OUTPUT ] \ + && success "The image should now be available in $OUTPUT" \ + || critical "Something wrong happened when build the image :|" } # Sign the new iso @@ -57,14 +75,16 @@ function sign info "Signing image $NAME ..." gpg --output $NAME.sig --detach-sig $NAME + sha256sum $NAME > $NAME.sum } function build_and_sign { local ARCH="$1" - - rm -r $(pwd)/tmp + + rm -rf $(pwd)/tmp + rm -rf $(pwd)/images/debian* build $ARCH sign $ARCH } diff --git a/common.sh b/common.sh index 39895dd..0e40d87 100644 --- a/common.sh +++ b/common.sh @@ -29,15 +29,24 @@ function info() function warn() { local msg=${1} - echo " " - echo "[${BOLD}${ORANGE}WARN${NORMAL}] ${msg}" - echo " " + echo " " 2>&1 + echo "[${BOLD}${ORANGE}WARN${NORMAL}] ${msg}" 2>&1 + echo " " 2>&1 } function error() { local msg=${1} - echo " " - echo "[${BOLD}${RED}FAIL${NORMAL}] ${msg}" - echo " " + echo " " 2>&1 + echo "[${BOLD}${RED}FAIL${NORMAL}] ${msg}" 2>&1 + echo " " 2>&1 +} + +function critical() +{ + local msg=${1} + echo " " 2>&1 + echo "[${BOLD}${RED}CRIT${NORMAL}] ${msg}" 2>&1 + echo " " 2>&1 + exit 1 }