gnu: Add sipp.

* gnu/packages/telephony.scm (sipp): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
Ivan Gankevich 2023-04-16 11:47:27 +02:00 committed by Nicolas Goaziou
parent 9b9883c773
commit 0cbbc1996d
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -23,6 +23,7 @@
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Demis Balbach <db@minikn.xyz>
;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
;;; Copyright © 2023 Ivan Gankevich <igankevich@capybaramail.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@ -40,6 +41,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages telephony)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
@ -70,6 +72,7 @@ (define-module (gnu packages telephony)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linphone)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm)
@ -1036,3 +1039,64 @@ (define-public xgoldmon
@end itemize")
(home-page "https://github.com/2b-as/xgoldmon")
(license license:gpl2+))))
(define-public sipp
(package
(name "sipp")
(version "3.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/SIPp/sipp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32 "0vplccia9zdva1wwny2xgs0b6rzmq4abxvw8lyz61wfw7jjmvin0"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list "-DUSE_GSL=1" "-DUSE_PCAP=1" "-DUSE_SSL=1" "-DUSE_SCTP=1")
#:phases
#~(modify-phases %standard-phases
;; Modify build instructions to use external GTEST and GMOCK.
(add-before 'configure 'unbundle-gtest
(lambda _
(rmdir "gtest")
(symlink (assoc-ref %build-inputs "googletest") "gtest")
(substitute* "CMakeLists.txt"
((".*gtest-all.*") "")
((".*gmock-all.*") "")
(("target_compile_features\\(sipp_unittest" all)
(string-append "target_link_libraries(sipp_unittest gtest gmock)\n"
all)))))
;; Generate version.h without GIT.
(add-before 'configure 'fix-version
(lambda _
(copy-file "include/version.h.in" "include/version.h")
(substitute* "include/version.h" (("@VERSION@") #$version))
(substitute* "CMakeLists.txt" (("find_package\\(Git\\)") ""))))
(add-after 'build 'build-tests
(lambda* (#:key parallel-build? #:allow-other-keys)
(invoke "make"
(string-append
"-j" (if parallel-build?
(number->string (parallel-job-count))
"1"))
"sipp_unittest")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./sipp_unittest")))))))
(inputs
(list gsl libpcap lksctp-tools ncurses/tinfo openssl))
(native-inputs
(list googletest pkg-config))
(synopsis "Performance testing tool for the SIP protocol")
(description "SIPp can be used to test many real SIP equipements like SIP
proxies, B2BUAs, SIP media servers, SIP/x gateways, and SIP PBXes. It is also
very useful to emulate thousands of user agents calling your SIP system.")
(home-page "https://sipp.readthedocs.io/")
(license (list license:gpl2+ ; sipp's main license
license:bsd-3 ; send_packets.c, send_packets.h
license:zlib)))) ; md5.c, md5.h