summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Cohen <bencoh@notk.org>2022-02-15 00:37:08 +0200
committerBenjamin Cohen <bencoh@notk.org>2022-02-15 00:37:08 +0200
commita37b1f06e2aafe8a9c3906f546cf83f2971f9519 (patch)
tree8a28c667ddaf5d3ce41d2b9ea0f10dbe2db61f5a
maemo-leste crossbuilder lxc
Inspired by scratchbox (maemo fremantle crossbuild system).
-rwxr-xr-xamd64-divert.sh14
-rwxr-xr-xamd64-perl-divert.sh17
-rw-r--r--notes133
3 files changed, 164 insertions, 0 deletions
diff --git a/amd64-divert.sh b/amd64-divert.sh
new file mode 100755
index 0000000..a00b355
--- /dev/null
+++ b/amd64-divert.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+if [ -z "$1" ]; then
+ echo "Usage: $0 <path> [target]"
+ exit 1
+fi
+
+echo "Amdifying $1 ..."
+
+target="/amd64/$1"
+[ -n "$2" ] && target="$2"
+
+dpkg-divert --divert "$1".armhf --rename "$1"
+ln -s "$target" "$1"
diff --git a/amd64-perl-divert.sh b/amd64-perl-divert.sh
new file mode 100755
index 0000000..901e181
--- /dev/null
+++ b/amd64-perl-divert.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -z "$1" ]; then
+ echo "Usage: $0 <path>"
+ exit 1
+fi
+
+echo "Amdifying $1 ..."
+
+dpkg-divert --divert "$1".armhf --rename "$1"
+
+cat > "$1" << EOF
+#!/bin/sh
+exec /amd64/usr/bin/perl "/amd64/$1" "\$@"
+EOF
+
+chmod +x "$1"
diff --git a/notes b/notes
new file mode 100644
index 0000000..6cb6b56
--- /dev/null
+++ b/notes
@@ -0,0 +1,133 @@
+#
+# host (create lxc container)
+#
+lxc-create -n maemo-leste-armhf -t devuan -- --release beowulf --arch armhf
+
+#
+# amd64 chroot
+#
+
+# debootstrap
+debootstrap beowulf /var/lib/lxc/maemo-leste-armhf/rootfs/amd64 http://pkgmaster.devuan.org/merged
+
+# patch dpkg
+bbe -e 's/amd64/armhf/' /var/lib/lxc/maemo-leste-armhf/rootfs/amd64/usr/bin/dpkg > /var/lib/lxc/maemo-leste-armhf/rootfs/amd64/usr/bin/dpkg-patched
+chmod +x /var/lib/lxc/maemo-leste-armhf/rootfs/amd64/usr/bin/dpkg-patched
+# patch fakeroot
+sed 's#^PATHS#PATHS=/usr/lib/x86_64-linux-gnu/libfakeroot:/usr/lib/arm-linux-gnueabihf/libfakeroot:${FAKEROOT_PREFIX}/lib64/libfakeroot:${FAKEROOT_PREFIX}/lib32/libfakeroot#' \
+ /var/lib/lxc/maemo-leste-armhf/rootfs/amd64/usr/bin/fakeroot-sysv > /var/lib/lxc/maemo-leste-armhf/rootfs/amd64/usr/bin/fakeroot-sysv-patched
+chmod +x /var/lib/lxc/maemo-leste-armhf/rootfs/amd64/usr/bin/fakeroot-sysv-patched
+
+# packages
+lxc-attach maemo-leste-armhf
+chroot /amd64
+apt-get install bash-completion bash-static build-essential debhelper file flex bison gcc-8-arm-linux-gnueabihf g++-arm-linux-gnueabihf locales man-db quilt perl ninja-build meson xsltproc
+
+#
+# armhf container
+#
+lxc-attach maemo-leste-armhf
+apt-get update
+apt-get install build-essential bash-completion file flex bison locales perl ninja-build meson xsltproc
+apt-get build-dep xserver-xorg-core
+
+mkdir -p /lib64
+ln -s /amd64/usr/lib/x86_64-linux-gnu/ld-2.28.so /lib64/ld-linux-x86-64.so.2
+ln -s /amd64/usr/arm-linux-gnueabihf/ /usr/
+ln -s /amd64/usr/lib/x86_64-linux-gnu /usr/lib/
+
+echo 'APT::Architecture "armhf";' > /etc/apt/apt.conf.d/99arch
+
+/wrapper/amd64-divert.sh /bin/bash
+/wrapper/amd64-divert.sh /bin/grep
+/wrapper/amd64-divert.sh /bin/sed
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-addr2line
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-ar
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-as
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-c++filt
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-cpp-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-elfedit
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-g++-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gcc-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gcc-ar-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gcc-nm-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gcc-ranlib-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gcov-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gcov-dump-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gcov-tool-8
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-gprof
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-nm
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-objcopy
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-objdump
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-ranlib
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-readelf
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-size
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-strings
+/wrapper/amd64-divert.sh /usr/bin/arm-linux-gnueabihf-strip
+/wrapper/amd64-divert.sh /usr/bin/apt
+/wrapper/amd64-divert.sh /usr/bin/apt-get
+/wrapper/amd64-divert.sh /usr/bin/apt-cache
+/wrapper/amd64-divert.sh /usr/bin/awk
+/wrapper/amd64-divert.sh /usr/bin/basename
+/wrapper/amd64-divert.sh /usr/bin/bison
+/wrapper/amd64-divert.sh /usr/bin/bzip2
+/wrapper/amd64-divert.sh /usr/bin/cat
+/wrapper/amd64-divert.sh /usr/bin/cp
+/wrapper/amd64-divert.sh /usr/bin/cut
+/wrapper/amd64-divert.sh /usr/bin/dash
+/wrapper/amd64-divert.sh /usr/bin/du
+/wrapper/amd64-divert.sh /usr/bin/diff
+/wrapper/amd64-divert.sh /usr/bin/dirname
+/wrapper/amd64-divert.sh /usr/bin/dpkg /amd64/usr/bin/dpkg-patched
+/wrapper/amd64-divert.sh /usr/bin/dpkg-deb
+/wrapper/amd64-divert.sh /usr/bin/dwz
+/wrapper/amd64-divert.sh /usr/bin/env
+/wrapper/amd64-divert.sh /usr/bin/expr
+/wrapper/amd64-divert.sh /usr/bin/faked-sysv
+/wrapper/amd64-divert.sh /usr/bin/fakeroot-sysv /amd64/usr/bin/fakeroot-sysv-patched
+/wrapper/amd64-divert.sh /usr/bin/find
+/wrapper/amd64-divert.sh /usr/bin/flex
+/wrapper/amd64-divert.sh /usr/bin/gzip
+/wrapper/amd64-divert.sh /usr/bin/head
+/wrapper/amd64-divert.sh /usr/bin/install
+/wrapper/amd64-divert.sh /usr/bin/less
+/wrapper/amd64-divert.sh /usr/bin/ls
+/wrapper/amd64-divert.sh /usr/bin/m4
+/wrapper/amd64-divert.sh /usr/bin/make
+/wrapper/amd64-divert.sh /usr/bin/man
+/wrapper/amd64-divert.sh /usr/bin/mandb
+/wrapper/amd64-divert.sh /usr/bin/mawk
+/wrapper/amd64-divert.sh /usr/bin/md5sum
+/wrapper/amd64-divert.sh /usr/bin/ninja
+/wrapper/amd64-divert.sh /usr/bin/patch
+/wrapper/amd64-divert.sh /usr/bin/rm
+/wrapper/amd64-divert.sh /usr/bin/seq
+/wrapper/amd64-divert.sh /usr/bin/sort
+/wrapper/amd64-divert.sh /usr/bin/sync
+/wrapper/amd64-divert.sh /usr/bin/tail
+/wrapper/amd64-divert.sh /usr/bin/tar
+/wrapper/amd64-divert.sh /usr/bin/tbl
+/wrapper/amd64-divert.sh /usr/bin/tee
+/wrapper/amd64-divert.sh /usr/bin/truncate
+/wrapper/amd64-divert.sh /usr/bin/wc
+/wrapper/amd64-divert.sh /usr/bin/xargs
+/wrapper/amd64-divert.sh /usr/bin/xsltproc
+/wrapper/amd64-divert.sh /usr/bin/xz
+/wrapper/amd64-divert.sh /usr/bin/xzdiff
+/wrapper/amd64-divert.sh /usr/bin/xzgrep
+/wrapper/amd64-divert.sh /usr/bin/xzless
+/wrapper/amd64-divert.sh /usr/bin/xzmore
+/wrapper/amd64-divert.sh /usr/lib/man-db/libman-2.8.5.so
+/wrapper/amd64-divert.sh /usr/lib/man-db/libmandb-2.8.5.so
+/wrapper/amd64-divert.sh /usr/lib/man-db/zsoelim
+/wrapper/amd64-divert.sh /usr/lib/man-db/manconv
+/wrapper/amd64-perl-divert.sh /usr/bin/aclocal-1.16
+/wrapper/amd64-perl-divert.sh /usr/bin/autom4te
+/wrapper/amd64-perl-divert.sh /usr/bin/automake-1.16
+/wrapper/amd64-perl-divert.sh /usr/bin/autoreconf
+/wrapper/amd64-perl-divert.sh /usr/bin/autoscan
+/wrapper/amd64-perl-divert.sh /usr/bin/autoupdate
+/wrapper/amd64-perl-divert.sh /usr/bin/dpkg-buildpackage
+/wrapper/amd64-perl-divert.sh /usr/bin/dpkg-shlibdeps
+for file in /usr/bin/dh*; do /wrapper/amd64-perl-divert.sh $file; done
+