From c8daadccefa390907f500ca3a2621312e2a2dcb6 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 10 Mar 2018 21:35:47 +0100 Subject: building up to meson --- README | 8 ++++++++ TODOS | 6 ++++++ build_stage1_package.sh | 8 ++++++-- build_stage2_package.sh | 12 ++++++++---- build_stage3.sh | 11 ++++++++--- build_stage3_package.sh | 12 ++++++++---- i486-stage1/template/DESCR | 4 ++++ i486-stage2/template/DESCR | 4 ++++ i486-stage3/python-appdirs/DESCR | 6 ++++++ i486-stage3/python-packaging/DESCR | 6 ++++++ i486-stage3/python-pip-bootstrap/DESCR | 6 ++++++ i486-stage3/python-pip/DESCR | 10 ++++++++++ i486-stage3/python-pyparsing/DESCR | 16 ++++++++++++++++ i486-stage3/python-setuptools/DESCR | 8 ++++++++ i486-stage3/python-six/DESCR | 8 ++++++++ i486-stage3/template/DESCR | 4 ++++ 16 files changed, 116 insertions(+), 13 deletions(-) create mode 100644 i486-stage3/python-appdirs/DESCR create mode 100644 i486-stage3/python-packaging/DESCR create mode 100644 i486-stage3/python-pip-bootstrap/DESCR create mode 100644 i486-stage3/python-pip/DESCR create mode 100644 i486-stage3/python-pyparsing/DESCR create mode 100644 i486-stage3/python-setuptools/DESCR create mode 100644 i486-stage3/python-six/DESCR diff --git a/README b/README index df06b03..82f0c5c 100644 --- a/README +++ b/README @@ -226,3 +226,11 @@ su cross ./prepare_stage3_repo.sh # (we gave it 512 MB). s-nail needs much more (we gave it 2 GB). ./build_stage3.sh + +######### +# STAGE 4 +######### + +# Use stage 3 to build base and base-devel again. In this phase we try to +# use vanilla PKGBUILDs as much as possible, also building documentation +# and do all the testing. diff --git a/TODOS b/TODOS index 05f74fd..66b48be 100644 --- a/TODOS +++ b/TODOS @@ -34,6 +34,8 @@ general bugs: be dealt with not by copy pasting code - maybe we should not simply overwrite packages with the same version numbers, have something like build/stage numbers as in Archlinux32. +- Missing dependencies errors on host when doing makepkg -o, ugly, but it + works nevertheless stage1 issues: - stage1: cdrom installs keyrings without having a gpg binary @@ -83,3 +85,7 @@ stage 3 issues: - pacman-key --refresh: gpg: connecting dirmngr at '/etc/pacman.d/gnupg/S.dirmngr' failed: IPC connect call failed gpg: keyserver refresh failed: No dirmngr +- libtool relink during installation issues in toolchain (libquadmath) +- python-pip-bootstrap for starting with setuptools and pip and wheel, they conflict + with the vanilla packages, so we have to force to overwrite the shimmed files. + diff --git a/build_stage1_package.sh b/build_stage1_package.sh index 1e7f877..97a81ad 100755 --- a/build_stage1_package.sh +++ b/build_stage1_package.sh @@ -121,11 +121,15 @@ if test "$(pacman --config "$STAGE1_CHROOT/etc/pacman.conf" -r "$STAGE1_CHROOT" repo-add $STAGE1_CHROOT/packages/$TARGET_CPU/temp.db.tar.gz $STAGE1_CHROOT/packages/$TARGET_CPU/*pkg.tar.xz # install into chroot via pacman + + if test "$FORCE_INSTALL"; then + FORCE="--force" + fi if test "x$ADDITIONAL_INSTALL_PACKAGE" != "x"; then - sudo pacman --noconfirm --config "$STAGE1_CHROOT/etc/pacman.conf" -r "$STAGE1_CHROOT" -Syy "$PACKAGE" "$ADDITIONAL_INSTALL_PACKAGE" + sudo pacman $FORCE --noconfirm --config "$STAGE1_CHROOT/etc/pacman.conf" -r "$STAGE1_CHROOT" -Syy "$PACKAGE" "$ADDITIONAL_INSTALL_PACKAGE" else - sudo pacman --noconfirm --config "$STAGE1_CHROOT/etc/pacman.conf" -r "$STAGE1_CHROOT" -Syy "$PACKAGE" + sudo pacman $FORCE --noconfirm --config "$STAGE1_CHROOT/etc/pacman.conf" -r "$STAGE1_CHROOT" -Syy "$PACKAGE" fi # optionally install into cross-compiler sysroot with bsdtar diff --git a/build_stage2_package.sh b/build_stage2_package.sh index b79210f..2b58eff 100755 --- a/build_stage2_package.sh +++ b/build_stage2_package.sh @@ -127,14 +127,18 @@ if test "$(find "$STAGE2_PACKAGES" -regex ".*/$PACKAGE-.*pkg\\.tar\\.xz" | wc -l # install onto stage 1 system via pacman + if test "$FORCE_INSTALL"; then + FORCE="--force" + fi + ssh -i $CROSS_HOME/.ssh/id_rsa root@$STAGE1_MACHINE_IP bash -c "' # TODO: broken [temp] repo if test \"$ADDITIONAL_INSTALL_PACKAGE\" != \"\"; then - #pacman --noconfirm -Syy $PACKAGE $ADDITIONAL_INSTALL_PACKAGE - pacman --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz /packages/$TARGET_CPU/$ADDITIONAL_INSTALL_PACKAGE-*.pkg.tar.xz + #pacman $FORCE --noconfirm -Syy $PACKAGE $ADDITIONAL_INSTALL_PACKAGE + pacman $FORCE --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz /packages/$TARGET_CPU/$ADDITIONAL_INSTALL_PACKAGE-*.pkg.tar.xz else - #pacman --noconfirm -Syy $PACKAGE - pacman --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz + #pacman $FORCE --noconfirm -Syy $PACKAGE + pacman $FORCE --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz fi '" diff --git a/build_stage3.sh b/build_stage3.sh index a3cb039..d05d831 100755 --- a/build_stage3.sh +++ b/build_stage3.sh @@ -61,9 +61,11 @@ autoconf-archive linux-atm iproute2 curl pacman-mirrorlist archlinux-keyring archlinux32-keyring pacman +wget python quota-tools perl-xml-parser intltool -re2c python2 ninja python-setuptools -python-pip python2-pip +re2c python2 ninja +python-pip-bootstrap python-pip +python-pyparsing python-packaging python-appdirs python-six python-setuptools meson " @@ -90,6 +92,8 @@ meson #libtool: install: error: relink `libgfortran.la' with the above command before installing it #make: Leaving directory '/build/gcc/src/gcc-build/i486-pc-linux-gnu/libgfortran' +# systemd: cryptsetup python-lxml gnu-efi-libs + #~ util-linux: systemd, python # libxml2: python2 and python as makedepends @@ -101,7 +105,6 @@ meson #~ pkg-config: glib2 #~ pkg-config: glib2 - #~ linux build full with mkinitcpio and modules #~ linux @@ -126,6 +129,8 @@ meson # the glib2 knot #~ glib2: libutil-linux #~ libsecret: glib2 +# glib2 needs dbus shared-mime-info +# shared-mime-info needs glib2 :-) # the systemd knot #~ libusb: glibc libsystemd diff --git a/build_stage3_package.sh b/build_stage3_package.sh index 78fc5a6..ec9efd8 100755 --- a/build_stage3_package.sh +++ b/build_stage3_package.sh @@ -131,14 +131,18 @@ if test "$(find "$STAGE3_PACKAGES" -regex ".*/$PACKAGE-.*pkg\\.tar\\.xz" | wc -l # install onto stage 1 system via pacman + if test "$FORCE_INSTALL"; then + FORCE="--force" + fi + ssh -i $CROSS_HOME/.ssh/id_rsa root@$STAGE1_MACHINE_IP bash -c "' # TODO: broken [temp] repo if test \"$ADDITIONAL_INSTALL_PACKAGE\" != \"\"; then - #pacman --noconfirm -Syy $PACKAGE $ADDITIONAL_INSTALL_PACKAGE - pacman --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz /packages/$TARGET_CPU/$ADDITIONAL_INSTALL_PACKAGE-*.pkg.tar.xz + #pacman $FORCE --noconfirm -Syy $PACKAGE $ADDITIONAL_INSTALL_PACKAGE + pacman $FORCE --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz /packages/$TARGET_CPU/$ADDITIONAL_INSTALL_PACKAGE-*.pkg.tar.xz else - #pacman --noconfirm -Syy $PACKAGE - pacman --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz + #pacman $FORCE --noconfirm -Syy $PACKAGE + pacman $FORCE --noconfirm -U /packages/$TARGET_CPU/$PACKAGE-*.pkg.tar.xz fi '" diff --git a/i486-stage1/template/DESCR b/i486-stage1/template/DESCR index 1e3a94a..44617f3 100644 --- a/i486-stage1/template/DESCR +++ b/i486-stage1/template/DESCR @@ -26,3 +26,7 @@ SYSROOT_INSTALL=0 # (for example util-linux also has a libutil-linux) # Note: SYSROOT_INSTALL respects this too ADDITIONAL_INSTALL_PACKAGE= + +# FORCE_INSTALL = 0 | 1 +# per default packages should not be forced. +FORCE_INSTALL=1 diff --git a/i486-stage2/template/DESCR b/i486-stage2/template/DESCR index cb3d05e..8a84b3a 100644 --- a/i486-stage2/template/DESCR +++ b/i486-stage2/template/DESCR @@ -18,3 +18,7 @@ NOPARALLEL_BUILD=0 # some packages generate additional package files to install # (for example util-linux also has a libutil-linux) ADDITIONAL_INSTALL_PACKAGE= + +# FORCE_INSTALL = 0 | 1 +# per default packages should not be forced. +FORCE_INSTALL=1 diff --git a/i486-stage3/python-appdirs/DESCR b/i486-stage3/python-appdirs/DESCR new file mode 100644 index 0000000..f90e0ea --- /dev/null +++ b/i486-stage3/python-appdirs/DESCR @@ -0,0 +1,6 @@ +# we bootstrap via python-pip-bootstrap, so we can not depend on the +# cycle introduced by low-level python modules +sed -i "/makedepends=/s/'python-setuptools'//" PKGBUILD +sed -i "/makedepends=/s/'python2-setuptools'//" PKGBUILD + +ADDITIONAL_INSTALL_PACKAGE=python2-appdirs diff --git a/i486-stage3/python-packaging/DESCR b/i486-stage3/python-packaging/DESCR new file mode 100644 index 0000000..9b1a843 --- /dev/null +++ b/i486-stage3/python-packaging/DESCR @@ -0,0 +1,6 @@ +# we bootstrap via python-pip-bootstrap, so we can not depend on the +# cycle introduced by low-level python modules +sed -i "/makedepends=/s/'python-setuptools'//" PKGBUILD +sed -i "/makedepends=/s/'python2-setuptools'//" PKGBUILD + +ADDITIONAL_INSTALL_PACKAGE=python2-packaging diff --git a/i486-stage3/python-pip-bootstrap/DESCR b/i486-stage3/python-pip-bootstrap/DESCR new file mode 100644 index 0000000..86aaf38 --- /dev/null +++ b/i486-stage3/python-pip-bootstrap/DESCR @@ -0,0 +1,6 @@ +# shim to bootstrap python pip, bootstrap, wheel + +FETCH_METHOD="yaourt" + +ADDITIONAL_INSTALL_PACKAGE=python2-pip-bootstrap + diff --git a/i486-stage3/python-pip/DESCR b/i486-stage3/python-pip/DESCR new file mode 100644 index 0000000..bda9341 --- /dev/null +++ b/i486-stage3/python-pip/DESCR @@ -0,0 +1,10 @@ +# we bootstrap via python-pip-bootstrap, so we can not depend on the +# cycle introduced by low-level python modules +sed -i "/makedepends=/s/'python-setuptools'//" PKGBUILD +sed -i "/makedepends=/s/'python2-setuptools'//" PKGBUILD +sed -i "/depends=/s/'python-setuptools'//" PKGBUILD +sed -i "/depends=/s/'python2-setuptools'//" PKGBUILD + +ADDITIONAL_INSTALL_PACKAGE=python2-pip + +FORCE=1 diff --git a/i486-stage3/python-pyparsing/DESCR b/i486-stage3/python-pyparsing/DESCR new file mode 100644 index 0000000..8667bc9 --- /dev/null +++ b/i486-stage3/python-pyparsing/DESCR @@ -0,0 +1,16 @@ +# we bootstrap via python-pip-bootstrap, so we can not depend on the +# cycle introduced by low-level python modules +sed -i "/makedepends=/s/'python-setuptools'//" PKGBUILD +sed -i "/makedepends=/s/'python2-setuptools'//" PKGBUILD + +# we don't want subversion, take official tarball +sed -i "/makedepends=/s/'subversion'//" PKGBUILD +sed -i 's@source=.*@source=(https://pypi.python.org/packages/3c/ec/a94f8cf7274ea60b5413df054f82a8980523efd712ec55a59e7c3357cf7c/pyparsing-2.2.0.tar.gz#md5=0214e42d63af850256962b6744c948d9)@' PKGBUILD +sed -i 's/pyparsing_$pkgver/pyparsing-$pkgver/g' PKGBUILD +sed -i 's@pyparsing-$pkgver/src@pyparsing-$pkgver@g' PKGBUILD +sed -i 's@pyparsing-$pkgver-py2/src@pyparsing-$pkgver-py2@g' PKGBUILD + +# remove a really weird sed +sed -i 's/sed/#sed/g' PKGBUILD + +ADDITIONAL_INSTALL_PACKAGE=python2-pyparsing diff --git a/i486-stage3/python-setuptools/DESCR b/i486-stage3/python-setuptools/DESCR new file mode 100644 index 0000000..010082e --- /dev/null +++ b/i486-stage3/python-setuptools/DESCR @@ -0,0 +1,8 @@ +# we bootstrap via python-pip-bootstrap, so we can not depend on the +# cycle introduced by low-level python modules +sed -i "/makedepends=/s/'python-pip'//" PKGBUILD +sed -i "/makedepends=/s/'python2-pip'//" PKGBUILD + +ADDITIONAL_INSTALL_PACKAGE=python2-setuptools + +FORCE=1 diff --git a/i486-stage3/python-six/DESCR b/i486-stage3/python-six/DESCR new file mode 100644 index 0000000..b2d117b --- /dev/null +++ b/i486-stage3/python-six/DESCR @@ -0,0 +1,8 @@ +# we bootstrap via python-pip-bootstrap, so we can not depend on the +# cycle introduced by low-level python modules +sed -i "/makedepends=/s/'python-pip'//" PKGBUILD +sed -i "/makedepends=/s/'python2-pip'//" PKGBUILD +sed -i "/makedepends=/s/'python-setuptools'//" PKGBUILD +sed -i "/makedepends=/s/'python2-setuptools'//" PKGBUILD + +ADDITIONAL_INSTALL_PACKAGE=python2-six diff --git a/i486-stage3/template/DESCR b/i486-stage3/template/DESCR index cb3d05e..8a84b3a 100644 --- a/i486-stage3/template/DESCR +++ b/i486-stage3/template/DESCR @@ -18,3 +18,7 @@ NOPARALLEL_BUILD=0 # some packages generate additional package files to install # (for example util-linux also has a libutil-linux) ADDITIONAL_INSTALL_PACKAGE= + +# FORCE_INSTALL = 0 | 1 +# per default packages should not be forced. +FORCE_INSTALL=1 -- cgit v1.2.3