#!/bin/bash # 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=gtk2 V=2.24.33 SRC=gtk+-2.24.33 USER=`cat /etc/sysconfig/tcuser` LIST="compiletc squashfs-tools wget gettext glib2-dev atk-dev atk-gir gdk-pixbuf-dev \ gdk-pixbuf-gir cups-dev gobject-introspection-dev pango-dev pango-gir \ libXinerama-dev libXrandr-dev libXcursor-dev libXcomposite-dev " for Z in $LIST do su -c "tce-load -i $Z" $USER done # list may have more 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 cd /tmp rm -rf /usr/lib/*.la su -c "/usr/local/bin/wget -nc --no-check-certificate \ https://download.gnome.org/sources/gtk+/2.24/gtk+-2.24.33.tar.xz " $USER tar xvf gtk*xz cd $SRC ./configure --prefix=/usr/local --enable-debug=no --disable-gtk-doc \ --enable-gtk-doc-html=no --enable-gtk-doc-pdf=no --enable-man=no \ --with-x --enable-introspection=yes --disable-glibtest \ --enable-cups --enable-test-print-backend # target: x11 make -j4 # 13M45s make install-strip DESTDIR=/tmp/$P # 2m 20s cd /tmp # dev ##### failed to spot some more la files until today mkdir -p $P-dev/usr/local/lib/ mv $P/usr/local/include $P-dev/usr/local/ mv $P/usr/local/lib/pkgconfig $P-dev/usr/local/lib/ rm -rf $P/usr/local/lib/*.la mkdir -p $P-dev/usr/local/lib/gtk-2.0/modules mv $P/usr/local/lib/gtk-2.0/include $P-dev/usr/local/lib/gtk-2.0/ mv $P/usr/local/lib/gtk-2.0/modules/*a $P-dev/usr/local/lib/gtk-2.0/modules/ mkdir -p $P-dev/usr/local/lib/gtk-2.0/2.10.0 cd $P-dev/usr/local/lib/gtk-2.0/2.10.0 mkdir engines immodules printbackends cd /tmp rm -rf $P/usr/local/lib/gtk-2.0/2.10.0/engines/*.la rm -rf $P/usr/local/lib/gtk-2.0/2.10.0/immodules/*.la rm -rf $P/usr/local/lib/gtk-2.0/2.10.0/printbackends/*.la rm -rf $P-dev/usr/local/lib/gtk-2.0/modules/libgail.la rm -rf $P-dev/usr/local/lib/gtk-2.0/modules/libferret.la mkdir -p $P-dev/usr/local/share mv $P/usr/local/share/aclocal $P-dev/usr/local/share/ # gir ##### mkdir -p $P-gir/usr/local/lib/ mv $P/usr/local/lib/girepository-1.0 $P-gir/usr/local/lib/ mkdir -p $P-gir/usr/local/share mv $P/usr/local/share/gir* $P-gir/usr/local/share/ # locale ######### mkdir -p $P-locale/usr/local/share mv $P/usr/local/share/locale $P-locale/usr/local/share # main ##### rm -rf $P/usr/local/share/gtk-doc rm -rf $P/usr/local/share/gtk-2.0 mkdir -p $P/usr/local/share/$P echo '# DO NOT EDIT! This file will be overwritten by LXAppearance.(if available) # Any customization should be done in ~/.gtkrc-2.0.mine instead. gtk-theme-name="Raleigh" gtk-icon-theme-name="Adwaita" gtk-font-name="Sans 10" gtk-cursor-theme-name="Adwaita" gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=1 gtk-menu-images=1 gtk-enable-event-sounds=1 gtk-enable-input-feedback-sounds=1 gtk-xft-antialias=1 gtk-xft-hinting=1 gtk-xft-hintstyle="hintfull" gtk-xft-rgba="rgb" include "/home/tc/.gtkrc-2.0.mine" ' > $P/usr/local/share/$P/.gtkrc-2.0 # tce.install ############# mkdir -p $P/usr/local/tce.installed cat >> $P/usr/local/tce.installed/$P <<'EOF' #!/bin/sh gtk-query-immodules-2.0 --update-cache USER=`cat /etc/sysconfig/tcuser` LOOP=/tmp/tcloop/gtk2/usr/local/share/gtk2/.gtkrc-2.0 HOME=/home/$USER/.gtkrc-2.0 [ -f $HOME ] || cp $LOOP $HOME chown $USER:staff $HOME chmod 644 $HOME EOF chown -R root:staff $P/usr/local/tce.installed chmod -R 775 $P/usr/local/tce.installed sed 's|python|python3|' -i $P/usr/local/bin/gtk-builder-convert mkdir -p $P/usr/local/share/doc/$P echo 'LGPL v2' > $P/usr/local/share/doc/$P/COPYING # TCZ them ####### LIST="$P $P-dev $P-gir $P-locale" 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 # gobject-introspection-dev.tcz/gettext.tcz requested by Juanito not a dep file please echo 'Title: gtk2-dev.tcz Description: dev files Version: 2.24.33 Author: Gnome Foundation Original-site: http://www.gtk.org Copying-policy: LGPL v2 Size: 504K Extension_by: aus9 Tags: gtk2 Comments: Development files Change-log: 2016/08/14 v 2.24.30 (bmarkus) 2017/01/29 v 2.24.31 2020/06/30 v 2.24.32 (juanito) 2020/10/03 add print suppport 12.x (aus9) Current: 2023/08/12 v 2.24.33 14.x ' > $P-dev.tcz.info echo 'gtk2.tcz glib2-dev.tcz atk-dev.tcz atk-gir.tcz gdk-pixbuf-dev.tcz gdk-pixbuf-gir.tcz cups-dev.tcz pango-dev.tcz pango-gir.tcz libXinerama-dev.tcz libXrandr-dev.tcz libXcursor-dev.tcz libXcomposite-dev.tcz ' > $P-dev.tcz.dep echo 'Title: gtk2-gir.tcz Description: gir files for gtk2 Version: 2.24.33 Author: Gnome Foundation Original-site: http://www.gtk.org Copying-policy: LGPL v2 Size: 1.9M Extension_by: aus9 Tags: gtk2 Comments: introspection files for gtk2 Change-log: 2016/08/14 v 2.24.30 (bmarkus) 2017/01/29 v 2.24.31 2020/06/30 v 2.24.32 (juanito) 2020/10/03 add print suppport 12.x (aus9) Current: 2023/08/04 v 2.24.33 14.x ' > $P-gir.tcz.info echo 'gtk2.tcz atk-gir.tcz gdk-pixbuf-gir.tcz pango-gir.tcz' > $P-gir.tcz.dep echo 'Title: gtk2-locale.tcz Description: locales Version: 2.24.33 Author: Gnome Foundation Original-site: http://www.gtk.org Copying-policy: LGPL v2 Size: 7.2M Extension_by: aus9 Tags: gtk2 Comments: locales files for gtk2 Change-log: 2016/08/14 v 2.24.30 (bmarkus) 2017/01/29 v 2.24.31 2020/06/30 v 2.24.32 (juanito) 2020/10/03 add print suppport 12.x (aus9) Current: 2023/08/04 v 2.24.33 14.x ' > $P-locale.tcz.info echo 'gtk2.tcz' > $P-locale.tcz.dep echo 'Title: gtk2.tcz Description: Gimp Tool Kit Version: 2.24.33 Author: Gnome Foundation Original-site: http://www.gtk.org Copying-policy: LGPL v2 Size: 2M Extension_by: aus9 Tags: gtk2 Comments: Gimp Tool Kit Your config file is ~/.gtkrc-2.0 contains pathway /home/tc The cache update generates /usr/local/lib/gtk-2.0/2.10.0/immodules.cache If you would like to input using multipress method, you need a keypad keyboard, numlock on and open a gtk2 app Right hand click an input area and choose input methods -> multipress pressing the same numlock number key quickly displays different characters see /usr/local/etc/gtk-2.0/im-multipress.conf Change-log: 2016/08/14 v 2.24.30 (bmarkus) 2017/01/29 v 2.24.31 2020/06/30 v 2.24.32 (juanito) 2020/10/03 add print suppport 12.x (aus9) Current: 2023/08/04 v 2.24.33 14.x ' > $P.tcz.info readelf -d $P/usr/local/bin/* | grep 'NEEDED' # ignore duplicates and TCB #[libgdk-x11-2.0.so.0][libgtk-x11-2.0.so.0] this TCE #[libXrender.so.1]libXrender cairo pango #[libXinerama.so.1]libXinerama #[libXrandr.so.2]libXrandr #[libXcursor.so.1]libXcursor #[libXext.so.6] choose cairo pango #[libgmodule-2.0.so.0][libgio-2.0.so.0][libgobject-2.0.so.0][libglib-2.0.so.0]glib2 cairo pango #[libpangocairo-1.0.so.0]pango #[libX11.so.6]libX11 choose libXext pango #[libXcomposite.so.1]libXcomposite #[libXdamage.so.1]libXdamage #[libXfixes.so.3]libXfixes #[libatk-1.0.so.0]atk #[libcairo.so.2]cairo #[libgdk_pixbuf-2.0.so.0]gdk-pixbuf #[libpangoft2-1.0.so.0][libpango-1.0.so.0]pango #[libharfbuzz.so.0]harfbuzz #[libfontconfig.so.1]fontconfig choose cairo pango #[libfreetype.so.6]freetype " readelf -d $P/usr/local/lib/*.so | grep 'NEEDED' # no extras found echo 'pango.tcz libXinerama.tcz libXrandr.tcz libXcursor.tcz gdk-pixbuf.tcz libXcomposite.tcz libXdamage.tcz atk.tcz harfbuzz.tcz adwaita-icon-theme.tcz ' > $P.tcz.dep