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