File gegl.spec of Package gegl

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

# docs are turned off atm as our graphviz doesnt support png output format
%bcond_with docs

%define requires_file() %( readlink -f '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} >= %%{epoch}:%%{version}\\n' -f | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")

%define lib_package  libgegl-0_4-0

%if 0%{?suse_version}
%define modules_package %{name}-0_4
%else
%define modules_package gegl04
%endif

%if 0%{?fedora_version}
%bcond_with    ffmpeg
%else
%bcond_without ffmpeg
%endif

%ifarch ppc64
%bcond_with    luajit
%else
%bcond_without luajit
%endif

%if 0%{?suse_version}
%bcond_without maxflow
%else
%bcond_with    maxflow
%endif

%if 0%{?suse_version}
%bcond_without mrg
%else
%bcond_with    mrg
%endif


Name:           gegl
Version:        0.4.22
Release:        0
Summary:        Generic Graphics Library
License:        GPL-3.0-or-later AND LGPL-3.0-or-later
Group:          Productivity/Graphics/Other
URL:            http://gegl.org/
Source0:        https://download.gimp.org/pub/gegl/0.4/%{name}-%{version}.tar.xz
Source99:       baselibs.conf
BuildRequires:  ImageMagick
BuildRequires:  asciidoc
BuildRequires:  gcc-c++
BuildRequires:  graphviz
BuildRequires:  gtk-doc
BuildRequires:  libstdc++-devel
BuildRequires:  meson >= 0.50.0
BuildRequires:  pkgconfig
BuildRequires:  suitesparse-devel
BuildRequires:  pkgconfig(OpenEXR) >= 1.6.1
BuildRequires:  pkgconfig(babl-0.1) >= 0.1.106
BuildRequires:  pkgconfig(cairo) >= 1.12.2
BuildRequires:  pkgconfig(exiv2) >= 0.25
BuildRequires:  pkgconfig(gdk-pixbuf-2.0) >= 2.32.0
BuildRequires:  pkgconfig(gexiv2)
BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(gio-unix-2.0)
BuildRequires:  pkgconfig(glib-2.0) >= 2.44.0
BuildRequires:  pkgconfig(gmodule-2.0) >= 2.44.0
BuildRequires:  pkgconfig(gobject-2.0) >= 2.44.0
BuildRequires:  pkgconfig(gobject-introspection-1.0)
BuildRequires:  pkgconfig(gthread-2.0) >= 2.44.0
BuildRequires:  pkgconfig(libjpeg)
BuildRequires:  pkgconfig(json-glib-1.0)
BuildRequires:  pkgconfig(lcms2) >= 2.8
BuildRequires:  pkgconfig(lensfun) >= 0.2.5
BuildRequires:  pkgconfig(libpng) >= 1.6.0
BuildRequires:  pkgconfig(libraw) >= 0.15.4
BuildRequires:  pkgconfig(librsvg-2.0) >= 2.40.6
BuildRequires:  pkgconfig(sdl2) >= 2.0.5
BuildRequires:  pkgconfig(libtiff-4) >= 4.0.0
BuildRequires:  pkgconfig(libv4l1) >= 1.0.1
BuildRequires:  pkgconfig(libv4l2) >= 1.0.1
BuildRequires:  pkgconfig(libwebp) >= 0.5.0
BuildRequires:  pkgconfig(gi-docgen)
%if %{with mrg}
BuildRequires:  pkgconfig(mrg)
%endif
%if %{with luajit}
BuildRequires:  pkgconfig(luajit)
%endif
%if %{with maxflow}
BuildRequires:  pkgconfig(maxflow)
%endif
BuildRequires:  babl-vala
# TODO: BuildRequires:  pkgconfig(mrg)
BuildRequires:  pkgconfig(pango) >= 1.38.0
BuildRequires:  pkgconfig(pangocairo) >= 1.38.0
BuildRequires:  pkgconfig(poppler-glib) >= 0.71.0
BuildRequires:  pkgconfig(pygobject-3.0) >= 3.2.0
BuildRequires:  pkgconfig(libspiro)
BuildRequires:  pkgconfig(vapigen) >= 0.20.0
%if %{with ffmpeg}
BuildRequires:  pkgconfig(libavcodec) >= 55.69.100
BuildRequires:  pkgconfig(libavformat) >= 55.48.100
BuildRequires:  pkgconfig(libavutil) >= 55.92.100
BuildRequires:  pkgconfig(libswscale) >= 2.6.100
%endif
# since version 0.3.5, we no longer provide an orig-addon package, as ffmpeg/libav
# exists in Tumbleweed and we use it to build
Provides:       %{name}-0_3-orig-addon = %{version}
Obsoletes:      %{name}-0_3-orig-addon < 0.3.5
# Since 13/02/18 (version 0.3.28) gegl-unstable is obsolete, gegl is now on "0.4" branch.
Provides:       gegl-unstable = %{version}
Obsoletes:      gegl-unstable < 0.3.28
Requires:       %{lib_package} >= %{version}
%if ! 0%{?suse_version}
Conflicts:      gegl04-tools
Provides:       gegl04-tools = %{version}-%{release}
%endif

%description
GEGL provides infrastructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl, it provides
support for a wide range of color models and pixel storage formats for
input and output.

%package -n %{modules_package}
Summary:        Generic Graphics Library
Group:          System/Libraries
Requires:       luajit
Requires:       graphviz
PreReq:         %{lib_package} = %{version}

%description -n %{modules_package}
GEGL provides infrastructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl, it provides
support for a wide range of color models and pixel storage formats for
input and output.

%package -n %{lib_package}
Summary:        Generic Graphics Library
# The plugins are required for the lib to be usable
Group:          System/Libraries
Requires:       %{modules_package} >= %{version}
%requires_file  %{_libdir}/libbabl-0.1.so

%description -n %{lib_package}
GEGL provides infrastructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl, it provides
support for a wide range of color models and pixel storage formats for
input and output.

%package -n typelib-1_0-Gegl-0_4
Summary:        Introspection bindings for the GEGL "Generic Graphics Library"
Group:          System/Libraries

%description -n typelib-1_0-Gegl-0_4
GEGL provides infrastructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl, it provides
support for a wide range of color models and pixel storage formats for
input and output.

This package provides the GObject Introspection bindings for the
libgegl library.

%package devel
Summary:        Development files for the GEGL "Generic Graphics Library"
Group:          Development/Libraries/C and C++
Requires:       %{lib_package} = %{version}
%if 0%{?suse_version}
Requires:       typelib-1_0-Gegl-0_4 = %{version}
%endif

%description devel
GEGL provides infratructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl, it provides
support for a wide range of color models and pixel storage formats for
input and output.

%package doc
Summary:        Documentation for the GEGL "Generic Graphics Library"
Group:          Documentation/HTML

%description doc
GEGL provides infrastructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl, it provides
support for a wide range of color models and pixel storage formats for
input and output.

%if 0%{?suse_version}
%lang_package -n %{modules_package}
%endif

%prep
%autosetup -p1

%build
%meson \
    %if %{with mrg}
	-Dmrg=enabled \
    %else
    -Dmrg=disabled \
    %endif
	%if %{without maxflow}
	-Dmaxflow=disabled \
	%endif
	%if %{without luajit}
	-Dlua=disabled \
	%endif
	%if %{with ffmpeg}
	-Dlibav=enabled \
	%else
	-Dlibav=disabled \
	%endif
	-Dworkshop=true \
	-Djasper=disabled \
	%if %{with docs}
	-Ddocs=true \
	%else
	-Ddocs=false \
	%endif
	%{nil}
%meson_build

%install
%meson_install
find %{buildroot} -type f -name "*.la" -delete -print
%find_lang %{name}-0.4 %{?no_lang_C}

%post   -n %{modules_package} -p /sbin/ldconfig
%postun -n %{modules_package} -p /sbin/ldconfig

%post   -n %{lib_package} -p /sbin/ldconfig
%postun -n %{lib_package} -p /sbin/ldconfig

%files
%{_bindir}/gegl
%{_bindir}/gegl-imgcmp

%if 0%{?suse_version}
%files -n %{modules_package}-lang -f %{name}-0.4.lang

%files -n %{modules_package}
%else
%files -n %{modules_package} -f %{name}-0.4.lang
%endif
%dir %{_libdir}/gegl-0.4/
%{_libdir}/gegl-0.4/*.so
# libgegl-sc-0.4.so is a support library for the seamless-clone module
%{_libdir}/libgegl-sc-0.4.so
%{_libdir}/libgegl-npd-0.4.so
%{_libdir}/gegl-0.4/grey2.json
%{_libdir}/gegl-0.4/dropshadow2.json
%if %{with luajit}
# lua files
%dir %{_datadir}/gegl-0.4/
%{_datadir}/gegl-0.4/lua/
%endif

%files -n %{lib_package}
%license COPYING COPYING.LESSER
%{_libdir}/libgegl-0.4.so.*


%if 0%{?suse_version}
%files -n typelib-1_0-Gegl-0_4
%endif
%{_libdir}/girepository-1.0/Gegl-0.4.typelib

%files devel
%{_includedir}/gegl-0.4/
%{_libdir}/libgegl-0.4.so
%{_libdir}/pkgconfig/gegl-0.4.pc
%{_libdir}/pkgconfig/gegl-sc-0.4.pc
%{_datadir}/gir-1.0/Gegl-0.4.gir
%dir %{_datadir}/vala
%dir %{_datadir}/vala/vapi
%{_datadir}/vala/vapi/gegl-0.4.deps
%{_datadir}/vala/vapi/gegl-0.4.vapi

%files doc
%doc %{_datadir}/doc/gegl-0.4/
%doc AUTHORS docs/ChangeLog
%if %{with docs}
%doc %{_datadir}/gtk-doc/html/gegl/
%endif

%changelog
openSUSE Build Service is sponsored by