graphics/GraphicsMagick: Updated for version 1.3.30, script fixes.

Signed-off-by: B. Watson <yalhcru@gmail.com>
This commit is contained in:
B. Watson 2018-06-28 04:46:16 -04:00 committed by Willy Sudiarto Raharjo
parent f36f43ed41
commit 56e702431d
No known key found for this signature in database
GPG key ID: 887B8374D7333381
4 changed files with 117 additions and 66 deletions

View file

@ -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 <<EOF 1>&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
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
# 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
# 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
# '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 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 -
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 <<EOF
Building without Tcl/Tk bindings. If you need TclMagick, install this
package, then re-run the SlackBuild and reinstall the package. The 2nd
build will include TclMagick.
EOF
WITHTCL=WITHOUT
rename .la_renamed .la $PKG/usr/lib$LIBDIRSUFFIX/*.la_renamed
fi
### Done with tcl module
@ -192,7 +234,11 @@ cp -a ChangeLog *.txt $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $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}

View file

@ -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=""

View file

@ -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:

View file

@ -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)