diff options
| author | Baptiste Daroussin <bapt@FreeBSD.org> | 2023-09-01 09:08:05 +0000 |
|---|---|---|
| committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2023-09-01 09:08:59 +0000 |
| commit | 509067a758d8fbecbdf22d97c3d10c1b7912e850 (patch) | |
| tree | 05c0787592e4d75f88856a32beda4ffad946dd34 | |
| parent | afb5db2a497937478626ee8f4074f4b910558e5a (diff) | |
www/galene: new port
Galène (or Galene) is a videoconference server (an “SFU”) that is easy to
deploy and that requires moderate server resources. It was originally designed
for lectures, conferences and student tutorials, but is also useful for
traditional meetings.
Galène has been used in production at two major universities (Université de
Paris and Sorbonne Université) for lectures, practicals, seminars, and for
staff meetings. It has been used to host two conferences (SOCS'2020 and
JFLA'2021).
| -rw-r--r-- | GIDs | 2 | ||||
| -rw-r--r-- | UIDs | 1 | ||||
| -rw-r--r-- | www/Makefile | 1 | ||||
| -rw-r--r-- | www/galene/Makefile | 71 | ||||
| -rw-r--r-- | www/galene/distinfo | 55 | ||||
| -rw-r--r-- | www/galene/files/galene.in | 37 | ||||
| -rw-r--r-- | www/galene/pkg-descr | 9 | ||||
| -rw-r--r-- | www/galene/pkg-plist | 41 |
8 files changed, 216 insertions, 1 deletions
@@ -268,7 +268,7 @@ dkimpy-milter:*:324: dkfilter:*:325: smfs:*:326: _reticulum:*:327: -# free: 328 +galene:*:328: # free: 329 orthanc:*:330: # free: 331 @@ -273,6 +273,7 @@ dkimpy-milter:*:324:324::0:0:Dkimpy Milter:/nonexistent:/usr/sbin/nologin dkfilter:*:325:325::0:0:DK Filter Owner:/nonexistent:/usr/sbin/nologin smfs:*:326:326::0:0:SMFSAV Owner:/nonexistent:/usr/sbin/nologin _reticulum:*:327:327::0:0:Reticulum Daemon:/nonexistent:/usr/sbin/nologin +galene:*:328:328::0:0:Galene Visioconference server:/nonexistent:/usr/sbin/nologin # free: 328 # free: 329 orthanc:*:330:330::0:0:Orthanc Daemon:/nonexistent:/usr/sbin/nologin diff --git a/www/Makefile b/www/Makefile index 76eb80e0305a..c06b968b2f77 100644 --- a/www/Makefile +++ b/www/Makefile @@ -183,6 +183,7 @@ SUBDIR += fusionpbx SUBDIR += g-cows SUBDIR += g-gcl + SUBDIR += galene SUBDIR += gallery-dl SUBDIR += gallery2 SUBDIR += garage diff --git a/www/galene/Makefile b/www/galene/Makefile new file mode 100644 index 000000000000..443867f800d9 --- /dev/null +++ b/www/galene/Makefile @@ -0,0 +1,71 @@ +PORTNAME= galene +DISTVERSION= 0.7.2 +CATEGORIES= www net-im + +MAINTAINER= bapt@FreeBSD.org +COMMENT= The Galène videoconference server +WWW= https://galane.org + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENCE + +USES= go:modules + +USE_GITHUB= yes +GH_ACCOUNT= jech +GH_TAGNAME= 7062ba100167d82808d982475880a588f0aa32bf + +GH_TUPLE= \ + at-wat:ebml-go:v0.17.0:at_wat_ebml_go/vendor/github.com/at-wat/ebml-go \ + golang-jwt:jwt:v4.5.0:golang_jwt_jwt_v4/vendor/github.com/golang-jwt/jwt/v4 \ + golang:crypto:v0.7.0:golang_crypto/vendor/golang.org/x/crypto \ + golang:net:v0.8.0:golang_net/vendor/golang.org/x/net \ + golang:sys:v0.6.0:golang_sys/vendor/golang.org/x/sys \ + google:uuid:v1.3.0:google_uuid/vendor/github.com/google/uuid \ + gorilla:websocket:v1.5.0:gorilla_websocket/vendor/github.com/gorilla/websocket \ + jech:cert:aca735647728:jech_cert/vendor/github.com/jech/cert \ + jech:samplebuilder:6cbba09fc1c9:jech_samplebuilder/vendor/github.com/jech/samplebuilder \ + pion:datachannel:v1.5.5:pion_datachannel/vendor/github.com/pion/datachannel \ + pion:dtls:v2.2.6:pion_dtls_v2/vendor/github.com/pion/dtls/v2 \ + pion:ice:v2.3.2:pion_ice_v2/vendor/github.com/pion/ice/v2 \ + pion:interceptor:v0.1.12:pion_interceptor/vendor/github.com/pion/interceptor \ + pion:logging:v0.2.2:pion_logging/vendor/github.com/pion/logging \ + pion:mdns:v0.0.7:pion_mdns/vendor/github.com/pion/mdns \ + pion:randutil:v0.1.0:pion_randutil/vendor/github.com/pion/randutil \ + pion:rtcp:v1.2.10:pion_rtcp/vendor/github.com/pion/rtcp \ + pion:rtp:d62c6716b99a:pion_rtp/vendor/github.com/pion/rtp \ + pion:sctp:v1.8.6:pion_sctp/vendor/github.com/pion/sctp \ + pion:sdp:v3.0.6:pion_sdp_v3/vendor/github.com/pion/sdp/v3 \ + pion:srtp:v2.0.12:pion_srtp_v2/vendor/github.com/pion/srtp/v2 \ + pion:stun:v0.4.0:pion_stun/vendor/github.com/pion/stun \ + pion:transport:v2.0.2:pion_transport_v2/vendor/github.com/pion/transport/v2 \ + pion:turn:v2.1.0:pion_turn_v2/vendor/github.com/pion/turn/v2 \ + pion:udp:v2.0.1:pion_udp_v2/vendor/github.com/pion/udp/v2 \ + pion:webrtc:v3.1.59:pion_webrtc_v3/vendor/github.com/pion/webrtc/v3 + +CGO_ENABLED= 0 + +PORTDOCS= README README.FRONTEND README.PROTOCOL + +OPTIONS_DEFINE= DOCS + +USE_RC_SUBR= ${PORTNAME} + +USERS= ${PORTNAME} +GROUPS= ${PORTNAME} + +SUB_LIST= USERS="${USERS}" GROUPS="${GROUPS}" +PLIST_SUB= USERS="${USERS}" GROUPS="${GROUPS}" + +post-install: + ${MKDIR} ${STAGEDIR}${DATADIR} + cd ${WRKSRC}/static ; ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR} + ${MKDIR} ${STAGEDIR}/var/db/galene/recordings \ + ${STAGEDIR}/var/db/galene/data \ + ${STAGEDIR}/var/db/galene/groups + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC}; ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} + +.include <bsd.port.mk> diff --git a/www/galene/distinfo b/www/galene/distinfo new file mode 100644 index 000000000000..338e926d5852 --- /dev/null +++ b/www/galene/distinfo @@ -0,0 +1,55 @@ +TIMESTAMP = 1693557388 +SHA256 (jech-galene-0.7.2-7062ba100167d82808d982475880a588f0aa32bf_GH0.tar.gz) = f5f4253c3b50c019790363651d8a8ae338703342a0015b8a62cc793b2ce1cfc1 +SIZE (jech-galene-0.7.2-7062ba100167d82808d982475880a588f0aa32bf_GH0.tar.gz) = 739187 +SHA256 (at-wat-ebml-go-v0.17.0_GH0.tar.gz) = ebdaa605a117ba86e45a405103435d164d40079dff6f0c3f28d08f4e76ad6c0f +SIZE (at-wat-ebml-go-v0.17.0_GH0.tar.gz) = 69862 +SHA256 (golang-jwt-jwt-v4.5.0_GH0.tar.gz) = 00b1cc127cba09b4e4ea9efa5c0f18a36bb55e08b5eec0a222b8e1599a938077 +SIZE (golang-jwt-jwt-v4.5.0_GH0.tar.gz) = 53049 +SHA256 (golang-crypto-v0.7.0_GH0.tar.gz) = a7e73081a33f1bf496753a0cfd374052fb52da16d00600ca411d086a23da6178 +SIZE (golang-crypto-v0.7.0_GH0.tar.gz) = 1634438 +SHA256 (golang-net-v0.8.0_GH0.tar.gz) = f9e2128a2d6861db0595428c7cce62fe5a131348a6c7651b6efa8b03d0b10831 +SIZE (golang-net-v0.8.0_GH0.tar.gz) = 1244302 +SHA256 (golang-sys-v0.6.0_GH0.tar.gz) = b4f6d17c7a128f76169964b437cb66b3f2dbf9a33361928ec19dfecf7b03fc54 +SIZE (golang-sys-v0.6.0_GH0.tar.gz) = 1434234 +SHA256 (google-uuid-v1.3.0_GH0.tar.gz) = 7f7f37c47980e0afcc178a9ffc390bec29ed2371919b4c07658eb01791a7f921 +SIZE (google-uuid-v1.3.0_GH0.tar.gz) = 16210 +SHA256 (gorilla-websocket-v1.5.0_GH0.tar.gz) = 5d86f9e1c76ff7ceca0747f78b79864fbaec9d440f4fdb03197466e5102a86b0 +SIZE (gorilla-websocket-v1.5.0_GH0.tar.gz) = 54155 +SHA256 (jech-cert-aca735647728_GH0.tar.gz) = d2b7c711a7925012643cce6c9ee5cc34e667f54eb478d6163601e4ef46d2232e +SIZE (jech-cert-aca735647728_GH0.tar.gz) = 3363 +SHA256 (jech-samplebuilder-6cbba09fc1c9_GH0.tar.gz) = 08082afa77f3083c0b15ed09fe27d43c525bc31af3662e13288dd167a609c2ad +SIZE (jech-samplebuilder-6cbba09fc1c9_GH0.tar.gz) = 12428 +SHA256 (pion-datachannel-v1.5.5_GH0.tar.gz) = 88dc92b8b83759af29bf744e1a3d708a462966cfa77d9978575a7d6cd96c4766 +SIZE (pion-datachannel-v1.5.5_GH0.tar.gz) = 22496 +SHA256 (pion-dtls-v2.2.6_GH0.tar.gz) = e3fe7be7532e2086d3eb04fefdcf525b25319e4f786b9b9c89f0ac961b59f50b +SIZE (pion-dtls-v2.2.6_GH0.tar.gz) = 146508 +SHA256 (pion-ice-v2.3.2_GH0.tar.gz) = cf704234d5fab9a17490f6bfbe99d8fc3f8d632b203e6f3026717b93b0a57008 +SIZE (pion-ice-v2.3.2_GH0.tar.gz) = 96435 +SHA256 (pion-interceptor-v0.1.12_GH0.tar.gz) = 206226d1b5aea5e23393e2f19d48f670cac2bead09d6f82f8dc36efac25f23ae +SIZE (pion-interceptor-v0.1.12_GH0.tar.gz) = 75746 +SHA256 (pion-logging-v0.2.2_GH0.tar.gz) = 9e06f3dbf6f4fcf0e61e3a6406cac898fe3df86cb906bc9d73c7c4b466f0a9d6 +SIZE (pion-logging-v0.2.2_GH0.tar.gz) = 6750 +SHA256 (pion-mdns-v0.0.7_GH0.tar.gz) = 4be439d7572fab99bf9905c93ad75afc0aa13cefe815b0a19f1ed8e2ffdc637b +SIZE (pion-mdns-v0.0.7_GH0.tar.gz) = 13639 +SHA256 (pion-randutil-v0.1.0_GH0.tar.gz) = 4b0301915ebbfa77c8621cebf99c6c7d71651762a33ce4fa4e6af8994ecd4993 +SIZE (pion-randutil-v0.1.0_GH0.tar.gz) = 7521 +SHA256 (pion-rtcp-v1.2.10_GH0.tar.gz) = d69a2497f27e91cc3918fb6f41a19850a1d1e1d1d8f72fbafedfb83c1186fe8c +SIZE (pion-rtcp-v1.2.10_GH0.tar.gz) = 59883 +SHA256 (pion-rtp-d62c6716b99a_GH0.tar.gz) = 6d2682e380ea10e63a431f01b9cd2e4356583592c8487a25841146876abe4a6b +SIZE (pion-rtp-d62c6716b99a_GH0.tar.gz) = 54706 +SHA256 (pion-sctp-v1.8.6_GH0.tar.gz) = 3752b18cf0cd37c0c4a12aaae01e4c10ea23dc517b8c6ac04c3341b2d5423be6 +SIZE (pion-sctp-v1.8.6_GH0.tar.gz) = 90151 +SHA256 (pion-sdp-v3.0.6_GH0.tar.gz) = ceae9d450b92db03c2dd817213fa39f8bf152e172d51129decfd1a4cd77e42dc +SIZE (pion-sdp-v3.0.6_GH0.tar.gz) = 30415 +SHA256 (pion-srtp-v2.0.12_GH0.tar.gz) = cfe346e7ffe3762d2c8d4568d7151dca1dd426956f822b2982100c98a3daca6b +SIZE (pion-srtp-v2.0.12_GH0.tar.gz) = 36642 +SHA256 (pion-stun-v0.4.0_GH0.tar.gz) = e068ceacd5f36302329e7d1de00dd1a071bcb39cb5944468e4c6d8ae5665a34f +SIZE (pion-stun-v0.4.0_GH0.tar.gz) = 87340 +SHA256 (pion-transport-v2.0.2_GH0.tar.gz) = 9fccc0bdd6fedf5c272d9884acd39a37ae25e730db407d6febd2e5b1e356bef5 +SIZE (pion-transport-v2.0.2_GH0.tar.gz) = 75604 +SHA256 (pion-turn-v2.1.0_GH0.tar.gz) = 4440f9b2c82bbce9cee10527859121247e6ab50d0a2c6bc607bab7ff71c675a2 +SIZE (pion-turn-v2.1.0_GH0.tar.gz) = 121876 +SHA256 (pion-udp-v2.0.1_GH0.tar.gz) = 30bd91e7588f2ce525bb972710c239dd504ca001a5dbb3a17c191e8b541224af +SIZE (pion-udp-v2.0.1_GH0.tar.gz) = 14931 +SHA256 (pion-webrtc-v3.1.59_GH0.tar.gz) = b6357b369fec9273b9a69eb7ea5ac53aadaa6fc141a17084e6e5988b8aa3e4b4 +SIZE (pion-webrtc-v3.1.59_GH0.tar.gz) = 359387 diff --git a/www/galene/files/galene.in b/www/galene/files/galene.in new file mode 100644 index 000000000000..17b872f5622f --- /dev/null +++ b/www/galene/files/galene.in @@ -0,0 +1,37 @@ +#!/bin/sh + +# PROVIDE: galene +# REQUIRE: LOGIN +# KEYWORD: shutdown + +. /etc/rc.subr + +name=galene +rcvar=${name}_enable +desc="Visioconference server" + +load_rc_config "${name}" + +: ${galene_enable:="NO"} +: ${galene_user:="%%USERS%%"} +: ${galene_group:="%%GROUPS%%"} +: ${galene_static:="%%DATADIR%%"} +: ${galene_http:=":8443"} +: ${galene_data:="/var/db/galene/data"} +: ${galene_groups:="/var/db/galene/groups"} +: ${galene_recordings:="/var/db/galene/recordings"} + +pidfile=/var/run/galene.pid +procname="%%PREFIX%%/bin/galene" +command="/usr/sbin/daemon" +command_args="-cf -p ${pidfile} ${procname} -static ${galene_static} -http ${galene_http} -data ${galene_data} -groups ${galene_groups} -recordings ${galene_recordings} ${galene_args}" + +galene_startprecmd() +{ + if [ ! -e ${pidfile} ]; then + install -o ${galene_user} -g ${galene_group} /dev/null ${pidfile}; + fi +} + +start_precmd=galene_startprecmd +run_rc_command "$1" diff --git a/www/galene/pkg-descr b/www/galene/pkg-descr new file mode 100644 index 000000000000..44b2811f29dc --- /dev/null +++ b/www/galene/pkg-descr @@ -0,0 +1,9 @@ +Galène (or Galene) is a videoconference server (an “SFU”) that is easy to +deploy and that requires moderate server resources. It was originally designed +for lectures, conferences and student tutorials, but is also useful for +traditional meetings. + +Galène has been used in production at two major universities (Université de +Paris and Sorbonne Université) for lectures, practicals, seminars, and for +staff meetings. It has been used to host two conferences (SOCS'2020 and +JFLA'2021). diff --git a/www/galene/pkg-plist b/www/galene/pkg-plist new file mode 100644 index 000000000000..8ca31354a685 --- /dev/null +++ b/www/galene/pkg-plist @@ -0,0 +1,41 @@ +bin/galene +%%DATADIR%%/404.css +%%DATADIR%%/404.html +%%DATADIR%%/common.css +%%DATADIR%%/external/contextual/LICENSE +%%DATADIR%%/external/contextual/contextual.css +%%DATADIR%%/external/contextual/contextual.js +%%DATADIR%%/external/fontawesome/css/all.min.css +%%DATADIR%%/external/fontawesome/css/brands.min.css +%%DATADIR%%/external/fontawesome/css/fontawesome.min.css +%%DATADIR%%/external/fontawesome/css/regular.min.css +%%DATADIR%%/external/fontawesome/css/solid.min.css +%%DATADIR%%/external/fontawesome/css/svg-with-js.min.css +%%DATADIR%%/external/fontawesome/css/v4-font-face.min.css +%%DATADIR%%/external/fontawesome/css/v4-shims.min.css +%%DATADIR%%/external/fontawesome/css/v5-font-face.min.css +%%DATADIR%%/external/fontawesome/webfonts/fa-brands-400.ttf +%%DATADIR%%/external/fontawesome/webfonts/fa-brands-400.woff2 +%%DATADIR%%/external/fontawesome/webfonts/fa-regular-400.ttf +%%DATADIR%%/external/fontawesome/webfonts/fa-regular-400.woff2 +%%DATADIR%%/external/fontawesome/webfonts/fa-solid-900.ttf +%%DATADIR%%/external/fontawesome/webfonts/fa-solid-900.woff2 +%%DATADIR%%/external/fontawesome/webfonts/fa-v4compatibility.ttf +%%DATADIR%%/external/fontawesome/webfonts/fa-v4compatibility.woff2 +%%DATADIR%%/external/toastify/LICENSE +%%DATADIR%%/external/toastify/toastify.css +%%DATADIR%%/external/toastify/toastify.js +%%DATADIR%%/galene.css +%%DATADIR%%/galene.html +%%DATADIR%%/galene.js +%%DATADIR%%/index.html +%%DATADIR%%/mainpage.css +%%DATADIR%%/mainpage.js +%%DATADIR%%/protocol.js +%%DATADIR%%/stats.html +%%DATADIR%%/stats.js +%%DATADIR%%/tsconfig.json +@dir(%%USERS%%,%%GROUPS%%,) /var/db/galene/data +@dir(%%USERS%%,%%GROUPS%%,) /var/db/galene/groups +@dir(%%USERS%%,%%GROUPS%%,) /var/db/galene/recordings +@dir /var/db/galene |
