A new user interface for you! Read more...

File GraphicsMagick.spec of Package GraphicsMagick

#
# spec file for package GraphicsMagick
#
# Copyright (c) 2018 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/
#


%if 0%{?suse_version} >= 1315
%define bindperl 1
%else
%define bindperl 0
%endif
%define quant 16
%define base_version 1.3
%define so_ver          3
%define pp_so_ver       12
%define wand_so_ver     2
Name:           GraphicsMagick
Version:        1.3.28
Release:        0
Summary:        Viewer and Converter for Images
License:        MIT
Group:          Productivity/Graphics/Convertors
Url:            http://www.GraphicsMagick.org/
Source:         ftp://ftp.GraphicsMagick.org/pub/%{name}/%{base_version}/%{name}-%{version}.tar.bz2
# following typemap file is needed for building PerlMagick with perl 5.16;
# should be present in Graphics Magick 1.4.0
%if %{bindperl}
Source1:        typemap
%endif
%if %{bindperl}
Patch0:         GraphicsMagick-perl-linkage.patch
%endif
BuildRequires:  cups-client
BuildRequires:  dcraw
BuildRequires:  gcc-c++
BuildRequires:  ghostscript-fonts-other
BuildRequires:  ghostscript-fonts-std
BuildRequires:  ghostscript-library
BuildRequires:  libjasper-devel
%if 0%{?suse_version} >= 1315
BuildRequires:  libjbig-devel
BuildRequires:  libltdl-devel
%endif
BuildRequires:  libwmf-devel
%if 0%{?suse_version} >= 1315
BuildRequires:  libjpeg-devel
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(bzip2)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(lcms2)
BuildRequires:  pkgconfig(libpng)
BuildRequires:  pkgconfig(libtiff-4)
BuildRequires:  pkgconfig(libwebp)
BuildRequires:  pkgconfig(libwebpmux)
BuildRequires:  pkgconfig(libxml-2.0)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(zlib)
%else
BuildRequires:  freetype2-devel
BuildRequires:  libbz2-devel
BuildRequires:  libtiff-devel
BuildRequires:  libxml-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%endif
Requires:       xorg-x11-fonts

%description
GraphicsMagick provides an image manipulation and translation
utility. It is capable of displaying still images and animations
using the X Window system which provides an interface for
interactively editing images, and is capable of importing selected
windows or the entire desktop. It can read and write over 88 image
formats, including JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD.
It also allows to resize, rotate, sharpen, color reduce, or add
special effects to an image and to save the result to any supported
format. GraphicsMagick may be used to create animated or transparent
.gifs, to composite images, and to create thumbnail images.

This package is compiled with Q%{quant}, which means that it provides better
performance on %{quant} bit images and less.

%package     -n libGraphicsMagick-Q%{quant}-%{so_ver}
Summary:        The GraphicsMagick image conversion runtime library
Group:          System/Libraries
Requires:       libGraphicsMagick3-config = %{version}

%description -n libGraphicsMagick-Q%{quant}-%{so_ver}
GraphicsMagick provides an image manipulation and translation utility
and library. It can read and write over 88 image formats, including
JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD. It also allows to
resize, rotate, sharpen, color reduce, or add special effects to an
image and to save the result to any supported format. GraphicsMagick
may be used to create animated or transparent .gifs, to composite
images, and to create thumbnail images.

This package is compiled with Q%{quant}, that means it provides better
performance on %{quant} and less bit images.

%package     -n libGraphicsMagick%{so_ver}-config
Summary:        Configuration for the GraphicsMagick image conversion library
Group:          System/Libraries

%description -n libGraphicsMagick%{so_ver}-config
GraphicsMagick provides an image manipulation and translation utility
and library. It can read and write over 88 image formats, including
JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD. It also allows to
resize, rotate, sharpen, color reduce, or add special effects to an
image and to save the result to any supported format. GraphicsMagick
may be used to create animated or transparent .gifs, to composite
images, and to create thumbnail images.

This package contains GraphicsMagick library configuration files.

%package     -n libGraphicsMagickWand-Q%{quant}-%{wand_so_ver}
Summary:        Runtime library for the GraphicsMagick image conversion library
Group:          System/Libraries

%description -n libGraphicsMagickWand-Q%{quant}-%{wand_so_ver}
GraphicsMagick provides an image manipulation and translation utility
and library. It can read and write over 88 image formats, including
JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD. It also allows to
resize, rotate, sharpen, color reduce, or add special effects to an
image and to save the result to any supported format. GraphicsMagick
may be used to create animated or transparent .gifs, to composite
images, and to create thumbnail images.

This package is compiled with Q%{quant}, that means it provides better
performance on %{quant} and less bit images.

%package        devel
Summary:        Development files for the GraphicsMagick C language API
Group:          Development/Libraries/C and C++
Requires:       glibc-devel
Requires:       libGraphicsMagick-Q%{quant}-%{so_ver} = %{version}
Requires:       libGraphicsMagickWand-Q%{quant}-%{wand_so_ver} = %{version}

%description    devel
GraphicsMagick provides an image manipulation and translation utility
and library. It can read and write over 88 image formats, including
JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD. It also allows to
resize, rotate, sharpen, color reduce, or add special effects to an
image and to save the result to any supported format. GraphicsMagick
may be used to create animated or transparent .gifs, to composite
images, and to create thumbnail images.

%if %{bindperl}
%package     -n perl-GraphicsMagick
Summary:        Perl interface for the GraphicsMagick image conversion library
Group:          Development/Languages/Perl
Requires:       %{name} = %{version}
Requires:       perl = %{perl_version}

%description -n perl-GraphicsMagick
GraphicsMagick provides an image manipulation and translation utility
and library. It can read and write over 88 image formats, including
JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD. It also allows to
resize, rotate, sharpen, color reduce, or add special effects to an
image and to save the result to any supported format. GraphicsMagick
may be used to create animated or transparent .gifs, to composite
images, and to create thumbnail images.

This package contains perl interface to GraphicsMagick library.
%endif

%package     -n libGraphicsMagick++-Q%{quant}-%{pp_so_ver}
Summary:        C++ interface for the GraphisMagick image conversion library
Group:          System/Libraries

%description -n libGraphicsMagick++-Q%{quant}-%{pp_so_ver}
GraphicsMagick provides an image manipulation and translation utility
and library. It can read and write over 88 image formats, including
JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD. It also allows to
resize, rotate, sharpen, color reduce, or add special effects to an
image and to save the result to any supported format. GraphicsMagick
may be used to create animated or transparent .gifs, to composite
images, and to create thumbnail images.

This subpackage contains C++ interface to GraphicsMagick library.

%package     -n libGraphicsMagick++-devel
Summary:        Development files for the GraphicsMagick C++ language API
Group:          Development/Libraries/C and C++
Requires:       %{name}-devel = %{version}
Requires:       c++_compiler
Requires:       libGraphicsMagick++-Q%{quant}-%{pp_so_ver} = %{version}
Provides:       GraphicsMagick-C++-devel
Obsoletes:      GraphicsMagick-C++-devel <= 1.1.7

%description -n libGraphicsMagick++-devel
GraphicsMagick provides an image manipulation and translation utility
and library. It can read and write over 88 image formats, including
JPEG, TIFF, WMF, SVG, PNG, PNM, GIF, andPhoto CD. It also allows to
resize, rotate, sharpen, color reduce, or add special effects to an
image and to save the result to any supported format. GraphicsMagick
may be used to create animated or transparent .gifs, to composite
images, and to create thumbnail images.

%prep
%setup -q
%if %{bindperl}
%patch0 -p1
%endif

%build
# This shouldn't be there yet.
rm -f PerlMagick/Makefile.PL
export CFLAGS="%{optflags} -fPIE"
%configure --enable-shared --disable-static \
	--with-modules --enable-lzw \
	--with-frozenpaths \
	--without-perl \
	--with-magick-plus-plus \
	--with-quantum-depth=%{quant} \
	--enable-quantum-library-names \
	--docdir=%{_defaultdocdir}/%{name} \
	--with-x \
	--x-libraries=%{_libdir} \
	--x-includes=%{_prefix}/include
make %{?_smp_mflags} LDFLAGS="-pie"
%if %{bindperl}
cd PerlMagick
if [ -e PerlMagick/typemap ]; then
  echo "With Graphics Magick 1.4.0, typmap exists yet, please "
  echo "no need to carry it as a package source anymore."
  exit 1
else
  cp %{SOURCE1} .
fi
perl Makefile.PL
make %{?_smp_mflags} LD_RUN_PATH="%{_libdir}"
%endif

%install
%if 0%{?suse_version} >= 1315
%make_install
%else
make install \
     DESTDIR=%{buildroot} \
     pkgdocdir=%{_defaultdocdir}/%{name}-%{maj}/
%endif
rm -f %{buildroot}%{_libdir}/libGraphicsMagick.la
rm -f %{buildroot}%{_libdir}/libGraphicsMagick++.la
rm -f %{buildroot}%{_libdir}/libGraphicsMagickWand.la
cp ChangeLog* *.txt %{buildroot}/%{_defaultdocdir}/%{name}
%if %{bindperl}
cd PerlMagick
make DESTDIR=%{buildroot} LD_RUN_PATH="%{_libdir}" install_vendor
%perl_process_packlist
# Remove unpackaged files.
rm -f `find %{buildroot}%{_libdir}/perl*/ -name perllocal.pod -type f`
rm -f `find %{buildroot}%{_libdir}/perl*/ -name .packlist -type f`
# perl modules are in lib even on 64 bit arch
rm -f `find %{buildroot}%{_libexecdir}/perl*/ -name perllocal.pod -type f`
rm -f `find %{buildroot}%{_libexecdir}/perl*/ -name .packlist -type f`
rm -f %{buildroot}%{_localstatedir}/adm/perl-modules/GraphicsMagick
%endif

%check
make %{?_smp_mflags} check
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/magick/.libs:$PWD/wand/.libs
export MAGICK_CODER_MODULE_PATH=$PWD/coders/.libs
export MAGICK_CONFIGURE_PATH=$PWD/config
%if %{bindperl}
cd PerlMagick
make test
%endif

%post -n libGraphicsMagick-Q%{quant}-%{so_ver} -p /sbin/ldconfig
%postun -n libGraphicsMagick-Q%{quant}-%{so_ver} -p /sbin/ldconfig
%post -n libGraphicsMagickWand-Q%{quant}-%{wand_so_ver} -p /sbin/ldconfig
%postun -n libGraphicsMagickWand-Q%{quant}-%{wand_so_ver} -p /sbin/ldconfig
%post -n libGraphicsMagick++-Q%{quant}-%{pp_so_ver} -p /sbin/ldconfig
%postun -n libGraphicsMagick++-Q%{quant}-%{pp_so_ver} -p /sbin/ldconfig

%files
%if 0%{?suse_version} < 1315
%defattr(-,root,root)
%endif
%docdir %{_defaultdocdir}/%{name}
%{_defaultdocdir}/%{name}
%doc %{_datadir}/%{name}-%{version}
%exclude %{_datadir}/%{name}-%{version}/config
%attr(755, root, root) %{_bindir}/gm
%{_mandir}/man1/gm.1%{ext_man}
%{_mandir}/man4/*%{ext_man}
%{_mandir}/man5/*%{ext_man}

%files -n libGraphicsMagick-Q%{quant}-%{so_ver}
%if 0%{?suse_version} < 1315
%defattr(-,root,root)
%endif
%{_libdir}/lib%{name}-Q%{quant}.so.*
%dir %{_libdir}/%{name}-%{version}
%dir %{_libdir}/%{name}-%{version}/modules-Q%{quant}
%dir %{_libdir}/%{name}-%{version}/modules-Q%{quant}/coders
%dir %{_libdir}/%{name}-%{version}/modules-Q%{quant}/filters
%{_libdir}/%{name}-%{version}/modules-Q%{quant}/*/*.so
%{_libdir}/%{name}-%{version}/modules-Q%{quant}/*/*.la

%files -n libGraphicsMagick%{so_ver}-config
%if 0%{?suse_version} < 1315
%defattr(-,root,root)
%endif
%dir %{_libdir}/%{name}-%{version}/config
%{_libdir}/%{name}-%{version}/config/*.mgk
%dir %{_datadir}/%{name}-%{version}
%{_datadir}/%{name}-%{version}/config

%files -n libGraphicsMagickWand-Q%{quant}-%{wand_so_ver}
%if 0%{?suse_version} < 1315
%defattr(-,root,root)
%endif
%{_libdir}/lib%{name}Wand-Q%{quant}.so.*

%files devel
%if 0%{?suse_version} < 1315
%defattr(-,root,root)
%endif
%dir %{_includedir}/%{name}
%dir %{_includedir}/%{name}/wand
%{_includedir}/%{name}/wand/*
%dir %{_includedir}/%{name}/magick
%{_includedir}/%{name}/magick/*
%{_libdir}/lib%{name}.so
%{_libdir}/lib%{name}Wand.so
%dir %{_libdir}/%{name}-%{version}/modules-Q%{quant}
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/%{name}Wand.pc
%attr(755, root, root) %{_bindir}/%{name}-config
%attr(755, root, root) %{_bindir}/%{name}Wand-config
%{_mandir}/man1/%{name}-config.1%{ext_man}
%{_mandir}/man1/%{name}Wand-config.1%{ext_man}

%if %{bindperl}
%files -n perl-GraphicsMagick
%dir %{perl_vendorarch}/Graphics
%dir %{perl_vendorarch}/auto/Graphics
%dir %{perl_vendorarch}/auto/Graphics/Magick
%{perl_vendorarch}/Graphics/Magick.pm
%{perl_vendorarch}/auto/Graphics/Magick/*
%{_mandir}/man3/*%{ext_man}
%endif

%files -n libGraphicsMagick++-Q%{quant}-%{pp_so_ver}
%if 0%{?suse_version} < 1315
%defattr(-,root,root)
%endif
%{_libdir}/lib%{name}++-Q%{quant}.so.*

%files -n libGraphicsMagick++-devel
%if 0%{?suse_version} < 1315
%defattr(-,root,root)
%endif
%dir %{_includedir}/%{name}
%dir %{_includedir}/%{name}/Magick++
%{_includedir}/%{name}/Magick++.h
%{_includedir}/%{name}/Magick++/*
%{_libdir}/lib%{name}++.so
%{_libdir}/pkgconfig/%{name}++.pc
%attr(755, root, root) %{_bindir}/%{name}++-config
%{_mandir}/man1/%{name}++-config.1%{ext_man}

%changelog