From 56e702431dd5f85e7eab31f6ef523b04b3a40112 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 28 Jun 2018 04:46:16 -0400 Subject: graphics/GraphicsMagick: Updated for version 1.3.30, script fixes. Signed-off-by: B. Watson --- graphics/GraphicsMagick/GraphicsMagick.SlackBuild | 162 ++++++++++++++-------- graphics/GraphicsMagick/GraphicsMagick.info | 6 +- graphics/GraphicsMagick/README | 21 +-- graphics/GraphicsMagick/slack-desc | 4 +- 4 files changed, 122 insertions(+), 71 deletions(-) diff --git a/graphics/GraphicsMagick/GraphicsMagick.SlackBuild b/graphics/GraphicsMagick/GraphicsMagick.SlackBuild index f71e58178b..e9920d37aa 100644 --- a/graphics/GraphicsMagick/GraphicsMagick.SlackBuild +++ b/graphics/GraphicsMagick/GraphicsMagick.SlackBuild @@ -8,7 +8,13 @@ # MIA. Original version had no license; I'm licensing the update under the # terms of the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. -# 20180613 bkw: updated for v1.3.29 +# 20180627 bkw: +# - updated for v1.3.30. +# - get rid of the need to build/install/build again for the Tcl bindings. +# - actually install the damn perl module (when did *that* break?) +# - get rid of static tcl/tk libs +# - get rid of --disable-openmp (but add OPENMP=no just in case) + # 20180123 bkw: updated for v1.3.28 # 20171219 bkw: updated for v1.3.27, added last few missing delegates # 20170708 bkw: updated for v1.3.26 @@ -23,7 +29,7 @@ # - document optional deps in README PRGNAM=GraphicsMagick -VERSION=${VERSION:-1.3.29} +VERSION=${VERSION:-1.3.30} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -56,6 +62,23 @@ fi set -e +OLDVER="$(pkg-config --silence-errors --modversion $PRGNAM || true)" +if [ "$OLDVER" != "" ]; then + cat <&2 +************************************************************************ +* +* $PRGNAM is already installed (version $OLDVER). +* +* If the build fails, 'removepkg $PRGNAM' and try again. +* +* Don't say I didn't warn you. +* +************************************************************************ +EOF + sleep 3 +fi + + rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP @@ -65,9 +88,9 @@ cd $PRGNAM-$VERSION chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ + -o -perm 511 \) -exec chmod 755 {} \+ -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ # libfpx isn't autodetected, so let's help it a bit: if [ -e /usr/include/fpxlib.h ]; then @@ -76,9 +99,22 @@ else FPXOPT=no fi +# 20180628 bkw: OpenMP seems to work OK now, so enable it by default. In +# fact it may have worked in GraphicsMagick all along: I copied the +# config arguments from Pat's SlackBuild for ImageMagick... But since +# I haven't done exhaustive testing, make it possible to disable: +if [ "${OPENMP:-yes}" = "yes" ]; then + OMPOPT=--enable-openmp + WITHOMP=WITH +else + OMPOPT=--disable-openmp + WITHOMP=WITHOUT +fi + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ + $OMPOPT \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ @@ -87,7 +123,6 @@ CXXFLAGS="$SLKCFLAGS" \ --with-x \ --with-frozenpaths=no \ --without-modules \ - --disable-openmp \ --enable-static=no \ --enable-shared \ --with-perl \ @@ -98,7 +133,7 @@ CXXFLAGS="$SLKCFLAGS" \ make INSTALLDIRS=vendor make install INSTALLDIRS=vendor DESTDIR=$PKG -### Build the perl module +### Build the perl module, if not disabled. # In the olden days, PerlMagick was a separate module, not part of # GraphicsMagick, and it had its own SlackBuild. These days, PerlMagick @@ -106,73 +141,80 @@ make install INSTALLDIRS=vendor DESTDIR=$PKG # has to be built after GraphicsMagick is installed system-wide, but # I've come up with functional (if unattractive) way around that. -cd PerlMagick - -# munge Makefile.PL to build using the includes/libs we just installed -# to $PKG, instead of systemwide ones. -sed -i \ - -e "/magick_CFLAGS/s,=',&-I$PKG/usr/include ," \ - -e "/magick_LDFLAGS/s,=',&-L$PKG/usr/lib$LIBDIRSUFFIX ," \ - Makefile.PL - -# don't know why we have to explicitly force -lGraphicsMagick here... -perl Makefile.PL \ - LIBS=-lGraphicsMagick \ - PREFIX=/usr \ - INSTALLDIRS=vendor \ - INSTALLVENDORMAN1DIR=/usr/man/man1 \ - INSTALLVENDORMAN3DIR=/usr/man/man3 - -make - -# 'make test' will attempt to display an image, if it thinks it's running -# in X. Let's not do this. Also, use the shared libs in $PKG. -# The rungm.sh script sets up the environment so GraphicsMagick will look -# for its support files in the source tree instead of /usr. -DISPLAY="" \ -LD_PRELOAD="$PKG/usr/lib$LIBDIRSUFFIX/lib$PRGNAM.so" \ - ../rungm.sh make test - -cd - +WITHPERL=WITHOUT +if [ "${PERL:-yes}" = "yes" ]; then + cd PerlMagick + + # munge Makefile.PL to build using the includes/libs we just installed + # to $PKG, instead of systemwide ones. + sed -i \ + -e "/magick_CFLAGS/s,=',&-I$PKG/usr/include ," \ + -e "/magick_LDFLAGS/s,=',&-L$PKG/usr/lib$LIBDIRSUFFIX ," \ + Makefile.PL + + # don't know why we have to explicitly force -lGraphicsMagick here... + perl Makefile.PL \ + LIBS=-lGraphicsMagick \ + PREFIX=/usr \ + INSTALLDIRS=vendor \ + INSTALLVENDORMAN1DIR=/usr/man/man1 \ + INSTALLVENDORMAN3DIR=/usr/man/man3 + + make + + # 'make test' will attempt to display an image, if it thinks it's running + # in X. Let's not do this. Also, use the shared libs in $PKG. + # The rungm.sh script sets up the environment so GraphicsMagick will look + # for its support files in the source tree instead of /usr. + DISPLAY="" \ + LD_PRELOAD="$PKG/usr/lib$LIBDIRSUFFIX/lib$PRGNAM.so" \ + ../rungm.sh make test + + make install DESTDIR=$PKG + + cd - + WITHPERL=WITH +fi ### Done with perl module -### Build the tcl module, if & only if GraphicsMagick was already -# installed system-wide. This means, to get tcl bindings, you have to -# build twice. You can thank libtool and its .la files (with hard-coded -# paths) for this stupidity. I could probably spend more time with -# this and fix it (like the perl stuff above), but I suspect nobody -# really cares about TclMagick. +### Build the tcl module, if not disabled. + +WITHTCL=WITHOUT +if [ "${TCL:-yes}" = "yes" ]; then + # 20180627 bkw: the TclMagick build chokes on the .la file. + # In 15.0, we will be removing all .la files. For 14.2, I'll + # temporarily rename it out of the way. + # You can thank libtool and its .la files (with hard-coded + # paths) for this stupidity. + + rename .la .la_renamed $PKG/usr/lib$LIBDIRSUFFIX/*.la + + INC=$(pwd) -GMVER="$(pkg-config --silence-errors --modversion $PRGNAM || true)" -if [ "$GMVER" = "$VERSION" ]; then cd TclMagick -# LIBS needed to avoid libTclMagick.so: undefined symbol: tclStubsPtr + # LIBS needed to avoid libTclMagick.so: undefined symbol: tclStubsPtr source /usr/lib$LIBDIRSUFFIX/tclConfig.sh - LIBS="$TCL_STUB_LIB_FLAG" \ - CFLAGS="$SLKCFLAGS" \ - CXXFLAGS="$SLKCFLAGS" \ - ./configure \ + LIBS="$TCL_STUB_LIB_FLAG -L$PKG/usr/lib$LIBDIRSUFFIX" \ + CFLAGS="$SLKCFLAGS -I$INC" \ + CXXFLAGS="$SLKCFLAGS -I$INC" \ + ../rungm.sh ./configure \ + --with-magick=$(pwd)/../wand/GraphicsMagickWand-config \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ - --with-magick=/usr/bin/${PRGNAM}Wand-config \ + --enable-shared \ + --disable-static \ --with-tcl=/usr/lib$LIBDIRSUFFIX \ --with-tk=/usr/lib$LIBDIRSUFFIX - make - make install INSTALL=$( which install ) DESTDIR=$PKG + ../rungm.sh make + ../rungm.sh make install INSTALL=$( which install ) DESTDIR=$PKG WITHTCL=WITH cd - -else - cat < $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install -sed "s,@WITHTCL@,$WITHTCL," $CWD/slack-desc > $PKG/install/slack-desc +sed \ + -e "s,@WITHOMP@,$WITHOMP," \ + -e "s,@WITHTCL@,$WITHTCL," \ + -e "s,@WITHPERL@,$WITHPERL," \ + $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/graphics/GraphicsMagick/GraphicsMagick.info b/graphics/GraphicsMagick/GraphicsMagick.info index 94fbc5eff3..8d738ca777 100644 --- a/graphics/GraphicsMagick/GraphicsMagick.info +++ b/graphics/GraphicsMagick/GraphicsMagick.info @@ -1,8 +1,8 @@ PRGNAM="GraphicsMagick" -VERSION="1.3.29" +VERSION="1.3.30" HOMEPAGE="http://www.graphicsmagick.org/" -DOWNLOAD="http://downloads.sourceforge.net/graphicsmagick/GraphicsMagick-1.3.29.tar.bz2" -MD5SUM="a277bd795441a0b6461f91f071ecbd20" +DOWNLOAD="http://downloads.sourceforge.net/graphicsmagick/GraphicsMagick-1.3.30.tar.bz2" +MD5SUM="a773040cc9c57356fd3a6fa660ea29e5" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" diff --git a/graphics/GraphicsMagick/README b/graphics/GraphicsMagick/README index f58d793839..6591c88ff2 100644 --- a/graphics/GraphicsMagick/README +++ b/graphics/GraphicsMagick/README @@ -6,15 +6,20 @@ which support reading, writing, and manipulating an image in over 88 major formats including important formats like DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM, and TIFF. -This build includes PerlMagick, the Perl language bindings for -GraphicsMagick. +If you have an older version of GraphicsMagick installed, it's a good +idea to 'removepkg GraphicsMagick' before building the new version. If +you don't do this, the build might work anyway... Upgrading from 1.3.29 +to 1.3.30 has been tested and seems to work, but I make no guarantees. -This build can also include Tcl/Tk bindings (TclMagick). To do this, -first 'removepkg GraphicsMagick' if an older version is installed. Then, -run the build script, install the GraphicsMagick package, then run the -build script again and reinstall the (newly-rebuilt) package. This has -to be done on every version upgrade as well (though only if you need -TclMagick, of course). +This build includes PerlMagick (the Perl language bindings for +GraphicsMagick) and TclMagick (Tcl bindings). If you really need to, +you can disable these via PERL=no and/or TCL=no in the environment. + +Starting with 1.3.30, GraphicsMagick is built with OpenMP support, which +allows it to take better advantage of multiple cores. If you experience +problems you think might be related to OpenMP, try rebuilding with +OPENMP=no in the environment. Please let the maintainer know if this +actually fixes anything! Optional dependencies: Some file formats require extra libraries. These are all autodetected at build time: diff --git a/graphics/GraphicsMagick/slack-desc b/graphics/GraphicsMagick/slack-desc index b40d096e21..5bfae05200 100644 --- a/graphics/GraphicsMagick/slack-desc +++ b/graphics/GraphicsMagick/slack-desc @@ -14,6 +14,6 @@ GraphicsMagick: which support reading, writing, and manipulating an image in ove GraphicsMagick: 88 major formats including important formats like DPX, GIF, JPEG, GraphicsMagick: JPEG-2000, PNG, PDF, PNM, and TIFF. GraphicsMagick: -GraphicsMagick: Home Page: http://www.graphicsmagick.org/ -GraphicsMagick: +GraphicsMagick: This package built @WITHOMP@ OpenMP +GraphicsMagick: This package built @WITHPERL@ Perl support (PerlMagick) GraphicsMagick: This package built @WITHTCL@ Tcl/Tk support (TclMagick) -- cgit v1.2.3