Initial commit

This commit is contained in:
Michael Smith 2025-07-01 15:53:02 +02:00
commit 2218fa79db
5 changed files with 143 additions and 0 deletions

40
Makefile Normal file
View File

@ -0,0 +1,40 @@
PORTNAME= mirotalk
DISTVERSION= 1.5.20
CATEGORIES= net-p2p
MASTER_SITES= https://git.michaelsmith.be/m/mirotalk-port/releases/download/initial/:node_modules
DISTFILES= mirotalk-node-modules-${DISTVERSION}${EXTRACT_SUFX}:node_modules
DIST_SUBDIR= ${PORTNAME}
MAINTAINER= m@hacktheplanet.be
COMMENT= Simple, Secure, Fast Real-Time Video Conferences web application
WWW= https://github.com/miroslavpejic85/mirotalk
LICENSE= AGPLv3
EXTRACT_DEPENDS= node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \
npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX}
USES= nodejs:22
USE_GITHUB= yes
GH_ACCOUNT= miroslavpejic85
GH_PROJECT= ${PORTNAME}
GH_TAGNAME= 5985501768fb9de93bbb94233b8de2d9e13f4f2f
USE_RC_SUBR= ${PORTNAME}
post-extract:
@${ECHO_MSG} "===> Installing node modules in ${WRKSRC}"
@${TAR} -xzf ${DISTDIR}/${DIST_SUBDIR}/mirotalk-node-modules-${DISTVERSION}${EXTRACT_SUFX} -C ${WRKSRC}
do-build:
do-install:
### targets for port maintainer(s)
make-node-modules-archive: extract
@${ECHO_MSG} "===> Fetching and installing node modules in ${WRKSRC}"
@cd ${WRKSRC} && \
${SETENV} ${MAKE_ENV} npm install --ignore-scripts --no-progress --no-audit --no-fund && \
${TAR} -czf ${WRKDIR}/mirotalk-node-modules${EXTRACT_SUFX} node_modules
.include <bsd.port.mk>

5
distinfo Normal file
View File

@ -0,0 +1,5 @@
TIMESTAMP = 1751378547
SHA256 (mirotalk/mirotalk-node-modules-1.5.20.tar.gz) = 28e44b6817e618eaf9f0b0c4e880372ccda16f1ea37dd089896f4a7e6ec55340
SIZE (mirotalk/mirotalk-node-modules-1.5.20.tar.gz) = 25192803
SHA256 (mirotalk/miroslavpejic85-mirotalk-1.5.20-5985501768fb9de93bbb94233b8de2d9e13f4f2f_GH0.tar.gz) = 702b2ccff6aebfdc0b21b6f4e206a7a96aad88d67fd9e503036d400a97dd9138
SIZE (mirotalk/miroslavpejic85-mirotalk-1.5.20-5985501768fb9de93bbb94233b8de2d9e13f4f2f_GH0.tar.gz) = 20813434

77
files/mirotalk.in Normal file
View File

@ -0,0 +1,77 @@
#!/bin/sh
# PROVIDE: mirotalk
# REQUIRE: LOGIN network
# KEYWORD: shutdown
#
# extraargs typically can remain unset
# extraargs accepts as string any of:
# --nowebclient Indicates that the web server should not host the web client.
# -w, --webdir Path to the Mirotalk web UI resources. Defaults to ./mirotalk-web
# -c, --configdir Path to use for configuration data (user settings and pictures).
# -l, --logdir Path to use for writing log files. Defaults to $datadir/log
# --ffmpeg Path to external FFmpeg executable to use. Defaults to PATH.
# --published-server-url Mirotalk Server URL to publish via auto discover process
#
#
# variable definitions
# mirotalk_exec_dir Path to the actual mirotalk binary Defaults to %%DATADIR%%
# mirotalk_data_dir Path to use for the data folder (database files, etc.) Defaults to /var/db/mirotalk
# mirotalk_cache_dir Path to use for caching. Defaults to /var/cache/mirotalk
# mirotalk_pid_dir Path to use for the pid file. Defaults to /var/run/mirotalk
. /etc/rc.subr
name=mirotalk
rcvar=mirotalk_enable
load_rc_config $name
: ${mirotalk_enable:=NO}
: ${mirotalk_user:="mirotalk"}
: ${mirotalk_group:="mirotalk"}
: ${mirotalk_extraargs:=""}
: ${mirotalk_exec_dir:="%%DATADIR%%"}
: ${mirotalk_data_dir:="/var/db/mirotalk"}
: ${mirotalk_cache_dir:="/var/cache/mirotalk"}
: ${mirotalk_pid_dir:="/var/run/mirotalk"}
pidfile="${mirotalk_pid_dir}/${name}_daemon.pid"
pidfile_child="${mirotalk_pid_dir}/${name}_child.pid"
command="/usr/sbin/daemon"
start_precmd=${name}_precmd
mirotalk_precmd() {
export PATH="/sbin:/bin:/usr/sbin:/usr/bin:%%LOCALBASE%%/sbin:%%LOCALBASE%%/bin"
if [ ! -d ${mirotalk_exec_dir} ]; then
install -d -o ${mirotalk_user} -g ${mirotalk_group} ${mirotalk_exec_dir}
fi
if [ ! -d ${mirotalk_data_dir} ]; then
install -d -o ${mirotalk_user} -g ${mirotalk_group} ${mirotalk_data_dir}
fi
if [ ! -d ${mirotalk_cache_dir} ]; then
install -d -o ${mirotalk_user} -g ${mirotalk_group} ${mirotalk_cache_dir}
fi
if [ ! -d ${mirotalk_pid_dir} ]; then
install -d -o ${mirotalk_user} -g ${mirotalk_group} ${mirotalk_pid_dir}
fi
# .NET 6+ use dual mode sockets to avoid the separate AF handling.
# disable .NET use of V6 if no ipv6 is configured.
# See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259194#c17
ifconfig -a -u -G lo | grep -q inet6
if [ $? == 1 ]; then
export DOTNET_SYSTEM_NET_DISABLEIPV6=1
fi
if [ `uname -K` -ge 1400092 ]; then
export CLR_OPENSSL_VERSION_OVERRIDE=30
fi
rc_flags="-r -f -p ${pidfile_child} -P ${pidfile} ${mirotalk_exec_dir}/mirotalk --datadir ${mirotalk_data_dir} --cachedir ${mirotalk_cache_dir} ${mirotalk_extraargs} >> /dev/null 2>&1 ${rc_flags}"
}
run_rc_command "$1"

20
files/pkg-deinstall.in Normal file
View File

@ -0,0 +1,20 @@
#!/bin/sh
case "$2" in
POST-DEINSTALL)
if [ -d %%WWWDIR%%/optimize ]; then
/usr/bin/find %%WWWDIR%%/optimize/ -delete
fi
cat <<EOMSG
If %%PORTNAME%%%%PKGNAMESUFFIX%% is being deleted permanently, and you do not wish to keep any
data that was in the cluster, then you may wish to delete the
%%WWWDIR%% directory. This can be done by with the command:
# rm -rf %%WWWDIR%%
Please ignore this if %%PORTNAME%%%%PKGNAMESUFFIX%% is being upgraded
EOMSG
;;
esac

1
pkg-descr Normal file
View File

@ -0,0 +1 @@
WebRTC - P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 8k and 60fps, compatible with all browsers and platforms.