#!/bin/bash # some of base things version="3.5.13" arch=`arch` startdir=`pwd` binariesdir="${startdir}/binaries-${arch}" scriptname=`basename $0` #usage function function usage(){ printf "Usage: %s [ OPTIONS ]\n\n" ${scriptname} printf "Options:\n" printf " -a, --all\t\tBuild all binaries.\n" printf " -b, --base\t\tBuild base components.\n" printf " -x, --extras\t\tBuild extras.\n" printf " -d, --deps\t\tBuild external dependencies.\n" printf " -h, --help\t\tDisplay this mesage.\n" printf " -p, --patch [dir]\tPatch PKGBUILDs using patches found in patch folder.\n" printf "\t\t\tThis files should be created manually.\n" printf "\t\t\tPatches should be named after PKGBUILD they correct.\n" printf "\t\t\tExample: kdebase.patch\n" printf "\t\t\tOptionally you can specify patches location (default\n" printf "\t\t\tpatch folder).\n" printf " -c, --dont-clean\tDont remove anything.\n" printf "Note: This script should be run on clean and out-of-box arch\n" printf "installation for the best outcome. There is no need to \n" printf "pull anything needed for building manually.\n" printf "Binaries will be automatically installed as build process\n" printf "progress and gethered in %s dir.\n" ${binariesdir} printf "\e[0;31m THIS SCRIPT SHOULD BE RUN AS ROOT\e[0m\n\n\n" exit 1 } function build_pkg(){ cd $1 makepkg -i $cleanflag -s --noconfirm --asroot cd .. } function patch_pkgbuild(){ if [ -e ${startdir}/patch/${1}.patch ]; then patch ${1}/PKGBUILD < ${patchdir}/${1}.patch fi } # Parse args if [ $# -lt 1 ]; then usage fi args=`getopt -o abxdrhp::c \ -l all,base,extras,asroot,deps,"help",patch::,dont-clean \ -n $scriptname -- "$@"` eval set -- "$args" while true ; do case "$1" in -a|--all) buildbase=1 fetch=1 builddeps=1 buildextras=1 shift 1 ;; -b|--base) buildbase=1 fetch=1 shift 1 ;; -x|--extras) buildextras=1 fetch=1 shift 1 ;; -d|--deps) builddeps=1 shift 1 ;; -h|--help) usage shift 1 ;; -p|--patch) patch=1 case $2 in "") patchdir=${curdir}/patch/ shift 2 ;; *) patchdir=${2} shift 2 ;; esac ;; -c|--dont-clean) dontclean=1 shift 1 ;; --) shift ; break ;; esac done if [ ! $dontclean ]; then cleanflag="-c" fi if [ $builddeps ]; then printf "\e[0;34m=========================================\e[0m\n" printf "\n\e[0;34mBuilding dependencies form aur\e[0m\n" printf "\e[0;34m=========================================\e[0m\n" mkdir deps cd deps printf "\n\e[0;34mhal-info\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" wget http://aur.archlinux.org/packages/ha/hal-info/hal-info.tar.gz tar zxvf hal-info.tar.gz build_pkg hal-info printf "\n\e[0;34mhal-git\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" wget http://aur.archlinux.org/packages/ha/hal-git/hal-git.tar.gz tar zxvf hal-git.tar.gz build_pkg hal-git printf "\n\e[0;34mlibnjb\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" wget http://aur.archlinux.org/packages/li/libnjb/libnjb.tar.gz tar zxvf libnjb.tar.gz build_pkg libnjb # gather binaries cd $curdir mkdir -p ${binariesdir}/deps/ mv aur/*/*.tar.xz ${binariesdir}/deps/ if [ ! $dontclean ]; then rm -r deps fi printf "\e[0;34m=========================================\e[0m\n" printf "\e[0;34mFinished building external dependencies\e[0m\n" printf "\e[0;34m=========================================\e[0m\n" fi if [ $fetch ]; then printf "\e[0;34m=========================================\e[0m\n" printf "\n\e[0;34mFetching trinity PKGBUILDs\e[0m\n" printf "\e[0;34m=========================================\e[0m\n" # fetch PKGBUILD and remove useless things git clone http://scm.trinitydesktop.org/scm/git/tde-packaging cd tde-packaging git submodule init git submodule update rm -r ark debian ubuntu fedora mandriva opensuse redhat slackware README.GIT cd $startdir mv tde-packaging/arch/${version}/* . rm -r tde-packaging if [ ! $buildbase ]; then rm -r trinity-base fi if [ ! $buildextras ]; then rm -r trinity-extras fi fi if [ $buildbase ]; then cd trinity-base # build printf "\e[0;34m=========================================\e[0m\n" printf "Building base trinity components\n" printf "\e[0;34m=========================================\e[0m\n" printf "\n\e[0;34mtrinity-qt3\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild qt3 fi build_pkg trinity-qt3 printf "\n\e[0;34mtrinity-pyqt3\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild pyqt3 fi build_pkg trinity-pyqt3 printf "\n\e[0;34mtrinity-tqtinterface\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild tqtinterface fi build_pkg trinity-tqtinterface printf "\n\e[0;34mtrinity-arts\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild arts fi build_pkg trinity-arts printf "\n\e[0;34mtrinity-dbus-1-qt3\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild dbus-1-qt3 fi build_pkg trinity-dbus-1-qt3 printf "\n\e[0;34mtrinity-dbus-tqt\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild dbus-tqt fi build_pkg trinity-dbus-tqt printf "\n\e[0;34mtrinity-dbus-tqt-1\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild dbus-tqt-1 fi build_pkg trinity-dbus-tqt-1 printf "\n\e[0;34mtrinity-kdelibs\e[0m\n\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild kdelibs fi build_pkg trinity-kdelibs printf "\n\e[0;34mtrinity-kdebase\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild kdebase fi build_pkg trinity-kdebase # gather binaries and clean cd $curdir mkdir -p ${binariesdir}/trinity-base/ mv aur/*/*.tar.xz ${binariesdir}/trinity-base/ if [ ! $dontclean ]; then rm -r trinity-base fi printf "\e[0;34m=========================================\e[0m\n" printf "\e[0;34mFinished building base components\e[0m\n" printf "\e[0;34m=========================================\e[0m\n" fi if [ $buildextras ]; then cd trinity-extras printf "\e[0;34m=========================================\e[0m\n" printf "\n\e[0;34mBuilding trinity-extras\e[0m\n" printf "\e[0;34m=========================================\e[0m\n" printf "\n\e[0;34mtrinity-amarok\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild amarok fi build_pkg trinity-amarok printf "\n\e[0;34mtrinity-gtk-qt-engine\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild gtk-qt-engine fi build_pkg trinity-gtk-qt-engine printf "\n\e[0;34mtrinity-kdegraphics\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild kdegraphics fi build_pkg trinity-kdegraphics printf "\n\e[0;34mtrinity-kdevelop\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild kdevelop fi build_pkg trinity-kdevelop printf "\n\e[0;34mtrinity-konversation\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild konversation fi build_pkg trinity-konversation printf "\n\e[0;34mtrinity-kpowersave\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild kpowersave fi build_pkg trinity-kpowersave printf "\n\e[0;34mtrinity-amarok\e[0m\n" printf "\e[0;34m%b----------------------------------------\e[0m\n" if [ $patch ]; then patch_pkgbuild qtcurve fi build_pkg trinity-qtcurve # gather binaries and clean cd $curdir mkdir -p ${binariesdir}/trinity-extras/ mv aur/*/*.tar.xz ${binariesdir}/trinity-extras/ if [ ! $dontclean ]; then rm -r trinity-extras fi printf "\e[0;34m=========================================\e[0m\n" printf "\e[0;34mFinished building external dependencies\e[0m\n" printf "\e[0;34m=========================================\e[0m\n" fi