commit 2218fa79db1bb6ab1f8d8304fce563a76a7a55d6 Author: Michael Smith Date: Tue Jul 1 15:53:02 2025 +0200 Initial commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..72441b0 --- /dev/null +++ b/Makefile @@ -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 diff --git a/distinfo b/distinfo new file mode 100644 index 0000000..ac97db5 --- /dev/null +++ b/distinfo @@ -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 diff --git a/files/mirotalk.in b/files/mirotalk.in new file mode 100644 index 0000000..467b677 --- /dev/null +++ b/files/mirotalk.in @@ -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" diff --git a/files/pkg-deinstall.in b/files/pkg-deinstall.in new file mode 100644 index 0000000..0699ab5 --- /dev/null +++ b/files/pkg-deinstall.in @@ -0,0 +1,20 @@ +#!/bin/sh + +case "$2" in +POST-DEINSTALL) + if [ -d %%WWWDIR%%/optimize ]; then + /usr/bin/find %%WWWDIR%%/optimize/ -delete + fi + + cat <