#!/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=pcmanfm
V=1.3.2
SRC=$P-$V
USER=`cat /etc/sysconfig/tcuser`

# adwaita has gone svg - ignore icon caching now
LIST="compiletc submitqc libfm-dev intltool  "
for Z in $LIST
    do 
    su -c "tce-load -i $Z" $USER
done

# /etc as same rule for libfm, can not use usr loc etc
cd /tmp
su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://downloads.sourceforge.net/$P/$SRC.tar.xz   "  $USER
tar xvf $SRC*xz
cd $SRC
./configure --prefix=/usr/local --sysconfdir=/etc --with-gtk=3
find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \;
make check  # 5 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
#####
rm -rf $P/usr/local/share/man 

# no dev
#####
rm -rf $P/usr/local/include
rm -rf $P/usr/local/lib

# main
#####
mkdir -p $P/usr/local/share/doc/$P
echo 'GPL v 2' > $P/usr/local/share/doc/$P/COPYING

mkdir -p $P/usr/local/share/pixmaps
ICON=/tmp/tcloop/libfm/usr/local/share/pixmaps/libfm.png
cp $ICON $P/usr/local/share/pixmaps/pcmanfm.png

# remove need for startup-notifications dep true-false
APP1=$P/usr/local/share/applications/$P.desktop
sed 's|Utility|Utilities|' -i $APP1
sed 's|Core;||' -i $APP1
sed 's|true|false|' -i $APP1
echo 'X-FullPathIcon=/usr/local/share/pixmaps/pcmanfm.png' >> $APP1

APP2=$P/usr/local/share/applications/$P-desktop-pref.desktop
sed '106d' -i $APP2
sed 's|true|false|' -i $APP2
sed 's|Settings;GTK;DesktopSettings;X-LXDE-Settings;|System;FileTools;FileManager;Utilities;GTK;|' -i $APP2
echo 'X-FullPathIcon=/usr/local/share/pixmaps/pcmanfm.png' >> $APP2

# 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/files
echo 'file:///home/tc/Downloads Downloads
file:///home/tc/.config .config
file:///home/tc/.local .local 
file:///mnt mnt
file:///tmp tmp' > $P/usr/local/share/$P/files/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/files/bookmarks
HOME=/home/$USER/.config/gtk-3.0
[ -f $HOME/bookmarks ] || cp $DIR $HOME/
chown $USER:staff $HOME/bookmarks
chmod 644 $HOME/bookmarks
EOF
chown -R root:staff $P/usr/local/tce.installed
chmod -R 775 $P/usr/local/tce.installed

# 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 . -not -type d | cut -c 2- | sort > /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 v 2
Size:           476K
Extension_by:   aus9 @linuxquestions.org
Tags:           locale file manager  
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/10 v1.3.0  for 10x(aus9)
                2020/07/19 v 1.3.1 for 11x 
                2023/03/26 v 1.3.2 on 14x 
                2024/04/04 rebuild for changed deps on 15x  
Current:        2025/01/02 rebuilt on gtk3' > $P-locale.tcz.info
echo 'pcmanfm.tcz 
libfm-locale.tcz' > $P-locale.tcz.dep

echo 'Title:          pcmanfm.tcz
Description:    gtk3 File Manager 
Version:        1.3.2
Author:         Hong Jen Yee
Original-site:  https://downloads.sourceforge.net/pcmanfm
Copying-policy: GPL v 2
Size:           128K
Extension_by:   aus9 @linuxquestions.org
Tags:           file manager gtk3 fm    
Comments:       online manual https://man.archlinux.org/man/extra/pcmanfm-gtk3/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
                Recommend change preferences to not allow volume management automount
                of volumes on startup. 
                FM preferences can also change libfm (dependency) config.
                            
                FM Bookmarks at ~/.config/gtk-3.0/bookmarks 
                FM can integrate with some archive TCEs but no dependencies set
                See /usr/local/share/libfm/archivers.list
                load one then run $ update-desktops

                This build has no support for:
                pulldown Edit  move to trash but context menu on a file/dir will offer delete
                pulldown Go  Trash can, devices, Network or server 

                Optional TCES - search for theme in Apps & lxappearance
                Download and load your preferred theme and run $ lxappearance 
                creates  ~/.config/gtk-3.0/settings.ini
                Desktop themes might interfere, you be the judge.
                I like skeuos-gtk-themes.tcz mainly supports gtk2 & 3
                      
Change-log:     2014/01/18 First version, 1.1.2.2 (bmarkus)
                2015/08/20 v1.2.3 (gordon64)
                2019/02/10 v1.3.0  for 10x(aus9)
                2020/07/19 v 1.3.1 for 11x change install script
                2020/08/04 add update-desktops to dep and info  
                2023/03/26 v 1.3.2 on 14x 
                2024/04/04 rebuild for changed deps on 15x  
Current:        2025/01/02 rebuilt on gtk3   ' > $P.tcz.info

readelf -d $P/usr/local/bin/$P | grep 'NEEDED' # ignore TCBs
#libX11.so.6]libX11  cairo  pango  gtk3  libfm 
#libfm-gtk3.so.4 libfm
#[libgtk-3.so.0] [libgdk-3.so.0]gtk3 libfm
#libpangocairo-1.0.so.0]libpangoft2-1.0.so.0]libpango-1.0.so.0] pango  gtk3  libfm 
#libharfbuzz.so.0] harfbuzz  freetype  fontconfig  cairo  pango  gtk3  libfm 
#libatk-1.0.so.0] atk-spi2-core  gtk3  libfm        
#libcairo.so.2 ] cairo  pango  gtk3  libfm
#libgdk_pixbuf-2.0.so.0]gdk-pixbuf2  gtk3  libfm
#libfm.so.4] libfm
#libgthread-2.0.so.0]libgio-2.0.so.0]libgobject-2.0.so.0]libgobject-2.0.so.0]libglib-2.0.so.0]glib2  at-spi2-core  gtk3  libfm
# gtk2 had fontconfig and freetype missing here

echo 'libfm.tcz
update-desktops.tcz ' > $P.tcz.dep

submitqc --libs
rm -rf *.zsync


