#!/bin/sh # test we are root if [ "$(id -u)" != "0" ]; then echo "run as root now exitting" exit 1 fi # order libfm-extra-dev menu-cache libfm pcmanfm this can be built without reboot CFLAGS="-march=i486 -mtune=i686 -Os -pipe " CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti " echo $CFLAGS && echo $CXXFLAGS P=libfm V=1.3.2 SRC=$P-$V USER=`cat /etc/sysconfig/tcuser` LIST="compiletc submitqc menu-cache-dev libexif-dev gtk2-dev adwaita-icon-theme" 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/i486-pc-linux-gnu/12.2.0/plugin/libcp1plugin.la rm -rf gcc/i486-pc-linux-gnu/12.2.0/plugin/libcc1plugin.la rm -rf gcc/i486-pc-linux-gnu/12.2.0/liblto_plugin.la cd /tmp rm -rf /usr/lib/*.la find / -name *.la # build 1 wants /etc/ not /usr/local/etc su -c "/usr/local/bin/wget -nc --no-check-certificate \ https://downloads.sourceforge.net/pcmanfm/$SRC.tar.xz " $USER tar xvf $SRC.tar.xz cd $SRC # compile requests etc for configs ./configure --prefix=/usr/local --sysconfdir=/etc --enable-static=no \ -with-gtk=2 --disable-old-actions # checking if gcc supports -fno-rtti -fno-exceptions... no # NOTE I have stopped -with=gtk2 to make this smaller dep ################################## # 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 -j4 # 15s make check # seconds 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 # dev ##### delete sym link -> install script takes care 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/ rm -rf $P/usr/local/lib/*.la ################## # dev tce.installed to avoid libfm-extra-dev interference ################### 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=/tmp/tcloop/$P-dev/usr/local/lib DIR2=/tmp/tcloop/$P-dev/usr/local/lib/pkgconfig DIR3=/tmp/tcloop/$P-dev/usr/local/include DIR4=/tmp/tcloop/$P/usr/local/lib rm -rf $INC/$P* rm -rf $LIB/pkgconfig/$P* ln -s $DIR2/*pc $LIB/pkgconfig ln -s $DIR3/$P-1.0 $INC/ ln -s $DIR3/$P-1.0 $INC/$P rm -rf $LIB/$P*so* 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 ####### # fix desktops ############# APPS=$P/usr/local/share/applications sed 's|X-LXDE-Settings;||' -i $APPS/$P*desktop sed 's|OnlyShowIn=LXDE;||' -i $APPS/$P*desktop rm -rf $APPS/lxshortcut.desktop rm -rf $P/usr/local/bin/lxshortcut # 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 cat >> $P/usr/local/tce.installed/$P <<'EOF' #!/bin/sh # avoid libfm-extra-dev interference P=libfm LIB=/usr/local/lib LOOP=/tmp/tcloop/$P/usr/local/lib rm -rf $LIB/$P*so* ln -s $LOOP/$P*so* $LIB/ EOF chown -R root:staff $P/usr/local/tce.installed chmod -R 775 $P/usr/local/tce.installed mkdir -p $P/usr/local/share/doc/$P echo 'GPL v2' > $P/usr/local/share/doc/$P/COPYING # TCZ them ########### LIST="$P $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 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 Tags: pcmanfm Comments: Dev files Change-log: 2015/07/05 v 1.2.3 (bmarkus) 2015/09/01 rebuilt for menu-cache update on 6.x (gordon64) Current: 2023/08/20 v 1.3.2 on 14.x (aus9) ' > $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 Tags: locale pcmanfm Comments: locales untested by me Change-log: 2015/07/05 v 1.2.3 (bmarkus) 2015/09/01 rebuilt for menu-cache update on 6.x (gordon64) Current: 2023/08/20 v 1.3.2 on 14.x (aus9) ' > $P-locale.tcz.info echo 'libfm.tcz ' > $P-locale.tcz.dep echo 'Title: libfm.tcz Description: Library File Manager for pcmanfm 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: 452K 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: 2015/07/05 v 1.2.3 (bmarkus) 2015/09/01 rebuilt for menu-cache update on 6.x (gordon64) Current: 2023/08/20 v 1.3.2 on 14.x (aus9) ' > $P.tcz.info readelf -d $P/usr/local/lib/*.so | grep 'NEEDED' ################################### duplicates deleted TCB too #[libgio-2.0.so.0][libgobject-2.0.so.0][libglib-2.0.so.0][libgthread-2.0.so.0]glib2 atk gtk2 #[libmenu-cache.so.3]menu-cache #[libexif.so.12]libexif #[libgtk-x11-2.0.so.0][libgdk-x11-2.0.so.0]gtk2 #[libpangocairo-1.0.so.0][libpangoft2-1.0.so.0][libpango-1.0.so.0]pango gtk2 #[libatk-1.0.so.0]atk gtk2 #[libgdk_pixbuf-2.0.so.0]gdk-pixbuf2 gtk2 #[libfontconfig.so.1]fontconfig cairo gtk2 #[libfreetype.so.6]freetype fontconfig gtk2 #[libharfbuzz.so.0]harfbuzz pango gtk2 #[libcairo.so.2]cairo pango gtk2 #[libfm.so.4]this TCE echo 'gtk2.tcz menu-cache.tcz libexif.tcz ' > $P.tcz.dep