commit f398799c3e075ce56290124b919fcf3fcad73d5e Author: Michael Smith Date: Tue Jul 1 22:17:00 2025 +0200 Initial commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ee4f47a --- /dev/null +++ b/Makefile @@ -0,0 +1,61 @@ +PORTNAME= mirotalk +DISTVERSION= 1.5.20 +CATEGORIES= www +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= shmitty@protonmail.com +COMMENT= Simple, secure, fast and real time video conference web application +WWW= https://github.com/miroslavpejic85/mirotalk + +LICENSE= AGPLv3 + +ONLY_FOR_ARCHS= amd64 + +EXTRACT_DEPENDS= node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \ + npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} + +USES= nodejs:22 + +NO_BUILD= yes + +SUB_FILES= mirotalk pkg-deinstall pkg-message +SUB_LIST= MIROTALK_GROUP=${MIROTALK_GROUP} \ + MIROTALK_HOME=${MIROTALK_HOME} \ + MIROTALK_USER=${MIROTALK_USER} + +USERS= ${MIROTALK_USER} +GROUPS= ${MIROTALK_GROUP} + +USE_GITHUB= yes +GH_ACCOUNT= miroslavpejic85 +GH_PROJECT= ${PORTNAME} +GH_TAGNAME= 5985501768fb9de93bbb94233b8de2d9e13f4f2f +USE_RC_SUBR= ${PORTNAME} + +MIROTALK_GROUP?= mirotalk +MIROTALK_USER?= mirotalk +MIROTALK_HOME?= ${PREFIX}/mirotalk + +PLIST_SUB+= MIROTALK_GROUP=${MIROTALK_GROUP} \ + MIROTALK_HOME=${MIROTALK_HOME} \ + MIROTALK_USER=${MIROTALK_USER} + +post-extract: + @${ECHO_MSG} "===> Installing node modules in ${WRKSRC}" + @${TAR} -xzf ${DISTDIR}/${DIST_SUBDIR}/mirotalk-node-modules-${DISTVERSION}${EXTRACT_SUFX} -C ${WRKSRC} + +do-install: + ${MKDIR} ${STAGEDIR}${MIROTALK_HOME} + cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${MIROTALK_HOME} + +### 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 && \ + ${SETENV} ${MAKE_ENV} npm install @ngrok/ngrok-freebsd-x64 --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..144b6c0 --- /dev/null +++ b/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1751393141 +SHA256 (mirotalk/mirotalk-node-modules-1.5.20.tar.gz) = 5427cf9bf7de000b02dd6d92ffb308777994d1798b5ca4fd91ec9d896c5bdf19 +SIZE (mirotalk/mirotalk-node-modules-1.5.20.tar.gz) = 28956600 +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..7b4fb86 --- /dev/null +++ b/files/mirotalk.in @@ -0,0 +1,61 @@ +#!/bin/sh + +# PROVIDE: mirotalk +# REQUIRE: DAEMON +# KEYWORD: shutdown + +# FreeBSD rc.d script for mirotalk +# + +# The mirotalk service has the following rc.conf options: +# +# mirotalk_enable (bool): Set to YES to enable mirotalk +# Default: NO +# mirotalk_user (str): The user to run mirotalk as +# Default: mirotalk +# mirotalk_group (str): The group to run mirotalk as +# Default: mirotalk +# mirotalk_chdir (str): The directory where mirotalk is installed +# Default: %%PREFIX%%/mirotalk +# mirotalk_datadir (str): The directory where mirotalk's data is stored +# Default: /var/db/mirotalk +# mirotalk_restart (bool): Set to YES if mirotalk should be automatically +# restarted after it crashes. +# Default: NO + +. /etc/rc.subr + +name=mirotalk +desc="mirotalk service" +rcvar=mirotalk_enable + +load_rc_config $name + +: ${mirotalk_enable:=NO} +: ${mirotalk_group:=%%MIROTALK_GROUP%%} +: ${mirotalk_datadir:=%%MIROTALK_DATADIR%%} +: ${mirotalk_pidfile=/var/run/mirotalk/mirotalk.pid} +: ${mirotalk_restart=NO} +: ${mirotalk_user:=%%MIROTALK_USER%%} +: ${mirotalk_chdir=%%MIROTALK_HOME%%} + +# If mirotalk_restart is YES, then restart mirotalk when it crashes, otherwise +# daemon(8) will exit. +if checkyesno mirotalk_restart; then + _restartargs="-r" +else + _restartargs="" +fi + +pidfile=${mirotalk_pidfile} + +command=/usr/sbin/daemon +command_args="-f -H \ + -P ${pidfile} -t ${name} -T ${name} \ + ${_restartargs} \ + %%LOCALBASE%%/bin/node app/src/server.js" +required_files="${mirotalk_chdir}/app/src/config.js" + +start_precmd="[ -d ${pidfile%/*} ] || install -d -o ${mirotalk_user} -g ${mirotalk_group} ${pidfile%/*}" + +run_rc_command "$1" diff --git a/files/pkg-deinstall.in b/files/pkg-deinstall.in new file mode 100644 index 0000000..1b6469a --- /dev/null +++ b/files/pkg-deinstall.in @@ -0,0 +1,9 @@ +#!/bin/sh + +DIR=%%MIROTALK_HOME%% + +if [ "$2" = "POST-DEINSTALL" ]; then + if [ -e ${DIR} ]; then + echo "==> You should check and manually remove the \"${DIR}\" directory." + fi +fi diff --git a/files/pkg-message.in b/files/pkg-message.in new file mode 100644 index 0000000..371b780 --- /dev/null +++ b/files/pkg-message.in @@ -0,0 +1,10 @@ +[ +{ type: install + message: <