# HG changeset patch
# Node ID f4612e3fd50e
# Parent  b4b2c4d16058
diff --git a/convey.yml b/convey.yml
--- a/convey.yml
+++ b/convey.yml
@@ -11,22 +11,20 @@
     type: convey/clean
     files:
       - alpine-edge-amd64
-      - debian-bullseye-amd64
-      - debian-bullseye-arm64
-      - debian-bullseye-armhf
       - debian-bookworm-amd64
+      - debian-bookworm-arm64
+      - debian-bookworm-armhf
       - dist
       - fedora-34-amd64
       - fedora-rawhide-amd64
       - i18n
       - opensuse-tumbleweed-amd64
-      - pvs-studio
       - scanbuild
       - ubuntu-hirsute-amd64
       - valgrind
-      # docs
       - gplugin-docs
       - gplugin-gtk3-docs
+      - gplugin-gtk4-docs
 
   import:
     type: docker/import
@@ -72,6 +70,7 @@
     files:
       - build-docs/gplugin/reference/gplugin:gplugin-docs
       - build-docs/gplugin-gtk3/reference/gplugin-gtk3:gplugin-gtk3-docs
+      - build-docs/gplugin-gtk4/reference/gplugin-gtk4:gplugin-gtk4-docs
 
 plans:
   clean:
@@ -92,17 +91,12 @@
     environment: TARGET=debian-bookworm-amd64
     stages:
       - tasks: [import, build, export]
-
-  debian-bullseye-amd64:
-    environment: TARGET=debian-bullseye-amd64
+  debian-bookworm-arm64:
+    environment: TARGET=debian-bookworm-arm64
     stages:
       - tasks: [import, build, export]
-  debian-bullseye-arm64:
-    environment: TARGET=debian-bullseye-arm64
-    stages:
-      - tasks: [import, build, export]
-  debian-bullseye-armhf:
-    environment: TARGET=debian-bullseye-armhf
+  debian-bookworm-armhf:
+    environment: TARGET=debian-bookworm-armhf
     stages:
       - tasks: [import, build, export]
 
@@ -134,17 +128,6 @@
     stages:
       - tasks: [import, build, export]
 
-  pvs-studio:
-    environment:
-      - TARGET=pvs-studio
-      - PVS_STUDIO_USERNAME
-      - PVS_STUDIO_KEY
-      - PVS_IGNORED_CODES=V568
-    stages:
-      - tasks: [import, build]
-      - tasks: [export]
-        run: always
-
   scanbuild:
     environment: TARGET=scanbuild
     stages:
@@ -173,7 +156,6 @@
   all:
     plans:
       - alpine-edge-amd64
-      - debian-bullseye-amd64
       - debian-bookworm-amd64
       - dist
       - fedora-34-amd64
@@ -184,12 +166,11 @@
     plans:
       - clang-format
       - i18n
-      - pvs-studio
       - scanbuild
       - valgrind
       - simple
   qemu-user-static:
     plans:
-      - debian-bullseye-arm64
-      - debian-bullseye-armhf
+      - debian-bookworm-arm64
+      - debian-bookworm-armhf
 
diff --git a/packaging/debian/control b/packaging/debian/control
--- a/packaging/debian/control
+++ b/packaging/debian/control
@@ -3,7 +3,8 @@
 Priority: optional
 Maintainer: Gary Kramlich <grim@reaperworld.com>
 Build-Depends: debhelper (>=9),
-               meson (>=0.56.0), libglib2.0-dev, libgtk-3-dev,
+               meson (>=0.56.0), libglib2.0-dev,
+               libgtk-3-dev, libgtk-4-dev,
                gettext, help2man,
                gobject-introspection, libgirepository1.0-dev,
                liblua5.3-dev, lua-lgi,
@@ -47,6 +48,18 @@
  .
  This package includes the files used for development against libgplugin.
 
+Package: gir1.2-gplugin-1.0
+Architecture: any
+Depends: ${gir:Depends}, ${misc:Depends}, libgplugin0
+Section: introspection
+Description: typelib for libgplugin
+ GPlugin is a GObject based library that implements a reusable plugin system
+ which supports loading plugins in other languages via loaders. It relies
+ heavily on GObjectIntrospection to expose its API to the other languages.
+ .
+ This package can be used by other packages using the GIRepository format to
+ generate dynamic bindings for libgplugin.
+
 Package: libgplugin-loaders
 Architecture: all
 Depends: ${misc:Depends}, ${shlibs:Depends},
@@ -98,25 +111,13 @@
  .
  This package contains the gplugin-gtk3-viewer application for viewing plugins.
 
-Package: gir1.2-gplugin-1.0
-Architecture: any
-Depends: ${gir:Depends}, ${misc:Depends}, libgplugin0
-Section: introspection
-Description: typelibe for libgplugin
- GPlugin is a GObject based library that implements a reusable plugin system
- which supports loading plugins in other languages via loaders. It relies
- heavily on GObjectIntrospection to expose its API to the other languages.
- .
- This package can be used by other packages using the GIRepository format to
- generate dynamic bindings for libgplugin.
-
 Package: gir1.2-gplugin-gtk3-1.0
 Architecture: any
 Depends: ${gir:Depends}, ${misc:Depends}, libgplugin0, libgplugin-gtk3-0
 Conflicts: gir1.2-gplugin-gtk-1.0
 Replaces: gir1.2-gplugin-gtk-1.0
 Section: introspection
-Description: typelibe for libgplugin
+Description: typelib for libgplugin
  GPlugin is a GObject based library that implements a reusable plugin system
  which supports loading plugins in other languages via loaders. It relies
  heavily on GObjectIntrospection to expose its API to the other languages.
@@ -124,6 +125,41 @@
  This package can be used by other packages using the GIRepository format to
  generate dynamic bindings for libgplugin-gtk3.
 
+Package: libgplugin-gtk4-0
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}, libgtk-4-1, libgplugin0
+Description: GTK3 bindings for GPlugin
+ GPlugin is a GObject based library that implements a reusable plugin system
+ which supports loading plugins in other languages via loaders. It relies
+ heavily on GObjectIntrospection to expose its API to the other languages.
+ .
+ This library provides some default GTK4 widgets for GPlugin.
+
+Package: libgplugin-gtk4-dev
+Architecture: any
+Section: libdevel
+Depends: ${misc:Depends}, libgtk-4-dev, libgplugin-gtk4-0 (= ${binary:Version})
+Conflicts: libgplugin-gtk-dev
+Replaces: libgplugin-gtk-dev
+Description: Development file for libgplugin-gtk4-0
+ GPlugin is a GObject based library that implements a reusable plugin system
+ which supports loading plugins in other languages via loaders. It relies
+ heavily on GObjectIntrospection to expose its API to the other languages.
+ .
+ This library provides the developmental headers for the GPlugin GTK4 bindings.
+
+Package: gir1.2-gplugin-gtk4-1.0
+Architecture: any
+Depends: ${gir:Depends}, ${misc:Depends}, libgplugin0, libgplugin-gtk4-0
+Section: introspection
+Description: typelib for libgplugin
+ GPlugin is a GObject based library that implements a reusable plugin system
+ which supports loading plugins in other languages via loaders. It relies
+ heavily on GObjectIntrospection to expose its API to the other languages.
+ .
+ This package can be used by other packages using the GIRepository format to
+ generate dynamic bindings for libgplugin-gtk4.
+
 Package: libgplugin-lua
 Architecture: any
 Depends: ${misc:Depends}, ${shlibs:Depends}, liblua5.1-0,
diff --git a/packaging/debian/gir1.2-gplugin-gtk4-1.0.install b/packaging/debian/gir1.2-gplugin-gtk4-1.0.install
new file mode 100644
--- /dev/null
+++ b/packaging/debian/gir1.2-gplugin-gtk4-1.0.install
@@ -0,0 +1,1 @@
+debian/tmp/usr/lib/*/girepository-1.0/GPluginGtk4-1.0.typelib
diff --git a/packaging/debian/libgplugin-gtk4-0.install b/packaging/debian/libgplugin-gtk4-0.install
new file mode 100644
--- /dev/null
+++ b/packaging/debian/libgplugin-gtk4-0.install
@@ -0,0 +1,1 @@
+debian/tmp/usr/lib/*/libgplugin-gtk4.so.*
diff --git a/packaging/debian/libgplugin-gtk4-0.triggers b/packaging/debian/libgplugin-gtk4-0.triggers
new file mode 100644
--- /dev/null
+++ b/packaging/debian/libgplugin-gtk4-0.triggers
@@ -0,0 +1,1 @@
+activate-noawait ldconfig
diff --git a/packaging/debian/libgplugin-gtk4-dev.install b/packaging/debian/libgplugin-gtk4-dev.install
new file mode 100644
--- /dev/null
+++ b/packaging/debian/libgplugin-gtk4-dev.install
@@ -0,0 +1,7 @@
+usr/include/gplugin-gtk4-1.0/gplugin-gtk
+usr/include/gplugin-gtk4-1.0/gplugin-gtk.h
+debian/tmp/usr/lib/*/libgplugin-gtk4.so
+debian/tmp/usr/lib/*/pkgconfig/gplugin-gtk4.pc
+debian/tmp/usr/share/gir-1.0/GPluginGtk3-1.0.gir
+debian/tmp/usr/share/vala/vapi/gplugin-gtk4.deps
+debian/tmp/usr/share/vala/vapi/gplugin-gtk4.vapi
diff --git a/packaging/gplugin.spec.in b/packaging/gplugin.spec.in
--- a/packaging/gplugin.spec.in
+++ b/packaging/gplugin.spec.in
@@ -15,6 +15,7 @@
 BuildRequires:	gobject-introspection-devel
 BuildRequires:	gettext
 BuildRequires:	gtk3-devel
+BuildRequires:	gtk4-devel
 BuildRequires:	help2man
 BuildRequires:	libxslt
 BuildRequires:	lua-devel
@@ -56,6 +57,16 @@
 Requires:	%{name}-gtk3%{?_isa} = %{version}-%{release}
 Requires:	%{name}-devel%{?_isa} = %{version}-%{release}
 
+%package gtk4
+Summary:	A GObject based library that implements a reusable plugin system
+Group:		Development/Libraries
+
+%package gtk4-devel
+Summary:	A GObject based library that implements a reusable plugin system
+Group:		Development/Libraries
+Requires:	%{name}-gtk4%{?_isa} = %{version}-%{release}
+Requires:	%{name}-devel%{?_isa} = %{version}-%{release}
+
 %package lua
 Summary:	A GObject based library that implements a reusable plugin system
 Group:		Development/Libraries
@@ -111,9 +122,24 @@
 that supports loading plugins in other languages via loaders.  GPlugin also
 implements dependencies among the plugins.
 
-This package contains the vapi bindings allowing GPluginGtk to be used from
+This package contains the vapi bindings allowing GPluginGtk3 to be used from
 vala.
 
+%description gtk4
+GPlugin is a GObject based library that implements a reusable plugin system
+that supports loading plugins in other languages via loaders.  GPlugin also
+implements dependencies among the plugins.
+
+This package contains additional GTK4 dependencies for %{name} library.
+
+%description gtk4-devel
+GPlugin is a GObject based library that implements a reusable plugin system
+that supports loading plugins in other languages via loaders.  GPlugin also
+implements dependencies among the plugins.
+
+This package contains all necessary include files and libraries needed
+to develop GTK4 applications that require these.
+
 %description lua
 GPlugin is a GObject based library that implements a reusable plugin system
 that supports loading plugins in other languages via loaders.  GPlugin also
@@ -219,6 +245,25 @@
 %{_datadir}/vala/vapi/gplugin-gtk3.vapi
 %{_datadir}/vala/vapi/gplugin-gtk3.deps
 
+%files gtk4
+%defattr(-,root,root)
+%doc README.md
+%license COPYING
+%{_libdir}/libgplugin-gtk4.so.0.1.0
+
+%files gtk4-devel
+%defattr(-,root,root)
+%dir %{_datadir}/glade/catalogs/
+%doc README.md
+%license COPYING
+%{_datadir}/gir-1.0/GPluginGtk4-1.0.gir
+%{_datadir}/doc/gplugin-gtk4/
+%{_includedir}/gplugin-gtk4-1.0/
+%{_libdir}/girepository-1.0/GPluginGtk4-1.0.typelib
+%{_libdir}/libgplugin-gtk4.so
+%{_libdir}/libgplugin-gtk4.so.0
+%{_libdir}/pkgconfig/gplugin-gtk4.pc
+
 %files lua
 %defattr(-,root,root)
 %doc README.md
