#!/bin/sh mkdir -p /tmp/logs/rdesktop ################# # load packages # ################# echo Fetching build essentials ... tce-load -w openssl-dev pcsc-lite-dev Xorg-7.7-dev libao-dev compiletc \ 1>> /tmp/logs/rdesktop/tce-load-w.log 2>> /tmp/logs/rdesktop/tce-load-w-debug.log echo Loading build essentials ... tce-load -i openssl-dev pcsc-lite-dev Xorg-7.7-dev libao-dev compiletc \ 1>> /tmp/logs/rdesktop/tce-load-i.log 2>> /tmp/logs/rdesktop/tce-load-i-debug.log ########################## # get source and compile # ########################## cd /tmp && wget https://github.com/rdesktop/rdesktop/releases/download/v1.8.3/rdesktop-1.8.3.tar.gz \ 2> /tmp/logs/rdesktop/wget-error [ "$?" -ne 0 ] && { echo wget error, check network;exit 1; } tar zxf rdesktop-1.8.3.tar.gz cd rdesktop-1.8.3 && echo Configuring ... #################### # configure & make # #################### ./configure --disable-credssp --enable-smartcard --with-sound=libao \ CFLAGS="-mtune=generic -O2 -pipe" CXXFLAGS="-mtune=generic -O2 -pipe -fno-exceptions -fno-rtti" \ LDFLAGS="-Wl,-O2" CC="gcc -flto -fuse-linker-plugin" CXX="g++ -flto -fuse-linker-plugin" \ 1> /tmp/logs/rdesktop/configure1.log 2> /tmp/logs/rdesktop/configure2.log echo Building ... make -j 1> /tmp/logs/rdesktop/make1.log 2> /tmp/logs/rdesktop/make2.log make DESTDIR=/tmp/rdesktop-root install 1> /tmp/logs/rdesktop/install1.log 2> /tmp/logs/rdesktop/install2.log ############ # striping # ############ cd /tmp && cp -a rdesktop-root rdesktop-base cd /tmp/rdesktop-base && echo Striping ... find . | xargs file | grep "executable" | grep ELF | grep "not stripped" \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null \ || find . | xargs file | grep "shared object" | grep ELF | grep "not stripped" \ | cut -f 1 -d : | xargs strip -g 2> /dev/null ######### ## doc ## ######### mkdir -p /tmp/rdesktop-doc/usr/local/share/ mv /tmp/rdesktop-base/usr/local/share/man /tmp/rdesktop-doc/usr/local/share/ ############# ## keymaps ## ############# mkdir -p /tmp/rdesktop-keymaps/usr/local/share/ mv /tmp/rdesktop-base/usr/local/share/rdesktop /tmp/rdesktop-keymaps/usr/local/share/ ############################ # 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-base/ rdesktop-doc/ rdesktop-keymaps/ ########### # packing # ########### pwd && echo Building tcz packages mksquashfs rdesktop-base 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 # ############ for dep in libao openssl pcsc-lite do echo $dep".tcz" >> rdesktop.tcz.dep done echo rdesktop.tcz > rdesktop-keymaps.tcz.dep echo rdesktop.tcz > rdesktop-doc.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