Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/rtpproxy_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,43 @@ jobs:
- name: build
run: sh -x ./scripts/do-build.sh cleanbuild

DebianPackage:
name: Debian package build
needs: LoadJobs_conf
if: needs.LoadJobs_conf.outputs.do_MinBuild == 'true'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install build tools
run: |
sudo apt-get update
sudo apt-get install -y build-essential devscripts debhelper pkg-config libssl-dev libbcg729-dev libgsm1-dev libsndfile1-dev libunwind-dev libsrtp2-dev fakeroot
- name: Build Debian package
env:
DEB_BUILD_OPTIONS: nocheck
run: |
dpkg-buildpackage -us -uc -b

- name: Test install Debian packages
run: |
set -euo pipefail
shopt -s nullglob
pkgs=(../*.deb)
if [ "${#pkgs[@]}" -eq 0 ]; then
echo "No Debian packages produced" >&2
exit 1
fi
sudo apt-get install -y "${pkgs[@]}"

- name: Upload Debian packages
uses: actions/upload-artifact@v4
with:
name: rtpproxy-debian-packages
path: ../*.deb
if-no-files-found: error

FullBuild:
name: Full Build
needs: [LoadJobs_conf, MinBuild]
Expand Down
20 changes: 20 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
rtpproxy (3.1+dev1) unstable; urgency=medium

* Build librtpproxy during package configuration and ship a new
rtpproxy-dev package with the static archive and public header.
* Add optional audio and unwind build dependencies required by the
librtpproxy-enabled build.
* Split debugging helpers and *_debug modules into the rtpproxy-debug
binary package.
* Ship the DTLS gateway and ICE lite modules in their respective
runtime and debug packages to avoid missing-file warnings.
* Depend on libsrtp2 during the build so the crypto modules are
compiled and available for packaging.

-- Maxim Sobolev <sobomax@sippysoft.com> Wed, 15 May 2024 00:00:00 +0000

rtpproxy (3.1) unstable; urgency=medium

* Initial release of Debian packaging skeleton.

-- Maxim Sobolev <sobomax@sippysoft.com> Wed, 15 May 2024 00:00:00 +0000
47 changes: 47 additions & 0 deletions debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
Source: rtpproxy
Section: net
Priority: optional
Maintainer: Maxim Sobolev <sobomax@sippysoft.com>
Build-Depends: debhelper-compat (= 13),
pkg-config,
libssl-dev,
libbcg729-dev,
libgsm1-dev,
libsndfile1-dev,
libunwind-dev,
libsrtp2-dev
Standards-Version: 4.6.2
Homepage: https://github.com/sippy/rtpproxy
Vcs-Git: https://github.com/sippy/rtpproxy.git
Vcs-Browser: https://github.com/sippy/rtpproxy
Rules-Requires-Root: no

Package: rtpproxy
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: High-performance SIP RTP media proxy
RTPProxy is a high-performance, scalable media relay designed for
SIP-based applications. It supports advanced media handling features
such as secure RTP, codec transcoding modules, and high availability
deployments.

Package: rtpproxy-debug
Section: debug
Architecture: any
Depends: ${misc:Depends}, rtpproxy (= ${binary:Version})
Multi-Arch: same
Description: Debug helpers and modules for RTPProxy
This package provides the debugging-friendly binaries and modules for
RTPProxy, including the rtpproxy_debug control tool, UDP contention
tester, and the *_debug.so plugin variants.

Package: rtpproxy-dev
Section: libdevel
Architecture: any
Depends: ${misc:Depends}, rtpproxy (= ${binary:Version})
Multi-Arch: same
Description: Development files for librtpproxy instrumentation library
librtpproxy exposes the internal RTPProxy engine to external tooling
for instrumentation and advanced control. This development package
ships the static archive and public header needed to link against the
library.
30 changes: 30 additions & 0 deletions debian/copyright
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: rtpproxy
Upstream-Contact: Maxim Sobolev <sobomax@sippysoft.com>
Source: https://github.com/sippy/rtpproxy

Files: *
Copyright: 2004-2006 Maxim Sobolev <sobomax@FreeBSD.org>
2006-2019 Sippy Software, Inc. <https://www.sippysoft.com/>
License: BSD-2-Clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
.
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
7 changes: 7 additions & 0 deletions debian/rtpproxy-debug.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
usr/bin/rtpproxy_debug
usr/bin/udp_contention
usr/lib/*/rtpproxy/rtpp_acct_csv_debug.so
usr/lib/*/rtpproxy/rtpp_acct_rtcp_hep_debug.so
usr/lib/*/rtpproxy/rtpp_catch_dtmf_debug.so
usr/lib/*/rtpproxy/rtpp_dtls_gw_debug.so
usr/lib/*/rtpproxy/rtpp_ice_lite_debug.so
2 changes: 2 additions & 0 deletions debian/rtpproxy-dev.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
usr/include/librtpproxy.h
usr/lib/*/librtpproxy.a
1 change: 1 addition & 0 deletions debian/rtpproxy.examples
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
doc/rtpproxy.conf.sample
8 changes: 8 additions & 0 deletions debian/rtpproxy.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
usr/bin/makeann
usr/bin/extractaudio
usr/bin/rtpproxy
usr/lib/*/rtpproxy/rtpp_acct_csv.so
usr/lib/*/rtpproxy/rtpp_acct_rtcp_hep.so
usr/lib/*/rtpproxy/rtpp_catch_dtmf.so
usr/lib/*/rtpproxy/rtpp_dtls_gw.so
usr/lib/*/rtpproxy/rtpp_ice_lite.so
1 change: 1 addition & 0 deletions debian/rtpproxy.manpages
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rtpproxy.8
24 changes: 24 additions & 0 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/make -f

%:
dh $@

override_dh_auto_configure:
dh_auto_configure -- --enable-librtpproxy

override_dh_update_autotools_config:
@echo "Skipping autotools config update"

override_dh_autoreconf:
@echo "Skipping autoreconf; using bundled configure script"

override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

execute_after_dh_auto_install:
rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/rtpproxy/*.la
rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/librtpproxy.la
rm -f debian/tmp/usr/share/man/man8/rtpproxy.8

override_dh_auto_test:
@echo "Skipping upstream tests for package build"
1 change: 1 addition & 0 deletions debian/source/format
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.0 (native)
3 changes: 3 additions & 0 deletions debian/watch
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
version=4
opts=filenamemangle=s/.+\/v?(\d[^/]+)\.tar\.gz/rtpproxy-$1\.tar.gz/ \
https://github.com/sippy/rtpproxy/releases .*/archive/refs/tags/v?(\d[^/]+)\.tar\.gz
20 changes: 20 additions & 0 deletions doc/rtpproxy.conf.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Example rtpproxy configuration file in UCL format.
#
# Enable accounting modules and point them to the shared objects
# shipped with the Debian rtpproxy package. Comment or remove any
# modules you do not plan to use.
modules {
acct_csv {
load = /usr/lib/x86_64-linux-gnu/rtpproxy/rtpp_acct_csv.so
logfile = /var/log/rtpproxy/rtpproxy.csv
}

# Forward RTCP reports to a HEP collector.
acct_rtcp_hep {
load = /usr/lib/x86_64-linux-gnu/rtpproxy/rtpp_acct_rtcp_hep.so
capt_host = 127.0.0.1
capt_port = 9060
capt_ptype = udp
capt_id = 101
}
}
Loading