#!/bin/sh # Copyright (c) 2006 Eric Hameleers # Distributed under the terms of the GNU General Public License, Version 2 # $Id$ # ----------------------------------------------------------------------------- # # Slackware SlackBuild script # =========================== # By: Eric Hameleers # For: psi # URL: http://psi-im.org/ # Needs: Qt 3.1.0 *multithreaded* # zlib 1.1.4 # Optional: qca 1.0, qca-tls 1.0 (for SLL/TLS connections to the server) # Changelog: # 0.9.2-1: 07/dec/2004 by Eric Hameleers # * Initial build. # 0.9.2-2: 07/dec/2004 by Eric Hameleers # * Added Gnome .desktop file, pixmap plus translations into # nl,de,fr,es # 0.9.3-1: 02/feb/2005 by Eric Hameleers # * Rebuild for new release (now requires qca too for SSL support). # Split the language files into a separate package. # 0.10-test1:27/aug/2005 by Eric Hameleers # * The prelude to psi-0.10. # 0.10-test2:03/sep/2005 by Eric Hameleers # * Test-2. # 0.10-test3:28/nov/2005 by Eric Hameleers # * Test-3. # 0.10-1: 13/jan/2006 by Eric Hameleers # * The final release is here (including laguage packs). # 0.10-2: 02/mar/2006 by Eric Hameleers # * Added missing pixmaps icon; fixed ownership of binary. # Fixed building of the language pack. # # Run 'sh SlackBuild --cleanup' to build a Slackware package. # The package (.tgz) plus descriptive .txt file are created in /tmp . # Install using 'installpkg'. # # ----------------------------------------------------------------------------- # --- INIT --- # Set initial variables: CWD=`pwd` if [ "$TMP" = "" ]; then TMP=/tmp fi PRGNAM=psi VERSION=0.10 ARCH=${ARCH:-i486} BUILD=2 if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mcpu=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mcpu=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2" fi PKG=$TMP/package-$PRGNAM if [ ! -d $TMP/tmp-$PRGNAM ]; then mkdir -p $TMP/tmp-$PRGNAM # location to build the source else rm -rf $TMP/tmp-$PRGNAM/* fi if [ ! -d $PKG ]; then mkdir -p $PKG # place for the package to be built else rm -rf $PKG/* rm -rf $PKG-lang/* fi # Get the source archive if not yet present if ! [ -f ${PRGNAM}-${VERSION}.tar.bz2 ]; then echo "Downloading source archive for $PRGNAM - ${VERSION}" URL="http://ovh.dl.sourceforge.net/sourceforge/${PRGNAM}/${PRGNAM}-${VERSION}.tar.bz2" wget -nv "$URL" if [ $? -ne 0 ]; then echo "Download failed! Aborting the build."; exit 1; fi fi # --- PACKAGE BUILDING --- echo "++" echo "|| $PRGNAM-$VERSION" echo "++" cd $PKG # Explode the package framework: if [ -f $CWD/_$PRGNAM.tar.gz ]; then explodepkg $CWD/_$PRGNAM.tar.gz fi cd $TMP/tmp-$PRGNAM # --- TARBALL EXTRACTION,PATCH,MODIFY --- echo "Extracting the program tarball for $PRGNAM..." tar -xjvf $CWD/${PRGNAM}-${VERSION}.tar.bz2 cd ${PRGNAM}-${VERSION} chown -R root.root * # --- BUILDING --- echo Building ... CFLAGS="$SLKCFLAGS" \ ./configure --prefix=/usr \ 2>&1 | tee $CWD/configure-${PRGNAM}.log make 2>&1 | tee $CWD/make-${PRGNAM}.log # # Install all the needed stuff to the package dir # # Use installwatch if available: which installwatch > /dev/null 2>&1 if [ $? == 0 ]; then installwatch -o $CWD/install-${PRGNAM}.log make INSTALL_ROOT=$PKG install else make INSTALL_ROOT=$PKG install 2>&1 |tee $CWD/install-${PRGNAM}.log fi # Not only KDE wants a pixmap mkdir -p $PKG/usr/share/pixmaps/ cp $PKG/usr/share/icons/hicolor/32x32/apps/psi.png $PKG/usr/share/pixmaps/ # --- DOCUMENTATION --- DOCS="COPYING ChangeLog README TODO" mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCS \ $PKG/usr/doc/$PRGNAM-$VERSION chmod -R -w $PKG/usr/doc/$PRGNAM-$VERSION/* # Compress the man page(s) gzip -9f $PKG/usr/man/*/* # Strip binaries ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) # --- OWNERSHIP, RIGHTS --- chmod -R o-w $PKG chown -R root:bin $PKG/usr/bin $PKG/usr/sbin \ $PKG/bin $PKG/sbin 2>/dev/null # --- PACKAGE DESCRIPTION --- mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc if [ -f $CWD/doinst.sh ]; then cat $CWD/doinst.sh > $PKG/install/doinst.sh fi # --- BUILDING --- # # Separate package "psi-lang" for the language translation files # --- language pack build --- # LANG="es eo fr hu nl pl pt_BR sl vi bg mk" for NN in $LANG; do if ! [ -f $CWD/${PRGNAM}_${NN}.qm ]; then echo "Getting language pack '$NN' for $PRGNAM - version ${VERSION}" URL="http://psi-im.org/files/translation/${VERSION}/${PRGNAM}_${NN}.qm" wget -nv "$URL" -O $CWD/${PRGNAM}_${NN}.qm fi done # Add some translations mkdir -p ${PKG}-lang/usr/share/psi cp $CWD/psi_*.qm ${PKG}-lang/usr/share/psi/ mkdir -p ${PKG}-lang/install cat <<-ENDDESC > ${PKG}-lang/install/slack-desc # HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. |-----handy-ruler------------------------------------------------------| psi-lang: psi-lang (Language pack for Psi) psi-lang: psi-lang: Psi is a multi-platform Jabber client. psi-lang: This package adds several translations as a package to the Psi psi-lang: installation (release ${VERSION}) psi-lang: Available are: ${LANG} psi-lang: psi-lang: psi-lang: psi-lang: Homepage is http://psi-im.org/ psi-lang: ENDDESC cd ${PKG}-lang makepkg --linkadd y --chown n $TMP/${PRGNAM}-lang-$VERSION-noarch-$BUILD.tgz \ 2>&1 | tee $CWD/makepkg-${PRGNAM}-lang.log (cd $TMP && md5sum ${PRGNAM}-lang-$VERSION-noarch-$BUILD.tgz > ${PRGNAM}-lang-$VERSION-noarch-$BUILD.tgz.md5) cat install/slack-desc | grep "^${PRGNAM}" > $TMP/${PRGNAM}-lang-$VERSION-noarch-$BUILD.txt # --- end language pack build --- # Build the package: cd $PKG makepkg --linkadd y --chown n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.tgz \ 2>&1 | tee $CWD/makepkg-${PRGNAM}.log (cd $TMP && md5sum $PRGNAM-$VERSION-$ARCH-$BUILD.tgz > $PRGNAM-$VERSION-$ARCH-$BUILD.tgz.md5) cat $CWD/slack-desc | grep "^${PRGNAM}" > $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txt # --- CLEANUP --- # Clean up the extra stuff: if [ "$1" = "--cleanup" ]; then rm -rf $TMP/tmp-$PRGNAM rm -rf $PKG rm -rf $PKG-lang fi