summaryrefslogtreecommitdiffstats
path: root/solenv/bin/make-raspbian-root-tarball
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/bin/make-raspbian-root-tarball')
-rwxr-xr-xsolenv/bin/make-raspbian-root-tarball81
1 files changed, 81 insertions, 0 deletions
diff --git a/solenv/bin/make-raspbian-root-tarball b/solenv/bin/make-raspbian-root-tarball
new file mode 100755
index 000000000..710540957
--- /dev/null
+++ b/solenv/bin/make-raspbian-root-tarball
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+# When lacking a proper cross-compilation package system from Linux
+# (or some other Unix) to Raspbian, instead create a tarball of
+# headers, libraries and pkg-config files on a Raspbian system and
+# unpack that then on the build system, and pass in a -sysroot switch
+# to the cross-compiler.
+
+cd /
+
+# Exclude irrelevant stuff, like shared libraries that actually are
+# "modules" loaded at run-time by some software.
+
+EXCLUDE='lib/ld-linux \
+lib/klibc- \
+lib/arm-linux-gnueabihf/security/ \
+usr/lib/arm-linux-gnueabihf/ImageMagick- \
+usr/lib/arm-linux-gnueabihf/autofs/ \
+usr/lib/arm-linux-gnueabihf/directfb- \
+usr/lib/arm-linux-gnueabihf/gconv/ \
+usr/lib/arm-linux-gnueabihf/gdbus- \
+usr/lib/arm-linux-gnueabihf/gdk-pixbuf- \
+usr/lib/arm-linux-gnueabihf/gio/ \
+usr/lib/arm-linux-gnueabihf/gvfs/ \
+usr/lib/arm-linux-gnueabihf/jack/ \
+usr/lib/arm-linux-gnueabihf/libgphoto2/ \
+usr/lib/arm-linux-gnueabihf/libgphoto2_port/ \
+usr/lib/arm-linux-gnueabihf/libgtk-2.0/ \
+usr/lib/arm-linux-gnueabihf/libgtk-3.0/ \
+usr/lib/arm-linux-gnueabihf/libproxy/ \
+usr/lib/arm-linux-gnueabihf/odbc/ \
+usr/lib/arm-linux-gnueabihf/pango/ \
+usr/lib/arm-linux-gnueabihf/plymouth/ \
+usr/lib/arm-linux-gnueabihf/qt4/ \
+usr/lib/arm-linux-gnueabihf/sane \
+usr/lib/libblas.so \
+usr/lib/liblapack.so'
+
+EXCLUDE=`echo "$EXCLUDE" | tr -d '
+' | sed -e 's/ /|/g'`
+
+FILELIST=`mktemp`
+STAGINGDIR=`mktemp -d`
+
+find lib/*.so* \
+ lib/arm-linux-gnueabihf \
+ usr/include \
+ usr/lib/liblpsolve*.a \
+ usr/lib/*.so* \
+ usr/lib/arm-linux-gnueabihf \
+ usr/lib/jvm/java-6-openjdk-armhf/include \
+ usr/lib/jvm/java-6-openjdk-armhf/jre/lib/arm \
+ usr/lib/pkgconfig \
+ usr/share/pkgconfig \
+ -type f -o -type l |
+ grep -v -E "^($EXCLUDE)" >$FILELIST
+
+tar -c --files-from=$FILELIST -f - | (cd $STAGINGDIR && tar xf -)
+
+rm $FILELIST
+
+cd $STAGINGDIR
+# Change absolute symlinks to relative
+find . -type l -print0 | xargs -0 ls -ld | grep -- '-> /' |
+ while read mode links user group size month day yearortime link arrow target; do
+ target=`echo "$target" | sed -e 's,/,..;,'`
+ while test `expr index $target /` -gt 0; do
+ target=`echo "$target" | sed -e 's,/,;,'`
+ target="..;$target"
+ done
+ target=`echo "$target" | sed -e 's,;,/,g'`
+ ln -f -s $target $link
+ done
+
+RESULT=/tmp/raspbian-root-`date +%Y%m%d`.tar.gz
+tar czf $RESULT .
+
+cd /
+rm -rf $STAGINGDIR
+
+echo === Result in $RESULT ===