#!/bin/bash ulimit -s unlimited shopt -s extglob # imagemagick.SlackBuild # Heavily based on the original Slackware build scripts, # Modified by Stuart Winter # 28-Dec-2004 # # Copyright 2008-2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Record toolchain & other info for the build log: slackbuildinfo # Paths to skeleton port's source & real Slackware source tree: slackset_var_cwds # Temporary build locations: export TMPBUILD=$TMP/build-$PKGNAM export PKG=$TMP/package-$PKGNAM mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD # Extract source: tar xvvf $CWD/ImageMagick-*.tar.!(*sign|*asc|*sig) #tar xvvf $PORTCWD/sources/ImageMagick-*.tar.!(*sign|*asc|*sig) cd ImageMagick-*/ || failextract slackhousekeeping # Default security policy to install as policy.xml: POLICY=${POLICY:-limited} # Configure: CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --mandir=/usr/man \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --program-prefix= \ --with-modules \ --enable-opencl \ --enable-hdri \ --with-x \ --with-frozenpaths=no \ --with-fftw \ --enable-static=no \ --enable-shared \ --with-gcc-arch=$ARCH \ --with-perl \ --with-rsvg \ --with-security-policy=$POLICY \ --with-perl-options="INSTALLDIRS=vendor INSTALL_BASE=" \ --build=${SLK_ARCH_BUILD} || failconfig # Build: make $NUMJOBS || make || failmake # First, spam the running development system, as ImageMagick is unable to # properly link the utilities against a new shared library major version # otherwise which has led to several broken packages over the years: make $NUMJOBS install || failinstall rm -f /usr/lib${LIBDIRSUFFIX}/libMagick*.la /sbin/ldconfig # Now build again against the new libraries and headers: make clean make $NUMJOBS || make || failmake # Install into package: make $NUMJOBS install DESTDIR=$PKG || failinstall # This should certainly not be included. # It stomps on the libtool package. rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libltdl.* # .la files in /usr/lib${LIBDIRSUFFIX}/ should be removed. # Other .la files should be left alone, as ImageMagick uses them internally # to locate modules. # Make sure the proper security policy.xml is installed: cp -fav config/policy-${POLICY}.xml $PKG/etc/ImageMagick-7/policy.xml # Provide all the security policy XML files as examples: for file in config/policy*xml ; do cp -fav $file $PKG/etc/ImageMagick-7/$(basename ${file}).example done # Nothing but a perl upgrade should replace this (and maybe not even that) find $PKG -name perllocal.pod | xargs rm -fv # 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 rm -rf $PKG/usr/share/man ( cd $PKG/usr/lib${LIBDIRSUFFIX}/perl5 # Ditch empty dirs: rmdir */* 2> /dev/null rmdir * 2> /dev/null ) # Move config files to .new: ( cd $PKG/etc/ImageMagick* for file in *.xml ; do mv -fv ${file} ${file}.new done ) # Copy docs: #mkdir -p $PKG/usr/doc/ImageMagick-$( echo $VERSION | tr _ - ) mkdir -p $PKG/usr mv -fv $PKG/usr/share/doc $PKG/usr cp -fav AUTHORS LICENSE NEWS NOTICE Platforms.txt QuickStart.txt README.txt \ $PKG/usr/doc/Imag*/ changelogliposuction ChangeLog ImageMagick '*' # because the version is the major one. # Apply generic Slackware packaging policies: cd $PKG slackstripall # strip all .a archives and all ELFs slackstriprpaths # strip rpaths slack_delete_lafiles # delete usr/lib{,64}/*.la slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # chown -R root:root, chmod -R og-w, slackchown, slack644docs slackdesc # install slack-desc and doinst.sh slackmp # run makepkg -l y -c n # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links