%global VERSION @PACKAGE_VERSION@
%global Patchlevel @PACKAGE_RELEASE@
-Name: @PACKAGE_NAME@
-Version: %{VERSION}.%{Patchlevel}
-Release: 3%{?dist}
-Summary: Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images.
-Group: Applications/Multimedia
-License: http://www.imagemagick.org/script/license.php
-Url: http://www.imagemagick.org/
-Source0: ftp://ftp.ImageMagick.org/pub/%{name}/%{name}-%{VERSION}-%{Patchlevel}.tar.xz
-
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: bzip2-devel, freetype-devel, libjpeg-devel, libpng-devel
-BuildRequires: libtiff-devel, giflib-devel, zlib-devel, perl-devel >= 5.8.1
-BuildRequires: ghostscript-devel, djvulibre-devel
-BuildRequires: libwmf-devel, jasper-devel, libtool-ltdl-devel
-BuildRequires: libX11-devel, libXext-devel, libXt-devel
-BuildRequires: lcms-devel, libxml2-devel, librsvg2-devel, OpenEXR-devel
+
+Name: @PACKAGE_NAME@
+Version: %{VERSION}
+Release: %{Patchlevel}
+Summary: Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images.
+Group: Applications/Multimedia
+License: https://imagemagick.org/script/license.php
+Url: https://imagemagick.org/
+Source0: https://imagemagick.org/download/%{name}/%{name}-%{VERSION}-%{Patchlevel}.tar.bz2
+
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: bzip2-devel, freetype-devel, libjpeg-devel, libpng-devel
+BuildRequires: libtiff-devel, giflib-devel, zlib-devel, perl-devel >= 5.8.1
+BuildRequires: perl-generators
+BuildRequires: ghostscript-devel, djvulibre-devel
+BuildRequires: libwmf-devel
+BuildRequires: libX11-devel, libXext-devel, libXt-devel
+BuildRequires: lcms2-devel, libxml2-devel, librsvg2-devel, OpenEXR-devel
+BuildRequires: fftw-devel, OpenEXR-devel, libwebp-devel
+BuildRequires: jbigkit-devel
+BuildRequires: openjpeg2-devel >= 2.1.0
+BuildRequires: autoconf automake libtool-ltdl-devel
%description
-ImageMagick is an image display and manipulation tool for the X
-Window System. ImageMagick can read and write JPEG, TIFF, PNM, GIF,
-and Photo CD image formats. It can resize, rotate, sharpen, color
-reduce, or add special effects to an image, and when finished you can
-either save the completed work in the original format or a different
-one. ImageMagick also includes command line programs for creating
-animated or transparent .gifs, creating composite images, creating
-thumbnail images, and more.
+ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
+
+The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.
+
+ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.
-ImageMagick is one of your choices if you need a program to manipulate
-and display images. If you want to develop your own applications
-which use ImageMagick code or APIs, you need to install
-ImageMagick-devel as well.
+ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under the Apache 2.0 license.
+The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to prevent security vulnerabilities.
+
+The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick. We maintain a source code mirror at GitHub.
%package devel
-Summary: Library links and header files for ImageMagick app development
+Summary: Library links and header files for ImageMagick application development
Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: libX11-devel, libXext-devel, libXt-devel
-Requires: ghostscript-devel
-Requires: bzip2-devel
-Requires: freetype-devel
-Requires: libtiff-devel
-Requires: libjpeg-devel
-Requires: lcms-devel
-Requires: jasper-devel
-Requires: pkgconfig
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: libX11-devel, libXext-devel, libXt-devel, ghostscript-devel
+Requires: bzip2-devel, freetype-devel, libtiff-devel, libjpeg-devel, lcms2-devel
+Requires: libwebp-devel, OpenEXR-devel, openjpeg2-devel, pkgconfig
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description devel
ImageMagick-devel contains the library links and header files you'll
You do not need to install it if you just want to use ImageMagick,
however.
+%package libs
+Summary: ImageMagick libraries to link with
+Group: Applications/Multimedia
+
+%description libs
+This packages contains a shared libraries to use within other applications.
%package djvu
Summary: DjVu plugin for ImageMagick
Group: Applications/Multimedia
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description djvu
This packages contains a plugin for ImageMagick which makes it possible to
%package doc
-Summary: ImageMagick html documentation
+Summary: ImageMagick HTML documentation
Group: Documentation
%description doc
ImageMagick documentation, this package contains usage (for the
-commandline tools) and API (for the libraries) documentation in html format.
+commandline tools) and API (for the libraries) documentation in HTML format.
Note this documentation can also be found on the ImageMagick website:
-http://www.imagemagick.org/
+https://imagemagick.org/.
%package perl
Summary: ImageMagick perl bindings
Group: System Environment/Libraries
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+
%description perl
Perl bindings to ImageMagick.
%package c++
Summary: ImageMagick Magick++ library (C++ bindings)
Group: System Environment/Libraries
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description c++
This package contains the Magick++ library, a C++ binding to the ImageMagick
%package c++-devel
Summary: C++ bindings for the ImageMagick library
Group: Development/Libraries
-Requires: %{name}-c++ = %{version}-%{release}
-Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-c++%{?_isa} = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
%description c++-devel
ImageMagick-devel contains the static libraries and header files you'll
If you want to create applications that will use Magick++ code
or APIs, you'll need to install ImageMagick-c++-devel, ImageMagick-devel and
ImageMagick.
+
You don't need to install it if you just want to use ImageMagick, or if you
want to develop/compile applications using the ImageMagick C interface,
however.
%prep
%setup -q -n %{name}-%{VERSION}-%{Patchlevel}
-sed -i 's/libltdl.la/libltdl.so/g' configure
-iconv -f ISO-8859-1 -t UTF-8 README.txt > README.txt.tmp
-touch -r README.txt README.txt.tmp
-mv README.txt.tmp README.txt
-# for %doc
+
+# for %%doc
mkdir Magick++/examples
cp -p Magick++/demo/*.cpp Magick++/demo/*.miff Magick++/examples
-
%build
%configure --enable-shared \
- --disable-static \
- --with-modules \
- --with-perl \
- --with-x \
- --with-threads \
- --with-magick_plus_plus \
- --with-gslib \
- --with-wmf \
- --with-lcms \
- --with-rsvg \
- --with-xml \
- --with-perl-options="INSTALLDIRS=vendor %{?perl_prefix} CC='%__cc -L$PWD/MagickCore/.libs' LDDLFLAGS='-shared -L$PWD/MagickCore/.libs'" \
- --without-dps \
- --without-included-ltdl --with-ltdl-include=%{_includedir} \
- --with-ltdl-lib=%{_libdir}
-# Disable rpath
-sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
-sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+ --disable-static \
+ --with-modules \
+ --with-perl \
+ --with-x \
+ --with-threads \
+ --with-magick_plus_plus \
+ --with-wmf \
+ --with-webp \
+ --with-openexr \
+ --with-gslib \
+ --with-rsvg \
+ --with-xml \
+ --with-perl-options="INSTALLDIRS=vendor %{?perl_prefix} CC='%__cc -L$PWD/MagickCore/.libs' LDDLFLAGS='-shared -L$PWD/MagickCore/.libs'" \
+ --without-dps \
+ --without-gcc-arch \
+ --with-jbig \
+ --with-openjp2
+
# Do *NOT* use %%{?_smp_mflags}, this causes PerlMagick to be silently misbuild
make
%install
-rm -rf %{buildroot}
-
-make install DESTDIR=%{buildroot} INSTALL="install -p"
+make %{?_smp_mflags} install DESTDIR=%{buildroot} INSTALL="install -p"
cp -a www/source %{buildroot}%{_datadir}/doc/%{name}-%{VERSION}
-# Delete *ONLY* _libdir/*.la files! .la files used internally to handle plugins - BUG#185237!!!
rm %{buildroot}%{_libdir}/*.la
# fix weird perl Magick.so permissions
-chmod 755 %{buildroot}%{perl_vendorarch}/auto/Image/Magick/Magick.so
+chmod -f 755 %{buildroot}%{perl_vendorarch}/auto/Image/Magick/*/*.so
# perlmagick: fix perl path of demo files
%{__perl} -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)' PerlMagick/demo/*.pl
exit -1
fi
-# fix multilib issues
-%ifarch x86_64 s390x ia64 ppc64 alpha sparc64
-%define wordsize 64
-%else
-%define wordsize 32
-%endif
-
-mv %{buildroot}%{_includedir}/%{name}/MagickCore/magick-config.h \
- %{buildroot}%{_includedir}/%{name}/MagickCore/magick-config-%{wordsize}.h
+# fix multilib issues: Rename provided file with platform-bits in name.
+# Create platform independant file inplace of provided and conditionally include required.
+# $1 - filename.h to process.
+function multilibFileVersions(){
+mv $1 ${1%%.h}-%{__isa_bits}.h
-cat >%{buildroot}%{_includedir}/%{name}/MagickCore/magick-config.h <<EOF
-#ifndef IMAGEMAGICK_MULTILIB
-#define IMAGEMAGICK_MULTILIB
+local basename=$(basename $1)
+cat >$1 <<EOF
#include <bits/wordsize.h>
#if __WORDSIZE == 32
-# include "magick-config-32.h"
+# include "${basename%%.h}-32.h"
#elif __WORDSIZE == 64
-# include "magick-config-64.h"
+# include "${basename%%.h}-64.h"
#else
# error "unexpected value for __WORDSIZE macro"
-#endif
-
#endif
EOF
+}
-# Fonts must be packaged separately. It does nothave matter and demos work without it.
-rm PerlMagick/demo/Generic.ttf
+multilibFileVersions %{buildroot}%{_includedir}/%{name}-7/MagickCore/magick-config.h
+multilibFileVersions %{buildroot}%{_includedir}/%{name}-7/MagickCore/magick-baseconfig.h
+multilibFileVersions %{buildroot}%{_includedir}/%{name}-7/MagickCore/version.h
-# From version around 6.7.5-6 docs go to unversioned dir. Fixing
-mv %{buildroot}/%{_datadir}/doc/%{name} %{buildroot}/%{_datadir}/doc/%{name}-%{VERSION}
-%clean
-rm -rf %{buildroot}
+%check
+export LD_LIBRARY_PATH=%{buildroot}/%{_libdir}
+make %{?_smp_mflags} check
-
-%post -p /sbin/ldconfig
+%post libs -p /sbin/ldconfig
%post c++ -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
%postun c++ -p /sbin/ldconfig
-
%files
-%defattr(-,root,root,-)
-%doc QuickStart.txt ChangeLog Platforms.txt
-%doc README.txt LICENSE NOTICE AUTHORS.txt NEWS.txt
-%{_libdir}/libMagickCore.so.5*
-%{_libdir}/libMagickWand.so.5*
+%doc README.txt LICENSE NOTICE AUTHORS.txt NEWS.txt ChangeLog Platforms.txt
%{_bindir}/[a-z]*
-%{_libdir}/%{name}-%{VERSION}
-%{_datadir}/%{name}-%{VERSION}
%{_mandir}/man[145]/[a-z]*
%{_mandir}/man1/%{name}.*
-%exclude %{_libdir}/%{name}-%{VERSION}/modules-Q16/coders/djvu.*
-%{_sysconfdir}/%{name}
+
+%files libs
+%doc LICENSE NOTICE AUTHORS.txt QuickStart.txt
+%{_libdir}/libMagickCore-7.Q16HDRI.so.*
+%{_libdir}/libMagickWand-7.Q16HDRI.so.*
+%{_libdir}/%{name}-%{VERSION}
+%{_datadir}/%{name}-7
+%exclude %{_libdir}/%{name}-%{VERSION}/modules-Q16HDRI/coders/djvu.*
+%dir %{_sysconfdir}/%{name}-7
+%config(noreplace) %{_sysconfdir}/%{name}-7/*.xml
%files devel
-%defattr(-,root,root,-)
%{_bindir}/MagickCore-config
%{_bindir}/MagickWand-config
-%{_libdir}/libMagickCore.so
-%{_libdir}/libMagickWand.so
+%{_libdir}/libMagickCore-7.Q16HDRI.so
+%{_libdir}/libMagickWand-7.Q16HDRI.so
%{_libdir}/pkgconfig/MagickCore.pc
+%{_libdir}/pkgconfig/MagickCore-7.Q16HDRI.pc
%{_libdir}/pkgconfig/ImageMagick.pc
+%{_libdir}/pkgconfig/ImageMagick-7.Q16HDRI.pc
%{_libdir}/pkgconfig/MagickWand.pc
-%{_libdir}/pkgconfig/Wand.pc
-%dir %{_includedir}/%{name}
-%{_includedir}/%{name}/MagickCore
-%{_includedir}/%{name}/MagickWand
+%{_libdir}/pkgconfig/MagickWand-7.Q16HDRI.pc
+%dir %{_includedir}/%{name}-7
+%{_includedir}/%{name}-7/MagickCore
+%{_includedir}/%{name}-7/MagickWand
%{_mandir}/man1/MagickCore-config.*
%{_mandir}/man1/MagickWand-config.*
%files djvu
-%defattr(-,root,root,-)
-%{_libdir}/%{name}-%{VERSION}/modules-Q16/coders/djvu.*
+%{_libdir}/%{name}-%{VERSION}/modules-Q16HDRI/coders/djvu.*
%files doc
-%defattr(-,root,root,-)
+%doc %{_datadir}/doc/%{name}-7
%doc %{_datadir}/doc/%{name}-%{VERSION}
%doc LICENSE
%files c++
-%defattr(-,root,root,-)
%doc Magick++/AUTHORS Magick++/ChangeLog Magick++/NEWS Magick++/README
%doc www/Magick++/COPYING
-%{_libdir}/libMagick++.so.5*
+%{_libdir}/libMagick++-7.Q16HDRI.so.*
%files c++-devel
-%defattr(-,root,root,-)
%doc Magick++/examples
%{_bindir}/Magick++-config
-%{_includedir}/%{name}/Magick++
-%{_includedir}/%{name}/Magick++.h
-%{_libdir}/libMagick++.so
+%{_includedir}/%{name}-7/Magick++
+%{_includedir}/%{name}-7/Magick++.h
+%{_libdir}/libMagick++-7.Q16HDRI.so
%{_libdir}/pkgconfig/Magick++.pc
-%{_libdir}/pkgconfig/ImageMagick++.pc
+%{_libdir}/pkgconfig/Magick++-7.Q16HDRI.pc
%{_mandir}/man1/Magick++-config.*
%files perl -f perl-pkg-files
-%defattr(-,root,root,-)
%{_mandir}/man3/*
%doc PerlMagick/demo/ PerlMagick/Changelog PerlMagick/README.txt