kamailio (5.7.4-1) unstable; urgency=medium
authorVictor Seva <vseva@debian.org>
Fri, 19 Jan 2024 11:20:37 +0000 (12:20 +0100)
committerVictor Seva <vseva@debian.org>
Fri, 19 Jan 2024 11:20:37 +0000 (12:20 +0100)
  * New upstream version 5.7.4
  * refresh patches

[dgit import unpatched kamailio 5.7.4-1]

28 files changed:
1  2 
debian/backports/jessie
debian/backports/stretch
debian/backports/wheezy
debian/changelog
debian/control
debian/copyright
debian/gdb.conf
debian/kamailio.README.Debian
debian/kamailio.default
debian/kamailio.examples
debian/kamailio.init
debian/kamailio.lintian-overrides
debian/kamailio.postinst
debian/kamailio.service
debian/lintian-overrides
debian/patches/0001-Stop-setting-march-on-arm.patch
debian/patches/fix_export.patch
debian/patches/no_INSTALL_file.patch
debian/patches/no_lib64_on_64_bits.patch
debian/patches/no_tls_openssl_mutex_shared_util.patch
debian/patches/series
debian/patches/upstream/dialplan-migrate-to-pcre2.patch
debian/patches/upstream/lcr-pcre2-migration.patch
debian/patches/upstream/regex-migration-to-pcre2.patch
debian/rules
debian/source/format
debian/upstream/metadata
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ce56065c82fe03ef45d0b34fd7c5bbb1e1fcbb10
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,48 @@@
++#!/bin/bash
++#
++# Hook for automatic backports at buildserver.net
++#
++# Target dist: Debian Jessie
++DIST=jessie
++
++# No mi_xmlrpc module
++sed -i -e '/libxmlrpc-c3-dev/d' -e '/^Package: kamailio-xmlrpc-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ mi_xmlrpc[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mi_xmlrpc/' ${DIST}/rules
++
++# use old libfreeradius
++sed -i 's/libradcli-dev/libfreeradius-client-dev/' ${DIST}/control
++sed -i -e 's/RADCLI/FREERADIUS/' ${DIST}/rules
++
++# old mysql
++sed -i -e 's/default-mysql-client/mysql-client/' \
++  -e 's/default-libmysqlclient-dev/libmysqlclient-dev/' ${DIST}/control
++echo "kamailio source: build-depends-on-obsolete-package build-depends: libmysqlclient-dev => default-libmysqlclient-dev" >> \
++      ${DIST}/source.lintian-overrides
++echo "kamailio-mysql-modules: depends-on-obsolete-package depends: mysql-client => default-mysql-client" >> \
++      ${DIST}/kamailio-mysql-modules.lintian-overrides
++
++# no libssl-dev
++sed -i -e '/libssl-dev/d' ${DIST}/control
++
++# No geoip2 module
++sed -i -e '/libmaxminddb-dev/d' -e '/^Package: kamailio-geoip2-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ geoip2[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ geoip2/' ${DIST}/rules
++
++# No phonenum module
++sed -i -e '/libphonenumber-dev/d' -e '/^Package: kamailio-phonenum-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ phonenum[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ phonenum/' ${DIST}/rules
++
++# Mo mongodb
++sed -i -e '/libmongoc-dev/d' -e '/^Package: kamailio-mongodb-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ mongodb[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mongodb/' ${DIST}/rules
++
++wrap-and-sort -sat -d ${DIST}
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..111079c5552698d9cc2bbfbca95e4097dccd2c30
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++#!/bin/bash
++#
++# Target dist: Debian Stretch
++DIST=stretch
++
++# No mi_xmlrpc module
++sed -i -e '/libxmlrpc-c3-dev/d' -e '/^Package: kamailio-xmlrpc-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ mi_xmlrpc[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mi_xmlrpc/' ${DIST}/rules
++
++# No dnssec module:
++sed -i -e '/libval-dev/d' -e '/^Package: kamailio-dnssec-modules/,/^$/d' \
++  ${DIST}/control
++sed -i -e 's/ dnssec[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ dnssec/' ${DIST}/rules
++
++# libbson not in libmongoc
++sed -i 's/libmongoc-dev/libbson-dev,\n libmongoc-dev/' \
++      ${DIST}/control
++
++wrap-and-sort -sat -d ${DIST}
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4ac45e0dd3001902195605381e2c35d2c3e7e05e
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,83 @@@
++#!/bin/bash
++#
++# Target dist: Debian Wheezy
++DIST=wheezy
++
++# No systemd
++sed -i -e '/dh-systemd/d' ${DIST}/control
++sed -i -e '/dh_systemd/d' ${DIST}/rules
++rm ${DIST}/kamailio.service
++
++# No mi_xmlrpc module
++sed -i -e '/libxmlrpc-c3-dev/d' -e '/^Package: kamailio-xmlrpc-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ mi_xmlrpc[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mi_xmlrpc/' ${DIST}/rules
++
++# No dnssec module:
++sed -i -e '/libval-dev/d' -e '/^Package: kamailio-dnssec-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ dnssec[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ dnssec/' ${DIST}/rules
++
++# use old radius-client-ng
++sed -i 's/libradcli-dev/libradiusclient-ng-dev/' ${DIST}/control
++sed -i -e '/RADCLI/d' ${DIST}/rules
++
++# use old json
++sed -i 's/libjson-c-dev/libjson0-dev/' ${DIST}/control
++
++# no kazoo module
++sed -i -e '/librabbitmq-dev/d' -e '/^Package: kamailio-kazoo-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ kazoo[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ kazoo/' ${DIST}/rules
++
++# no cnxcc module
++sed -i -e '/^Package: kamailio-cnxcc-modules/,/^$/d' ${DIST}/control
++sed -i -e 's/ cnxcc[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ cnxcc/' ${DIST}/rules
++
++# no systemd module
++sed -i -e '/libsystemd-dev/d' -e '/^Package: kamailio-systemd-modules/,/^$/d' \
++  ${DIST}/control
++sed -i -e 's/ systemd[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ systemd/' ${DIST}/rules
++
++# old mysql
++sed -i -e 's/default-mysql-client/mysql-client/' \
++  -e 's/default-libmysqlclient-dev/libmysqlclient-dev/' ${DIST}/control
++echo "kamailio source: build-depends-on-obsolete-package build-depends: libmysqlclient-dev => default-libmysqlclient-dev" >> \
++      ${DIST}/source.lintian-overrides
++echo "kamailio-mysql-modules: depends-on-obsolete-package depends: mysql-client => default-mysql-client" >> \
++      ${DIST}/kamailio-mysql-modules.lintian-overrides
++
++# no libssl-dev
++sed -i -e '/libssl-dev/d' ${DIST}/control
++
++# no rabbitmq
++sed -i -e '/librabbitmq-dev/d' \
++  -e '/^Package: kamailio-rabbitmq-modules/,/^$/d' ${DIST}/control
++sed -i -e 's/ rabbitmq[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ rabbitmq/' ${DIST}/rules
++
++# No geoip2 module
++sed -i -e '/libmaxminddb-dev/d' -e '/^Package: kamailio-geoip2-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ geoip2[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ geoip2/' ${DIST}/rules
++
++# No phonenum module
++sed -i -e '/libphonenumber-dev/d' -e '/^Package: kamailio-phonenum-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ phonenum[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ phonenum/' ${DIST}/rules
++
++# Mo mongodb
++sed -i -e '/libmongoc-dev/d' -e '/^Package: kamailio-mongodb-modules/,/^$/d' \
++      ${DIST}/control
++sed -i -e 's/ mongodb[ ,$]*/ /' ${DIST}/rules
++sed -i -e '/^EXTRA_EXCLUDED_MODULES=/s/$/ mongodb/' ${DIST}/rules
++
++wrap-and-sort -sat -d ${DIST}
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a010406d54e5add996592d72573d10452350ccb9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1305 @@@
++kamailio (5.7.4-1) unstable; urgency=medium
++
++  * New upstream version 5.7.4
++  * refresh patches
++
++ -- Victor Seva <vseva@debian.org>  Fri, 19 Jan 2024 12:20:37 +0100
++
++kamailio (5.7.3-1) unstable; urgency=medium
++
++  * New upstream version 5.7.3
++  * refresh patches
++
++ -- Victor Seva <vseva@debian.org>  Mon, 20 Nov 2023 12:54:26 +0100
++
++kamailio (5.7.2-1) unstable; urgency=medium
++
++  * New upstream version 5.7.2
++  * pcre2 migration (Closes: #1000134)
++  * refresh patches
++
++ -- Victor Seva <vseva@debian.org>  Fri, 29 Sep 2023 16:40:26 +0200
++
++kamailio (5.7.0-1) unstable; urgency=medium
++
++  [ Debian Janitor ]
++  * Remove constraints unnecessary since buster (oldstable)
++
++  [ Victor Seva ]
++  * New upstream version 5.7.0
++  * remove already applied patches
++  * remove lsb-base and use libncurses-dev
++  * postinst: use /run instead of /var/run for kamailio user home
++
++ -- Victor Seva <vseva@debian.org>  Fri, 19 May 2023 11:49:49 +0200
++
++kamailio (5.6.4-1) unstable; urgency=medium
++
++  * New upstream version 5.6.4
++  * remove already applied patches
++
++ -- Victor Seva <vseva@debian.org>  Tue, 09 May 2023 23:50:42 +0200
++
++kamailio (5.6.3-2) unstable; urgency=medium
++
++  * fix install rule for extras
++
++ -- Victor Seva <vseva@debian.org>  Tue, 31 Jan 2023 20:10:56 +0100
++
++kamailio (5.6.3-1) unstable; urgency=medium
++
++  * debian/rules: rework rules, try to fail properly on build
++  * New upstream version 5.6.3
++  * fixes for app_python3 from upstream (Closes: #1027440)
++
++ -- Victor Seva <vseva@debian.org>  Tue, 31 Jan 2023 12:54:55 +0100
++
++kamailio (5.6.2-1) unstable; urgency=medium
++
++  * New upstream version 5.6.2
++
++ -- Victor Seva <vseva@debian.org>  Tue, 25 Oct 2022 23:40:36 +0200
++
++kamailio (5.6.1-1) unstable; urgency=medium
++
++  * add AUTHORS file to all packages
++  * New upstream version 5.6.1
++
++ -- Victor Seva <vseva@debian.org>  Mon, 11 Jul 2022 13:55:42 +0200
++
++kamailio (5.6.0-2) unstable; urgency=medium
++
++  * add AUTHORS file to docs
++
++ -- Victor Seva <vseva@debian.org>  Mon, 27 Jun 2022 09:32:53 +0200
++
++kamailio (5.6.0-1) unstable; urgency=medium
++
++  * New upstream version 5.6.0
++  * add kamailio-nats-modules package
++
++ -- Victor Seva <vseva@debian.org>  Fri, 03 Jun 2022 11:27:40 +0200
++
++kamailio (5.5.4-1) unstable; urgency=medium
++
++  * New upstream version 5.5.4
++  * remove already applied patches
++  * remove python3-dev dependency from binaries (Closes: #1005774)
++
++ -- Victor Seva <vseva@debian.org>  Thu, 17 Feb 2022 23:41:52 +0100
++
++kamailio (5.5.3-2) unstable; urgency=medium
++
++  [ Adrian Bunk ]
++  * Limit kamailio-secsipid-modules to architectures where libsecsipid is available
++  * Fix a race condition that sometimes resulted in FTBFS (Closes: #953090)
++  * Stop setting -march on arm
++
++ -- Victor Seva <vseva@debian.org>  Thu, 10 Feb 2022 11:51:37 +0100
++
++kamailio (5.5.3-1) unstable; urgency=medium
++
++  * New upstream version 5.5.3
++  * update copyright paths and licences
++  * add upstream/metadata
++  * add lwsc and secsipid modules
++
++ -- Victor Seva <vseva@debian.org>  Fri, 03 Dec 2021 15:21:15 +0100
++
++kamailio (5.4.3-1) unstable; urgency=medium
++
++  * New upstream version 5.4.3
++  * update Standards-Version, no changes needed
++  * fix duplicate-globbing-patterns at debian/copyright
++
++ -- Victor Seva <vseva@debian.org>  Tue, 15 Dec 2020 11:09:36 +0100
++
++kamailio (5.4.2-1) unstable; urgency=medium
++
++  * New upstream version 5.4.2
++
++ -- Victor Seva <vseva@debian.org>  Wed, 28 Oct 2020 14:33:29 +0100
++
++kamailio (5.4.1-1) unstable; urgency=medium
++
++  * New upstream version 5.4.1
++
++ -- Victor Seva <vseva@debian.org>  Tue, 01 Sep 2020 14:27:59 +0200
++
++kamailio (5.4.0-2) unstable; urgency=medium
++
++  * new kamailio-mqtt-modules package
++
++ -- Victor Seva <vseva@debian.org>  Thu, 30 Jul 2020 14:21:24 +0200
++
++kamailio (5.4.0-1) unstable; urgency=medium
++
++  * New upstream version 5.4.0
++
++ -- Victor Seva <vseva@debian.org>  Thu, 30 Jul 2020 13:38:45 +0200
++
++kamailio (5.3.5-1) unstable; urgency=medium
++
++  * New upstream version 5.3.5
++
++ -- Victor Seva <vseva@debian.org>  Tue, 23 Jun 2020 11:42:32 +0200
++
++kamailio (5.3.4-1) unstable; urgency=medium
++
++  * New upstream version 5.3.4
++
++ -- Victor Seva <vseva@debian.org>  Mon, 11 May 2020 10:56:44 +0200
++
++kamailio (5.3.3-1) unstable; urgency=medium
++
++  * New upstream version 5.3.3
++
++ -- Victor Seva <vseva@debian.org>  Mon, 30 Mar 2020 15:41:45 +0200
++
++kamailio (5.3.2-1) unstable; urgency=medium
++
++  * New upstream version 5.3.2
++
++ -- Victor Seva <vseva@debian.org>  Fri, 10 Jan 2020 09:22:59 +0100
++
++kamailio (5.3.1-1) unstable; urgency=medium
++
++  * New upstream version 5.3.1
++  * remove already applied patches
++
++ -- Victor Seva <vseva@debian.org>  Mon, 02 Dec 2019 12:47:34 +0100
++
++kamailio (5.3.0-2) unstable; urgency=medium
++
++  * allow group writes to RuntimeDirectory
++
++ -- Victor Seva <vseva@debian.org>  Wed, 23 Oct 2019 11:48:45 +0200
++
++kamailio (5.3.0-1) unstable; urgency=medium
++
++  * New upstream version 5.3.0
++  * update systemd service file
++  * remove python2 support (closes: #936778)
++  * update rules to use the debhelper sequencer
++  * use debhelper-compat 12
++  * clean lintian-overrides
++  * update lintian-overrides for examples configs
++  * add fixes fixed upstream
++  * don't build tls util, not necessary for 5.3.0
++  * fix systemd-service-file-missing-documentation-key
++  * fix description-synopsis-starts-with-article
++  * update Standards-Version, no changes needed
++  * fix package-contains-empty-directory
++
++ -- Victor Seva <vseva@debian.org>  Wed, 23 Oct 2019 09:52:08 +0200
++
++kamailio (5.2.3-1) unstable; urgency=medium
++
++  * New upstream version 5.2.3
++
++ -- Victor Seva <vseva@debian.org>  Mon, 03 Jun 2019 10:58:36 +0200
++
++kamailio (5.2.2-1) unstable; urgency=medium
++
++  * New upstream version 5.2.2
++
++ -- Victor Seva <vseva@debian.org>  Wed, 27 Mar 2019 10:14:29 +0100
++
++kamailio (5.2.1-1) unstable; urgency=medium
++
++  * New upstream version 5.2.1
++  * remove already applied upstream patches
++
++ -- Victor Seva <vseva@debian.org>  Thu, 17 Jan 2019 08:13:17 +0100
++
++kamailio (5.2.0-2) unstable; urgency=medium
++
++  * add kamailio-python3-modules
++  * add kamailio-ruby-modules
++  * add upstream fixes from 5.2 branch
++
++ -- Victor Seva <vseva@debian.org>  Sat, 05 Jan 2019 10:21:35 +0100
++
++kamailio (5.2.0-1) unstable; urgency=medium
++
++  [ Michael Prokop ]
++  * Drop deprecated lintian overrides for kamailio-java-modules
++
++  [ Victor Seva ]
++  * New upstream version 5.2.0
++  * add upstream fixes from 5.2 (Closes: #906233)
++  * remove kamailio-carrierroute-modules
++  * fix module names in pkg description
++  * add libmnl-dev for new ims_ipsec_pcscf module
++  * kamailio.service: update from upstream
++
++ -- Victor Seva <vseva@debian.org>  Mon, 03 Dec 2018 15:03:22 +0100
++
++kamailio (5.1.6-1) unstable; urgency=medium
++
++  * update standards-version to 4.1.2 no changes
++  * New upstream version 5.1.6
++
++ -- Victor Seva <vseva@debian.org>  Fri, 19 Oct 2018 18:19:27 +0200
++
++kamailio (5.1.5-1) unstable; urgency=medium
++
++  * New upstream version 5.1.5
++
++ -- Victor Seva <vseva@debian.org>  Fri, 24 Aug 2018 11:04:51 +0200
++
++kamailio (5.1.4-1) unstable; urgency=medium
++
++  * New upstream version 5.1.4
++  * control: fix extended-description-line-too-long warning
++
++ -- Victor Seva <vseva@debian.org>  Wed, 06 Jun 2018 09:49:42 +0200
++
++kamailio (5.1.3-1) unstable; urgency=medium
++
++  * New upstream version 5.1.3
++  * remove already applied patches
++
++ -- Victor Seva <vseva@debian.org>  Thu, 17 May 2018 18:03:31 +0200
++
++kamailio (5.1.2-2) unstable; urgency=medium
++
++  * remove kamailio-java-modules (closes: #892538, #893701)
++
++ -- Victor Seva <vseva@debian.org>  Thu, 22 Mar 2018 16:38:07 +0100
++
++kamailio (5.1.2-1) unstable; urgency=medium
++
++  * New upstream version 5.1.2
++  * refresh upstream patches from 5.1
++
++ -- Victor Seva <vseva@debian.org>  Tue, 06 Mar 2018 10:05:17 +0100
++
++kamailio (5.1.1-1) unstable; urgency=medium
++
++  [ Victor Seva ]
++  * update Vcs-* to salsa.debian.org
++  * New upstream version 5.1.1 (Closes: #886110)
++  * kamailio.service fix for /run in tmpfs (Closes: #837678)
++  * update upstream fixes from 5.1 branch
++  * fix debian-control-has-obsolete-dbg-package
++  * build-depends-on-obsolete-package build-depends
++  * fix debian-rules-parses-dpkg-parsechangelog
++  * fix debian-rules-sets-dpkg-architecture-variable
++  * fix wildcard-matches-nothing-in-dep5-copyright src/core/
++  * fix wildcard-matches-nothing-in-dep5-copyright modules/usrloc/ul_rpc.*
++  * fix debian-watch-uses-insecure-uri
++  * fix lintian warnings
++  * fix missing examples
++
++  [ Guillem Jover ]
++  * Wait for kamailio to exit before returning on sysvinit stop action
++    (Closes: #889745)
++
++ -- Victor Seva <vseva@debian.org>  Wed, 07 Feb 2018 18:03:02 +0100
++
++kamailio (5.1.0-1) unstable; urgency=medium
++
++  * New upstream version 5.1.0
++  * update backports scripts
++  * new packages from 5.1.0
++  * rules: remove usr/local from kamailio package
++  * upstream fixes from 5.1 branch
++
++ -- Victor Seva <vseva@debian.org>  Thu, 14 Dec 2017 19:20:49 +0100
++
++kamailio (5.0.4-1) unstable; urgency=medium
++
++  * [767c033] New upstream version 5.0.4
++
++ -- Victor Seva <vseva@debian.org>  Thu, 26 Oct 2017 09:19:06 +0200
++
++kamailio (5.0.3-1) unstable; urgency=medium
++
++  * [384a20d] New upstream version 5.0.3
++
++ -- Victor Seva <vseva@debian.org>  Sun, 01 Oct 2017 12:47:02 +0200
++
++kamailio (5.0.2-2) unstable; urgency=medium
++
++  * [66caa28] fix LIBDIR (Closes:#868270)
++
++ -- Victor Seva <vseva@debian.org>  Fri, 28 Jul 2017 12:36:08 +0200
++
++kamailio (5.0.2-1) unstable; urgency=medium
++
++  * [08870e2] New upstream version 5.0.0
++  * [39e76f7] New upstream version 5.0.1
++  * [d488c00] update debian copyright
++  * [40bf66b] remove purple module
++  * [34cc1c9] update descriptions and add new modules
++  * [36254e2] remove already applied patches
++  * [6289654] New upstream version 5.0.2
++  * [39af62d] refresh debian patches
++  * [a56ccda] set LIBDIR for all rules
++
++ -- Victor Seva <vseva@debian.org>  Mon, 19 Jun 2017 09:04:29 +0200
++
++kamailio (4.4.4-3) unstable; urgency=medium
++
++  * [5e65291] tls: fix init checks (Closes: #844548)
++
++ -- Victor Seva <vseva@debian.org>  Fri, 31 Mar 2017 15:44:17 +0200
++
++kamailio (4.4.4-2) unstable; urgency=medium
++
++  * [622e541] add missing dependency (Closes: #852905)
++
++ -- Victor Seva <vseva@debian.org>  Mon, 30 Jan 2017 19:11:36 +0100
++
++kamailio (4.4.4-1) unstable; urgency=medium
++
++  * [b7185c8] remove dsnsec module (Closes: #843477)
++  * [74f07b7] New upstream version 4.4.4
++  * [5c164a6] remove upstream patches already merged
++
++ -- Victor Seva <vseva@debian.org>  Wed, 09 Nov 2016 17:40:45 +0100
++
++kamailio (4.4.3-2) unstable; urgency=medium
++
++  * [e14ae9f] update upstream fixes from 4.4 branch (Closes: #828361)
++  * [120b3f0] debian/control: wrap-and-sort -sat
++  * [da95604] add lsb-base as dependency for kamailio
++  * [d0cd62a] update Standards-Version to 3.9.8 ( no changes needed )
++  * [6b2f2c4] update lintian-overrides
++
++ -- Victor Seva <vseva@debian.org>  Thu, 27 Oct 2016 17:51:44 +0200
++
++kamailio (4.4.3-1) unstable; urgency=medium
++
++  * [6f08a2b] use default-mysql-* metapackages
++  * [a1c49be] New upstream version 4.4.3
++  * [d6f6df9] remove creation of obsolete radius seqfile (Closes: #83736)
++  * [516952a] update upstream patches from 4.4 since 4.4.3
++
++ -- Victor Seva <vseva@debian.org>  Mon, 19 Sep 2016 09:38:26 +0200
++
++kamailio (4.4.2-3) unstable; urgency=medium
++
++  * [93e246e] exclude kazoo modules from non linux archs
++  * [e102957] add upstream fixes from 4.4 branch since 4.4.2
++
++ -- Victor Seva <vseva@debian.org>  Tue, 12 Jul 2016 14:12:53 +0200
++
++kamailio (4.4.2-2) unstable; urgency=medium
++
++  * [fd4e57f] exclude json modules from non linux archs
++
++ -- Victor Seva <vseva@debian.org>  Thu, 30 Jun 2016 17:08:03 +0200
++
++kamailio (4.4.2-1) unstable; urgency=medium
++
++  * [fad3987] fix build template for group modules
++  * [52adb13] Imported Upstream version 4.4.2
++  * [65aae02] mention that http_client is included at
++    kamailio-utils-modules package
++  * [f275434] set linux-any for json modules
++
++ -- Victor Seva <vseva@debian.org>  Wed, 29 Jun 2016 17:39:48 +0200
++
++kamailio (4.4.1-1) unstable; urgency=medium
++
++  * [4b7bf4b] Imported Upstream version 4.4.1
++  * [a835c6c] remove already applied upstream patches
++  * [774f7d4] use radcli lib for radius (Closes: #822338)
++
++ -- Victor Seva <vseva@debian.org>  Wed, 11 May 2016 14:20:52 +0200
++
++kamailio (4.4.0-3) unstable; urgency=medium
++
++  * [80d8989] update upstream patches from 4.4 branch
++  * [1065be0] debian/patches/series: update missing patches
++
++ -- Victor Seva <vseva@debian.org>  Mon, 25 Apr 2016 11:29:15 +0200
++
++kamailio (4.4.0-2) unstable; urgency=medium
++
++  * [84116d4] add upstream fixes. (Closes: #821039)
++
++ -- Victor Seva <vseva@debian.org>  Fri, 15 Apr 2016 09:33:53 +0200
++
++kamailio (4.4.0-1) unstable; urgency=medium
++
++  * [5cc268d] Imported Upstream version 4.4.0
++  * [d3ea166] remove upstream patches from 4.3 branch
++  * [9463fb4] add upstream patches from 4.4 branch
++  * [4d45250] remove no_tls_certs_generate.patch already applied on 4.4 branch
++
++ -- Victor Seva <vseva@debian.org>  Mon, 04 Apr 2016 18:40:06 +0200
++
++kamailio (4.3.5-2) unstable; urgency=medium
++
++  * [e5b08dd] mono: remove support for powerpc
++  * [9d9559a] add upstream fixes from 4.3 branch
++  * [f86bdc5] update Standards-Version, no changes needed
++  * [ba4c66c] update Vcs-* fields to https ( fix lintian warning )
++
++ -- Victor Seva <vseva@debian.org>  Wed, 16 Mar 2016 15:40:16 +0100
++
++kamailio (4.3.5-1) unstable; urgency=medium
++
++  * [198e0d7] fix typo at erlang module short description (Closes: #816235)
++  * [9301014] Imported Upstream version 4.3.5
++  * [58f5cfe] use my DD account \o/
++  * [c7f3947] remove already applied upstream patches
++
++ -- Victor Seva <vseva@debian.org>  Sun, 06 Mar 2016 19:54:59 +0100
++
++kamailio (4.3.4-2) unstable; urgency=medium
++
++  * [4c50b06] add upstream fixes for 4.3 branch (Closes: #815178)
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 23 Feb 2016 07:52:30 +0100
++
++kamailio (4.3.4-1.1) unstable; urgency=medium
++
++  * Non-maintainer upload.
++  * Refresh list of architectures supported by Mono (Closes: #808481)
++
++ -- Jo Shields <directhex@apebox.org>  Mon, 21 Dec 2015 10:14:23 +0000
++
++kamailio (4.3.4-1) unstable; urgency=medium
++
++  * [3ca01af] Imported Upstream version 4.3.4 ( Closes: #806244 )
++  * [9702243] remove applied upstream patches
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Thu, 26 Nov 2015 22:06:45 +0100
++
++kamailio (4.3.3-3) unstable; urgency=medium
++
++  * [c615681] upstream patch for mips FTBFS ( Closes: #804749 )
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Wed, 11 Nov 2015 09:23:50 +0100
++
++kamailio (4.3.3-2) unstable; urgency=medium
++
++  * [dd21fe3] add upstream fixes from 4.3 branch (Closes: #804422 #804276)
++  * [592ea26] add systemd .service file and dh-systemd commands
++  * [207459f] allow virtual-mysql-client as valid
++              Depends for kamailio-mysql-modules
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 10 Nov 2015 11:44:28 +0100
++
++kamailio (4.3.3-1) unstable; urgency=medium
++
++  * [5dad250] Imported Upstream version 4.3.3
++  * [cd88d69] refresh upstream patches since 4.3.3
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 13 Oct 2015 12:22:53 +0200
++
++kamailio (4.3.1-2) unstable; urgency=medium
++
++  * [3c416e8] add kamcmd patch for reproducible builds
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Wed, 12 Aug 2015 08:46:43 +0200
++
++kamailio (4.3.1-1) unstable; urgency=medium
++
++  * [74a6255] kamailio.init: use NAME and chown HOMEDIR just after create it
++  * [9af988a] Imported Upstream version 4.3.1
++  * [95a4304] remove already applied upstream patches
++  * [f155ce3] refresh debian patches
++  * [60a7dd9] upstream patch supporting repoducible builds
++  * [198047d] remove auto-generated tls certs
++  * [33b7028] add upstream fixes
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 11 Aug 2015 13:30:43 +0200
++
++kamailio (4.3.0-1) unstable; urgency=medium
++
++  * [45ed887] Imported Upstream version 4.3.0
++  * [c2d68d8] add upstream patches from 4.3 branch
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Sat, 27 Jun 2015 14:57:38 +0200
++
++kamailio (4.3.0~rc0-1) experimental; urgency=medium
++
++  * [bfe18eb] Imported Upstream version 4.3.0~rc0
++  * [6dba838] add new modules on 4.3
++  * [a395fc4] update default private memory to 8Mb
++  * [0bb4a0c] add new modules to rules and update FLAGS
++  * [aa29319] debian/patches: remove applied patches upstream
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Fri, 29 May 2015 11:52:15 +0200
++
++kamailio (4.2.5-1) unstable; urgency=medium
++
++  * [a1f426d] Imported Upstream version 4.2.5
++  * [5cfb580] fix FTBFS on powerpcspe because of AltiVec assumption.
++    Thanks to Roland Stigge <stigge@antcom.de> (Closes: #729635)
++  * [a10699c] set Architecture: any when possible
++  * [58c114b] set Architecture: linux-any for sctp related
++  * [4ac4845] add powerpcspe to the list of architectures supported by mono module
++  * [bc35a5c] kamailio-berkeley-modules: fix lintian warning for empty dir
++  * [953678a] debian/control: wrap-and-short and some minor changes to descriptions
++  * [f57bbbb] debian/patches: add fix_manpage.patch fixing lintian warnings
++  * [8670eb9] debian/copyright: fix lintian warning
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 19 May 2015 22:29:42 +0200
++
++kamailio (4.2.4-1) unstable; urgency=medium
++
++  * [280cb6a] Imported Upstream version 4.2.1
++  * [9fb944e] Imported Upstream version 4.2.4 (Closes: 783946)
++  * [0241997] exclude obsoleted and ser examples (Closes: #772314)
++  * [a295c13] update Standards-Version to 3.9.6
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Sun, 03 May 2015 10:19:54 +0200
++
++kamailio (4.2.0-2) unstable; urgency=medium
++
++  * [d614569] fix fifo and ctl defaults pointing to unsecure /tmp dir
++    Closes: #775681
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Wed, 28 Jan 2015 20:43:44 +0100
++
++kamailio (4.2.0-1.1) unstable; urgency=low
++
++  * Non-maintainer upload.
++  * Fix FTBFS on mipsel and mips.
++    Add mips/mipsel arch in debian/control.
++    Disable the Mono module on mips in debian/rules (like it is on ia64).
++    Add fix-mips.patch Patch by Dejan Latinovic <Dejan.Latinovic@imgtec.com>
++    Closes: #767500.
++
++ -- Anibal Monsalve Salazar <anibal@debian.org>  Thu, 13 Nov 2014 10:48:28 +0000
++
++kamailio (4.2.0-1) unstable; urgency=medium
++
++  * [8774ae4] Imported Upstream version 4.2.0
++  * [188e33e] add extra modules
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 21 Oct 2014 23:16:39 +0200
++
++kamailio (4.1.5-1) unstable; urgency=medium
++
++  * [ee9aba2] Imported Upstream version 4.1.5
++  * [fb02772] remove applied upstream patches
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Sun, 10 Aug 2014 09:14:31 +0200
++
++kamailio (4.1.4-1) unstable; urgency=medium
++
++  * [b22c478] Imported Upstream version 4.1.4
++  * [77a1c35] update upstream patches from 4.1.4 (Closes: #750079)
++  * [76f1000] Use gcj-jdk (Closes: #750831)
++  * [041d18f] update backports scripts
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Sun, 15 Jun 2014 10:57:16 +0200
++
++kamailio (4.1.3-2) unstable; urgency=medium
++
++  * [f3ecc41] Append pkg-config as Build-Depends (Closes: #747787)
++  * [256c082] Add upstream patches
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Mon, 12 May 2014 23:01:40 +0200
++
++kamailio (4.1.3-1) unstable; urgency=medium
++
++  * [b01b8f5] replace libjson0-dev with libjson-c-dev. (Closes: #745005)
++  * [599b843] remove pkg dir from sources
++  * [62ea52e] add debian gdb.conf
++  * [4aba97f] Imported Upstream version 4.1.3
++  * [5e11caa] debian/backports: use old libjson0-dev when necessary
++  * [e4b2607] debian/patches: remove applied upstream patches
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Fri, 25 Apr 2014 10:00:29 +0200
++
++kamailio (4.1.2-2) unstable; urgency=medium
++
++  * [df4c597] remove sparc from the list of supported arch
++  * [414c743] Add upstream patches
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 25 Mar 2014 20:54:25 +0100
++
++kamailio (4.1.2-1) unstable; urgency=medium
++
++  * [18bf501] Imported Upstream version 4.1.2
++  * [2472eed] fix init typo. Thanks to Corey Edwards.
++  * [5dfc30d] removed previous upstream patches and old debian patches
++  * [c60b687] clean lintian overrides
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Mon, 10 Mar 2014 11:55:33 +0100
++
++kamailio (4.1.1-4) unstable; urgency=low
++
++  [ Victor Seva ]
++  * fix init script
++  * use freeradius-client. (Closes: #739286)
++  * new vars to configure shared and private memory
++    and path for the configuration file.
++
++  [ Tzafrir Cohen ]
++  * Save autover.h at clean to allow a clean git buildpackage.
++
++ -- Tzafrir Cohen <tzafrir@debian.org>  Wed, 26 Feb 2014 08:36:12 +0200
++
++kamailio (4.1.1-2) unstable; urgency=medium
++
++  * fix typo on kamailio-java-modules dependences. (Closes: #736212)
++  * do not try to build mono on excluded architectures.
++  * use db-utils from db-defaults.
++  * add Provides sip-router and add
++    stun-server | turn-server to Suggests. (Closes: #737760)
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Fri, 07 Feb 2014 10:45:50 +0100
++
++kamailio (4.1.1-1) unstable; urgency=medium
++
++  * New upstream release
++  * debian/patches:
++    - add upstream fixes
++  * Added tls outbound websocket autheph dnssec modules
++    - openssl exception added to their license
++  * removing sparc and ia64 from supported archs
++    for mono module (Closes: #728915)
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Mon, 06 Jan 2014 11:47:13 +0100
++
++kamailio (4.0.4-1) unstable; urgency=low
++
++  * New upstream release
++  * debian/patches:
++    - remove applied patches
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Thu, 03 Oct 2013 10:14:41 +0200
++
++kamailio (4.0.3-2) unstable; urgency=low
++
++  * fix init script exit status
++  * debian/patches/upstream:
++    - add upstream fixes
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Fri, 06 Sep 2013 11:42:07 +0200
++
++kamailio (4.0.3-1) unstable; urgency=low
++
++  [ Victor Seva ]
++  * New upstream release
++  * debian/control:
++    - change vcs info to our git repository
++    - add sqlite3 Recommends on sqlite-modules (Close: #715230)
++    - change Architecture to linux-any (Close: #712182)
++  * debian/patches/default_fifo.patch:
++    - fix kamctlrc defaults
++  * debian/patches/spelling_errors.patch:
++    - fix spelling errors on binaries
++  * debian/rules:
++    - use upstream CC_EXTRA_OPTS and LD_EXTRA_OPTS environment variables
++      to pass hardening flags (Close: #690396)
++  * debian/kamailio.init:
++    - use lsb init-functions
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Tue, 20 Aug 2013 11:45:03 +0200
++
++kamailio (4.0.2-1) unstable; urgency=low
++
++  * New upstream release
++  * debian/rules:
++    - changed depends for build-arch and build-indep rules
++      to build-stamp (Closes: #707038)
++    - added quiet=verbose as suggested by
++      Matthias Klose <doko@debian.org>
++  * Added debian/patches/default_fifo.patch (Closes: #712083)
++    - use /var/run/kamailio/ dir instead of /tmp for fifo
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Thu, 13 Jun 2013 09:05:39 +0200
++
++kamailio (4.0.1-1) unstable; urgency=low
++
++  * New upstream release (Closes: #704118)
++  * debian/control.tls
++    + refreshed (Closes: #704683)
++    + added new websocket and outbound modules
++  * debian/control:
++    + added new ims modules
++    + remove openser stuff
++  * debian/rules:
++    + kambdb_recover binary is not in source.
++    + added ims module
++  * debian/patches/upstream:
++    + removed upstream fixes for the previous release.
++  * debian/patches:
++    + removed plumb_md5.patch and plumb_md5_fixes.patch
++      merged upstream ( Thanks miconda )
++    + arm_fix.patch applied upstream (Closes: #690388)
++      Thanks Matthias Klose <doko@debian.org>
++  * debian/backports/squeeze:
++    + remove call to dpkg-buildflags
++    + do not apply hardening_flags.patch
++  * debian/copyright:
++    + updated modules path
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Mon, 29 Apr 2013 11:34:47 +0200
++
++kamailio (3.3.0-1) unstable; urgency=low
++
++  [ Julien BLACHE ]
++  * OpenSER has been renamed to Kamailio (closes: #527615).
++    + s/openser/kamailio/ pretty much everywhere.
++  * debian/control:
++    + Add transitional openser* packages.
++    + Remove myself from Uploaders.
++    + Move openser-dbg and kamailio-dbg to debug section.
++
++  [ Henning Westerholt ]
++  * finish renaming from openser to kamailio started from Julien Blache
++  * merge upstream changes in packaging scripts
++  * debian/control:
++    + add new modules with dependencies
++    + fix description for radius package
++    + add python to kamailio dependencies to fix lintian error
++    + add myself to Uploaders
++  * debian/kamailio.default:
++    + extend description in kamailio.default
++  * debian/kamailio.init:
++    + add example core dump directory setting to init file
++    + small reformatting in init file, mostly whitespace changes
++    + fix small error in package name definition
++  * debian/kamailio.README.Debian:
++    + add a note about upgrades from a previous OpenSER version
++    + provide links to the upstream upgrade guide
++  * debian/kamailio.dirs:
++    + its not necessary to create /var/run/kamailio in the package,
++      adduser should do this in the postinst script
++  * debian/kamailio.preinst, debian/kamailio-radius-modules.preinst:
++    + add preinst helper scripts to help upgrade from openser
++
++  [ Victor Seva ]
++  * New upstream release
++  * debian/rules:
++    + replaced for the kamailio debian/rules.
++    + fix get-orig-source. Update URL
++    + change UPVERSION initialitation. Now bpo versions works too
++    + fix modules cleanup install.
++  * Switch to dpkg-source 3.0 (quilt) format
++  * debian/control:
++    + remove dpatch
++    + add myself as Uploader
++    + add ${misc:Depends} to all binary packages (lintian suggestion)
++    + multiarch support.
++  * debian/patches:
++    + remove all patches.
++    + added upstream fixes.
++    + no_lib64_on_64_bits.patch ( used on squeeze backport)
++    + multiarch_support.patch
++    + added no_INSTALL_file.patch
++  * debian/watch updated
++  * debian/kamailio.init:
++    + add $remote_fs (lintian suggestion)
++  * debian/copyright
++    + using copyright-format/1.0/
++  * debian/backports
++    + added squeeze script
++
++  [ Tzafrir Cohen ]
++  * Make sure hardening *FLAGS make it through the build system:
++    - hardening_flags.patch: get them through.
++    - Use buildflags.mk from dpkg-dev (and require 1.16.1.1).
++    - fix_export.patch - Related(?) link issue.
++  * Rebuild kambdb_recover that is shiped in the source.
++  * Package kamailio-berkeley-bin for kambdb_recover.
++  * Bump standards version to 3.9.3 while we're at it.
++  * plumb_md5.patch and plumb_md5_fixes.patch: avoid the RSA md5 code.
++  * Simpler editing of the defaults file: remmed-out by default.
++  * Removed unneeded manual library dependencies.
++
++ -- Tzafrir Cohen <tzafrir@debian.org>  Sat, 30 Jun 2012 14:18:32 +0300
++
++openser (1.3.2-3) unstable; urgency=low
++
++  * debian/patches/12_acc_enable_radius.dpatch:
++    + Updated; disable RADIUS support for the acc module in the sample config
++      file, otherwise the module fails to initialize and OpenSER can't start
++      (closes: #491705).
++
++ -- Julien BLACHE <jblache@debian.org>  Mon, 21 Jul 2008 22:34:44 +0200
++
++openser (1.3.2-2) unstable; urgency=low
++
++  * debian/control:
++    + Fix capitalization here and there (closes: #483753).
++    + Bump Standards-Version to 3.8.0 (no changes).
++
++ -- Julien BLACHE <jblache@debian.org>  Sat, 07 Jun 2008 12:20:27 +0200
++
++openser (1.3.2-1) unstable; urgency=low
++
++  [ Julien BLACHE ]
++  * New upstream release.
++  * debian/control, debian/rules, openser-osp-module.examples:
++    + Add osp module, disabled by default in Debian due to OpenSSL license
++      issues.
++  * openser.README.Debian:
++    + Add instructions to build the TLS variant and the OSP module.
++  * debian/patches/01_Makefile_fixes.dpatch:
++    + Removed; merged upstream.
++
++  [ Patrick Matthäi ]
++  * debian/control:
++    + We do not need to conflict on older binary versions at openser-dbg while
++      we still depend on the right version.
++  * debian/control, debian/rules:
++    + Removed some useless whitespaces at EOL.
++
++ -- Julien BLACHE <jblache@debian.org>  Sun, 18 May 2008 11:19:28 +0200
++
++openser (1.3.1-3) unstable; urgency=low
++
++  [ Julien BLACHE ]
++  * debian/openser.init:
++    + Add more services dependencies to the LSB header.
++
++  [ Victor Seva ]
++  * debian/openser.init: (Closes: #470535)
++    - Fixed a bug in creating necessary $HOMEDIR
++      Thanks to Marcos Hack for the hint and fix.
++      Thanks to Stefan Ebner <hellboy195@gmail.com>
++
++ -- Julien BLACHE <jblache@debian.org>  Sat, 05 Apr 2008 17:21:41 +0200
++
++openser (1.3.1-2) unstable; urgency=low
++
++  * debian/openser.init:
++    + Fix echo -e bashism (closes: #472896).
++
++ -- Julien BLACHE <jblache@debian.org>  Fri, 28 Mar 2008 22:54:41 +0100
++
++openser (1.3.1-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/patches/01_fix_openser_cfg.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/02_uac_fix_avp_parsing.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/03_allow_empty_transformations.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/04_perl_for_perl5.10.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/01_Makefile_fixes.dpatch:
++    + Added; fix a typo in top-level Makefile.
++
++ -- Julien BLACHE <jblache@debian.org>  Wed, 12 Mar 2008 22:43:58 +0100
++
++openser (1.3.0-3) unstable; urgency=low
++
++  * debian/patches/04_perl_for_perl5.10.dpatch:
++    + Added; from upstream trunk r3742, fix perl module build with
++      perl 5.10 (closes: #466881).
++  * debian/copyright:
++    + Fix copyright notice.
++  * debian/control:
++    + Build-Depend on libdb-dev (>= 4.6.19) instead of libdb-dev (>= 4.6.19-1).
++
++ -- Julien BLACHE <jblache@debian.org>  Sat, 01 Mar 2008 20:36:31 +0100
++
++openser (1.3.0-2) unstable; urgency=low
++
++  * debian/patches/01_fix_openser_cfg.dpatch:
++    + Added; fix default openser.cfg, from rev 3376.
++  * debian/patches/02_uac_fix_avp_parsing.dpatch:
++    + Added; fix avp defintion parsing in the uac module, from rev 3414.
++  * debian/patches/03_allow_empty_transformations.dpatch:
++    + Added; allow some transformations to accept an empty buffer, from
++      rev 3436.
++
++ -- Julien BLACHE <jblache@debian.org>  Sun, 23 Dec 2007 14:42:55 +0100
++
++openser (1.3.0-1) experimental; urgency=low
++
++  * New upstream release.
++    + Adds new variable $adu to make it easier to check the auth digest URI
++      matches the To/R-URI; in response to CVE-2007-5469 (closes: #446956).
++  * debian/control:
++    + Add build-dependency on libcurl4-gnutls-dev.
++  * debian/rules:
++    + Add the xcap_client module in openser-presence-modules.
++
++ -- Julien BLACHE <jblache@debian.org>  Thu, 13 Dec 2007 17:47:34 +0100
++
++openser (1.3.0~svn20071212-1) experimental; urgency=low
++
++  * New SVN snapshot.
++  * debian/control:
++    + Rename openser-module-perl to openser-modules-perl and update the
++      description for the additional perlvdb module.
++    + Add openser-ldap-modules.
++  * debian/rules:
++    + Build the perlvdb module and install it.
++    + Add LDAP modules.
++
++ -- Julien BLACHE <jblache@debian.org>  Wed, 12 Dec 2007 17:01:19 +0100
++
++openser (1.3.0~svn20071207-1) experimental; urgency=low
++
++  * New SVN snapshot.
++  * debian/patches/12_acc_enable_radius.dpatch:
++    + Added; enable RADIUS accounting in the acc module. This effectively
++      pulls in libradiusclient-ng2 as a dependency of the main openser package,
++      but that dependency should go away in a future OpenSER release (closes: #454660).
++  * debian/control:
++    + Bump Standards-Version to 3.7.3 (no changes).
++
++ -- Julien BLACHE <jblache@debian.org>  Fri, 07 Dec 2007 13:24:24 +0100
++
++openser (1.3.0~svn20071129-1) experimental; urgency=low
++
++  * New SVN snapshot.
++  * debian/patches/12_kfreebsd_support.dpatch:
++    + Removed; merged upstream.
++
++ -- Julien BLACHE <jblache@debian.org>  Thu, 29 Nov 2007 21:37:28 +0100
++
++openser (1.3.0~svn20071115-3) experimental; urgency=low
++
++  * debian/control:
++    + openser-berkeley-module needs dbX.Y-util.
++  * debian/patches/12_kfreebsd_support.dpatch:
++    + Added; add kfreebsd support to the build system.
++
++ -- Julien BLACHE <jblache@debian.org>  Wed, 28 Nov 2007 17:52:32 +0100
++
++openser (1.3.0~svn20071115-2) experimental; urgency=low
++
++  * debian/rules:
++    + Force CFLAGS for the bdb_recover build, too (closes: #451908).
++
++ -- Julien BLACHE <jblache@debian.org>  Mon, 19 Nov 2007 10:56:18 +0100
++
++openser (1.3.0~svn20071115-1) experimental; urgency=low
++
++  * OpenSER 1.3.0 packaging pre-release.
++
++  * debian/patches/01_psql_connect.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/02_xmlrpc_update.dpatch:
++    + Removed; merged upstream.
++  * debian/control:
++    + New packages: openser-carrierroute-module, openser-berkeley-module.
++    + openser Suggests both new packages.
++    + Add Build-Dependencies on xsltproc, libconfuse-dev and libdb-dev.
++  * debian/rules:
++    + Update list of presence modules.
++    + Add the carrierroute and berkeley modules.
++    + Build db schemas and bdb utils.
++    + Install openser documentation.
++
++ -- Julien BLACHE <jblache@debian.org>  Thu, 15 Nov 2007 16:19:18 +0100
++
++openser (1.2.2-3) unstable; urgency=low
++
++  * debian/patches/02_xmlrpc_update.dpatch:
++    + Added; Backported from trunk rev 2870, update mi_xmlrpc code for newer
++      libxmlrpc versions (closes: #445111).
++
++ -- Julien BLACHE <jblache@debian.org>  Sat, 06 Oct 2007 12:04:46 +0200
++
++openser (1.2.2-2) unstable; urgency=low
++
++  [ Julien BLACHE ]
++  * debian/patches/01_psql_connect.dpatch:
++    + Added; Fix postgresql failure, from SVN (closes: #441960).
++
++  [ Kilian Krause ]
++  * Add dpkg-dev (>= 1.13.19) to Build-Depends for binary:Version
++  * Update Maintainer to Debian VoIP Team
++  * Add myself to Uploaders.
++
++ -- Julien BLACHE <jblache@debian.org>  Wed, 12 Sep 2007 12:09:35 +0200
++
++openser (1.2.2-1) unstable; urgency=low
++
++  * New upstream release.
++    + Presence module users need to upgrade their database schema, see release
++      notes for details.
++
++ -- Julien BLACHE <jblache@debian.org>  Thu, 16 Aug 2007 18:04:41 +0200
++
++openser (1.2.1-2) unstable; urgency=low
++
++  * debian/control:
++    + Use ${binary:Version} instead of ${Source-Version}.
++  * debian/rules:
++    + Do not ignore make proper errors.
++
++ -- Julien BLACHE <jblache@debian.org>  Sun, 05 Aug 2007 20:46:22 +0200
++
++openser (1.2.1-1) unstable; urgency=low
++
++  * debian/control:
++    + Build-Depend on libsnmp-dev instead of libsnmp10-dev.
++  * debian/rules:
++    + Build at -O2 on arm again, now that #390694 is fixed.
++  * debian/openser.init:
++    + Create /var/run/openser if it doesn't exist.
++    + Add status support, patch from Henning Westerholt
++      <henning.westerholt@1und1.de>.
++  * debian/openser.dirs:
++    + Added; add /var/run/openser to the package.
++  * debian/openser.examples:
++    + Install the whole examples/ directory.
++  * debian/patches/20_usrloc_lockset_fixes.dpatch:
++    + Removed; from upstream SVN.
++  * debian/patches/21_pua_lock_fix.dpatch:
++    + Removed; from upstream SVN.
++  * debian/patches/22_perl_sysv_sem.dpatch:
++    + Removed; merged upstream.
++
++ -- Julien BLACHE <jblache@debian.org>  Thu, 24 May 2007 15:31:21 +0200
++
++openser (1.2.0-4) unstable; urgency=low
++
++  * debian/patches/21_pua_lock_fix.dpatch:
++    + Added; fix typo in modules/pua/hash.c.
++  * debian/patches/22_perl_sysv_sem.dpatch:
++    + Added; fix perl module build with USE_SYSV_SEM.
++
++ -- Julien BLACHE <jblache@debian.org>  Wed, 25 Apr 2007 18:01:06 +0200
++
++openser (1.2.0-3) unstable; urgency=low
++
++  * debian/patches/20_usrloc_lockset_fixes.dpatch:
++    + Added; fix the usrloc module when not using fast locks.
++
++ -- Julien BLACHE <jblache@debian.org>  Sun, 22 Apr 2007 15:18:25 +0200
++
++openser (1.2.0-2) unstable; urgency=low
++
++  * debian/openser.init:
++    + exit 0 if fork=no is specified.
++  * debian/control:
++    + Build-Depend on libsnmp10-dev.
++
++ -- Julien BLACHE <jblache@debian.org>  Sat, 21 Apr 2007 11:33:02 +0200
++
++openser (1.2.0-1) unstable; urgency=low
++
++  * New upstream release.
++  * Source: use the OpenSER TLS tarball
++
++  * debian/control:
++    + New packages: openser-presence-modules, openser-xmlrpc-module,
++      openser-perl-module, openser-snmpstats-module, openser-xmpp-module
++      (split from the -jabber-module package).
++    + Build-Depends: libxmlrpc-c3-dev, libperl-dev, libsnmp9-dev.
++  * debian/rules:
++    + Always build the non-TLS flavour for Debian builds.
++    + Add the new modules.
++  * debian/openser.init:
++    + Print out error messages if openser fails to start.
++    + No longer needs to be run as root to dump core.
++  * debian/patches/01_sourced_scripts.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/02_openser.cfg.dpatch:
++    + Removed; no longer needed.
++  * debian/patches/12_fail_on_build_failure.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/22_OpenPKG-SA-2006.042.dpatch:
++    + Removed; fixed upstream (different fix).
++
++ -- Julien BLACHE <jblache@debian.org>  Tue, 13 Mar 2007 17:00:58 +0100
++
++openser (1.1.1-1) unstable; urgency=low
++
++  * New upstream bugfix release.
++  * debian/patches/21_arm_register_overlap.dpatch:
++    + Removed; Merged upstream.
++  * debian/patches/20_pdt_domains.c_lockfix.dpatch:
++    + Removed; Merged upstream.
++
++ -- Julien BLACHE <jblache@debian.org>  Fri, 26 Jan 2007 16:58:48 +0100
++
++openser (1.1.0-9) unstable; urgency=medium
++
++  * debian/rules:
++    + Fix sed substitution pattern to properly get rid of the PATH variable
++      in the openserctl, openser_mysql and openser_postgresql scripts.
++
++ -- Julien BLACHE <jblache@debian.org>  Fri, 12 Jan 2007 15:20:26 +0100
++
++openser (1.1.0-8) unstable; urgency=high
++
++  * debian/patches/22_OpenPKG-SA-2006.042.dpatch:
++    + Added; security fix for OpenPKG-SA-2006.042 (closes: #404591).
++
++ -- Julien BLACHE <jblache@debian.org>  Tue, 26 Dec 2006 22:13:26 +0100
++
++openser (1.1.0-7) unstable; urgency=low
++
++  * Sync packaging fixes from upstream CVS.
++  * debian/control:
++    + Fix wrong RFC number in description (3621 vs. 3261), spotted by Dan Pascu.
++  * debian/rules:
++    + Add avp_radius to RADIUS_MODULES, from Bogdan-Andrei Iancu.
++
++ -- Julien BLACHE <jblache@debian.org>  Fri,  3 Nov 2006 13:35:18 +0100
++
++openser (1.1.0-6) unstable; urgency=low
++
++  * debian/patches/21_arm_register_overlap.dpatch:
++    + Added; fix register overlap on arm (closes: #393858).
++
++ -- Julien BLACHE <jblache@debian.org>  Sun, 22 Oct 2006 19:32:55 +0200
++
++openser (1.1.0-5) unstable; urgency=low
++
++  * debian/patches/20_20_pdt_domains.c_lockfix.dpatch:
++    + Added; fix typo in modules/pdt/domains.c:306.
++
++ -- Julien BLACHE <jblache@debian.org>  Sun,  8 Oct 2006 19:20:35 +0200
++
++openser (1.1.0-4) unstable; urgency=low
++
++  * debian/control:
++    + openser-dbg is Priority: extra.
++  * debian/patches/12_fail_on_build_failure.dpatch:
++    + Added; abort the build if a module fails to build.
++  * debian/rules:
++    + Temporarily decrease optimisation on arm (closes: #390005).
++
++ -- Julien BLACHE <jblache@debian.org>  Sun,  8 Oct 2006 12:11:55 +0200
++
++openser (1.1.0-3) unstable; urgency=low
++
++  * debian/rules:
++    + Remove DH_COMPAT 4 compatibility code which was introduced only for
++      Sarge backward-compatiblity in the upstream CVS; there's now a
++      packaging directory dedicated to Sarge.
++  * debian/control:
++    + Build-Depends cleanup.
++  * debian/patches/02_openser.cfg.dpatch:
++    + Remove the C-style comment block containing fork=no, otherwise the
++      default config file will trigger the test for fork=no in the
++      initscript (closes: #386464).
++  * debian/openser.README.Debian:
++    + Document initscript behaviour wrt fork=no.
++  * debian/openser.init:
++    + Add LSB header.
++
++ -- Julien BLACHE <jblache@debian.org>  Fri,  8 Sep 2006 15:04:58 +0200
++
++openser (1.1.0-2) unstable; urgency=low
++
++  * Initial Debian release (closes: #380450).
++
++  * Official Debian builds have no TLS support due to the lack of OpenSSL
++    license exception for OpenSER. Building TLS packages is supported using
++    the upstream TLS tarball with no modifications (you'll need libssl-dev).
++
++  * debian/openser.init:
++    + Do not start OpenSER in the start target if fork=no is specified in
++      the config file, so as to not break the boot process.
++  * debian/rules:
++    + Detect TLS/non-TLS sources, and enable TLS build accordingly.
++    + get-orig-source will fetch the non-TLS version for the official builds.
++    + Emulate debhelper v5 behaviour for debug symbols when build with
++      DH_COMPAT 4 to ease Sarge backports.
++  * debian/control:
++    + Drop build-dependency on libssl-dev for official Debian builds.
++    + Simplify dependencies/conflicts.
++
++ -- Julien BLACHE <jblache@debian.org>  Sun, 30 Jul 2006 15:23:13 +0200
++
++openser (1.1.0-1) unstable; urgency=low
++
++  * New upstream release.
++    + Packaging updated based on Daniel-Constantin's work upstream.
++  * debian/patches/02_postgres_module_build.dpatch:
++    + Removed; merged upstream.
++  * debian/patches/01_ungentooize.dpatch:
++    + Removed; merged upstream.
++  * debian/copyright:
++    + Updated based on upstream's.
++  * debian/openser.postinst:
++    + Change openser group GECOS to "OpenSER".
++  * debian/control:
++    + Rework package descriptions.
++    + Add openser-unixodbc-module package.
++    + Build-Depend on unixodbc-dev.
++  * debian/rules:
++    + Build the unixodbc module.
++  * debian/patches/01_sourced_scripts.dpatch:
++    + Added; remove the shebang line from scripts which aren't meant for
++      direct execution.
++  * debian/patches/10_no_lib64_on_64_bits.dpatch:
++    + Added; use /usr/lib even on 64bit architectures.
++  * debian/patches/11_always_smp.dpatch:
++    + Added; always build an SMP-enabled OpenSER.
++
++ -- Julien BLACHE <jblache@debian.org>  Wed, 12 Jul 2006 14:37:40 +0200
++
++openser (1.0.1-1) unstable; urgency=low
++
++  * Packaging sanitized.
++  * Remove everything debconf-related; setting up an HA cluster is an
++    advanced use of OpenSER which cannot be handled through debconf anyway.
++  * debian/control:
++    + Remove all -tls- packages.
++    + Add missing build-depends: zlib1g-dev, flex, bison.
++    + Build-Depend on libradiusclient-ng-dev, libmysqlclient15-dev.
++    + Packages descriptions rewritten.
++    + Add an openser-dbg package.
++  * debian/rules:
++    + Remove everything related to -tls- packages.
++    + Build with -g -Wall -O2
++  * debian/patches/01_ungetooize.dpatch:
++    + Added; Do not override CFLAGS if set in the environment. Allows building
++      at a rational optimisation level, and passing extra CFLAGS for debugging.
++  * debian/patches/02_postgres_module_build.dpatch:
++    + Added; Remove unneeded architecture restriction for the PostgreSQL module
++      build.
++
++ -- Julien BLACHE <jblache@debian.org>  Fri, 30 Jun 2006 22:22:11 +0200
++
++openser (1.0.1-0) unstable; urgency=low
++
++  * OpenSER v1.0.1 Release.
++
++ -- Daniel-Constantin Mierla <daniel@voice-system.ro>  Mon, 27 Feb 2006 19:23:00 +0200
++
++openser (1.0.0-2) unstable; urgency=low
++
++  * Create a sequence file for use if the radius accounting is enabled,
++    which is guaranteed to be writable by openser no matter what user
++    and group is running as. If radius accounting is used, this can be
++    added in your clients.conf that is used by openser as:
++    seqfile /var/run/openser/openser_radius.seq
++  * Fixed wording in the master_node template description
++
++ -- Dan Pascu <dan@ag-projects.com>  Fri, 03 Feb 2006 20:20:24 +0200
++
++openser (1.0.0-1) unstable; urgency=low
++
++  * Added support for debconf. A number of things can now be configured
++    when installing the package: if to start on boot, the ammount of
++    memory the openser server will use and if to dump core files when
++    the server crashes.
++  * Added support for storing startup options in /etc/default/openser.
++    This file is used by /etc/init.d/openser to setup various startup
++    options which no longer need to be modified in the startup script
++    itself.
++  * Fixed issue with not adding dependency on libradius-ng
++  * Fixed issue with the debian postinst scripts which resulted in the
++    openser system user not being created for the openser-tls package
++  * Fixed issue with some debhelper entries being added twice in the
++    openser postrm and prerm scripts
++  * Fixed issue with the openser system user not having his home
++    directory removed on purge
++  * Fixed a number of typos in the Suggests and Conflicts directives
++    in the debian control file
++  * Up to date with recent bugfixes from upstream
++
++ -- Dan Pascu <dan@ag-projects.com>  Thu, 02 Feb 2006 12:47:41 +0200
++
++openser (1.0.0-0) unstable; urgency=low
++
++  * First Public Release.
++
++ -- Daniel-Constantin Mierla <daniel@voice-system.ro>  Tue, 07 Jun 2005 18:23:19 +0200
++
++
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7cca35fc12e02453b902e84a6778fab3e8f919c9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,860 @@@
++Source: kamailio
++Section: net
++Priority: optional
++Maintainer: Debian VoIP Team <pkg-voip-maintainers@lists.alioth.debian.org>
++Uploaders:
++ Victor Seva <vseva@debian.org>,
++Build-Depends:
++ bison,
++ debhelper-compat (= 13),
++ default-libmysqlclient-dev,
++ docbook-xml,
++ erlang-dev,
++ flex,
++ libcurl4-openssl-dev,
++ libdb-dev,
++ libev-dev,
++ libevent-dev,
++ libexpat1-dev,
++ libgeoip-dev,
++ libhiredis-dev,
++ libjansson-dev,
++ libjson-c-dev,
++ libldap2-dev,
++ liblua5.1-0-dev,
++ libmaxminddb-dev,
++ libmemcached-dev,
++ libmnl-dev,
++ libmongoc-dev,
++ libmono-2.0-dev [amd64 armel armhf i386 mipsel kfreebsd-amd64 kfreebsd-i386 ppc64 ppc64el s390x],
++ libmosquitto-dev,
++ libnats-dev,
++ libncurses-dev,
++ libpcre2-dev,
++ libperl-dev,
++ libphonenumber-dev,
++ libpq-dev,
++ librabbitmq-dev,
++ libradcli-dev,
++ libreadline-dev,
++ libsasl2-dev,
++ libsctp-dev [linux-any],
++ libsecsipid-dev [amd64 arm64 armel armhf hurd-i386 i386 powerpc ppc64 ppc64el riscv64 s390x],
++ libsnmp-dev,
++ libsqlite3-dev,
++ libssl-dev,
++ libsystemd-dev,
++ libwebsockets-dev,
++ libunistring-dev,
++ libxml2-dev,
++ openssl,
++ pkg-config,
++ python3,
++ python3-dev,
++ ruby-dev,
++ unixodbc-dev,
++ uuid-dev,
++ xsltproc,
++ zlib1g-dev,
++Standards-Version: 4.6.0.1
++Homepage: http://www.kamailio.org/
++Vcs-Git: https://salsa.debian.org/pkg-voip-team/kamailio.git
++Vcs-Browser: https://salsa.debian.org/pkg-voip-team/kamailio/
++Rules-Requires-Root: no
++
++Package: kamailio
++Architecture: any
++Multi-Arch: foreign
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ adduser,
++ python3,
++ ${misc:Depends},
++ ${shlibs:Depends},
++Replaces:
++ kamailio-carrierroute-modules,
++Suggests:
++ kamailio-berkeley-modules,
++ kamailio-cpl-modules,
++ kamailio-ldap-modules,
++ kamailio-lua-modules,
++ kamailio-mono-modules,
++ kamailio-mysql-modules,
++ kamailio-perl-modules,
++ kamailio-postgres-modules,
++ kamailio-presence-modules,
++ kamailio-python3-modules,
++ kamailio-radius-modules,
++ kamailio-redis-modules,
++ kamailio-snmpstats-modules,
++ kamailio-tls-modules,
++ kamailio-unixodbc-modules,
++ kamailio-xml-modules,
++ kamailio-xmpp-modules,
++ stun-server | turn-server,
++Provides:
++ sip-router,
++Description: very fast, dynamic and configurable SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, kamailio can handle thousands requests
++ per second even on low-budget hardware. It can be configured to act
++ as a SIP proxy, application server, session border controller,
++ or call load balancer to handle a set of media servers.
++ .
++ A C Shell like scripting language provides full control over the server's
++ behaviour. It's easy to integrate Kamailio with 3rd party API's and
++ applications using HTTP, AMQP, database drivers, LDAP, Radius and many other
++ solutions. In addition there is support for scripting using Lua, Python, Perl,
++ Java and a set of other languages using Mono.
++ .
++ Kamailio's modular architecture allows only required functionality to be
++ loaded. There are over 100 modules available: WebSockets for WebRTC,
++ authentication, multiple databases - both traditional SQL databases as well as
++ no-SQL, message bus systems like Rabbit MQ, instant messaging, a presence
++ agent, integration with REST-ful APIs using HTTP and JSON or XML, radius
++ authentication, record routing, an SMS gateway, a XMPP/jabber gateway, a
++ transaction and dialog module, OSP module, statistics support,
++ registrar and user location services, SNMP, SIMPLE Presence and much more.
++ .
++ This package contains the main Kamailio binary along with the principal
++ modules and support binaries.
++
++Package: kamailio-geoip-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: geoip module for the Kamailio SIP Server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the geoip module, an extension enabling
++ usage of the GeoIP API within the Kamailio configuration file.
++
++Package: kamailio-geoip2-modules
++Architecture: linux-any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: geoip2 module for the Kamailio SIP Server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the geoip2 module, an extension enabling
++ real-time queries against the Max Mind GeoIP2 database within the Kamailio
++ configuration file.
++
++Package: kamailio-sqlite-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Recommends:
++ sqlite3,
++Description: SQLite database connectivity module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the SQLite database driver for Kamailio.
++
++Package: kamailio-json-modules
++Architecture: linux-any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Json parser and Json-RPC modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides a JSON parser for use in the Kamailio
++ configuration file and the JSON-RPC client over netstrings.
++
++Package: kamailio-memcached-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Replaces:
++ kamailio-memcached-module,
++Description: interface to the memcached server, for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the memcached module, an interface to the memcached
++ server, a high-performance, distributed memory object caching system.
++
++Package: kamailio-lua-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: app_lua module for Kamailio Lua support
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the app_lua module, an extension allowing to
++ execute embedded Lua applications within the configuration file as
++ well as writing the entire configuration file in Lua.
++
++Package: kamailio-mono-modules
++Architecture: amd64 armel i386 mipsel powerpc powerpcspe ppc64 s390x
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: app_mono module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the app_mono module, an extension allowing to
++ execute embedded Mono applications within the Kamailio SIP routing script.
++
++Package: kamailio-python3-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: app_python3 module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the app_python3 module, an extension allowing to
++ execute embedded Python applications within the Kamailio SIP routing script.
++
++Package: kamailio-ruby-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: app_ruby module for Kamailio Ruby support
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the app_ruby module, an extension allowing to
++ execute embedded Ruby applications within the Kamailio SIP routing script.
++
++Package: kamailio-redis-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Redis database connectivity module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the Redis NOSQL database driver for Kamailio.
++
++Package: kamailio-mysql-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ default-mysql-client | virtual-mysql-client,
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: MySQL database connectivity module for Kamailio
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the MySQL database driver for Kamailio.
++
++Package: kamailio-postgres-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ postgresql-client,
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: PostgreSQL database connectivity module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the PostgreSQL database driver for Kamailio.
++
++Package: kamailio-cpl-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: CPL module (CPL interpreter engine) for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides a CPL (Call Processing Language) interpreter for
++ Kamailio, turning Kamailio into a CPL server (storage and interpreter).
++
++Package: kamailio-radius-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: RADIUS modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides a set of RADIUS modules for Kamailio, for
++ authentication, peering, group membership and messages URIs checking against a
++ RADIUS server.
++
++Package: kamailio-unixodbc-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: unixODBC database connectivity module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the unixODBC database driver for Kamailio.
++
++Package: kamailio-presence-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: SIP presence modules for Kamailio
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides several Kamailio modules for implementing a presence
++ server and presence user agent for rich presence, registrar-based presence,
++ external triggered presence with SIMPLE and XCAP support, as well as a
++ set of other SIP event packages..
++
++Package: kamailio-perl-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Perl extensions and database driver for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides an interface for Kamailio to write Perl extensions and
++ the perlvdb database driver for Kamailio.
++
++Package: kamailio-snmpstats-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ snmpd,
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: SNMP AgentX subagent module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the snmpstats module for Kamailio. This module acts
++ as an AgentX subagent which connects to a master agent. The Kamailio MIBS are
++ included.
++
++Package: kamailio-xmpp-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: XMPP gateway module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the SIP to XMPP IM translator module for Kamailio.
++
++Package: kamailio-xml-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Replaces:
++ kamailio-xml-module,
++ kamailio-xmlrpc-module,
++Provides:
++ kamailio-xmlrpc-modules,
++Description: XML based extensions for Kamailio's Management Interface
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides:
++ - the XMLRPC transport implementations for Kamailio's
++ Management and Control Interface.
++ - xmlops module for XPath operations in configuration file
++
++Package: kamailio-berkeley-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ db-util,
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Berkeley database module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the Berkeley database module for Kamailio, a
++ high-performance embedded database. All database tables are stored
++ in files, no additional server is necessary.
++
++Package: kamailio-berkeley-bin
++Architecture: any
++Multi-Arch: foreign
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Berkeley database module for Kamailio - helper program
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides helper modules for the Berkeley database module for
++ Kamailio, a high-performance embedded DB kernel. You should normally
++ install kamailio-berkeley-modules and not this package directly.
++
++Package: kamailio-ldap-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: LDAP modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the ldap and h350 modules for Kamailio, enabling LDAP
++ queries from the Kamailio routing scripts and storage of SIP account data in
++ an LDAP directory.
++
++Package: kamailio-ims-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: IMS module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package contains various Diameter interfaces and modules for Kamailio
++ to run as an IMS core.
++
++Package: kamailio-utils-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Utility functions for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides a set of utility functions for Kamailio, as well
++ as modules for restful HTTP API access using the CURL library in the
++ http_client module.
++
++Package: kamailio-sctp-modules
++Architecture: linux-any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: SCTP SIP transport module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the SCTP SIP transport module for Kamailio.
++
++Package: kamailio-tls-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: TLS support for the Kamailio SIP server (authentication, transport)
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides TLS support for encrypted and authenticated
++ SIP connections as well as generic TLS support for many Kamailio modules.
++
++Package: kamailio-outbound-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: SIP Outbound module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package contains the "outbound" module implementing SIP outbound extension
++
++Package: kamailio-websocket-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: WebSocket module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package contains the module implementing WebSocket transport layer
++ for use in SIP over WebSockets, in combination with WebRTC media sessions..
++
++Package: kamailio-autheph-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: authentication using ephemeral credentials for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the ephemeral authentication module for Kamailio,
++ enabling authentication using a Restful HTTP API.
++
++Package: kamailio-kazoo-modules
++Architecture: linux-any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: kazoo modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the Kazoo application server integration module for
++ Kamailio.
++
++Package: kamailio-rabbitmq-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: RabbitMQ and AMQP integration modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the RabbitMQ module for Kamailio, enabling AMQP
++ integration into the SIP routing scripts for third party service
++ support.
++
++Package: kamailio-cnxcc-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: cnxcc modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the cnxcc call charging control module for Kamailio.
++
++Package: kamailio-erlang-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Erlang modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This Kamailio module provides interaction with the Erlang node from the
++ Kamailio SIP routing scripts. The module allows sending, receiving Erlang
++ messages and RPC calls between each other.
++
++Package: kamailio-systemd-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: systemd logging modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides logging to systemd journal directly from the
++ Kamailio configuration and routing scripts.
++
++Package: kamailio-phonenum-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: phonenum modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides real-time queries against the libphonenumber to be
++ performed directly from the Kamailio configuration and routing scripts.
++
++Package: kamailio-mongodb-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: mongodb modules for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides the mongodb database driver and non-db connector for
++ Kamailio.
++
++Package: kamailio-mqtt-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: MQTT modules for the Kamailio SIP Server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ MQTT module allows bidirectional publish/subscribe communication by
++ connecting Kamailio to a MQTT Broker.
++ .
++ Messages can be published from any point in the routing script. Also
++ the subscriptions can be fully controlled by scripting commands.
++
++Package: kamailio-secsipid-modules
++Architecture: amd64 arm64 armel armhf hurd-i386 i386 powerpc ppc64 ppc64el riscv64 s390x
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: secsipid module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package contains the secsipid module, witch provides
++ STIR and SHAKEN (RFC8224, RFC8588).
++
++Package: kamailio-lwsc-modules
++Architecture: linux-any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Libwebsockets module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package contains the lwcs module, which provides a client-side WebSockets
++ API through libwebsockets.
++
++Package: kamailio-nats-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Nats module for the Kamailio SIP server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package contains the nats module, which provides a NATS consumer for Kamailio.
++ NATS is a real time distributed messaging platform, more details about it can be
++ found at nats.io.
++
++
++Package: kamailio-extra-modules
++Architecture: any
++Multi-Arch: same
++Pre-Depends:
++ ${misc:Pre-Depends},
++Depends:
++ kamailio (= ${binary:Version}),
++ ${misc:Depends},
++ ${shlibs:Depends},
++Description: Extra modules for the Kamailio SIP Server
++ Kamailio is a very fast and flexible SIP (RFC3261)
++ server. Written entirely in C, Kamailio can handle thousands calls
++ per second even on low-budget hardware.
++ .
++ This package provides a set of modules for compression of SIP attachments,
++ UUID usage, JSON data structure support, HTTP restful API asynchronous
++ access and a few more functions:
++ gzcompress uuid evapi jansson janssonrpcc http_async_client
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f65a2bfcc27b4afeb6a4678352a83336f6706f6f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,289 @@@
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: Kamailio
++Upstream-Contact: sr-dev@lists.kamailio.org
++Source: https://www.kamailio.org/pub/kamailio/
++
++Files: *
++Copyright:
++ 2001-2003 FhG Fokus
++ 2006-2010 iptelorg GmbH
++ Various others (see AUTHORS file)
++License: GPL-2.0+
++ On Debian systems, the full text of the GNU General Public
++ License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
++
++Files: debian/*
++Copyright: 2012-2021 Victor Seva <vseva@debian.org>
++           2009-2011 Daniel-Constantin Mierla <miconda@gmail.com>
++           2010, Jon Bonilla <manwe@aholab.ehu.es>
++           2009, Jonas Bergler <jonas.bergler@staff.snap.net.nz>
++           2009, Henning Westerholt <henning.westerholt@1und1.de>
++           2007, Julien BLACHE <jblache@debian.org>
++License: GPL-2+
++ On Debian systems, the full text of the GNU General Public
++ License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
++
++
++Files: src/core/*
++ src/modules/tm/rpc_uac.* src/modules/counters/counters.c
++ src/modules/tls/sbufq.h src/modules/tls/tls_bio.*
++ src/modules/tls/tls_cfg.* src/modules/tls/tls_ct_wrq.*
++ src/modules/tls/tls_ct_q.h
++ src/modules/tls/tls_server.* src/modules/tls/tls_locking.*
++ src/modules/malloc_test/malloc_test.c
++ src/modules/blst/blst.c
++Copyright: 2006-2010 iptelorg GmbH
++License: ISC
++
++Files: src/modules/tls/tls_rpc.* src/modules/tls/tls_domain.*
++Copyright: 2001-2003 FhG Fokus
++           2006-2010 iptelorg GmbH
++License: ISC
++
++Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
++Copyright: 2005-2010 iptelorg GmbH
++License: GPL-2 with OpenSSL exception
++
++Files: src/modules/websocket/* src/modules/outbound/*
++ src/modules/auth_ephemeral/*
++Copyright: 2012-2013 Crocodile RCS Ltd
++License: GPL-2 with OpenSSL exception
++
++License: GPL-2 with OpenSSL exception
++ On Debian systems, the full text of the GNU General Public
++ License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
++ * Exception: permission to copy, modify, propagate, and distribute a work
++ * formed by combining OpenSSL toolkit software and the code in this file,
++ * such as linking with software components and libraries released under
++ * OpenSSL project license.
++
++Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
++ src/core/mem/mem.* src/core/mem/f_malloc.*
++ src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.*
++ src/core/mem/q_malloc.*
++ src/core/pt.* src/core/sched_yield.h src/core/ut.*
++Copyright: 2001-2003 FhG Fokus
++License: ISC
++
++Files: src/core/events.* src/modules/topoh/*
++Copyright: 2009 SIP-Router.org
++License: ISC
++
++Files: src/modules/pv/pv_xavp.*
++ src/modules/usrloc/ul_rpc.* src/core/ppcfg.* src/core/xavp.*
++Copyright: 2009-2010 Daniel-Constantin Mierla (asipto.com)
++License: ISC
++
++Files: src/modules/xmpp/xsnprintf.c
++Copyright: 1995-1998, The Apache Group
++License: Apache-1.0
++ 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.
++ .
++ 3. All advertising materials mentioning features or use of this
++    software must display the following acknowledgment:
++    "This product includes software developed by the Apache Group
++    for use in the Apache HTTP server project (http://www.apache.org/)."
++ .
++ 4. The names "Apache Server" and "Apache Group" must not be used to
++    endorse or promote products derived from this software without
++    prior written permission.
++ .
++ 5. Redistributions of any form whatsoever must retain the following
++    acknowledgment:
++    "This product includes software developed by the Apache Group
++    for use in the Apache HTTP server project (http://www.apache.org/)."
++ .
++ THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
++ EXPRESSED 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 APACHE GROUP OR
++ ITS 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.
++
++Files: src/core/list.h
++Copyright: 1991, 1993 The Regents of the University of California
++License: BSD-3-clause
++
++Files: src/modules/tm/t_serial.*
++Copyright: 2008 Juha Heinanen
++License: BSD-2-clause
++
++Files: src/core/parser/sdp/sdp.* src/core/parser/sdp/sdp_helpr_funcs.*
++ src/core/parser/sdp/sdp_cloner.h
++Copyright:
++ 2008-2009 SOMA Networks, INC.
++ 2010 VoIP Embedded, Inc
++License: BSD-2-clause
++
++Files: src/modules/tls/fixed_c_zlib.h
++Copyright:1998-2005 The OpenSSL Project
++Comment: file copied from OpenSSL 0.9.8, refers to OpenSSL License. Note that
++ this code will not build by default in the Debian packaging.
++License: OpenSSL
++ 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.
++ .
++ 3. All advertising materials mentioning features or use of this
++    software must display the following acknowledgment:
++    "This product includes software developed by the OpenSSL Project
++    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
++ .
++ 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
++    endorse or promote products derived from this software without
++    prior written permission. For written permission, please contact
++    openssl-core@openssl.org.
++ .
++ 5. Products derived from this software may not be called "OpenSSL"
++    nor may "OpenSSL" appear in their names without prior written
++    permission of the OpenSSL Project.
++ .
++ 6. Redistributions of any form whatsoever must retain the following
++    acknowledgment:
++    "This product includes software developed by the OpenSSL Project
++    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
++ .
++ THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
++ EXPRESSED 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 OpenSSL PROJECT OR
++ ITS 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.
++
++Files: src/core/crypto/md5.* src/core/crypto/md5utils.*
++Copyright: 1991-2, RSA Data Security, Inc
++Comment: As for md5utils.c, according to a mail from Upstream (Daniel-Constantin
++ Mierla): while the initial commit log for it states that it is derived
++ from mddriver.c of RFC 1321, it seems that it was, in fact, written from
++ scratch by Jiri Kuthan (a core developer of SER at that time, working for
++ FhG Fokus Institute). As you can see it's rather trivial and uses a data
++ type of SER ("str").  I didn't reimplement it as it's too trivial and
++ looks like there's no other way to implement it.
++License: public-domain-md5
++ This code implements the MD5 message-digest algorithm.
++ The algorithm is due to Ron Rivest.  This code was
++ written by Colin Plumb in 1993, no copyright is claimed.
++ This code is in the public domain; do with it what you wish.
++
++Files: src/core/mem/dl_*
++Copyright: n/a
++License: public-domain-mem
++ This is a version (aka dlmalloc) of malloc/free/realloc written by
++ Doug Lea and released to the public domain, as explained at
++ http://creativecommons.org/licenses/publicdomain.  Send questions,
++ comments, complaints, performance data, etc to dl@cs.oswego.edu
++
++Files: src/core/rand/isaac/*
++Copyright: n/a
++License: public-domain-rand
++ By Bob Jenkins.  My random number generator, ISAAC.  Public Domain.
++
++License: ISC
++ Permission to use, copy, modify, and 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.
++
++Files: src/core/utils/srjson.*
++Copyright: 2009 Dave Gamble
++License: MIT
++ Permission is hereby granted, free of charge, to any person obtaining a copy
++ of this software and associated documentation files (the "Software"), to deal
++ in the Software without restriction, including without limitation the rights
++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ copies of the Software, and to permit persons to whom the Software is
++ furnished to do so, subject to the following conditions:
++ .
++ The above copyright notice and this permission notice shall be included in
++ all copies or substantial portions of the Software.
++ ,
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++ THE SOFTWARE.
++
++License: BSD-3-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.
++ 4. Neither the name of the University nor the names of its contributors
++    may be used to endorse or promote products derived from this software
++    without specific prior written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
++
++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 FREEBSD PROJECT ``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 FREEBSD PROJECT 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.
diff --cc debian/gdb.conf
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d9d8ad852b3b4ea86846c4298d7c3b6e4ad3d0c7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++[DEFAULT]
++debian-branch = master
++upstream-tag = upstream/%(version)s
++debian-tag = debian/%(version)s
++pristine-tar = True
++
++[git-import-orig]
++filter = pkg
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d7a495613a83d529b51bc3e92994feb6b32f8437
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,48 @@@
++Kamailio for Debian
++-------------------
++
++* init script check for fork=no
++-------------------------------
++
++The Kamailio init script will not start Kamailio on boot if fork=no is
++specified in the config file. The check in the initscript will match
++any occurrence of fork=no in the file, even inside C-style comments.
++
++You can disable this check in the init script if you wish; just comment
++out the calls to the check_fork function in the script. Your changes to
++the init script will be preserved upon upgrade, as the file is tagged
++as a conffile.
++
++
++* different module defaults
++---------------------------
++
++upstream's default configs had been modified. See #775681 for more details.
++
++- mi_fifo: "fifo_name" => "/var/run/kamailio/kamailio_fifo"
++- ctl: "binrpc" => "/var/run/kamailio/kamailio_ctl"
++
++
++* Kamailio setup
++----------------
++
++To setup Kamailio, you need to:
++ - configure Kamailio properly to suit your needs
++ - edit /etc/default/kamailio, adjust the MEMORY parameter and set
++   RUN_KAMAILIO to "yes"
++
++If you are building an HA cluster using heartbeat or similar, you'll want
++to disable the init script by running:
++
++  update-rc.d kamailio remove
++
++so that Kamailio will not be launched at system startup. You still need
++to set RUN_KAMAILIO to "yes" if you want to use the /etc/init.d/kamailio init
++script.
++
++Set the DUMP_CORE parameter in /etc/default/kamailio to "yes" if you want to
++get a core dump in case Kamailio crashes. The debug symbols for Kamailio are
++provided by the kamailio-dbg package.
++
++
++ -- Victor Seva <linuxmaniac@torreviejawireless.org>  Wed, 28 Jan 2015 20:43:44 +0100
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8b20fc0035846f0b8f22952268413f3d227c6ab2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,28 @@@
++#
++# Kamailio startup options
++#
++
++# Set to yes to enable kamailio, once configured properly.
++#RUN_KAMAILIO=yes
++
++# User to run as
++#USER=kamailio
++
++# Group to run as
++#GROUP=kamailio
++
++# Amount of shared and private memory to allocate
++# for the running Kamailio server (in Mb)
++#SHM_MEMORY=64
++#PKG_MEMORY=8
++
++# Config file
++#CFGFILE=/etc/kamailio/kamailio.cfg
++
++# Enable the server to leave a core file when it crashes.
++# Set this to 'yes' to enable Kamailio to leave a core file when it crashes
++# or 'no' to disable this feature. This option is case sensitive and only
++# accepts 'yes' and 'no' and only in lowercase letters.
++# On some systems it is necessary to specify a directory for the core files
++# to get a dump. Look into the kamailio init file for an example configuration.
++#DUMP_CORE=yes
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a4ce6f43aca20c2410bf6778ba3b38db8bb04a80
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++misc/examples/*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dd576467bdc8aa738562c55027f1e870b89a2249
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,137 @@@
++#! /bin/sh
++#
++### BEGIN INIT INFO
++# Provides:          kamailio
++# Required-Start:    $syslog $network $local_fs $remote_fs $time
++# Should-Start:      $named slapd mysql postgresql snmpd radiusd
++# Should-Stop:       $named slapd mysql postgresql snmpd radiusd
++# Required-Stop:     $syslog $network $local_fs $remote_fs
++# Default-Start:     2 3 4 5
++# Default-Stop:      0 1 6
++# Short-Description: Start the Kamailio SIP proxy server
++# Description:       Start the Kamailio SIP proxy server
++### END INIT INFO
++
++. /lib/lsb/init-functions
++
++PATH=/sbin:/bin:/usr/sbin:/usr/bin
++DAEMON=/usr/sbin/kamailio
++NAME=`basename "$0"`
++DESC="Kamailio SIP Server"
++HOMEDIR=/var/run/$NAME
++PIDFILE=$HOMEDIR/$NAME.pid
++DEFAULTS=/etc/default/$NAME
++CFGFILE=/etc/$NAME/kamailio.cfg
++RUN_KAMAILIO=no
++USER=kamailio
++GROUP=kamailio
++# Amount of shared and private memory to allocate
++# for the running Kamailio server (in Mb)
++SHM_MEMORY=64
++PKG_MEMORY=8
++DUMP_CORE=no
++
++# Do not start kamailio if fork=no is set in the config file
++# otherwise the boot process will just stop
++check_fork ()
++{
++    if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" $CFGFILE; then
++      log_failure_msg "Not starting $DESC: fork=no specified in config file; run /etc/init.d/kamailio debug instead"
++      exit 0
++    fi
++}
++
++check_kamailio_config ()
++{
++      # Check if kamailio configuration is valid before starting the server
++      set +e
++      out=$($DAEMON -f $CFGFILE -M $PKG_MEMORY -c 2>&1 > /dev/null)
++      retcode=$?
++      set -e
++      if [ "$retcode" != '0' ]; then
++          log_failure_msg "Not starting $DESC: invalid configuration file!"
++          log_failure_msg
++          log_failure_msg "$out"
++          log_failure_msg
++          exit 1
++      fi
++}
++
++test -f $DAEMON || exit 0
++
++# Load startup options if available
++if [ -f $DEFAULTS ]; then
++   . $DEFAULTS || true
++fi
++
++if [ "$RUN_KAMAILIO" != "yes" ]; then
++    log_failure_msg "Kamailio not yet configured. Edit /etc/default/$NAME first."
++    exit 0
++fi
++
++set -e
++
++SHM_MEMORY=$((`echo $SHM_MEMORY | sed -e 's/[^0-9]//g'`))
++PKG_MEMORY=$((`echo $PKG_MEMORY | sed -e 's/[^0-9]//g'`))
++[ -z "$USER" ]  && USER=kamailio
++[ -z "$GROUP" ] && GROUP=kamailio
++[ $SHM_MEMORY -le 0 ] && SHM_MEMORY=64
++[ $PKG_MEMORY -le 0 ] && PKG_MEMORY=4
++
++if test "$DUMP_CORE" = "yes" ; then
++    # set proper ulimit
++    ulimit -c unlimited
++
++    # directory for the core dump files
++    # COREDIR=/home/corefiles
++    # [ -d $COREDIR ] || mkdir $COREDIR
++    # chmod 777 $COREDIR
++    # echo "$COREDIR/core.%e.sig%s.%p" > /proc/sys/kernel/core_pattern
++fi
++
++# /var/run can be a tmpfs
++if [ ! -d $HOMEDIR ]; then
++    mkdir -p $HOMEDIR
++    chown ${USER}:${GROUP} $HOMEDIR
++fi
++
++OPTIONS="-f $CFGFILE -P $PIDFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP"
++
++case "$1" in
++  start|debug)
++      check_kamailio_config
++
++      if [ "$1" != "debug" ]; then
++          check_fork
++      fi
++
++      log_daemon_msg "Starting $DESC: $NAME"
++      start-stop-daemon --start --quiet --pidfile $PIDFILE \
++              --exec $DAEMON -- $OPTIONS || log_failure_msg " already running"
++      log_end_msg 0
++      ;;
++  stop)
++      log_daemon_msg "Stopping $DESC: $NAME"
++      start-stop-daemon --oknodo --stop --quiet --pidfile $PIDFILE \
++              --exec $DAEMON --retry 5
++      log_end_msg 0
++      ;;
++  restart|force-reload)
++      check_kamailio_config
++
++      $0 stop
++      $0 start
++      ;;
++  status)
++      log_daemon_msg "Status of $DESC: "
++
++      status_of_proc -p"$PIDFILE" $NAME $NAME
++      ;;
++  *)
++      N=/etc/init.d/$NAME
++      echo "Usage: $N {start|stop|restart|force-reload|status|debug}" >&2
++      exit 1
++      ;;
++esac
++
++exit 0
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b6f3d378e9a36d6e065ec1ed192b8119ca305c29
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/exec/exec.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/ims/icscf/kamailio.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/ims/scscf/kamailio.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/kemi/kamailio-basic-kemi.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/mixed/kamailio-minimal-anycast.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/mixed/kamailio-minimal-proxy.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/outbound/edge.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/outbound/edge_websocket.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/outbound/registrar.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/pkg/kamailio-basic.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/pkg/kamailio-oob.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/pkg/sipcapture.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/webrtc/kamailio-default-websocket.cfg #!KAMAILIO
++kamailio: example-interpreter-not-absolute usr/share/doc/kamailio/examples/webrtc/websocket.cfg #!KAMAILIO
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e2777808b09fbfe25f8c9d1a9932d4b767cd84ec
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++#! /bin/sh
++
++set -e
++
++case "$1" in
++    configure)
++        adduser --quiet --system --group --disabled-password \
++                --shell /bin/false --gecos "Kamailio SIP Server" \
++                --home /run/kamailio kamailio || true
++
++        ;;
++
++    abort-upgrade|abort-remove|abort-deconfigure)
++
++        ;;
++
++    *)
++        echo "postinst called with unknown argument \`$1'" >&2
++        exit 1
++        ;;
++esac
++
++#DEBHELPER#
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d46c5be502d8706933da4677834ca6af648a95cf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++[Unit]
++Description=Kamailio - the Open Source SIP Server
++Documentation=man:kamailio(8)
++Wants=network-online.target
++After=network-online.target
++
++[Service]
++Type=forking
++User=kamailio
++Group=kamailio
++Environment='CFGFILE=/etc/kamailio/kamailio.cfg'
++Environment='SHM_MEMORY=64'
++Environment='PKG_MEMORY=8'
++EnvironmentFile=-/etc/default/kamailio
++EnvironmentFile=-/etc/default/kamailio.d/*
++# PIDFile requires a full absolute path
++PIDFile=/run/kamailio/kamailio.pid
++# ExecStart requires a full absolute path
++ExecStart=/usr/sbin/kamailio -P /run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY
++Restart=on-failure
++# /run/kamailio in tmpfs
++RuntimeDirectory=kamailio
++RuntimeDirectoryMode=0770
++
++[Install]
++WantedBy=multi-user.target
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..442e4b6a42a558f77b8f2f038fbba2cd7e0fd04f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,78 @@@
++kamailio-autheph-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/auth_ephemeral.so
++kamailio-berkeley-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/db_berkeley.so
++kamailio-carrierroute-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/carrierroute.so
++kamailio-cnxcc-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/cnxcc.so
++kamailio-cpl-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/cpl-c.so
++kamailio-dnssec-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/dnssec.so
++kamailio-erlang-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/erlang.so
++kamailio-extra-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/evapi.so
++kamailio-extra-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/gzcompress.so
++kamailio-extra-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/jansson.so
++kamailio-extra-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/janssonrpc-c.so
++kamailio-extra-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/uuid.so
++kamailio-geoip-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/geoip.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/libkamailio_ims.so.0.1
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/cdp.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/cdp_avp.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_auth.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_charging.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_dialog.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_icscf.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_isc.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_qos.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_registrar_pcscf.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_registrar_scscf.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_usrloc_pcscf.so
++kamailio-ims-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ims_usrloc_scscf.so
++kamailio-json-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/json.so
++kamailio-json-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/jsonrpc-c.so
++kamailio-kazoo-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/kazoo.so
++kamailio-ldap-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/db2_ldap.so
++kamailio-ldap-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/h350.so
++kamailio-ldap-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ldap.so
++kamailio-lua-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/app_lua.so
++kamailio-memcached-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/memcached.so
++kamailio-mono-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/app_mono.so
++kamailio-mysql-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/db_mysql.so
++kamailio-outbound-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/outbound.so
++kamailio-perl-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/app_perl.so
++kamailio-perl-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/db_perlvdb.so
++kamailio-postgres-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/db_postgres.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/presence.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/presence_conference.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/presence_dialoginfo.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/presence_mwi.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/presence_profile.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/presence_reginfo.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/presence_xml.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/pua.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/pua_bla.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/pua_dialoginfo.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/pua_mi.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/pua_reginfo.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/pua_usrloc.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/pua_xmpp.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/rls.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/xcap_client.so
++kamailio-presence-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/xcap_server.so
++kamailio-purple-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/purple.so
++kamailio-python-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/app_python.so
++kamailio-radius-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/acc_radius.so
++kamailio-radius-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/auth_radius.so
++kamailio-radius-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/misc_radius.so
++kamailio-radius-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/peering.so
++kamailio-redis-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/ndb_redis.so
++kamailio-sctp-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/sctp.so
++kamailio-snmpstats-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/snmpstats.so
++kamailio-sqlite-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/db_sqlite.so
++kamailio-tls-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/auth_identity.so
++kamailio-tls-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/crypto.so
++kamailio-tls-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/tls.so
++kamailio-unixodbc-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/db_unixodbc.so
++kamailio-utils-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/http_client.so
++kamailio-utils-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/utils.so
++kamailio-websocket-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/websocket.so
++kamailio-xml-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/xhttp_pi.so
++kamailio-xml-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/xmlops.so
++kamailio-xml-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/xmlrpc.so
++kamailio-xmpp-modules: hardening-no-bindnow usr/lib/x86_64-linux-gnu/kamailio/modules/xmpp.so
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..633da90bb8b010f58ef5779d4688a74495b76526
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,44 @@@
++From: Adrian Bunk <bunk@debian.org>
++Date: Wed, 9 Feb 2022 06:21:59 +0200
++Subject: Stop setting -march on arm
++
++This broke the Debian armhf build due to the Debian gcc maintainer
++changing the semantics of -march to disable FPU support unless +fp
++is included.
++---
++ src/Makefile.defs | 8 ++++----
++ 1 file changed, 4 insertions(+), 4 deletions(-)
++
++diff --git a/src/Makefile.defs b/src/Makefile.defs
++index 801a2e3..29ac5fc 100644
++--- a/src/Makefile.defs
+++++ b/src/Makefile.defs
++@@ -1261,7 +1261,7 @@ ifeq    ($(ARCH), arm)
++ ifeq         ($(CC_NAME), gcc)
++                              C_DEFS+=-DCC_GCC_LIKE_ASM
++                              #common stuff
++-                             CFLAGS+=-marm -march=armv5t $(CC_OPT) -funroll-loops -fsigned-char $(PROFILE)
+++                             CFLAGS+=-marm $(CC_OPT) -funroll-loops -fsigned-char $(PROFILE)
++                      #if gcc 4.5+ or 4.2+
++ ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER))))
++                                      CFLAGS+= -ftree-vectorize -fno-strict-overflow
++@@ -1309,7 +1309,7 @@ ifeq    ($(ARCH), arm6)
++ ifeq         ($(CC_NAME), gcc)
++                              C_DEFS+=-DCC_GCC_LIKE_ASM
++                              #common stuff
++-                             CFLAGS+=-march=armv6 $(CC_OPT) -funroll-loops -fsigned-char \
+++                             CFLAGS+=-$(CC_OPT) -funroll-loops -fsigned-char \
++                                              $(PROFILE)
++                      #if gcc 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+
++ ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER))))
++@@ -1355,8 +1355,8 @@ ifeq    ($(ARCH), arm7)
++              # if gcc
++ ifeq         ($(CC_NAME), gcc)
++                              C_DEFS+=-DCC_GCC_LIKE_ASM
++-                             #common stuff, use armv7-a as lowest common architecture
++-                             CFLAGS+=-march=armv7-a $(CC_OPT) -funroll-loops -fsigned-char \
+++                             #common stuff
+++                             CFLAGS+=-$(CC_OPT) -funroll-loops -fsigned-char \
++                                              $(PROFILE)
++                      #if gcc 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+
++ ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER))))
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..eae62227941bcdbf6df5f5a359475a4b948150eb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++From: Tzafrir Cohen <tzafrir@debian.org>
++Date: Fri, 29 Sep 2023 16:39:21 +0200
++Subject: make sure symbols are exported from main binary to allow loading
++ modules
++
++---
++ src/Makefile | 2 ++
++ 1 file changed, 2 insertions(+)
++
++diff --git a/src/Makefile b/src/Makefile
++index 7c78f6c..eb1a8c6 100644
++--- a/src/Makefile
+++++ b/src/Makefile
++@@ -139,6 +139,8 @@ endif
++ main_makefile=1
++ include Makefile.defs
++ 
+++$(MAIN_NAME): LDFLAGS += -Wl,--export-dynamic
+++
++ static_modules_path=$(addprefix modules/, $(static_modules))
++ extra_sources=$(wildcard $(addsuffix /*.c, $(static_modules_path)))
++ extra_objs=$(extra_sources:.c=.o)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..168ea29a66bd66209fcf3198fce194ff59eb4921
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,21 @@@
++From: Victor Seva <linuxmaniac@torreviejawireless.org>
++Date: Fri, 29 Sep 2023 16:39:21 +0200
++Subject: Don't copy the INSTALL file to the docs dir
++
++---
++ src/Makefile | 2 --
++ 1 file changed, 2 deletions(-)
++
++diff --git a/src/Makefile b/src/Makefile
++index 6c2b35b..7c78f6c 100644
++--- a/src/Makefile
+++++ b/src/Makefile
++@@ -858,8 +858,6 @@ install-modules-all: install-every-module install-every-module-doc
++ 
++ 
++ install-doc: $(doc_prefix)/$(doc_dir) install-every-module-doc
++-     $(INSTALL_TOUCH) $(doc_prefix)/$(doc_dir)/INSTALL
++-     $(INSTALL_DOC) ../INSTALL $(doc_prefix)/$(doc_dir)
++      $(INSTALL_TOUCH) $(doc_prefix)/$(doc_dir)/README
++      $(INSTALL_DOC) ../README $(doc_prefix)/$(doc_dir)
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..217dc02e8483ac3fcd2a885a347a597a4672ea49
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++From: Victor Seva <linuxmaniac@torreviejawireless.org>
++Date: Fri, 29 Sep 2023 16:39:21 +0200
++Subject: don't try to install to lib64
++
++---
++ src/Makefile.defs | 10 +---------
++ 1 file changed, 1 insertion(+), 9 deletions(-)
++
++diff --git a/src/Makefile.defs b/src/Makefile.defs
++index d393653..801a2e3 100644
++--- a/src/Makefile.defs
+++++ b/src/Makefile.defs
++@@ -458,15 +458,7 @@ endif
++ 
++ $(info target architecture <$(ARCH)>, host architecture <$(HOST_ARCH)>)
++ 
++-LIBDIR ?=
++-ifeq ($(LIBDIR),)
++-ARCHBSZ= $(shell echo $(ARCH) | sed -e 's/.*64.*/64b/')
++-ifeq ($(ARCHBSZ),64b)
++-     LIBDIR = lib64
++-else
++-     LIBDIR = lib
++-endif
++-endif
+++LIBDIR ?= lib
++ 
++ # dirs
++ cfg_dir = etc/$(MAIN_NAME)/
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b6adb4d3de85ba0f7468cedab93005012fcb45f8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,30 @@@
++From: Victor Seva <linuxmaniac@torreviejawireless.org>
++Date: Tue, 22 Oct 2019 10:41:16 +0200
++Subject: no_tls_openssl_mutex_shared_util
++
++>
++https://github.com/kamailio/kamailio/commit/a0ca4cd43f098d10aa5aadcc18453cbd0120dcef
++
++```
++**IMPORTANT: the workaround of using this preloaded shared library is no longer
++needed starting with Kamailio v5.3.0-pre1 (git master branch after September 14, 2019).
++The code of this shared library has been included in the core of Kamailio and the
++same behaviour is now achieved by default.**
++```
++---
++ src/modules/tls/Makefile | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/src/modules/tls/Makefile b/src/modules/tls/Makefile
++index 9112150..5004343 100644
++--- a/src/modules/tls/Makefile
+++++ b/src/modules/tls/Makefile
++@@ -72,7 +72,7 @@ LIBS+= $(TLS_EXTRA_LIBS) -lpthread
++ # dcm: tls.cfg installed via local 'install-cfg' to update paths
++ #MOD_INSTALL_CFGS=tls.cfg
++ 
++-MOD_INSTALL_UTILS=utils/openssl_mutex_shared
+++MOD_INSTALL_UTILS=
++ 
++ include ../../Makefile.modules
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0b341342fd587a066df657abcc58b368e96a1e97
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,9 @@@
++# debian fixes
++no_lib64_on_64_bits.patch
++no_INSTALL_file.patch
++fix_export.patch
++no_tls_openssl_mutex_shared_util.patch
++0001-Stop-setting-march-on-arm.patch
++upstream/dialplan-migrate-to-pcre2.patch
++upstream/lcr-pcre2-migration.patch
++upstream/regex-migration-to-pcre2.patch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b86f42927bfa78fa0a2f6a0c45c74f760d2b35ba
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,443 @@@
++From: Victor Seva <linuxmaniac@torreviejawireless.org>
++Date: Mon, 21 Aug 2023 12:27:43 +0200
++Subject: dialplan: migrate to pcre2
++
++---
++ src/modules/dialplan/Makefile   |  11 ++---
++ src/modules/dialplan/dialplan.c |   5 ++
++ src/modules/dialplan/dialplan.h |  16 ++++---
++ src/modules/dialplan/dp_db.c    | 103 ++++++++++++++++++++++++----------------
++ src/modules/dialplan/dp_repl.c  |  52 +++++++++++++-------
++ 5 files changed, 117 insertions(+), 70 deletions(-)
++
++diff --git a/src/modules/dialplan/Makefile b/src/modules/dialplan/Makefile
++index abb4bf8..9fd2419 100644
++--- a/src/modules/dialplan/Makefile
+++++ b/src/modules/dialplan/Makefile
++@@ -6,20 +6,15 @@ auto_gen=
++ NAME=dialplan.so
++ 
++ ifeq ($(CROSS_COMPILE),)
++-PCRE_BUILDER = $(shell \
++-     if pkg-config --exists libcre; then \
++-             echo 'pkg-config libpcre'; \
++-     else \
++-             which pcre-config; \
++-     fi)
+++PCRE_BUILDER = $(shell command -v pcre2-config)
++ endif
++ 
++ ifeq ($(PCRE_BUILDER),)
++      PCREDEFS=-I$(LOCALBASE)/include
++-     PCRELIBS=-L$(LOCALBASE)/lib -lpcre
+++     PCRELIBS=-L$(LOCALBASE)/lib -lpcre2-8
++ else
++      PCREDEFS = $(shell $(PCRE_BUILDER) --cflags)
++-     PCRELIBS = $(shell $(PCRE_BUILDER) --libs)
+++     PCRELIBS = $(shell $(PCRE_BUILDER) --libs8)
++ endif
++ DEFS+=$(PCREDEFS)
++ LIBS=$(PCRELIBS)
++diff --git a/src/modules/dialplan/dialplan.c b/src/modules/dialplan/dialplan.c
++index 48df131..43aa6cd 100644
++--- a/src/modules/dialplan/dialplan.c
+++++ b/src/modules/dialplan/dialplan.c
++@@ -5,6 +5,8 @@
++  *
++  * Copyright (C)  2014 Olle E. Johansson, Edvina AB
++  *
+++ * Copyright (C)  2023 Victor Seva
+++ *
++  * This file is part of Kamailio, a free SIP server.
++  *
++  * Kamailio is free software; you can redistribute it and/or modify
++@@ -79,6 +81,9 @@ static int ki_dp_translate_vars(
++ int dp_replace_fixup(void **param, int param_no);
++ int dp_replace_fixup_free(void **param, int param_no);
++ 
+++pcre2_general_context *dpl_gctx = NULL;
+++pcre2_compile_context *dpl_ctx = NULL;
+++
++ str dp_attr_pvar_s = STR_NULL;
++ pv_spec_t *dp_attr_pvar = NULL;
++ 
++diff --git a/src/modules/dialplan/dialplan.h b/src/modules/dialplan/dialplan.h
++index c769d00..bdf2c3f 100644
++--- a/src/modules/dialplan/dialplan.h
+++++ b/src/modules/dialplan/dialplan.h
++@@ -30,7 +30,8 @@
++ #ifndef _DP_DIALPLAN_H
++ #define _DP_DIALPLAN_H
++ 
++-#include <pcre.h>
+++#define PCRE2_CODE_UNIT_WIDTH 8
+++#include <pcre2.h>
++ #include "../../core/pvar.h"
++ #include "../../core/parser/msg_parser.h"
++ 
++@@ -43,6 +44,9 @@
++ #define DP_TFLAGS_PV_MATCH (1 << 0)
++ #define DP_TFLAGS_PV_SUBST (1 << 1)
++ 
+++extern pcre2_general_context *dpl_gctx;
+++extern pcre2_compile_context *dpl_ctx;
+++
++ typedef struct dpl_node
++ {
++      int dpid;                                         /* dialplan id */
++@@ -52,8 +56,8 @@ typedef struct dpl_node
++      str match_exp;                            /* match-first string */
++      str subst_exp;                            /* match string with subtitution groupping */
++      str repl_exp;                             /* replacement expression string */
++-     pcre *match_comp;                         /* compiled matching expression */
++-     pcre *subst_comp;                         /* compiled substitution expression */
+++     pcre2_code *match_comp;           /* compiled matching expression */
+++     pcre2_code *subst_comp;           /* compiled substitution expression */
++      struct subst_expr *repl_comp; /* compiled replacement */
++      str attrs;                                        /* attributes string */
++      unsigned int tflags;              /* flags for type of values for matching */
++@@ -103,8 +107,8 @@ struct subst_expr *repl_exp_parse(str subst);
++ void repl_expr_free(struct subst_expr *se);
++ int dp_translate_helper(
++              sip_msg_t *msg, str *user_name, str *repl_user, dpl_id_p idp, str *);
++-int rule_translate(
++-             sip_msg_t *msg, str *instr, dpl_node_t *rule, pcre *subst_comp, str *);
+++int rule_translate(sip_msg_t *msg, str *instr, dpl_node_t *rule,
+++             pcre2_code *subst_comp, str *);
++ 
++-pcre *reg_ex_comp(const char *pattern, int *cap_cnt, int mtype);
+++pcre2_code *reg_ex_comp(const char *pattern, int *cap_cnt, int mtype);
++ #endif
++diff --git a/src/modules/dialplan/dp_db.c b/src/modules/dialplan/dp_db.c
++index cc4ebeb..857a2e4 100644
++--- a/src/modules/dialplan/dp_db.c
+++++ b/src/modules/dialplan/dp_db.c
++@@ -196,11 +196,31 @@ void dp_disconnect_db(void)
++      }
++ }
++ 
+++static void *pcre2_malloc(size_t size, void *ext)
+++{
+++     return shm_malloc(size);
+++}
+++
+++static void pcre2_free(void *ptr, void *ext)
+++{
+++     shm_free(ptr);
+++     ptr = NULL;
+++}
++ 
++ int init_data(void)
++ {
++      int *p;
++ 
+++     if((dpl_gctx = pcre2_general_context_create(pcre2_malloc, pcre2_free, NULL))
+++                     == NULL) {
+++             LM_ERR("pcre2 general context creation failed\n");
+++             return -1;
+++     }
+++     if((dpl_ctx = pcre2_compile_context_create(dpl_gctx)) == NULL) {
+++             LM_ERR("pcre2 compile context creation failed\n");
+++             return -1;
+++     }
+++
++      dp_rules_hash = (dpl_id_p *)shm_malloc(2 * sizeof(dpl_id_p));
++      if(!dp_rules_hash) {
++              LM_ERR("out of shm memory\n");
++@@ -227,6 +247,14 @@ int init_data(void)
++ 
++ void destroy_data(void)
++ {
+++     if(dpl_ctx) {
+++             pcre2_compile_context_free(dpl_ctx);
+++     }
+++
+++     if(dpl_gctx) {
+++             pcre2_general_context_free(dpl_gctx);
+++     }
+++
++      if(dp_rules_hash) {
++              destroy_hash(0);
++              destroy_hash(1);
++@@ -373,55 +401,50 @@ int dpl_str_to_shm(str src, str *dest, int mterm)
++ 
++ 
++ /* Compile pcre pattern
++- * if mtype==0 - return pointer to shm copy of result
++- * if mtype==1 - return pcre pointer that has to be pcre_free() */
++-pcre *reg_ex_comp(const char *pattern, int *cap_cnt, int mtype)
+++ * if mtype==0 - return pointer using shm
+++ * if mtype==1 - return pcre2_code pointer that has to be pcre2_code_free() */
+++pcre2_code *reg_ex_comp(const char *pattern, int *cap_cnt, int mtype)
++ {
++-     pcre *re, *result;
++-     const char *error;
++-     int rc, err_offset;
++-     size_t size;
++-
++-     re = pcre_compile(pattern, 0, &error, &err_offset, NULL);
+++     pcre2_code *re;
+++     int pcre_error_num = 0;
+++     char pcre_error[128];
+++     size_t pcre_erroffset;
+++     int rc;
+++
+++     re = pcre2_compile((PCRE2_SPTR)pattern, PCRE2_ZERO_TERMINATED, 0,
+++                     &pcre_error_num, &pcre_erroffset, mtype == 0 ? dpl_ctx : NULL);
++      if(re == NULL) {
++-             LM_ERR("PCRE compilation of '%s' failed at offset %d: %s\n", pattern,
++-                             err_offset, error);
++-             return (pcre *)0;
++-     }
++-     rc = pcre_fullinfo(re, NULL, PCRE_INFO_SIZE, &size);
++-     if(rc != 0) {
++-             pcre_free(re);
++-             LM_ERR("pcre_fullinfo on compiled pattern '%s' yielded error: %d\n",
++-                             pattern, rc);
++-             return (pcre *)0;
+++             switch(pcre2_get_error_message(
+++                             pcre_error_num, (PCRE2_UCHAR *)pcre_error, 128)) {
+++                     case PCRE2_ERROR_NOMEMORY:
+++                             snprintf(pcre_error, 128,
+++                                             "unknown error[%d]: pcre2 error buffer too small",
+++                                             pcre_error_num);
+++                             break;
+++                     case PCRE2_ERROR_BADDATA:
+++                             snprintf(pcre_error, 128, "unknown pcre2 error[%d]",
+++                                             pcre_error_num);
+++                             break;
+++             }
+++             LM_ERR("PCRE compilation of '%s' failed at offset %zu: %s\n", pattern,
+++                             pcre_erroffset, pcre_error);
+++             return NULL;
++      }
++-     rc = pcre_fullinfo(re, NULL, PCRE_INFO_CAPTURECOUNT, cap_cnt);
+++     rc = pcre2_pattern_info(re, PCRE2_INFO_CAPTURECOUNT, cap_cnt);
++      if(rc != 0) {
++-             pcre_free(re);
+++             pcre2_code_free(re);
++              LM_ERR("pcre_fullinfo on compiled pattern '%s' yielded error: %d\n",
++                              pattern, rc);
++-             return (pcre *)0;
++-     }
++-     if(mtype == 0) {
++-             result = (pcre *)shm_malloc(size);
++-             if(result == NULL) {
++-                     pcre_free(re);
++-                     LM_ERR("not enough shared memory for compiled PCRE pattern\n");
++-                     return (pcre *)0;
++-             }
++-             memcpy(result, re, size);
++-             pcre_free(re);
++-             return result;
++-     } else {
++-             return re;
+++             return NULL;
++      }
+++     return re;
++ }
++ 
++ 
++ /*compile the expressions, and if ok, build the rule */
++ dpl_node_t *build_rule(db_val_t *values)
++ {
++-     pcre *match_comp, *subst_comp;
+++     pcre2_code *match_comp, *subst_comp;
++      struct subst_expr *repl_comp;
++      dpl_node_t *new_rule;
++      str match_exp, subst_exp, repl_exp, attrs;
++@@ -544,9 +567,9 @@ dpl_node_t *build_rule(db_val_t *values)
++ 
++ err:
++      if(match_comp)
++-             shm_free(match_comp);
+++             pcre2_code_free(match_comp);
++      if(subst_comp)
++-             shm_free(subst_comp);
+++             pcre2_code_free(subst_comp);
++      if(repl_comp)
++              repl_expr_free(repl_comp);
++      if(new_rule)
++@@ -692,10 +715,10 @@ void destroy_rule(dpl_node_t *rule)
++      LM_DBG("destroying rule with priority %i\n", rule->pr);
++ 
++      if(rule->match_comp)
++-             shm_free(rule->match_comp);
+++             pcre2_code_free(rule->match_comp);
++ 
++      if(rule->subst_comp)
++-             shm_free(rule->subst_comp);
+++             pcre2_code_free(rule->subst_comp);
++ 
++      /*destroy repl_exp*/
++      if(rule->repl_comp)
++diff --git a/src/modules/dialplan/dp_repl.c b/src/modules/dialplan/dp_repl.c
++index fccbb46..42ba3b4 100644
++--- a/src/modules/dialplan/dp_repl.c
+++++ b/src/modules/dialplan/dp_repl.c
++@@ -38,7 +38,7 @@
++ 
++ typedef struct dpl_dyn_pcre
++ {
++-     pcre *re;
+++     pcre2_code *re;
++      int cnt;
++      str expr;
++ 
++@@ -186,9 +186,10 @@ int dpl_detect_avp_indx(const pv_elem_p elem, pv_elem_p *avp)
++      return 0;
++ }
++ 
++-pcre *dpl_dyn_pcre_comp(sip_msg_t *msg, str *expr, str *vexpr, int *cap_cnt)
+++pcre2_code *dpl_dyn_pcre_comp(
+++             sip_msg_t *msg, str *expr, str *vexpr, int *cap_cnt)
++ {
++-     pcre *re = NULL;
+++     pcre2_code *re = NULL;
++      int ccnt = 0;
++ 
++      if(expr == NULL || expr->s == NULL || expr->len <= 0 || vexpr == NULL
++@@ -225,7 +226,7 @@ dpl_dyn_pcre_p dpl_dynamic_pcre_list(sip_msg_t *msg, str *expr)
++      dpl_dyn_pcre_p rt = NULL;
++      struct str_list *l = NULL;
++      struct str_list *t = NULL;
++-     pcre *re = NULL;
+++     pcre2_code *re = NULL;
++      int cnt = 0;
++      str vexpr = STR_NULL;
++ 
++@@ -294,7 +295,7 @@ error:
++      while(re_list) {
++              rt = re_list->next;
++              if(re_list->re)
++-                     pcre_free(re_list->re);
+++                     pcre2_code_free(re_list->re);
++              pkg_free(re_list);
++              re_list = rt;
++      }
++@@ -400,15 +401,16 @@ error:
++ #define MAX_PHONE_NB_DIGITS 127
++ static char dp_output_buf[MAX_PHONE_NB_DIGITS + 1];
++ int rule_translate(sip_msg_t *msg, str *instr, dpl_node_t *rule,
++-             pcre *subst_comp, str *result)
+++             pcre2_code *subst_comp, str *result)
++ {
++      int repl_nb, offset, match_nb, rc, cap_cnt;
++      struct replace_with token;
++      struct subst_expr *repl_comp;
+++     pcre2_match_data *pcre_md = NULL;
++      str match;
++      pv_value_t sv;
++      str *uri;
++-     int ovector[3 * (MAX_REPLACE_WITH + 1)];
+++     PCRE2_SIZE *ovector = NULL;
++      char *p;
++      int size;
++ 
++@@ -424,7 +426,7 @@ int rule_translate(sip_msg_t *msg, str *instr, dpl_node_t *rule,
++ 
++      if(subst_comp) {
++              /*just in case something went wrong at load time*/
++-             rc = pcre_fullinfo(subst_comp, NULL, PCRE_INFO_CAPTURECOUNT, &cap_cnt);
+++             rc = pcre2_pattern_info(subst_comp, PCRE2_INFO_CAPTURECOUNT, &cap_cnt);
++              if(rc != 0) {
++                      LM_ERR("pcre_fullinfo on compiled pattern yielded error: %d\n", rc);
++                      return -1;
++@@ -441,15 +443,19 @@ int rule_translate(sip_msg_t *msg, str *instr, dpl_node_t *rule,
++              }
++ 
++              /*search for the pattern from the compiled subst_exp*/
++-             if(pcre_exec(subst_comp, NULL, instr->s, instr->len, 0, 0, ovector,
++-                                3 * (MAX_REPLACE_WITH + 1))
+++             pcre_md = pcre2_match_data_create_from_pattern(subst_comp, NULL);
+++             if(pcre2_match(subst_comp, (PCRE2_SPTR)instr->s, (PCRE2_SIZE)instr->len,
+++                                0, 0, pcre_md, NULL)
++                              <= 0) {
++                      LM_DBG("the string %.*s matched "
++                                 "the match_exp %.*s but not the subst_exp %.*s!\n",
++                                      instr->len, instr->s, rule->match_exp.len,
++                                      rule->match_exp.s, rule->subst_exp.len, rule->subst_exp.s);
+++                     if(pcre_md)
+++                             pcre2_match_data_free(pcre_md);
++                      return -1;
++              }
+++             ovector = pcre2_get_ovector_pointer(pcre_md);
++      }
++ 
++      /*simply copy from the replacing string*/
++@@ -463,6 +469,8 @@ int rule_translate(sip_msg_t *msg, str *instr, dpl_node_t *rule,
++              memcpy(result->s, repl_comp->replacement.s, repl_comp->replacement.len);
++              result->len = repl_comp->replacement.len;
++              result->s[result->len] = '\0';
+++             if(pcre_md)
+++                     pcre2_match_data_free(pcre_md);
++              return 0;
++      }
++ 
++@@ -571,11 +579,15 @@ int rule_translate(sip_msg_t *msg, str *instr, dpl_node_t *rule,
++      }
++ 
++      result->s[result->len] = '\0';
+++     if(pcre_md)
+++             pcre2_match_data_free(pcre_md);
++      return 0;
++ 
++ error:
++      result->s = 0;
++      result->len = 0;
+++     if(pcre_md)
+++             pcre2_match_data_free(pcre_md);
++      return -1;
++ }
++ 
++@@ -584,6 +596,7 @@ static char dp_attrs_buf[DP_MAX_ATTRS_LEN + 1];
++ int dp_translate_helper(
++              sip_msg_t *msg, str *input, str *output, dpl_id_p idp, str *attrs)
++ {
+++     pcre2_match_data *pcre_md = NULL;
++      dpl_node_p rulep;
++      dpl_index_p indexp;
++      int user_len, rez;
++@@ -624,21 +637,28 @@ search_rule:
++                                      rez = -1;
++                                      do {
++                                              if(rez < 0) {
++-                                                     rez = pcre_exec(re_list->re, NULL, input->s,
++-                                                                     input->len, 0, 0, NULL, 0);
+++                                                     pcre_md = pcre2_match_data_create_from_pattern(
+++                                                                     re_list->re, NULL);
+++                                                     rez = pcre2_match(re_list->re, (PCRE2_SPTR)input->s,
+++                                                                     (PCRE2_SIZE)input->len, 0, 0, pcre_md,
+++                                                                     NULL);
++                                                      LM_DBG("match check: [%.*s] %d\n",
++                                                                      re_list->expr.len, re_list->expr.s, rez);
++                                              } else
++                                                      LM_DBG("match check skipped: [%.*s] %d\n",
++                                                                      re_list->expr.len, re_list->expr.s, rez);
++                                              rt = re_list->next;
++-                                             pcre_free(re_list->re);
+++                                             pcre2_match_data_free(pcre_md);
+++                                             pcre2_code_free(re_list->re);
++                                              pkg_free(re_list);
++                                              re_list = rt;
++                                      } while(re_list);
++                              } else {
++-                                     rez = pcre_exec(rulep->match_comp, NULL, input->s,
++-                                                     input->len, 0, 0, NULL, 0);
+++                                     pcre_md = pcre2_match_data_create_from_pattern(
+++                                                     rulep->match_comp, NULL);
+++                                     rez = pcre2_match(rulep->match_comp, (PCRE2_SPTR)input->s,
+++                                                     (PCRE2_SIZE)input->len, 0, 0, pcre_md, 0);
+++                                     pcre2_match_data_free(pcre_md);
++                              }
++                              break;
++ 
++@@ -728,7 +748,7 @@ repl:
++                              LM_DBG("subst check skipped: [%.*s] %d\n", re_list->expr.len,
++                                              re_list->expr.s, rez);
++                      rt = re_list->next;
++-                     pcre_free(re_list->re);
+++                     pcre2_code_free(re_list->re);
++                      pkg_free(re_list);
++                      re_list = rt;
++              } while(re_list);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2abadfaa99e5e9df513a2889d07c67af644c11e1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,421 @@@
++From: Victor Seva <linuxmaniac@torreviejawireless.org>
++Date: Mon, 21 Aug 2023 13:30:36 +0200
++Subject: lcr: pcre2 migration
++
++---
++ src/modules/lcr/Makefile  |  12 +---
++ src/modules/lcr/hash.c    |  16 ++---
++ src/modules/lcr/hash.h    |   4 +-
++ src/modules/lcr/lcr_mod.c | 168 +++++++++++++++++++++++++++++++---------------
++ src/modules/lcr/lcr_mod.h |   8 ++-
++ 5 files changed, 131 insertions(+), 77 deletions(-)
++
++diff --git a/src/modules/lcr/Makefile b/src/modules/lcr/Makefile
++index 56be2e3..8b6bb22 100644
++--- a/src/modules/lcr/Makefile
+++++ b/src/modules/lcr/Makefile
++@@ -9,20 +9,15 @@ auto_gen=
++ NAME=lcr.so
++ 
++ ifeq ($(CROSS_COMPILE),)
++-PCRE_BUILDER = $(shell \
++-     if pkg-config --exists libcre; then \
++-             echo 'pkg-config libpcre'; \
++-     else \
++-             which pcre-config; \
++-     fi)
+++PCRE_BUILDER = $(shell command -v pcre2-config)
++ endif
++ 
++ ifeq ($(PCRE_BUILDER),)
++      PCREDEFS=-I$(LOCALBASE)/include
++-     PCRELIBS=-L$(LOCALBASE)/lib -lpcre
+++     PCRELIBS=-L$(LOCALBASE)/lib -lpcre2-8
++ else
++      PCREDEFS = $(shell $(PCRE_BUILDER) --cflags)
++-     PCRELIBS = $(shell $(PCRE_BUILDER) --libs)
+++     PCRELIBS = $(shell $(PCRE_BUILDER) --libs8)
++ endif
++ 
++ DEFS+=$(PCREDEFS)
++@@ -31,4 +26,3 @@ LIBS+=$(PCRELIBS)
++ SERLIBPATH=../../lib
++ SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1
++ include ../../Makefile.modules
++-
++diff --git a/src/modules/lcr/hash.c b/src/modules/lcr/hash.c
++index 41a3b0b..9d2f463 100644
++--- a/src/modules/lcr/hash.c
+++++ b/src/modules/lcr/hash.c
++@@ -36,9 +36,9 @@
++ /* Add lcr entry into hash table */
++ int rule_hash_table_insert(struct rule_info **hash_table, unsigned int lcr_id,
++              unsigned int rule_id, unsigned short prefix_len, char *prefix,
++-             unsigned short from_uri_len, char *from_uri, pcre *from_uri_re,
+++             unsigned short from_uri_len, char *from_uri, pcre2_code *from_uri_re,
++              unsigned short mt_tvalue_len, char *mt_tvalue,
++-             unsigned short request_uri_len, char *request_uri, pcre *request_uri_re,
+++             unsigned short request_uri_len, char *request_uri, pcre2_code *request_uri_re,
++              unsigned short stopper)
++ {
++      struct rule_info *rule;
++@@ -50,9 +50,9 @@ int rule_hash_table_insert(struct rule_info **hash_table, unsigned int lcr_id,
++      if(rule == NULL) {
++              SHM_MEM_ERROR_FMT("for rule hash table entry\n");
++              if(from_uri_re)
++-                     shm_free(from_uri_re);
+++                     pcre2_code_free(from_uri_re);
++              if(request_uri_re)
++-                     shm_free(request_uri_re);
+++                     pcre2_code_free(request_uri_re);
++              return 0;
++      }
++      memset(rule, 0, sizeof(struct rule_info));
++@@ -99,9 +99,9 @@ int rule_hash_table_insert(struct rule_info **hash_table, unsigned int lcr_id,
++      if(rid == NULL) {
++              PKG_MEM_ERROR_FMT("for rule_id hash table entry\n");
++              if(from_uri_re)
++-                     shm_free(from_uri_re);
+++                     pcre2_code_free(from_uri_re);
++              if(request_uri_re)
++-                     shm_free(request_uri_re);
+++                     pcre2_code_free(request_uri_re);
++              shm_free(rule);
++              return 0;
++      }
++@@ -209,10 +209,10 @@ void rule_hash_table_contents_free(struct rule_info **hash_table)
++              r = hash_table[i];
++              while(r) {
++                      if(r->from_uri_re) {
++-                             shm_free(r->from_uri_re);
+++                             pcre2_code_free(r->from_uri_re);
++                      }
++                      if(r->request_uri_re)
++-                             shm_free(r->request_uri_re);
+++                             pcre2_code_free(r->request_uri_re);
++                      t = r->targets;
++                      while(t) {
++                              next_t = t->next;
++diff --git a/src/modules/lcr/hash.h b/src/modules/lcr/hash.h
++index 7b29932..62a8448 100644
++--- a/src/modules/lcr/hash.h
+++++ b/src/modules/lcr/hash.h
++@@ -34,9 +34,9 @@
++ 
++ int rule_hash_table_insert(struct rule_info **hash_table, unsigned int lcr_id,
++              unsigned int rule_id, unsigned short prefix_len, char *prefix,
++-             unsigned short from_uri_len, char *from_uri, pcre *from_uri_re,
+++             unsigned short from_uri_len, char *from_uri, pcre2_code *from_uri_re,
++              unsigned short mt_tvalue_len, char *mt_tvalue,
++-             unsigned short request_uri_len, char *request_uri, pcre *request_uri_re,
+++             unsigned short request_uri_len, char *request_uri, pcre2_code *request_uri_re,
++              unsigned short stopper);
++ 
++ int rule_hash_table_insert_target(struct rule_info **hash_table,
++diff --git a/src/modules/lcr/lcr_mod.c b/src/modules/lcr/lcr_mod.c
++index 1d5a1ff..0abb686 100644
++--- a/src/modules/lcr/lcr_mod.c
+++++ b/src/modules/lcr/lcr_mod.c
++@@ -43,7 +43,8 @@
++ #include <stdlib.h>
++ #include <string.h>
++ #include <arpa/inet.h>
++-#include <pcre.h>
+++#define PCRE2_CODE_UNIT_WIDTH 8
+++#include <pcre2.h>
++ #include "../../core/locking.h"
++ #include "../../core/sr_module.h"
++ #include "../../core/dprint.h"
++@@ -204,6 +205,9 @@ static unsigned int priority_ordering_param = 0;
++ /* mtree tree name */
++ str mtree_param = {"lcr", 3};
++ 
+++static pcre2_general_context *lcr_gctx = NULL;
+++static pcre2_compile_context *lcr_ctx = NULL;
+++
++ /*
++  * Other module types and variables
++  */
++@@ -422,6 +426,16 @@ static void lcr_db_close(void)
++      }
++ }
++ 
+++static void *pcre2_malloc(size_t size, void *ext)
+++{
+++     return shm_malloc(size);
+++}
+++
+++static void pcre2_free(void *ptr, void *ext)
+++{
+++     shm_free(ptr);
+++     ptr = NULL;
+++}
++ 
++ /*
++  * Module initialization function that is called before the main process forks
++@@ -703,7 +717,15 @@ static int mod_init(void)
++      lcr_db_close();
++ 
++      /* rule shared memory */
++-
+++     if((lcr_gctx = pcre2_general_context_create(pcre2_malloc, pcre2_free, NULL))
+++                     == NULL) {
+++             LM_ERR("pcre2 general context creation failed\n");
+++             goto err;
+++     }
+++     if((lcr_ctx = pcre2_compile_context_create(lcr_gctx)) == NULL) {
+++             LM_ERR("pcre2 compile context creation failed\n");
+++             goto err;
+++     }
++      /* rule hash table pointer table */
++      /* pointer at index 0 points to temp rule hash table */
++      rule_pt = (struct rule_info ***)shm_malloc(
++@@ -779,6 +801,12 @@ dberror:
++      lcr_db_close();
++ 
++ err:
+++     if(lcr_ctx) {
+++             pcre2_compile_context_free(lcr_ctx);
+++     }
+++     if(lcr_gctx) {
+++             pcre2_general_context_free(lcr_gctx);
+++     }
++      free_shared_memory();
++      return -1;
++ }
++@@ -875,33 +903,32 @@ static int comp_matched(const void *m1, const void *m2)
++ 
++ 
++ /* Compile pattern into shared memory and return pointer to it. */
++-static pcre *reg_ex_comp(const char *pattern)
+++static pcre2_code *reg_ex_comp(const char *pattern)
++ {
++-     pcre *re, *result;
++-     const char *error;
++-     int rc, err_offset;
++-     size_t size;
++-
++-     re = pcre_compile(pattern, 0, &error, &err_offset, NULL);
++-     if(re == NULL) {
++-             LM_ERR("pcre compilation of '%s' failed at offset %d: %s\n", pattern,
++-                             err_offset, error);
++-             return (pcre *)0;
++-     }
++-     rc = pcre_fullinfo(re, NULL, PCRE_INFO_SIZE, &size);
++-     if(rc != 0) {
++-             LM_ERR("pcre_fullinfo on compiled pattern '%s' yielded error: %d\n",
++-                             pattern, rc);
++-             return (pcre *)0;
++-     }
++-     result = (pcre *)shm_malloc(size);
+++     pcre2_code *result;
+++     int pcre_error_num = 0;
+++     char pcre_error[128];
+++     size_t pcre_erroffset;
+++
+++     result = pcre2_compile((PCRE2_SPTR)pattern, PCRE2_ZERO_TERMINATED, 0,
+++                     &pcre_error_num, &pcre_erroffset, lcr_ctx);
++      if(result == NULL) {
++-             pcre_free(re);
++-             SHM_MEM_ERROR_FMT("for compiled PCRE pattern\n");
++-             return (pcre *)0;
+++             switch(pcre2_get_error_message(
+++                             pcre_error_num, (PCRE2_UCHAR *)pcre_error, 128)) {
+++                     case PCRE2_ERROR_NOMEMORY:
+++                             snprintf(pcre_error, 128,
+++                                             "unknown error[%d]: pcre2 error buffer too small",
+++                                             pcre_error_num);
+++                             break;
+++                     case PCRE2_ERROR_BADDATA:
+++                             snprintf(pcre_error, 128, "unknown pcre2 error[%d]",
+++                                             pcre_error_num);
+++                             break;
+++             }
+++             LM_ERR("pcre compilation of '%s' failed at offset %zu: %s\n", pattern,
+++                             pcre_erroffset, pcre_error);
+++             return NULL;
++      }
++-     memcpy(result, re, size);
++-     pcre_free(re);
++      return result;
++ }
++ 
++@@ -1414,7 +1441,7 @@ int reload_tables()
++      db_key_t gw_cols[13];
++      db_key_t rule_cols[7];
++      db_key_t target_cols[4];
++-     pcre *from_uri_re, *request_uri_re;
+++     pcre2_code *from_uri_re, *request_uri_re;
++      struct gw_info *gws, *gw_pt_tmp;
++      struct rule_info **rules, **rule_pt_tmp;
++ 
++@@ -2129,11 +2156,12 @@ void add_gws_into_avps(struct gw_info *gws, struct matched_gw_info *matched_gws,
++ int load_gws_dummy(int lcr_id, str *ruri_user, str *from_uri, str *request_uri,
++              unsigned int *gw_indexes)
++ {
++-     int i, j;
+++     int i, j, rc;
++      unsigned int gw_index, now, dex;
++      struct rule_info **rules, *rule, *pl;
++      struct gw_info *gws;
++      struct target *t;
+++     pcre2_match_data *pcre_md = NULL;
++      struct matched_gw_info matched_gws[MAX_NO_OF_GWS + 1];
++      struct sip_uri furi;
++      struct usr_avp *avp;
++@@ -2178,12 +2206,18 @@ int load_gws_dummy(int lcr_id, str *ruri_user, str *from_uri, str *request_uri,
++                                      || strncmp(rule->prefix, ruri_user->s, pl->prefix_len))
++                              goto next;
++ 
++-                     if((rule->from_uri_len != 0)
++-                                     && (pcre_exec(rule->from_uri_re, NULL, from_uri->s,
++-                                                             from_uri->len, 0, 0, NULL, 0)
++-                                                     < 0))
++-                             goto next;
++-
+++                     if(rule->from_uri_len != 0) {
+++                             pcre_md = pcre2_match_data_create_from_pattern(
+++                                             rule->from_uri_re, NULL);
+++                             rc = pcre2_match(rule->from_uri_re, (PCRE2_SPTR)from_uri->s,
+++                                             (PCRE2_SIZE)from_uri->len, 0, 0, pcre_md, NULL);
+++                             if(pcre_md) {
+++                                     pcre2_match_data_free(pcre_md);
+++                                     pcre_md = NULL;
+++                             }
+++                             if(rc < 0)
+++                                     goto next;
+++                     }
++                      if((from_uri->len > 0) && (rule->mt_tvalue_len > 0)) {
++                              if(mtree_api.mt_match(&msg, &mtree_param, &(furi.user), 2)
++                                              == -1) {
++@@ -2216,9 +2250,16 @@ int load_gws_dummy(int lcr_id, str *ruri_user, str *from_uri, str *request_uri,
++                                                 "param has not been given.\n");
++                                      return -1;
++                              }
++-                             if(pcre_exec(rule->request_uri_re, NULL, request_uri->s,
++-                                                request_uri->len, 0, 0, NULL, 0)
++-                                             < 0)
+++                             pcre_md = pcre2_match_data_create_from_pattern(
+++                                             rule->request_uri_re, NULL);
+++                             rc = pcre2_match(rule->request_uri_re,
+++                                             (PCRE2_SPTR)request_uri->s,
+++                                             (PCRE2_SIZE)request_uri->len, 0, 0, pcre_md, NULL);
+++                             if(pcre_md) {
+++                                     pcre2_match_data_free(pcre_md);
+++                                     pcre_md = NULL;
+++                             }
+++                             if(rc < 0)
++                                      goto next;
++                      }
++ 
++@@ -2282,9 +2323,10 @@ static int ki_load_gws_furi(
++              sip_msg_t *_m, int lcr_id, str *ruri_user, str *from_uri)
++ {
++      str *request_uri;
++-     int i, j;
+++     int i, j, rc;
++      unsigned int gw_index, now, dex;
++      int_str val;
+++     pcre2_match_data *pcre_md = NULL;
++      struct matched_gw_info matched_gws[MAX_NO_OF_GWS + 1];
++      struct rule_info **rules, *rule, *pl;
++      struct gw_info *gws;
++@@ -2343,14 +2385,22 @@ static int ki_load_gws_furi(
++                              goto next;
++ 
++                      /* Match from uri */
++-                     if((rule->from_uri_len != 0)
++-                                     && (pcre_exec(rule->from_uri_re, NULL, from_uri->s,
++-                                                             from_uri->len, 0, 0, NULL, 0)
++-                                                     < 0)) {
++-                             LM_DBG("from uri <%.*s> did not match to from regex <%.*s>\n",
++-                                             from_uri->len, from_uri->s, rule->from_uri_len,
++-                                             rule->from_uri);
++-                             goto next;
+++                     if(rule->from_uri_len != 0) {
+++                             pcre_md = pcre2_match_data_create_from_pattern(
+++                                             rule->from_uri_re, NULL);
+++                             rc = pcre2_match(rule->from_uri_re, (PCRE2_SPTR)from_uri->s,
+++                                             (PCRE2_SIZE)from_uri->len, 0, 0, pcre_md, NULL);
+++                             if(pcre_md) {
+++                                     pcre2_match_data_free(pcre_md);
+++                                     pcre_md = NULL;
+++                             }
+++                             if(rc < 0) {
+++                                     LM_DBG("from uri <%.*s> did not match to from regex "
+++                                                "<%.*s>\n",
+++                                                     from_uri->len, from_uri->s, rule->from_uri_len,
+++                                                     rule->from_uri);
+++                                     goto next;
+++                             }
++                      }
++ 
++                      /* Match from uri user */
++@@ -2379,15 +2429,23 @@ static int ki_load_gws_furi(
++                      }
++ 
++                      /* Match request uri */
++-                     if((rule->request_uri_len != 0)
++-                                     && (pcre_exec(rule->request_uri_re, NULL, request_uri->s,
++-                                                             request_uri->len, 0, 0, NULL, 0)
++-                                                     < 0)) {
++-                             LM_DBG("request uri <%.*s> did not match to request regex "
++-                                        "<%.*s>\n",
++-                                             request_uri->len, request_uri->s, rule->request_uri_len,
++-                                             rule->request_uri);
++-                             goto next;
+++                     if(rule->request_uri_len != 0) {
+++                             pcre_md = pcre2_match_data_create_from_pattern(
+++                                             rule->request_uri_re, NULL);
+++                             rc = pcre2_match(rule->request_uri_re,
+++                                             (PCRE2_SPTR)request_uri->s,
+++                                             (PCRE2_SIZE)request_uri->len, 0, 0, pcre_md, NULL);
+++                             if(pcre_md) {
+++                                     pcre2_match_data_free(pcre_md);
+++                                     pcre_md = NULL;
+++                             }
+++                             if(rc < 0) {
+++                                     LM_DBG("request uri <%.*s> did not match to request regex "
+++                                                "<%.*s>\n",
+++                                                     request_uri->len, request_uri->s,
+++                                                     rule->request_uri_len, rule->request_uri);
+++                                     goto next;
+++                             }
++                      }
++ 
++                      /* Load gws associated with this rule */
++diff --git a/src/modules/lcr/lcr_mod.h b/src/modules/lcr/lcr_mod.h
++index 421fe68..0255241 100644
++--- a/src/modules/lcr/lcr_mod.h
+++++ b/src/modules/lcr/lcr_mod.h
++@@ -2,6 +2,7 @@
++  * Various lcr related constant, types, and external variables
++  *
++  * Copyright (C) 2005-2014 Juha Heinanen
+++ * Copyright (C) 2023 Victor Seva
++  *
++  * This file is part of Kamailio, a free SIP server.
++  *
++@@ -33,7 +34,8 @@
++ #define LCR_MOD_H
++ 
++ #include <stdio.h>
++-#include <pcre.h>
+++#define PCRE2_CODE_UNIT_WIDTH 8
+++#include <pcre2.h>
++ #include "../../core/locking.h"
++ #include "../../core/parser/parse_uri.h"
++ #include "../../core/ip_addr.h"
++@@ -60,10 +62,10 @@ struct rule_info
++      unsigned short from_uri_len;
++      char mt_tvalue[MAX_MT_TVALUE_LEN + 1];
++      unsigned short mt_tvalue_len;
++-     pcre *from_uri_re;
+++     pcre2_code *from_uri_re;
++      char request_uri[MAX_URI_LEN + 1];
++      unsigned short request_uri_len;
++-     pcre *request_uri_re;
+++     pcre2_code *request_uri_re;
++      unsigned short stopper;
++      unsigned int enabled;
++      struct target *targets;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f84600136398dc94f64ea74bd2ff8dbee9465019
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,436 @@@
++From: Victor Seva <linuxmaniac@torreviejawireless.org>
++Date: Wed, 9 Aug 2023 10:48:41 +0000
++Subject: regex: migration to pcre2
++
++---
++ src/modules/regex/Makefile    |  11 +-
++ src/modules/regex/regex_mod.c | 240 +++++++++++++++++++++++++++---------------
++ 2 files changed, 158 insertions(+), 93 deletions(-)
++
++diff --git a/src/modules/regex/Makefile b/src/modules/regex/Makefile
++index 3b8758a..db036b6 100644
++--- a/src/modules/regex/Makefile
+++++ b/src/modules/regex/Makefile
++@@ -5,20 +5,15 @@ auto_gen=
++ NAME=regex.so
++ 
++ ifeq ($(CROSS_COMPILE),)
++-PCRE_BUILDER = $(shell \
++-     if pkg-config --exists libcre; then \
++-             echo 'pkg-config libpcre'; \
++-     else \
++-             which pcre-config; \
++-     fi)
+++PCRE_BUILDER = $(shell command -v pcre2-config)
++ endif
++ 
++ ifeq ($(PCRE_BUILDER),)
++      PCREDEFS=-I$(LOCALBASE)/include
++-     PCRELIBS=-L$(LOCALBASE)/lib -lpcre
+++     PCRELIBS=-L$(LOCALBASE)/lib -lpcre2-8
++ else
++      PCREDEFS = $(shell $(PCRE_BUILDER) --cflags)
++-     PCRELIBS = $(shell $(PCRE_BUILDER) --libs)
+++     PCRELIBS = $(shell $(PCRE_BUILDER) --libs8)
++ endif
++ 
++ DEFS+=$(PCREDEFS)
++diff --git a/src/modules/regex/regex_mod.c b/src/modules/regex/regex_mod.c
++index 72247ca..568a71e 100644
++--- a/src/modules/regex/regex_mod.c
+++++ b/src/modules/regex/regex_mod.c
++@@ -2,6 +2,7 @@
++  * regex module - pcre operations
++  *
++  * Copyright (C) 2008 Iñaki Baz Castillo
+++ * Copyright (C) 2023 Victor Seva
++  *
++  * This file is part of Kamailio, a free SIP server.
++  *
++@@ -25,6 +26,7 @@
++  * \file
++  * \brief REGEX :: Perl-compatible regular expressions using PCRE library
++  * Copyright (C) 2008 Iñaki Baz Castillo
+++ * Copyright (C) 2023 Victor Seva
++  * \ingroup regex
++  */
++ 
++@@ -32,7 +34,8 @@
++ #include <stdlib.h>
++ #include <string.h>
++ #include <sys/stat.h>
++-#include <pcre.h>
+++#define PCRE2_CODE_UNIT_WIDTH 8
+++#include <pcre2.h>
++ #include "../../core/sr_module.h"
++ #include "../../core/dprint.h"
++ #include "../../core/pt.h"
++@@ -77,8 +80,11 @@ static int pcre_extended = 0;
++ /*
++  * Module internal parameter variables
++  */
++-static pcre **pcres;
++-static pcre ***pcres_addr;
+++static pcre2_general_context *pcres_gctx = NULL;
+++static pcre2_match_context *pcres_mctx = NULL;
+++static pcre2_compile_context *pcres_ctx = NULL;
+++static pcre2_code **pcres;
+++static pcre2_code ***pcres_addr;
++ static int *num_pcres;
++ static int pcre_options = 0x00000000;
++ 
++@@ -151,6 +157,17 @@ struct module_exports exports = {
++ };
++ 
++ 
+++static void *pcre2_malloc(size_t size, void *ext)
+++{
+++     return shm_malloc(size);
+++}
+++
+++static void pcre2_free(void *ptr, void *ext)
+++{
+++     shm_free(ptr);
+++     ptr = NULL;
+++}
+++
++ /*! \brief
++  * Init module function
++  */
++@@ -180,24 +197,39 @@ static int mod_init(void)
++              /* PCRE options */
++              if(pcre_caseless != 0) {
++                      LM_DBG("PCRE CASELESS enabled\n");
++-                     pcre_options = pcre_options | PCRE_CASELESS;
+++                     pcre_options = pcre_options | PCRE2_CASELESS;
++              }
++              if(pcre_multiline != 0) {
++                      LM_DBG("PCRE MULTILINE enabled\n");
++-                     pcre_options = pcre_options | PCRE_MULTILINE;
+++                     pcre_options = pcre_options | PCRE2_MULTILINE;
++              }
++              if(pcre_dotall != 0) {
++                      LM_DBG("PCRE DOTALL enabled\n");
++-                     pcre_options = pcre_options | PCRE_DOTALL;
+++                     pcre_options = pcre_options | PCRE2_DOTALL;
++              }
++              if(pcre_extended != 0) {
++                      LM_DBG("PCRE EXTENDED enabled\n");
++-                     pcre_options = pcre_options | PCRE_EXTENDED;
+++                     pcre_options = pcre_options | PCRE2_EXTENDED;
++              }
++              LM_DBG("PCRE options: %i\n", pcre_options);
++ 
+++             if((pcres_gctx = pcre2_general_context_create(
+++                                     pcre2_malloc, pcre2_free, NULL))
+++                             == NULL) {
+++                     LM_ERR("pcre2 general context creation failed\n");
+++                     return -1;
+++             }
+++             if((pcres_ctx = pcre2_compile_context_create(pcres_gctx)) == NULL) {
+++                     LM_ERR("pcre2 compile context creation failed\n");
+++                     return -1;
+++             }
+++             if((pcres_mctx = pcre2_match_context_create(pcres_gctx)) == NULL) {
+++                     LM_ERR("pcre2 match context creation failed\n");
+++                     return -1;
+++             }
+++
++              /* Pointer to pcres */
++-             if((pcres_addr = shm_malloc(sizeof(pcre **))) == 0) {
+++             if((pcres_addr = shm_malloc(sizeof(pcre2_code **))) == 0) {
++                      LM_ERR("no memory for pcres_addr\n");
++                      goto err;
++              }
++@@ -227,6 +259,18 @@ err:
++ static void destroy(void)
++ {
++      free_shared_memory();
+++
+++     if(pcres_ctx) {
+++             pcre2_compile_context_free(pcres_ctx);
+++     }
+++
+++     if(pcres_mctx) {
+++             pcre2_match_context_free(pcres_mctx);
+++     }
+++
+++     if(pcres_gctx) {
+++             pcre2_general_context_free(pcres_gctx);
+++     }
++ }
++ 
++ 
++@@ -237,13 +281,11 @@ static int load_pcres(int action)
++      FILE *f;
++      char line[FILE_MAX_LINE];
++      char **patterns = NULL;
++-     pcre *pcre_tmp = NULL;
++-     size_t pcre_size;
++-     int pcre_rc;
++-     const char *pcre_error;
++-     int pcre_erroffset;
+++     int pcre_error_num = 0;
+++     char pcre_error[128];
+++     size_t pcre_erroffset;
++      int num_pcres_tmp = 0;
++-     pcre **pcres_tmp = NULL;
+++     pcre2_code **pcres_tmp = NULL;
++      int llen;
++ 
++      /* Get the lock */
++@@ -379,38 +421,34 @@ static int load_pcres(int action)
++      }
++ 
++      /* Temporal pointer of pcres */
++-     if((pcres_tmp = pkg_malloc(sizeof(pcre *) * num_pcres_tmp)) == 0) {
+++     if((pcres_tmp = pkg_malloc(sizeof(pcre2_code *) * num_pcres_tmp)) == 0) {
++              LM_ERR("no more memory for pcres_tmp\n");
++              goto err;
++      }
++-     for(i = 0; i < num_pcres_tmp; i++) {
++-             pcres_tmp[i] = NULL;
++-     }
+++     memset(pcres_tmp, 0, sizeof(pcre2_code *) * num_pcres_tmp);
++ 
++      /* Compile the patters */
++      for(i = 0; i < num_pcres_tmp; i++) {
++-
++-             pcre_tmp = pcre_compile(
++-                             patterns[i], pcre_options, &pcre_error, &pcre_erroffset, NULL);
++-             if(pcre_tmp == NULL) {
++-                     LM_ERR("pcre_tmp compilation of '%s' failed at offset %d: %s\n",
+++             pcres_tmp[i] = pcre2_compile((PCRE2_SPTR)patterns[i],
+++                             PCRE2_ZERO_TERMINATED, pcre_options, &pcre_error_num,
+++                             &pcre_erroffset, pcres_ctx);
+++             if(pcres_tmp[i] == NULL) {
+++                     switch(pcre2_get_error_message(
+++                                     pcre_error_num, (PCRE2_UCHAR *)pcre_error, 128)) {
+++                             case PCRE2_ERROR_NOMEMORY:
+++                                     snprintf(pcre_error, 128,
+++                                                     "unknown error[%d]: pcre2 error buffer too small",
+++                                                     pcre_error_num);
+++                                     break;
+++                             case PCRE2_ERROR_BADDATA:
+++                                     snprintf(pcre_error, 128, "unknown pcre2 error[%d]",
+++                                                     pcre_error_num);
+++                                     break;
+++                     }
+++                     LM_ERR("pcre_tmp compilation of '%s' failed at offset %zu: %s\n",
++                                      patterns[i], pcre_erroffset, pcre_error);
++                      goto err;
++              }
++-             pcre_rc = pcre_fullinfo(pcre_tmp, NULL, PCRE_INFO_SIZE, &pcre_size);
++-             if(pcre_rc) {
++-                     printf("pcre_fullinfo on compiled pattern[%i] yielded error: %d\n",
++-                                     i, pcre_rc);
++-                     goto err;
++-             }
++-
++-             if((pcres_tmp[i] = pkg_malloc(pcre_size)) == 0) {
++-                     LM_ERR("no more memory for pcres_tmp[%i]\n", i);
++-                     goto err;
++-             }
++-
++-             memcpy(pcres_tmp[i], pcre_tmp, pcre_size);
++-             pcre_free(pcre_tmp);
++              pkg_free(patterns[i]);
++              patterns[i] = NULL;
++      }
++@@ -419,31 +457,15 @@ static int load_pcres(int action)
++      if(action == RELOAD) {
++              for(i = 0; i < *num_pcres; i++) { /* Use the previous num_pcres value */
++                      if(pcres[i]) {
++-                             shm_free(pcres[i]);
+++                             pcre2_code_free(pcres[i]);
++                      }
++              }
++              shm_free(pcres);
++      }
++-     if((pcres = shm_malloc(sizeof(pcre *) * num_pcres_tmp)) == 0) {
++-             LM_ERR("no more memory for pcres\n");
++-             goto err;
++-     }
++-     memset(pcres, 0, sizeof(pcre *) * num_pcres_tmp);
++-     for(i = 0; i < num_pcres_tmp; i++) {
++-             pcre_rc = pcre_fullinfo(pcres_tmp[i], NULL, PCRE_INFO_SIZE, &pcre_size);
++-             if((pcres[i] = shm_malloc(pcre_size)) == 0) {
++-                     LM_ERR("no more memory for pcres[%i]\n", i);
++-                     goto err;
++-             }
++-             memcpy(pcres[i], pcres_tmp[i], pcre_size);
++-     }
++      *num_pcres = num_pcres_tmp;
+++     *pcres = *pcres_tmp;
++      *pcres_addr = pcres;
++ 
++-     /* Free used memory */
++-     for(i = 0; i < num_pcres_tmp; i++) {
++-             pkg_free(pcres_tmp[i]);
++-     }
++      pkg_free(pcres_tmp);
++      /* Free allocated slots for unused patterns */
++      for(i = num_pcres_tmp; i < max_groups; i++) {
++@@ -466,7 +488,7 @@ err:
++      if(pcres_tmp) {
++              for(i = 0; i < num_pcres_tmp; i++) {
++                      if(pcres_tmp[i]) {
++-                             pkg_free(pcres_tmp[i]);
+++                             pcre2_code_free(pcres_tmp[i]);
++                      }
++              }
++              pkg_free(pcres_tmp);
++@@ -520,42 +542,73 @@ static void free_shared_memory(void)
++ /*! \brief Return true if the argument matches the regular expression parameter */
++ static int ki_pcre_match(sip_msg_t *msg, str *string, str *regex)
++ {
++-     pcre *pcre_re = NULL;
+++     pcre2_code *pcre_re = NULL;
+++     pcre2_match_data *pcre_md = NULL;
++      int pcre_rc;
++-     const char *pcre_error;
++-     int pcre_erroffset;
+++     int pcre_error_num = 0;
+++     char pcre_error[128];
+++     size_t pcre_erroffset;
++ 
++-     pcre_re = pcre_compile(
++-                     regex->s, pcre_options, &pcre_error, &pcre_erroffset, NULL);
+++     pcre_re = pcre2_compile((PCRE2_SPTR)regex->s, PCRE2_ZERO_TERMINATED,
+++                     pcre_options, &pcre_error_num, &pcre_erroffset, pcres_ctx);
++      if(pcre_re == NULL) {
++-             LM_ERR("pcre_re compilation of '%s' failed at offset %d: %s\n",
+++             switch(pcre2_get_error_message(
+++                             pcre_error_num, (PCRE2_UCHAR *)pcre_error, 128)) {
+++                     case PCRE2_ERROR_NOMEMORY:
+++                             snprintf(pcre_error, 128,
+++                                             "unknown error[%d]: pcre2 error buffer too small",
+++                                             pcre_error_num);
+++                             break;
+++                     case PCRE2_ERROR_BADDATA:
+++                             snprintf(pcre_error, 128, "unknown pcre2 error[%d]",
+++                                             pcre_error_num);
+++                             break;
+++             }
+++             LM_ERR("pcre_re compilation of '%s' failed at offset %zu: %s\n",
++                              regex->s, pcre_erroffset, pcre_error);
++              return -4;
++      }
++ 
++-     pcre_rc = pcre_exec(pcre_re, /* the compiled pattern */
++-                     NULL,      /* no extra data - we didn't study the pattern */
++-                     string->s, /* the matching string */
++-                     (int)(string->len), /* the length of the subject */
++-                     0,                                      /* start at offset 0 in the string */
++-                     0,                                      /* default options */
++-                     NULL,                           /* output vector for substring information */
++-                     0);                                     /* number of elements in the output vector */
+++     pcre_md = pcre2_match_data_create_from_pattern(pcre_re, pcres_gctx);
+++     pcre_rc = pcre2_match(pcre_re,     /* the compiled pattern */
+++                     (PCRE2_SPTR)string->s,     /* the matching string */
+++                     (PCRE2_SIZE)(string->len), /* the length of the subject */
+++                     0,                                                 /* start at offset 0 in the string */
+++                     0,                                                 /* default options */
+++                     pcre_md,                                   /* the match data block */
+++                     pcres_mctx); /* a match context; NULL means use defaults */
++ 
++      /* Matching failed: handle error cases */
++      if(pcre_rc < 0) {
++              switch(pcre_rc) {
++-                     case PCRE_ERROR_NOMATCH:
+++                     case PCRE2_ERROR_NOMATCH:
++                              LM_DBG("'%s' doesn't match '%s'\n", string->s, regex->s);
++                              break;
++                      default:
++-                             LM_DBG("matching error '%d'\n", pcre_rc);
+++                             switch(pcre2_get_error_message(
+++                                             pcre_rc, (PCRE2_UCHAR *)pcre_error, 128)) {
+++                                     case PCRE2_ERROR_NOMEMORY:
+++                                             snprintf(pcre_error, 128,
+++                                                             "unknown error[%d]: pcre2 error buffer too "
+++                                                             "small",
+++                                                             pcre_rc);
+++                                             break;
+++                                     case PCRE2_ERROR_BADDATA:
+++                                             snprintf(pcre_error, 128, "unknown pcre2 error[%d]",
+++                                                             pcre_rc);
+++                                             break;
+++                             }
+++                             LM_ERR("matching error:'%s' failed[%d]\n", pcre_error, pcre_rc);
++                              break;
++              }
++-             pcre_free(pcre_re);
+++             if(pcre_md)
+++                     pcre2_match_data_free(pcre_md);
+++             pcre2_code_free(pcre_re);
++              return -1;
++      }
++-     pcre_free(pcre_re);
+++     if(pcre_md)
+++             pcre2_match_data_free(pcre_md);
+++     pcre2_code_free(pcre_re);
++      LM_DBG("'%s' matches '%s'\n", string->s, regex->s);
++      return 1;
++ }
++@@ -592,6 +645,8 @@ static int w_pcre_match(struct sip_msg *_msg, char *_s1, char *_s2)
++ static int ki_pcre_match_group(sip_msg_t *_msg, str *string, int num_pcre)
++ {
++      int pcre_rc;
+++     pcre2_match_data *pcre_md = NULL;
+++     char pcre_error[128];
++ 
++      /* Check if group matching feature is enabled */
++      if(file == NULL) {
++@@ -606,26 +661,41 @@ static int ki_pcre_match_group(sip_msg_t *_msg, str *string, int num_pcre)
++      }
++ 
++      lock_get(reload_lock);
++-
++-     pcre_rc = pcre_exec((*pcres_addr)[num_pcre], /* the compiled pattern */
++-                     NULL,      /* no extra data - we didn't study the pattern */
++-                     string->s, /* the matching string */
++-                     (int)(string->len), /* the length of the subject */
++-                     0,                                      /* start at offset 0 in the string */
++-                     0,                                      /* default options */
++-                     NULL,                           /* output vector for substring information */
++-                     0);                                     /* number of elements in the output vector */
+++     pcre_md = pcre2_match_data_create_from_pattern(
+++                     (*pcres_addr)[num_pcre], pcres_gctx);
+++     pcre_rc = pcre2_match((*pcres_addr)[num_pcre], /* the compiled pattern */
+++                     (PCRE2_SPTR)string->s,                             /* the matching string */
+++                     (PCRE2_SIZE)(string->len), /* the length of the subject */
+++                     0,                                                 /* start at offset 0 in the string */
+++                     0,                                                 /* default options */
+++                     pcre_md,                                   /* the match data block */
+++                     pcres_mctx); /* a match context; NULL means use defaults */
++ 
++      lock_release(reload_lock);
+++     if(pcre_md)
+++             pcre2_match_data_free(pcre_md);
++ 
++      /* Matching failed: handle error cases */
++      if(pcre_rc < 0) {
++              switch(pcre_rc) {
++-                     case PCRE_ERROR_NOMATCH:
+++                     case PCRE2_ERROR_NOMATCH:
++                              LM_DBG("'%s' doesn't match pcres[%i]\n", string->s, num_pcre);
++                              break;
++                      default:
++-                             LM_DBG("matching error '%d'\n", pcre_rc);
+++                             switch(pcre2_get_error_message(
+++                                             pcre_rc, (PCRE2_UCHAR *)pcre_error, 128)) {
+++                                     case PCRE2_ERROR_NOMEMORY:
+++                                             snprintf(pcre_error, 128,
+++                                                             "unknown error[%d]: pcre2 error buffer too "
+++                                                             "small",
+++                                                             pcre_rc);
+++                                             break;
+++                                     case PCRE2_ERROR_BADDATA:
+++                                             snprintf(pcre_error, 128, "unknown pcre2 error[%d]",
+++                                                             pcre_rc);
+++                                             break;
+++                             }
+++                             LM_ERR("matching error:'%s' failed[%d]\n", pcre_error, pcre_rc);
++                              break;
++              }
++              return -1;
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9f3d1d7d5d400cc5e4f6d9360d2f160d9c384396
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,234 @@@
++#!/usr/bin/make -f
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++export DEB_BUILD_MAINT_OPTIONS = hardening=+all
++DPKG_EXPORT_BUILDFLAGS = 1
++
++include /usr/share/dpkg/architecture.mk
++include /usr/share/dpkg/buildflags.mk
++include /usr/share/dpkg/pkg-info.mk
++
++# Enable parallel builds.
++NUMJOBS = 1
++ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
++  NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
++  MAKEFLAGS += -j$(NUMJOBS)
++endif
++
++# Modules not in the "main" kamailio package:
++EXCLUDED_MODULES =
++
++# Extra modules to skip, because they are not compilable now:
++# - regardless if they go to the main kamailio package or to some module
++#   package, they will be excluded from compile and install of all.
++EXTRA_EXCLUDED_MODULES += bdb
++EXTRA_EXCLUDED_MODULES += dbtext
++EXTRA_EXCLUDED_MODULES += dnssec
++EXTRA_EXCLUDED_MODULES += iptrtpproxy
++EXTRA_EXCLUDED_MODULES += java
++EXTRA_EXCLUDED_MODULES += mi_xmlrpc
++EXTRA_EXCLUDED_MODULES += oracle
++EXTRA_EXCLUDED_MODULES += pa
++EXTRA_EXCLUDED_MODULES += purple
++
++# Module groups that are packaged in seperate packages (with the name
++# kamailio-$(group_name)-modules).
++# Note: the order is important (should be in dependency order, the one
++# on which other depend first)
++PACKAGE_GROUPS += mysql
++PACKAGE_GROUPS += postgres
++PACKAGE_GROUPS += berkeley
++PACKAGE_GROUPS += unixodbc
++PACKAGE_GROUPS += radius
++PACKAGE_GROUPS += presence
++PACKAGE_GROUPS += ldap
++PACKAGE_GROUPS += xml
++PACKAGE_GROUPS += perl
++PACKAGE_GROUPS += utils
++PACKAGE_GROUPS += lua
++PACKAGE_GROUPS += memcached
++PACKAGE_GROUPS += carrierroute
++PACKAGE_GROUPS += snmpstats
++PACKAGE_GROUPS += xmpp
++PACKAGE_GROUPS += cpl
++PACKAGE_GROUPS += redis
++PACKAGE_GROUPS += geoip
++PACKAGE_GROUPS += geoip2
++PACKAGE_GROUPS += sqlite
++PACKAGE_GROUPS += ruby
++PACKAGE_GROUPS += ims
++PACKAGE_GROUPS += sctp
++PACKAGE_GROUPS += tls
++PACKAGE_GROUPS += outbound
++PACKAGE_GROUPS += websocket
++PACKAGE_GROUPS += autheph
++PACKAGE_GROUPS += cnxcc
++PACKAGE_GROUPS += erlang
++PACKAGE_GROUPS += systemd
++PACKAGE_GROUPS += phonenum
++PACKAGE_GROUPS += mongodb
++PACKAGE_GROUPS += rabbitmq
++PACKAGE_GROUPS += python3
++PACKAGE_GROUPS += mqtt
++PACKAGE_GROUPS += lwsc
++PACKAGE_GROUPS += nats
++
++# Module groups to be packaged onto kamailio-extra-modules.
++EXTRA_GROUPS += ev
++EXTRA_GROUPS += gzcompress
++EXTRA_GROUPS += jansson
++EXTRA_GROUPS += uuid
++
++# Mono not on all arches
++ifneq ("$(wildcard /usr/share/mono/mono-archs.make)","")
++PACKAGE_GROUPS += mono
++else
++EXCLUDED_MODULES += mono
++endif
++
++# libsecsipid not on all arches
++ifneq ("$(wildcard /usr/share/doc/libsecsipid-dev/copyright)","")
++PACKAGE_GROUPS += secsipid
++else
++EXCLUDED_MODULES += secsipid
++endif
++
++# FTBFS on kfreebsd
++LINUX_MODULES += json
++LINUX_MODULES += kazoo
++ifeq ($(DEB_HOST_ARCH_OS),linux)
++PACKAGE_GROUPS += $(LINUX_MODULES)
++else
++EXCLUDED_MODULES += $(LINUX_MODULES)
++endif
++
++# select radius lib
++ifeq ($(shell [ -f /usr/include/radcli/radcli.h ] && echo 1 || echo 0),1)
++export RADCLI = 1
++else
++export FREERADIUS = 1
++endif
++
++# FTBFS on powerpcspe because of AltiVec assumption #729635.
++ifeq ($(DEB_HOST_ARCH),powerpcspe)
++export NOALTIVEC = 1
++endif
++
++D = $(CURDIR)/debian/$(DEB_SOURCE)
++
++# Name of libdir in the path for libraries (e.g., the multiarch triplet).
++export LIBDIR ?= lib/$(DEB_HOST_MULTIARCH)
++
++# Directories with possible duplicate libraries (that should be deleted
++# from current module* packages).
++DUP_LIBS_DIRS = $(D)/usr/$(LIBDIR)/kamailio \
++                $(D)-db-modules/usr/$(LIBDIR)/kamailio
++
++# CFLAGS + CPPFLAGS -> CC_EXTRA_OPTS
++CC_EXTRA_OPTS := $(shell dpkg-buildflags --get CPPFLAGS)
++CC_EXTRA_OPTS += $(shell dpkg-buildflags --get CFLAGS)
++CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS)
++# LDFLAGS -> LD_EXTRA_OPTS
++LD_EXTRA_OPTS := $(shell dpkg-buildflags --get LDFLAGS)
++
++# https://wiki.debian.org/ReproducibleBuilds/
++CC_EXTRA_OPTS += -DVERSION_NODATE
++
++BUILD_MODULES   := $(addprefix build_,   $(PACKAGE_GROUPS) $(EXTRA_GROUPS))
++INSTALL_MODULES := $(addprefix install_, $(PACKAGE_GROUPS))
++INSTALL_EXTRA   := $(addprefix install_, $(EXTRA_GROUPS))
++
++.PHONY: $(BUILD_MODULES) $(INSTALL_MODULES) $(INSTALL_EXTRA)
++test_build_all-stamp: configure-stamp
++      $(MAKE) all quiet=verbose
++      touch test_build_all-stamp
++
++$(BUILD_MODULES): test_build_all-stamp
++      $(MAKE) every-module group_include="k$(subst build_,,$@)" quiet=verbose
++
++test_install_all-stamp: test_build_all-stamp
++      $(MAKE) install quiet=verbose LIBDIR=$(LIBDIR) group_include="kstandard"
++      touch test_install_all-stamp
++
++$(INSTALL_MODULES): test_install_all-stamp
++      $(MAKE) install-modules-all \
++        quiet=verbose \
++        LIBDIR=$(LIBDIR) \
++        BASEDIR=$(D)-$(subst install_,,$@)-modules \
++        cfg_prefix=$(D)-$(subst install_,,$@)-modules \
++        doc-dir=share/doc/$(DEB_SOURCE)-$(subst install_,,$@)-modules \
++        group_include="k$(subst install_,,$@)"
++      # Eliminate duplicate libs.
++      for d in $(DUP_LIBS_DIRS); do \
++        test "$$d" != "$(D)-$${module}-modules/usr/$(LIBDIR)/kamailio" && \
++        for r in `find $$d -name 'lib*' | xargs`; do \
++          echo "removing $(subst install_,,$@) lib `basename $$r` present also in $$d"; \
++          rm -f $(D)-$(subst install_,,$@)-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"`; \
++        done ; \
++      done
++      # clean empty dirs
++      find $(D)-$(subst install_,,$@)-modules -depth -empty -type d -exec rmdir {} \;
++
++$(INSTALL_EXTRA): test_install_all-stamp
++      $(MAKE) install-modules-all \
++        quiet=verbose \
++        LIBDIR=$(LIBDIR) \
++        BASEDIR=$(D)-extra-modules \
++        cfg_prefix=$(D)-extra-modules \
++        doc-dir=share/doc/$(DEB_SOURCE)-extra-modules \
++        group_include="k$(subst install_,,$@)"
++      # Eliminate duplicate extra libs.
++      for d in $(DUP_LIBS_DIRS); do \
++        test "$$d" != "$(D)-extra-modules/usr/$(LIBDIR)/kamailio" && \
++        for r in `find $$d -name 'lib*' | xargs`; do \
++          echo "removing extra lib `basename $$r` present also in $$d"; \
++          rm -f $(D)-extra-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"`; \
++        done ; \
++      done
++      # clean empty dirs
++      find $(D)-extra-modules -depth -empty -type d -exec rmdir {} \;
++
++%:
++      dh $@
++
++override_dh_auto_configure: configure-stamp
++configure-stamp:
++      $(MAKE) cfg \
++        quiet=verbose \
++        prefix=/usr \
++        cfg_prefix=$(D) \
++        cfg_target=/etc/kamailio/ \
++        FLAVOUR=kamailio \
++        BASEDIR=$(D) \
++        CC_EXTRA_OPTS="$(CC_EXTRA_OPTS)" \
++        LD_EXTRA_OPTS="$(LD_EXTRA_OPTS)" \
++        skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \
++        group_include="kstandard"
++      touch configure-stamp
++
++override_dh_auto_build: $(BUILD_MODULES)
++
++override_dh_auto_clean:
++      if [ -r autover.h -a ! -r debian/autover.h ]; then cp -a autover.h debian/; fi
++      dh_auto_clean -- maintainer-clean
++      if [ -r debian/autover.h -a ! -r autover.h ]; then mv debian/autover.h .; fi
++      rm -f configure-stamp test_build_all-stamp test_install_all-stamp
++
++override_dh_auto_install: $(INSTALL_MODULES) $(INSTALL_EXTRA)
++      # Move binaries of kamailio-berkeley-modules to kamailio-berkeley-bin.
++      mkdir -p $(D)-berkeley-bin/usr/
++      mv $(D)-berkeley-modules/usr/sbin \
++         $(D)-berkeley-bin/usr/
++      # remove if empty
++      -rm -r $(D)/usr/share/man/man7/
++
++override_dh_installexamples:
++      dh_installexamples -Xobsoleted -Xsr
++
++override_dh_installchangelogs:
++      dh_installchangelogs ChangeLog
++
++override_dh_installdocs:
++      dh_installdocs -A doc/misc/AUTHORS
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c8b59ecc070b377401177761b4eeffd676f0d131
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++Bug-Database: https://github.com/kamailio/kamailio/issues
++Bug-Submit: https://github.com/kamailio/kamailio/issues/new
++Repository: https://github.com/kamailio/kamailio.git
++Repository-Browse: https://github.com/kamailio/kamailio/
++Documentation: http://www.kamailio.org/w/documentation/
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..202b656a4b3242b84b851cc5ab065879415b201a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++version=3
++opts=dversionmangle=s/\~svn([\d]+)//; \
++https://www.kamailio.org/pub/kamailio/([\d.]+)/src/kamailio-([\d.]+)_src\.tar\.gz