Building on stretch (#7)

* Cosmetics / try to avoid a few unecessary error message (rm without -f)
* Use isohybrid to add MBR/EFI stuff such that the iso is bootable with dd/Etcher
* Missing dependency cpio when running on stretch
* On stretch, build-simple-cdd output is not ISO 9660
* Cosmetics / adjusment / fixes when running on stretch...
This commit is contained in:
Alexandre Aubin 2018-03-08 20:54:13 +01:00 committed by GitHub
parent c3f7db27d7
commit 3b1e427272
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 45 additions and 16 deletions

View file

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

View file

@ -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() {

View file

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

View file

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