git: 509067a758d8 - main - www/galene: new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 01 Sep 2023 09:09:19 UTC
The branch main has been updated by bapt:
URL: https://cgit.FreeBSD.org/ports/commit/?id=509067a758d8fbecbdf22d97c3d10c1b7912e850
commit 509067a758d8fbecbdf22d97c3d10c1b7912e850
Author: Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2023-09-01 09:08:05 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2023-09-01 09:08:59 +0000
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).
---
GIDs | 2 +-
UIDs | 1 +
www/Makefile | 1 +
www/galene/Makefile | 71 ++++++++++++++++++++++++++++++++++++++++++++++
www/galene/distinfo | 55 +++++++++++++++++++++++++++++++++++
www/galene/files/galene.in | 37 ++++++++++++++++++++++++
www/galene/pkg-descr | 9 ++++++
www/galene/pkg-plist | 41 ++++++++++++++++++++++++++
8 files changed, 216 insertions(+), 1 deletion(-)
diff --git a/GIDs b/GIDs
index 26cfd95b88d7..92053d2e8a01 100644
--- a/GIDs
+++ b/GIDs
@@ -268,7 +268,7 @@ dkimpy-milter:*:324:
dkfilter:*:325:
smfs:*:326:
_reticulum:*:327:
-# free: 328
+galene:*:328:
# free: 329
orthanc:*:330:
# free: 331
diff --git a/UIDs b/UIDs
index 61f105288259..37c8a75bed22 100644
--- a/UIDs
+++ b/UIDs
@@ -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