#!/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

