File gplugin.spec of Package gplugin

#
# spec file for package gplugin
#
# Copyright (c) 2025 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         sover 0
Name:           gplugin
Version:        0.44.2
Release:        0
Summary:        GObject based library that implements a reusable plugin system
License:        LGPL-2.0-or-later
URL:            https://keep.imfreedom.org/gplugin/gplugin
Source0:        https://sourceforge.net/projects/pidgin/files/%{name}/%{version}/%{name}-%{version}.tar.xz
Source1:        https://sourceforge.net/projects/pidgin/files/%{name}/%{version}/%{name}-%{version}.tar.xz.asc
Source2:        https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x40de1dc7288fe3f50ab938c548f66affd9bdb729#/%{name}.keyring
BuildRequires:  fdupes
BuildRequires:  help2man
BuildRequires:  lua-lgi
BuildRequires:  meson
BuildRequires:  pkgconfig
BuildRequires:  python3-gi-docgen >= 2021.1
BuildRequires:  python3-gobject
BuildRequires:  vala
BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(glib-2.0) >= 2.76
BuildRequires:  pkgconfig(gmodule-2.0)
BuildRequires:  pkgconfig(gobject-2.0)
BuildRequires:  pkgconfig(gobject-introspection-1.0)
BuildRequires:  pkgconfig(gtk4)
BuildRequires:  pkgconfig(lua)
BuildRequires:  pkgconfig(luajit)
BuildRequires:  pkgconfig(pygobject-3.0)
BuildRequires:  pkgconfig(python3)

%description
GPlugin is a GObject based library that implements a reusable plugin system.
It supports loading plugins in multiple other languages via loaders.  It relies
heavily on [GObjectIntrospection](https://gi.readthedocs.io/) to expose its API
to the other languages.

It has a simple API which makes it very easy to use in your application.
For more information on using GPlugin in your application, please see the
[embedding](https://docs.pidgin.im/gplugin/latest/chapter-embedding.html) page.

%package doc
Summary:        Documentation for %{name}
BuildArch:      noarch

%description doc
%{summary}.

%package devel
Summary:        Development files for %{name}
Requires:       lib%{name}%{sover} = %{version}
Requires:       lib%{name}-gtk4-%{sover} = %{version}
Requires:       typelib-1_0-GPlugin-1_0 = %{version}
Requires:       typelib-1_0-GPluginGtk4-1_0 = %{version}

%description devel
%{summary}.

%package -n lib%{name}%{sover}
Summary:        Library of %{name}

%description -n lib%{name}%{sover}
%{summary}.

%package -n typelib-1_0-GPlugin-1_0
Summary:        Typelib for %{name}

%description -n typelib-1_0-GPlugin-1_0
%{summary}.

%package -n typelib-1_0-GPluginGtk4-1_0
Summary:        Gtk4 Typelib for %{name}

%description -n typelib-1_0-GPluginGtk4-1_0
%{summary}.

%package -n lib%{name}-gtk4-%{sover}
Summary:        Gtk4 libs for %{name}

%description -n lib%{name}-gtk4-%{sover}
%{summary}.

%prep
%autosetup

%build
%meson \
  -Ddoc=true \
  -Dgplugin-introspection=false \
  -Dintrospection=true \
  -Dgtk4=enabled \
  -Dhelp2man=true \
  -Dinstall-gplugin-gtk4-viewer=true \
  -Dinstall-gplugin-query=true \
  -Dlua=true \
  -Dnls=true \
  -Dpython3=true \
  -Dvapi=true
%meson_build

%install
%meson_install
%fdupes %{buildroot}

%check
%meson_test

%ldconfig_scriptlets -n lib%{name}%{sover}
%ldconfig_scriptlets -n lib%{name}-gtk4-%{sover}

%files
%license COPYING
%doc README.md COPYRIGHT ChangeLog HACKING.md HISTORY.md
%{_bindir}/%{name}-gtk4-viewer
%{_bindir}/%{name}-query
%{_datadir}/%{name}
%{_mandir}/man?/%{name}-gtk4-viewer.?%{ext_man}
%{_mandir}/man?/%{name}-query.?%{ext_man}

%files devel
%{_includedir}/%{name}-1.0
%{_includedir}/%{name}-gtk4-1.0
%{_libdir}/lib%{name}.so
%{_libdir}/lib%{name}-gtk4.so
%{_libdir}/%{name}
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/%{name}-gtk4.pc
%{_datadir}/gir-1.0/GPlugin-1.0.gir
%{_datadir}/gir-1.0/GPluginGtk4-1.0.gir
%dir %{_datadir}/{vala,vala/vapi}
%{_datadir}/vala/vapi/%{name}.{deps,vapi}
%{_datadir}/vala/vapi/%{name}-gtk4.{deps,vapi}

%files doc
%{_datadir}/doc/%{name}
%{_datadir}/doc/%{name}-gtk4

%files -n typelib-1_0-GPlugin-1_0
%{_libdir}/girepository-1.0/GPlugin-1.0.typelib

%files -n typelib-1_0-GPluginGtk4-1_0
%{_libdir}/girepository-1.0/GPluginGtk4-1.0.typelib

%files -n lib%{name}%{sover}
%{_libdir}/lib%{name}.so.*

%files -n lib%{name}-gtk4-%{sover}
%{_libdir}/lib%{name}-gtk4.so.*

%changelog
openSUSE Build Service is sponsored by