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