aports/community/imagemagick/APKBUILD

308 lines
6.8 KiB
Text

# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=imagemagick
_pkgname=ImageMagick
pkgver=7.1.1.44
pkgrel=0
_pkgver=${pkgver%.*}-${pkgver##*.}
_abiver=7
pkgdesc="Collection of tools and libraries for many image formats"
url="https://imagemagick.org/"
arch="all"
license="ImageMagick"
options="libtool"
depends_dev="$pkgname=$pkgver-r$pkgrel"
install="$pkgname.post-upgrade"
makedepends="
chrpath
fftw-dev
fontconfig-dev
freetype-dev
ghostscript-dev
lcms2-dev
libheif-dev
libjpeg-turbo-dev
libpng-dev
libraw-dev
librsvg-dev
libtool
libwebp-dev
libx11-dev
libxext-dev
libxml2-dev
pango-dev
perl-dev
tiff-dev
zlib-dev
"
checkdepends="freetype fontconfig ghostscript ghostscript-fonts lcms2 graphviz"
subpackages="
$pkgname-doc
$pkgname-static
$pkgname-dev
$pkgname-c++:_cxx
$pkgname-libs
$pkgname-perlmagick:_perlmagick
$pkgname-perlmagick-doc:_perlmagick_doc
$pkgname-heic
$pkgname-jpeg
$pkgname-pango
$pkgname-pdf
$pkgname-raw
$pkgname-svg
$pkgname-tiff
$pkgname-webp
"
source="https://imagemagick.org/archive/releases/ImageMagick-$_pkgver.tar.xz"
builddir="$srcdir/$_pkgname-$_pkgver"
case "$CARCH" in
s390x)
;;
*)
makedepends="$makedepends libjxl-dev"
subpackages="$subpackages $pkgname-jxl"
_jxl="--with-jxl"
;;
esac
# secfixes:
# 7.1.1.21-r0:
# - CVE-2023-5341
# 7.1.0.52-r0:
# - CVE-2022-44267
# - CVE-2022-44268
# 7.1.0.47-r0:
# - CVE-2022-3213
# 7.1.0.30-r0:
# - CVE-2022-1115
# - CVE-2022-1114
# - CVE-2022-2719
# 7.1.0.24-r0:
# - CVE-2022-0284
# 7.1.0.10-r0:
# - CVE-2021-39212
# 7.1.0.0-r0:
# - CVE-2021-34183
# 7.0.11.9-r0:
# - CVE-2021-3574
# 7.0.11.1-r0:
# - CVE-2021-20241
# - CVE-2021-20243
# - CVE-2021-20244
# - CVE-2021-20245
# - CVE-2021-20246
# - CVE-2021-20309
# - CVE-2021-20310
# - CVE-2021-20311
# - CVE-2021-20312
# - CVE-2021-20313
# 7.0.10.57-r0:
# - CVE-2021-20176
# - CVE-2021-20224
# 7.0.10.42-r0:
# - CVE-2020-29599
# 7.0.10.35-r0:
# - CVE-2020-27560
# 7.0.10.31-r0:
# - CVE-2021-3596
# - CVE-2022-28463
# - CVE-2022-32545
# - CVE-2022-32546
# - CVE-2022-32547
# 7.0.10.18-r0:
# - CVE-2020-13902
# 7.0.10.8-r0:
# - CVE-2020-19667
# 7.0.10.0-r0:
# - CVE-2020-10251
# 7.0.9.7-r0:
# - CVE-2019-19952
# 7.0.8.62-r0:
# - CVE-2019-17547
# 7.0.8.56-r0:
# - CVE-2019-17541
# - CVE-2019-17540
# - CVE-2019-14981
# - CVE-2019-13454
# 7.0.8.53-r0:
# - CVE-2019-13391
# - CVE-2019-13311
# - CVE-2019-13310
# - CVE-2019-13309
# - CVE-2019-13308
# - CVE-2019-13307
# - CVE-2019-13306
# - CVE-2019-13305
# - CVE-2019-13304
# - CVE-2019-13303
# - CVE-2019-13302
# - CVE-2019-13301
# - CVE-2019-13300
# - CVE-2019-13299
# - CVE-2019-13298
# - CVE-2019-13297
# - CVE-2019-13296
# - CVE-2019-13295
# - CVE-2019-13137
# - CVE-2019-13136
# - CVE-2019-13135
# - CVE-2019-13134
# - CVE-2019-13133
# 7.0.8.44-r0:
# - CVE-2019-19949
# - CVE-2019-19948
# - CVE-2019-16713
# - CVE-2019-16712
# - CVE-2019-16711
# - CVE-2019-15141
# - CVE-2019-15140
# - CVE-2019-15139
# - CVE-2019-14980
# - CVE-2019-11598
# - CVE-2019-11597
# - CVE-2019-11472
# 7.0.8.38-r0:
# - CVE-2019-9956
# - CVE-2019-16710
# - CVE-2019-16709
# - CVE-2019-16708
# - CVE-2019-10650
# - CVE-2019-10649
build() {
# pretty much doubles the performance
CFLAGS="$CFLAGS -O2" \
CXXFLAGS="$CXXFLAGS -O2" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--enable-static \
--with-fftw \
--with-gs-font-dir=/usr/share/fonts/Type1 \
--with-gslib \
--with-hdri \
--with-heic \
--with-modules \
--with-perl \
--with-perl-options="INSTALLDIRS=vendor INSTALLVENDORARCH=/usr/lib/perl5/vendor_perl NO_PACKLIST=1 NO_PERLLOCAL=1" \
--with-png \
--with-rsvg \
--with-threads \
--with-tiff \
--with-webp \
--with-x \
--with-xml \
$_jxl
make
}
check() {
make check
}
package() {
make DESTDIR="$pkgdir" install
if ! [ -e "$pkgdir"/usr/lib/libMagickCore-$_abiver.Q16HDRI.so ]; then
error "Has ABI verision changed? (current is $_abiver)"
return 1
fi
# we cannot let abuild delete the *.la files due to we need *.la
# for the modules
rm "$pkgdir"/usr/lib/*.la
}
heic() {
pkgdesc="$pkgdesc (HEIC support modules)"
install_if="$pkgname=$pkgver-r$pkgrel libheif"
amove usr/lib/ImageMagick-*/modules-*/coders/heic.*
}
jpeg() {
pkgdesc="$pkgdesc (JPEG support modules)"
install_if="$pkgname=$pkgver-r$pkgrel libjpeg-turbo"
amove usr/lib/ImageMagick-*/modules-*/coders/jpeg.*
}
raw() {
pkgdesc="$pkgdesc (RAW support modules)"
install_if="$pkgname=$pkgver-r$pkgrel libraw"
amove usr/lib/ImageMagick-*/modules-*/coders/dng.*
}
jxl() {
pkgdesc="$pkgdesc (JpegXL support modules)"
install_if="$pkgname=$pkgver-r$pkgrel libjxl"
amove usr/lib/ImageMagick-*/modules-*/coders/jxl.*
}
pango() {
pkgdesc="$pkgdesc (pango support modules)"
install_if="$pkgname=$pkgver-r$pkgrel pango"
amove usr/lib/ImageMagick-*/modules-*/coders/pango.*
}
pdf() {
pkgdesc="$pkgdesc (PDF support modules)"
install_if="$pkgname=$pkgver-r$pkgrel ghostscript"
amove \
usr/lib/ImageMagick-*/modules-*/coders/pdf.* \
usr/lib/ImageMagick-*/modules-*/coders/ps.*
}
svg() {
pkgdesc="$pkgdesc (SVG support modules)"
install_if="$pkgname=$pkgver-r$pkgrel librsvg"
amove usr/lib/ImageMagick-*/modules-*/coders/svg.*
}
tiff() {
pkgdesc="$pkgdesc (TIFF support modules)"
install_if="$pkgname=$pkgver-r$pkgrel tiff"
amove usr/lib/ImageMagick-*/modules-*/coders/tiff.*
}
webp() {
pkgdesc="$pkgdesc (WebP support modules)"
install_if="$pkgname=$pkgver-r$pkgrel libwebp"
amove usr/lib/ImageMagick-*/modules-*/coders/webp.*
}
_cxx() {
pkgdesc="ImageMagick Magick++ library (C++ bindings)"
amove usr/lib/libMagick++*.so.*
}
_perlmagick() {
pkgdesc="PerlMagick Perl Modules for ImageMagick"
amove usr/lib/perl5
# Strip all the rpath that include /home
scanelf --recursive --rpath "$subpkgdir" | awk '/home/{print $3;}' | xargs chrpath -d
}
doc() {
default_doc
# move these man pages in _perlmagick_doc() below
mkdir -p "$pkgdir"/usr/share/man/man3
mv -v "$subpkgdir"/usr/share/man/man3/*.3pm.gz \
"$pkgdir"/usr/share/man/man3/
rmdir "$subpkgdir"/usr/share/man/man3 2>/dev/null || :
}
_perlmagick_doc() {
pkgdesc="PerlMagick Perl Module Documentation for ImageMagick"
install_if="docs $pkgname-perlmagick=$pkgver-r$pkgrel"
amove usr/share/man/man3/*.3pm.gz
}
sha512sums="
8897c81477c768d2136ba2c8f06072d6d84924596a8693497dc1884b05a9c508a2c7de1cfd782d393134cee2e70a81b9869033978619d3506cddd81fc31e2df4 ImageMagick-7.1.1-44.tar.xz
"