#!/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 CFLAGS="-march=i486 -mtune=i686 -Os -pipe " CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti " echo $CFLAGS && echo $CXXFLAGS P=pcmanfm V=1.3.2 SRC=$P-$V USER=`cat /etc/sysconfig/tcuser` LIST="compiletc submitqc libfm-dev " 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 # /etc as same rule for libfm su -c "/usr/local/bin/wget -nc --no-check-certificate \ https://downloads.sourceforge.net/$P/$SRC.tar.xz " $USER tar xvf $P*xz cd $SRC ./configure --prefix=/usr/local --sysconfdir=/etc --with-gtk=2 make -j4 # seconds 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 # no doc nor dev ##### rm -rf $P/usr/local/share/man rm -rf $P/usr/local/include rm -rf $P/usr/local/lib # lib is empty # main ##### mkdir -p $P/usr/local/share/doc/$P echo 'GPL v2' > $P/usr/local/share/doc/$P/COPYING mkdir -p $P/usr/local/share/pixmaps ICON=/tmp/tcloop/adwaita-icon-theme/usr/local/share/icons/Adwaita/48x48/apps/system-file-manager-symbolic.symbolic.png cp $ICON $P/usr/local/share/pixmaps/pcmanfm.png APP=$P/usr/local/share/applications/$P.desktop echo 'X-FullPathIcon=/usr/local/share/pixmaps/pcmanfm.png' >> $APP sed 's|Utility|Utilities|' -i $APP sed 's|Core;||' -i $APP # gvfs not compiled into libfm so remove its GUI rm -rf $P/usr/local/share/$P/ui/connect.ui # create template ################## mkdir -p $P/usr/local/share/$P echo 'file:///usr/local/share/applications executable-icons file:///home/tc/Downloads Downloads file:///home/tc/.config .config file:///home/tc/.local .local ' > $P/usr/local/share/$P/.gtk-bookmarks # tce.install ############# mkdir -p $P/usr/local/tce.installed cat >> $P/usr/local/tce.installed/$P <<'EOF' #!/bin/sh USER=`cat /etc/sysconfig/tcuser` DIR=/usr/local/share/pcmanfm/.gtk-bookmarks HOME=/home/$USER [ -f $HOME/.gtk-bookmarks ] || cp $DIR $HOME chown $USER:staff $HOME/.gtk-bookmarks chmod 644 $HOME/.gtk-bookmarks EOF chown -R root:staff $P/usr/local/tce.installed chmod -R 755 $P/usr/local/tce.installed # create update-desktops as pcmanfm may have TCEs loaded later echo '#!/bin/sh sudo update-desktop-database /usr/local/share/applications/ sudo update-mime-database /usr/local/share/mime ' > $P/usr/local/bin/update-desktops chmod 755 $P/usr/local/bin/update-desktops # change xdg default configs XDG=$P/etc/xdg/$P/default/$P.conf sed 's|mount_on_startup=1|mount_on_startup=0|' -i $XDG sed 's|show_hidden=0|show_hidden=1|' -i $XDG sed 's|view_mode=0|view_mode=list|' -i $XDG # TCZ them ########### LIST="$P $P-locale " 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: pcmanfm-locale.tcz Description: locales for pcmanfm Version: 1.3.2 Author: Hong Jen Yee Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 476K Extension_by: aus9 Tags: locale file manager Comments: locales untested by me Change-log: 2015/07/05 v 1.2.3 (bmarkus) 2015/09/01 re-compiled for dependency updates on 6.x (gordon64) Current: 2023/08/20 v 1.3.2 on 14.x (aus9) ' > $P-locale.tcz.info echo 'pcmanfm.tcz ' > $P-locale.tcz.dep echo 'Title: pcmanfm.tcz Description: gtk2 File Manager Version: 1.3.2 Author: Hong Jen Yee Original-site: https://downloads.sourceforge.net/pcmanfm Copying-policy: GPL v2 Size: 148K Extension_by: aus9 Tags: file manager gtk2 fm Comments: online manual https://man.archlinux.org/man/pcmanfm.1.en Config will auto-create at ~/.config/pcmanfm/default/pcmanfm.conf Original /etc/xdg/pcmanfm/pcmanfm.conf Change by pulldown Edit -> Preferences. If pcmanfm run in desktop mode, other preferences can be activated see https://tinyurl.com/y3ouvb94 Config changed on update to disable auto mount of your partitions. Use mnttool or command to umount as gvfs or udisks not enabled this build. FM preferences can also change libfm (dependency) config. FM Bookmarks at ~/.gtk-bookmarks gvfs and trash can support disabled. FM can integrate with an archiver but no dependencies set. If you load a GUI TCE after pcmanfm then run $ update-desktops However some files need icon theme and lxappearance might perform setup easier than manual edit of $HOME/.gtkrc-2.0.mine Change-log: 2015/07/05 v 1.2.3 (bmarkus) 2015/09/01 re-compiled for dependency updates on 6.x (gordon64) Current: 2023/08/20 v 1.3.2 on 14.x (aus9) ' > $P.tcz.info readelf -d $P/usr/local/bin/$P | grep 'NEEDED' #[libX11.so.6]libX11 pixbuf libfm #[libfm-gtk.so.4][libfm.so.4] libfm #[libgtk-x11-2.0.so.0][libgdk-x11-2.0.so.0]gtk2 libfm #[libpangocairo-1.0.so.0][libpangoft2-1.0.so.0][libpango-1.0.so.0]pango libfm #[libatk-1.0.so.0]atk libfm #[libcairo.so.2 ]cairo pango gtk2 libfm #[libgdk_pixbuf-2.0.so.0]gdk-pixbuf gtk2 libfm #libharfbuzz.so.0]pango gtk2 libfm #[libfontconfig.so.1]cairo gtk2 libfm #[libfreetype.so.6]freetype fontconfig cairo gtk2 libfm #[libgthread-2.0.so.0][libgio-2.0.so.0][libgobject-2.0.so.0][libglib-2.0.so.0]glib2 atk gkt2 libfm echo 'libfm.tcz shared-mime-info.tcz desktop-file-utils.tcz adwaita-icon-theme.tcz ' > $P.tcz.dep