#!/bin/sh # test we are root if [ "$(id -u)" != "0" ]; then echo "run as root now exitting" exit 1 fi # build order is libfm-extra-dev menu-cache libfm then pcmanfm ########################################## # inject libgobject-2.0.la libglib-2.0.la libffi.la ########################################## export CFLAGS="-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe" export CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe \ -fno-exceptions -fno-rtti" P=libfm V=1.3.1 SRC=$P-$V USER=`cat /etc/sysconfig/tcuser` LIST="menu-cache-dev libexif-dev gtk2-dev" for Z in $LIST do su -c "tce-load -i $Z" $USER done cd /tmp su -c "/usr/local/bin/wget -nc --no-check-certificate \ https://downloads.sourceforge.net/pcmanfm/$SRC.tar.xz " $USER mkdir $P xz -d *xz && tar xvf *tar cd $SRC # compile requests etc for configs ./configure --prefix=/usr/local --sysconfdir=/etc --enable-static=no \ --with-gtk=2 --disable-old-actions ################################## etc/ is needed not u loc etc # prefix: /usr/local # sysconfdir: /etc # Enable compiler flags and other support for debugging: no # Build udisks support (Linux only, experimental): no # Build with libexif for faster thumbnail loading: yes # Build demo program src/demo/libfm-demo: no # Build with custom actions support (requires Vala): no # Large file support: yes # GIO module for preferred apps (for glib < 2.28 only): not required # Build libfm-gtk for Gtk+ version: 2.0 # Build API doc with gtk-doc (recommended for make dist): no #################################################### make -j5 # about 1Min make check takes too long make install-strip DESTDIR=/tmp/$P cd /tmp # locale ######### mkdir -p $P-locale/usr/local/share mv $P/usr/local/share/locale $P-locale/usr/local/share # doc ##### mkdir -p $P-doc/usr/local/share/doc/$P mv $P/usr/local/share/man $P-doc/usr/local/share/ cp $SRC/AUTHORS $P-doc/usr/local/share/doc/$P cp $SRC/COPYING $P-doc/usr/local/share/doc/$P # dev ##### mkdir -p $P-dev/usr/local/lib mv $P/usr/local/include $P-dev/usr/local/ rm -rf $P-dev/usr/local/include/libfm mv $P/usr/local/lib/pkgconfig $P-dev/usr/local/lib/ mv $P/usr/local/lib/*a $P-dev/usr/local/lib/ chmod 644 $P-dev/usr/local/lib/*a ################## # dev tce.installed to avoid libfm-extra-dev duplication ################### mkdir -p $P-dev/usr/local/tce.installed echo '#!/bin/sh # Due to libfm-extra duplications removes all libfm* files # Link to libfm and not libfm-extra, libfm is loaded # before libfm-dev so some duplication P=libfm INC=/usr/local/include LIB=/usr/local/lib LOOP1=/tmp/tcloop/$P-dev/usr/local/lib LOOP2=/tmp/tcloop/$P-dev/usr/local/lib/pkgconfig LOOP3=/tmp/tcloop/$P-dev/usr/local/include LOOP4=/tmp/tcloop/$P/usr/local/lib rm -rf $INC/$P* rm -rf $LIB/pkgconfig/$P* rm -rf $LIB/$P*la ln -s $LOOP1/*la $LIB/ ln -s $LOOP2/*pc $LIB/pkgconfig ln -s $LOOP3/$P-1.0 $INC/ ln -s $LOOP3/$P-1.0 $INC/$P rm -rf $LIB/$P*so* ln -s $LOOP4/$P*so* $LIB/ ' > $P-dev/usr/local/tce.installed/$P-dev chown -R root:staff $P-dev/usr/local/tce.installed chmod -R 775 $P-dev/usr/local/tce.installed # main ####### APPS=$P/usr/local/share/applications # LXDE is not in repo so remove its file rm -rf $APPS/lxshortcut* # we can show desktop outside lxde, its the only desktop left sed 's|OnlyShowIn=LXDE;||' -i $APPS/$P*desktop sed 's|X-LXDE-Settings;||' -i $APPS/$P*desktop # I need to change libfm.conf to affect MAINLY trash network EXL=$P/etc/xdg/$P/$P.conf rm -rf $EXL echo '# Change in pcmanfm -> Edit -> Preferences # Any changes you make will edit ~/.config/libfm/libfm.conf [config] single_click=1 use_trash=0 confirm_del=1 confirm_trash=0 quick_exec=1 thumbnail_local=1 thumbnail_max=2048 [ui] big_icon_size=48 small_icon_size=24 thumbnail_size=128 pane_icon_size=24 show_thumbnail=1 [places] places_home=1 places_desktop=1 places_root=1 places_computer=0 places_trash=0 places_applications=0 places_network=0 places_unmounted=0' > $EXL # tce.installed ################ mkdir -p $P/usr/local/tce.installed echo '#!/bin/sh # avoid libfm-extra-dev duplication P=libfm LIB=/usr/local/lib LOOP=/tmp/tcloop/$P/usr/local/lib rm -rf $LIB/$P*so* ln -s $LOOP/$P*so* $LIB/ ' > $P/usr/local/tce.installed/$P chown -R root:staff $P/usr/local/tce.installed chmod -R 775 $P/usr/local/tce.installed # TCZ them ########### LIST="$P $P-locale $P-dev $P-doc " 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 find etc -not -type d >> /tmp/$Z.tcz.list sed 's|usr|/usr|g' -i /tmp/$Z.tcz.list sed 's|etc|/etc|g' -i /tmp/$Z.tcz.list cd /tmp done ls -hal echo 'Title: libfm-dev.tcz Description: devs for libfm Version: 1.3.1 Author: see doc TCE AUTHORS Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 44K Extension_by: aus9 Tags: pcmanfm Comments: Dev files Change-log: 2020/09/06 v 1.3.1 for 12x Current: 2020/09/06 ' > $P-dev.tcz.info echo 'Title: libfm-doc.tcz Description: docs for libfm Version: 1.3.1 Author: see doc TCE AUTHORS Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 8K Extension_by: aus9 Tags: pcmanfm Comments: Mainly man pages Change-log: 2020/09/06 v 1.3.1 for 12x Current: 2020/09/06 ' > $P-doc.tcz.info echo 'Title: libfm-locale.tcz Description: locales for libfm Version: 1.3.1 Author: see doc TCE AUTHORS Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 420K Extension_by: aus9 Tags: locale pcmanfm Comments: locales untested by me Change-log: 2020/09/06 v 1.3.1 for 12x Current: 2020/09/06 ' > $P-locale.tcz.info echo 'Title: libfm.tcz Description: Library File Manager for pcmanfm Version: 1.3.1 Author: see doc TCE AUTHORS Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 308K Extension_by: aus9 Tags: pcmanfm Comments: Config will auto-create at ~/.config/libfm/libfm.conf Original /etc/xdg/libfm/libfm.conf gvfs and trash can support disabled. pcmanfm has the setting but do not try to use trash please. Change-log: 2020/09/06 v 1.3.1 for 12x Current: 2020/09/06 ' > $P.tcz.info echo 'libfm.tcz menu-cache-dev.tcz gtk2-dev.tcz libexif-dev.tcz '> $P-dev.tcz.dep echo 'man-db.tcz ' > $P-doc.tcz.dep echo 'libfm.tcz ' > $P-locale.tcz.dep echo 'menu-cache.tcz libexif.tcz gtk2.tcz ' > $P.tcz.dep