# TODO
# - create sane default policy file:
# https://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=26801
-# - unpackaged:
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/bayer.la
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/bayer.so
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/ftxt.la
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/ftxt.so
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/qoi.la
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/qoi.so
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/strimg.la
-# /usr/lib64/ImageMagick-7.1.0/modules-Q16/coders/strimg.so
#
# Conditional build:
+%bcond_without tests
# - features:
%bcond_without cxx # Magick++ library
%bcond_without opencl # OpenCL computing support
%bcond_without djvu # DJVU module
%bcond_without exr # OpenEXR module
%bcond_without fpx # FlashPIX module (which uses fpx library)
+%bcond_without flif # FLIF (Free Lossless Image Format) module (which uses flif library)
%bcond_without graphviz # dot module (which uses GraphViz libraries)
-%bcond_without libjxl # JPEG-XL module (not ready for 0.6)
+%bcond_without heif # HEIC module (which uses libheif library)
+%bcond_without libjxl # JPEG-XL module
%bcond_without openjpeg # JPEG2000 module (which uses openjpeg 2 library)
%bcond_without wmf # WMF module (which uses libwmf library)
# - module features:
%define libpng_ver 2:1.6.34
-%define ver 7.1.0
-%define pver 60
+%define ver 7.1.1
+%define pver 31
Summary: Image display, conversion, and manipulation under X
Summary(de.UTF-8): Darstellen, Konvertieren und Bearbeiten von Grafiken unter X
Summary(es.UTF-8): Exhibidor, convertidor y manipulador de imágenes bajo X
Summary(uk.UTF-8): Перегляд, конвертування та обробка зображень під X Window
Name: ImageMagick
Version: %{ver}%{?pver:.%{pver}}
-Release: 0.1
+Release: 1
Epoch: 1
License: Apache-like
Group: X11/Applications/Graphics
-Source0: https://www.imagemagick.org/download/releases/%{name}-%{ver}-%{pver}.tar.xz
-# Source0-md5: fbb79241137a6c8f7f161eda29973f62
-Patch0: config.patch
+Source0: https://download.imagemagick.org/archive/releases/%{name}-%{ver}-%{pver}.tar.lz
+# Source0-md5: 70ca8d5bed3e99dd9b828571b78825d8
+Patch0: %{name}-perl.patch
Patch1: %{name}-link.patch
Patch2: %{name}-libpath.patch
Patch3: %{name}-ldflags.patch
Patch4: %{name}-lt.patch
Patch5: %{name}-OpenCL.patch
-Patch6: %{name}-autotrace.patch
-Patch7: %{name}-jxl.patch
URL: https://imagemagick.org/
%{?with_opencl:BuildRequires: OpenCL-devel}
%{?with_exr:BuildRequires: OpenEXR-devel >= 1.0.6}
BuildRequires: autoconf >= 2.69
BuildRequires: automake >= 1:1.12
-%{?with_autotrace:BuildRequires: autotrace-devel >= 0.31.1}
+%{?with_autotrace:BuildRequires: autotrace-devel >= 0.31.2}
BuildRequires: bzip2-devel >= 1.0.1
%{?with_djvu:BuildRequires: djvulibre-devel >= 3.5.0}
BuildRequires: expat-devel >= 1.95.7
BuildRequires: fftw3-devel >= 3.0
-BuildRequires: flif-devel
+%{?with_flif:BuildRequires: flif-devel}
BuildRequires: fontconfig-devel >= 2.1.0
-BuildRequires: freetype-devel >= 2.0.2-2
+BuildRequires: freetype-devel >= 1:2.8.0
%{?with_openmp:BuildRequires: gcc-c++ >= 6:4.2}
%{?with_gs:BuildRequires: ghostscript-devel}
%{?with_graphviz:BuildRequires: graphviz-devel >= 2.9.0}
BuildRequires: lcms2-devel >= 2.0
%{?with_fpx:BuildRequires: libfpx-devel >= 1.2.0.4-3}
%{?with_openmp:BuildRequires: libgomp-devel}
-BuildRequires: libheif-devel
+%{?with_heif:BuildRequires: libheif-devel >= 1.4.0}
BuildRequires: libjpeg-devel >= 6b
-%{?with_libjxl:BuildRequires: libjxl-devel >= 0.6.1}
+%{?with_libjxl:BuildRequires: libjxl-devel >= 0.7.0}
BuildRequires: liblqr-devel >= 0.1.0
BuildRequires: libltdl-devel
BuildRequires: libpng-devel >= %{libpng_ver}
%{?with_wmf:BuildRequires: libwmf-devel >= 2:0.2.2}
BuildRequires: libxml2-devel >= 2.0
BuildRequires: libzip-devel >= 1.0.0
+BuildRequires: lzip
%{?with_openjpeg:BuildRequires: openjpeg2-devel >= 2.1.0}
BuildRequires: pango-devel >= 1:1.28.1
BuildRequires: perl-devel >= 1:5.8.1
#BuildRequires: txt2html
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXext-devel
-BuildRequires: xz
BuildRequires: xz-devel >= 2.9.0
BuildRequires: zlib-devel >= 1.0.0
BuildRequires: zstd-devel >= 1.0.0
Requires: bzip2-devel >= 1.0.1
Requires: fftw3-devel >= 3.0
Requires: fontconfig-devel >= 2.1.0
-Requires: freetype-devel >= 2.0.2
+Requires: freetype-devel >= 1:2.8.0
Requires: lcms2-devel >= 2.0
%{?with_openmp:Requires: libgomp-devel}
Requires: liblqr-devel >= 0.1.0
Summary(pl.UTF-8): Moduł kodera dla plików HEIC
Group: X11/Applications/Graphics
Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libheif >= 1.4.0
%description coder-heic
Coder module for HEIC files.
Summary(pl.UTF-8): Moduł kodera dla plików JPEG-XL
Group: X11/Applications/Graphics
Requires: %{name} = %{epoch}:%{version}-%{release}
-Requires: libjxl >= 0.6.1
+Requires: libjxl >= 0.7.0
%description coder-jxl
Coder module for JPEG-XL files.
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1 -R
-#%patch7 -p1
find -type f | xargs grep -l '/usr/local/bin/perl' | xargs %{__sed} -i -e 's=!/usr/local/bin/perl=!%{__perl}='
--with-dps=no \
--with-fftw \
--with-fpx%{!?with_fpx:=no} \
+ --with-flif%{!?with_flif:=no} \
--with-gs-font-dir=%{_fontsdir}/Type1 \
--with-gslib%{!?with_gs:=no} \
--with-gvc%{!?with_graphviz:=no} \
+ --with-heic%{!?with_heif:=no} \
--with-jxl%{!?with_libjxl:=no} \
--with-magick_plus_plus%{!?with_cxx:=no} \
--with-openexr%{!?with_exr:=no} \
%{__make} -j1
%{__sed} -i -e 's,/%{name}-%{ver}/,/%{name}-doc-%{version}/,' utilities/*.1
+%{?with_tests:%{__make} check}
+
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-perl-%{version}
%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Image/Magick/.packlist
%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
# packaged as %doc
-%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{mver}/{LICENSE,NEWS.txt}
+%{__rm} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{mver}/LICENSE
# obsoleted by pkg-config
%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
%{modulesdir}/coders/xps.la
%attr(755,root,root) %{modulesdir}/coders/x.so
%{modulesdir}/coders/x.la
-%if 0
-%attr(755,root,root) %{modulesdir}/coders/xtrn.so
-%{modulesdir}/coders/xtrn.la
-%endif
%attr(755,root,root) %{modulesdir}/coders/xwd.so
%{modulesdir}/coders/xwd.la
%attr(755,root,root) %{modulesdir}/coders/yaml.so
%attr(755,root,root) %{modulesdir}/coders/yuv.so
%{modulesdir}/coders/yuv.la
+# new modules in 7.1.x
+%attr(755,root,root) %{modulesdir}/coders/bayer.so
+%{modulesdir}/coders/bayer.la
+%attr(755,root,root) %{modulesdir}/coders/ftxt.so
+%{modulesdir}/coders/ftxt.la
+%attr(755,root,root) %{modulesdir}/coders/qoi.so
+%{modulesdir}/coders/qoi.la
+%attr(755,root,root) %{modulesdir}/coders/strimg.so
+%{modulesdir}/coders/strimg.la
+
%attr(755,root,root) %{modulesdir}/filters/analyze.so
%{modulesdir}/filters/analyze.la
-%attr(755,root,root) %{_bindir}/animate
-%attr(755,root,root) %{_bindir}/compare
-%attr(755,root,root) %{_bindir}/composite
-%attr(755,root,root) %{_bindir}/conjure
-%attr(755,root,root) %{_bindir}/convert
-%attr(755,root,root) %{_bindir}/display
-%attr(755,root,root) %{_bindir}/identify
-%attr(755,root,root) %{_bindir}/import
%attr(755,root,root) %{_bindir}/magick
-%attr(755,root,root) %{_bindir}/magick-script
-%attr(755,root,root) %{_bindir}/mogrify
-%attr(755,root,root) %{_bindir}/montage
-%attr(755,root,root) %{_bindir}/stream
+
+# Symlinks, no %attr
+%{_bindir}/animate
+%{_bindir}/compare
+%{_bindir}/composite
+%{_bindir}/conjure
+%{_bindir}/convert
+%{_bindir}/display
+%{_bindir}/identify
+%{_bindir}/import
+%{_bindir}/magick-script
+%{_bindir}/mogrify
+%{_bindir}/montage
+%{_bindir}/stream
%{_mandir}/man1/ImageMagick.1*
%{_mandir}/man1/animate.1*
%{modulesdir}/coders/exr.la
%endif
-%if 0
+%if %{with flif}
%files coder-flif
%defattr(644,root,root,755)
# R: flif
%{modulesdir}/coders/fpx.la
%endif
+%if %{with heif}
%files coder-heic
%defattr(644,root,root,755)
# R: libheif
%attr(755,root,root) %{modulesdir}/coders/heic.so
%{modulesdir}/coders/heic.la
+%endif
%files coder-jbig
%defattr(644,root,root,755)
%{modulesdir}/coders/jp2.la
%endif
-%if 0
%if %{with libjxl}
%files coder-jxl
%defattr(644,root,root,755)
%attr(755,root,root) %{modulesdir}/coders/jxl.so
%{modulesdir}/coders/jxl.la
%endif
-%endif
%files coder-miff
%defattr(644,root,root,755)