Page MenuHomeFreeBSD

net/sems: SIP Express Media Server (new port)

Authored by nwhitehorn on Aug 25 2019, 12:04 AM.


net/sems: SIP Express Media Server (new port)

This adds a new port for the SEMS SIP media server, which provides a number of functions (Voicemail, conferencing, B2BUA, etc.) in conjunction with a SIP router like Kamailio or OpenSIPS.

The most recent release (1.6.0) is both old and has a significant number of issues on FreeBSD, so this corresponds to the current development branch, which should hopefully become 1.7 in not too very long. I've added one other patch (from SEMS pull request 57) that is required to make message-waiting notifications behave in a useful way but has yet to be merged upstream.


PR: 240048
Reviewed_by: koobs (ports)
Approved by: koobs (ports)
Differential_Revision: D21410
Test Plan

Passes portlint checks and poudriere-testport. Portlint gives three minor warnings, two of which are related to the patches not coming from makepatch and the other related to placement of SHEBANG_GLOB, which I think is a false positive. (One of the patches comes from a GitHub PR)

Tested and working on 13.0-CURRENT and 12.0-RELEASE on amd64.

Diff Detail

rP FreeBSD ports repository
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

198 ↗(On Diff #61249)

I might have considered making this SIP Express Media Server

11 ↗(On Diff #61249)

If a license file exists in the source distribution (distfile), add LICENSE_FILE=/path/to/file

23 ↗(On Diff #61249)

Does SEMS support *both* Python 2 and 3? If so, this is fine, otherwise define version-spec in USES=python:<version-spec> as accurately as possible (per upstream python support declarations) given the syntax we support here.

Also, nothing in this port explicitly sets the python version to use/build with. In most if not all cases, build systems, in particular autoconf and cmake do Python auto-detection with their own / custom find order, so accordingly, explicitly setting the specific Python version to use is warranted.

This, for CMake programs, usually takes the form of setting PYTHON_* variables [1] and there are examples in the tree you can use


201 ↗(On Diff #61249)

Since these (DOCSDIR) paths are version suffixed, presumably with every version, with the major (a.b.c) components of the upstream version, it's probably worth adding (exporting) x.y.z to PLIST_SUB and using the variable in these pkg-plist entries to reduce churn on future version updates.

23 ↗(On Diff #61249)

Also, if python is a build or run time only dependency (i didnt check), qualify USES=python with ,build or ,run respectively

nwhitehorn marked 3 inline comments as done.

Updates from review.

23 ↗(On Diff #61249)

It's run-time dependency only: there are some admin utility scripts installed that are written in Python. They are each about 5 lines long and seem to be 2/3 bilingual. I've added the ",run".

Fix fat-fginering; this is the right diff. It also sets Python to use Python 2, since a handful of scripts cared.

koobs edited the test plan for this revision. (Show Details)

@nwhitehorn Looks good!

Note #1: I've amended the differential summary:

  1. moved test/QA comments to TEST PLAN section
  2. formatted commit log with my review/approved by lines.

Just dont forget to remove the underscore _ from Reviewed_by and Differential_Revision when you copy pasta (Phabricator doesnt accept those lines without underscores, as they're reserved words)

Note #2: Standard commit messages for new ports are normally:

[NEW PORT] cat/port: $COMMENT


I left your existing comments (The most recent release (1.6.0) ...) in place, because they provide useful context and information, so feel free to include them after the normal new port form as well

This revision is now accepted and ready to land.Aug 26 2019, 10:58 PM
This revision was automatically updated to reflect the committed changes.