add debian package support master
authorFelix Fietkau <[email protected]>
Tue, 21 Oct 2025 09:48:01 +0000 (09:48 +0000)
committerFelix Fietkau <[email protected]>
Tue, 21 Oct 2025 13:09:54 +0000 (15:09 +0200)
Signed-off-by: Felix Fietkau <[email protected]>
.gitignore
CMakeLists.txt
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/generate-changelog.sh [new file with mode: 0755]
debian/libudebug-dev.install [new file with mode: 0644]
debian/libudebug.install [new file with mode: 0644]
debian/lintian-overrides [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/source/format [new file with mode: 0644]
debian/udebugd.install [new file with mode: 0644]

index a05f812b7db2c0871e892837d0b5aacbb2eb6bef..7acb577706cec5a4a4fc54973d76f40fa16c25b9 100644 (file)
@@ -11,3 +11,14 @@ test-source
 test-receiver
 test-pcap
 install_manifest.txt
+obj-*
+debian/.debhelper/
+debian/debhelper-build-stamp
+debian/*.debhelper.log
+debian/*.substvars
+debian/files
+debian/libudebug/
+debian/libudebug-dev/
+debian/udebugd/
+debian/changelog
+debian/tmp/
index 856fc2c20dbffa08a111cc1ed9d9e00491d8acc2..207d17ad8c8de7347cc75f893af668bff39b4726 100644 (file)
@@ -43,3 +43,11 @@ INSTALL(TARGETS udebugd udebug
 INSTALL(TARGETS ucode_lib
        LIBRARY DESTINATION lib/ucode
 )
+
+ADD_CUSTOM_TARGET(debian
+       COMMAND ${CMAKE_COMMAND} -E echo "Generating debian/changelog from git..."
+       COMMAND ${CMAKE_SOURCE_DIR}/debian/generate-changelog.sh
+       COMMAND dpkg-buildpackage -b -uc -us
+       WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+       COMMENT "Building Debian package"
+)
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..7196293
--- /dev/null
@@ -0,0 +1,48 @@
+Source: udebug
+Maintainer: Felix Fietkau <[email protected]>
+Section: libs
+Priority: optional
+Standards-Version: 4.5.0
+Rules-Requires-Root: no
+Build-Depends: debhelper-compat (= 12), cmake, pkgconf, libubox-dev
+Homepage: https://git.openwrt.org/project/udebug.git
+Vcs-Browser: https://git.openwrt.org/project/udebug.git
+Vcs-Git: https://git.openwrt.org/project/udebug.git
+
+Package: libudebug
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Section: libs
+Description: OpenWrt debug ring buffer library
+ Libudebug is a debug ring buffer library used by OpenWrt. It provides
+ facilities for debug message collection, filtering, and export to pcap
+ format for analysis.
+ .
+ This package contains the shared library libudebug.
+
+Package: libudebug-dev
+Architecture: any
+Multi-Arch: same
+Depends: libudebug (= ${binary:Version}), libc6-dev|libc-dev, libubox-dev, ${misc:Depends}
+Section: libdevel
+Description: Development files for libudebug
+ Libudebug is a debug ring buffer library used by OpenWrt. It provides
+ facilities for debug message collection, filtering, and export to pcap
+ format for analysis.
+ .
+ This package contains the development files (headers and symlinks)
+ for libudebug.
+
+Package: udebugd
+Architecture: any
+Multi-Arch: foreign
+Depends: libudebug (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: OpenWrt debug ring buffer daemon and utilities
+ Libudebug is a debug ring buffer library used by OpenWrt. It provides
+ facilities for debug message collection, filtering, and export to pcap
+ format for analysis.
+ .
+ This package contains the udebugd daemon, udebug-cli utility, and the
+ ucode module for accessing debug ring buffers.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..489061d
--- /dev/null
@@ -0,0 +1,19 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: udebug
+Source: https://git.openwrt.org/project/udebug.git
+
+Files: *
+Copyright: 2024- Felix Fietkau <[email protected]>
+License: ISC
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/debian/generate-changelog.sh b/debian/generate-changelog.sh
new file mode 100755 (executable)
index 0000000..762b22f
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+cd "$(dirname "$0")/.."
+
+COMMIT_DATE=$(git log -1 --format='%cd' --date=format:'%Y%m%d' 2>/dev/null || echo '00000000')
+COMMIT_HASH=$(git log -1 --format='%h' 2>/dev/null || echo 'unknown')
+COMMIT_TIMESTAMP=$(git log -1 --format='%cd' --date=rfc2822 2>/dev/null || date -R)
+
+cat > debian/changelog <<EOF
+udebug (0.0.${COMMIT_DATE}) unstable; urgency=medium
+
+  * Latest version (${COMMIT_HASH})
+
+ -- Felix Fietkau <[email protected]>  ${COMMIT_TIMESTAMP}
+EOF
diff --git a/debian/libudebug-dev.install b/debian/libudebug-dev.install
new file mode 100644 (file)
index 0000000..5a84cdb
--- /dev/null
@@ -0,0 +1,3 @@
+usr/include/udebug.h
+usr/include/udebug-pcap.h
+usr/lib/libudebug.so
diff --git a/debian/libudebug.install b/debian/libudebug.install
new file mode 100644 (file)
index 0000000..86f97ac
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/libudebug.so.*
diff --git a/debian/lintian-overrides b/debian/lintian-overrides
new file mode 100644 (file)
index 0000000..7662288
--- /dev/null
@@ -0,0 +1 @@
+no-manual-page
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..4b8a112
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+BUILD_DIR = obj-$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+%:
+       dh $@ --builddirectory=$(BUILD_DIR)
+
+override_dh_auto_clean:
+       dh_auto_clean --builddirectory=$(BUILD_DIR)
+       rm -rf $(BUILD_DIR)
+
+override_dh_auto_configure:
+       cmake -S . -B $(BUILD_DIR) \
+               -DCMAKE_INSTALL_PREFIX=/usr \
+               -DCMAKE_BUILD_TYPE=None \
+               -DCMAKE_VERBOSE_MAKEFILE=ON \
+               -DABIVERSION=$(shell dpkg-parsechangelog | sed -rne 's/^Version: 0\.0\.([0-9]+).*$$/\1/p') \
+               -DRUNSTATEDIR=/run
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..89ae9db
--- /dev/null
@@ -0,0 +1 @@
+3.0 (native)
diff --git a/debian/udebugd.install b/debian/udebugd.install
new file mode 100644 (file)
index 0000000..e6f0042
--- /dev/null
@@ -0,0 +1,3 @@
+usr/sbin/udebugd
+usr/sbin/udebug
+usr/lib/ucode/udebug.so