New upstream version 6.0.5

pull/12/head upstream/6.0.5
Donat Zenichev 4 months ago
parent 95442bad59
commit bde62f6c92

@ -1,16 +1,29 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.13)
# Use cmake -DCMAKE_SYSTEM_NAME .. for cross-compiling (inside build directory)
# Set the project name
project(
kamailio
VERSION 6.0.3
VERSION 6.0.5
DESCRIPTION "Kamailio SIP Server"
HOMEPAGE_URL "https://www.kamailio.org")
HOMEPAGE_URL "https://www.kamailio.org"
)
# ---- Include guards ----
if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
message(
FATAL_ERROR
"In-source builds not allowed. Please make a new directory (called a build directory) \
and run CMake again accordingly."
)
endif()
# ---- Project settings ----
# Set the version number
set(EXTRAVERSION "-rc0")
set(EXTRAVERSION "")
set(RELEASE "${PROJECT_VERSION}${EXTRAVERSION}")
message(STATUS "PROJECT_VERSION: ${PROJECT_VERSION}")
@ -41,12 +54,14 @@ include(${CMAKE_SOURCE_DIR}/cmake/BuildType.cmake)
# main binary name
set(MAIN_NAME
"kamailio"
CACHE STRING "Main binary name")
CACHE STRING "Main binary name"
)
# use kamailio config
set(CFG_NAME
"kamailio"
CACHE STRING "Config name")
CACHE STRING "Config name"
)
include(GNUInstallDirs)
include(${CMAKE_SOURCE_DIR}/cmake/defs.cmake)
@ -59,23 +74,27 @@ add_subdirectory(src)
add_subdirectory(utils/kamctl)
add_subdirectory(utils/kamcmd)
# TODO: Packaging stuuf. These should be on different file propably
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_NAME kamailio)
set(CPACK_GENERATOR DEB)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "test")
# ----------
# Db schema files
# Include it here due to calling a script where we need the base binary dir
# and scirpts are using {CMAKE_BINARY_DIR} from where they where first included.
include(${CMAKE_SOURCE_DIR}/cmake/dbschema.cmake)
include(CPack)
# ----------
# Packaging
# ----------
include(${CMAKE_SOURCE_DIR}/cmake/deb-packaging.cmake)
# Add uninstall target
if(NOT TARGET uninstall)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake-uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake-uninstall.cmake" IMMEDIATE @ONLY)
"${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake-uninstall.cmake" IMMEDIATE @ONLY
)
add_custom_target(
uninstall
COMMAND ${CMAKE_COMMAND} -P
${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake-uninstall.cmake
COMMENT "Uninstalling")
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake-uninstall.cmake
COMMENT "Uninstalling ${PROJECT_NAME}-${PROJECT_VERSION} from ${CMAKE_INSTALL_PREFIX}"
)
endif()

File diff suppressed because it is too large Load Diff

@ -5,17 +5,13 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
endif()
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(
STATUS
"Setting build type to '${default_build_type}' as none was specified."
)
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
set(CMAKE_BUILD_TYPE
"${default_build_type}"
CACHE STRING "Choose the type of build." FORCE
)
# Set the possible values of build type for cmake-gui
set_property(
CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel"
"RelWithDebInfo"
CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo"
)
endif()

@ -25,7 +25,7 @@ with section("format"): # type: ignore
disable = False
# How wide to allow formatted cmake files
line_width = 80
line_width = 100
# How many spaces to tab for indent
tab_size = 2
@ -91,7 +91,7 @@ with section("format"): # type: ignore
command_case = 'canonical'
# Format keywords consistently as 'lower' or 'upper' case
keyword_case = 'unchanged'
keyword_case = 'upper'
# A list of command names which should always be wrapped
always_wrap = []

@ -1,61 +1,111 @@
# Quite analogous to the Makefile.defs file This file is used to define the
# common flags and options for the project The flags are defined as INTERFACE
# properties of the common library The flags are then used by the other
# libraries and executables
# This file is included from the def.cmake CMakeLists.txt file.
# It sets up the compiler specific flags.
# Define the common flags and options for GCC
option(PROFILE "Enable profiling" OFF)
add_library(common_compiler_flags INTERFACE)
function(set_if_empty var value)
if(DEFINED ENV{${var}} AND NOT "$ENV{${var}}" STREQUAL "")
set(${var}
${value}
PARENT_SCOPE
)
set(${var} "$ENV{${var}}")
else()
set(${var}
${value}
PARENT_SCOPE
)
endif()
endfunction()
# Define the flags for the C compiler
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64")
if(TARGET_ARCH MATCHES "x86_64")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(
common_compiler_flags
INTERFACE -Wall -funroll-loops -Wcast-align
-Werror=implicit-function-declaration -Werror=implicit-int)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops -Wcast-align)
# If GCC version is greater than 4.2.0, enable the following flags
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2.0)
# If GCC version is greater than 4.2, enable the following flags
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
set_if_empty(CPUTYPE "generic")
target_compile_options(
common_compiler_flags
INTERFACE -m64 -minline-all-stringops -falign-loops -ftree-vectorize
-fno-strict-overflow -mtune=generic)
common_compiler_flags INTERFACE -m64 -minline-all-stringops -falign-loops -ftree-vectorize
-fno-strict-overflow -mtune=${CPUTYPE}
)
target_link_options(common_compiler_flags INTERFACE -m64)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
set_if_empty(CPUTYPE "athlon64")
target_compile_options(
common_compiler_flags INTERFACE -m64 -minline-all-stringops -falign-loops -ftree-vectorize
-mtune=${CPUTYPE}
)
target_link_options(common_compiler_flags INTERFACE -m64)
else()
message(
WARNING
"You are using an old and unsupported gcc version ${CMAKE_C_COMPILER_VERSION}, compile at your own risk!"
)
endif()
elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set_if_empty(CPUTYPE "opteron")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -m64)
target_link_options(common_compiler_flags INTERFACE -m64)
elseif(CMAKE_C_COMPILER_ID STREQUAL "Intel")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -O3 -ipo -ipo_obj -unroll -tpp6 -xK)
else()
message(
WARNING
"Unsupported compiler (${CMAKE_C_COMPILER_ID}) for x86_64. Try GCC, Clang, or ICC. Compile at your own risk!"
)
endif()
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i486|i586|i686")
elseif(TARGET_ARCH MATCHES "i386")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(
common_compiler_flags
INTERFACE -Wall -funroll-loops -Wcast-align
-Werror=implicit-function-declaration -Werror=implicit-int)
target_compile_options(common_compiler_flags INTERFACE -Wall -funroll-loops -Wcast-align)
# If GCC version is greater than 4.2.0, enable the following flags
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2.0)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
set_if_empty(CPUTYPE "generic")
target_compile_options(
common_compiler_flags INTERFACE -m32 -minline-all-stringops -falign-loops -ftree-vectorize
-fno-strict-overflow -mtune=${CPUTYPE}
)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
set_if_empty(CPUTYPE "athlon64")
target_compile_options(
common_compiler_flags
INTERFACE -m32 -minline-all-stringops -falign-loops -ftree-vectorize
-fno-strict-overflow -mtune=generic)
common_compiler_flags INTERFACE -m32 -minline-all-stringops -falign-loops -ftree-vectorize
-mtune=${CPUTYPE}
)
else()
message(
WARNING
"You are using an old and unsupported gcc version ${CMAKE_C_COMPILER_VERSION}, compile at your own risk!"
)
endif()
elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set_if_empty(CPUTYPE "athlon64")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -m32)
target_compile_options(common_compiler_flags INTERFACE -m32 -mtune=${CPUTYPE})
target_link_options(common_compiler_flags INTERFACE -m32)
elseif(CMAKE_C_COMPILER_ID STREQUAL "Intel")
# ICC- Intel classic specific flags
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -O3 -ipo -ipo_obj -unroll -tpp6 -xK)
else()
message(
WARNING "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for i386. Try GCC, Clang, or ICC."
)
endif()
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
elseif(TARGET_ARCH MATCHES "aarch64")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
@ -70,4 +120,263 @@ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
# common INTERFACE -ftree-vectorize -fno-strict-overflow ) endif()
endif()
elseif(TARGET_ARCH MATCHES "ppc64$")
# PowerPC 64-bit specific flags
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops -fsigned-char)
# Try to get CPUTYPE from the environment, fallback to "powerpc64" if not set
if(DEFINED ENV{CPUTYPE} AND NOT "$ENV{CPUTYPE}" STREQUAL "")
set(CPUTYPE "$ENV{CPUTYPE}")
else()
set(CPUTYPE "powerpc64")
endif()
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
target_compile_options(
common_compiler_flags INTERFACE -ftree-vectorize -fno-strict-overflow -mtune=${CPUTYPE}
-maltivec
)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.0)
target_compile_options(
common_compiler_flags INTERFACE -ftree-vectorize -mtune=${CPUTYPE} -maltivec
)
elseif(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0)
message(
WARNING
"GCC version ${CMAKE_C_COMPILER_VERSION} is too old for ppc64. Try GCC 3.0 or newer."
)
endif()
# else()
# message(FATAL_ERROR "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for ppc64. Try GCC.")
endif()
elseif(TARGET_ARCH STREQUAL "ppc")
# PowerPC 32-bit specific flags
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)
set_if_empty(CPUTYPE "powerpc")
target_compile_options(
common_compiler_flags INTERFACE -funroll-loops -fsigned-char -ftree-vectorize -maltivec
-fno-strict-overflow -mtune=${CPUTYPE}
)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.0)
set_if_empty(CPUTYPE "powerpc")
target_compile_options(
common_compiler_flags INTERFACE -funroll-loops -fsigned-char -ftree-vectorize -maltivec
-mtune=${CPUTYPE}
)
else()
message(
WARNING "GCC version ${CMAKE_C_COMPILER_VERSION} is too old for ppc. Try GCC 4.0 or newer."
)
endif()
else()
message(
WARNING
"Unsupported compiler (${CMAKE_C_COMPILER_ID}) for ${TARGET_ARCH}. Try GCC. Compile at your own risk!"
)
endif()
elseif(TARGET_ARCH STREQUAL "arm7")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
# ARM specific flags
target_compile_options(
common_compiler_flags INTERFACE -march=armv7-a -funroll-loops -fsigned-char
)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize -fno-strict-overflow)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize)
else()
message(
WARNING "GCC version ${CMAKE_C_COMPILER_VERSION} is too old for arm7. Try GCC 4.0 or newer."
)
endif()
else()
message(FATAL_ERROR "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for arm7. Try GCC.")
endif()
elseif(TARGET_ARCH STREQUAL "arm6")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(
common_compiler_flags INTERFACE -march=armv6 -funroll-loops -fsigned-char
)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize -fno-strict-overflow)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize)
else()
message(
WARNING "GCC version ${CMAKE_C_COMPILER_VERSION} is too old for arm6. Try GCC 4.0 or newer."
)
endif()
else()
message(WARNING "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for arm6. Try GCC.")
endif()
elseif(TARGET_ARCH STREQUAL "arm")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
# ARM specific flags
target_compile_options(
common_compiler_flags INTERFACE -marm -march=armv5t -funroll-loops -fsigned-char
)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize -fno-strict-overflow)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize)
else()
message(
WARNING "GCC version ${CMAKE_C_COMPILER_VERSION} is too old for arm. Try GCC 4.0 or newer."
)
endif()
else()
message(FATAL_ERROR "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for arm. Try GCC.")
endif()
elseif(TARGET_ARCH STREQUAL "sparc64")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM SPARC64_MODE)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
set_if_empty(CPUTYPE "ultrasparc")
target_compile_options(
common_compiler_flags INTERFACE -m64 -mcpu=ultrasparc -mtune=${CPUTYPE}
-fno-strict-overflow -ftree-vectorize
)
target_link_options(common_compiler_flags INTERFACE -m64)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
set_if_empty(CPUTYPE "ultrasparc")
target_compile_options(
common_compiler_flags INTERFACE -m64 -mcpu=ultrasparc -mtune=${CPUTYPE} -ftree-vectorize
)
endif()
# The following CMAKE_C_COMPILER_ID is not available per cmake docs
# TODO: Use some other variable to check like CC
elseif(CMAKE_C_COMPILER_ID STREQUAL "Sun")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM SPARC64_MODE)
target_compile_options(
common_compiler_flags
INTERFACE -m64
-xO3
-xtarget=native
-xmemalign=8i
-fma=fused
-fns=yes
-xc99
)
else()
message(
FATAL_ERROR "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for sparc64. Try GCC or Sun."
)
endif()
elseif(TARGET_ARCH STREQUAL "sparc")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
set_if_empty(CPUTYPE "v8")
target_compile_options(
common_compiler_flags INTERFACE -mtune=${CPUTYPE} -fno-strict-overflow -ftree-vectorize
)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
set_if_empty(CPUTYPE "v8")
target_compile_options(common_compiler_flags INTERFACE -mtune=${CPUTYPE} -ftree-vectorize)
endif()
# The following CMAKE_C_COMPILER_ID is not available per cmake docs
# TODO: Use some other variable to check like CC
elseif(CMAKE_C_COMPILER_ID STREQUAL "Sun")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(
common_compiler_flags INTERFACE -xO3 -xtarget=native -xmemalign=4i -fma=fused -fns=yes -xc99
)
else()
message(FATAL_ERROR "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for sparc. Try GCC or Sun.")
endif()
elseif(TARGET_ARCH STREQUAL "mips")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
target_compile_options(
common_compiler_flags INTERFACE -mfp32 -march=r3000 -ftree-vectorize -fno-strict-overflow
)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
target_compile_options(common_compiler_flags INTERFACE -march=r3000 -ftree-vectorize)
else()
message(
WARNING "GCC version ${CMAKE_C_COMPILER_VERSION} is too old for mips. Try GCC 4.0 or newer."
)
endif()
else()
message(WARNING "Unsupported compiler (${CMAKE_C_COMPILER_ID}) for mips. Try GCC.")
endif()
elseif(TARGET_ARCH STREQUAL "mips2")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize -fno-strict-overflow)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize)
elseif(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0)
message(
WARNING
"You are using an old and unsupported gcc version ${CMAKE_C_COMPILER_VERSION}, compile at your own risk!"
)
endif()
else()
message(
WARNING
"Unsupported compiler (${CMAKE_C_COMPILER_ID}) for ${TARGET_ARCH}. Try GCC. Compile at your own risk!"
)
endif()
elseif(TARGET_ARCH STREQUAL "mips64")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize -fno-strict-overflow)
elseif(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.0)
target_compile_options(common_compiler_flags INTERFACE -ftree-vectorize)
elseif(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0)
message(
WARNING
"You are using an old and unsupported gcc version ${CMAKE_C_COMPILER_VERSION}, compile at your own risk!"
)
endif()
else()
message(
WARNING
"Unsupported compiler (${CMAKE_C_COMPILER_ID}) for ${TARGET_ARCH}. Try GCC. Compile at your own risk!"
)
endif()
elseif(TARGET_ARCH STREQUAL "alpha")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
target_compile_definitions(common_compiler_flags INTERFACE CC_GCC_LIKE_ASM)
target_compile_options(common_compiler_flags INTERFACE -funroll-loops)
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.2)
target_compile_options(common_compiler_flags INTERFACE -fno-strict-overflow)
elseif(CMAKE_C_COMPILER_VERSION VERSION_LESS 3.0)
message(
WARNING
"You are using an old and unsupported gcc version ${CMAKE_C_COMPILER_VERSION}, compile at your own risk!"
)
endif()
else()
message(
WARNING
"Unsupported compiler (${CMAKE_C_COMPILER_ID}) for ${TARGET_ARCH}. Try GCC. Compile at your own risk!"
)
endif()
else()
message(
WARNING
"Architecture ${TARGET_ARCH} not directly supported by project. Proceeding with generic flags. \
Define any compile options you might need with env variables like CFLAGS."
)
endif()

@ -0,0 +1,54 @@
# Funtion to add db files to the target kamctl/kamdbctl
# It takes the group name, the file name and a boolean to determine if it is for kamctl or kamdbctl
# It processes the file with sed and installs it to the correct location
# Used by the helper function add_kamctl_db_files and add_kamdbctl_db_files
function(add_db_files group_name file kamctl)
# message(WARNING "file name is ${file}")
# message(WARNING "group name is ${group_name}")
# Process the file with sed and install it
add_custom_command(
OUTPUT "${CMAKE_BINARY_DIR}/utils/kamctl/${file}"
COMMAND
sed -e "s#/usr/local/sbin#${BIN_DIR}#g" -e "s#/usr/local/share/kamailio#${SHARE_DIR}#g" -e
"s#/usr/local/etc/kamailio#${CFG_DIR}#g" < ${CMAKE_SOURCE_DIR}/utils/kamctl/${file} >
${CMAKE_BINARY_DIR}/utils/kamctl/${file}
COMMENT "Processed ${file} with sed "
)
# Append to the depependencies list for the target kamctl/kamdbctl respectively
if(kamctl)
add_custom_target(
kamctl_${file}
DEPENDS ${CMAKE_BINARY_DIR}/utils/kamctl/${file}
COMMENT "Generating kamctl_${file}"
)
set_property(GLOBAL APPEND PROPERTY KAMCTL_DEPENDENCIES "kamctl_${file}")
else()
add_custom_target(
kamdbctl_${file}
DEPENDS ${CMAKE_BINARY_DIR}/utils/kamctl/${file}
COMMENT "Generating kamctl_${file}"
)
set_property(GLOBAL APPEND PROPERTY KAMDBCTL_DEPENDENCIES "kamdbctl_${file}")
endif()
install(
PROGRAMS ${CMAKE_BINARY_DIR}/utils/kamctl/${file}
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
COMPONENT ${group_name}
)
endfunction()
# Helper functions to add kamctl releated db files
# Used by utils/kamctl/CMakeLists.txt for the core kamctl files
# and by modules/db_{module_name}/CMakeLists.txt for the module specific kamctl files
function(add_kamctl_db_files group_name file)
add_db_files(${group_name} ${file} 1)
endfunction()
# Helper functions to add kamdbctl releated db files
# Used by utils/kamctl/CMakeLists.txt for the core kamctl files
# and by modules/db_{module_name}/CMakeLists.txt for the module specific kamdbctl files
function(add_kamdbctl_db_files group_name file)
add_db_files(${group_name} ${file} 0)
endfunction()

@ -0,0 +1,49 @@
#!/usr/bin/env sh
# This script is executed by CMake after db_berkeley and db_text schema files are generated.
# It appends the last line of each generated file (except 'version')
# to the 'version' file and truncates each generated file to the n line.
# Get the number of lines to move to version file from the first argument
# Get the nubmer of lines to keep in the file from the second argument
TAIL_NUMBER="$1"
HEAD_NUMBER="$2"
# echo " Tail number: $TAIL_NUMBER"
# echo " Head number: $HEAD_NUMBER"
# Loop through files, sorted alphabetically
for FILE in $(ls * | sort); do
# Check if it's a regular file and not the version file
if [ -f "$FILE" ] && [ "$FILE" != "version" ]; then
# echo " Processing: $FILE"
# Check if file has at least 1 line before tail
if [ -s "$FILE" ]; then # -s checks if file is not empty
# Append the last line to the version file
# Using "printf" to ensure a newline is added after the tail output
tail -n "$TAIL_NUMBER" "$FILE" >> version
if [ $? -ne 0 ]; then # Check tail command result
echo "Warning: tail command failed for $FILE"
fi
# Get the first line and overwrite the original file
head -n "$HEAD_NUMBER" "$FILE" > "$$FILE".tmp
if [ $? -ne 0 ]; then
echo "Warning: head command failed for $FILE"
else
mv "$$FILE".tmp "$FILE"
if [ $? -ne 0 ]; then
echo "Warning: mv command failed for $FILE"
fi
fi
else
echo "Warning: File $FILE is empty, skipping processing."
fi
fi
done
echo "Finished processing schema files in $PWD"
exit 0 # Indicate success

@ -0,0 +1,256 @@
# ----------
# dbschema target: Old Makefiles: make dbschema declared in src/ Makefile This
# was using the makefile found in src/lib/srdb1/schema folder.
#
# CMakeLists.txt in src/ includes this file. All modules that have a schema
# should be appended to the end of this file. See the the rest of modules.
find_program(XSLTPROC_EXECUTABLE xsltproc QUIET)
include(${CMAKE_SOURCE_DIR}/cmake/groups.cmake)
get_property(added_modules GLOBAL PROPERTY ADDED_MODULES_LIST)
# message(WARNING "Added modules: ${added_modules}")
# Function to add a target for each database type prefix with dbschema ie
# db_name = redis -> target = dbschema_redis
function(add_db_target db_name xsl_file)
if(NOT XSLTPROC_EXECUTABLE)
return()
endif()
# Change name for the folder
if(db_name STREQUAL "pi_framework_table" OR db_name STREQUAL "pi_framework_mod")
set(db_name_folder xhttp_pi)
else()
set(db_name_folder ${db_name})
endif()
if(NOT (db_name_folder IN_LIST added_modules))
return()
endif()
find_group_name(${db_name_folder})
add_custom_target(
dbschema_${db_name}
COMMAND ${CMAKE_COMMAND} -E make_directory "${db_name_folder}"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/utils/kamctl
COMMENT "Creating schemas for ${db_name}"
)
# db_name for old makefiles are different.
# old -> new (module names)
# db_berkeley -> db_berkeley
# mongodb -> db_mongodb
# mysql -> db_mysql
# db_oracle -> db_oracle
# postgres -> db_postgres
# db_redis -> db_redis
# db_sqlite -> db_sqlite
# dbtext -> db_text
# pi_framework -> xhttp_pi (this was not provided at all in the old makefiles)
# For consistency, we are now using the new names.
# For compatibility with tools, we are still using the old names for install folder
# install folder based on db_name
if(db_name STREQUAL "db_mongodb")
set(install_folder "mongodb")
elseif(db_name STREQUAL "db_mysql")
set(install_folder "mysql")
elseif(db_name STREQUAL "db_postgres")
set(install_folder "postgres")
elseif(db_name STREQUAL "db_text")
set(install_folder "dbtext")
elseif(db_name STREQUAL "pi_framework_table" OR db_name STREQUAL "pi_framework_mod")
set(install_folder "xhttp_pi")
else()
set(install_folder "${db_name}")
endif()
# Loop through each table and add a command for xsltproc
foreach(table ${EXTRACTED_TABLES})
# Determine the prefix/suffix
if(db_name STREQUAL "db_berkeley"
OR db_name STREQUAL "db_redis"
OR db_name STREQUAL "db_text"
OR db_name STREQUAL "db_mongodb"
)
set(prefix '')
set(folder_suffix "${MAIN_NAME}")
else()
set(prefix "${table}-")
set(folder_suffix '')
endif()
# Stringparam db is the db_* module name
add_custom_command(
TARGET dbschema_${db_name}
PRE_BUILD
COMMAND
"XML_CATALOG_FILES=${CATALOG}" ${XSLTPROC_EXECUTABLE} ${XSLTPROC_FLAGS} --stringparam dir
${CMAKE_BINARY_DIR}/utils/kamctl/${db_name_folder}/${folder_suffix} --stringparam prefix
${prefix} --stringparam db ${db_name} ${xsl_file} "kamailio-${table}.xml"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/src/lib/srdb1/schema"
COMMENT "Processing ${table} for ${db_name}"
)
endforeach()
# Create version table for db_text and db_berkeley
# Use bash script
set(POSTPROCESS_SCRIPT "${CMAKE_SOURCE_DIR}/cmake/dbschema-version-postprocess.sh")
if(db_name STREQUAL "db_text")
add_custom_command(
TARGET dbschema_${db_name}
POST_BUILD
COMMAND ${POSTPROCESS_SCRIPT} 1 1
COMMENT "Creating version table for ${db_name}"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/utils/kamctl/${db_name_folder}/${folder_suffix}
)
elseif(db_name STREQUAL "db_berkeley")
add_custom_command(
TARGET dbschema_${db_name}
POST_BUILD
COMMAND ${POSTPROCESS_SCRIPT} 2 10
COMMENT "Creating version table for ${db_name}"
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/utils/kamctl/${db_name_folder}/${folder_suffix}
)
endif()
add_custom_target(
dbschema_${db_name}_clean
COMMAND ${CMAKE_COMMAND} -E remove_directory
"${CMAKE_BINARY_DIR}/utils/kamctl/${db_name_folder}"
COMMENT "Cleaning ${db_name} schema files"
)
add_dependencies(dbschema dbschema_${db_name})
add_dependencies(dbschema_clean dbschema_${db_name}_clean)
# message(WARNING "group name is ${group_name}")
# Before installing, ensure the target is built `dbschema_${db_name}`
# install as previously done in makefile folder. see naming above
# TODO: when tools adopt to new folder structure, replace the install_folder variable
# with ${db_name_folder}
install(
DIRECTORY ${CMAKE_BINARY_DIR}/utils/kamctl/${db_name_folder}/
DESTINATION ${CMAKE_INSTALL_DATADIR}/${MAIN_NAME}/${install_folder}
OPTIONAL
COMPONENT ${group_name}
)
endfunction()
if(NOT XSLTPROC_EXECUTABLE)
message(STATUS "xsltproc is not found. Skip dbschema target.")
else()
# Add targets for each database type
if(NOT TARGET dbschema)
add_custom_target(dbschema COMMENT "Generating schemas for all dbs...")
endif()
if(NOT TARGET dbschema_clean)
add_custom_target(dbschema_clean COMMENT "Cleaning schemas for all dbs...")
endif()
option(XSLT_VALIDATE "Enable schema validation during XSL transformations" ON)
option(XSLT_VERBOSE "Enable verbose output for XSL transformations" OFF)
set(XSLTPROC_FLAGS --xinclude)
if(NOT ${XSLT_VALIDATE})
set(XSLTPROC_FLAGS ${XSLTPROC_FLAGS} --novalid)
endif()
if(${XSLT_VERBOSE})
set(XSLTPROC_FLAGS ${XSLTPROC_FLAGS} --verbose)
endif()
# Set the root directories
set(ROOTDIR ${CMAKE_SOURCE_DIR})
set(STYLESHEETS ${ROOTDIR}/doc/stylesheets/dbschema_k/xsl)
set(CATALOG ${ROOTDIR}/doc/stylesheets/dbschema_k/catalog.xml)
# List of XML files
file(GLOB TABLES "${CMAKE_SOURCE_DIR}/src/lib/srdb1/schema/kamailio-*.xml")
# message(WARNING "TABLES : ${TABLES}")
set(EXTRACTED_TABLES "")
foreach(table ${TABLES})
get_filename_component(TABLE_NAME "${table}" NAME)
string(REPLACE "kamailio-" "" TABLE_NAME "${TABLE_NAME}")
string(REPLACE ".xml" "" TABLE_NAME "${TABLE_NAME}")
list(APPEND EXTRACTED_TABLES "${TABLE_NAME}")
list(SORT EXTRACTED_TABLES)
endforeach()
# Output the extracted table names
if(VERBOSE)
message(STATUS "Extracted Tables for DB schema generation: ${EXTRACTED_TABLES}")
endif()
endif()
#---- DB berkeley
add_db_target(db_berkeley "${STYLESHEETS}/db_berkeley.xsl")
#---- DB mongo
add_db_target(db_mongodb "${STYLESHEETS}/db_mongodb.xsl")
# Create the version-create.mongo script
# After processing the JSON files, create the version-create.mongo script
# Usage of generate_version_create_mongo.sh:
# 1. The first argument is the path to create the version-create.mongo script
# 2. The second argument is the path to the directory containing the JSON files
if(TARGET dbschema_db_mongodb)
add_custom_command(
TARGET dbschema_db_mongodb
POST_BUILD
COMMAND
sh generate_version_create_mongo.sh
"${CMAKE_BINARY_DIR}/utils/kamctl/db_mongodb/kamailio/version-create.mongo"
"${CMAKE_BINARY_DIR}/utils/kamctl/db_mongodb/kamailio"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/utils/kamctl
COMMENT "Creating version-create.mongo from JSON files"
)
find_group_name("db_mongodb")
install(
FILES ${CMAKE_BINARY_DIR}/utils/kamctl/db_mongodb/kamailio/version-create.mongo
DESTINATION ${CMAKE_INSTALL_DATADIR}/${MAIN_NAME}/mongodb/${MAIN_NAME}
OPTIONAL
COMPONENT ${group_name}
)
endif()
#---- DB mysql
add_db_target(db_mysql "${STYLESHEETS}/db_mysql.xsl")
#---- DB Oracle
add_db_target(db_oracle "${STYLESHEETS}/db_oracle.xsl")
#---- DB postgres
add_db_target(db_postgres "${STYLESHEETS}/db_postgres.xsl")
#---- DB redis
add_db_target(db_redis "${STYLESHEETS}/db_redis.xsl")
#---- DB sqlite
add_db_target(db_sqlite "${STYLESHEETS}/db_sqlite.xsl")
#---- DB text
add_db_target(db_text "${STYLESHEETS}/db_text.xsl")
#---- DB xhttp_pi
add_db_target(pi_framework_table "${STYLESHEETS}/pi_framework_table.xsl")
add_db_target(pi_framework_mod "${STYLESHEETS}/pi_framework_mod.xsl")
# Add alias targets that match the dbschema
if(XSLTPROC_EXECUTABLE
AND TARGET dbschema_pi_framework_table
AND TARGET dbschema_pi_framework_mod
)
add_custom_target(dbschema_xhttp_pi)
add_dependencies(dbschema_xhttp_pi dbschema_pi_framework_table dbschema_pi_framework_mod)
add_custom_target(dbschema_xhttp_pi_clean)
add_dependencies(
dbschema_xhttp_pi dbschema_pi_framework_table_clean dbschema_pi_framework_mod_clean
)
add_dependencies(dbschema dbschema_pi_framework_table dbschema_pi_framework_mod)
add_dependencies(dbschema_clean dbschema_pi_framework_table_clean dbschema_pi_framework_mod_clean)
endif()

@ -0,0 +1,18 @@
# Retrieve all defined components
get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
message(STATUS "All components: ${CPACK_COMPONENTS_ALL}")
# Optionally filter components
# list(FILTER CPACK_COMPONENTS_ALL INCLUDE REGEX "^(core|tls)$")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
# set(CPACK_PACKAGE_NAME kamailio)
set(CPACK_DEBIAN_PACKAGE_NAME kamailio)
set(CPACK_GENERATOR DEB)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "test")
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
# Configure CPack with the selected components
include(CPack)

@ -3,6 +3,21 @@
# properties of the common library The flags are then used by the other
# libraries and executables
include(CMakeDependentOption) # cmake_dependent_option
# Define full paths for installation directories with name of the project
# appended where needed. These are used in various places to define paths in
# config files and scripts using sed for the most part or install(CODE) scripts.
# For relative paths use the CMAKE_INSTALL_xxxDIR variables directly provided
# by CMake module GNUInstallDirs.
# If you need to change path for one of these directories, change the respective
# CMAKE_INSTALL_xxxDIR variable when invoking cmake, e.g.:
# cmake -DCMAKE_INSTALL_SBINDIR=custom/sbin ...
set(BIN_DIR "${CMAKE_INSTALL_FULL_SBINDIR}")
set(LIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/${MAIN_NAME}")
set(CFG_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}")
set(SHARE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${MAIN_NAME}")
add_library(common INTERFACE)
# This interface is populated by common and some extra module specific flags
@ -21,10 +36,32 @@ set(OSREL ${CMAKE_SYSTEM_VERSION})
message(STATUS "OS version: ${OSREL}")
# set(HOST_ARCH "__CPU_${CMAKE_HOST_SYSTEM_PROCESSOR}")
# Set the target architecture alias based on the system processor
# Currently known used archs
# i386, x86_64, aarch64, arm7, arm6, ppc64, mips, alpha
if(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i486|i586|i686")
set(TARGET_ARCH "i386")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64")
set(TARGET_ARCH "x86_64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64$")
set(TARGET_ARCH "aarch64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armv8|armv7")
# Match any variant like v7l
# armv8 is the 64-bit ARM architecture, uname -a will report it as aarch64 probably
# if not retarget it to arm7
# arm8 not supported yet from core atomic operations, fallback to arm7
# *** TODO: NOTE***
# Old Makefile detected armv7 as an arm, for compatibility reasons we apply this as well.
# See https://github.com/kamailio/kamailio/issues/4333#issuecomment-3210890740
set(TARGET_ARCH "arm")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armv6")
set(TARGET_ARCH "arm6")
# Other older arm arch versions shall report as arm to kamailio
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
set(TARGET_ARCH "arm")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le$")
set(TARGET_ARCH "ppc64")
else()
set(TARGET_ARCH "${CMAKE_SYSTEM_PROCESSOR}")
endif()
@ -38,14 +75,6 @@ message(STATUS "Target Processor Alias: ${TARGET_ARCH}")
# supported_archs) message(FATAL_ERROR "Target architecture not supported")
# endif()
# Flavor of the project flavour: sip-router, ser or kamailio This is used to
# define the MAIN_NAME flag TODO: Kamailio only
set(flavours kamailio)
set(FLAVOUR
"kamailio"
CACHE STRING "Flavour of the project")
set_property(CACHE FLAVOUR PROPERTY STRINGS ${flavours})
# Verbose option (for debugging purposes) (was quiet in Makefile.defs) Probably
# not needed in CMake and can be removed Use the -DCMAKE_VERBOSE_MAKEFILE=ON
# option to enable verbose mode
@ -58,7 +87,6 @@ option(KMSTATS "Kamailio statistics" ON)
option(FMSTATS "Fast memory statistics" ON)
option(WITHAS "With Application server support" ON)
option(RAW_SOCKS "Raw sockets support" ON)
option(MEMPKG "Package memory or sys " ON)
option(NO_KQUEUE "No kqueue support" OFF)
option(NO_SELECT "No select support" OFF)
@ -78,48 +106,60 @@ option(USE_MCAST "Use Multicast" ON)
option(DNS_IP_HACK "Use DNS IP hack" ON)
option(SHM_MMAP "Use mmap for shared memory" ON)
option(PKG_MALLOC "Use package memory" ON)
# memory managers and related debug mode
option(PKG_MALLOC "Use custom package memory manager (OFF will use system manager)" ON)
# Requires MEMPKG to be ON
option(MEMDBG "Use memory debugging system" ON)
cmake_dependent_option(MEMDBGSYS "Debug system memory manager" OFF "NOT PKG_MALLOC" OFF)
option(MEM_JOIN_FREE "Use mem_join_free" ON)
option(F_MALLOC "Use f_malloc" ON)
option(Q_MALLOC "Use q_malloc" ON)
# The following symbol is defined also when DBG_SR_MEMORY is defined
# in the respective q_malloc.h
# Same goes for fmalloc and tlsf malloc
# cmake_dependent_option(DBG_QM_MALLOC "Enable debugging info for q_malloc" OFF "Q_MALLOC" OFF)
option(TLSF_MALLOC "Use tlsf_malloc" ON)
option(MALLOC_STATS "Use malloc stats" ON)
option(DBG_SR_MEMORY "Use memory debugging system" ON)
option(USE_DNS_FAILOVER "Use DNS failover" ON)
option(USE_DST_BLOCKLIST "Use destination blacklist" ON)
option(HAVE_RESOLV_RES "Have resolv_res" ON)
option(KSR_PTHREAD_MUTEX_SHARED "Use shared mutex for TLS" ON)
option(STATISTICS "Statistics" ON)
# if(${MEMPKG}) target_compile_definitions(common INTERFACE PKG_MALLOC) else()
# if(${MEMDBGSYS}) target_compile_definitions(common INTERFACE DDBG_SYS_MEMORY)
# endif() endif()
# if(${MEMPKG})
# target_compile_definitions(common INTERFACE PKG_MALLOC)
# else()
# if(${MEMDBGSYS})
# target_compile_definitions(common INTERFACE DDBG_SYS_MEMORY)
# endif()
# endif()
# -----------------------
# TLS support
# -----------------------
option(TLS_HOOKS "TLS hooks support" ON)
option(CORE_TLS "CORE_TLS" OFF)
# set(CORE_TLS "" CACHE STRING "CORE_TLS") set(TLS_HOOKS ON CACHE BOOL "TLS
# hooks support")
# set(CORE_TLS "" CACHE STRING "CORE_TLS")
# set(TLS_HOOKS
# ON
# CACHE BOOL "TLS hooks support"
# )
if(${CORE_TLS})
set(RELEASE "${RELEASE}-tls")
set(TLS_HOOKS OFF)
target_compile_definitions(common INTERFACE CORE_TLS)
else()
set(TLS_HOOKS ON)
endif()
set(LIBSSL_SET_MUTEX_SHARED
ON
CACHE BOOL
"enable workaround for libssl 1.1+ to set shared mutex attribute")
CACHE BOOL "enable workaround for libssl 1.1+ to set shared mutex attribute"
)
if(NOT ${LIBSSL_SET_MUTEX_SHARED})
message(
STATUS
"Checking if can enable workaround for libssl 1.1+ to set shared mutex attribute"
)
message(STATUS "Checking if can enable workaround for libssl 1.1+ to set shared mutex attribute")
# TODO: This can probably be reduced to a just a find_package(OpenSSL) call
# and then check the version
@ -131,9 +171,7 @@ if(NOT ${LIBSSL_SET_MUTEX_SHARED})
if(OPENSSL_FOUND)
message(STATUS "OpenSSL version: ${OPENSSL_VERSION}")
if(${OPENSSL_VERSION} VERSION_GREATER_EQUAL "1.1.0")
message(
STATUS
"Enabling workaround for libssl 1.1+ to set shared mutex attribute")
message(STATUS "Enabling workaround for libssl 1.1+ to set shared mutex attribute")
set(LIBSSL_SET_MUTEX_SHARED ON)
endif()
endif()
@ -162,36 +200,37 @@ option(USE_FAST_LOCK "Use fast locking if available" ON)
# Fast-lock not available for all platforms like mips
# Check the system processor type and set USE_FAST_LOCK accordingly
if(USE_FAST_LOCK)
if(CMAKE_SYSTEM_PROCESSOR MATCHES
"i386|i486|i586|i686|x86_64|amd64|sparc64|sparc|ppc|ppc64|alpha|mips2|mips64")
if(TARGET_ARCH MATCHES "i386$|x86_64$|sparc64$|sparc$|ppc$|ppc64$|mips2$|mips64$")
set(USE_FAST_LOCK YES)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
set(USE_FAST_LOCK NO)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm6|arm7")
elseif(TARGET_ARCH MATCHES "aarch64$")
set(USE_FAST_LOCK YES)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|aarch64")
target_compile_definitions(common INTERFACE NOSMP) # memory barriers not
# implemented for arm
elseif(TARGET_ARCH MATCHES "arm6$|arm7$")
set(USE_FAST_LOCK YES)
elseif(TARGET_ARCH MATCHES "arm$")
set(USE_FAST_LOCK YES)
target_compile_definitions(common INTERFACE NOSMP) # memory barriers not
# implemented for arm
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips$")
set(USE_FAST_LOCK NO)
target_compile_definitions(common INTERFACE MIPS_HAS_LLSC) # likely
target_compile_definitions(common INTERFACE NOSMP) # very likely
elseif()
message(
STATUS
"Fast locking not available for this platform, disabling USE_FAST_LOCK")
elseif(TARGET_ARCH MATCHES "alpha$")
set(USE_FAST_LOCK YES)
target_compile_definitions(common INTERFACE NOSMP) # very likely
else()
message(STATUS "Fast locking not available for this platform, disabling USE_FAST_LOCK")
set(USE_FAST_LOCK NO)
endif()
endif()
# Add definitions if USE_FAST_LOCK is YES
message(STATUS "Fast lock available: ${USE_FAST_LOCK}")
message(STATUS "Fast lock available: USE_FAST_LOCK=${USE_FAST_LOCK}")
if(USE_FAST_LOCK)
# If fast lock is available, add the definitions for it, else each OS will
# have its own locking method
target_compile_definitions(common INTERFACE FAST_LOCK ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024)
target_compile_definitions(common INTERFACE FAST_LOCK ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS=1024)
endif()
# set(LOCKING_DEFINITION "${locking_method}")
@ -226,17 +265,25 @@ endif()
if(Q_MALLOC)
target_compile_definitions(common INTERFACE Q_MALLOC)
endif()
# See note above on defintion of option
# Same goes for fmalloc and tlsf malloc
# if(DBG_QM_MALLOC)
# target_compile_definitions(common INTERFACE DBG_QM_MALLOC)
# endif()
if(TLSF_MALLOC)
target_compile_definitions(common INTERFACE TLSF_MALLOC)
endif()
if(MALLOC_STATS)
target_compile_definitions(common INTERFACE MALLOC_STATS)
if(MEMDBG)
target_compile_definitions(common INTERFACE DBG_SR_MEMORY)
if(MEMDBGSYS)
target_compile_definitions(common INTERFACE DBG_SYS_MEMORY)
endif()
endif()
if(DBG_SR_MEMORY)
target_compile_definitions(common INTERFACE DBG_SR_MEMORY)
if(MEM_JOIN_FREE)
target_compile_definitions(common INTERFACE MEM_JOIN_FREE)
endif()
if(USE_DNS_FAILOVER)
@ -291,20 +338,16 @@ if(NO_DEV_POLL)
target_compile_definitions(common INTERFACE NO_DEV_POLL)
endif()
if(RAW_SOCKS)
target_compile_definitions(common INTERFACE RAW_SOCKS)
endif()
if(KSR_PTHREAD_MUTEX_SHARED)
target_compile_definitions(common INTERFACE KSR_PTHREAD_MUTEX_SHARED)
endif()
if(FMSTATS)
target_compile_definitions(common INTERFACE FMSTATS)
target_compile_definitions(common INTERFACE MALLOC_STATS)
endif()
if(KMSTATS)
target_compile_definitions(common INTERFACE KMSTATS)
target_compile_definitions(common INTERFACE USE_CORE_STATS STATISTICS)
endif()
include(${CMAKE_SOURCE_DIR}/cmake/compiler-specific.cmake)
@ -320,6 +363,20 @@ if(NOT DEFINED RUN_DIR)
set(RUN_DIR "run/${MAIN_NAME}")
endif()
string(TOLOWER ${OS} OS_LOWER)
# This is a convenience mechanism to provide undeclared options.
# If you find an undecleared option in the code, please declare it
# as an option os cache variable and try to use that instead of this.
set(EXTRA_DEFS
""
CACHE STRING "Extra preprocessor definitions (semicolon-separated string, e.g. FOO;BAR=1)"
)
if(EXTRA_DEFS)
foreach(def ${EXTRA_DEFS})
target_compile_definitions(common INTERFACE ${def})
endforeach()
endif()
target_compile_definitions(
common
INTERFACE NAME="${MAIN_NAME}"
@ -342,7 +399,7 @@ target_compile_definitions(
# TODO: We can use the generator expression to define extra flags
# instead of checking the options each time
$<$<BOOL:${USE_SCTP}>:USE_SCTP>
$<$<BOOL:${STATISTICS}>:STATISTICS>)
)
target_link_libraries(common INTERFACE common_compiler_flags)
# ----------------------

@ -60,7 +60,8 @@ set(MOD_LIST_BASIC
topos_htable
sipdump
pv_headers
kemix)
kemix
)
# * extra used modules, with no extra dependency
set(MOD_LIST_EXTRA
@ -102,7 +103,8 @@ set(MOD_LIST_EXTRA
xhttp_prom
dlgs
sworker
influxdbc)
influxdbc
)
# * common modules depending on database
set(MOD_LIST_DB
@ -139,11 +141,11 @@ set(MOD_LIST_DB
uri_db
userblocklist
usrloc
secfilter)
secfilter
)
# * common modules depending on database, using UID db schema
set(MOD_LIST_DBUID db2_ops uid_auth_db uid_avp_db uid_domain uid_gflags
uid_uri_db)
set(MOD_LIST_DBUID db2_ops uid_auth_db uid_avp_db uid_domain uid_gflags uid_uri_db)
# * modules for devel purposes
set(MOD_LIST_DEVEL misctest)
@ -233,7 +235,8 @@ set(MOD_LIST_PRESENCE
pua_xmpp
rls
xcap_client
xcap_server)
xcap_server
)
# * modules depending on lua library
set(MOD_LIST_LUA app_lua)
@ -296,7 +299,8 @@ set(MOD_LIST_IMS
ims_charging
ims_ocs
ims_diameter_server
ims_ipsec_pcscf)
ims_ipsec_pcscf
)
# * modules depending on java library
set(MOD_LIST_JAVA app_java)
@ -439,7 +443,8 @@ set(MOD_LIST_ALL
${MOD_LIST_MICROHTTPD}
${MOD_LIST_NGHTTP2}
${MOD_LIST_GCRYPT}
${MOD_LIST_RTP_MEDIA_SERVER})
${MOD_LIST_RTP_MEDIA_SERVER}
)
# sort the list
list(SORT MOD_LIST_ALL)
@ -453,15 +458,15 @@ list(SORT MOD_LIST_ALL)
# compile or link dependencies
set(MODULE_GROUP_ALL ${MOD_LIST_ALL})
set(MODULE_GROUP_DEFAULT ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB}
${MOD_LIST_DBUID} ${MOD_LIST_DEVEL} ${MOD_LIST_JSDT})
set(MODULE_GROUP_DEFAULT ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB} ${MOD_LIST_DBUID}
${MOD_LIST_DEVEL} ${MOD_LIST_JSDT}
)
# Modules in this group are the default compiled modules due to no
# internal/external compile or link dependencies
# module_group_standard=$(mod_list_basic) $(mod_list_extra) \ $(mod_list_devel)
# $(mod_list_jsdt)
set(MODULE_GROUP_STANDARD ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DEVEL}
${MOD_LIST_JSDT})
set(MODULE_GROUP_STANDARD ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DEVEL} ${MOD_LIST_JSDT})
# Modules in this group are considered a standard part due to widespread usage,
# but they have dependencies that must be satisfied for compilation (e.g., lcr,
@ -475,50 +480,22 @@ set(MODULE_GROUP_COMMON
${MOD_LIST_RADIUS}
${MOD_LIST_XMLDEPS}
${MOD_LIST_PRESENCE}
${MOD_LIST_TLSDEPS})
# For db use (db modules, excluding drivers) module_group_db=$(mod_list_db)
set(MODULE_GROUP_DB ${MOD_LIST_DB})
# For mysql module_group_mysql_driver=$(mod_list_mysql)
# module_group_mysql=$(module_group_mysql_driver) $(module_group_db)
set(MODULE_GROUP_MYSQL_DRIVER ${MOD_LIST_MYSQL})
set(MODULE_GROUP_MYSQL ${MODULE_GROUP_MYSQL_DRIVER} ${MODULE_GROUP_DB})
# For postgress module_group_postgres_driver=$(mod_list_postgres)
# module_group_postgres=$(module_group_postgres_driver) $(module_group_db)
set(MODULE_GROUP_POSTGRES_DRIVER ${MOD_LIST_POSTGRES})
set(MODULE_GROUP_POSTGRES ${MODULE_GROUP_POSTGRES_DRIVER} ${MODULE_GROUP_DB})
# For sqlite module_group_sqlite_driver=$(mod_list_sqlite)
# module_group_sqlite=$(module_group_sqlite_driver) $(module_group_db)
set(MODULE_GROUP_SQLITE_DRIVER ${MOD_LIST_SQLITE})
set(MODULE_GROUP_SQLITE ${MODULE_GROUP_SQLITE_DRIVER} ${MODULE_GROUP_DB})
# For radius
set(MODULE_GROUP_RADIUS ${MODULE_LIST_RADIUS})
# For presence kamailio modules
set(MODULE_GROUP_PRESENCE ${MOD_LIST_PRESENCE})
# For cassandra
set(MODULE_GROUP_CASSANDRA_DRIVER ${MODULE_LIST_CASSANDRA})
set(MODULE_GROUP_CASSANDRA ${MODULE_GROUP_CASSANDRA_DRIVER} ${MODULE_GROUP_DB})
# For all modules not compiled by default
# list(FILTER MOD_LIST_ALL EXCLUDE REGEX "${MODULE_GROUP_DEFAULT}")
${MOD_LIST_TLSDEPS}
)
# for all protocols (excl. local ones such as unix, tcp, etc.)
set(AVAILABLE_GROUPS ALL DEFAULT STANDARD COMMON)
# --- Groups defined for pacKaging ###
# Standard modules in main pkg
set(MODULE_GROUP_KSTANDARD ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB}
${MOD_LIST_DBUID} ${MOD_LIST_PCRE} ${MOD_LIST_JSDT})
set(MODULE_GROUP_KSTANDARD ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB} ${MOD_LIST_DBUID}
${MOD_LIST_PCRE} ${MOD_LIST_JSDT}
)
# Standard modules without any dependencies (such as pcre)
set(MODULE_GROUP_KMINI ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB}
${MOD_LIST_DBUID} ${MOD_LIST_JSDT})
set(MODULE_GROUP_KMINI ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB} ${MOD_LIST_DBUID}
${MOD_LIST_JSDT}
)
# pkg pcre module
set(MODULE_GROUP_KPCRE ${MOD_LIST_PCRE})
@ -710,87 +687,110 @@ set(MODULE_GROUP_KRTP_MEDIA_SERVER ${MOD_LIST_RTP_MEDIA_SERVER})
# list of static modules
set(STATIC_MODULES "")
list(
APPEND
AVAILABLE_GROUPS
KSTANDARD
KMINI
KPCRE
KMYSQL
KPOSTGRES
KCPL
KXML
KRADIUS
KUNIXODBC
KPERL
KSNMPSTATS
KXMPP
KBERKELEY
KLDAP
KUTILS
KHTTP_ASYNC
KMEMCACHED
KTLS_BASIC
KTLS
KTLS_WOLFSSL
KWEBSOCKET
KPRESENCE
KLUA
KPYTHON
KPYTHON3
KRUBY
KGEOIP
KGEOIP2
KSQLITE
KJSON_BASIC
KJSON
KJANSSON_BASIC
KJANSSON
KREDIS
KIMS
KOUTBOUND
KJAVA
KDNSSEC
KSCTP
KAUTHEPH
KGZCOMPRESS
KUUID
KEV
KJWT
KLWSC
KSTIRSHAKEN
KKAZOO
KMONGODB
KCNXCC
KERLANG
KSYSTEMD
KNSQ
KRABBITMQ
KPHONENUM
KKAFKA
KMQTT
KNATS
KRUXC
KMICROHTTPD
KNGHTTP2
KGCRYPT
KSECSIPID
KRT_MEDIA_SERVER)
# # Option to allow the user to define which group to build
# set(SELECTED_PACKAGE_GROUP
# ""
# CACHE STRING "Select the package group to build from"
# PARENT_SCOPE
# )
# set_property(CACHE SELECTED_PACKAGE_GROUP PROPERTY STRINGS ${PACKAGE_GROUPS})
# # Ensure the selected group is valid
# if(NOT SELECTED_PACKAGE_GROUP IN_LIST PACKAGE_GROUPS)
# message(
# FATAL_ERROR
# "Invalid package group selected: ${SELECTED_PACKAGE_GROUP}. Please choose from: ${PACKAGE_GROUPS}."
# )
# endif()
# message(STATUS "Building package group: ${SELECTED_PACKAGE_GROUP}")
set(MODULE_GROUP_PACKAGE_GROUPS
KSTANDARD
KPCRE
KMYSQL
KPOSTGRES
KCPL
KXML
KRADIUS
KUNIXODBC
KPERL
KSNMPSTATS
KXMPP
KBERKELEY
KLDAP
KUTILS
KHTTP_ASYNC
KMEMCACHED
KTLS_BASIC
KTLS
KTLS_WOLFSSL
KWEBSOCKET
KPRESENCE
KLUA
KPYTHON
KPYTHON3
KRUBY
KGEOIP
KGEOIP2
KSQLITE
KJSON_BASIC
KJSON
KJANSSON_BASIC
KJANSSON
KREDIS
KIMS
KOUTBOUND
KJAVA
KDNSSEC
KSCTP
KAUTHEPH
KGZCOMPRESS
KUUID
KEV
KJWT
KLWSC
KSTIRSHAKEN
KKAZOO
KMONGODB
KCNXCC
KERLANG
KSYSTEMD
KNSQ
KRABBITMQ
KPHONENUM
KKAFKA
KMQTT
KNATS
KRUXC
KMICROHTTPD
KNGHTTP2
KGCRYPT
KSECSIPID
KRTP_MEDIA_SERVER
)
# Add group names to available group and provide "ALL_PACKAGED" as well
# for easier packaging using components
list(APPEND AVAILABLE_GROUPS ALL_PACKAGED KMINI ${MODULE_GROUP_PACKAGE_GROUPS})
# Find the group name for the target by checking if the module is in the
# list of modules to be built and if so, use the group name of that module
# group_name can be used afterwards.
function(find_group_name module)
set(group_name
""
PARENT_SCOPE
)
separate_arguments(groups_to_search_in UNIX_COMMAND ${MODULE_GROUP_NAME})
list(FIND groups_to_search_in "ALL_PACKAGED" group_index)
if(group_index GREATER -1)
# Remove it from the list and append the package groups
list(REMOVE_AT groups_to_search_in ${group_index})
list(APPEND groups_to_search_in ${MODULE_GROUP_PACKAGE_GROUPS})
endif()
# message(WARNING "Groups provided by the user ${groups_to_search_in}")
# message(WARNING "Looking for group for db ${module}")
foreach(group IN LISTS groups_to_search_in)
get_property(MODULES_IN_GROUP VARIABLE PROPERTY "MODULE_GROUP_${group}")
# message(WARNING "Modules in group ${group}: ${MODULES_IN_GROUP}")
if("${module}" IN_LIST MODULES_IN_GROUP)
# message(WARNING "Found group ${group} for db ${module}")
set(group_name
"${group}"
PARENT_SCOPE
)
return()
endif()
endforeach()
message(STATUS "module ${module} not found in any group")
# if not found in any group, it's probably in include_modules list
# Use the group name "user_specified_list" associated with include_modules
# list, otherwise it will generate Unknown group component
set(group_name
"user_specified_list"
PARENT_SCOPE
)
endfunction()

@ -1,43 +1,30 @@
option(BUILD_DOC "Build documentation" ON)
# Readme file and man page
find_program(XSLTPROC_EXECUTABLE xsltproc QUIET)
find_program(LYNX_EXECUTABLE lynx QUIET)
find_program(DOCBOOK2X_EXECUTABLE docbook2x-man QUIET)
if(BUILD_DOC AND (NOT XSLTPROC_EXECUTABLE OR NOT LYNX_EXECUTABLE))
message(STATUS "xsltproc or lynx not found but required for doc generation.")
set(BUILD_DOC OFF)
endif()
if(BUILD_DOC AND (NOT DOCBOOK2X_EXECUTABLE))
message(STATUS "docbook2x-man not found but required for man generation.")
set(BUILD_DOC OFF)
endif()
option(DOCS_XSL_VAIDATION "Docbook document validation" OFF)
option(DOCS_NOCATALOG
"ON: Use standard catalog from OS | OFF: Use custom catalog " OFF)
option(DOCS_NOCATALOG "ON: Use standard catalog from OS | OFF: Use custom catalog " OFF)
set(DOCS_SOURCES
"index.html"
CACHE STRING "Documentation files list")
CACHE STRING "Documentation files list"
)
set(DOCS_README
${DOCS_SOURCES}
CACHE STRING "Readme Documentation files list")
CACHE STRING "Readme Documentation files list"
)
set(DOCS_HTML
${DOCS_SOURCES}
CACHE STRING "HTML Documentation files list")
CACHE STRING "HTML Documentation files list"
)
set(DOCS_TXT
${DOCS_SOURCES}
CACHE STRING "TXT Documentation files list")
CACHE STRING "TXT Documentation files list"
)
set(DOCS_OUTPUT_DIR
${CMAKE_BINARY_DIR}/doc/docbook
CACHE STRING "Path to build HTML docs")
CACHE STRING "Path to build HTML docs"
)
set(DOCBOOK_DIR ${CMAKE_SOURCE_DIR}/doc/docbook)
set(STYLESHEET_DIR ${CMAKE_SOURCE_DIR}/doc/stylesheets)
@ -49,7 +36,8 @@ set(README_XSL ${DOCBOOK_DIR}/readme.xsl)
set(DOCS_HTML_CSS
"/css/sr-doc.css"
CACHE STRING "Path to the CSS file")
CACHE STRING "Path to the CSS file"
)
set(CATALOG ${DOCBOOK_DIR}/catalog.xml)
@ -62,11 +50,13 @@ endif()
# Set flags for xtproc for generating documentation and allow user defined
set(DOCS_XSLTPROC_FLAGS
""
CACHE STRING "Xsltransform processor flags")
CACHE STRING "Xsltransform processor flags"
)
if(NOT DOCS_XSL_VAIDATION)
if(VERBOSE)
message(STATUS "DOCS_XSL_VAIDATION=OFF"
"Disabling xsl validation when generating documentation")
"Disabling xsl validation when generating documentation"
)
endif()
list(APPEND DOCS_XSLTPROC_FLAGS --novalid)
endif()
@ -74,10 +64,11 @@ endif()
# Set lynx flags for generating readmes and allow user defined
set(DOCS_LYNX_FLAGS
"-nolist"
CACHE STRING "Lynx readme generator flags")
CACHE STRING "Lynx readme generator flags"
)
# Function to add a module docs entry
function(docs_add_module module_name)
function(docs_add_module group_name module_name)
# message(STATUS "Adding documentation for module ${MODULE_NAME}")
set(module_path "${MODULES_DIR}/${module_name}")
set(module_doc_path "${module_path}/doc")
@ -85,101 +76,98 @@ function(docs_add_module module_name)
add_custom_target(
${module_name}_doc_text
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.txt
COMMENT "Processing target ${module_name}_doc_text")
COMMENT "Processing target ${module_name}_doc_text"
)
# This is essentialy an alias of doc_text target but with extra copy command
# to copy the text file to the source tree directory.
add_custom_target(${module_name}_readme
COMMENT "Processing target ${module_name}_readme")
add_custom_target(${module_name}_readme COMMENT "Processing target ${module_name}_readme")
add_dependencies(${module_name}_readme ${module_name}_doc_text)
add_dependencies(kamailio_docs_readme ${module_name}_readme)
add_custom_target(
${module_name}_doc_html
DEPENDS ${DOCS_OUTPUT_DIR}/${module_name}.html
COMMENT "Processing target ${module_name}_doc_html")
COMMENT "Processing target ${module_name}_doc_html"
)
add_custom_target(${module_name}_doc
COMMENT "Processing target ${module_name}_doc")
add_dependencies(${module_name}_doc ${module_name}_doc_text
${module_name}_doc_html)
add_custom_target(${module_name}_doc COMMENT "Processing target ${module_name}_doc")
add_dependencies(${module_name}_doc ${module_name}_doc_text ${module_name}_doc_html)
# Man docs only if author of module provided xml for man.
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/${module_name}.xml)
add_custom_target(
${module_name}_man
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/${module_name}.xml
COMMENT "Processing target ${module_name}_man")
COMMENT "Processing target ${module_name}_man"
)
add_dependencies(kamailio_docs_man ${module_name}_man)
endif()
# Each version has seperate custon commands for not recompiling all if 1 gets
# changed.
if(XSLTPROC_EXECUTABLE)
if(LYNX_EXECUTABLE)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.txt
COMMAND
# TXT version - just plain text
${XMLCATATLOGX} ${XSLTPROC_EXECUTABLE} ${DOCS_XSLTPROC_FLAGS}
--xinclude ${TXT_XSL} ${module_name}.xml | ${LYNX_EXECUTABLE}
${DOCS_LYNX_FLAGS} -stdin -dump >
${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.txt
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc/${module_name}.xml
${TXT_XSL}
# ${SINGLE_HTML_XSL}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc
COMMENT "Generating text documentation with for ${module_name}")
# Add custom command to copy the README file after the readme target is
# built. The readme target depends on doc_text so it will regenerate if
# it's input changed.
add_custom_command(
TARGET ${module_name}_readme
POST_BUILD
COMMAND
${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.txt
${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/README
COMMENT "Copying README file to source tree for ${module_name}")
add_custom_command(
OUTPUT ${DOCS_OUTPUT_DIR}/${module_name}.html
COMMAND
# HTML version
${XMLCATATLOGX} ${XSLTPROC_EXECUTABLE} ${DOCS_XSLTPROC_FLAGS}
--xinclude --stringparam base.dir ${DOCS_OUTPUT_DIR} --stringparam
root.filename ${module_name} --stringparam html.stylesheet
${DOCS_HTML_CSS} --stringparam html.ext ".html" ${SINGLE_HTML_XSL}
${module_name}.xml
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc/${module_name}.xml
${SINGLE_HTML_XSL}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc
COMMENT "Generating html documentation for ${module_name}")
endif()
add_custom_command(
# man version
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.7
COMMAND ${DOCBOOK2X_EXECUTABLE} -s ${STYLESHEET_DIR}/serdoc2man.xsl
${module_name}.xml
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc/${module_name}.xml
${STYLESHEET_DIR}/serdoc2man.xsl
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}
COMMENT "Processing target ${module_name}_man")
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/README
RENAME README.${module_name}
DESTINATION ${CMAKE_INSTALL_DOCDIR}/modules
COMPONENT kamailio_docs)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/${module_name}.7
DESTINATION ${CMAKE_INSTALL_DATADIR}/man/man7
COMPONENT kamailio_docs
OPTIONAL)
endif()
# if(XSLTPROC_EXECUTABLE)
# if(LYNX_EXECUTABLE)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.txt
COMMAND
# TXT version - just plain text
${XMLCATATLOGX} ${XSLTPROC_EXECUTABLE} ${DOCS_XSLTPROC_FLAGS} --xinclude ${TXT_XSL}
${module_name}.xml | ${LYNX_EXECUTABLE} ${DOCS_LYNX_FLAGS} -stdin -dump >
${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.txt
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc/${module_name}.xml ${TXT_XSL}
# ${SINGLE_HTML_XSL}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc
COMMENT "Generating text documentation with for ${module_name}"
)
# Add custom command to copy the README file after the readme target is
# built. The readme target depends on doc_text so it will regenerate if
# it's input changed.
add_custom_command(
TARGET ${module_name}_readme
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.txt
${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/README
COMMENT "Copying README file to source tree for ${module_name}"
)
add_custom_command(
OUTPUT ${DOCS_OUTPUT_DIR}/${module_name}.html
COMMAND
# HTML version
${XMLCATATLOGX} ${XSLTPROC_EXECUTABLE} ${DOCS_XSLTPROC_FLAGS} --xinclude --stringparam
base.dir ${DOCS_OUTPUT_DIR} --stringparam root.filename ${module_name} --stringparam
html.stylesheet ${DOCS_HTML_CSS} --stringparam html.ext ".html" ${SINGLE_HTML_XSL}
${module_name}.xml
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc/${module_name}.xml ${SINGLE_HTML_XSL}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc
COMMENT "Generating html documentation for ${module_name}"
)
# endif()
add_custom_command(
# man version
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${module_name}/${module_name}.7
COMMAND ${DOCBOOK2X_EXECUTABLE} -s ${STYLESHEET_DIR}/serdoc2man.xsl ${module_name}.xml
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/doc/${module_name}.xml
${STYLESHEET_DIR}/serdoc2man.xsl
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}
COMMENT "Processing target ${module_name}_man"
)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/README
RENAME README.${module_name}
DESTINATION ${CMAKE_INSTALL_DOCDIR}/modules
COMPONENT ${group_name}
)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/${module_name}.7
DESTINATION ${CMAKE_INSTALL_DATADIR}/man/man7
COMPONENT ${group_name}
OPTIONAL
)
# endif()
endfunction()

@ -38,7 +38,8 @@ if(CMAKE_HOST_APPLE)
execute_process(
COMMAND ${HOMEBREW_EXECUTABLE} --prefix berkeley-db@5.3
OUTPUT_VARIABLE _BerkeleyDB_homebrew_prefix
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
endif()
@ -55,7 +56,8 @@ find_path(
5.3
db5.3
5
db5)
db5
)
mark_as_advanced(BerkeleyDB_INCLUDE_DIR)
unset(_BerkeleyDB_homebrew_prefix)
@ -68,21 +70,22 @@ if(NOT BerkeleyDB_LIBRARY)
set(CMAKE_FIND_USE_CMAKE_PATH FALSE)
endif()
get_filename_component(_BerkeleyDB_lib_hint "${BerkeleyDB_INCLUDE_DIR}"
DIRECTORY)
get_filename_component(_BerkeleyDB_lib_hint "${BerkeleyDB_INCLUDE_DIR}" DIRECTORY)
find_library(
BerkeleyDB_LIBRARY_RELEASE
NAMES db48 db53 db NAMES_PER_DIR
HINTS ${_BerkeleyDB_lib_hint}
PATH_SUFFIXES lib)
PATH_SUFFIXES lib
)
mark_as_advanced(BerkeleyDB_LIBRARY_RELEASE)
find_library(
BerkeleyDB_LIBRARY_DEBUG
NAMES db48 db53 db NAMES_PER_DIR
HINTS ${_BerkeleyDB_lib_hint}
PATH_SUFFIXES debug/lib)
PATH_SUFFIXES debug/lib
)
mark_as_advanced(BerkeleyDB_LIBRARY_DEBUG)
unset(_BerkeleyDB_lib_hint)
@ -97,23 +100,23 @@ endif()
if(BerkeleyDB_INCLUDE_DIR)
file(STRINGS "${BerkeleyDB_INCLUDE_DIR}/db.h" _BerkeleyDB_version_strings
REGEX "^#define[\t ]+DB_VERSION_(MAJOR|MINOR|PATCH)[ \t]+[0-9]+.*")
string(REGEX
REPLACE ".*#define[\t ]+DB_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1"
_BerkeleyDB_version_major "${_BerkeleyDB_version_strings}")
string(REGEX
REPLACE ".*#define[\t ]+DB_VERSION_MINOR[ \t]+([0-9]+).*" "\\1"
_BerkeleyDB_version_minor "${_BerkeleyDB_version_strings}")
string(REGEX
REPLACE ".*#define[\t ]+DB_VERSION_PATCH[ \t]+([0-9]+).*" "\\1"
_BerkeleyDB_version_patch "${_BerkeleyDB_version_strings}")
REGEX "^#define[\t ]+DB_VERSION_(MAJOR|MINOR|PATCH)[ \t]+[0-9]+.*"
)
string(REGEX REPLACE ".*#define[\t ]+DB_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1"
_BerkeleyDB_version_major "${_BerkeleyDB_version_strings}"
)
string(REGEX REPLACE ".*#define[\t ]+DB_VERSION_MINOR[ \t]+([0-9]+).*" "\\1"
_BerkeleyDB_version_minor "${_BerkeleyDB_version_strings}"
)
string(REGEX REPLACE ".*#define[\t ]+DB_VERSION_PATCH[ \t]+([0-9]+).*" "\\1"
_BerkeleyDB_version_patch "${_BerkeleyDB_version_strings}"
)
unset(_BerkeleyDB_version_strings)
# The MAJOR.MINOR.PATCH version will be logged in the following find_package_handle_standard_args() command.
set(_BerkeleyDB_full_version
${_BerkeleyDB_version_major}.${_BerkeleyDB_version_minor}.${_BerkeleyDB_version_patch}
)
set(BerkeleyDB_VERSION
${_BerkeleyDB_version_major}.${_BerkeleyDB_version_minor})
set(BerkeleyDB_VERSION ${_BerkeleyDB_version_major}.${_BerkeleyDB_version_minor})
unset(_BerkeleyDB_version_major)
unset(_BerkeleyDB_version_minor)
unset(_BerkeleyDB_version_patch)
@ -123,30 +126,33 @@ include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
BerkeleyDB
REQUIRED_VARS BerkeleyDB_LIBRARY BerkeleyDB_INCLUDE_DIR
VERSION_VAR _BerkeleyDB_full_version)
VERSION_VAR _BerkeleyDB_full_version
)
unset(_BerkeleyDB_full_version)
if(BerkeleyDB_FOUND AND NOT TARGET BerkeleyDB::BerkeleyDB)
add_library(BerkeleyDB::BerkeleyDB UNKNOWN IMPORTED)
set_target_properties(
BerkeleyDB::BerkeleyDB PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${BerkeleyDB_INCLUDE_DIR}")
BerkeleyDB::BerkeleyDB PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${BerkeleyDB_INCLUDE_DIR}"
)
if(BerkeleyDB_LIBRARY_RELEASE)
set_property(
TARGET BerkeleyDB::BerkeleyDB
APPEND
PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
PROPERTY IMPORTED_CONFIGURATIONS RELEASE
)
set_target_properties(
BerkeleyDB::BerkeleyDB PROPERTIES IMPORTED_LOCATION_RELEASE
"${BerkeleyDB_LIBRARY_RELEASE}")
BerkeleyDB::BerkeleyDB PROPERTIES IMPORTED_LOCATION_RELEASE "${BerkeleyDB_LIBRARY_RELEASE}"
)
endif()
if(BerkeleyDB_LIBRARY_DEBUG)
set_property(
TARGET BerkeleyDB::BerkeleyDB
APPEND
PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
PROPERTY IMPORTED_CONFIGURATIONS DEBUG
)
set_target_properties(
BerkeleyDB::BerkeleyDB PROPERTIES IMPORTED_LOCATION_DEBUG
"${BerkeleyDB_LIBRARY_DEBUG}")
BerkeleyDB::BerkeleyDB PROPERTIES IMPORTED_LOCATION_DEBUG "${BerkeleyDB_LIBRARY_DEBUG}"
)
endif()
endif()

@ -49,9 +49,7 @@ This will define the following variables:
#]=======================================================================]
include(FindPackageHandleStandardArgs)
set(Erlang_BIN_PATH $ENV{ERLANG_HOME}/bin /opt/bin /sw/bin /usr/bin
/usr/local/bin /opt/local/bin
)
set(Erlang_BIN_PATH $ENV{ERLANG_HOME}/bin /opt/bin /sw/bin /usr/bin /usr/local/bin /opt/local/bin)
find_program(
Erlang_RUNTIME
@ -66,28 +64,23 @@ find_program(
)
execute_process(
COMMAND erl -noshell -eval "io:format(\"~s\", [code:lib_dir()])" -s erlang
halt OUTPUT_VARIABLE Erlang_OTP_LIB_DIR
COMMAND erl -noshell -eval "io:format(\"~s\", [code:lib_dir()])" -s erlang halt
OUTPUT_VARIABLE Erlang_OTP_LIB_DIR
)
execute_process(
COMMAND erl -noshell -eval "io:format(\"~s\", [code:root_dir()])" -s erlang
halt OUTPUT_VARIABLE Erlang_OTP_ROOT_DIR
COMMAND erl -noshell -eval "io:format(\"~s\", [code:root_dir()])" -s erlang halt
OUTPUT_VARIABLE Erlang_OTP_ROOT_DIR
)
execute_process(
COMMAND
erl -noshell -eval
"io:format(\"~s\",[filename:basename(code:lib_dir('erl_interface'))])" -s
erlang halt
OUTPUT_VARIABLE Erlang_EI_DIR
COMMAND erl -noshell -eval "io:format(\"~s\",[filename:basename(code:lib_dir('erl_interface'))])"
-s erlang halt OUTPUT_VARIABLE Erlang_EI_DIR
)
execute_process(
COMMAND
erl -noshell -eval
"io:format(\"~s\",[filename:basename(code:lib_dir('erts'))])" -s erlang halt
OUTPUT_VARIABLE Erlang_ERTS_DIR
COMMAND erl -noshell -eval "io:format(\"~s\",[filename:basename(code:lib_dir('erts'))])" -s erlang
halt OUTPUT_VARIABLE Erlang_ERTS_DIR
)
set(Erlang_EI_PATH ${Erlang_OTP_LIB_DIR}/${Erlang_EI_DIR})
@ -113,39 +106,28 @@ if(Erlang_FOUND)
if(NOT TARGET Erlang::Erlang)
add_library(Erlang::Erlang INTERFACE IMPORTED)
set_target_properties(
Erlang::Erlang PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
${Erlang_OTP_ROOT_DIR}/usr/include
Erlang::Erlang PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${Erlang_OTP_ROOT_DIR}/usr/include
)
endif()
if(NOT TARGET Erlang::ERTS)
add_library(Erlang::ERTS STATIC IMPORTED)
set_target_properties(
Erlang::ERTS
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${Erlang_ERTS_INCLUDE_DIRS}
IMPORTED_LOCATION ${Erlang_ERTS_LIBRARY_PATH}/liberts.a
Erlang::ERTS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${Erlang_ERTS_INCLUDE_DIRS}
IMPORTED_LOCATION ${Erlang_ERTS_LIBRARY_PATH}/liberts.a
)
endif()
if(NOT TARGET Erlang::EI)
add_library(erlang_ei STATIC IMPORTED)
set_property(
TARGET erlang_ei PROPERTY IMPORTED_LOCATION
${Erlang_EI_LIBRARY_PATH}/libei.a
)
set_property(TARGET erlang_ei PROPERTY IMPORTED_LOCATION ${Erlang_EI_LIBRARY_PATH}/libei.a)
add_library(erlang_erl_interface STATIC IMPORTED)
set_property(
TARGET erlang_erl_interface
PROPERTY IMPORTED_LOCATION ${Erlang_EI_LIBRARY_PATH}/liberl_interface.a
TARGET erlang_erl_interface PROPERTY IMPORTED_LOCATION
${Erlang_EI_LIBRARY_PATH}/liberl_interface.a
)
add_library(Erlang::EI INTERFACE IMPORTED)
set_property(
TARGET Erlang::EI PROPERTY INTERFACE_INCLUDE_DIRECTORIES
${Erlang_EI_INCLUDE_DIRS}
)
set_property(
TARGET Erlang::EI PROPERTY INTERFACE_LINK_LIBRARIES erlang_ei
erlang_erl_interface
)
set_property(TARGET Erlang::EI PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${Erlang_EI_INCLUDE_DIRS})
set_property(TARGET Erlang::EI PROPERTY INTERFACE_LINK_LIBRARIES erlang_ei erlang_erl_interface)
endif()
endif(Erlang_FOUND)

@ -58,29 +58,21 @@ endif()
if(EXISTS ${Ldap_INCLUDE_DIRS}/ldap_features.h)
file(READ ${Ldap_INCLUDE_DIRS}/ldap_features.h LDAP_FEATURES_H_CONTENT)
string(REGEX MATCH "#define LDAP_VENDOR_VERSION_MAJOR[ ]+[0-9]+"
_LDAP_VERSION_MAJOR_MATCH ${LDAP_FEATURES_H_CONTENT}
string(REGEX MATCH "#define LDAP_VENDOR_VERSION_MAJOR[ ]+[0-9]+" _LDAP_VERSION_MAJOR_MATCH
${LDAP_FEATURES_H_CONTENT}
)
string(REGEX MATCH "#define LDAP_VENDOR_VERSION_MINOR[ ]+[0-9]+"
_LDAP_VERSION_MINOR_MATCH ${LDAP_FEATURES_H_CONTENT}
string(REGEX MATCH "#define LDAP_VENDOR_VERSION_MINOR[ ]+[0-9]+" _LDAP_VERSION_MINOR_MATCH
${LDAP_FEATURES_H_CONTENT}
)
string(REGEX MATCH "#define LDAP_VENDOR_VERSION_PATCH[ ]+[0-9]+"
_LDAP_VERSION_PATCH_MATCH ${LDAP_FEATURES_H_CONTENT}
string(REGEX MATCH "#define LDAP_VENDOR_VERSION_PATCH[ ]+[0-9]+" _LDAP_VERSION_PATCH_MATCH
${LDAP_FEATURES_H_CONTENT}
)
string(REGEX REPLACE ".*_MAJOR[ ]+(.*)" "\\1" LDAP_VERSION_MAJOR
${_LDAP_VERSION_MAJOR_MATCH}
)
string(REGEX REPLACE ".*_MINOR[ ]+(.*)" "\\1" LDAP_VERSION_MINOR
${_LDAP_VERSION_MINOR_MATCH}
)
string(REGEX REPLACE ".*_PATCH[ ]+(.*)" "\\1" LDAP_VERSION_PATCH
${_LDAP_VERSION_PATCH_MATCH}
)
string(REGEX REPLACE ".*_MAJOR[ ]+(.*)" "\\1" LDAP_VERSION_MAJOR ${_LDAP_VERSION_MAJOR_MATCH})
string(REGEX REPLACE ".*_MINOR[ ]+(.*)" "\\1" LDAP_VERSION_MINOR ${_LDAP_VERSION_MINOR_MATCH})
string(REGEX REPLACE ".*_PATCH[ ]+(.*)" "\\1" LDAP_VERSION_PATCH ${_LDAP_VERSION_PATCH_MATCH})
set(Ldap_VERSION
"${LDAP_VERSION_MAJOR}.${LDAP_VERSION_MINOR}.${LDAP_VERSION_PATCH}"
)
set(Ldap_VERSION "${LDAP_VERSION_MAJOR}.${LDAP_VERSION_MINOR}.${LDAP_VERSION_PATCH}")
endif()
include(FindPackageHandleStandardArgs)
@ -94,9 +86,7 @@ find_package_handle_standard_args(
if(Ldap_FOUND AND NOT TARGET Lber::Lber)
add_library(Lber::Lber UNKNOWN IMPORTED)
set_target_properties(
Lber::Lber PROPERTIES IMPORTED_LOCATION "${Lber_LIBRARY}"
)
set_target_properties(Lber::Lber PROPERTIES IMPORTED_LOCATION "${Lber_LIBRARY}")
endif()
if(Ldap_FOUND AND NOT TARGET Ldap::Ldap)

@ -53,8 +53,6 @@ endif()
list(APPEND LIBEV_LIBRARIES "${LIBEV_LIBRARY}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Libev REQUIRED_VARS LIBEV_LIBRARIES LIBEV_INCLUDE_DIR
)
find_package_handle_standard_args(Libev REQUIRED_VARS LIBEV_LIBRARIES LIBEV_INCLUDE_DIR)
mark_as_advanced(LIBEV_INCLUDE_DIR LIBEV_LIBRARIES LIBEV_LIBRARY)

@ -14,7 +14,8 @@ find_path(LibfreeradiusClient_INCLUDE_DIR NAMES freeradius-client.h)
find_library(
LibfreeradiusClient_LIBRARY
NAMES freeradius-client freeradius-eap
PATH_SUFFIXES freeradius)
PATH_SUFFIXES freeradius
)
mark_as_advanced(LibfreeradiusClient_LIBRARY LibfreeradiusClient_INCLUDE_DIR)
@ -22,21 +23,23 @@ mark_as_advanced(LibfreeradiusClient_LIBRARY LibfreeradiusClient_INCLUDE_DIR)
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
LibfreeradiusClient REQUIRED_VARS LibfreeradiusClient_LIBRARY
LibfreeradiusClient_INCLUDE_DIR)
LibfreeradiusClient REQUIRED_VARS LibfreeradiusClient_LIBRARY LibfreeradiusClient_INCLUDE_DIR
)
if(LibfreeradiusClient_FOUND)
find_package_message(
LibfreeradiusClient "Found Libfreeradius: ${LibfreeradiusClient_LIBRARY}"
"[${LibfreeradiusClient_LIBRARY}][${LibfreeradiusClient_INCLUDE_DIR}]")
"[${LibfreeradiusClient_LIBRARY}][${LibfreeradiusClient_INCLUDE_DIR}]"
)
set(LibfreeradiusClient_INCLUDE_DIRS ${LibfreeradiusClient_INCLUDE_DIR})
set(LibfreeradiusClient_LIBRARIES ${LibfreeradiusClient_LIBRARY})
add_library(LibfreeradiusClient::LIBFREERADIUS UNKNOWN IMPORTED)
set_target_properties(
LibfreeradiusClient::LIBFREERADIUS
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${LibfreeradiusClient_INCLUDE_DIR}")
LibfreeradiusClient::LIBFREERADIUS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${LibfreeradiusClient_INCLUDE_DIR}"
)
set_target_properties(
LibfreeradiusClient::LIBFREERADIUS
PROPERTIES IMPORTED_LOCATION "${LibfreeradiusClient_LIBRARY}")
LibfreeradiusClient::LIBFREERADIUS PROPERTIES IMPORTED_LOCATION
"${LibfreeradiusClient_LIBRARY}"
)
endif()

@ -40,8 +40,7 @@ set(BAK_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX})
find_library(
MariaDBClient_LIBRARY
NAMES mariadb libmariadb mariadbclient libmariadbclient mysqlclient
libmysqlclient
NAMES mariadb libmariadb mariadbclient libmariadbclient mysqlclient libmysqlclient
PATH_SUFFIXES mariadb mysql
)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${BAK_CMAKE_FIND_LIBRARY_SUFFIXES})

@ -130,9 +130,7 @@ set(ENV_OR_OPT_VARS
)
# Mark the variable names that have values that are paths
set(ENV_OR_OPT_PATH_VARS MYSQL_DIR MYSQL_INCLUDE_DIR MYSQL_LIB_DIR
MYSQL_PLUGIN_DIR
)
set(ENV_OR_OPT_PATH_VARS MYSQL_DIR MYSQL_INCLUDE_DIR MYSQL_LIB_DIR MYSQL_PLUGIN_DIR)
foreach(_xvar ${ENV_OR_OPT_VARS})
@ -167,10 +165,8 @@ endforeach()
# were given
if(MYSQL_DIR AND (MYSQL_INCLUDE_DIR OR MYSQL_LIB_DIR))
message(
FATAL_ERROR
"Both MYSQL_DIR and MYSQL_INCLUDE_DIR/MYSQL_LIB_DIR were specified,"
" use either one or the other way of pointing at MySQL location."
message(FATAL_ERROR "Both MYSQL_DIR and MYSQL_INCLUDE_DIR/MYSQL_LIB_DIR were specified,"
" use either one or the other way of pointing at MySQL location."
)
endif()
@ -215,9 +211,7 @@ else()
add_definitions(-DNDEBUG) # FIXME what?!
endif()
set(_exe_fallback_path /usr/bin /usr/local/bin /opt/mysql/mysql/bin
/usr/local/mysql/bin
)
set(_exe_fallback_path /usr/bin /usr/local/bin /opt/mysql/mysql/bin /usr/local/mysql/bin)
set(_include_fallback_path
/usr/include/mysql
@ -322,10 +316,7 @@ string(REPLACE ";" " " _pp_include_fallback_path "${_include_fallback_path}")
message(STATUS "You will link ${_link_type}ally to the MySQL client"
" library (set with -DMYSQLCLIENT_STATIC_LINKING=<bool>)"
)
message(
STATUS
"Searching for ${_link_type} libraries with the base name(s) \"${_pp_search_libs}\""
)
message(STATUS "Searching for ${_link_type} libraries with the base name(s) \"${_pp_search_libs}\"")
##########################################################################
#
@ -367,20 +358,12 @@ endmacro()
macro(_mysql_config _var _regex _opt)
_mysql_conf(_mysql_config_output ${_opt})
string(REGEX MATCHALL "${_regex}([^ ]+)" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX REPLACE "^[ \t]+" "" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX MATCHALL "${_regex}([^ ]+)" _mysql_config_output "${_mysql_config_output}")
string(REGEX REPLACE "^[ \t]+" "" _mysql_config_output "${_mysql_config_output}")
if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
string(REGEX REPLACE " -latomic" "" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX REPLACE " -latomic" "" _mysql_config_output "${_mysql_config_output}")
endif()
string(REGEX REPLACE "${_regex}" "" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX REPLACE "${_regex}" "" _mysql_config_output "${_mysql_config_output}")
separate_arguments(_mysql_config_output)
set(${_var} ${_mysql_config_output})
endmacro()
@ -403,23 +386,13 @@ endmacro()
macro(_mysql_config_replace _var _regex1 _replace _regex2 _opt)
_mysql_conf(_mysql_config_output ${_opt})
string(REGEX MATCHALL "${_regex2}([^ ]+)" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX REPLACE "^[ \t]+" "" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX MATCHALL "${_regex2}([^ ]+)" _mysql_config_output "${_mysql_config_output}")
string(REGEX REPLACE "^[ \t]+" "" _mysql_config_output "${_mysql_config_output}")
if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
string(REGEX REPLACE " -latomic" "" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX REPLACE " -latomic" "" _mysql_config_output "${_mysql_config_output}")
endif()
string(REGEX REPLACE "${_regex2}" "" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX REPLACE "${_regex1}" "${_replace}" _mysql_config_output
"${_mysql_config_output}"
)
string(REGEX REPLACE "${_regex2}" "" _mysql_config_output "${_mysql_config_output}")
string(REGEX REPLACE "${_regex1}" "${_replace}" _mysql_config_output "${_mysql_config_output}")
separate_arguments(_mysql_config_output)
set(${_var} ${_mysql_config_output})
endmacro()
@ -442,10 +415,8 @@ macro(_check_lib_search_error _lib_dir_var _lib_var _exta_err_string)
message("_lib_dir_var \"${_lib_dir_var}\"")
endif()
set(_err_string
"Could not find ${_link_type} "
"\"${_pp_search_libs}\" in ${_lib_dir_var} "
"\"${_lib_dir}\" ${_exta_err_string}"
set(_err_string "Could not find ${_link_type} " "\"${_pp_search_libs}\" in ${_lib_dir_var} "
"\"${_lib_dir}\" ${_exta_err_string}"
)
if(NOT ${_lib_var})
@ -529,9 +500,7 @@ elseif(
set(MYSQL_INCLUDE_DIR "${MYSQL_DIR}/include")
if(NOT EXISTS "${MYSQL_INCLUDE_DIR}/mysql.h")
message(FATAL_ERROR "MYSQL_DIR given, but no \"mysql.h\" "
"in \"${MYSQL_INCLUDE_DIR}\""
)
message(FATAL_ERROR "MYSQL_DIR given, but no \"mysql.h\" " "in \"${MYSQL_INCLUDE_DIR}\"")
endif()
elseif(MYSQL_CONFIG_EXECUTABLE)
@ -550,9 +519,8 @@ elseif(MYSQL_CONFIG_EXECUTABLE)
endif()
if(NOT EXISTS "${MYSQL_INCLUDE_DIR}/mysql.h")
message(
FATAL_ERROR "Could not find \"mysql.h\" in \"${MYSQL_INCLUDE_DIR}\" "
"found from running \"${MYSQL_CONFIG_EXECUTABLE}\""
message(FATAL_ERROR "Could not find \"mysql.h\" in \"${MYSQL_INCLUDE_DIR}\" "
"found from running \"${MYSQL_CONFIG_EXECUTABLE}\""
)
endif()
@ -615,9 +583,7 @@ elseif(
)
if(FINDMYSQL_DEBUG)
message("DBG: Using find_library() searching "
"MYSQL_DIR and \"${_pp_lib_subdirs}\""
)
message("DBG: Using find_library() searching " "MYSQL_DIR and \"${_pp_lib_subdirs}\"")
endif()
find_library(
@ -631,9 +597,7 @@ elseif(
get_filename_component(MYSQL_LIB_DIR "${MYSQL_LIB}" PATH)
set(MYSQL_LIBRARIES "${MYSQL_LIB}")
if(((NOT DEFINED MYSQL_PLUGIN_DIR) OR (NOT ${MYSQL_PLUGIN_DIR}))
AND MYSQL_LIB_DIR
)
if(((NOT DEFINED MYSQL_PLUGIN_DIR) OR (NOT ${MYSQL_PLUGIN_DIR})) AND MYSQL_LIB_DIR)
if(EXISTS "${MYSQL_LIB_DIR}/plugin")
set(MYSQL_PLUGIN_DIR "${MYSQL_LIB_DIR}/plugin")
else()
@ -721,8 +685,7 @@ elseif(MYSQL_CONFIG_EXECUTABLE)
# Replace the current library references with the full path
# to the library, i.e. the -L will be ignored
_mysql_config_replace(
MYSQL_LIBRARIES "(mysqlclient|mysqlclient_r)" "${MYSQL_LIB}" "(^| )-l"
"--libs"
MYSQL_LIBRARIES "(mysqlclient|mysqlclient_r)" "${MYSQL_LIB}" "(^| )-l" "--libs"
)
else()
@ -798,11 +761,10 @@ endif()
list(LENGTH MYSQL_LIBRARIES len)
if(MYSQL_STATIC_LINKING AND (len LESS 2))
message(
WARNING
"Statically linking MySQL client library normally requires linking"
" additional libraries that the client library depends on. It seems"
" no extra libraries have been specified. Provide the list of required"
" dependencies through MYSQL_EXTRA_LIBRARIES."
WARNING "Statically linking MySQL client library normally requires linking"
" additional libraries that the client library depends on. It seems"
" no extra libraries have been specified. Provide the list of required"
" dependencies through MYSQL_EXTRA_LIBRARIES."
)
endif()
@ -819,9 +781,7 @@ set(MYSQL_CLIENT_LIBS ${MYSQL_LIBRARIES})
if(MYSQL_INCLUDE_DIR AND NOT MYSQL_VERSION)
# Write the C source file that will include the MySQL headers
set(GETMYSQLVERSION_SOURCEFILE
"${CMAKE_CURRENT_BINARY_DIR}/getmysqlversion.c"
)
set(GETMYSQLVERSION_SOURCEFILE "${CMAKE_CURRENT_BINARY_DIR}/getmysqlversion.c")
file(WRITE "${GETMYSQLVERSION_SOURCEFILE}"
"#include <mysql.h>\n" "#include <stdio.h>\n" "int main() {\n"
" printf(\"%s\", MYSQL_SERVER_VERSION);\n" "}\n"
@ -829,8 +789,7 @@ if(MYSQL_INCLUDE_DIR AND NOT MYSQL_VERSION)
# Compile and run the created executable, store output in MYSQL_VERSION
try_run(
_run_result _compile_result "${CMAKE_BINARY_DIR}"
"${GETMYSQLVERSION_SOURCEFILE}"
_run_result _compile_result "${CMAKE_BINARY_DIR}" "${GETMYSQLVERSION_SOURCEFILE}"
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${MYSQL_INCLUDE_DIR}"
RUN_OUTPUT_VARIABLE MYSQL_VERSION
)
@ -859,12 +818,8 @@ endif()
# Clean up so only numeric, in case of "-alpha" or similar
string(REGEX MATCHALL "([0-9]+.[0-9]+.[0-9]+)" MYSQL_VERSION "${MYSQL_VERSION}")
# To create a fully numeric version, first normalize so N.NN.NN
string(REGEX REPLACE "[.]([0-9])[.]" ".0\\1." MYSQL_VERSION_ID
"${MYSQL_VERSION}"
)
string(REGEX REPLACE "[.]([0-9])$" ".0\\1" MYSQL_VERSION_ID
"${MYSQL_VERSION_ID}"
)
string(REGEX REPLACE "[.]([0-9])[.]" ".0\\1." MYSQL_VERSION_ID "${MYSQL_VERSION}")
string(REGEX REPLACE "[.]([0-9])$" ".0\\1" MYSQL_VERSION_ID "${MYSQL_VERSION_ID}")
# Finally remove the dot
string(REGEX REPLACE "[.]" "" MYSQL_VERSION_ID "${MYSQL_VERSION_ID}")
set(MYSQL_NUM_VERSION ${MYSQL_VERSION_ID})
@ -933,10 +888,7 @@ endif()
#
##########################################################################
message(
STATUS
"MySQL client environment/cmake variables set that the user can override"
)
message(STATUS "MySQL client environment/cmake variables set that the user can override")
message(STATUS " MYSQL_DIR : ${MYSQL_DIR}")
message(STATUS " MYSQL_INCLUDE_DIR : ${MYSQL_INCLUDE_DIR}")
@ -949,9 +901,7 @@ message(STATUS " MYSQL_CXXFLAGS : ${MYSQL_CXXFLAGS}")
message(STATUS " MYSQLCLIENT_STATIC_LINKING : ${MYSQLCLIENT_STATIC_LINKING}")
message(STATUS " MYSQLCLIENT_NO_THREADS : ${MYSQLCLIENT_NO_THREADS}")
message(
STATUS "MySQL client optional environment/cmake variables set by the user"
)
message(STATUS "MySQL client optional environment/cmake variables set by the user")
message(STATUS " MYSQL_EXTRA_LIBRARIES : ${MYSQL_EXTRA_LIBRARIES}")
message(STATUS " MYSQL_LINK_FLAGS : ${MYSQL_LINK_FLAGS}")

@ -38,12 +38,8 @@ endif(NETSNMP_LIBS)
find_program(NETSNMP_CONFIG_BIN net-snmp-config)
if(NETSNMP_CONFIG_BIN)
execute_process(
COMMAND ${NETSNMP_CONFIG_BIN} --cflags OUTPUT_VARIABLE _NETSNMP_CFLAGS
)
execute_process(
COMMAND ${NETSNMP_CONFIG_BIN} --libs OUTPUT_VARIABLE _NETSNMP_LIBS
)
execute_process(COMMAND ${NETSNMP_CONFIG_BIN} --cflags OUTPUT_VARIABLE _NETSNMP_CFLAGS)
execute_process(COMMAND ${NETSNMP_CONFIG_BIN} --libs OUTPUT_VARIABLE _NETSNMP_LIBS)
# Strip trailing and leading whitespaces
string(STRIP "${_NETSNMP_CFLAGS}" _NETSNMP_CFLAGS)
string(STRIP "${_NETSNMP_LIBS}" _NETSNMP_LIBS)
@ -60,14 +56,13 @@ if(NETSNMP_CONFIG_BIN)
add_library(NETSNMP::NETSNMP INTERFACE IMPORTED)
set_target_properties(
NETSNMP::NETSNMP PROPERTIES COMPILE_FLAGS "${NETSNMP_CFLAGS}"
INTERFACE_LINK_LIBRARIES "${NETSNMP_LIBS}"
NETSNMP::NETSNMP PROPERTIES COMPILE_FLAGS "${NETSNMP_CFLAGS}" INTERFACE_LINK_LIBRARIES
"${NETSNMP_LIBS}"
)
if(NOT TARGET NETSNMP::NETSNMP)
message(
FATAL_ERROR
"Failed to create NETSNMP::NETSNMP target, check the output of net-snmp-config"
FATAL_ERROR "Failed to create NETSNMP::NETSNMP target, check the output of net-snmp-config"
)
endif()
else()

@ -56,8 +56,7 @@ set(ORACLE_VERSIONS
11
10
)
set(ORACLE_OCI_NAMES clntsh libclntsh oci
)# Dirty trick might help on OSX, see issues/89
set(ORACLE_OCI_NAMES clntsh libclntsh oci) # Dirty trick might help on OSX, see issues/89
set(ORACLE_OCCI_NAMES libocci occi)
set(ORACLE_NNZ_NAMES ociw32)
foreach(loop_var IN LISTS ORACLE_VERSIONS)
@ -91,9 +90,7 @@ find_library(
PATHS ${ORACLE_LIB_DIR}
)
set(ORACLE_LIBRARY ${ORACLE_OCI_LIBRARY} ${ORACLE_OCCI_LIBRARY}
${ORACLE_NNZ_LIBRARY}
)
set(ORACLE_LIBRARY ${ORACLE_OCI_LIBRARY} ${ORACLE_OCCI_LIBRARY} ${ORACLE_NNZ_LIBRARY})
if(NOT WIN32)
set(ORACLE_LIBRARY ${ORACLE_LIBRARY} ${ORACLE_CLNTSH_LIBRARY})
@ -104,9 +101,7 @@ set(ORACLE_LIBRARIES ${ORACLE_LIBRARY})
# Handle the QUIETLY and REQUIRED arguments and set ORACLE_FOUND to TRUE
# if all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Oracle DEFAULT_MSG ORACLE_LIBRARY ORACLE_INCLUDE_DIR
)
find_package_handle_standard_args(Oracle DEFAULT_MSG ORACLE_LIBRARY ORACLE_INCLUDE_DIR)
if(NOT ORACLE_FOUND)
message(

@ -14,7 +14,8 @@ find_package(PkgConfig)
set(RADIUSCLIENTS FREERADIUS RADCLI RADIUSCLIENT_NG)
set(RADIUSCLIENT
RADCLI
CACHE STRING "Radius Client to use")
CACHE STRING "Radius Client to use"
)
set_property(CACHE RADIUSCLIENT PROPERTY STRINGS ${RADIUSCLIENTS})
# option(FREERADIUS "Use freeradius-client library" OFF)
@ -37,8 +38,7 @@ if(${RADIUSCLIENT} STREQUAL "FREERADIUS")
# - freeradius-client library
set(RADIUSCLIENT_LIB USE_FREERADIUS)
find_package(LibfreeradiusClient REQUIRED)
add_library(RadiusClient::RadiusClient ALIAS
LibfreeradiusClient::LIBFREERADIUS)
add_library(RadiusClient::RadiusClient ALIAS LibfreeradiusClient::LIBFREERADIUS)
elseif(${RADIUSCLIENT} STREQUAL "RADCLI")
# - radcli library
set(RADIUSCLIENT_LIB USE_RADCLI)

@ -1,8 +1,6 @@
# Quite analogous to the Makefile.defs file This file is used to define the
# common flags and options for the project The flags are defined as INTERFACE
# properties of the common library The flags are then used by the other
# libraries and executables
# This file is included from the def.cmake CMakeLists.txt file.
# It sets up the OS-specific flags and includes the appropriate
# OS-specific CMake file.
set(OS_SPECIFIC_DIR "${CMAKE_SOURCE_DIR}/cmake/os-specific")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
include(${OS_SPECIFIC_DIR}/linux.cmake)
@ -15,6 +13,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
# FreeBSD specific flags
include(${OS_SPECIFIC_DIR}/freebsd.cmake)
elseif()
else()
message(FATAL_ERROR "Unsupported system: ${CMAKE_SYSTEM_NAME}")
endif()

@ -1,7 +1,4 @@
message(
STATUS
"Configuring for Darwin (Apple stationary operating systems (macOS, OS X, etc.)"
)
message(STATUS "Configuring for Darwin (Apple stationary operating systems (macOS, OS X, etc.)")
target_compile_definitions(
common
@ -16,7 +13,8 @@ target_compile_definitions(
HAVE_CONNECT_ECONNRESET_BUG
HAVE_TIMEGM
USE_SIGWAIT
HAVE_IP_MREQN)
HAVE_IP_MREQN
)
target_link_libraries(common INTERFACE resolv)
target_link_libraries(common_utils INTERFACE resolv)
@ -25,20 +23,22 @@ if(NOT ${USE_FAST_LOCK})
target_compile_definitions(common INTERFACE USE_PTHREAD_MUTEX USE_SYSV_SEM)
endif()
if (CMAKE_HOST_SYSTEM_VERSION VERSION_LESS 24)
message(STATUS "Running on Big Sur")
set(CMAKE_MODULE_LINKER_FLAGS
"${CMAKE_MODULE_LINKER_FLAGS} -bundle -flat_namespace -undefined suppress")
set(CMAKE_SHARED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -dynamiclib -flat_namespace -undefined suppress"
)
else ()
set(CMAKE_MODULE_LINKER_FLAGS
"${CMAKE_MODULE_LINKER_FLAGS} -bundle -flat_namespace -undefined dynamic_lookup")
set(CMAKE_SHARED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -dynamiclib -flat_namespace -undefined dynamic_lookup"
)
endif ()
if(CMAKE_HOST_SYSTEM_VERSION VERSION_LESS 24)
message(STATUS "Running on Big Sur")
set(CMAKE_MODULE_LINKER_FLAGS
"${CMAKE_MODULE_LINKER_FLAGS} -bundle -flat_namespace -undefined suppress"
)
set(CMAKE_SHARED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -dynamiclib -flat_namespace -undefined suppress"
)
else()
set(CMAKE_MODULE_LINKER_FLAGS
"${CMAKE_MODULE_LINKER_FLAGS} -bundle -flat_namespace -undefined dynamic_lookup"
)
set(CMAKE_SHARED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -dynamiclib -flat_namespace -undefined dynamic_lookup"
)
endif()
if(NOT NO_SELECT)
target_compile_definitions(common INTERFACE HAVE_SELECT)

@ -10,7 +10,8 @@ target_compile_definitions(
HAVE_ALLOCA_H
HAVE_TIMEGM
HAVE_SCHED_SETSCHEDULER
HAVE_IP_MREQN)
HAVE_IP_MREQN
)
if(${RAW_SOCKS})
target_compile_definitions(common INTERFACE USE_RAW_SOCKS)
@ -21,8 +22,7 @@ if(NOT ${USE_FAST_LOCK})
target_link_libraries(common INTERFACE pthread)
else()
# Check if lock_method is posix or pthread
if(LOCK_METHOD STREQUAL "USE_POSIX_SEM" OR LOCK_METHOD STREQUAL
"USE_PTHREAD_MUTEX")
if(LOCK_METHOD STREQUAL "USE_POSIX_SEM" OR LOCK_METHOD STREQUAL "USE_PTHREAD_MUTEX")
message(STATUS "Using ${LOCK_METHOD} for locks")
target_link_libraries(common INTERFACE pthread)
endif()
@ -38,6 +38,5 @@ if(NOT NO_EPOLL)
endif()
if(NOT NO_SIGIO_RT)
target_compile_definitions(common INTERFACE HAVE_SIGIO_RT
SIGINFO64_WORKAROUND)
target_compile_definitions(common INTERFACE HAVE_SIGIO_RT SIGINFO64_WORKAROUND)
endif()

@ -9,7 +9,8 @@ target_compile_definitions(
HAVE_MSGHDR_MSG_CONTROL
HAVE_CONNECT_ECONNRESET_BUG
HAVE_TIMEGM
HAVE_IP_MREQN)
HAVE_IP_MREQN
)
if(${RAW_SOCKS})
target_compile_definitions(common INTERFACE USE_RAW_SOCKS)

@ -11,7 +11,8 @@ target_compile_definitions(
HAVE_ALLOCA_H
HAVE_TIMEGM
HAVE_SCHED_SETSCHEDULER
HAVE_IP_MREQN)
HAVE_IP_MREQN
)
target_link_libraries(common INTERFACE ${CMAKE_DL_LIBS} resolv)
target_link_libraries(common_utils INTERFACE resolv)
@ -23,8 +24,7 @@ endif()
if(NOT ${USE_FAST_LOCK})
target_compile_definitions(common INTERFACE USE_PTHREAD_MUTEX)
target_link_libraries(common INTERFACE pthread)
message(
STATUS "FAST_LOCK not available on this platform, using: USE_PTHREAD_MUTEX")
message(STATUS "FAST_LOCK not available on this platform, using: USE_PTHREAD_MUTEX")
else()
# TODO: Check if this can be reached. Right now it is not possible to set
# LOCK_METHOD, only USE_FAST_LOCK. This branch is reached when USE_FAST_LOCK
@ -48,8 +48,7 @@ endif()
# TODO introduce check for sigio
if(NOT NO_SIGIO_RT)
target_compile_definitions(common INTERFACE HAVE_SIGIO_RT
SIGINFO64_WORKAROUND)
target_compile_definitions(common INTERFACE HAVE_SIGIO_RT SIGINFO64_WORKAROUND)
endif()
# TODO This is placed here to match the Makefiles where both

@ -43,7 +43,7 @@
<xsl:template name="quotechar">
<xsl:choose>
<xsl:when test="$db='mysql'">
<xsl:when test="$db='db_mysql'">
<xsl:text>`</xsl:text>
</xsl:when>
<xsl:otherwise>

@ -65,7 +65,7 @@
<xsl:call-template name="get-type"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="type[@db='mysql']">
<xsl:when test="type[@db='db_mysql']">
<xsl:value-of select="normalize-space(type[@db='mysql'])"/>
</xsl:when>
<xsl:when test="$type='char'">

@ -32,7 +32,8 @@ apk:
sed -e "s/^_gitcommit=.*/_gitcommit=${GIT_TAG}/" \
-e "s/^pkgver=.*/pkgver=${APK_VERSION}/" \
-i alpine/APKBUILD
abuild -C alpine snapshot
abuild -C alpine git_archive
abuild -C alpine checksum
@echo \"abuild\" cannot be started from Makefile please start manually \"abuild -C alpine -r\"
# build source rpm package

@ -1,44 +1,88 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Michael Mason <ms13sp@gmail.com>
# Contributor: Leonardo Arena <rnalrd@gmail.com>
# Contributor: Yann Vigara <yvigara@angarium.co.uk>
# Maintainer: Nathan Angelacos <nangel@alpinelinux.org>
pkgname=kamailio
pkgver=6.0.3
pkgver=6.0.5
pkgrel=0
# If building from a git snapshot, specify the gitcommit
# If building a proper release, leave gitcommit blank or commented
_gitcommit=991fe9b28e0e201309048f3b38a135037e40357a
_gitcommit=9bba10f1684f078be9cbedbd1da05743bb3bf513
[ ! -z "${_gitcommit}" ] && pkgver="${pkgver}.$(date +%Y%m%d)"
[ ! -z "${_gitcommit}" ] && _suffix="-${_gitcommit:0:7}"
[ ! -z "${_gitcommit}" ] && builddir="$srcdir/$pkgname-$_gitcommit" || builddir="$srcdir/$pkgname-$pkgver"
[ -z "${_gitcommit}" ] && _gitcommit="${pkgver}"
[ -n "$_gitcommit" ] && pkgver="${pkgver}_git20251011"
[ -n "$_gitcommit" ] && _suffix="-${_gitcommit:0:7}"
[ -n "$_gitcommit" ] && builddir="$srcdir/$pkgname-$_gitcommit" || builddir="$srcdir/$pkgname-$pkgver"
[ -z "$_gitcommit" ] && _gitcommit="$pkgver"
pkgdesc="Open Source SIP Server"
url="https://www.kamailio.org/"
arch="all"
pkgusers="kamailio"
pkggroups="kamailio"
arch="all"
license="GPL-2.0"
license="GPL-2.0-or-later"
options="!check" # no testsuite
depends="gawk"
options="!check"
makedepends="bison db-dev flex freeradius-client-dev expat-dev
lksctp-tools-dev perl-dev postgresql-dev python3-dev
pcre2-dev mariadb-dev libxml2-dev curl-dev unixodbc-dev
confuse-dev ncurses-dev sqlite-dev lua-dev openldap-dev openssl-dev
net-snmp-dev libuuid libev-dev jansson-dev json-c-dev libevent-dev
linux-headers libmemcached-dev rabbitmq-c-dev hiredis-dev
ruby-dev libmaxminddb-dev libunistring-dev mongo-c-driver-dev
libwebsockets-dev mosquitto-dev librdkafka-dev nghttp2-dev libjwt-dev"
makedepends="\
bison
cmake
confuse-dev
curl-dev
expat-dev
flex
freeradius-client-dev
hiredis-dev
hiredis-ssl
icu-dev
jansson-dev
json-c-dev
libev-dev
libevent-dev
libgcrypt-dev
libmaxminddb-dev
libmemcached-dev
libmnl-dev
libpq-dev
libunistring-dev
libuuid
libwebsockets-dev
libxml2-dev
libxslt
linux-headers
lksctp-tools-dev
lua-dev
mariadb-dev
mosquitto-dev
ncurses-dev
net-snmp-dev
openldap-dev
openssl-dev>3
openssl-libs-static
pcre2-dev
perl-dev
python3-dev
rabbitmq-c-dev
rabbitmq-c-static
readline-dev
ruby-dev
sqlite-dev
unixodbc-dev
zlib-static
"
source="kamailio-${pkgver}$_suffix.tar.gz::https://github.com/kamailio/kamailio/archive/$_gitcommit.tar.gz
kamailio.initd
"
install="$pkgname.pre-install $pkgname.pre-upgrade"
[ "$CARCH" = "armv7" ] && options="$options textrels"
# secfixes:
# 5.1.4-r0:
# - CVE-2018-14767
# - CVE-2018-14767
# See Makefile.groups for the list of recommended modules for
# each package. What follows is a simplified version of Makefile.groups
@ -53,47 +97,149 @@ install="$pkgname.pre-install $pkgname.pre-upgrade"
# Remove db_text from _mod_list_db because we create a separate dbtext package
#
# - basic used modules, with no extra dependency (widespread usage)
_mod_list_basic="avp async auth benchmark blst cfg_rpc cfgt cfgutils corex \
counters ctl debugger diversion dlgs enum exec gzcompress ipops kex \
keepalive mangler math maxfwd mediaproxy mqueue nat_traversal \
nathelper path pike posops pv pv_headers pvtpl ratelimit rr rtimer \
rtpproxy sanity sdpops siputils sl smsops statsc statistics \
sworker textops textopsx tm tmx topoh topos xlog rtpengine stun sipt"
_mod_list_basic="\
async
auth
avp
benchmark
blst
cfg_rpc
cfgt
cfgutils
corex
counters
ctl
debugger
diversion
dlgs
enum
exec
gzcompress
ipops
keepalive
kemix
kex
mangler
math
maxfwd
mediaproxy
mqueue
nathelper
nat_traversal
path
pike
posops
pv
pv_headers
pvtpl
ratelimit
rr
rtimer
rtpengine
rtpproxy
sanity
sdpops
siprepo
sipt
siputils
sl
smsops
statistics
statsc
stun
sworker
textops
textopsx
tm
tmx
topoh
topos
xlog
"
# - extra used modules, with no extra dependency
_mod_list_extras="auth_diameter call_control call_obj cnxcc dmq domainpolicy \
log_custom msrp pdb qos sca seas sms ss7ops sst timer tmrec tsilo \
uac_redirect xhttp xhttp_rpc xprint nosip dmq_usrloc statsd rtjson \
tcpops auth_xkeys"
_mod_list_extras="\
auth_diameter
auth_xkeys
call_control
call_obj
cnxcc
dmq
dmq_usrloc
domainpolicy
file_out
influxdbc
log_custom
msrp
nosip
pdb
pvtpl
qos
rtjson
sca
seas
sms
ss7ops
sst
statsd
tcpops
timer
tmrec
tsilo
uac_redirect
xhttp
xhttp_rpc
xprint
"
# Add tops_htable here, because htable is here.
#
# - common modules depending on database
_mod_list_db="acc alias_db auth_db avpops cfg_db db_berkeley db_flatstore \
db_cluster dialog dispatcher domain drouting group htable imc matrix \
mohqueue msilo mtree p_usrloc pdt permissions pipelimit prefix_route \
registrar secfilter sipcapture siptrace speeddial sqlops topos_htable \
uac uri_db userblocklist usrloc"
_mod_list_db="\
acc
alias_db
auth_db
avpops
cfg_db
db_cluster
db_flatstore
dialog
dispatcher
domain
drouting
group
htable
imc
matrix
mohqueue
msilo
mtree
pdt
permissions
pipelimit
prefix_route
p_usrloc
registrar
sipcapture
siptrace
speeddial
sqlops
topos_htable
uac
uri_db
userblocklist
usrloc
"
# - common modules depending on database, using UID db schema
_mod_list_dbuid="db2_ops uid_auth_db uid_avp_db uid_domain uid_gflags \
uid_uri_db"
# - modules for devel purposes
_mod_list_devel="misctest"
# - kemix module
_mod_list_kemix="kemix"
# _mod_list_secsipid="secsipid secsipid_proc"
# - LOST
_mod_list_lost="lost"
# - JWT
_mod_list_jwt="jwt"
_mod_list_dbuid="\
db2_ops
uid_auth_db
uid_avp_db
uid_domain
uid_gflags
uid_uri_db
"
# - modules depending on pcre2 library
# - modules depending on pcre3 library
_mod_list_pcre="dialplan lcr regex"
# - modules depending on radius client library
@ -129,32 +275,26 @@ _mod_list_xmpp="xmpp"
# - modules depending on confuse library
_mod_list_carrierroute="carrierroute"
# - modules depending on bdb (db4) library
_mod_list_berkeley="db_berkeley"
# - modules depending on curl library
_mod_list_utils="utils http_client"
# - async http_async_client
_mod_list_http_async="http_async_client"
# - modules depending on purple library
_mod_list_purple="purple"
# - modules depending on memcache library
_mod_list_memcached="memcached"
# - modules depending on openssl library
_mod_list_tls="crypto tls"
# - modules depending on static openssl library
_mod_list_tlsa="tlsa"
# - modules depending on openssl library
_mod_list_outbound="outbound"
# - modules depending on unistring library
_mod_list_websocket="websocket lwsc"
# - modules depending on libval-threads libcrypto libsres libpthread
_mod_list_dnssec="dnssec"
_mod_list_websocket="lwsc websocket"
# - modules depending on libsctp
_mod_list_sctp="sctp"
@ -163,10 +303,26 @@ _mod_list_sctp="sctp"
_mod_list_authephemeral="auth_ephemeral"
# - modules related to SIMPLE presence extensions
_mod_list_presence="presence presence_conference presence_dialoginfo \
presence_mwi presence_profile presence_reginfo presence_xml \
presence_dfks pua pua_bla pua_dialoginfo pua_reginfo pua_rpc \
pua_usrloc pua_xmpp rls xcap_client xcap_server"
_mod_list_presence="\
presence
presence_conference
presence_dfks
presence_dialoginfo
presence_mwi
presence_profile
presence_reginfo
presence_xml
pua
pua_bla
pua_dialoginfo
pua_reginfo
pua_rpc
pua_usrloc
pua_xmpp
rls
xcap_client
xcap_server
"
# - modules depending on lua library
_mod_list_lua="app_lua"
@ -174,9 +330,6 @@ _mod_list_lua="app_lua"
# - modules depending on perl library
_mod_list_perl="app_perl db_perlvdb"
# - modules depending on ruby library
_mod_list_ruby="app_ruby"
# - modules depending on python3 library
_mod_list_python3="app_python3 app_python3s"
@ -186,6 +339,9 @@ _mod_list_ruby="app_ruby app_ruby_proc"
# - modules depending on rabbitmq
_mod_list_rabbitmq="rabbitmq"
# - modules depending on mqtt mosquitto and ev library
_mod_list_mqtt="mqtt"
# - modules depending on geoip2 library
_mod_list_geoip2="geoip2"
@ -196,7 +352,7 @@ _mod_list_sqlite="db_sqlite"
_mod_list_oracle="db_oracle"
# - modules depending on json library
_mod_list_json="json jsonrpcc jsonrpcs pua_json"
_mod_list_json="json pua_json jsonrpcc jsonrpcs"
# - modules depending on redis library
_mod_list_redis="db_redis ndb_redis topos_redis"
@ -205,9 +361,24 @@ _mod_list_redis="db_redis ndb_redis topos_redis"
_mod_list_mono="app_mono"
# - modules related to IMS extensions
_mod_list_ims="cdp cdp_avp ims_dialog ims_diameter_server ims_auth ims_isc \
ims_icscf ims_qos ims_ocs ims_registrar_pcscf ims_registrar_scscf \
ims_usrloc_pcscf ims_usrloc_scscf ims_charging ims_qos_npn"
_mod_list_ims="\
cdp
cdp_avp
ims_auth
ims_charging
ims_dialog
ims_diameter_server
ims_icscf
ims_ipsec_pcscf
ims_isc
ims_ocs
ims_qos
ims_qos_npn
ims_registrar_pcscf
ims_registrar_scscf
ims_usrloc_pcscf
ims_usrloc_scscf
"
# - modules depending on osp toolkit library
_mod_list_osp="osp"
@ -215,9 +386,6 @@ _mod_list_osp="osp"
# - modules depending on java library
_mod_list_java="app_java"
# - modules depending on iptables library
_mod_list_iptrtpproxy="iptrtpproxy"
# - modules depending on gzip library
_mod_list_gzcompress="gzcompress"
@ -234,7 +402,7 @@ _mod_list_kazoo="kazoo"
_mod_list_mongodb="db_mongodb ndb_mongodb"
# - modules depending on jansson library
_mod_list_jansson="acc_json jansson janssonrpcc"
_mod_list_jansson="jansson janssonrpcc acc_json"
# - modules depending on libm
_mod_list_jsdt="app_jsdt"
@ -245,6 +413,21 @@ _mod_list_rabbitmq="rabbitmq"
# - modules depending on sipdump
_mod_list_sipdump="sipdump"
# - modules depending on libgcrypt
_mod_list_gcrypt="gcrypt"
# - modules depending on libmicrohttpd
_mod_list_microhttpd="microhttpd"
# - modules depending on nghttp2 library
_mod_list_nghttp2=nghttp2
# - kemix module
_mod_list_kemix="kemix"
# - LOST
_mod_list_lost="lost"
# - modules depending on xhttp_prom
_mod_list_xhttp_prom="xhttp_prom"
@ -252,91 +435,110 @@ _mod_list_xhttp_prom="xhttp_prom"
_mod_list_slack="slack"
# - modules depending on lrkproxy
_mod_list_slack="lrkproxy"
# mqtt
_mod_list_mqtt="mqtt"
# Kafka
_mod_list_kafka="kafka"
_mod_list_lrkproxy="lrkproxy"
# Alpine Specific
_mod_list_debugger="$_mod_list_devel benchmark debugger"
_mod_list_nghttp2="nghttp2"
_mod_list_debugger="benchmark debugger misctest"
# Standard modules in main pkg
_module_group_kstandard="$_mod_list_basic $_mod_list_dbuid $_mod_list_pcre"
# END Makefile.groups #############################################################
subpackages="$pkgname-doc $pkgname-dbg $pkgname-openrc"
_modules="$_module_group_kstandard"
for _i in mqtt kafka lost jwt kemix db postgres sqlite dbtext mysql cpl xml \
unixodbc snmpstats xmpp carrierroute ldap utils tls presence lua ims \
outbound debugger extras json websocket authephemeral mongodb uuid ev \
memcached redis geoip2 jansson sipdump jsdt http_async kazoo rabbitmq sctp \
radius perl python3 ruby xhttp_prom slack lrkproxy; do
subpackages="$subpackages $pkgname-$_i"
eval "_modules=\"\$_modules \$_mod_list_$_i\""
done
source="${pkgname}-${pkgver}${_suffix}.tar.gz::https://github.com/kamailio/$pkgname/archive/$_gitcommit.tar.gz
kamailio.initd
subpackages="\
authephemeral
carrierroute
cpl
db
dbtext
debugger
ev
extras
gcrypt
geoip2
http_async
ims
jansson
jsdt
json
kazoo
kemix
ldap
lost
lrkproxy
lua
memcached
mqtt
mysql
nghttp2
outbound
perl
postgres
presence
python3
rabbitmq
radius
redis
ruby
sctp
sipdump
slack
snmpstats
sqlite
tls
tlsa
unixodbc
utils
uuid
websocket
xhttp_prom
xml
xmpp
"
get_source_from_local_git(){
cd ../../.. && git archive --format=tar.gz --prefix=${pkgname}-${_gitcommit}/ -o "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz ${_gitcommit} && cd pkg/kamailio/alpine || return 1
echo Created dist archive "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz
}
get_source_from_github(){
echo Cannot create archive using local git repo. Trying create source from GutHub.
wget -O "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz https://github.com/kamailio/$pkgname/archive/${_gitcommit}.tar.gz || return 1
echo Created dist archive "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz
}
. ${startdir}/APKBUILD-kamailio
snapshot() {
if [ ! -f "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz ]; then
get_source_from_local_git || get_source_from_github
fi
SHA512SUM=$(sha512sum "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz | sed -e "s:${SRCDEST}/::")
sed -i -e "s/^\(sha512sums=.\).*/\1$SHA512SUM/" APKBUILD
}
_modules="$_module_group_kstandard"
for _i in $subpackages; do
eval "_modules=\"\$_modules \$_mod_list_$_i\""
done
# format modules as string
_modules=$(echo $_modules)
prepare() {
default_prepare
cd "$builddir"
subpackages="doc dbg openrc $subpackages"
# add '$pkgname-' prefix
subpackages=$(echo $subpackages | sed -E "s/\w+/$pkgname-&/g")
cd utils/kamctl/
sed -i -e 's:/run/kamailio.pid:/run/kamailio/kamailio.pid:g' \
kamctl.base kamctlrc || return 1
# we actually don't need bash
sed -i -e 's:/bin/bash:/bin/sh:' kamctl kamdbctl \
|| return 1
snapshot() {
if [ ! -f "$SRCDEST"/$pkgname-${pkgver}$_suffix.tar.gz ]; then
wget -O "$SRCDEST"/$pkgname-${pkgver}$_suffix.tar.gz https://github.com/kamailio/$pkgname/archive/$_gitcommit.tar.gz
fi
SHA512SUM=$(sha512sum "$SRCDEST"/$pkgname-${pkgver}$_suffix.tar.gz | sed -e "s:$SRCDEST/::")
sed -i -e "s/^\(sha512sums=.\).*/\1$SHA512SUM/" APKBUILD
}
build() {
cd "$builddir"
make FLAVOUR=kamailio STUN=1 \
PREFIX=/usr \
CC_EXTRA_OPTS="$CFLAGS -D_GNU_SOURCE" \
cfg_target=/etc/kamailio/ \
run_prefix="" \
include_modules="$_modules" \
LIBDIR=lib \
DESTDIR="$pkgdir" \
cfg_prefix="$pkgdir" \
cfg
make EMBEDDED_UTF8_DECODE=1 STUN=1 FREERADIUS=1 \
all || return 1
export CMAKE_C_FLAGS_MINSIZEREL="-g"
# for linux/386 arch maybe usefull to set CMAKE_TOOLCHAIN_FILE
# use TOOLCHAIN_OPTIONS environment variable if defined
# more details at https://github.com/kamailio/kamailio/issues/4403
cmake -S . ${TOOLCHAIN_OPTIONS} \
-G "Unix Makefiles" \
-B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DVERBOSE=ON \
-DBUILD_DOC=ON \
-DRADIUSCLIENT="FREERADIUS" \
--fresh \
-DCMAKE_BUILD_TYPE="MinSizeRel" \
-DINCLUDE_MODULES="$_modules"
cmake --build build
cmake --build build --target man
cmake --build build --target dbschema
}
package() {
cd "$builddir"
make FREERADIUS=1 -j1 install || return 1
DESTDIR="$pkgdir" cmake --install build
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -d -o kamailio "$pkgdir"/run/kamailio
}
@ -344,8 +546,8 @@ package() {
_mv_mod() {
local moddir=usr/lib/kamailio/modules i=
mkdir -p "$subpkgdir"/$moddir
for i in $@; do
mv "$pkgdir"/$moddir/$i.so "$subpkgdir"/$moddir/ || return 1
for i in "$@"; do
mv "$pkgdir"/$moddir/$i.so "$subpkgdir"/$moddir/
done
}
@ -355,20 +557,18 @@ _generic_pkg() {
_mv_mod $2
}
_db_driver() {
pkgdesc="Database drivers for $1"
depends="$pkgname $pkgname-db"
_mv_mod db_$2 || return 1
_mv_mod db_$2
mkdir -p "$subpkgdir"/usr/share/kamailio \
"$subpkgdir"/usr/lib/kamailio/kamctl
mv "$pkgdir"/usr/share/kamailio/$3 \
"$subpkgdir"/usr/share/kamailio/ || return 1
"$subpkgdir"/usr/share/kamailio/
mv "$pkgdir"/usr/lib/kamailio/kamctl/*.$4 \
"$subpkgdir"/usr/lib/kamailio/kamctl/ || return 1
"$subpkgdir"/usr/lib/kamailio/kamctl/
}
db() {
_generic_pkg "modules using a database backend" "$_mod_list_db"
}
@ -386,13 +586,12 @@ sqlite() {
}
dbtext() {
_db_driver DBText text dbtext dbtext || return 1
_db_driver DBText text dbtext dbtext
# kamdbctl.dbtext is a python script - but we will not make python
# a dependency because kamdbctl is not normally used
depends="$depends"
mkdir -p "$subpkgdir"/usr/lib/kamailio/kamctl || return 1
mkdir -p "$subpkgdir"/usr/lib/kamailio/kamctl
mv "$pkgdir"/usr/lib/kamailio/kamctl/dbtextdb \
"$subpkgdir"/usr/lib/kamailio/kamctl/ || return 1
"$subpkgdir"/usr/lib/kamailio/kamctl/
}
cpl() {
@ -402,13 +601,13 @@ cpl() {
xml() {
_generic_pkg "XML related modules: $_mod_list_xml" \
"$_mod_list_xml" || return 1
"$_mod_list_xml"
mkdir -p "$subpkgdir"/usr/share/kamailio
mv "$pkgdir"/usr/share/kamailio/xhttp_pi \
"$subpkgdir"/usr/share/kamailio || return 1
"$subpkgdir"/usr/share/kamailio
mkdir -p "$subpkgdir"/etc/kamailio/
mv "$pkgdir"/etc/kamailio/pi_framework.xml \
"$subpkgdir"/etc/kamailio || return 1
"$subpkgdir"/etc/kamailio
}
unixodbc() {
@ -418,10 +617,10 @@ unixodbc() {
snmpstats() {
_generic_pkg "SNMP statistics support" \
"$_mod_list_snmpstats" || return 1
"$_mod_list_snmpstats"
mkdir -p "$subpkgdir"/usr/share/snmp
mv "$builddir"/src/modules/snmpstats/mibs \
"$subpkgdir"/usr/share/snmp/ || return 1
"$subpkgdir"/usr/share/snmp/
}
xmpp() {
@ -434,42 +633,6 @@ carrierroute() {
"$_mod_list_carrierroute"
}
kemix() {
_generic_pkg "extensions and functions to be used with KEMI SIP routing scripting" \
"$_mod_list_kemix"
}
#secsipid() {
# _generic_pkg "Secure SIP/Telephony Identity (STIR/SHAKEN) extensions" \
# "$_mod_list_secsipid"
#}
lost() {
_generic_pkg "HELD (RFC6155) and LOST (RFC5222) location-based routing" \
"$_mod_list_lost"
}
jwt() {
_generic_pkg "JSON Web Token generation and validation" \
"$_mod_list_jwt"
}
mqtt() {
_generic_pkg "MQTT connector for bi-directional publish-subscribe communication" \
"$_mod_list_mqtt"
}
kafka() {
_generic_pkg "Produces and sends messages to a Kafka server" \
"$_mod_list_kafka"
}
## doesn't compile
# tls_wolfssl() {
# _generic_pkg "TLS operations module using wolfssl" \
# "$_mod_list_tls_wolfssl"
# }
ldap() {
_generic_pkg "LDAP search functions" \
"$_mod_list_ldap"
@ -485,6 +648,11 @@ tls() {
"$_mod_list_tls"
}
tlsa() {
_generic_pkg "TLS support compiled statically against libssl and libcrypto" \
"$_mod_list_tlsa"
}
presence() {
_generic_pkg "SIP Notify (Presence) support" \
"$_mod_list_presence"
@ -555,11 +723,6 @@ memcached() {
"$_mod_list_memcached"
}
mongodb() {
_generic_pkg "MongoDB database connectivity" \
"$_mod_list_mongodb"
}
rabbitmq() {
_generic_pkg "RabbitMQ client for configuration file" \
"$_mod_list_rabbitmq"
@ -570,7 +733,6 @@ jsdt() {
"$_mod_list_jsdt"
}
redis() {
_generic_pkg "Redis NoSQL support" \
"$_mod_list_redis"
@ -601,11 +763,6 @@ perl() {
"$_mod_list_perl"
}
ruby() {
_generic_pkg "Ruby extensions for Kamailio" \
"$_mod_list_ruby"
}
python3() {
_generic_pkg "Execute embedded Python3 scripts" \
"$_mod_list_python3"
@ -616,6 +773,11 @@ ruby() {
"$_mod_list_ruby"
}
mqtt() {
_generic_pkg "MQTT publish/subscribe connector" \
"$_mod_list_mqtt"
}
rabbitmq() {
_generic_pkg "RabbitMQ related modules for Kamailio" \
"$_mod_list_rabbitmq"
@ -626,6 +788,21 @@ sipdump() {
"$_mod_list_sipdump"
}
microhttpd() {
_generic_pkg "Simple HTTP server using libmicrohttpd" \
"$_mod_list_microhttpd"
}
kemix() {
_generic_pkg "extensions and functions to be used with KEMI SIP routing scripting" \
"$_mod_list_kemix"
}
lost() {
_generic_pkg "HELD (RFC6155) and LOST (RFC5222) location-based routing" \
"$_mod_list_lost"
}
xhttp_prom() {
_generic_pkg "Metrics for Prometheus monitoring." \
"$_mod_list_xhttp_prom"
@ -642,9 +819,16 @@ lrkproxy() {
}
nghttp2() {
_generic_pkg "Implements an embedded HTTP/2 server using nghttpd2 library" \
_generic_pkg "HTTP2 server implementation using nghttp2 library" \
"$_mod_list_nghttp2"
}
sha512sums="51ea5fccd27a9d3d1783cfc5596eb28ab27e34faeec3268600363f43c48a3634c3c584c479ba874fdb53b85766a0ce8fe7df0e20954c9c6514b1d9d41d9237e6 kamailio-5.1.0.20171125-991fe9b.tar.gz
a777338f1a60b95aa2bf3e38314a0cfa77a3397ccad342955409eb95f66ad9c38a3a64d2974d353d50f2aced3936b209063a0f0a7127851b1c278d8384f4cc45 kamailio.initd"
gcrypt() {
_generic_pkg "Cryptography functions using libcrypt" \
"$_mod_list_gcrypt"
}
sha512sums="
32b7dfa502d9e6d15c3edc51bd42cd99dd9793445c5a4cf56acbf13f97e7c2647628ad96e22f5c1f573f3b3e8aba933ccb6ac85c389cdf7cb402adc5067c9776 kamailio-6.0.4_git20251011-9bba10f.tar.gz
38a786b48d433b2e99a29249458c1ffcc3f449a1898df6ef1f4b8ebf7770e99d80ce6e3340ea680b44e725b951e65fd06d395ecb903600d7c8fdc0a736c4d9b1 kamailio.initd
"

@ -0,0 +1,90 @@
#!/bin/sh
git_archive(){
cd ../../.. && git archive --format=tar.gz --prefix=${pkgname}-${_gitcommit}/ -o "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz ${_gitcommit} && cd pkg/kamailio/alpine || return 1
echo Created dist archive "$SRCDEST"/${pkgname}-${pkgver}${_suffix}.tar.gz
}
dnssec() {
_generic_pkg "DNSSEC implementation for SIP routing" \
"$_mod_list_dnssec"
}
jwt() {
_generic_pkg "provides JWT (JSON Web Token) functions" \
"$_mod_list_jwt"
}
kafka() {
_generic_pkg "Produce and send messages to a Kafka server" \
"$_mod_list_kafka"
}
microhttpd() {
_generic_pkg "embedded HTTP server using libmicrohttpd" \
"$_mod_list_microhttpd"
}
mongodb() {
_generic_pkg "connector for MongoDB NoSQL server" \
"$_mod_list_mongodb"
}
phonenum() {
_generic_pkg "module to get normalize and get details about a phone number" \
"$_mod_list_phonenum"
}
secsipid() {
_generic_pkg "This module implements STIR (Secure Telephony Identity Revisited) and SHAKEN (Signature-based Handling of Asserted information using toKENs)" \
"$_mod_list_secsipid"
}
_makedepends_community="\
libjwt2-dev
libmicrohttpd-dev
libphonenumber-dev
librdkafka-dev
mongo-c-driver-dev
"
_makedepends_testing="\
dnssec-tools-dev
secsipidx
"
[ -n "$use_community" ] && makedepends="$makedepends $_makedepends_community"
[ -n "$use_testing" ] && makedepends="$makedepends $_makedepends_testing"
# - modules depending on libmicrohttpd library
_mod_list_microhttpd="microhttpd"
# - modules depending on dnssec-tools-dev
_mod_list_dnssec="dnssec"
# - modules depending on phonenum
_mod_list_phonenum="phonenum"
# - modules depending on rdkafka library
_mod_list_kafka="kafka"
# - modules depending on libjwt2 library
_mod_list_jwt="jwt"
# - modules depending on secsipidx
_mod_list_secsipid="secsipid"
_subpackages_community="\
jwt
kafka
microhttpd
mongodb
phonenum
"
_subpackages_testing="dnssec secsipid"
[ -n "$use_community" ] && subpackages="$subpackages $_subpackages_community"
[ -n "$use_testing" ] && subpackages="$subpackages $_subpackages_testing"
return 0

@ -1,35 +1,16 @@
#!/sbin/openrc-run
daemon=/usr/sbin/kamailio
pidfile=/run/kamailio/kamailio.pid
extra_started_commands="reload"
command="/usr/sbin/kamailio"
command_args="$KAMAILIO_OPTS -DD -u ${KAMAILIO_USER:-kamailio} -g ${KAMAILIO_GROUP:-kamailio}"
command_background="true"
pidfile="/run/kamailio.pid"
depend() {
need net
after firewall mariadb postgresql
}
start() {
ebegin "Starting Kamailio"
checkpath -d -o kamailio:kamailio /run/kamailio
start-stop-daemon --start --quiet --pidfile $pidfile --exec $daemon \
-- \
-u ${KAMAILIO_USER:-kamailio} \
-g ${KAMAILIO_GROUP:-kamailio} \
-P $pidfile \
${KAMAILIO_OPTS:-}
eend $?
}
stop() {
ebegin "Stopping Kamailio"
start-stop-daemon --stop --quiet --pidfile $pidfile
eend $?
}
reload() {
ebegin "Reloading Kamailio"
echo mi_dg dp_reload | kamcmd 2>/dev/null
eend $?
start_pre() {
checkpath -d -o kamailio:kamailio /var/run/kamailio
kamailio -c
}

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -825,7 +825,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -893,7 +893,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -893,7 +893,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -825,7 +825,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -59,6 +59,10 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -35,6 +35,10 @@ sed -i -e '/lsb-base/d' ${DIST}/control
# libncurses
sed -i -e 's/libncurses5-dev/libncurses-dev/g' ${DIST}/control
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -36,6 +36,9 @@ sed -i -e '/^ libwolfssl-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += tls_wolfssl/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += tls_wolfssl' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -59,6 +59,9 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -46,6 +46,9 @@ sed -i -e '/^ libwolfssl-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += tls_wolfssl/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += tls_wolfssl' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -29,6 +29,10 @@ sed -i -e '/^ python,/d' -e '/python-dev/d' \
sed -i -e '/^PACKAGE_GROUPS += python$/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += python' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -72,6 +72,10 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -135,6 +135,10 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -35,6 +35,15 @@ sed -i -e '/lsb-base/d' ${DIST}/control
# libncurses
sed -i -e 's/libncurses5-dev/libncurses-dev/g' ${DIST}/control
# no db5.3
rm ${DIST}/kamailio-berkeley-bin.dirs
sed -i -e '/libdb-dev/d' \
-e '/^Package: kamailio-berkeley-modules/,/^$/d' \
-e '/^Package: kamailio-berkeley-bin/,/^$/d' \
${DIST}/control
sed -i -e '/^PACKAGE_GROUPS += berkeley$/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += berkeley' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -62,6 +62,10 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -98,6 +98,10 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -141,6 +141,10 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
wrap-and-sort -sat -d ${DIST}
# clean backports scripts

@ -71,6 +71,10 @@ sed -i -e '/^ librdkafka-dev,/d' \
sed -i -e '/^PACKAGE_GROUPS += kafka/d' ${DIST}/rules
sed -i -e '/--EXCLUDED--/i EXTRA_EXCLUDED_MODULES += kafka' ${DIST}/rules
# libjwt < 1.12
sed -i -e '/libjwt-dev/d' -e 's/, JWT (JSON Web Token)//' ${DIST}/control
sed -i -e '/^EXTRA_GROUPS += jwt$/d' ${DIST}/rules
# tlsa build fails
sed -i -e 's/KTLS_INCLUDE_TLSA=yes/KTLS_INCLUDE_TLSA=no/' ${DIST}/rules

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -22,6 +22,8 @@ Build-Depends:
libhiredis-dev (>= 0.10.0),
libjansson-dev,
libjson-c-dev,
libjwt-dev (>= 1.12),
libjwt-dev (<< 3),
libldap2-dev,
liblua5.1-0-dev,
libmaxminddb-dev,
@ -950,7 +952,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access, JWT (JSON Web Token) and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -97,6 +97,7 @@ EXTRA_GROUPS += gzcompress
EXTRA_GROUPS += jansson
EXTRA_GROUPS += uuid
EXTRA_GROUPS += http_async
EXTRA_GROUPS += jwt
.PHONY: skip-modules
skip-modules:

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -860,7 +860,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -894,7 +894,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -823,7 +823,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -20,6 +20,8 @@ Build-Depends:
libhiredis-dev (>= 0.10.0),
libjansson-dev,
libjson-c-dev,
libjwt-dev (<< 3),
libjwt-dev (>= 1.12),
libldap2-dev,
liblua5.1-0-dev,
libmaxminddb-dev,
@ -893,7 +895,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access, JWT (JSON Web Token) and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -96,6 +96,7 @@ EXTRA_GROUPS += gzcompress
EXTRA_GROUPS += jansson
EXTRA_GROUPS += uuid
EXTRA_GROUPS += http_async
EXTRA_GROUPS += jwt
.PHONY: skip-modules
skip-modules:

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -673,7 +673,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -13,13 +13,14 @@ Build-Depends:
erlang-dev,
flex,
libcurl4-openssl-dev,
libdb-dev (>= 4.6.19),
libev-dev,
libevent-dev,
libexpat1-dev,
libhiredis-dev (>= 0.10.0),
libjansson-dev,
libjson-c-dev,
libjwt-dev (<< 3),
libjwt-dev (>= 1.12),
libldap2-dev,
liblua5.1-0-dev,
libmaxminddb-dev,
@ -462,42 +463,6 @@ Description: XML based extensions for Kamailio's Management Interface
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 (>= 4.6.19),
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:
${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
@ -893,7 +858,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access, JWT (JSON Web Token) and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -40,6 +40,7 @@ EXTRA_EXCLUDED_MODULES += iptrtpproxy
EXTRA_EXCLUDED_MODULES += dnssec
EXTRA_EXCLUDED_MODULES += java
EXTRA_EXCLUDED_MODULES += python
EXTRA_EXCLUDED_MODULES += berkeley
## --EXCLUDED--
@ -49,7 +50,6 @@ EXTRA_EXCLUDED_MODULES += python
# on which other depend first)
PACKAGE_GROUPS += mysql
PACKAGE_GROUPS += postgres
PACKAGE_GROUPS += berkeley
PACKAGE_GROUPS += unixodbc
PACKAGE_GROUPS += radius
PACKAGE_GROUPS += presence
@ -96,6 +96,7 @@ EXTRA_GROUPS += gzcompress
EXTRA_GROUPS += jansson
EXTRA_GROUPS += uuid
EXTRA_GROUPS += http_async
EXTRA_GROUPS += jwt
.PHONY: skip-modules
skip-modules:

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -828,7 +828,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -20,6 +20,8 @@ Build-Depends:
libhiredis-dev (>= 0.10.0),
libjansson-dev,
libjson-c-dev,
libjwt-dev (<< 3),
libjwt-dev (>= 1.12),
libldap2-dev,
liblua5.1-0-dev,
libmaxminddb-dev,
@ -893,7 +895,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access, JWT (JSON Web Token) and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -96,6 +96,7 @@ EXTRA_GROUPS += gzcompress
EXTRA_GROUPS += jansson
EXTRA_GROUPS += uuid
EXTRA_GROUPS += http_async
EXTRA_GROUPS += jwt
.PHONY: skip-modules
skip-modules:

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -764,7 +764,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

@ -24,16 +24,16 @@ License: GPL-2+
License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'.
Files: src/code/atomic/* src/code/atomic_ops.* src/code/basex.* src/code/bit_*.c
src/code/char_msg_val.h src/code/compiler_opt.h src/code/core_stats.h src/code/counters.*
src/code/endianness.* src/code/futexlock.h src/code/hashes.h src/code/io_wait.*
Files: src/core/atomic/* src/core/atomic_ops.* src/core/basex.* src/core/bit_*.c
src/core/char_msg_val.h src/core/compiler_opt.h src/core/core_stats.h src/core/counters.*
src/core/endianness.* src/core/futexlock.h src/core/hashes.h src/core/io_wait.*
src/core/lock_ops.c src/core/lock_ops_init.h src/core/lvalue.* src/core/mem/ll_malloc.*
src/core/mem/memdbg.h src/core/mem/sf_malloc.* src/core/mod_fix.* 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_cfg.h
src/modules/tls/tls_ct_wrq.* src/modules/tls/tls_ct_q.h src/modules/tls/tls_domain.*
src/modules/tls/tls_server.* src/modules/tls/tls_locking.* src/modules/tls/tls_rpc.*
src/modules/malloc_test/malloc_test.c src/modules/blst/blst.c
src/modules/misctest/misctest_mod.c src/modules/blst/blst.c
src/core/parser/case_p_* src/core/parser/case_reas.h src/core/pvapi.h
src/core/pv_core.* src/core/rand/fastrand.* src/core/raw_*
src/core/rpc_lookup.* src/core/rvalue.* src/core/sctp_* src/core/ser_time.h
@ -47,16 +47,16 @@ License: ISC
Files: src/modules/tls/tls_select.* src/modules/tls/tls_dump_vf.*
Copyright: 2005-2010 iptelorg GmbH
License: GPL-2 + OpenSSL exception
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 + OpenSSL exception
License: GPL-2+ with OpenSSL exception
Files: src/core/daemonize.* src/core/fastlock.h src/core/lock_ops.h
src/core/mem/mem.* src/core/mem/f_malloc.h
src/core/mem/meminfo.h src/core/mem/memtest.c src/core/mem/shm_mem.c
src/core/mem/q_malloc.* src/core/mem/shm_mem.h
src/core/mem/meminfo.h src/core/mem/memtest.c
src/core/mem/q_malloc.*
src/core/mem/f_malloc.c src/core/pt.* src/core/sched_yield.h src/core/ut.*
Copyright: 2001-2003 FhG Fokus
License: ISC
@ -112,7 +112,7 @@ License: Apache-1.0
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/code/list.h
Files: src/core/list.h
Copyright: 1991, 1993 The Regents of the University of California
License: BSD-3-clause
@ -233,7 +233,7 @@ License: ISC
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Files: src/lib/srutils/srjson.*
Files: src/core/utils/srjson.*
Copyright: 2009 Dave Gamble
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy
@ -254,7 +254,7 @@ License: MIT
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2 + 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

@ -1,3 +1,15 @@
kamailio (6.0.5) unstable; urgency=medium
* version set 6.0.5
-- Victor Seva <vseva@debian.org> Thu, 08 Jan 2026 09:09:38 +0100
kamailio (6.0.4) unstable; urgency=medium
* version set 6.0.4
-- Victor Seva <vseva@debian.org> Thu, 06 Nov 2025 08:33:15 +0100
kamailio (6.0.3) unstable; urgency=medium
* version set 6.0.3

@ -673,7 +673,8 @@ Description: Extra modules for the Kamailio SIP Server
.
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
access and a few more functions:
gzcompress uuid evapi jansson janssonrpcc http_async_client jwt
Package: kamailio-nth
Architecture: any

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save