357 lines
13 KiB
RPMSpec
357 lines
13 KiB
RPMSpec
#
|
|
# spec file for package GraphicsMagick
|
|
#
|
|
# Copyright (c) 2023 SUSE LLC
|
|
#
|
|
# 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 https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define asan_build 0
|
|
%define debug_build 0
|
|
%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.42
|
|
Release: 0
|
|
Summary: Viewer and Converter for Images
|
|
License: MIT
|
|
Group: Productivity/Graphics/Convertors
|
|
URL: http://www.GraphicsMagick.org/
|
|
Source: https://downloads.sourceforge.net/project/graphicsmagick/graphicsmagick/%{version}/%{name}-%{version}.tar.xz
|
|
Patch0: GraphicsMagick-perl-linkage.patch
|
|
Patch1: GraphicsMagick-disable-insecure-coders.patch
|
|
BuildRequires: cups-client
|
|
BuildRequires: dcraw
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: ghostscript
|
|
BuildRequires: ghostscript-fonts-std
|
|
BuildRequires: libjbig-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: libltdl-devel
|
|
BuildRequires: libwmf-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)
|
|
%if 0%{?suse_version} > 1500
|
|
BuildRequires: pkgconfig(libjxl)
|
|
%endif
|
|
|
|
%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
|
|
# %{_libdir}/GraphicsMagick-*/config/type-ghostscript.mgk references fonts
|
|
# shipped as part of ghostscript-fonts-std (boo#1216604)
|
|
Requires: ghostscript-fonts-std
|
|
|
|
%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.
|
|
|
|
%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.
|
|
|
|
%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
|
|
%autopatch -p1
|
|
|
|
%build
|
|
# This shouldn't be there yet.
|
|
rm -f PerlMagick/Makefile.PL
|
|
%if !%{debug_build}
|
|
export CFLAGS="%{optflags} -fPIE"
|
|
%else
|
|
export CFLAGS="%{optflags} -O0"
|
|
export CXXFLAGS="%{optflags} -O0"
|
|
%endif
|
|
%configure --enable-shared --disable-static \
|
|
%if !%{debug_build}
|
|
--with-modules \
|
|
%else
|
|
--without-modules \
|
|
%endif
|
|
--with-frozenpaths \
|
|
--without-dps \
|
|
--without-jp2 \
|
|
--without-perl \
|
|
--without-trio \
|
|
--without-zstd \
|
|
--with-magick-plus-plus \
|
|
--with-quantum-depth=%{quant} \
|
|
--enable-quantum-library-names \
|
|
--docdir=%{_defaultdocdir}/%{name} \
|
|
--with-x \
|
|
--x-libraries=%{_libdir} \
|
|
--x-includes=%{_includedir}
|
|
%if %{asan_build}
|
|
sed -i -e 's/\(^CFLAGS.*\)/\1 -fsanitize=address/' \
|
|
-e 's/\(^LIBS =.*\)/\1 -lasan/' \
|
|
Makefile
|
|
%endif
|
|
|
|
# sanity check to prevent ghostscript support from being reenabled
|
|
# for reasoning see bsc#1122792
|
|
grep -q -- -DHasGS Makefile && GS_ENABLED=1
|
|
if [ ! -z "$GS_ENABLED" ]; then
|
|
echo "Refusing to build with ghostscript support (-DHasGS)" 1>&2
|
|
echo "See bsc#1122792 for the security implications" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
%if !%{debug_build}
|
|
%make_build LDFLAGS="-pie"
|
|
%else
|
|
%make_build
|
|
%endif
|
|
cd PerlMagick
|
|
perl Makefile.PL
|
|
%make_build LD_RUN_PATH="%{_libdir}"
|
|
|
|
%install
|
|
%make_install
|
|
rm -f %{buildroot}%{_libdir}/libGraphicsMagick.la
|
|
rm -f %{buildroot}%{_libdir}/libGraphicsMagick++.la
|
|
rm -f %{buildroot}%{_libdir}/libGraphicsMagickWand.la
|
|
cp ChangeLog* *.txt %{buildroot}/%{_defaultdocdir}/%{name}
|
|
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}%{_prefix}/lib/perl*/ -name perllocal.pod -type f`
|
|
rm -f `find %{buildroot}%{_prefix}/lib/perl*/ -name .packlist -type f`
|
|
rm -f %{buildroot}%{_localstatedir}/adm/perl-modules/GraphicsMagick
|
|
|
|
%check
|
|
%if %{asan_build}
|
|
# ASAN needs /proc to be mounted
|
|
exit 0
|
|
%endif
|
|
%make_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_CONFIGURE_PATH=$PWD/config
|
|
cd PerlMagick
|
|
# bsc#1105592
|
|
rm -r t/ps
|
|
%make_build test
|
|
|
|
%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
|
|
%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}
|
|
%{_libdir}/lib%{name}-Q%{quant}.so.*
|
|
%dir %{_libdir}/%{name}-%{version}
|
|
%if !%{debug_build}
|
|
%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
|
|
%endif
|
|
|
|
%files -n libGraphicsMagick%{so_ver}-config
|
|
%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}
|
|
%{_libdir}/lib%{name}Wand-Q%{quant}.so.*
|
|
|
|
%files devel
|
|
%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
|
|
%if !%{debug_build}
|
|
%dir %{_libdir}/%{name}-%{version}/modules-Q%{quant}
|
|
%endif
|
|
%{_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}
|
|
|
|
%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}
|
|
|
|
%files -n libGraphicsMagick++-Q%{quant}-%{pp_so_ver}
|
|
%{_libdir}/lib%{name}++-Q%{quant}.so.*
|
|
|
|
%files -n libGraphicsMagick++-devel
|
|
%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
|