diff options
author | Benjamin Cohen <bencoh@notk.org> | 2022-02-15 00:37:08 +0200 |
---|---|---|
committer | Benjamin Cohen <bencoh@notk.org> | 2022-02-15 00:37:08 +0200 |
commit | a37b1f06e2aafe8a9c3906f546cf83f2971f9519 (patch) | |
tree | 8a28c667ddaf5d3ce41d2b9ea0f10dbe2db61f5a |
maemo-leste crossbuilder lxc
Inspired by scratchbox (maemo fremantle crossbuild system).
-rwxr-xr-x | amd64-divert.sh | 14 | ||||
-rwxr-xr-x | amd64-perl-divert.sh | 17 | ||||
-rw-r--r-- | notes | 133 |
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" @@ -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 + |