Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Mar 2020 21:39:53 +0000 (UTC)
From:      Mateusz Piotrowski <0mp@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r529131 - in head: . net-im net-im/signal-cli net-im/signal-cli/files
Message-ID:  <202003252139.02PLdrPA091354@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: 0mp
Date: Wed Mar 25 21:39:53 2020
New Revision: 529131
URL: https://svnweb.freebsd.org/changeset/ports/529131

Log:
  New port: Command-line and D-Bus interface for Signal and libsignal-service-java
  
  signal-cli is a command-line interface for libsignal-service-java. It
  supports registering, verifying, sending and receiving messages. To be able
  to link to an existing Signal-Android/signal-cli instance, signal-cli uses
  a patched libsignal-service-java, because libsignal-service-java does not
  yet support provisioning as a slave device. For registering you need a
  phone number where you can receive SMS or incoming calls. signal-cli is
  primarily intended to be used on servers to notify admins of important
  events. For this use-case, it has a dbus interface, that can be used to
  send messages from any programming language that has dbus bindings.
  
  WWW: https://github.com/AsamK/signal-cli

Added:
  head/net-im/signal-cli/
  head/net-im/signal-cli/Makefile   (contents, props changed)
  head/net-im/signal-cli/distinfo   (contents, props changed)
  head/net-im/signal-cli/files/
  head/net-im/signal-cli/files/build.gradle.in   (contents, props changed)
  head/net-im/signal-cli/files/signal-cli.in   (contents, props changed)
  head/net-im/signal-cli/pkg-descr   (contents, props changed)
  head/net-im/signal-cli/pkg-plist   (contents, props changed)
Modified:
  head/GIDs
  head/UIDs
  head/net-im/Makefile

Modified: head/GIDs
==============================================================================
--- head/GIDs	Wed Mar 25 21:25:24 2020	(r529130)
+++ head/GIDs	Wed Mar 25 21:39:53 2020	(r529131)
@@ -188,7 +188,7 @@ mastodon:*:244:
 routinator:*:245:
 fahclient:*:246:fahclient
 fcron:*:247:
-# free: 248
+signal-cli:*:248:
 # free: 249
 sems:*:250:
 # free: 251

Modified: head/UIDs
==============================================================================
--- head/UIDs	Wed Mar 25 21:25:24 2020	(r529130)
+++ head/UIDs	Wed Mar 25 21:39:53 2020	(r529131)
@@ -193,7 +193,7 @@ mastodon:*:244:244::0:0:Mastodon User:/usr/local/www/m
 routinator:*:245:245::0:0:Routinator 3000 Pseudo User:/nonexistent:/usr/sbin/nologin
 fahclient:*:246:246::0:0:Folding@home User:/nonexistent:/usr/sbin/nologin
 fcron:*:247:247::0:0:fcron pseudo-user:/nonexistent:/usr/sbin/nologin
-# free: 248
+signal-cli:*:248:248::0:0:Signal CLI:/nonexistent:/usr/sbin/nologin
 # free: 249
 sems:*:250:250::0:0:SIP Express Media Server:/nonexistent:/usr/sbin/nologin
 # free: 251

Modified: head/net-im/Makefile
==============================================================================
--- head/net-im/Makefile	Wed Mar 25 21:25:24 2020	(r529130)
+++ head/net-im/Makefile	Wed Mar 25 21:39:53 2020	(r529131)
@@ -152,6 +152,7 @@
     SUBDIR += sayaka
     SUBDIR += scudcloud
     SUBDIR += sendxmpp
+    SUBDIR += signal-cli
     SUBDIR += slack-term
     SUBDIR += spectral
     SUBDIR += ssh-chat

Added: head/net-im/signal-cli/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/signal-cli/Makefile	Wed Mar 25 21:39:53 2020	(r529131)
@@ -0,0 +1,121 @@
+# $FreeBSD$
+
+PORTNAME=	signal-cli
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.6.5
+CATEGORIES=	net-im java
+MASTER_SITES=	https://raw.github.com/AsamK/maven/master/releases/org/freedesktop/dbus/dbus-java/2.7.0/:_dbus_java \
+		https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.9.0/:_jackson_annotations \
+		https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.9.9/:_jackson_core \
+		https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.9.9.2/:_jackson_databind \
+		https://repo.maven.apache.org/maven2/com/github/turasa/signal-service-java/2.13.9_unofficial_1/:_signal_service_java \
+		https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/2.5.0/:_protobuf_java \
+		https://repo.maven.apache.org/maven2/com/googlecode/libphonenumber/libphonenumber/8.10.7/:_libphonenumber \
+		https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.1/:_okhttp \
+		https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.15.0/:_okio \
+		https://repo.maven.apache.org/maven2/net/sourceforge/argparse4j/argparse4j/0.8.1/:_argparse4j \
+		https://repo.maven.apache.org/maven2/org/bouncycastle/bcprov-jdk15on/1.64/:_bcprov_jdk15on \
+		https://repo.maven.apache.org/maven2/org/signal/signal-metadata-java/0.0.3/:_signal_metadata_java \
+		https://repo.maven.apache.org/maven2/org/threeten/threetenbp/1.3.6/:_threetenbp \
+		https://repo.maven.apache.org/maven2/org/whispersystems/curve25519-java/0.5.0/:_curve25519_java \
+		https://repo.maven.apache.org/maven2/org/whispersystems/signal-protocol-java/2.7.1/:_signal_protocol_java
+DISTFILES=	argparse4j-0.8.1.jar:_argparse4j \
+		bcprov-jdk15on-1.64.jar:_bcprov_jdk15on \
+		curve25519-java-0.5.0.jar:_curve25519_java \
+		dbus-java-2.7.0.jar:_dbus_java \
+		jackson-annotations-2.9.0.jar:_jackson_annotations \
+		jackson-core-2.9.9.jar:_jackson_core \
+		jackson-databind-2.9.9.2.jar:_jackson_databind \
+		libphonenumber-8.10.7.jar:_libphonenumber \
+		okhttp-3.12.1.jar:_okhttp \
+		okio-1.15.0.jar:_okio \
+		protobuf-java-2.5.0.jar:_protobuf_java \
+		signal-metadata-java-0.0.3.jar:_signal_metadata_java \
+		signal-protocol-java-2.7.1.jar:_signal_protocol_java \
+		signal-service-java-2.13.9_unofficial_1.jar:_signal_service_java \
+		threetenbp-1.3.6.jar:_threetenbp
+EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER=	0mp@FreeBSD.org
+COMMENT=	Command-line and D-Bus interface for Signal and libsignal-service-java
+
+LICENSE=	GPLv3
+
+BUILD_DEPENDS=	${LOCALBASE}/lib/jni/libunix-java.so:devel/libmatthew \
+		asciidoc>0:textproc/asciidoc \
+		gradle>0:devel/gradle
+RUN_DEPENDS=	${LOCALBASE}/lib/jni/libunix-java.so:devel/libmatthew
+
+USES=		gmake
+USE_GITHUB=	yes
+GH_ACCOUNT=	AsamK
+USE_JAVA=	yes
+JAVA_VERSION=	7+
+
+NO_ARCH=	yes
+
+SUB_FILES=	${PORTNAME}
+
+USERS=		signal-cli
+GROUPS=		signal-cli
+
+OPTIONS_DEFINE=		DBUS
+OPTIONS_DEFAULT=	DBUS
+
+DBUS_PLIST_FILES=	etc/dbus-1/system.d/org.asamk.Signal.conf \
+			share/dbus-1/services/org.asamk.Signal.service
+
+_GRADLE_CMD=		${LOCALBASE}/bin/gradle
+_GRADLE_ARGS=		--no-daemon --offline --quiet
+_GRADLE_DEPS_DIR=	${WRKDIR}/gradle-deps
+
+post-extract:
+	@${MKDIR} ${_GRADLE_DEPS_DIR}
+.for distfile in ${DISTFILES:N${DISTNAME}:C/:_[0-9A-Za-z_]*$//}
+	@${CP} ${DISTDIR}/${distfile} ${_GRADLE_DEPS_DIR}/
+.endfor
+	@${MV} ${WRKSRC}/build.gradle ${WRKSRC}/original-build.gradle
+	@${SED} -e 's|%%GRADLE_DEPS_DIR%%|${_GRADLE_DEPS_DIR}|g' \
+		${FILESDIR}/build.gradle.in \
+		> ${WRKSRC}/build.gradle
+
+do-build:
+	(cd ${WRKSRC} && \
+		${SETENV} GRADLE_USER_HOME=${WRKDIR} \
+		${_GRADLE_CMD} ${_GRADLE_ARGS} build installDist distTar)
+	${SETENV} ${MAKE_ENV} ${LOCALBASE}/bin/gmake -C ${WRKSRC}/man
+
+do-install:
+	@${MKDIR} ${STAGEDIR}${DATADIR}
+	${TAR} -x -f ${WRKSRC}/build/distributions/${PORTNAME}-${DISTVERSION}.tar \
+		-C ${STAGEDIR}${DATADIR} --strip-components 1 \
+		--exclude '*/bin/*.bat'
+	@${REINPLACE_CMD} -e 's|#!/usr/bin/env sh|#!/bin/sh|g' \
+		${STAGEDIR}${DATADIR}/bin/${PORTNAME}
+# ${RLN} ${STAGEDIR}${DATADIR}/bin/${PORTNAME} #         ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+	${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} \
+		${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+	${INSTALL_MAN} ${WRKSRC}/man/signal-cli.1 \
+		${STAGEDIR}${MAN1PREFIX}/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
+
+# This target can be used by the maintainer to regenerate MASTER_SITES and
+# DISTFILES from project's build.gradle.
+#
+# Make sure not to add the following JARs from the vendored libmatthew:
+# debug-*.jar, hexdump-*.jar, and unix-*.jar.
+_get-links: extract
+	@(cd ${WRKSRC} && \
+		${_GRADLE_CMD} \
+		--build-file ${WRKSRC}/build.gradle \
+		getURLofDependencyArtifact | \
+		${AWK} '/^MASTER_SITES/,/^$$/{print}' | ${SORT})
+
+.include <bsd.port.mk>

Added: head/net-im/signal-cli/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/signal-cli/distinfo	Wed Mar 25 21:39:53 2020	(r529131)
@@ -0,0 +1,39 @@
+TIMESTAMP = 1585155138
+SHA256 (signal-service-java-2.13.9_unofficial_1.jar) = 0f8680dad82826cf156c0878a291f7d8e878c5f11232711d2a2a914d51b058cd
+SIZE (signal-service-java-2.13.9_unofficial_1.jar) = 939644
+SHA256 (bcprov-jdk15on-1.64.jar) = a4f463ce552b908a722fa198ef4892a226b3225e453f8df10d5c0a5bfe5db6b6
+SIZE (bcprov-jdk15on-1.64.jar) = 4771726
+SHA256 (argparse4j-0.8.1.jar) = 98cb5468cac609f3bc07856f2e34088f50dc114181237c48d20ca69c3265d044
+SIZE (argparse4j-0.8.1.jar) = 110140
+SHA256 (dbus-java-2.7.0.jar) = 83db0cc9e7c72ff68cc5790fba76af1b3289fbdd10897609cec85c662207cc38
+SIZE (dbus-java-2.7.0.jar) = 151953
+SHA256 (signal-metadata-java-0.0.3.jar) = 2ce71cc4ec5dacfbaef4a265fceef61b8a09696b541994106a22a946762cbdcc
+SIZE (signal-metadata-java-0.0.3.jar) = 88407
+SHA256 (signal-protocol-java-2.7.1.jar) = 7f6df67a963acbab7716424b01b12fa7279f18a9623a2a7c8ba7b1c285830168
+SIZE (signal-protocol-java-2.7.1.jar) = 379527
+SHA256 (protobuf-java-2.5.0.jar) = e0c1c64575c005601725e7c6a02cebf9e1285e888f756b2a1d73ffa8d725cc74
+SIZE (protobuf-java-2.5.0.jar) = 533455
+SHA256 (libphonenumber-8.10.7.jar) = dbf4bf566d17a60044c19e282a619684e4b4abb0f9f9f24f843c55d19826ab5e
+SIZE (libphonenumber-8.10.7.jar) = 338097
+SHA256 (jackson-databind-2.9.9.2.jar) = fb262d42ea2de98044b62d393950a5aa050435fec38bbcadf2325cf7dc41b848
+SIZE (jackson-databind-2.9.9.2.jar) = 1348331
+SHA256 (okhttp-3.12.1.jar) = 07c3d82ca7eaf4722f00b2da807dc7860f6169ae60cfedcf5d40218f90880a46
+SIZE (okhttp-3.12.1.jar) = 422787
+SHA256 (threetenbp-1.3.6.jar) = f4c23ffaaed717c3b99c003e0ee02d6d66377fd47d866fec7d971bd8644fc1a7
+SIZE (threetenbp-1.3.6.jar) = 514875
+SHA256 (unix-0.5.1.jar) = 6e4afe48baf01c036a2f11d99aa94410aede15c62636c6516fcecd458c96d123
+SIZE (unix-0.5.1.jar) = 10873
+SHA256 (jackson-annotations-2.9.0.jar) = 45d32ac61ef8a744b464c54c2b3414be571016dd46bfc2bec226761cf7ae457a
+SIZE (jackson-annotations-2.9.0.jar) = 66519
+SHA256 (jackson-core-2.9.9.jar) = 3083079be6088db2ed0a0c6ff92204e0aa48fa1de9db5b59c468f35acf882c2c
+SIZE (jackson-core-2.9.9.jar) = 325632
+SHA256 (okio-1.15.0.jar) = 693fa319a7e8843300602b204023b7674f106ebcb577f2dd5807212b66118bd2
+SIZE (okio-1.15.0.jar) = 88732
+SHA256 (debug-1.1.1.jar) = 866458f4a8ce216ca4bb8685c5bf7c7d3403267f8841dd5eae89ff4312397e11
+SIZE (debug-1.1.1.jar) = 5481
+SHA256 (hexdump-0.2.1.jar) = 9c8c798b2be389fb9bf6413d231e5ca36816339f0aafeedc976b41972000e49d
+SIZE (hexdump-0.2.1.jar) = 3478
+SHA256 (curve25519-java-0.5.0.jar) = 0aadd43cf01d11e9b58f867b3c4f25c3194e8b0623d1953d32dfbfbee009e38d
+SIZE (curve25519-java-0.5.0.jar) = 124921
+SHA256 (AsamK-signal-cli-v0.6.5_GH0.tar.gz) = 1b6fda64ff24e7c5d97506b4b01988d1572cc706fd7fcec7b50555b691f31994
+SIZE (AsamK-signal-cli-v0.6.5_GH0.tar.gz) = 116626

Added: head/net-im/signal-cli/files/build.gradle.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/signal-cli/files/build.gradle.in	Wed Mar 25 21:39:53 2020	(r529131)
@@ -0,0 +1,48 @@
+/*
+ * $FreeBSD$
+ */
+
+apply from: 'original-build.gradle'
+
+repositories {
+    flatDir {
+        dirs '%%GRADLE_DEPS_DIR%%'
+    }
+}
+
+dependencies {
+    compile fileTree(dir: '%%GRADLE_DEPS_DIR%%', include: '*.jar')
+}
+
+/*
+ * Based on the scripts written by andforce and pczeus.
+ * Original scripts:
+ * - https://stackoverflow.com/a/58748741
+ * - https://stackoverflow.com/a/36538091/4694621
+ * License: CC BY-SA 4.0
+ */
+task getURLofDependencyArtifact() {
+    doFirst {
+        project.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact ->
+            def dependency = artifact.moduleVersion.id
+            for (ArtifactRepository repository : project.repositories.asList()) {
+                def url = repository.properties.get('url')
+                    def master_site = String.format("%s%s/%s/%s/", url.toString(),
+                            dependency.group.replace('.', '/'), dependency.name, dependency.version)
+                    def distfile = String.format("%s-%s.jar", dependency.name, dependency.version)
+                    def group = "_" + dependency.name.replaceAll('[^0-9A-Za-z_]', '_')
+                    try {
+                        def jarfile = new URL(master_site + distfile)
+                            def inStream = jarfile.openStream();
+                        if (inStream != null) {
+                            println("MASTER_SITES+=	" + master_site + ":" + group)
+                                println("DISTFILES+=	" + distfile + ":" + group)
+
+                                return
+                        }
+                    } catch (Exception ignored) {
+                }
+            }
+        }
+    }
+}

Added: head/net-im/signal-cli/files/signal-cli.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/signal-cli/files/signal-cli.in	Wed Mar 25 21:39:53 2020	(r529131)
@@ -0,0 +1,6 @@
+#! /bin/sh -
+# $FreeBSD$
+
+: "${JAVA_OPTS:=-Djava.library.path=%%LOCALBASE%%/lib/jni}"
+export JAVA_OPTS
+exec %%DATADIR%%/bin/signal-cli "$@"

Added: head/net-im/signal-cli/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/signal-cli/pkg-descr	Wed Mar 25 21:39:53 2020	(r529131)
@@ -0,0 +1,11 @@
+signal-cli is a command-line interface for libsignal-service-java. It supports
+registering, verifying, sending and receiving messages. To be able to link to
+an existing Signal-Android/signal-cli instance, signal-cli uses a patched
+libsignal-service-java, because libsignal-service-java does not yet support
+provisioning as a slave device. For registering you need a phone number where
+you can receive SMS or incoming calls. signal-cli is primarily intended to be
+used on servers to notify admins of important events. For this use-case, it has
+a dbus interface, that can be used to send messages from any programming
+language that has dbus bindings.
+
+WWW: https://github.com/AsamK/signal-cli

Added: head/net-im/signal-cli/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-im/signal-cli/pkg-plist	Wed Mar 25 21:39:53 2020	(r529131)
@@ -0,0 +1,19 @@
+bin/signal-cli
+share/man/man1/signal-cli.1.gz
+%%DATADIR%%/bin/signal-cli
+%%DATADIR%%/lib/argparse4j-0.8.1.jar
+%%DATADIR%%/lib/bcprov-jdk15on-1.64.jar
+%%DATADIR%%/lib/curve25519-java-0.5.0.jar
+%%DATADIR%%/lib/dbus-java-2.7.0.jar
+%%DATADIR%%/lib/jackson-annotations-2.9.0.jar
+%%DATADIR%%/lib/jackson-core-2.9.9.jar
+%%DATADIR%%/lib/jackson-databind-2.9.9.2.jar
+%%DATADIR%%/lib/libphonenumber-8.10.7.jar
+%%DATADIR%%/lib/okhttp-3.12.1.jar
+%%DATADIR%%/lib/okio-1.15.0.jar
+%%DATADIR%%/lib/protobuf-java-2.5.0.jar
+%%DATADIR%%/lib/signal-cli-0.6.5.jar
+%%DATADIR%%/lib/signal-metadata-java-0.0.3.jar
+%%DATADIR%%/lib/signal-protocol-java-2.7.1.jar
+%%DATADIR%%/lib/signal-service-java-2.13.9_unofficial_1.jar
+%%DATADIR%%/lib/threetenbp-1.3.6.jar



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003252139.02PLdrPA091354>