ImageMagick/ImageMagick.spec
Adrian Schröter 0c0b160f51 Accepting request 104919 from home:babelworx:ldig:branches:graphics
license update: SUSE-ImageMagick
Use SUSE- proprietary prefix until SPDX upstream accepts ImageMagick as license (e.g. like Fedora)

OBS-URL: https://build.opensuse.org/request/show/104919
OBS-URL: https://build.opensuse.org/package/show/graphics/ImageMagick?expand=0&rev=120
2012-02-14 09:51:32 +00:00

506 lines
16 KiB
RPMSpec

#
# spec file for package ImageMagick
#
# Copyright (c) 2012 SUSE LINUX Products 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/
#
%bcond_with xtp
%bcond_without DCraw
%bcond_without FreeType
%bcond_without CXX
%bcond_without Ghostscript
%bcond_without LCMS
%bcond_without TIFF
%bcond_without WMF
%bcond_without XML
%bcond_without DejaVu
%bcond_without EXIF
%bcond_without JPEG
%bcond_without WEBP
# build against librsvg [bnc#724222]
%bcond_without RSVG
Name: ImageMagick
BuildRequires: fdupes
BuildRequires: libbz2-devel
BuildRequires: libtool
BuildRequires: lzma-devel
BuildRequires: pkgconfig
%if %{with DCraw}
BuildRequires: dcraw
%endif
%if %{with FreeType}
BuildRequires: freetype2-devel
%endif
%if %{with CXX}
BuildRequires: gcc-c++
%endif
%if %{with Ghostscript}
BuildRequires: ghostscript-fonts-other
BuildRequires: ghostscript-fonts-std
BuildRequires: ghostscript-library
%endif
%if %{with LCMS}
BuildRequires: liblcms2-devel
%endif
%if %{with TIFF}
BuildRequires: libtiff-devel
%endif
%if %{with WMF}
BuildRequires: libwmf-devel
%endif
%if %{with XML}
BuildRequires: libxml2-devel
%endif
%if %{with DejaVu}
BuildRequires: libdjvulibre-devel
%endif
%if %{with EXIF}
BuildRequires: libexif-devel
%endif
%if %{with JPEG}
BuildRequires: libjasper-devel
%endif
%if %{with WEBP}
BuildRequires: libwebp-devel
%endif
%if %{with RSVG}
BuildRequires: librsvg-devel
%endif
%define xtp_version 5.4.3
%define mfr_version 6.7.4
%define mfr_revision 7
%define source_version %{mfr_version}-%{mfr_revision}
Version: %{mfr_version}.%{mfr_revision}
Release: 0
%define libver 5
Summary: Viewer and Converter for Images
License: SUSE-ImageMagick
Group: Productivity/Graphics/Other
Url: http://www.imagemagick.org
Source: ImageMagick-%{source_version}.tar.bz2
# To get mtime of file
Source1: ImageMagick.changes
%if %{with xtp}
Source2: xtp-%{xtp_version}.tar.bz2
%endif
Source3: baselibs.conf
Patch1: ImageMagick-6.6.8.9-examples.patch
Patch2: ImageMagick-6.6.8.9-doc.patch
# remove inc-struct.diff as soon as it will be not comfortable to port
# see http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=18435&hilit=include
# for upstream progress
Patch3: ImageMagick-6.6.9.1-inc-struct.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: imagemag = %{version}
Obsoletes: imagemag < %{version}
%package -n perl-PerlMagick
Requires: perl = %{perl_version} ImageMagick = %{version} libMagickCore%{libver} = %{version}
Summary: Perl interface for ImageMagick
License: SUSE-ImageMagick
Group: Development/Libraries/Perl
%package devel
Requires: libMagickCore%{libver} = %{version} libMagickWand%{libver} = %{version}
Requires: ImageMagick = %{version}
Summary: Include Files and Libraries Mandatory for Development
License: SUSE-ImageMagick
Group: Development/Libraries/C and C++
Requires: glibc-devel
# bnc#741947:
Requires: libbz2-devel
%package extra
Requires: ImageMagick = %{version} libMagickCore%{libver} = %{version}
Summary: Viewer and Converter for Images - extra codecs
License: SUSE-ImageMagick
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%{libver}
Summary: Viewer and Converter for Images - runtime library
License: SUSE-ImageMagick
Group: Productivity/Graphics/Other
Suggests: ImageMagick-extra = %{version}
%package -n libMagickWand%{libver}
Summary: Viewer and Converter for Images - runtime library
License: SUSE-ImageMagick
Group: Productivity/Graphics/Other
%package -n libMagick++%{libver}
Requires: ImageMagick
Summary: C++ Interface for ImageMagick - runtime library
License: SUSE-ImageMagick
Group: Development/Libraries/C and C++
# was last used in openSUSE 10.2
Provides: ImageMagick-Magick++ = %{version}
Obsoletes: ImageMagick-Magick++ < %{version}
%package -n libMagick++-devel
Requires: ImageMagick-devel = %{version} libMagick++%{libver} = %{version} libstdc++-devel
Summary: C++ Interface for ImageMagick - files mandatory for development
License: SUSE-ImageMagick
Group: Development/Libraries/C and C++
Provides: ImageMagick-Magick++-devel = %{version}
Obsoletes: ImageMagick-Magick++-devel < %{version}
%package doc
Summary: Document Files for ImageMagick Library
License: SUSE-ImageMagick
Group: Development/Libraries/C and C++
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%prep
rm -rf xtp-%{xtp_version}
%if %{with xtp}
%setup -n ImageMagick-%{source_version} -b 2
%else
%setup -n ImageMagick-%{source_version}
%endif
%patch1
%patch2
%patch3 -p1
# remove together with inc-struct.diff ----
echo>header-test.c '#include "wand.h"' #
echo>wand.h '#include "wand/MagickWand.h"' #
%{__make} header-test.o #
%build
%define CFLAGS ${RPM_OPT_FLAGS}
%define LDFLAGS -L%{_libdir}
%define system_ltdl 0
%if %system_ltdl
cp -f %{_datadir}/libtool/libltdl/*.{c,h} ltdl
mv ltdl/ltdl.c ltdl/ltdl.c.orig
sed -e "s:<config.h>:<magick/magick-config.h>:" ltdl/ltdl.c.orig >ltdl/ltdl.c
%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
%if %{with xtp}
pushd ../xtp-%{xtp_version}
autoreconf --force --install
popd
%endif
%if %{suse_version} <= 1030
# openmp does not work with perl module
OPENMP="--disable-openmp"
%endif
%configure --with-pic \
--enable-shared \
--without-frozenpaths \
--with-magick_plus_plus \
--with-modules \
--with-threads \
--without-perl \
--disable-static \
--with-djvu=yes $OPENMP CFLAGS="%{CFLAGS}" CXXFLAGS="%{CFLAGS}" LDFLAGS="%{LDFLAGS}"
make %{?_smp_mflags} all
cd PerlMagick
perl Makefile.PL
make %{?_smp_mflags} LD_RUN_PATH="%{_libdir}:%{_prefix}/X11R6/%{_lib}"
#
%if %{with xtp}
cd ../../xtp-%{xtp_version}
%configure "CFLAGS=${RPM_OPT_FLAGS} -D_GNU_SOURCE" "CXXFLAGS=${RPM_OPT_FLAGS}"
make %{?_smp_mflags}
%endif
%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
%{__install} -d "${RPM_BUILD_ROOT%}"'{_defaultdocdir}/%{name}/images'
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
pkgdocdir=%{_defaultdocdir}/%{name}/
cd PerlMagick
%{__make} "DESTDIR=${RPM_BUILD_ROOT}" 'LD_RUN_PATH=%{_libdir}:%{_prefix}/X11R6/%{_lib}' install_vendor
%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 ..
%if %{with xtp}
pushd ../xtp-%{xtp_version}
%{__make} DESTDIR=$RPM_BUILD_ROOT install
popd
%endif
%{__mv} -t "${RPM_BUILD_ROOT}"'%{_sysconfdir}'/%{name}* "${RPM_BUILD_ROOT}"'%{_datadir}'/%{name}*/*.xml
%{__cp} -a -t "${RPM_BUILD_ROOT}"'%{_defaultdocdir}/%{name}/' scenes
PATH='/bin:/usr/bin' find "${RPM_BUILD_ROOT}/%{_libdir}" -name "*.la" ! -empty \
-execdir %{__sed} -i -e 's@ -L/usr/src[^ ]*@@g' -e 's@ /usr/lib/libltdl.la@@g' '{}' ';'
%{__rm} -f "${RPM_BUILD_ROOT}"'%{_libdir}'/libltdl.*
%{__rm} -f "${RPM_BUILD_ROOT}"'%{_libdir}'/*.la
echo>'%{buildroot}%{_includedir}/%{name}/wand.h' '#include "wand/MagickWand.h"'
%if 0%{?suse_version} > 1020
%fdupes $RPM_BUILD_ROOT%{_includedir}/%{name}/wand
%fdupes $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}/www/api
%endif
rm -rf %{buildroot}/%{_datadir}/doc/%{name}
%post -n libMagickCore%{libver} -p /sbin/ldconfig
%postun -n libMagickCore%{libver} -p /sbin/ldconfig
%post -n libMagickWand%{libver} -p /sbin/ldconfig
%postun -n libMagickWand%{libver} -p /sbin/ldconfig
%post -n libMagick++%{libver} -p /sbin/ldconfig
%postun -n libMagick++%{libver} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%docdir %{_docdir}/%{name}
%doc QuickStart.txt README.txt NEWS.txt ChangeLog LICENSE
%{_bindir}/[^MW]*
%doc %{_mandir}/man1/*
%exclude %{_mandir}/man1/*-config.1.gz
%files -n libMagickCore%{libver}
%defattr(-,root,root)
%doc LICENSE
%dir %{_sysconfdir}/ImageMagick*
%config %{_sysconfdir}/ImageMagick*/*
%{_libdir}/libMagickCore.so.%{libver}*
%dir %{_libdir}/ImageMagick*
%dir %{_libdir}/ImageMagick*/modules*
%dir %{_libdir}/ImageMagick*/modules*/*
%{_libdir}/ImageMagick*/config
%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
%files -n libMagickWand%{libver}
%defattr(-,root,root)
%doc LICENSE
%{_libdir}/libMagickWand.so.%{libver}*
%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
%{_includedir}/ImageMagick/wand.h
%{_bindir}/MagickCore-config
%{_bindir}/MagickWand-config
%{_bindir}/Magick-config
%{_bindir}/Wand-config
%{_libdir}/pkgconfig/ImageMagick.pc
%{_libdir}/pkgconfig/Wand.pc
%{_libdir}/pkgconfig/MagickCore.pc
%{_libdir}/pkgconfig/MagickWand.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
%if %suse_version < 1140
/var/adm/perl-modules/ImageMagick
%endif
%doc %{_mandir}/man3/Image::Magick.3pm*
%{perl_vendorarch}/auto/Image
%{perl_vendorarch}/Image
%files -n libMagick++%{libver}
%defattr(-,root,root)
%doc LICENSE
%{_libdir}/libMagick++.so.%{libver}*
%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)
%dir %{_docdir}/%{name}
%if 0
%{_docdir}/%{name}/index.html
%{_docdir}/%{name}/www
%{_docdir}/%{name}/images
%{_docdir}/%{name}/scenes
%endif
%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%{libver}
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%{libver}
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++%{libver}
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