#!/usr/bin/bash # This script assumes it will be launched within "/NAME/VERSION/src" dir. # With all sources in "src" Your Vector Linux .tlz package, slack-desc, # and slack-required will be found in "VERSION" dir. The extraction and # build will be in a temp dir created in "NAME" dir, and then removed on exit. # Comment out second to last line to keep this dir intact. NAME="gnuchess" #Enter package Name! VERSION=${VERSION:-"5.07"} #Enter package Version! VERGNUCHESS=5.07 VERSJENG=11.2 VEREBOARD=1.0.3 VERXBOARD=4.2.7 VL_PACKAGER=${VL_PACKAGER:-"YOURNAME"} #Enter your Name! #SYSTEM VARIABLES #---------------------------------------------------------------------------- BUILDNUM=${BUILDNUM:-"1"} VL_VERSION=${VL_VERSION:-"$(ls /var/log/packages/|grep vlconfig2|cut -d "-" -f4|cut -c 2-5)"} BUILD=${BUILD:-"$BUILDNUM""$VL_VERSION"} ARCH=${ARCH:-$(uname -m)} CONFIG_OPTIONS=${CONFIG_OPTIONS:-""} LDFLAG_OPTIONS=${LDFLAG_OPTIONS:-""} #---------------------------------------------------------------------------- #SETUP PACKAGING ENVIRONMENT #-------------------------------------------- CWD=$(pwd) cd ../ RELEASEDIR=$(pwd) cd $CWD mkdir -p $RELEASEDIR/tmp TMP=$RELEASEDIR/tmp PKG=$TMP/package-$NAME #-------------------------------------------- if [ $UID != 0 ]; then echo "You are not authorized to run this script. Please login as root" exit 1 fi if [ ! -x /usr/bin/requiredbuilder ]; then echo "Requiredbuilder not installed, or not executable." exit 1 fi if [ $VL_PACKAGER = "YOURNAME" ]; then echo 'Who are you? Please edit VL_PACKAGER=${VL_PACKAGER:-YOURNAME} in this script. Change the word "YOURNAME" to your VectorLinux packager name. You may also export VL_PACKAGER, or call this script with VL_PACKAGER="YOUR NAME HERE"' exit 1 fi #CFLAGS SETUP #-------------------------------------------- if [[ "$ARCH" = i?86 ]]; then ARCH=i586 SLKCFLAGS="-O2 -march=i586 -mtune=i686" CONFIGURE_TRIPLET="i486-slackware-linux" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fpic" CONFIGURE_TRIPLET="x86_64-pc-linux" fi export CFLAGS="$SLKCFLAGS $CFLAG_OPTIONS" export CXXFLAGS=$CFLAGS export LDFLAGS="$LDFLAGS $LDFLAG_OPTIONS" #-------------------------------------------- rm -rf $PKG mkdir -p $PKG cd $TMP ### gnuchess rm -rf gnuchess-$VERGNUCHESS tar xjvf $CWD/gnuchess-$VERGNUCHESS.tar.bz2 || exit 1 cd gnuchess-$VERGNUCHESS # make gnuchess compile with gcc4 zcat $CWD/gnuchess.gcc4_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig chown -R root:root . find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ $ARCH-slackware-linux make -j3 make install DESTDIR=$PKG mkdir -p $PKG/usr/doc/gnuchess-$VERGNUCHESS cp -a \ doc/README \ AUTHORS COPYING INSTALL NEWS TODO \ $PKG/usr/doc/gnuchess-$VERGNUCHESS ### Sjeng cd /tmp rm -rf Sjeng-Free-$VERSJENG tar xjvf $CWD/Sjeng-Free-$VERSJENG.tar.bz2 || exit 1 cd Sjeng-Free-$VERSJENG chown -R root:root . find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ $ARCH-slackware-linux make -j3 make install DESTDIR=$PKG mkdir -p $PKG/usr/doc/Sjeng-Free-$VERSJENG cp -a \ AUTHORS BUGS COPYING NEWS README THANKS TODO \ $PKG/usr/doc/Sjeng-Free-$VERSJENG ### eboard cd /tmp rm -rf eboard-$VEREBOARD tar xjvf $CWD/eboard-$VEREBOARD.tar.bz2 || exit 1 cd eboard-$VEREBOARD chown -R root:root . find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; ./configure \ --prefix=/usr --extra-flags=`echo $SLKCFLAGS | sed -e "y/ /:/"` make -j3 make install DESTDIR=$PKG mkdir -p $PKG/usr/doc/eboard-$VEREBOARD cp -a \ AUTHORS COPYING README TODO Documentation/*.txt \ $PKG/usr/doc/eboard-$VEREBOARD ### XBoard cd /tmp rm -rf xboard-$VERXBOARD tar xjvf $CWD/xboard-$VERXBOARD.tar.bz2 || exit 1 cd xboard-$VERXBOARD chown -R root:root . find . -perm 664 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; find . -perm 444 -exec chmod 644 {} \; find . -perm 400 -exec chmod 644 {} \; find . -perm 440 -exec chmod 644 {} \; find . -perm 777 -exec chmod 755 {} \; find . -perm 775 -exec chmod 755 {} \; find . -perm 511 -exec chmod 755 {} \; find . -perm 711 -exec chmod 755 {} \; find . -perm 555 -exec chmod 755 {} \; # --infodir is fubar. zcat $CWD/xboard.infodir.diff.gz | patch -p1 --verbose --backup --suffix=.orig # Taken from Debian to fix CVE-2004-2552 # FOR WHICH THERE IS NO ATTACK VECTOR!!! zcat $CWD/xboard.buffer_overflow_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --infodir=/usr/info \ --enable-zippy \ --build=$ARCH-slackware-linux make -j3 || exit 1 install -c -s xboard $PKG/usr/bin/xboard install -c -s zic2xpm $PKG/usr/bin/zic2xpm install -c cmail $PKG/usr/bin/cmail install -c ./pxboard $PKG/usr/bin/pxboard install -c -m 644 ./xboard.man $PKG/usr/man/man6/xboard.6 install -c -m 644 ./zic2xpm.man $PKG/usr/man/man6/zic2xpm.6 mkdir -p $PKG/usr/info install -c -m 644 xboard.info $PKG/usr/info/xboard.info mkdir -p $PKG/usr/doc/xboard-$VERXBOARD cp -a \ AUTHORS COPYING COPYRIGHT FAQ FAQ.html NEWS READ_ME \ $PKG/usr/doc/xboard-$VERXBOARD ### Finish up... ( 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 ) gzip -9 $PKG/usr/man/man?/*.? gzip -9 $PKG/usr/info/*.info mkdir -p $PKG/usr/share/pixmaps cat $CWD/chess.png > $PKG/usr/share/pixmaps/chess.png mkdir -p $PKG/usr/share/applications cat $CWD/eboard.desktop > $PKG/usr/share/applications/eboard.desktop cat $CWD/xboard.desktop > $PKG/usr/share/applications/xboard.desktop cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild #---------------------------------------------------------------------- mkdir -p $PKG/install # This creates the white space in front of "handy-ruler" in slack-desc below. LENGTH=$(expr length "$NAME") SPACES=0 SHIM="" until [ "$SPACES" = "$LENGTH" ]; do SHIM="$SHIM " let SPACES=$SPACES+1 done # Fill in the package summary between the () below. # Then package the description, License, Author and Website. # There may be no more then 11 $NAME: lines in a valid slack-desc. cat > $RELEASEDIR/slack-desc << EOF # 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 ':'. $SHIM|-----handy-ruler------------------------------------------------------| $NAME: $NAME (GPL licensed chess engines and graphical frontends) $NAME: $NAME: This is a package of programs for playing chess. It includes the $NAME: gnuchess and Sjeng chess engines, and the eboard and XBoard graphical $NAME: interfaces to these engines. $NAME: This package is a clone of the Slackware gnuchess, but better suited $NAME: for VectorLinux. $NAME: $NAME: License: GPL $NAME: Authors: Many, please see docs. $NAME: Website: http://www.gnu.org/software/chess #---------------------------------------- BUILDDATE: $(date) PACKAGER: $VL_PACKAGER HOST: $(uname -srm) DISTRO: $(cat /etc/vector-version) CFLAGS: $CFLAGS LDFLAGS: $LDFLAGS CONFIGURE: EOF cat $RELEASEDIR/slack-desc > $PKG/install/slack-desc #STRIPPING #------------------------------------------------------------------------------------------------------------------ cd $PKG echo " " echo "Stripping...." echo " " 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 #------------------------------------------------------------------------------------------------------------------ #FINISH PACKAGE #-------------------------------------------------------------- echo "Finding dependencies..." requiredbuilder -v -y -s $RELEASEDIR $PKG echo "Creating package $NAME-$VERSION-$ARCH-$BUILD.tlz" makepkg -l y -c n $RELEASEDIR/$NAME-$VERSION-$ARCH-$BUILD.tlz cd $CWD echo "Cleaning up temp files..." && rm -rf $TMP echo "Package Complete" #--------------------------------------------------------------