From 01d0715e042e84c60b00123fe075200c6a64f750 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Tue, 3 Jan 2023 07:37:11 -0500 Subject: [PATCH] Rebase to ImageMagick v7 --- .gitignore | 3 + ImageMagick.spec | 162 +++++++++++++++++++++++++++++------------------ sources | 4 +- 3 files changed, 107 insertions(+), 62 deletions(-) diff --git a/.gitignore b/.gitignore index 92c51a8..42223ae 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,6 @@ /ImageMagick-6.9.12-64.tar.xz /ImageMagick-6.9.12-67.tar.xz /ImageMagick-6.9.12-70.tar.xz +/ImageMagick.keyring +/ImageMagick-7.1.0-57.tar.xz +/ImageMagick-7.1.0-57.tar.xz.asc diff --git a/ImageMagick.spec b/ImageMagick.spec index 772318c..21a7d0b 100644 --- a/ImageMagick.spec +++ b/ImageMagick.spec @@ -9,35 +9,53 @@ Epoch: 1 %else Epoch: 0 %endif -Version: 6.9.12.70 +Version: 7.1.0.57 Release: 1%{?dist} Summary: An X application for displaying and manipulating images -%global VER %(foo=%{version}; echo ${foo:0:6}) -%global Patchlevel %(foo=%{version}; echo ${foo:7}) +%global VER %(foo=%{version}; echo ${foo:0:5}) +%global Patchlevel %(foo=%{version}; echo ${foo:6}) +%global libsover 10 +%global libcxxsover 5 License: ImageMagick -Url: https://legacy.imagemagick.org/ -Source0: https://www.imagemagick.org/archive/%{name}-%{VER}-%{Patchlevel}.tar.xz +URL: https://imagemagick.org/ +Source0: https://imagemagick.org/archive/releases/%{name}-%{VER}-%{Patchlevel}.tar.xz +Source1: https://imagemagick.org/archive/releases/%{name}-%{VER}-%{Patchlevel}.tar.xz.asc +Source2: ImageMagick.keyring -BuildRequires: pkgconfig(bzip2), pkgconfig(freetype2), pkgconfig(libjpeg), pkgconfig(libpng) -BuildRequires: pkgconfig(libtiff-4), giflib-devel, pkgconfig(zlib), perl-devel >= 5.8.1 +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libtiff-4) +BuildRequires: giflib-devel +BuildRequires: pkgconfig(zlib) +BuildRequires: perl-devel >= 5.8.1 BuildRequires: perl-generators -%if 0%{?fedora} > 27 || 0%{?rhel} > 7 -BuildRequires: libgs-devel, ghostscript-x11 -%else +%if 0%{?rhel} && 0%{?rhel} < 8 BuildRequires: ghostscript-devel +%else +BuildRequires: libgs-devel, ghostscript-x11 %endif BuildRequires: pkgconfig(ddjvuapi) -BuildRequires: pkgconfig(libwmf), pkgconfig(jasper), libtool-ltdl-devel -BuildRequires: pkgconfig(x11), pkgconfig(xext), pkgconfig(xt) -BuildRequires: pkgconfig(lcms2), pkgconfig(libxml-2.0), pkgconfig(librsvg-2.0) -%if 0%{?fedora} > 34 || 0%{?rhel} > 8 -BuildRequires: pkgconfig(OpenEXR) -%else +BuildRequires: pkgconfig(libwmf) +BuildRequires: pkgconfig(jasper) +BuildRequires: libtool-ltdl-devel +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(librsvg-2.0) +%if 0%{?rhel} && 0%{?rhel} < 9 BuildRequires: pkgconfig(IlmBase), pkgconfig(OpenEXR) < 2.5.6 +%else +BuildRequires: pkgconfig(OpenEXR) %endif -BuildRequires: pkgconfig(fftw3), pkgconfig(libwebp) +BuildRequires: pkgconfig(fftw3) +BuildRequires: pkgconfig(libwebp) BuildRequires: jbigkit-devel +BuildRequires: pkgconfig(libjxl) BuildRequires: pkgconfig(libopenjp2) >= 2.1.0 BuildRequires: pkgconfig(libcgraph) >= 2.9.0 BuildRequires: pkgconfig(raqm) @@ -46,13 +64,19 @@ BuildRequires: pkgconfig(lqr-1) %endif BuildRequires: pkgconfig(libraw) >= 0.14.8 BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(libzip) >= 1.0.0 +BuildRequires: pkgconfig(pango) >= 1.28.1 +BuildRequires: pkgconfig(pangocairo) >= 1.28.1 +BuildRequires: urw-base35-fonts-devel BuildRequires: autoconf automake gcc gcc-c++ BuildRequires: make +BuildRequires: gnupg2 Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} -# allow smoth upgrade for 3rd party repository -# providing latest version/soname as ImageMagick6 -Obsoletes: %{name}6 <= %{epoch}:%{version}-%{release} +# allow smooth upgrade for 3rd party repository +# providing latest version/soname as ImageMagick7 +Obsoletes: %{name}7 < %{epoch}:%{version}-%{release} +Provides: %{name}7 = %{epoch}:%{version}-%{release} %description ImageMagick is an image display and manipulation tool for the X @@ -74,7 +98,8 @@ ImageMagick-devel as well. Summary: Library links and header files for ImageMagick app development Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: %{name}6-devel <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}7-devel < %{epoch}:%{version}-%{release} +Provides: %{name}7-devel = %{epoch}:%{version}-%{release} %description devel ImageMagick-devel contains the library links and header files you'll @@ -89,7 +114,10 @@ however. %package libs Summary: ImageMagick libraries to link with -Obsoletes: %{name}6-libs <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}7-libs < %{epoch}:%{version}-%{release} +Provides: %{name}7-libs = %{epoch}:%{version}-%{release} +# These may be used for some functions +Recommends: urw-base35-fonts %description libs This packages contains a shared libraries to use within other applications. @@ -98,7 +126,8 @@ This packages contains a shared libraries to use within other applications. %package djvu Summary: DjVu plugin for ImageMagick Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: %{name}6-djvu <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}7-djvu < %{epoch}:%{version}-%{release} +Provides: %{name}7-djvu = %{epoch}:%{version}-%{release} %description djvu This packages contains a plugin for ImageMagick which makes it possible to @@ -107,7 +136,8 @@ save and load DjvU files from ImageMagick and libMagickCore using applications. %package doc Summary: ImageMagick html documentation -Obsoletes: %{name}6-doc <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}7-doc < %{epoch}:%{version}-%{release} +Provides: %{name}7-doc = %{epoch}:%{version}-%{release} %description doc ImageMagick documentation, this package contains usage (for the @@ -120,7 +150,8 @@ http://www.imagemagick.org/ Summary: ImageMagick perl bindings Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) -Obsoletes: %{name}6-perl <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}7-perl < %{epoch}:%{version}-%{release} +Provides: %{name}7-perl = %{epoch}:%{version}-%{release} %description perl Perl bindings to ImageMagick. @@ -132,7 +163,8 @@ ImageMagick. %package c++ Summary: ImageMagick Magick++ library (C++ bindings) Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: %{name}6-c++ <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}7-c++ < %{epoch}:%{version}-%{release} +Provides: %{name}7-c++ = %{epoch}:%{version}-%{release} %description c++ This package contains the Magick++ library, a C++ binding to the ImageMagick @@ -145,7 +177,8 @@ Install ImageMagick-c++ if you want to use any applications that use Magick++. Summary: C++ bindings for the ImageMagick library Requires: %{name}-c++%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} -Obsoletes: %{name}6-c++-devel <= %{epoch}:%{version}-%{release} +Obsoletes: %{name}7-c++-devel < %{epoch}:%{version}-%{release} +Provides: %{name}7-c++-devel = %{epoch}:%{version}-%{release} %description c++-devel ImageMagick-devel contains the static libraries and header files you'll @@ -161,6 +194,7 @@ however. %prep +%{gpgverify} --keyring=%{SOURCE2} --signature=%{SOURCE1} --data=%{SOURCE0} %autosetup -p1 -n %{name}-%{VER}-%{Patchlevel} # for %%doc @@ -169,7 +203,7 @@ cp -p Magick++/demo/*.cpp Magick++/demo/*.miff Magick++/examples %build -autoconf -f -i +autoconf -f -i -v # Reduce thread contention, upstream sets this flag for Linux hosts export CFLAGS="%{optflags} -DIMPNG_SETJMP_IS_THREAD_SAFE" %configure \ @@ -181,15 +215,19 @@ export CFLAGS="%{optflags} -DIMPNG_SETJMP_IS_THREAD_SAFE" --with-threads \ --with-magick_plus_plus \ --with-gslib \ + --with-pango \ + --with-fftw \ --with-wmf \ --with-webp \ --with-openexr \ --with-rsvg \ --with-xml \ --with-perl-options="INSTALLDIRS=vendor %{?perl_prefix} CC='%__cc -L$PWD/magick/.libs' LDDLFLAGS='-shared -L$PWD/magick/.libs'" \ + --with-urw-base35-font-dir="%{urw_base35_fontpath}" \ --without-dps \ --without-gcc-arch \ --with-jbig \ + --with-jxl \ --with-openjp2 \ --with-raw \ %if 0%{?fedora} || 0%{?rhel} > 8 @@ -204,6 +242,11 @@ make %install %make_install + +# Compatibility symlinks for headers for IM6->IM7 transition +ln -sr %{buildroot}%{_includedir}/%{name}-7/MagickCore %{buildroot}%{_includedir}/%{name}-7/magick +ln -sr %{buildroot}%{_includedir}/%{name}-7/MagickWand %{buildroot}%{_includedir}/%{name}-7/wand + cp -a www/source %{buildroot}%{_datadir}/doc/%{name}-%{VER} # Delete *ONLY* _libdir/*.la files! .la files used internally to handle plugins - BUG#185237!!! rm %{buildroot}%{_libdir}/*.la @@ -217,7 +260,7 @@ find %{buildroot} -name ".packlist" |xargs rm -f find %{buildroot} -name "perllocal.pod" |xargs rm -f # Do NOT remove .la files for codecs -# https://bugzilla.novell.com/show_bug.cgi?id=579798 +# https://bugzilla.opensuse.org/show_bug.cgi?id=579798 # perlmagick: build files list echo "%defattr(-,root,root,-)" > perl-pkg-files @@ -253,9 +296,9 @@ cat >$1 < - 1:7.1.0.57-1 +- Rebase to ImageMagick v7 + * Thu Dec 22 2022 Sérgio Basto - 1:6.9.12.70-1 - Update ImageMagick to 6.9.12.70 (#2150658) diff --git a/sources b/sources index 6607449..79904b7 100644 --- a/sources +++ b/sources @@ -1 +1,3 @@ -SHA512 (ImageMagick-6.9.12-70.tar.xz) = 2f4f975edb3024a4e812f07993e338587072a532a63385651409dd27fa3cffcc83297119f192844653dbffeb0f317467da78efdabc3dc41c642b8a7fb2db0077 +SHA512 (ImageMagick-7.1.0-57.tar.xz) = c23503d504d48fd896c01c175e93acbb8d248a681d3029bb1b115138dbe0bf62719cef1a6805986e549e271b9db498e937c03b6ac59d2d7771cd9e159c3bfd34 +SHA512 (ImageMagick-7.1.0-57.tar.xz.asc) = 6f4426e820a248d0fe21e453dd54c6a2a3640bdbc87588125c01979843643c5fb1ae96c463ef4978e126ede6b9b4806d873214a8796fe1906653536848d7d4b0 +SHA512 (ImageMagick.keyring) = f1534b10a01ce8868e05b4d7950bed7489cd59ac64c89fdbbdd6143c5f76dcc6883f8d4d0c3651276fde1f8d2e53f3497e4d444ba6ba834064cd4b8467c14bb0