From 5b3285d374ac93e9aabc6ee2c640a6d68a88dc80 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Mon, 25 Sep 2017 19:19:15 +0300 Subject: [PATCH] Build utils separately for different releases (incl. Stretch) --- lib/chroot-buildpackages.sh | 4 ++-- lib/debootstrap-ng.sh | 2 +- lib/distributions.sh | 2 +- lib/general.sh | 20 +++++++++++++++---- packages/extras-buildpkgs/00-libdri2.conf | 2 +- packages/extras-buildpkgs/04-libvdpau.conf | 5 +++-- packages/extras-buildpkgs/05-libump.conf | 5 +++-- packages/extras-buildpkgs/06-libcedrus.conf | 5 +++-- .../06-xf86-video-fbturbo.conf | 5 +++-- packages/extras-buildpkgs/90-a10disp.conf | 5 +++-- .../90-fswebcam-gc2035.conf.disabled | 3 ++- .../90-guvcview.conf.disabled | 3 ++- .../extras-buildpkgs/90-hostapd-realtek.conf | 9 ++++++--- packages/extras-buildpkgs/90-hostapd.conf | 9 ++++++--- packages/extras-buildpkgs/90-libglshim.conf | 5 +++-- .../90-libmali-sunxi-r3p0.conf | 5 +++-- .../extras-buildpkgs/90-libvdpau-sunxi.conf | 5 +++-- packages/extras-buildpkgs/90-sunxi-tools.conf | 4 ++-- packages/extras-buildpkgs/90-swconfig.conf | 6 ++++-- packages/extras-buildpkgs/README.md | 2 +- .../hostapd-realtek/debian/rules | 4 +++- .../extras-buildpkgs/hostapd/debian/rules | 4 +++- .../extras-buildpkgs/sunxi-tools/debian/rules | 1 + 23 files changed, 75 insertions(+), 40 deletions(-) diff --git a/lib/chroot-buildpackages.sh b/lib/chroot-buildpackages.sh index 36ae25aa2f..f96834f647 100644 --- a/lib/chroot-buildpackages.sh +++ b/lib/chroot-buildpackages.sh @@ -107,7 +107,7 @@ chroot_build_packages() { local built_ok=() local failed=() - for release in jessie xenial; do + for release in jessie xenial stretch; do for arch in armhf arm64; do display_alert "Starting package building process" "$release/$arch" "info" @@ -268,7 +268,7 @@ chroot_installpackages_local() aptly -config=$conf repo create temp # NOTE: this works recursively aptly -config=$conf repo add temp $DEST/debs/extra/${RELEASE}-desktop/ - aptly -config=$conf repo add temp $DEST/debs/extra/utils/ + aptly -config=$conf repo add temp $DEST/debs/extra/${RELEASE}-utils/ # -gpg-key="925644A6" aptly -keyring="$SRC/packages/extras-buildpkgs/buildpkg-public.gpg" -secret-keyring="$SRC/packages/extras-buildpkgs/buildpkg.gpg" -batch=true -config=$conf \ -gpg-key="925644A6" -passphrase="testkey1234" -component=temp -distribution=$RELEASE publish repo temp diff --git a/lib/debootstrap-ng.sh b/lib/debootstrap-ng.sh index 953482b9bd..70408dbeef 100644 --- a/lib/debootstrap-ng.sh +++ b/lib/debootstrap-ng.sh @@ -168,7 +168,7 @@ create_rootfs_cache() create_sources_list "$RELEASE" "$SDCARD/" # stage: add armbian repository and install key - echo "deb http://apt.armbian.com $RELEASE main utils ${RELEASE}-desktop" > $SDCARD/etc/apt/sources.list.d/armbian.list + echo "deb http://apt.armbian.com $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > $SDCARD/etc/apt/sources.list.d/armbian.list cp $SRC/config/armbian.key $SDCARD eval 'chroot $SDCARD /bin/bash -c "cat armbian.key | apt-key add -"' \ diff --git a/lib/distributions.sh b/lib/distributions.sh index f72309b25e..c5978835c1 100644 --- a/lib/distributions.sh +++ b/lib/distributions.sh @@ -138,7 +138,7 @@ install_common() cp $SRC/config/armbian_first_run.txt $SDCARD/boot/armbian_first_run.txt # switch to beta repository at this stage if building nightly images - [[ $IMAGE_TYPE == nightly ]] && echo "deb http://beta.armbian.com $RELEASE main utils ${RELEASE}-desktop" > $SDCARD/etc/apt/sources.list.d/armbian.list + [[ $IMAGE_TYPE == nightly ]] && echo "deb http://beta.armbian.com $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" > $SDCARD/etc/apt/sources.list.d/armbian.list # disable low-level kernel messages for non betas # TODO: enable only for desktop builds? diff --git a/lib/general.sh b/lib/general.sh index e23f64fd5e..49160e7c08 100644 --- a/lib/general.sh +++ b/lib/general.sh @@ -370,7 +370,10 @@ addtorepo() aptly repo create -config=../config/aptly.conf -distribution=$release -component=main -comment="Armbian main repository" $release fi if [[ -z $(aptly repo list -config=../config/aptly.conf -raw | awk '{print $(NF)}' | grep "^utils") ]]; then - aptly repo create -config=../config/aptly.conf -distribution=$release -component="utils" -comment="Armbian utilities" utils + aptly repo create -config=../config/aptly.conf -distribution=$release -component="utils" -comment="Armbian utilities (backwards compatibility)" utils + fi + if [[ -z $(aptly repo list -config=../config/aptly.conf -raw | awk '{print $(NF)}' | grep "${release}-utils") ]]; then + aptly repo create -config=../config/aptly.conf -distribution=$release -component="${release}-utils" -comment="Armbian utilities" utils fi if [[ -z $(aptly repo list -config=../config/aptly.conf -raw | awk '{print $(NF)}' | grep "${release}-desktop") ]]; then aptly repo create -config=../config/aptly.conf -distribution=$release -component="${release}-desktop" -comment="Armbian desktop" ${release}-desktop @@ -393,14 +396,23 @@ addtorepo() display_alert "Not adding $release" "main" "wrn" fi - # adding utils - if find ${POT}extra/utils -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then + # adding old utils and new jessie-utils for backwards compatibility with older images + if find ${POT}extra/jessie-utils -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then display_alert "Adding to repository $release" "utils" "ext" aptly repo add -config=../config/aptly.conf "utils" ${POT}extra/utils/*.deb + aptly repo add -config=../config/aptly.conf "utils" ${POT}extra/jessie-utils/*.deb else display_alert "Not adding $release" "utils" "wrn" fi + # adding release-specific utils + if find ${POT}extra/${release}-utils -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then + display_alert "Adding to repository $release" "${release}-utils" "ext" + aptly repo add -config=../config/aptly.conf "${release}-utils" ${POT}extra/${release}-utils/*.deb + else + display_alert "Not adding $release" "${release}-utils" "wrn" + fi + # adding desktop if find ${POT}extra/${release}-desktop -maxdepth 1 -type f -name "*.deb" 2>/dev/null | grep -q .; then display_alert "Adding to repository $release" "desktop" "ext" @@ -411,7 +423,7 @@ addtorepo() # publish aptly publish -passphrase=$GPG_PASS -origin=Armbian -label=Armbian -config=../config/aptly.conf -component=main,utils,${release}-desktop \ - --distribution=$release repo $release utils ${release}-desktop + --distribution=$release repo $release utils ${release}-utils ${release}-desktop if [[ $? -ne 0 ]]; then display_alert "Publishing failed" "$release" "err" diff --git a/packages/extras-buildpkgs/00-libdri2.conf b/packages/extras-buildpkgs/00-libdri2.conf index 702350ce0c..34f5e43d91 100644 --- a/packages/extras-buildpkgs/00-libdri2.conf +++ b/packages/extras-buildpkgs/00-libdri2.conf @@ -17,5 +17,5 @@ package_checkbuild() package_checkinstall() { - [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $BRANCH == default && $BUILD_DESKTOP == yes ]] + [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $BRANCH == default && $RELEASE == jessie && $BUILD_DESKTOP == yes ]] } diff --git a/packages/extras-buildpkgs/04-libvdpau.conf b/packages/extras-buildpkgs/04-libvdpau.conf index e7def9d92a..8802e169f8 100644 --- a/packages/extras-buildpkgs/04-libvdpau.conf +++ b/packages/extras-buildpkgs/04-libvdpau.conf @@ -11,10 +11,11 @@ local package_component="${release}-desktop" package_checkbuild() { - true + # we don't support running kernels < 3.13 on Stretch + [[ $release != stretch ]] } package_checkinstall() { - [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $BRANCH == default && $BUILD_DESKTOP == yes ]] + [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $BRANCH == default && $RELEASE != stretch && $BUILD_DESKTOP == yes ]] } diff --git a/packages/extras-buildpkgs/05-libump.conf b/packages/extras-buildpkgs/05-libump.conf index 896e86ad5a..e00b37381a 100644 --- a/packages/extras-buildpkgs/05-libump.conf +++ b/packages/extras-buildpkgs/05-libump.conf @@ -11,10 +11,11 @@ local package_component="${release}-desktop" package_checkbuild() { - [[ $arch == armhf ]] + # we don't support running kernels < 3.13 on Stretch + [[ $arch == armhf && $release != stretch ]] } package_checkinstall() { - [[ $LINUXFAMILY == sun*i && $BRANCH == default && $BUILD_DESKTOP == yes ]] + [[ $LINUXFAMILY == sun*i && $BRANCH == default && $RELEASE != stretch && $BUILD_DESKTOP == yes ]] } diff --git a/packages/extras-buildpkgs/06-libcedrus.conf b/packages/extras-buildpkgs/06-libcedrus.conf index 3ac70c8ecf..107a5c4c24 100644 --- a/packages/extras-buildpkgs/06-libcedrus.conf +++ b/packages/extras-buildpkgs/06-libcedrus.conf @@ -11,10 +11,11 @@ local package_component="${release}-desktop" package_checkbuild() { - true + # we don't support running kernels < 3.13 on Stretch + [[ $release != stretch ]] } package_checkinstall() { - [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $BRANCH == default && $BUILD_DESKTOP == yes ]] + [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $RELEASE != stretch && $BRANCH == default && $BUILD_DESKTOP == yes ]] } diff --git a/packages/extras-buildpkgs/06-xf86-video-fbturbo.conf b/packages/extras-buildpkgs/06-xf86-video-fbturbo.conf index 438bcc1dd6..c8f1244b37 100644 --- a/packages/extras-buildpkgs/06-xf86-video-fbturbo.conf +++ b/packages/extras-buildpkgs/06-xf86-video-fbturbo.conf @@ -11,10 +11,11 @@ local package_component="${release}-desktop" package_checkbuild() { - true + # may be enabled on Stretch in the future + [[ $release != stretch ]] } package_checkinstall() { - [[ ( $LINUXFAMILY == sun*i* || $LINUXFAMILY == pine64 ) && $BUILD_DESKTOP == yes && $BRANCH == default ]] + [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $RELEASE != stretch && $BUILD_DESKTOP == yes && $BRANCH == default ]] } diff --git a/packages/extras-buildpkgs/90-a10disp.conf b/packages/extras-buildpkgs/90-a10disp.conf index bf38d826aa..1fde84f1da 100644 --- a/packages/extras-buildpkgs/90-a10disp.conf +++ b/packages/extras-buildpkgs/90-a10disp.conf @@ -4,14 +4,15 @@ local package_repo="https://github.com/hglm/a10disp.git" local package_ref="branch:master" local package_builddeps="linux-headers-armmp" local package_install_target="a10disp" -local package_component="utils" +local package_component="${release}-utils" package_checkbuild() { + # we don't support running kernels < 3.13 on Stretch [[ $arch == armhf && $release == jessie ]] } package_checkinstall() { - [[ ( $LINUXFAMILY == sun4i || $LINUXFAMILY == sun7i ) && $BRANCH == default ]] + [[ ( $LINUXFAMILY == sun4i || $LINUXFAMILY == sun7i ) && $RELEASE != stretch && $BRANCH == default ]] } diff --git a/packages/extras-buildpkgs/90-fswebcam-gc2035.conf.disabled b/packages/extras-buildpkgs/90-fswebcam-gc2035.conf.disabled index 0f52e06cfc..417cabc2f5 100644 --- a/packages/extras-buildpkgs/90-fswebcam-gc2035.conf.disabled +++ b/packages/extras-buildpkgs/90-fswebcam-gc2035.conf.disabled @@ -9,7 +9,8 @@ local package_component="${release}-desktop" package_checkbuild() { - [[ $arch == armhf ]] + # we don't support running kernels < 3.13 on Stretch + [[ $arch == armhf && $release != stretch ]] } package_checkinstall() diff --git a/packages/extras-buildpkgs/90-guvcview.conf.disabled b/packages/extras-buildpkgs/90-guvcview.conf.disabled index 9dd5f6e47f..92915b3ec9 100644 --- a/packages/extras-buildpkgs/90-guvcview.conf.disabled +++ b/packages/extras-buildpkgs/90-guvcview.conf.disabled @@ -10,7 +10,8 @@ local package_component="${release}-desktop" package_checkbuild() { - [[ $arch == armhf ]] + # we don't support running kernels < 3.13 on Stretch + [[ $arch == armhf && $release != stretch ]] } package_checkinstall() diff --git a/packages/extras-buildpkgs/90-hostapd-realtek.conf b/packages/extras-buildpkgs/90-hostapd-realtek.conf index 6281bdfabb..3cf7fa4e4c 100644 --- a/packages/extras-buildpkgs/90-hostapd-realtek.conf +++ b/packages/extras-buildpkgs/90-hostapd-realtek.conf @@ -3,13 +3,16 @@ local package_name="hostapd-realtek" local package_repo="http://w1.fi/hostap.git" local package_ref="tag:hostap_2_5" local package_upstream_version="2:2.5-1" -local package_builddeps="pkg-config libssl-dev libreadline-dev libpcsclite-dev libnl-route-3-dev libnl-genl-3-dev libnl-3-dev libncurses5-dev libdbus-1-dev docbook-utils docbook-to-man" +local package_builddeps="pkg-config libreadline-dev libpcsclite-dev libnl-route-3-dev libnl-genl-3-dev libnl-3-dev libncurses5-dev libdbus-1-dev docbook-utils docbook-to-man" +local package_builddeps_jessie="libssl-dev" +local package_builddeps_xenial="libssl-dev" +local package_builddeps_stretch="libssl1.0-dev" local package_install_target="hostapd-realtek" -local package_component="utils" +local package_component="${release}-utils" package_checkbuild() { - [[ $release == jessie ]] + true } package_checkinstall() diff --git a/packages/extras-buildpkgs/90-hostapd.conf b/packages/extras-buildpkgs/90-hostapd.conf index 65b8888a66..fbcc7b5682 100644 --- a/packages/extras-buildpkgs/90-hostapd.conf +++ b/packages/extras-buildpkgs/90-hostapd.conf @@ -3,13 +3,16 @@ local package_name="hostapd" local package_repo="http://w1.fi/hostap.git" local package_ref="tag:hostap_2_5" local package_upstream_version="2:2.5-1" -local package_builddeps="pkg-config libssl-dev libreadline-dev libpcsclite-dev libnl-route-3-dev libnl-genl-3-dev libnl-3-dev libncurses5-dev libdbus-1-dev docbook-utils docbook-to-man" +local package_builddeps="pkg-config libreadline-dev libpcsclite-dev libnl-route-3-dev libnl-genl-3-dev libnl-3-dev libncurses5-dev libdbus-1-dev docbook-utils docbook-to-man" +local package_builddeps_jessie="libssl-dev" +local package_builddeps_xenial="libssl-dev" +local package_builddeps_stretch="libssl1.0-dev" local package_install_target="hostapd" -local package_component="utils" +local package_component="${release}-utils" package_checkbuild() { - [[ $release == jessie ]] + true } package_checkinstall() diff --git a/packages/extras-buildpkgs/90-libglshim.conf b/packages/extras-buildpkgs/90-libglshim.conf index 72ca55a255..6da1092a43 100644 --- a/packages/extras-buildpkgs/90-libglshim.conf +++ b/packages/extras-buildpkgs/90-libglshim.conf @@ -9,10 +9,11 @@ local package_component="${release}-desktop" package_checkbuild() { - [[ $arch == armhf ]] + # we don't support running kernels < 3.13 on Stretch + [[ $arch == armhf && $release != stretch ]] } package_checkinstall() { - [[ $LINUXFAMILY == sun[4578]i && $BRANCH == default && $BUILD_DESKTOP == yes ]] + [[ $LINUXFAMILY == sun[4578]i && $BRANCH == default && $RELEASE != stretch && $BUILD_DESKTOP == yes ]] } diff --git a/packages/extras-buildpkgs/90-libmali-sunxi-r3p0.conf b/packages/extras-buildpkgs/90-libmali-sunxi-r3p0.conf index e95a8d3a48..5d5930caec 100644 --- a/packages/extras-buildpkgs/90-libmali-sunxi-r3p0.conf +++ b/packages/extras-buildpkgs/90-libmali-sunxi-r3p0.conf @@ -9,10 +9,11 @@ local package_component="${release}-desktop" package_checkbuild() { - [[ $arch == armhf ]] + # we don't support running kernels < 3.13 on Stretch + [[ $arch == armhf && $release != stretch ]] } package_checkinstall() { - [[ $LINUXFAMILY == sun[4578]i && $BRANCH == default && $BUILD_DESKTOP == yes ]] + [[ $LINUXFAMILY == sun[4578]i && $BRANCH == default && $RELEASE != stretch && $BUILD_DESKTOP == yes ]] } diff --git a/packages/extras-buildpkgs/90-libvdpau-sunxi.conf b/packages/extras-buildpkgs/90-libvdpau-sunxi.conf index 6c3a0f09ec..2fe5feb26f 100644 --- a/packages/extras-buildpkgs/90-libvdpau-sunxi.conf +++ b/packages/extras-buildpkgs/90-libvdpau-sunxi.conf @@ -12,10 +12,11 @@ local package_component="${release}-desktop" package_checkbuild() { - true + # we don't support running kernels < 3.13 on Stretch + [[ $release != stretch ]] } package_checkinstall() { - [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $BRANCH == default && $BUILD_DESKTOP == yes ]] + [[ ( $LINUXFAMILY == sun*i || $LINUXFAMILY == pine64 ) && $RELEASE != stretch && $BRANCH == default && $BUILD_DESKTOP == yes ]] } diff --git a/packages/extras-buildpkgs/90-sunxi-tools.conf b/packages/extras-buildpkgs/90-sunxi-tools.conf index 90d4f15022..9a60cf6bfe 100644 --- a/packages/extras-buildpkgs/90-sunxi-tools.conf +++ b/packages/extras-buildpkgs/90-sunxi-tools.conf @@ -5,11 +5,11 @@ local package_ref="branch:master" local package_upstream_version="1.4.2-1" local package_builddeps="libusb-1.0-0-dev ruby binutils-arm-none-eabi pkg-config u-boot-tools" local package_install_target="sunxi-tools" -local package_component="utils" +local package_component="${release}-utils" package_checkbuild() { - [[ $release == jessie ]] + true } package_checkinstall() diff --git a/packages/extras-buildpkgs/90-swconfig.conf b/packages/extras-buildpkgs/90-swconfig.conf index 0475247c0c..efbf81dc84 100644 --- a/packages/extras-buildpkgs/90-swconfig.conf +++ b/packages/extras-buildpkgs/90-swconfig.conf @@ -5,14 +5,16 @@ local package_ref="branch:master" local package_builddeps="linux-headers-armmp libnl-3-dev libnl-genl-3-dev" local package_upstream_version="15.04-2" local package_install_target="swconfig" -local package_component="utils" +local package_component="${release}-utils" package_checkbuild() { + # we don't support running kernels < 3.13 on Stretch + # matching kernel headers on Xenial is complicated and R1 is not supported anymore anyway [[ $arch == armhf && $release == jessie ]] } package_checkinstall() { - [[ $BOARD == lamobo-r1 && $BRANCH == default ]] + [[ $BOARD == lamobo-r1 && $RELEASE == jessie && $BRANCH == default ]] } diff --git a/packages/extras-buildpkgs/README.md b/packages/extras-buildpkgs/README.md index 14dc07b365..e6452854c7 100644 --- a/packages/extras-buildpkgs/README.md +++ b/packages/extras-buildpkgs/README.md @@ -6,7 +6,7 @@ # Limitations -* Packages are built only for Jessie and Xenial target, installing on older distributions may be done manually if dependencies can be satisfied +* Packages are built only for Jessie, Xenial and Stretch targets, installing on older distributions may be done manually if dependencies can be satisfied # TODO diff --git a/packages/extras-buildpkgs/hostapd-realtek/debian/rules b/packages/extras-buildpkgs/hostapd-realtek/debian/rules index 3f985f337b..e7de0f65da 100644 --- a/packages/extras-buildpkgs/hostapd-realtek/debian/rules +++ b/packages/extras-buildpkgs/hostapd-realtek/debian/rules @@ -1,6 +1,8 @@ #!/usr/bin/make -f -export DEB_BUILD_MAINT_OPTIONS=hardening=+all +# without "-relro,-pie" building on Stretch breaks +export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro,-pie + include /usr/share/dpkg/buildflags.mk # The build system doesn't use CPPFLAGS, pass them to CFLAGS/CXXFLAGS to diff --git a/packages/extras-buildpkgs/hostapd/debian/rules b/packages/extras-buildpkgs/hostapd/debian/rules index 08b02bbbfe..3926dbfb70 100644 --- a/packages/extras-buildpkgs/hostapd/debian/rules +++ b/packages/extras-buildpkgs/hostapd/debian/rules @@ -1,6 +1,8 @@ #!/usr/bin/make -f -export DEB_BUILD_MAINT_OPTIONS=hardening=+all +# without "-relro,-pie" building on Stretch breaks +export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-relro,-pie + include /usr/share/dpkg/buildflags.mk # The build system doesn't use CPPFLAGS, pass them to CFLAGS/CXXFLAGS to diff --git a/packages/extras-buildpkgs/sunxi-tools/debian/rules b/packages/extras-buildpkgs/sunxi-tools/debian/rules index 9c3fccc56f..d0d34c348a 100644 --- a/packages/extras-buildpkgs/sunxi-tools/debian/rules +++ b/packages/extras-buildpkgs/sunxi-tools/debian/rules @@ -6,6 +6,7 @@ include /usr/share/dpkg/architecture.mk # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 +# without this building on Stretch breaks export DEB_BUILD_MAINT_OPTIONS = hardening=-relro,-pie %: