summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README8
-rw-r--r--TODOS6
-rwxr-xr-xbuild_stage1_package.sh8
-rwxr-xr-xbuild_stage2_package.sh12
-rwxr-xr-xbuild_stage3.sh11
-rwxr-xr-xbuild_stage3_package.sh12
-rw-r--r--i486-stage1/template/DESCR4
-rw-r--r--i486-stage2/template/DESCR4
-rw-r--r--i486-stage3/python-appdirs/DESCR6
-rw-r--r--i486-stage3/python-packaging/DESCR6
-rw-r--r--i486-stage3/python-pip-bootstrap/DESCR6
-rw-r--r--i486-stage3/python-pip/DESCR10
-rw-r--r--i486-stage3/python-pyparsing/DESCR16
-rw-r--r--i486-stage3/python-setuptools/DESCR8
-rw-r--r--i486-stage3/python-six/DESCR8
-rw-r--r--i486-stage3/template/DESCR4
16 files changed, 116 insertions, 13 deletions
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