#!/bin/bash # # got it from ftp://ftp.slackware.com/pub/slackware/slackware-10.2/patches/source/imagemagick/imagemagick.SlackBuild # small changes by rhatto. # if [ -s "slack-required" ]; then echo Recomended and required packages for building cairo are: cat slack-required | sed -e 's/^/\t/' if [ "$INTERACT" != "no" ]; then echo If you dont have those installed, press Ctrl-C. Otherwise, hit ENTER. read crap # else # echo Sleeping 3 seconds... # sleep 3 fi fi CWD="`pwd`" if [ -f ~/.slackbuildrc ]; then source ~/.slackbuildrc elif [ -f /etc/slackbuildrc ]; then source /etc/slackbuildrc fi PACKAGE="imagemagick" TMP=${TMP:=/tmp} ARCH=${ARCH:=i486} BUILD=${BUILD:=1rha} SRC_DIR=${SRC:=$CWD} REPOS=${REPOS:=$TMP} if [ "$ARCH" == "x86_64" ]; then LIBDIR=/usr/lib64 else LIBDIR=/usr/lib fi # ------- error codes for createpkg -------------- ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 ERROR_PATCH=40 TMP="$TMP/$PACKAGE" PKG=$TMP/package-imagemagick rm -rf $TMP mkdir -p $PKG # NOTE: This is to cope with ImageMagick version numbers such as 5.4.7-4, # which occur fairly often (but not always). If these numbers are all the same, # then this is not one of those versions. # This is a bit messy, so we'll explain it well. :-) # This is the base version number, which is needed to cd into the source tree BASEVER=6.3.3 # This is the version number used in the source tarball filename FILEVER=6.3.3-0 # This is the version number used in the package, where a version number cannot # contain a '-' PKGVER=6.3.3_0 RTOOL="wget" PACKAGE_EXT="bz2" SRC="ImageMagick-$FILEVER.tar.$PACKAGE_EXT" URL="http://slack.sarava.org/slackware/slackware-11.0/patches/source/imagemagick/ImageMagick-6.3.3-0.tar.bz2" SRC_DIR="$SRC_DIR/$PACKAGE" mkdir -p $SRC_DIR if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET fi 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 # --with-x or not --with-x, that is the question. It seems many other # distributions don't compile with X support, but it's been traditional # here. I am moving the prefix to /usr (instead of /usr/X11R6) though, # because many X-linked things are put into /usr now (like GNOME), and # I've heard a few reports of compile failures when this isn't in /usr. # Everyone else does it -- time to follow the path of least resistance. cd $TMP tar xvf $SRC_DIR/$SRC || exit $ERROR_TAR cd ImageMagick-$BASEVER if [ "$BASEVER" == "6.2.3" ]; then zcat $CWD/imagemagick.CVE-2005-4601.CVE-2006-0082.diff.gz | patch -p1 --verbose || exit $ERROR_PATCH fi 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" \ CXXFLAGS="$SLKCFLAGS" \ ./configure --prefix=/usr \ --program-prefix= \ --libdir=$LIBDIR \ --enable-16bit-pixel \ --with-x \ --with-frozenpaths=no \ --enable-static=no \ --enable-shared \ --with-perl \ $ARCH-slackware-linux make || exit $ERROR_MAKE make install DESTDIR=$PKG || exit $ERROR_INSTALL # Lately ImageMagick has been smoking crack: rm -f $PKG/usr/lib/libltdl.* ( cd $PKG # Nothing but a perl upgrade should replace this (and maybe not even that) find . -name perllocal.pod | xargs rm -f ) # DESTDIR is still broken about this, but works well enough otherwise: chmod 644 $PKG/usr/share/man/man3/* mv $PKG/usr/share/man/man3 $PKG/usr/man rmdir $PKG/usr/share/man ( cd $PKG/usr/lib/perl5 # Ditch empty dirs: rmdir */* 2> /dev/null rmdir * 2> /dev/null ) ( 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 ) chown -R root.bin $PKG/usr/bin gzip -9 $PKG/usr/man/man?/*.? mkdir -p $PKG/usr mv $PKG/usr/share/doc $PKG/usr cp -a \ AUTHORS LICENSE NEWS NOTICE Platforms.txt QuickStart.txt README.txt \ $PKG/usr/doc/Imag* mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG makepkg -l y -c n $REPOS/imagemagick-$PKGVER-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG if [ "$CLEANUP" == "yes" ]; then rm -rf $TMP fi