#!/bin/sh # test we are root if [ "$(id -u)" != "0" ]; then exit 1 fi # build order is libfm-extra-dev menu-cache libfm then pcmanfm export CFLAGS="-mtune=generic -Os -pipe" export CXXFLAGS="-mtune=generic -Os -pipe -fno-exceptions -fno-rtti" P=libfm V=1.3.2 SRC=$P-$V USER=`cat /etc/sysconfig/tcuser` LIST="compiletc submitqc menu-cache-dev libexif-dev gtk2-dev intltool " for Z in $LIST do su -c "tce-load -i $Z" $USER done # build 1 wants /etc/ not /usr/local/etc cd /tmp su -c "/usr/local/bin/wget -nc --no-check-certificate \ https://downloads.sourceforge.net/pcmanfm/$SRC.tar.xz " $USER tar xvf $SRC*xz cd $SRC # compile requests etc for configs ./configure --prefix=/usr/local --sysconfdir=/etc --enable-static=no \ --with-gtk=2 --disable-old-actions # 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 check # about 1M 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 # no doc ##### rm -rf $P/usr/local/share/man # dev ##### we will use the libfm-extra.pc from TCE not the libfm-extra-dev for pcmanfm build 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 # dev tce.installed ################### mkdir -p $P-dev/usr/local/tce.installed cat >> $P-dev/usr/local/tce.installed/$P-dev <<'EOF' #!/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 DIR1=$P-dev/usr/local DIR2=/tmp/tcloop/$DIR1/lib/pkgconfig DIR3=/tmp/tcloop/$DIR1/include DIR4=/tmp/tcloop/$P/usr/local/lib rm -rf $INC/$P* rm -rf $LIB/pkgconfig/$P* rm -rf $LIB/$P*so* # The linking is what TC would have done if it was simple TCE ln -s $DIR2/*pc $LIB/pkgconfig/ ln -s $DIR3/$P-1.0 $INC/ ln -s $DIR3/$P-1.0 $INC/$P ln -s $DIR4/$P*so* $LIB/ EOF chown -R root:staff $P-dev/usr/local/tce.installed chmod -R 775 $P-dev/usr/local/tce.installed # main ############################################################################################################ # remove trash support, its messy otherwise rm -rf $P/usr/local/lib/$P/modules/gtk-menu-trash.so # 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 # fix desktops and lxshortcut ############# APPS=$P/usr/local/share/applications sed 's|X-LXDE-Settings;||' -i $APPS/$P*desktop sed 's|OnlyShowIn=LXDE|NoDisplay=true|' -i $APPS/$P*desktop rm -rf $APPS/lxshortcut.desktop rm -rf $P/usr/local/bin/lxshortcut mkdir -p $P/usr/local/share/doc/$P echo 'GPL v2' > $P/usr/local/share/doc/$P/COPYING # fix read-write modules dir as per error launch pcmanfm error = modules directory is not accessible # net suggested /usr/lib/x86_64-linux-gnu/libfm/modules -> nope # it wants read-write at our modules dir mkdir -p $P/usr/local/share/$P/files mv $P/usr/local/lib/$P/modules/*so $P/usr/local/share/$P/files # tce.installed ################ mkdir -p $P/usr/local/tce.installed cat >> $P/usr/local/tce.installed/$P <<'EOF' #!/bin/sh # avoid libfm-extra-dev duplication P=libfm LIB=usr/local/lib LOOP1=/tmp/tcloop/$P/$LIB rm -rf /$LIB/$P*so* # The linking is what TC would have done if it was simple ln -s $LOOP1/$P*so* /$LIB/ # make a modules dir that is rw mkdir -p /$LIB/$P/modules LOOP=/tmp/$P/usr/local/share/$P/files cp $LOOP/*.so /$LIB/$P/modules EOF chown -R root:staff $P/usr/local/tce.installed chmod -R 775 $P/usr/local/tce.installed # TCZ them ########### LIST="$P-locale $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 LIST="$P " 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.2 Author: https://github.com/lxde/libfm/blob/master/AUTHORS Original-site: tps://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 84K Extension_by: aus9 @linuxquestions.org Tags: pcmanfm Comments: Dev files install script will delete if found, libfm-extra-dev files Change-log: 2014/01/18 First version, 1.1.2.2 (bmarkus) 2015/08/20 v1.2.3 (gordon64) 2019/02/11 v1.2.5 on 10x (aus9) 2020/07/19 v1.3.1 for 11x modify install script 2023/03/26 v 1.3.2 on 14x Current: 2024/04/04 remove la files, change modules dir on 15x ' > $P-dev.tcz.info echo 'libfm.tcz menu-cache-dev.tcz gtk2-dev.tcz libexif-dev.tcz '> $P-dev.tcz.dep echo 'Title: libfm-locale.tcz Description: locales for libfm Version: 1.3.2 Author: https://github.com/lxde/libfm/blob/master/AUTHORS Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 596K Extension_by: aus9 @linuxquestions.org Tags: locale pcmanfm Comments: locales untested by me Change-log: 2014/01/18 First version, 1.1.2.2 (bmarkus) 2015/08/20 v1.2.3 (gordon64) 2019/02/11 v1.2.5 on 10x (aus9) 2020/07/19 v1.3.1 for 11x modify install script 2023/03/26 v 1.3.2 on 14x Current: 2024/04/04 remove la files, change modules dir on 15x ' > $P-locale.tcz.info echo 'libfm.tcz ' > $P-locale.tcz.dep echo 'Title: libfm.tcz Description: mainly lib files for pcmanfm, see below Version: 1.3.2 Author: https://github.com/lxde/libfm/blob/master/AUTHORS Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 372K Extension_by: aus9 @linuxquestions.org 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 use trash please. Install script will delete if found any libfm-extra-dev so files & make a rw modules dir Change-log: 2014/01/18 First version, 1.1.2.2 (bmarkus) 2015/08/20 v1.2.3 (gordon64) 2019/02/11 v1.2.5 on 10x (aus9) 2020/07/19 v1.3.1 for 11x modify install script 2023/03/26 v 1.3.2 on 14x Current: 2024/04/04 remove la files, change modules dir on 15x ' > $P.tcz.info readelf -d $P/usr/local/lib/*.so | grep 'NEEDED' # delete any duplicates ignore TCBs #libgio-2.0.so.0]libgthread-2.0.so.0]libgobject-2.0.so.0]libglib-2.0.so.0] glib2 -> at-spi2-core -> gtk2 #libgtk-x11-2.0.so.0]libgdk-x11-2.0.so.0] gtk2 #libpangocairo-1.0.so.0]libpango-1.0.so.0]libpangoft2-1.0.so.0] pango -> gtk2 #libatk-1.0.so.0] atk-spi2-core -> gtk2 #libgdk_pixbuf-2.0.so.0]gdk-pixbuf2 -> gtk2 #libfontconfig.so.1] fontconfig cairo -> pango -> gtk2 #libfreetype.so.6] freetype -> fontconfig -> cairo -> pango -> gtk2 #libharfbuzz.so.0] harfbuzz -> freetype -> fontconfig -> cairo -> pango -> gtk2 #libcairo.so.2] cairo -> pango -> gtk2 #libmenu-cache.so.3] menu-cache #libfm.so.4] THIS tce #libexif.so.12] libexif readelf -d $P/usr/local/bin/* | grep 'NEEDED' # no extra to above readelf -d $P/usr/local/lib/libfm/modules/*.so | grep 'NEEDED' # no extra to above # icon theme removed now echo 'gtk2.tcz menu-cache.tcz libexif.tcz ' > $P.tcz.dep # pass 1 submitqc getting confused with libfm-extra-dev and added it etc submitqc --libs rm -rf *.zsync # not used on pass 2 after checking other stuff