summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2018-03-11 12:58:40 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2018-03-11 12:58:40 +0100
commitb5e66ba7bf57c8d012ce22e220c30057577ba021 (patch)
tree34b09bc827274a52acb19e08cff218c4aabeab42
parentc8daadccefa390907f500ca3a2621312e2a2dcb6 (diff)
downloadbootstrap32-b5e66ba7bf57c8d012ce22e220c30057577ba021.tar.xz
got systemd
-rw-r--r--README7
-rw-r--r--TODOS2
-rwxr-xr-xbuild_stage3.sh10
-rw-r--r--i486-stage3/systemd/DESCR25
-rwxr-xr-xprepare_stage3.sh3
5 files changed, 40 insertions, 7 deletions
diff --git a/README b/README
index 82f0c5c..733da90 100644
--- a/README
+++ b/README
@@ -215,6 +215,10 @@ su cross ./prepare_stage2_repo.sh
# - libsecret: needs glib2 which is not buildable in stage3
# - licenses: needs links, we don't care for stage3 as they will not
# go public in the end
+# - dbus without systemd (because of a cyrcle), same goes for cryptsetup
+
+# systemd: goal is to have a libsystemd we can link against, but stage 3
+# will not have a running systemd init system!
su cross ./prepare_stage3_repo.sh
@@ -234,3 +238,6 @@ su cross ./prepare_stage3_repo.sh
# 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.
+
+# We also try to get a running systemd in this stage.
+
diff --git a/TODOS b/TODOS
index 66b48be..2e40bcf 100644
--- a/TODOS
+++ b/TODOS
@@ -36,6 +36,8 @@ general bugs:
have something like build/stage numbers as in Archlinux32.
- Missing dependencies errors on host when doing makepkg -o, ugly, but it
works nevertheless
+- introduce a '-package' along to '(+)package' to delete a package at a
+ given place (e.g. a shim)
stage1 issues:
- stage1: cdrom installs keyrings without having a gpg binary
diff --git a/build_stage3.sh b/build_stage3.sh
index d05d831..ce219d4 100755
--- a/build_stage3.sh
+++ b/build_stage3.sh
@@ -67,12 +67,9 @@ re2c python2 ninja
python-pip-bootstrap python-pip
python-pyparsing python-packaging python-appdirs python-six python-setuptools
meson
+gperf systemd dbus
"
-# meson needs python-setuptools, python-setuptools itself
-# can not be built from packages, so we need another shim
-# here.
-
# gyp used for mozilla sub certs, continue to use shim?
# ca-certificates-cacerts ca-certificates
@@ -106,6 +103,7 @@ meson
#~ pkg-config: glib2
#~ linux build full with mkinitcpio and modules
+#~ mkinitcpio: awk mkinitcpio-busybox kmod util-linux libarchive coreutils bash findutils grep filesystem gzip systemd
#~ linux
#~ <libedit> openssh
@@ -121,7 +119,7 @@ meson
#~ cryptsetup: device-mapper popt libutil-linux
# ldns/unbound-cyrcle
-#~ ldns: openssl dnssec-anchors
+#~ ldns: openssl dnssec-anchors libpcal
#~ dnssec-anchors: unbound
#~ unbound: ldns
#~ openssh: ldns
@@ -145,8 +143,6 @@ meson
#~ dhcpcd: glibc sh udev libsystemd
#~ util-linux: systemd, python
-#~ mkinitcpio: awk mkinitcpio-busybox kmod util-linux libarchive coreutils bash findutils grep filesystem gzip systemd
-
# lvm2, device-mapper: systemd, thin-povisioning-tools
#~ thin-provisioning-tools: expat gcc-libs libaio boost
# boost: we can build a non-python version
diff --git a/i486-stage3/systemd/DESCR b/i486-stage3/systemd/DESCR
new file mode 100644
index 0000000..17150cf
--- /dev/null
+++ b/i486-stage3/systemd/DESCR
@@ -0,0 +1,25 @@
+# no documentation
+sed -i '/makedepends=/,/)/ s/docbook-xsl//' PKGBUILD
+sed -i '/makedepends=/,/)/ s/libxslt//' PKGBUILD
+sed -i '/makedepends=/,/)/ s/python-lxml//' PKGBUILD
+sed -i 's/\(rm.*man8\)/#\1/' PKGBUILD
+
+# we don't need systemd-sysvcompat
+sed -i "/pkgname=/,/)/ s/'systemd-sysvcompat'//" PKGBUILD
+
+# break cyclic dependency with cryptsetup and dbus
+sed -i '/makedepends=/,/)/ s/cryptsetup//' PKGBUILD
+sed -i "/depends=/,/)/ s/'cryptsetup'//" PKGBUILD
+sed -i "/depends=/,/)/ s/'dbus'//" PKGBUILD
+
+# we build without verifying PGP keys, so disable git tag valication
+sed -i 's/\(_validate_tag || return\)/#\1/' PKGBUILD
+
+# disable EFI support, we build for old machines with a PC BIOS
+sed -i '/makedepends=/,/)/ s/gnu-efi-libs//' PKGBUILD
+sed -i 's/-Dgnuefi=true/-Dgnuefi=false/g' PKGBUILD
+
+# disable LTO support for now
+sed -i '/-Dsysvrcnd-path=/ a \ -Db_lto=false' PKGBUILD
+
+ADDITIONAL_INSTALL_PACKAGE=libsystemd
diff --git a/prepare_stage3.sh b/prepare_stage3.sh
index 7b4fdcb..2db5ece 100755
--- a/prepare_stage3.sh
+++ b/prepare_stage3.sh
@@ -21,6 +21,9 @@ if test ! -d $STAGE3_BUILD; then
# stage 2, for now we just copy the vm from stage1 after building
# and installing all packages from stage 2 and use it as new build
# machine.
+
+ # systemd-journal group for systemd
+ getent group systemd-journal >/dev/null || groupadd -g 190 systemd-journal
echo "Prepared the stage 3 build environment."
fi