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

LIST="compiletc submitqc libfm-dev adwaita-icon-theme "
for Z in $LIST
    do 
    su -c "tce-load -i $Z" $USER
done

# /etc as same rule for libfm
cd /tmp
su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://downloads.sourceforge.net/$P/$SRC.tar.xz   "  $USER
xz -d $P*xz && tar xvf $P*tar
cd $SRC
./configure --prefix=/usr/local --sysconfdir=/etc --with-gtk=2
make check  # takes 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 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

# 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:     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 
Current:        2023/03/26 v 1.3.2 on 14x   ' > $P-locale.tcz.info

echo 'Title:          pcmanfm.tcz
Description:    Graphical File Manager 
Version:        1.3.2
Author:         Hong Jen Yee
Original-site:  https://downloads.sourceforge.net/pcmanfm
Copying-policy: GPL v2
Size:           124K
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
                Recommend change preferences to not allow volume management automount
                of volumes on startup. 
                FM preferences can also change libfm (dependency) config.
                            
                FM Bookmarks at ~/.gtk-bookmarks 
                
                gvfs and trash can support disabled. pcmanfm has trashcan/network 
                settings but do not try to use please.

                FM can integrate with either xarchiver, file-roller or engrampa to unpack 
                common archives types but no dependencies set. Load your preferred archive 
                tool and various archive format TCEs then run $ update-desktops

                Read update-desktops info please. If you load an extra GUI
                run $ update-desktops to get mime handling please
                     
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  
Current:        2023/03/27 v 1.3.2 on 14x    ' > $P.tcz.info

readelf -d $P/usr/local/bin/$P | grep 'NEEDED'
###############################################
# 0x0000000000000001 (NEEDED) Shared library: [libX11.so.6]      libX11 pixbuf libfm
# 0x0000000000000001 (NEEDED) Shared library: [libfm-gtk.so.4]      libfm
# 0x0000000000000001 (NEEDED) Shared library: [libgtk-x11-2.0.so.0]   "
# 0x0000000000000001 (NEEDED) Shared library: [libgdk-x11-2.0.so.0]   "
# 0x0000000000000001 (NEEDED) Shared library: [libpangocairo-1.0.so.0]  "
# 0x0000000000000001 (NEEDED) Shared library: [libatk-1.0.so.0]       "
# 0x0000000000000001 (NEEDED) Shared library: [libcairo.so.2 ]        "
# 0x0000000000000001 (NEEDED) Shared library: [libgdk_pixbuf-2.0.so.0]"
# 0x0000000000000001 (NEEDED) Shared library: [libpangoft2-1.0.so.0]  "
# 0x0000000000000001 (NEEDED) Shared library: [libpango-1.0.so.0]     "
# 0x0000000000000001 (NEEDED) Shared library: [libharfbuzz.so.0]      "
# 0x0000000000000001 (NEEDED) Shared library: [libfontconfig.so.1]    "
# 0x0000000000000001 (NEEDED) Shared library: [libfreetype.so.6]      "
# 0x0000000000000001 (NEEDED) Shared library: [libfm.so.4]            "
# 0x0000000000000001 (NEEDED) Shared library: [libgthread-2.0.so.0]   "
# 0x0000000000000001 (NEEDED) Shared library: [libgio-2.0.so.0]      "
# 0x0000000000000001 (NEEDED) Shared library: [libgobject-2.0.so.0]  "
# 0x0000000000000001 (NEEDED) Shared library: [libglib-2.0.so.0]     "
# 0x0000000000000001 (NEEDED) Shared library: [libm.so.6]      TCB
# 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] "
# 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]       "
###########################################################

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

submitqc --libs
