#!/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=armv8-a+crc -mtune=cortex-a72   '
export CXXFLAGS='-flto=auto -Os -pipe -fno-exceptions -fno-rtti -march=armv8-a+crc -mtune=cortex-a72  '
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
echo $CFLAGS && echo $CXXFLAGS

P=seatd
V=0.8.0
SRC=$P-$V
USER=`cat /etc/sysconfig/tcuser`
LIST="compiletc squashfs-tools wget meson cmake "
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 gcc/armv7l-unknown-linux-gnueabihf/12.2.0/plugin/libcc1plugin.la
rm -rf gcc/armv7l-unknown-linux-gnueabihf/12.2.0/plugin/libcp1plugin.la
rm -rf gcc/armv7l-unknown-linux-gnueabihf/12.2.0/liblto_plugin.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 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://git.sr.ht/~kennylevinsen/$P/archive/$V.tar.gz" $USER
tar xvf $V*gz
cd $SRC
mkdir build && cd build
meson setup --prefix=/usr/local -Dstrip=true -Ddebug=false -Dman-pages=disabled \
-Dexamples=disabled -Dlibseat-logind=disabled -Dserver=enabled -Dexamples=disabled  
# to show settings as I could have used
meson configure 
######################################## 
# libseat-seatd  : YES
# libseat-builtin: NO
# libseat-systemd: NO
# libseat-elogind: NO
# server         : YES
# User defined options
# buildtype      : plain
# debug          : false
# prefix         : /usr/local
# strip          : true
# defaultpath    : /tmp
# examples       : disabled
# libseat-builtin: enabled
# libseat-logind : disabled
# libseat-seatd  : enabled
# man-pages      : disabled
# server         : enabled
###################
ninja # 15 seconds
DESTDIR=/tmp/$P ninja install
cd /tmp

# dev
#####
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

# main
######
mkdir -p $P/usr/local/share/doc/$P
cp $SRC/LICENSE $P/usr/local/share/doc/$P/

# tce.install
###########
mkdir -p $P/usr/local/tce.installed
cat >> $P/usr/local/tce.installed/$P <<'EOF'
#!/bin/sh
# force SUID onto seatd-launch but not seatd
FILE=/usr/local/bin/seatd-launch
rm -rf $FILE
LOOP=/tmp/tcloop/seatd$FILE
cp $LOOP /usr/local/bin/
chmod a+s $FILE
EOF
chown -R root:staff  $P/usr/local/tce.installed
chmod -R 775 $P/usr/local/tce.installed


# TCZ them
#######
LIST="$P $P-dev "
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:          seatd-dev.tcz 
Description:    dev files
Version:        0.8.0
Author:         Kenny Levinsen
Original-site:  https://git.sr.ht/~kennylevinsen/seatd/refs
Copying-policy: Accompanied 
Size:           4.0K	
Extension_by:   aus9 
Tags:           seat
Comments:       Development files

Change-log:     2023/09/22 v 0.8.0 on 14.x
Current:        2023/09/22  ' > $P-dev.tcz.info
echo 'seatd.tcz  ' > $P-dev.tcz.dep


echo 'Title:          seatd.tcz 
Description:    seat management daemon
Version:        0.8.0
Author:         Kenny Levinsen
Original-site:  https://git.sr.ht/~kennylevinsen/seatd/refs
Copying-policy: Accompanied 
Size:           32K
Extension_by:   aus9 
Tags:           seat
Comments:       minimal seat management daemon, and a universal 
                seat management library

                seatd-launch has SUID set and is used by 
                $HOME/.local/bin/z

Change-log:     2023/09/22 v 0.8.0 on 14.x
Current:        2023/09/22      ' > $P.tcz.info

readelf -d $P/usr/local/lib/*.so | grep 'NEEDED' # only TCBs
readelf -d $P/usr/local/bin/*    | grep 'NEEDED' # no extras

# no main dep

