diff --git a/net-im/signal-cli/Makefile b/net-im/signal-cli/Makefile index b03a5ecea891..b46a37dac6e6 100644 --- a/net-im/signal-cli/Makefile +++ b/net-im/signal-cli/Makefile @@ -1,93 +1,94 @@ PORTNAME= signal-cli DISTVERSIONPREFIX= v DISTVERSION= 0.14.5 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= net-im java MASTER_SITES= https://github.com/${GH_ACCOUNT}/${PORTNAME}/releases/download/${DISTVERSIONFULL}/:jars DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX}:jars MAINTAINER= jaap.aarts1@gmail.com COMMENT= Command-line and D-Bus interface for Signal and libsignal-service-java WWW= https://github.com/AsamK/signal-cli LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE EXTRACT_DEPENDS= zip:archivers/zip BUILD_DEPENDS= asciidoc>0:textproc/asciidoc LIB_DEPENDS= libsignal_jni.so:net-im/libsignal TEST_DEPENDS= qrencode:graphics/libqrencode USES= gmake java shebangfix USE_GITHUB= yes GH_ACCOUNT= AsamK JAVA_VERSION= 25+ USE_RC_SUBR= signal_cli SHEBANG_FILES= bin/${PORTNAME} SHEBANG_LANG= sh sh_CMD= /bin/sh NO_ARCH= yes SUB_FILES= ${PORTNAME} pkg-message SUB_LIST= JAVA_HOME="${JAVA_HOME}" BUILD_WRKSRC= ${WRKSRC}/man TEST_ENV= ${MAKE_ENV} XDG_DATA_HOME=${WORKDIR}/xdg-data-home USERS= signal-cli GROUPS= signal-cli PLIST_SUB= VERSION=${DISTVERSION} OPTIONS_DEFINE= DBUS OPTIONS_DEFAULT= DBUS DBUS_RUN_DEPENDS= dbus>0:devel/dbus DBUS_PLIST_FILES= etc/dbus-1/system.d/org.asamk.Signal.conf \ share/dbus-1/services/org.asamk.Signal.service post-extract: # Delete bundled library from the JARs. Otherwise, they are going to conflict # with the library installed by net-im/libsignal. zip -d ${WRKSRC}/lib/libsignal-client-*.jar libsignal_jni_amd64.so do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/etc/rc.d ${INSTALL_SCRIPT} ${WRKDIR}/signal_cli \ ${STAGEDIR}${PREFIX}/etc/rc.d/ @${MKDIR} ${STAGEDIR}${DATADIR}/bin ${INSTALL_SCRIPT} ${WRKSRC}/bin/${PORTNAME} \ ${STAGEDIR}${DATADIR}/bin/${PORTNAME} @${MKDIR} ${STAGEDIR}${DATADIR}/lib ${INSTALL_DATA} ${WRKSRC}/lib/*.jar \ ${STAGEDIR}${DATADIR}/lib/ ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} \ ${STAGEDIR}${PREFIX}/bin/${PORTNAME} ${INSTALL_MAN} ${WRKSRC}/man/signal-cli.1 \ ${STAGEDIR}${PREFIX}/share/man/man1 post-install-DBUS-on: @${MKDIR} ${STAGEDIR}${PREFIX}/share/dbus-1/services ${INSTALL_DATA} ${WRKSRC}/data/org.asamk.Signal.service \ ${STAGEDIR}${PREFIX}/share/dbus-1/services @${MKDIR} ${STAGEDIR}${PREFIX}/etc/dbus-1/system.d ${INSTALL_DATA} ${WRKSRC}/data/org.asamk.Signal.conf \ ${STAGEDIR}${PREFIX}/etc/dbus-1/system.d pre-test: if [ "${_TEST_SIGNAL_CLI_USERNAME}" = "" ]; then \ @${ECHO_MSG} "_TEST_SIGNAL_CLI_USERNAME must be set to run tests"; \ ${FALSE}; \ fi do-test: ${SETENV} ${TEST_ENV} ${STAGEDIR}${DATADIR}/bin/signal-cli \ link --name "${PORTNAME} test $$(date)" | \ ${XARGS} -n 1 qrencode -t ANSI256 ${SETENV} ${TEST_ENV} ${STAGEDIR}${DATADIR}/bin/signal-cli \ send --message "${PORTNAME} test $$(date)" \ "${_TEST_SIGNAL_CLI_USERNAME}" .include diff --git a/net-im/signal-cli/files/signal_cli.in b/net-im/signal-cli/files/signal_cli.in index 2cd4da199c4d..18770a2ac439 100644 --- a/net-im/signal-cli/files/signal_cli.in +++ b/net-im/signal-cli/files/signal_cli.in @@ -1,59 +1,66 @@ #!/bin/sh # PROVIDE: signal_cli # REQUIRE: DAEMON LOGIN NETWORKING dbus . /etc/rc.subr name=signal_cli rcvar=signal_cli_enable -# User-facing settings and their default values. -: ${signal_cli_enable:=NO} -: ${signal_cli_phone_number} # No default value. Kept here for consistency. -: ${signal_cli_config_dir:=/var/lib/signal-cli} +# Load configuration variables from /etc/rc.conf and /etc/rc.conf.local +load_rc_config ${name} + +# Default values for signal-cli configuration +: ${signal_cli_enable:=NO} # Not enabled by default +: ${signal_cli_config_dir:="/var/lib/signal-cli"} # Default to /var/lib/signal-cli +: ${signal_cli_user:="signal-cli"} # Default to "signal-cli" user +: ${signal_cli_group:="signal-cli"} # Default to "signal-cli" group +: ${signal_cli_phone_number} # No default value. Kept here for consistency. +: ${signal_cli_cmd_opts:="--system"} # Type of daemon to run, default to system dbus +: ${signal_cli_pidfile:="/var/run/${name}/${name}.pid"} # PID file, default to /var/run/signal_cli/signal_cli.pid -pidfile="/var/run/signal_cli.pid" +pidfile="${signal_cli_pidfile}" procname="%%JAVA_HOME%%/bin/java" -_daemon_args="-p ${pidfile} -u signal-cli" +_daemon_args="-p ${pidfile}" _signal_cli="%%PREFIX%%/bin/signal-cli --config ${signal_cli_config_dir}" _signal_cli_args="-u ${signal_cli_phone_number}" _signal_cli_cmd="daemon" -_signal_cli_cmd_opts="--system" + command="/usr/sbin/daemon" -command_args="${_daemon_args} ${_signal_cli} ${_signal_cli_args} ${_signal_cli_cmd} ${_signal_cli_cmd_opts}" +command_args="${_daemon_args} ${_signal_cli} ${_signal_cli_args} ${_signal_cli_cmd} ${signal_cli_cmd_opts}" extra_commands="runcli" start_precmd="signal_cli_prestart" runcli_cmd="signal_cli_runcli" signal_cli_create_config_dir() { - if ! install -d -o signal-cli -g signal-cli -m 700 "${signal_cli_config_dir}"; then + if ! install -d -o ${signal_cli_user} -g ${signal_cli_group} -m 700 "${signal_cli_config_dir}"; then err 1 "Failed to create a config directory at \"${signal_cli_create_config_dir}\"" fi } signal_cli_prestart() { if [ -z "${signal_cli_phone_number}" ]; then err 1 "Phone number not provided; please set signal_cli_phone_number" fi signal_cli_create_config_dir } signal_cli_preconfigure() { signal_cli_create_config_dir } # The "runcli" command can be used to run any signal-cli command (for example # "link -n DEVICENAME") from the environment of the service. signal_cli_runcli() { - chroot -u signal-cli / ${_signal_cli} "$@" + chroot -u ${signal_cli_user} / ${_signal_cli} "$@" } load_rc_config ${name} run_rc_command "$@"