This document describes the distribution workflow for gstklvplugin when you
want to hand the project to third parties as an installable package instead of
asking them to build from a source checkout.
The current repository ships a Debian-family packaging helper. That makes it a good fit for:
- Debian
- Ubuntu
- Raspberry Pi OS
- other Debian-derived ARM and x86 Linux distributions
The packaged runtime currently contains:
gstklvplugin.sostanag4609_tags.ini- basic project documentation under
/usr/share/doc/gstklvplugin/
The package is built from the Meson install layout, so the runtime contents match the normal system installation path.
From the repository root:
./packaging/deb/build_deb.shThe resulting package is written to:
packaging/out/
Typical filename:
packaging/out/gstklvplugin_1.0.0_amd64.deb
With validation enabled:
./packaging/deb/build_deb.sh --run-checksIf you want to skip Doxygen during that validation pass:
./packaging/deb/build_deb.sh --run-checks --skip-doxygenOn Debian-family systems:
sudo apt install ./packaging/out/gstklvplugin_1.0.0_amd64.debOr with dpkg:
sudo dpkg -i ./packaging/out/gstklvplugin_1.0.0_amd64.debThen verify:
gst-inspect-1.0 --plugin klvplugin
gst-inspect-1.0 --exists klvmetaencFor a native build on a Raspberry Pi, no project-side Meson changes are needed.
That is because:
- Meson already installs the plugin under
libdir/gstreamer-1.0 - on Debian-family ARM systems,
libdirresolves to the correct multiarch path - the package script reads the Debian architecture dynamically
So the same command works on Raspberry Pi OS:
./packaging/deb/build_deb.shThe generated package architecture depends on the OS image:
- Raspberry Pi OS 32-bit: typically
armhf - Raspberry Pi OS 64-bit: typically
arm64
The CMake install path was also updated to use ${CMAKE_INSTALL_LIBDIR}, so
manual CMake installs now follow the correct multiarch path on ARM as well.
Important distinction:
- native build on the Raspberry Pi: supported directly
- cross-compiling from another machine to Raspberry Pi: possible, but that still needs a target sysroot and a Meson cross file that this repo does not currently ship
The Debian package helper:
- detects the architecture with
dpkg-architecture - computes shared-library dependencies with
dpkg-shlibdeps - stages the Meson install tree before building the final
.deb
That means the output package is architecture-aware and suitable for the machine that built it, including ARM boards.
- doc/installation.md — manual and automatic installation workflows
- doc/tests.md — unit and smoke tests
README.md(repository root) — top-level project overview