gdk-pixbuf/gdk-pixbuf.spec
Dominique Leuenberger 0a3257d528 Accepting request 1172084 from GNOME:Next
- Pass -Dothers=enabled to meson: enable other image loaders (most
  notably beeded seems xpm,xbm). This is in line with upstreams
  recommendation for now, but won't be working past version 2.43.x.
  The loaders will likely be split out into a separate repo.
  (boo#1223903, glgo#GNOME/gdk-pixbuf!169).
- Add 238893d8cd6f9c2616a05ab521a29651a17a38c2.patch: Fix test
  suite with other loaders enabled.

OBS-URL: https://build.opensuse.org/request/show/1172084
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdk-pixbuf?expand=0&rev=202
2024-05-06 07:18:41 +00:00

253 lines
8.4 KiB
RPMSpec

#
# spec file for package gdk-pixbuf
#
# Copyright (c) 2024 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/
#
# When updating the binary version, do not forget to also update baselibs.conf
%define gdk_pixbuf_binary_version 2.10.0
Name: gdk-pixbuf
Version: 2.42.11
Release: 0
Summary: An image loading library
License: LGPL-2.1-or-later
Group: Development/Libraries/GNOME
URL: https://www.gnome.org/
# A file from the test suite is correctly identified by clamav to be a
# malicious BC.Gif.Exploit.Agent-1425366.Agent. This is an intentional part of
# the test suite to ensure it has no negative side effects. Change the Source0
# from tar.xz to zip to bypass clamav scanning on SLE.
Source0: %{name}-%{version}.zip
Source1: macros.gdk-pixbuf
Source2: README.SUSE
Source3: gdk-pixbuf-rpmlintrc
Source99: baselibs.conf
# PATCH-FIX-UPSTREAM
Patch0: https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/238893d8cd6f9c2616a05ab521a29651a17a38c2.patch
BuildRequires: docbook-xsl-stylesheets
BuildRequires: docutils
BuildRequires: libjpeg-devel
BuildRequires: libtiff-devel
BuildRequires: meson >= 0.55.3
BuildRequires: pkgconfig
BuildRequires: unzip
BuildRequires: xsltproc
BuildRequires: pkgconfig(gi-docgen)
BuildRequires: pkgconfig(glib-2.0) >= 2.56.0
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(libpng)
%description
gdk-pixbuf is an image loading library that can be extended by loadable
modules for new image formats. It is used by toolkits such as GTK+ or
Clutter.
%package -n libgdk_pixbuf-2_0-0
Summary: An image loading library
# Provide %%{name} to make the lang package installable
Group: System/Libraries
Requires(post): gdk-pixbuf-query-loaders
Conflicts: gtk2 < 2.21.3
Provides: %{name} = %{version}
%description -n libgdk_pixbuf-2_0-0
gdk-pixbuf is an image loading library that can be extended by loadable
modules for new image formats. It is used by toolkits such as GTK+ or
Clutter.
%package -n typelib-1_0-GdkPixbuf-2_0
Summary: Introspection bindings for gdk-pixbuf
Group: System/Libraries
%description -n typelib-1_0-GdkPixbuf-2_0
gdk-pixbuf is an image loading library that can be extended by loadable
modules for new image formats. It is used by toolkits such as GTK+ or
Clutter.
This package provides the GObject Introspection bindings for gdk-pixbuf.
%package -n typelib-1_0-GdkPixdata-2_0
Summary: Introspection bindings for gdk-pixdata
Group: System/Libraries
%description -n typelib-1_0-GdkPixdata-2_0
gdk-pixbuf is an image loading library that can be extended by loadable
modules for new image formats. It is used by toolkits such as GTK+ or
Clutter.
This package provides the GObject Introspection bindings for gdk-pixdata.
%package query-loaders
Summary: Utility to create a cache of gdk-pixbuf loaders
Group: System/X11/Utilities
%description query-loaders
gdk-pixbuf is an image loading library that can be extended by loadable
modules for new image formats. It is used by toolkits such as GTK+ or
Clutter.
This package contains the utility to create the cache file needed for
loadable modules.
%package thumbnailer
Summary: System helper creating thumbnails
Group: System/X11/Utilities
Supplements: libgdk_pixbuf-2_0-0
%description thumbnailer
gdk-pixbuf is an image loading library that can be extended by loadable
modules for new image formats. It is used by toolkits such as GTK+ or
Clutter.
This package contains the thumbnailer utility.
%package devel
Summary: Development files for gdk-pixbuf, an image loading library
Group: Development/Languages/C and C++
Requires: libgdk_pixbuf-2_0-0 = %{version}
Requires: typelib-1_0-GdkPixbuf-2_0 = %{version}
Requires: typelib-1_0-GdkPixdata-2_0 = %{version}
%description devel
gdk-pixbuf is an image loading library that can be extended by loadable
modules for new image formats. It is used by toolkits such as GTK+ or
Clutter.
This package contains the development files for gdk-pixbuf.
%lang_package
%prep
%setup -c -T -q
unzip -P gecko %{SOURCE0}
%if "%{_lib}" == "lib64"
cp -a %{SOURCE2} .
%endif
%autopatch -p1
%build
%meson \
-Dinstalled_tests=false \
-Dothers=enabled \
%{nil}
%meson_build
%install
%meson_install
rm -rf %{buildroot}{%{_libexecdir},%{_datadir}}/installed-tests/
%find_lang %{name}
touch %{buildroot}%{_libdir}/gdk-pixbuf-2.0/%{gdk_pixbuf_binary_version}/loaders.cache
%if "%{_lib}" == "lib64"
mv %{buildroot}%{_bindir}/gdk-pixbuf-query-loaders %{buildroot}%{_bindir}/gdk-pixbuf-query-loaders-64
mv %{buildroot}%{_mandir}/man1/gdk-pixbuf-query-loaders.1 %{buildroot}%{_mandir}/man1/gdk-pixbuf-query-loaders-64.1
sed -i 's|gdk_pixbuf_query_loaders=${bindir}/gdk-pixbuf-query-loaders|gdk_pixbuf_query_loaders=${bindir}/gdk-pixbuf-query-loaders-64|' \
%{buildroot}%{_libdir}/pkgconfig/gdk-pixbuf-2.0.pc
%endif
# Install rpm macros
mkdir -p %{buildroot}%{_rpmmacrodir}
cp %{SOURCE1} %{buildroot}%{_rpmmacrodir}
#############################################################################
# Note: when updating scriptlets, don't forget to also update baselibs.conf #
#############################################################################
# Convenient %%define for the scriplets
%if "%{_lib}" == "lib64"
%define _gdk_pixbuf_query_loaders %{_bindir}/gdk-pixbuf-query-loaders-64
%else
%define _gdk_pixbuf_query_loaders %{_bindir}/gdk-pixbuf-query-loaders
%endif
%define _gdk_pixbuf_query_loaders_update_cache %{_gdk_pixbuf_query_loaders} --update-cache
%post -n libgdk_pixbuf-2_0-0
/sbin/ldconfig
%if 0
# In case libgdk_pixbuf-2_0-0 gets installed before gdk-pixbuf-query-loaders,
# we don't want to fail. So we make the call to gdk-pixbuf-query-loaders
# dependent on the existence of the binary. This is why we also have a %%post
# for gdk-pixbuf-query-loaders.
%endif
if test -f %{_gdk_pixbuf_query_loaders}; then
%{_gdk_pixbuf_query_loaders_update_cache}
fi
%post query-loaders
%if 0
# If we install gdk-pixbuf-query-loaders for the first time, then we should run
# it in case libgdk_pixbuf-2_0-0 was installed first (ie, if
# %%{_libdir}/gdk-pixbuf-2.0/%%{gdk_pixbuf_binary_version} already exists) which
# means gdk-pixbuf-query-loaders couldn't run there.
%endif
if [ $1 = 1 ]; then
test -d %{_libdir}/gdk-pixbuf-2.0/%{gdk_pixbuf_binary_version}
if test $? -eq 0; then
%{_gdk_pixbuf_query_loaders_update_cache}
fi
fi
%if 0
# No need to call gdk-pixbuf-query-loaders in postun:
# - if it's an upgrade, it will have been called in post
# - if it's an uninstall, we don't care about this anymore
%endif
%postun -n libgdk_pixbuf-2_0-0 -p /sbin/ldconfig
%files -n libgdk_pixbuf-2_0-0
%license COPYING
%doc NEWS
%if "%{_lib}" == "lib64"
%doc README.SUSE
%endif
%{_libdir}/libgdk_pixbuf-2.0.so.0*
%dir %{_libdir}/gdk-pixbuf-2.0
%dir %{_libdir}/gdk-pixbuf-2.0/%{gdk_pixbuf_binary_version}
%dir %{_libdir}/gdk-pixbuf-2.0/%{gdk_pixbuf_binary_version}/loaders
%{_libdir}/gdk-pixbuf-2.0/%{gdk_pixbuf_binary_version}/loaders/*.so
%ghost %{_libdir}/gdk-pixbuf-2.0/%{gdk_pixbuf_binary_version}/loaders.cache
%files -n typelib-1_0-GdkPixbuf-2_0
%{_libdir}/girepository-1.0/GdkPixbuf-2.0.typelib
%files -n typelib-1_0-GdkPixdata-2_0
%{_libdir}/girepository-1.0/GdkPixdata-2.0.typelib
%files query-loaders
%{_bindir}/gdk-pixbuf-query-loaders*
%{_mandir}/man1/gdk-pixbuf-query-loaders*.1*
%files thumbnailer
%{_bindir}/gdk-pixbuf-thumbnailer
%dir %{_datadir}/thumbnailers
%{_datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer
%files devel
%{_bindir}/gdk-pixbuf-csource
%{_bindir}/gdk-pixbuf-pixdata
%{_mandir}/man1/gdk-pixbuf-csource.1*
%{_includedir}/gdk-pixbuf-2.0
%{_libdir}/pkgconfig/gdk-pixbuf-2.0.pc
%{_libdir}/*.so
%{_datadir}/gir-1.0/GdkPixbuf-2.0.gir
%{_datadir}/gir-1.0/GdkPixdata-2.0.gir
%{_rpmmacrodir}/macros.gdk-pixbuf
%files lang -f %{name}.lang
%changelog