Integrate G15 submodules with Debian 13 packaging and devcontainer

This commit is contained in:
Mikhail Yevchenko committed 2026-09-07 15:44:03 +03:00
commit 795db7924b
28 files changed
+714

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
# Local build overlay v1 (2026-09-07)
Applied only to temporary git archives. Original submodules are never patched.
All upstream Debian quilt series, including the daemon client buffer-overflow
fix and libg15 libusb-1.0 conversion, remain intact. Orig tarballs contain the
unpatched committed source; local upstream changes are additional quilt patches.
Debian metadata changes are carried in each emitted Debian tarball.
The daemon overlay backports the Debian 1.9.5.3-14.1 t64 control fields and
file renames; the builder compares control and the SONAME override against the
authenticated trixie source archive. G110 hotplug activation is added separately.
Macro: replace historical compat-5 CDBS with debhelper 13, remove obsolete
configure switches, obsolete watch file and redundant install manifest. Keep
copyright, historical provenance, manual and changelog. Autoreconf regenerates
the stale generated build system. The build patch removes an invalid bare -I
and makes map_gkey's historical implicit int parameter explicit (GCC 14).
Package upstream version is 1.0.5, matching configure.ac, not historical 1.0.3.
This is build compatibility, NOT a macro-engine security repair. Preexisting
unchecked configuration indices, string copies, recording bounds and incorrect
memory initialization remain. Do not run macro as root or consume untrusted
configuration. Hardware, X11 playback and booted systemd require separate tests.
The imported historical macro archive signature was not verified; its existing
debian/README.source preserves that limitation. No security certification is made.
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
# Called with cwd in a disposable git archive, NEVER a submodule.
set -euo pipefail
source=${1:?source} root=${2:?repository}
[[ ! -e .git && -f debian/control ]] || exit 1
case $source in
libg15|libg15render) ;;
g15daemon)
# shellcheck disable=SC2016 # Debian substvars must remain literal.
sed -i 's/^Build-Depends:$/Build-Depends: dpkg-dev (>= 1.22.5),/; s/libg15daemon-client1/libg15daemon-client1t64/g; /Package: libg15daemon-client1t64/a Provides: ${t64:Provides}\nReplaces: libg15daemon-client1\nBreaks: libg15daemon-client1 (<< ${source:Version})' debian/control
mv debian/libg15daemon-client1.install debian/libg15daemon-client1t64.install
mv debian/libg15daemon-client1.manpages debian/libg15daemon-client1t64.manpages
printf '%s\n' 'libg15daemon-client1t64: package-name-doesnt-match-sonames libg15daemon-client1' > debian/libg15daemon-client1t64.lintian-overrides
cat "$root/packaging/g110.udev" >> debian/g15daemon.udev
;;
g15macro)
cp "$root/packaging/overlays/v1/g15macro.control" debian/control
cp "$root/packaging/overlays/v1/g15macro.rules" debian/rules
chmod +x debian/rules
rm debian/compat debian/g15macro.install debian/watch
mkdir -p debian/source debian/patches
printf '3.0 (quilt)\n' > debian/source/format
cp "$root/packaging/overlays/v1/g15macro-build.patch" debian/patches/local-build.patch
printf 'local-build.patch\n' > debian/patches/series
;;
*) exit 1 ;;
esac
@@ -0,0 +1,19 @@
Description: Fix legacy build include switch and implicit-int declaration
Author: G15 packaging contributors
Forwarded: not-needed
Last-Update: 2026-09-07
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,7 +11,6 @@
image_DATA = ${top_builddir}/g15macro.wbmp
LIBS = -Wl,--no-add-needed -lg15daemon_client -lg15render -lX11 -lXtst -lpthread
-IMCLUDES = -I
g15macro_SOURCES = g15macro.c
--- a/g15macro.c
+++ b/g15macro.c
@@ -191,1 +191,1 @@
-int map_gkey(keystate){
+int map_gkey(int keystate){
+15
View File
@@ -0,0 +1,15 @@
Source: g15macro
Section: utils
Priority: optional
Maintainer: G15 packaging contributors <noreply@example.invalid>
Build-Depends: debhelper-compat (= 13), libxtst-dev, libg15-dev, libg15render-dev, libg15daemon-client-dev
Standards-Version: 4.7.0
Homepage: https://sourceforge.net/projects/g15tools/
Rules-Requires-Root: no
Package: g15macro
Architecture: any
Depends: g15daemon, ${shlibs:Depends}, ${misc:Depends}
Description: Macro recording/playback application for G15Daemon
G15macro records and plays back keyboard macros using the M and G keys
on Logitech G15 keyboards in an X11 session.
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh $@