From 097dbf783c35216a32f2121ea5ca9377f4d780da Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Sun, 17 Jan 2021 22:16:45 +0100 Subject: [PATCH] temp/calamares: fork from Alpine to rebuild (MR 1876) bpo is currently failing to build images with the on-device installer, because calamares needs to be rebuilt against libboost_python38.so. Fork it until that's resolved. [ci:skip-vercheck] [ci:skip-build]: already built successfully in CI Related: https://builds.sr.ht/~postmarketos/job/398948#task-img_installer-307 --- temp/calamares/APKBUILD | 179 ++++++++++++++++++ .../calamares-mod-unpackfs.post-install | 5 + temp/calamares/modules-load.conf | 1 + 3 files changed, 185 insertions(+) create mode 100644 temp/calamares/APKBUILD create mode 100644 temp/calamares/calamares-mod-unpackfs.post-install create mode 100644 temp/calamares/modules-load.conf diff --git a/temp/calamares/APKBUILD b/temp/calamares/APKBUILD new file mode 100644 index 000000000..b6a40728b --- /dev/null +++ b/temp/calamares/APKBUILD @@ -0,0 +1,179 @@ +# Forked from Alpine, builders are stuck and it needs a rebuild + +pkgname=calamares +pkgver=3.2.35.1 +pkgrel=1 +# ppc64le, s390x, mips, mips64 blocked by qt5-qtwebengine +# armhf blocked by qt5-qtdeclarative +arch="aarch64 armv7" +url="https://calamares.io/" +pkgdesc="Distribution-independent installer framework" +license="GPL-3.0-or-later AND LGPL-2.1-only" +depends=" + ckbcomp + musl-locales + os-prober + python3 + " +depends_dev=" + extra-cmake-modules + kcoreaddons-dev + qt5-qttools-dev + yaml-cpp-dev + " +makedepends="$depends_dev + extra-cmake-modules + kconfig-dev + kcrash-dev + ki18n-dev + kpackage-dev + kparts-dev + kpmcore-dev + kservice-dev + kwidgetsaddons-dev + libatasmart-dev + libpwquality-dev + plasma-framework-dev + polkit-qt-1-dev + qt5-qtbase-dev + qt5-qtdeclarative-dev + qt5-qtsvg-dev + qt5-qtwebengine-dev + " +# required for several modules +makedepends="$makedepends + boost-dev + boost-python3 + parted-dev + python3-dev + " +checkdepends="xvfb-run tzdata" +source="https://github.com/calamares/calamares/archive/v$pkgver/calamares-$pkgver.tar.gz + modules-load.conf + " +subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" + +install="calamares-mod-unpackfs.post-install" +options="!check" # failing with qemu + +# Modules to build: +# https://github.com/calamares/calamares/tree/master/src/modules +_modules=" + bootloader + displaymanager + finished + fsresizer + fstab + grubcfg + hostinfo + hwclock + interactiveterminal + keyboard + keyboardq + locale + localeq + luksbootkeyfile + luksopenswaphookcfg + machineid + mkinitfs + mount + netinstall + networkcfg + notesqml + oemid + packagechooser + packages + partition + plasmalnf + plymouthcfg + preservefiles + rawfs + removeuser + services-openrc + shellprocess + summary + umount + unpackfs + users + webview + welcome + welcomeq + " + +for i in $_modules; do + subpackages="$pkgname-mod-$i:_module $subpackages" +done + +# Check if $1 is in $_modules +is_module_enabled() { + local i + for i in $_modules; do + [ "$i" = "$1" ] && return 0 + done + return 1 +} + +prepare() { + default_prepare + + local i + cd "$builddir/src/modules" + + # Fill $_skip_modules, list disabled modules + msg "Disabled modules:" + for i in *; do + if ! [ -d "$i" ] || is_module_enabled "$i"; then + continue + fi + _skip_modules="$_skip_modules $i" + echo " - $i" + done + + # List enabled modules + msg "Enabled modules:" + for i in $_modules; do + echo " - $i" + done +} + +build() { + cmake -B build \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DINSTALL_CONFIG=ON \ + -DSKIP_MODULES="$_skip_modules" + cmake --build build +} + +check() { + cd build + # libcalamaresnetworktest requires network access + CTEST_OUTPUT_ON_FAILURE=TRUE xvfb-run ctest -E "libcalamaresnetworktest" +} + +_module() { + local module=${subpkgname##calamares-mod-} + local path="usr/lib/calamares/modules" + + mkdir -p "$subpkgdir/$path" + mv "$pkgdir/$path/$module" "$subpkgdir/$path/$module" + + # Module-specific dependencies + case "$module" in + unpackfs) + depends="$depends rsync" + install -Dm644 "$srcdir"/modules-load.conf \ + "$subpkgdir"/usr/lib/modules-load.d/calamares.conf + ;; + mkinitfs) depends="$depends mkinitfs" ;; + locale) depends="$depends tzdata" ;; + esac +} + +package() { + DESTDIR="$pkgdir" cmake --build build --target install +} + +sha512sums="5c0c19fdfaeea85f467a6b59a3e088ad5709940a25521a28bbf8a9bb69a2e87d44f40a4500688c383036c48d4c4d70176bb170dcc39897fff3e09be3117de9ff calamares-3.2.35.1.tar.gz +c56ad3b92901abdb41cffaeceeff9a6c8dae3882aacf9a4b654a8898f1e26eeadda3ac3ac799b127b176cc31d397652f27a07bcdfbf7f4ede3c6826d08f7bd7d modules-load.conf" diff --git a/temp/calamares/calamares-mod-unpackfs.post-install b/temp/calamares/calamares-mod-unpackfs.post-install new file mode 100644 index 000000000..09dc43ac6 --- /dev/null +++ b/temp/calamares/calamares-mod-unpackfs.post-install @@ -0,0 +1,5 @@ +#!/bin/sh + +modprobe squashfs + +exit 0 diff --git a/temp/calamares/modules-load.conf b/temp/calamares/modules-load.conf new file mode 100644 index 000000000..7c1157fa3 --- /dev/null +++ b/temp/calamares/modules-load.conf @@ -0,0 +1 @@ +squashfs