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


