#!/bin/sh # test we are root if [ "$(id -u)" != "0" ]; then echo "run as root now exitting" exit 1 fi export CFLAGS='-flto=auto -Os -pipe -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp ' export CXXFLAGS='-flto=auto -Os -pipe -fno-exceptions -fno-rtti -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp ' export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig echo $CFLAGS && echo $CXXFLAGS P=librsvg V=2.40.21 SRC=$P-$V USER=`cat /etc/sysconfig/tcuser` LIST="compiletc squashfs-tools wget rust gdk-pixbuf-dev \ pango-dev libcroco-dev gobject-introspection-dev \ gdk-pixbuf-gir pango-gir" for Z in $LIST do su -c "tce-load -i $Z" $USER done # list may be larger than loaded cd /usr/local/lib rm -rf *.la rm -rf gcc/aarch64-unknown-linux-gnu/12.2.0/plugin/*.la rm -rf gcc/aarch64-unknown-linux-gnu/12.2.0/*.la rm -rf gprofng/*.la rm -rf python3.8/site-packages/*.la rm -rf pkcs11/*.la rm -rf cairo/*.la rm -rf gtk-2.0/modules/*.la rm -rf gtk-2.0/2.10.0/printbackends/*.la rm -rf gtk-2.0/2.10.0/immodules/*.la rm -rf gtk-2.0/2.10.0/engines/*.la rm -rf imlib2/loaders/*.la rm -rf imlib2/filters/*.la rm -rf gdk-pixbuf-2.0/2.10.0/loaders/*.la rm -rf gcc/armv7l-unknown-linux-gnueabihf/12.2.0/plugin/libcp1plugin.la rm -rf gcc/armv7l-unknown-linux-gnueabihf/12.2.0/plugin/libcc1plugin.la rm -rf gcc/armv7l-unknown-linux-gnueabihf/12.2.0/liblto_plugin.la rm -rf pulseaudio/libpulsedsp.la rm -rf pulseaudio/libpulsecore-13.0.la rm -rf pulseaudio/libpulsecommon-13.0.la rm -rf libv4l/v4l2convert.la rm -rf libv4l/v4l1compat.la rm -rf libv4l/plugins/libv4l-mplane.la rm -rf vala-0.46/libvalaccodegen.la cd /tmp rm -rf /usr/lib/*.la find / -name *.la su -c "/usr/local/bin/wget -nc --no-check certificate \ https://download.gnome.org/sources/$P/2.40/$SRC.tar.xz" $USER # https://download.gnome.org/sources/librsvg/2.40/librsvg-2.40.21.tar.xz tar xvf $SRC*xz cd $SRC ./configure --prefix=/usr/local --enable-gtk-doc-html=no \ --enable-introspection=yes # prefix: /usr/local # compiler: gcc # Debugging information for Rust: no # Build introspectable bindings: yes # Build Vala bindings: no # Build GdkPixbuf loader: yes # GTK+ 3.10.0 or later: no # Build miscellaneous tools: yes make -j4 # make install-strip DESTDIR=/tmp/$P # install-strip fails cd /tmp # dev ##### mkdir -p $P-dev/usr/local/lib mkdir -p $P-dev/usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders mv $P/usr/local/include $P-dev/usr/local/ mv $P/usr/local/lib/pkgconfig $P-dev/usr/local/lib/ mv $P/usr/local/lib/*.a $P-dev/usr/local/lib rm -rf $P/usr/local/lib/*.la mv $P/usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.a \ $P-dev/usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/ rm -f $P/usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.la # gir ##### mkdir -p $P-gir/usr/local/lib mv $P/usr/local/lib/gir* $P-gir/usr/local/lib mkdir -p $P-gir/usr/local/share mv $P/usr/local/share/gir* $P-gir/usr/local/share # main ####### mkdir -p $P/usr/local/share/doc/$P echo 'GPL v2' > $P/usr/local/share/doc/$P/COPYING rm -rf $P/usr/local/share/gtk-doc rm -rf $P/usr/local/share/man # tce.install ########### mkdir -p $P/usr/local/tce.installed cat > $P/usr/local/tce.installed/$P << 'EOF' #!/bin/sh gdk-pixbuf-query-loaders --update-cache EOF chown -R root:staff $P/usr/local/tce.installed chmod -R 775 $P/usr/local/tce.installed # TCZ them ########### LIST="$P $P-dev $P-gir" for Z in $LIST do mksquashfs $Z $Z.tcz md5sum $Z.tcz > $Z.tcz.md5.txt cd $Z find usr -not -type d > /tmp/$Z.tcz.list sed 's|usr|/usr|g' -i /tmp/$Z.tcz.list cd /tmp done ls -hal echo 'Title: librsvg-dev.tcz Description: dev files Version: 2.40.21 Author: librsvg Team Original-site: http://ftp.gnome.org/pub/gnome/sources/librsvg Copying-policy: GPL v2 Size: 1.1M Extension_by: aus9 Tags: svg Comments: dev files Change-log: 2016/08/13 v 2.40.16 on 8.x(bmarkus) Current: 2023/08/08 v 2.40.21 on 14.x (aus9)' > $P-dev.tcz.info # do not include gobject-introspection-dev echo 'librsvg.tcz libcroco-dev.tcz gdk-pixbuf-dev.tcz libcroco-dev.tcz ' > $P-dev.tcz.dep echo 'Title: librsvg-gir.tcz Description: gir files Version: 2.40.21 Author: librsvg Team Original-site: http://ftp.gnome.org/pub/gnome/sources/librsvg Copying-policy: GPL v2 Size: 16K Extension_by: aus9 Tags: svg Comments: gir files Change-log: 2016/08/13 v 2.40.16 on 8.x(bmarkus) Current: 2023/08/08 v 2.40.21 on 14.x (aus9)' > $P-gir.tcz.info echo 'librsvg.tcz gdk-pixbuf-gir.tcz pango-gir.tcz ' > $P-gir.tcz.dep echo 'Title: librsvg.tcz Description: Library and tools to manipulate, convert and view SVG images Version: 2.40.21 Author: librsvg Team Original-site: http://ftp.gnome.org/pub/gnome/sources/librsvg Copying-policy: GPL v2 Size: 100K Extension_by: aus9 Tags: svg Comments: Binaries only Change-log: 2016/08/13 v 2.40.16 on 8.x(bmarkus) Current: 2023/08/08 v 2.40.21 on 14.x (aus9)' > $P.tcz.info readelf -d $P/usr/local/bin/* | grep 'NEEDED' #[librsvg-2.so.2]this TCE #[libpangoft2-1.0.so.0][libpangocairo-1.0.so.0][libpango-1.0.so.0]pango #[libfontconfig.so.1] fontconfig cairo pango #[libfreetype.so.6]freetype " #[libpng16.so.16]libpng cairo pango #[libcroco-0.6.so.3]libcroco #[libxml2.so.2]libxml2 " #[libgio-2.0.so.0][libgobject-2.0.so.0][libglib-2.0.so.0]glib2 cairo pango #[libgdk_pixbuf-2.0.so.0]gdk-pixbuf #[libharfbuzz.so.0]harfbuzz pango #[libcairo.so.2]cairo pango readelf -d $P/usr/local/lib/*.so | grep 'NEEDED' # no extra readelf -d $P/usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so #[libpixbufloader-svg.so]this TCE echo 'pango.tcz libcroco.tcz gdk-pixbuf.tcz ' > $P.tcz.dep Tests # $ rsvg-convert sample.svg -w 200 -h 200 -f png -o 3.png # file 3.png # 3.png: PNG image data, 200 x 200, 8-bit/color RGBA, non-interlaced # feh 3.png -> success # also visible in chromium-browser