Igor Gnatenko 969a29d
%bcond_without check
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
Name:           gplugin
0081f14
Version:        0.36.0
8e04b7f
Release:        %autorelease
Igor Gnatenko 969a29d
Summary:        GObject based library that implements a reusable plugin system
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
License:        LGPLv2+
0cf958b
URL:            https://keep.imfreedom.org/gplugin/gplugin
d1546af
Source0:        https://downloads.sourceforge.net/pidgin/%{name}-%{version}.tar.xz
d1546af
Source1:        https://downloads.sourceforge.net/pidgin/%{name}-%{version}.tar.xz.asc
c676815
Source2:        https://keybase.io/grim/pgp_keys.asc
Igor Gnatenko 969a29d
c676815
BuildRequires:  gnupg2
dc62322
BuildRequires:  meson >= 0.56.0
Igor Gnatenko 969a29d
BuildRequires:  gcc
dc62322
BuildRequires:  gi-docgen
ece15ca
BuildRequires:  /usr/bin/help2man
4baa767
BuildRequires:  pkgconfig(glib-2.0) >= 2.44.0
Igor Gnatenko 969a29d
BuildRequires:  pkgconfig(gobject-2.0)
Igor Gnatenko 969a29d
BuildRequires:  pkgconfig(gmodule-2.0)
ece15ca
BuildRequires:  gettext
Igor Gnatenko 969a29d
%if %{with check}
ece15ca
BuildRequires:  /usr/bin/gtester
Igor Gnatenko 969a29d
%endif
Igor Gnatenko 969a29d
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%description
Igor Gnatenko 969a29d
GPlugin is a GObject based library that implements a reusable plugin system
Igor Gnatenko 969a29d
which supports loading plugins in other languages via loaders.
792a93e
It relies heavily on GObject Introspection to expose its API to the other
Igor Gnatenko 969a29d
languages.
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
It has a very simple API which makes it very simple to use in your application.
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%package        libs
Igor Gnatenko 969a29d
Summary:        Library for %{name}
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%description    libs
Igor Gnatenko 969a29d
%{summary}.
Igor Gnatenko 969a29d
4baa767
%package        gtk3
4baa767
Summary:        GTK3 applications for %{name}
e7dab2e
BuildRequires:  pkgconfig(gtk+-3.0) >= 3.0.0
4baa767
Requires:       %{name}-gtk3-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
4baa767
# Remove after F37.
4baa767
Obsoletes:      gplugin-gtk < 0.35.0-1
Igor Gnatenko 969a29d
4baa767
%description    gtk3
Igor Gnatenko 969a29d
%{summary}.
Igor Gnatenko 969a29d
4baa767
%package        gtk3-libs
4baa767
Summary:        GTK3 libraries for %{name}
Igor Gnatenko 969a29d
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
4baa767
# Remove after F37.
4baa767
Obsoletes:      gplugin-gtk-libs < 0.35.0-1
Igor Gnatenko 969a29d
4baa767
%description    gtk3-libs
Igor Gnatenko 969a29d
%{summary}.
Igor Gnatenko 969a29d
0081f14
%package        gtk4
0081f14
Summary:        GTK4 applications for %{name}
0081f14
BuildRequires:  pkgconfig(gtk4) >= 4
0081f14
Requires:       %{name}-gtk4-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
0081f14
0081f14
%description    gtk4
0081f14
%{summary}.
0081f14
0081f14
%package        gtk4-libs
0081f14
Summary:        GTK4 libraries for %{name}
0081f14
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
0081f14
0081f14
%description    gtk4-libs
0081f14
%{summary}.
0081f14
Igor Gnatenko 969a29d
%package        loader-lua
Igor Gnatenko 969a29d
Summary:        Lua loader for %{name}
e7dab2e
BuildRequires:  pkgconfig(lua) >= 5.1.0
Igor Gnatenko 969a29d
BuildRequires:  lua-lgi
Igor Gnatenko 969a29d
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
d3360e4
Requires:       lua-lgi
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%description    loader-lua
Igor Gnatenko 969a29d
%{summary}.
Igor Gnatenko 969a29d
af828d8
%package        loader-perl
af828d8
Summary:        Perl loader for %{name}
af828d8
BuildRequires:  perl(ExtUtils::Embed)
af828d8
BuildRequires:  perl(Glib::MakeHelper)
af828d8
BuildRequires:  perl(Glib::Object::Introspection)
af828d8
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
d3360e4
Requires:       perl(Glib::Object::Introspection)
af828d8
af828d8
%description    loader-perl
af828d8
%{summary}.
af828d8
792a93e
%package        loader-python
792a93e
Summary:        Python loader for %{name}
792a93e
BuildRequires:  (pkgconfig(python3-embed) if python3 >= 3.8.0 else pkgconfig(python3))
792a93e
BuildRequires:  pkgconfig(pygobject-3.0) >= 3.0.0
792a93e
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
d3360e4
Requires:       pkgconfig(pygobject-3.0) >= 3.0.0
792a93e
792a93e
%description    loader-python
792a93e
%{summary}.
792a93e
Igor Gnatenko 969a29d
%package        devel
Igor Gnatenko 969a29d
Summary:        Development libraries and header files for %{name}-libs
Igor Gnatenko 969a29d
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%description    devel
Igor Gnatenko 969a29d
%{summary}.
Igor Gnatenko 969a29d
4baa767
%package        gtk3-devel
4baa767
Summary:        Development libraries and header files for %{name}-gtk3-libs
4baa767
Requires:       %{name}-gtk3-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
4baa767
# Remove after F37.
4baa767
Obsoletes:      gplugin-gtk-devel < 0.35.0-1
Igor Gnatenko 969a29d
4baa767
%description    gtk3-devel
Igor Gnatenko 969a29d
%{summary}.
Igor Gnatenko 969a29d
0081f14
%package        gtk4-devel
0081f14
Summary:        Development libraries and header files for %{name}-gtk4-libs
0081f14
Requires:       %{name}-gtk4-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
0081f14
0081f14
%description    gtk4-devel
0081f14
%{summary}.
0081f14
bc46cfa
%package        vala
bc46cfa
Summary:        Vala bindings for %{name}-libs
bc46cfa
BuildRequires:  vala
bc46cfa
Requires:       %{name}-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
bc46cfa
bc46cfa
%description    vala
bc46cfa
%{summary}.
bc46cfa
4baa767
%package        gtk3-vala
4baa767
Summary:        Vala bindings for %{name}-gtk3-libs
bc46cfa
Requires:       %{name}-vala%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
4baa767
# Remove after F37.
4baa767
Obsoletes:      gplugin-gtk-vala < 0.35.0-1
bc46cfa
4baa767
%description    gtk3-vala
bc46cfa
%{summary}.
bc46cfa
Igor Gnatenko 969a29d
%prep
c676815
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
8019403
%autosetup -p1
ece15ca
# We install docs ourselves
ece15ca
sed -i -e '/install_data/,+1 d' meson.build
125cecf
sed -i -e '/install_data/,+1 d' gplugin/share/valgrind/meson.build
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%build
e256971
%meson
ece15ca
%meson_build
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%install
ece15ca
%meson_install
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%if %{with check}
Igor Gnatenko 969a29d
%check
Igor Gnatenko 969a29d
# Everything is tested during build process...
ece15ca
%meson_test
Igor Gnatenko 969a29d
%endif
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%files
ece15ca
%{_bindir}/gplugin-query
ece15ca
%{_mandir}/man1/gplugin-query.1*
Igor Gnatenko 969a29d
Igor Gnatenko 969a29d
%files libs
Igor Gnatenko 969a29d
%license COPYING
e7dab2e
%doc ChangeLog README.md
dc62322
%{_libdir}/libgplugin.so.0
dc62322
%{_libdir}/libgplugin.so.0.*
ece15ca
%dir %{_libdir}/gplugin/
Igor Gnatenko 969a29d
%dir %{_libdir}/girepository-1.0
125cecf
%{_libdir}/girepository-1.0/GPlugin-1.0.typelib
Igor Gnatenko 969a29d
4baa767
%files gtk3
4baa767
%{_bindir}/gplugin-gtk3-viewer
4baa767
%{_mandir}/man1/gplugin-gtk3-viewer.1*
Igor Gnatenko 969a29d
4baa767
%files gtk3-libs
4baa767
%{_libdir}/libgplugin-gtk3.so.*
ece15ca
%dir %{_libdir}/girepository-1.0
4baa767
%{_libdir}/girepository-1.0/GPluginGtk3-1.0.typelib
Igor Gnatenko 969a29d
0081f14
%files gtk4
0081f14
%{_bindir}/gplugin-gtk4-viewer
0081f14
%{_mandir}/man1/gplugin-gtk4-viewer.1*
0081f14
0081f14
%files gtk4-libs
0081f14
%{_libdir}/libgplugin-gtk4.so.*
0081f14
%dir %{_libdir}/girepository-1.0
0081f14
%{_libdir}/girepository-1.0/GPluginGtk4-1.0.typelib
0081f14
Igor Gnatenko 969a29d
%files loader-lua
ece15ca
%{_libdir}/gplugin/gplugin-lua.so
Igor Gnatenko 969a29d
af828d8
%files loader-perl
af828d8
%{_libdir}/gplugin/gplugin-perl5.so
af828d8
792a93e
%files loader-python
125cecf
%{_libdir}/gplugin/gplugin-python3.so
792a93e
Igor Gnatenko 969a29d
%files devel
125cecf
%doc gplugin/share/valgrind/gplugin.supp
dc62322
%doc %{_docdir}/gplugin
ece15ca
%{_libdir}/libgplugin.so
ece15ca
%dir %{_includedir}/gplugin-1.0/
ece15ca
%{_includedir}/gplugin-1.0/gplugin/
ece15ca
%{_includedir}/gplugin-1.0/gplugin.h
ece15ca
%{_includedir}/gplugin-1.0/gplugin-native.h
ece15ca
%{_libdir}/pkgconfig/gplugin.pc
Igor Gnatenko 969a29d
%dir %{_datadir}/gir-1.0
125cecf
%{_datadir}/gir-1.0/GPlugin-1.0.gir
Igor Gnatenko 969a29d
4baa767
%files gtk3-devel
4baa767
%doc %{_docdir}/gplugin-gtk3
4baa767
%{_libdir}/libgplugin-gtk3.so
4baa767
%{_includedir}/gplugin-gtk3-1.0/
4baa767
%{_libdir}/pkgconfig/gplugin-gtk3.pc
ece15ca
%dir %{_datadir}/gir-1.0
4baa767
%{_datadir}/gir-1.0/GPluginGtk3-1.0.gir
ece15ca
%dir %{_datadir}/glade
ece15ca
%dir %{_datadir}/glade/catalogs
4baa767
%{_datadir}/glade/catalogs/gplugin-gtk3.xml
Igor Gnatenko 969a29d
0081f14
%files gtk4-devel
0081f14
%doc %{_docdir}/gplugin-gtk4
0081f14
%{_libdir}/libgplugin-gtk4.so
0081f14
%{_includedir}/gplugin-gtk4-1.0/
0081f14
%{_libdir}/pkgconfig/gplugin-gtk4.pc
0081f14
%dir %{_datadir}/gir-1.0
0081f14
%{_datadir}/gir-1.0/GPluginGtk4-1.0.gir
0081f14
bc46cfa
%files vala
bc46cfa
%dir %{_datadir}/vala
bc46cfa
%dir %{_datadir}/vala/vapi
bc46cfa
%{_datadir}/vala/vapi/gplugin.deps
bc46cfa
%{_datadir}/vala/vapi/gplugin.vapi
bc46cfa
4baa767
%files gtk3-vala
4baa767
%{_datadir}/vala/vapi/gplugin-gtk3.deps
4baa767
%{_datadir}/vala/vapi/gplugin-gtk3.vapi
bc46cfa
Igor Gnatenko 969a29d
%changelog
8e04b7f
%autochangelog