File ImageMagick.spec of Package ImageMagick.2801

#
# spec file for package ImageMagick
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           ImageMagick

BuildRequires:  autoconf >= 2.69
BuildRequires:  dcraw
BuildRequires:  fdupes
BuildRequires:  freetype2-devel
BuildRequires:  gcc-c++
BuildRequires:  ghostscript-fonts-other
BuildRequires:  ghostscript-fonts-std
BuildRequires:  ghostscript-library
BuildRequires:  libbz2-devel
BuildRequires:  libdjvulibre-devel
BuildRequires:  libexif-devel
BuildRequires:  libjasper-devel
BuildRequires:  libjpeg-devel
BuildRequires:  liblcms2-devel
BuildRequires:  librsvg-devel
BuildRequires:  libtiff-devel >= 4.0.3
BuildRequires:  libtool
BuildRequires:  libwebp-devel
BuildRequires:  libwmf-devel
BuildRequires:  libxml2-devel
BuildRequires:  lzma-devel
BuildRequires:  openexr-devel
BuildRequires:  pango-devel
BuildRequires:  pkgconfig

%define maj           6
%define mfr_version   %{maj}.8.8
%define mfr_revision  1
%define quantum_depth 16
%define source_version %{mfr_version}-%{mfr_revision}
%define clibver   1
%define cxxlibver 3
%define libspec -%{maj}_Q%{quantum_depth}
Version:        %{mfr_version}.%{mfr_revision}
Release:        0
Summary:        Viewer and Converter for Images
License:        ImageMagick
Group:          Productivity/Graphics/Other
Url:            http://www.imagemagick.org
Source:         http://www.imagemagick.org/download/ImageMagick-%{source_version}.tar.xz
# To get mtime of file
Source1:        ImageMagick.changes
Source2:        baselibs.conf
Source3:        http://www.imagemagick.org/download/ImageMagick-%{source_version}.tar.xz.asc
Source4:        ImageMagick.keyring
# suse specific patches
Patch0:         ImageMagick-6.6.8.9-examples.patch
Patch1:         ImageMagick-6.6.8.9-doc.patch
Patch2:         ImageMagick-6.7.6.1-no-dist-lzip.patch
Patch3:         ImageMagick-6.8.4.0-rpath.patch
# workaround for http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=23462
# upstream insists on XPMCompliance, so leaving this for compatibility reasons
Patch4:         ImageMagick-6.8.5.7-no-XPMCompliance.patch
# bugs
# will ask upstream if needed, or if other solution exists
Patch11:        ImageMagick-6.8.4.0-dont-build-in-install.patch
Patch12:        disable_mat_test.patch
Patch13:        ImageMagick-6.8.8.1-display-stdin.patch
Patch14:        ImageMagick-CVE-2014-8562.patch
Patch15:        ImageMagick-CVE-2014-8355.patch
Patch16:        ImageMagick-CVE-2014-8354.patch
Patch17:        ImageMagick-CVE-2014-8716.patch
Patch18:        ImageMagick-pdf-img-compression.patch
Patch19:        ImageMagick-pdf-title-encoding.patch
Patch20:        ImageMagick-6.8.8-1-disable-insecure-coders.patch
Patch21:        ImageMagick-CVE-2016-5118.patch
Patch22:        ImageMagick-CVE-2015-8902.patch
Patch23:        ImageMagick-CVE-2015-8901.patch
Patch24:        ImageMagick-CVE-2015-8903.patch
Patch25:        ImageMagick-CVE-2015-8900.patch
Patch26:        ImageMagick-CVE-2016-4562,4563,4564.patch
Patch27:        ImageMagick-CVE-2014-9846.patch
Patch28:        ImageMagick-CVE-2015-8894.patch
Patch29:        ImageMagick-CVE-2015-8895.patch
Patch30:        ImageMagick-CVE-2015-8896.patch
Patch31:        ImageMagick-CVE-2015-8897.patch
Patch32:        ImageMagick-CVE-2015-8898.patch
Patch33:        ImageMagick-CVE-2014-9805.patch
Patch34:        ImageMagick-CVE-2014-9806.patch
Patch35:        ImageMagick-CVE-2014-9807.patch
Patch36:        ImageMagick-CVE-2014-9808.patch
Patch37:        ImageMagick-CVE-2014-9809.patch
Patch38:        ImageMagick-CVE-2014-9810.patch
Patch39:        ImageMagick-CVE-2014-9821.patch
Patch40:        ImageMagick-CVE-2014-9849.patch
Patch41:        ImageMagick-CVE-2014-9836.patch
Patch42:        ImageMagick-CVE-2014-9828.patch
Patch43:        ImageMagick-CVE-2014-9813.patch
Patch44:        ImageMagick-CVE-2014-9830.patch
Patch45:        ImageMagick-CVE-2014-9811.patch
Patch46:        ImageMagick-CVE-2014-9812.patch
Patch47:        ImageMagick-CVE-2014-9819.patch
Patch48:        ImageMagick-CVE-2014-9847.patch
Patch49:        ImageMagick-CVE-2014-9835,9831.patch
Patch50:        ImageMagick-CVE-2014-9850.patch
Patch51:        ImageMagick-CVE-2014-9820.patch
Patch52:        ImageMagick-CVE-2014-9851.patch
Patch53:        ImageMagick-CVE-2014-9837.patch
Patch54:        ImageMagick-CVE-2014-9841.patch
Patch55:        ImageMagick-CVE-2014-9843.patch
Patch56:        ImageMagick-CVE-2014-9818,9826,9829.patch
Patch57:        ImageMagick-CVE-2014-9832.patch
Patch58:        ImageMagick-CVE-2014-9854.patch
Patch59:        ImageMagick-CVE-2014-9824.patch
Patch60:        ImageMagick-CVE-2014-9822.patch
Patch61:        ImageMagick-CVE-2014-9852.patch
Patch62:        ImageMagick-CVE-2014-9814.patch
Patch63:        ImageMagick-CVE-2014-9838.patch
Patch64:        ImageMagick-CVE-2014-9815.patch
Patch65:        ImageMagick-CVE-2014-9844.patch
Patch66:        ImageMagick-CVE-2014-9842.patch
Patch67:        ImageMagick-CVE-2014-9839.patch
Patch68:        ImageMagick-CVE-2014-9845.patch
Patch69:        ImageMagick-CVE-2014-9816.patch
Patch70:        ImageMagick-CVE-2014-9817.patch
Patch71:        ImageMagick-CVE-2014-9823.patch
Patch72:        ImageMagick-CVE-2014-9848.patch
Patch73:        ImageMagick-CVE-2014-9833,9825.patch
Patch74:        ImageMagick-CVE-2014-9853.patch
Patch75:        ImageMagick-CVE-2014-9840.patch
Patch76:        ImageMagick-CVE-2014-9834.patch
Patch77:        ImageMagick-CVE-2016-5688.patch
Patch78:        ImageMagick-CVE-2016-5687.patch
Patch79:        ImageMagick-CVE-2016-5691.patch
Patch80:        ImageMagick-CVE-2016-5690.patch
Patch81:        ImageMagick-CVE-2016-5689.patch
Patch82:        ImageMagick-CVE-2016-5842.patch
Patch83:        ImageMagick-CVE-2016-5841.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%package -n perl-PerlMagick
Requires:       ImageMagick = %{version}
Requires:       libMagickCore%{libspec}-%{clibver} = %{version}
Requires:       perl = %{perl_version}
Summary:        Perl interface for ImageMagick
Group:          Development/Libraries/Perl

%package devel
Requires:       ImageMagick = %{version}
Requires:       libMagickCore%{libspec}-%{clibver} = %{version}
Requires:       libMagickWand%{libspec}-%{clibver} = %{version}
Summary:        Include Files and Libraries Mandatory for Development
Group:          Development/Libraries/C and C++
Requires:       glibc-devel
# bnc#741947:
Requires:       libbz2-devel

%package extra
Requires:       ImageMagick = %{version}
Requires:       libMagickCore%{libspec}-%{clibver} = %{version}
Summary:        Viewer and Converter for Images - extra codecs
Group:          Productivity/Graphics/Other
#delegates configured in delegates.xml that imagemagick can use
Recommends:     autotrace dcraw transfig ghostscript_any hp2xx netpbm ghostpcl libwmf

%package -n libMagickCore%{libspec}-%{clibver}
Summary:        Viewer and Converter for Images - runtime library
Group:          Productivity/Graphics/Other
Suggests:       ImageMagick-extra = %{version}

%package -n libMagickWand%{libspec}-%{clibver}
Summary:        Viewer and Converter for Images - runtime library
Group:          Productivity/Graphics/Other

%package -n libMagick++%{libspec}-%{cxxlibver}
Requires:       ImageMagick
Summary:        C++ Interface for ImageMagick - runtime library
Group:          Development/Libraries/C and C++

%package -n libMagick++-devel
Requires:       ImageMagick-devel = %{version}
Requires:       libMagick++%{libspec}-%{cxxlibver} = %{version}
Requires:       libstdc++-devel
Summary:        C++ Interface for ImageMagick - files mandatory for development
Group:          Development/Libraries/C and C++

%package doc
Summary:        Document Files for ImageMagick Library
Group:          Development/Libraries/C and C++
%if 0%{?suse_version} >= 1120
BuildArch:      noarch
%endif

%prep
%setup -n ImageMagick-%{source_version}
%patch0
%patch1
%patch2  -p1
%patch3  -p1
%patch4  -p1
%patch11 -p1
%ifarch ppc ppc64 s390 s390x
%patch12
%endif
%patch13
%patch14
%patch15
%patch16
%patch17
%patch18
%patch19
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
%patch57 -p1
%patch58 -p1
%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch63 -p1
%patch64 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
%patch70 -p1
%patch71 -p1
%patch72 -p1
%patch73 -p1
%patch74 -p1
%patch75 -p1
%patch76 -p1
%patch77 -p1
%patch78 -p1
%patch79 -p1
%patch80 -p1
%patch81 -p1
%patch82 -p1
%patch83 -p1

%build
export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$RPM_OPT_FLAGS"
export LDFLAGS="-L%{_libdir}"
%if 0%{?is_opensuse}
# for MODULES_DIRNAME setup purpose see bnc#866442
export MODULES_DIRNAME="modules-%{maj}_Q%{quantum_depth}-%{clibver}"
# for SHAREARCH_DIRNAME setup purpose see bnc#866442
export SHAREARCH_DIRNAME="config-%{maj}_Q%{quantum_depth}-%{clibver}"
# for CONFIGURE_RELATIVE_PATH setup purpose see bnc#866442
sed -i 's:^\(CONFIGURE_RELATIVE_PATH=.*\):\1_Q%{quantum_depth}-%{clibver}:' configure.ac
%endif
CHANGES=`stat --format="%y" %SOURCE1|cut --characters=1-10`
# Use mtime of .changes for build time
sed -i -e "s|^PACKAGE_RELEASE_DATE.*$|PACKAGE_RELEASE_DATE=\"$CHANGES\"|" version.sh
autoreconf --force --install -v
automake
%configure --with-pic \
  --enable-shared \
  --without-frozenpaths \
  --with-magick_plus_plus \
  --with-modules \
  --with-threads \
  --with-perl \
  --with-perl-options="INSTALLDIRS=vendor CC='%__cc -L$PWD/magick/.libs' LDDLFLAGS='-shared -L$PWD/magick/.libs'" \
  --disable-static \
  --with-djvu=yes \
  --with-rsvg=yes \
  --with-wmf=yes \
  --with-quantum-depth=%{quantum_depth}
# don't build together, PerlMagick could be miscompiled when using parallel build[1]
# [1] http://pkgs.fedoraproject.org/cgit/ImageMagick.git/tree/ImageMagick.spec
make %{?_smp_mflags} all
make -j1 perl-build

%check
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/magick/.libs:$PWD/wand/.libs
export MAGICK_CODER_MODULE_PATH=$PWD/coders/.libs
export MAGICK_CODER_FILTER_PATH=$PWD/filters/.libs
export MAGICK_CONFIGURE_PATH=$PWD/config
cd PerlMagick
make test

%install
%{__make} install \
     DESTDIR=%{buildroot} \
     pkgdocdir=%{_defaultdocdir}/%{name}-doc/
%perl_process_packlist
cd 'Magick++'
  %{__rm} -rf demo/{.deps,.libs,*.C,*.o,Makefile*,run_demos.bat} 
  PATH='/bin:/usr/bin' find demo -type f -perm /111 -execdir %{__rm} -rf '{}' ';'
  %{__mv} demo/makefile.2 demo/Makefile
cd ..
%{__mv} -t %{buildroot}%{_sysconfdir}/%{name}* %{buildroot}%{_datadir}/%{name}*/*.xml  
PATH='/bin:/usr/bin' find %{buildroot}/%{_libdir} -name "*.la" ! -empty \
 -execdir %{__sed} -i -e 's@ -L/usr/src[^ ]*@@g' -e 's@ /usr/lib/libltdl.la@@g' '{}' ';'
%{__rm} %{buildroot}%{_libdir}/*.la
%if 0%{?suse_version} > 1020
%fdupes -s %{buildroot}%{_defaultdocdir}/%{name}-doc/www/api
%endif

%post -n libMagickCore%{libspec}-%{clibver} -p /sbin/ldconfig

%postun -n libMagickCore%{libspec}-%{clibver} -p /sbin/ldconfig

%post -n libMagickWand%{libspec}-%{clibver} -p /sbin/ldconfig

%postun -n libMagickWand%{libspec}-%{clibver} -p /sbin/ldconfig

%post -n libMagick++%{libspec}-%{cxxlibver} -p /sbin/ldconfig

%postun -n libMagick++%{libspec}-%{cxxlibver} -p /sbin/ldconfig

%files
%defattr(-,root,root)
%{_bindir}/[^MW]*
%doc QuickStart.txt README.txt NEWS.txt ChangeLog LICENSE
%doc %{_mandir}/man1/*
%exclude %{_mandir}/man1/*-config.1.gz

%files -n libMagickCore%{libspec}-%{clibver}
%defattr(-,root,root)
%doc LICENSE
%dir %{_sysconfdir}/ImageMagick*
%config %{_sysconfdir}/ImageMagick*/*
%{_libdir}/libMagickCore*.so.%{clibver}*
%dir %{_libdir}/ImageMagick*
%dir %{_libdir}/ImageMagick*/modules*
%dir %{_libdir}/ImageMagick*/modules*/*
%exclude %{_libdir}/ImageMagick*/modules*/*/wmf.*
%exclude %{_libdir}/ImageMagick*/modules*/*/jp2.*
%exclude %{_libdir}/ImageMagick*/modules*/*/djvu.*
%{_libdir}/ImageMagick*/modules*/*/*.so
# don't remove la files, see bnc#579798
%{_libdir}/ImageMagick*/modules*/*/*.la
%{_libdir}/ImageMagick*/config*

%files -n libMagickWand%{libspec}-%{clibver}
%defattr(-,root,root)
%doc LICENSE
%{_libdir}/libMagickWand*.so.%{clibver}*

%files extra
%defattr(-,root,root)
%doc LICENSE
%{_libdir}/ImageMagick*/modules*/*/wmf.so
# don't remove la files, see bnc#579798
%{_libdir}/ImageMagick*/modules*/*/wmf.la
%{_libdir}/ImageMagick*/modules*/*/jp2.so
%{_libdir}/ImageMagick*/modules*/*/jp2.la
%{_libdir}/ImageMagick*/modules*/*/djvu.so
%{_libdir}/ImageMagick*/modules*/*/djvu.la

%files devel
%defattr(-,root,root)
%doc LICENSE
%{_libdir}/libMagickCore*.so
%{_libdir}/libMagickWand*.so
%dir %{_includedir}/ImageMagick*
%{_includedir}/ImageMagick*/magick
%{_includedir}/ImageMagick*/wand
%{_bindir}/MagickCore-config
%{_bindir}/MagickWand-config
%{_bindir}/Magick-config
%{_bindir}/Wand-config
%{_libdir}/pkgconfig/MagickCore*.pc
%{_libdir}/pkgconfig/ImageMagick.pc
%{_libdir}/pkgconfig/ImageMagick-*.pc
%{_libdir}/pkgconfig/*Wand*.pc
%doc %{_mandir}/man1/*-config.1.gz
%exclude %{_mandir}/man1/Magick++-config.1.gz

%files -n perl-PerlMagick
%defattr(-,root,root)
%doc LICENSE
%doc PerlMagick/README.txt
%doc PerlMagick/demo
%doc %{_mandir}/man3/*
%{perl_vendorarch}/auto/Image
%{perl_vendorarch}/Image

%files -n libMagick++%{libspec}-%{cxxlibver}
%defattr(-,root,root)
%doc LICENSE
%{_libdir}/libMagick++*.so.%{cxxlibver}*

%files -n libMagick++-devel
%defattr(-,root,root)
%doc LICENSE
%doc Magick++/demo
%doc Magick++/NEWS Magick++/README Magick++/AUTHORS
%{_libdir}/libMagick++*.so
%{_includedir}/ImageMagick*/Magick++.h
%{_includedir}/ImageMagick*/Magick++
%{_bindir}/Magick++-config
%{_libdir}/pkgconfig/ImageMagick++*.pc
%{_libdir}/pkgconfig/Magick++*.pc
%doc %{_mandir}/man1/Magick++-config.1.gz

%files doc
%defattr(-,root,root)
%{_docdir}/%{name}-doc

%description
ImageMagick is a robust collection of tools and libraries to read,
write, and manipulate an image in many image formats, including popular
formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. With ImageMagick,
you can create images dynamically, making it suitable for Web
applications. You can also resize, rotate, sharpen, color-reduce, or
add special effects to an image and save your completed work in many
different image formats. Image processing operations are available from
the command line as well as through C, C++, and PERL-based programming
interfaces.

%description devel
ImageMagick is a robust collection of tools and libraries to read,
write, and manipulate an image in many image formats, including popular
formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. With ImageMagick,
you can create images dynamically, making it suitable for Web
applications. You can also resize, rotate, sharpen, color-reduce, or
add special effects to an image and save your completed work in many
different image formats. Image processing operations are available from
the command line as well as through C, C++, and PERL-based programming
interfaces.

%description extra
This package adds support for djvu, wmf and jpeg2000 formats and
installs optional helper applications.

ImageMagick is a robust collection of tools and libraries to read,
write, and manipulate an image in many image formats, including popular
formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. With ImageMagick,
you can create images dynamically, making it suitable for Web
applications. You can also resize, rotate, sharpen, color-reduce, or
add special effects to an image and save your completed work in many
different image formats. Image processing operations are available from
the command line as well as through C, C++, and PERL-based programming
interfaces.

%description -n libMagickCore%{libspec}-%{clibver}
ImageMagick is a robust collection of tools and libraries to read,
write, and manipulate an image in many image formats, including popular
formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. With ImageMagick,
you can create images dynamically, making it suitable for Web
applications. You can also resize, rotate, sharpen, color-reduce, or
add special effects to an image and save your completed work in many
different image formats. Image processing operations are available from
the command line as well as through C, C++, and PERL-based programming
interfaces.

%description -n libMagickWand%{libspec}-%{clibver}
ImageMagick is a robust collection of tools and libraries to read,
write, and manipulate an image in many image formats, including popular
formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. With ImageMagick,
you can create images dynamically, making it suitable for Web
applications. You can also resize, rotate, sharpen, color-reduce, or
add special effects to an image and save your completed work in many
different image formats. Image processing operations are available from
the command line as well as through C, C++, and PERL-based programming
interfaces.

%description -n perl-PerlMagick
PerlMagick is an objected-oriented Perl interface to ImageMagick. Use
the module to read, manipulate, or write an image or image sequence
from within a Perl script. This makes it suitable for Web CGI scripts.

%description -n libMagick++%{libspec}-%{cxxlibver}
This is Magick++, the object-oriented C++ API for the ImageMagick
image-processing library.

Magick++ supports an object model inspired by PerlMagick. Magick++
should be faster than PerlMagick since it is written in a compiled
language which is not parsed at run-time. This makes it suitable for
Web CGI programs. Images support implicit reference counting so that
copy constructors and assignment incur almost no cost. The cost of
actually copying an image (if necessary) is done just before
modification and this copy is managed automatically by Magick++.
De-referenced copies are automatically deleted. The image objects
support value (rather than pointer) semantics so it is trivial to
support multiple generations of an image in memory at one time.

%description -n libMagick++-devel
This is Magick++, the object-oriented C++ API for the ImageMagick
image-processing library.

Magick++ supports an object model inspired by PerlMagick. Magick++
should be faster than PerlMagick since it is written in a compiled
language which is not parsed at run-time. This makes it suitable for
Web CGI programs. Images support implicit reference counting so that
copy constructors and assignment incur almost no cost. The cost of
actually copying an image (if necessary) is done just before
modification and this copy is managed automatically by Magick++.
De-referenced copies are automatically deleted. The image objects
support value (rather than pointer) semantics so it is trivial to
support multiple generations of an image in memory at one time.

%description doc
HTML documentation for ImageMagick library and scene examples.























%changelog
openSUSE Build Service is sponsored by