#!/bin/sh
LOG_DIR=/tmp/logs/rdesktop
sudo rm -fr ${LOG_DIR} /tmp/rdesktop-root
mkdir -p ${LOG_DIR}
#################
# load packages #
#################
echo Fetching build essentials ...
tce-load -w openssl-dev pcsc-lite-dev Xorg-7.7-dev alsa-dev compiletc squashfs-tools \
git autoconf autogen-dev automake \
2>&1 >> ${LOG_DIR}/tce-load-w.log
echo Loading build essentials ...
tce-load -i openssl-dev pcsc-lite-dev Xorg-7.7-dev alsa-dev compiletc squashfs-tools \
git autoconf autogen-dev automake \
2>&1 >> ${LOG_DIR}/tce-load-i.log
##########################
# get source and compile #
##########################
cd /tmp && git clone https://github.com/rdesktop/rdesktop.git \
2> ${LOG_DIR}/clone-error
cd rdesktop && echo Configuring $(git describe) ...
####################
# configure & make #
####################
. ./bootstrap
./configure --disable-credssp --enable-smartcard --with-sound=alsa \
CFLAGS="-mtune=generic -Os -pipe" CXXFLAGS="-mtune=generic -Os -pipe -fno-exceptions -fno-rtti" \
LDFLAGS="-Wl,-O1" CC="gcc -flto -fuse-linker-plugin" CXX="g++ -flto -fuse-linker-plugin" \
1> ${LOG_DIR}/configure1.log 2> ${LOG_DIR}/configure2.log
echo Building ...
make -j 1> ${LOG_DIR}/make1.log 2> ${LOG_DIR}/make2.log
make DESTDIR=/tmp/rdesktop-root install 1> ${LOG_DIR}/install1.log 2> ${LOG_DIR}/install2.log
############
# striping #
############
cd /tmp/rdesktop-root && echo Striping ...
find . -exec file {} + | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
#########
## doc ##
#########
mkdir -p /tmp/rdesktop-doc/usr/local/share/
mv /tmp/rdesktop-root/usr/local/share/man /tmp/rdesktop-doc/usr/local/share/
#############
## keymaps ##
#############
mkdir -p /tmp/rdesktop-keymaps/usr/local/share/rdesktop/keymaps
find /tmp/rdesktop-root/usr/local/share/rdesktop/keymaps -not -name common -a -not -name modifiers \
-a -not -name en-us -a -not -type d -exec mv {} /tmp/rdesktop-keymaps/usr/local/share/rdesktop/keymaps \;
############################
# remove empty directories #
############################
echo remove empty directories
find . -depth -type d -exec rmdir {} + 2>/dev/null
#########
# chown #
#########
cd /tmp
sudo chown -R root:root rdesktop-root/ rdesktop-doc/ rdesktop-keymaps/
###########
# packing #
###########
pwd && echo Building tcz packages
mksquashfs rdesktop-root rdesktop.tcz > /dev/null
mksquashfs rdesktop-doc rdesktop-doc.tcz > /dev/null
mksquashfs rdesktop-keymaps rdesktop-keymaps.tcz > /dev/null
md5sum rdesktop.tcz > rdesktop.tcz.md5.txt
md5sum rdesktop-doc.tcz > rdesktop-doc.tcz.md5.txt
md5sum rdesktop-keymaps.tcz > rdesktop-keymaps.tcz.md5.txt
############
# dep file #
############
cat << EOF > rdesktop.tcz.dep
libXcursor.tcz
libXrandr.tcz
libasound.tcz
openssl.tcz
pcsc-lite.tcz
EOF
echo rdesktop.tcz > rdesktop-keymaps.tcz.dep
mkdir -p /tmp/output
mv -f rdesktop.tcz* rdesktop-doc.tcz* rdesktop-keymaps.tcz* /tmp/output
clear && echo Finished. See /tmp/output
ls /tmp/output
