commit 0419f30d801f8b51f789eee279d64dbe15f730aa
parent c82b04e4f8b19151dd168ce12ead87ead1a09558
Author: parazyd <parazyd@dyne.org>
Date: Thu, 7 Dec 2023 21:28:13 +0100
net-libs/signald: Add ebuild
Diffstat:
4 files changed, 112 insertions(+), 0 deletions(-)
diff --git a/net-libs/signald/Manifest b/net-libs/signald/Manifest
@@ -0,0 +1,2 @@
+DIST signald-0.23.2.tar.bz2 267235 BLAKE2B 4ef118dcb4003320945a3110488f606889a1e4c716b54a2e984e73a3631b9b205bb782206b4ce1e89b6e2d994464971d52c24491b4c519a5cd5d648df711cea5 SHA512 a308f31a14bd6c7d71441aaa1ec318d21f4d74c224f14940077105bf0f37e3a9fbc6799d89667ce638cce291773df8a468db8e7b87def1d342b5bc6659339dc1
+DIST signald-0.23.2.tar.xz 122142248 BLAKE2B 89f2b288bb0aad314091791bcb4a7cf0dfe52a564e6c81098fa69b0086846d247a680cba8aa8183bd132efac026a1cd522535a732e8f4470b2f9ea07470b5213 SHA512 e97c5e1347809c7caae6914d3a362aeda0ed4cfe46d3a650d8c9a9e5d9668f5bfaff03bb30a26e48042734b97e0ea7de227f5137532bc746e77af3929299e70f
diff --git a/net-libs/signald/files/signald.initd b/net-libs/signald/files/signald.initd
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+name="signald daemon"
+description="an API for Signal"
+
+pidfile="/run/${RC_SVCNAME}.pid"
+command="/usr/bin/signald"
+command_args="-d /var/lib/signald -s /tmp/signald.sock --system-socket"
+command_background=true
+command_user="signald:signald"
+
+output_log="/var/log/signald.log"
+error_log="/var/log/signald.log"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -f -m 0644 -o "$command_user" "$output_log"
+}
diff --git a/net-libs/signald/metadata.xml b/net-libs/signald/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>parazyd</name>
+ <email>parazyd@dyne.org</email>
+ </maintainer>
+ <longdescription>
+ a daemon that facilitates communication over Signal. It is unofficial, unapproved, and not nearly as secure as the real Signal clients
+ Signal does not offer any sort of official API. Unlike traditional messaging applications, the Signal server expects the
+ client software to perform encryption and key management. signald handles all of these client-side requirements and
+ exposes a plain-text API which can be easily used by developers to build custom Signal clients. </longdescription>
+ <upstream>
+ <changelog>https://gitlab.com/signald/signald/-/releases</changelog>
+ <doc>https://signald.org</doc>
+ <bugs-to>https://gitlab.com/signald/signald/-/issues</bugs-to>
+ <remote-id type="gitlab">signald/signald</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-libs/signald/signald-0.23.2-r1.ebuild b/net-libs/signald/signald-0.23.2-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+DESCRIPTION="an API for interacting with Signal Private Messenger"
+HOMEPAGE="https://gitlab.com/signald/signald"
+SRC_URI="https://gitlab.com/signald/signald/-/archive/${PV}.tar.bz2 -> ${P}.tar.bz2
+ https://parazyd.org/pub/mirror/gentoo/distfiles/${P}.tar.xz
+"
+COMMIT="8cfebfe0ab8395221eca94c4c366abb6d7f39314"
+S="${WORKDIR}/${P}-${COMMIT}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="acct-user/signald
+ virtual/jre"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-java/gradle-bin:7.3.3"
+
+# From https://github.com/gentoo/gentoo/pull/28986
+# TODO: inherit this eclass when the PR is merged
+GRADLE_ARGS=(
+ --console=plain
+ --gradle-user-home "${T}/gradle_user_home"
+ --info
+ --no-build-cache
+ --no-daemon
+ --offline
+ --parallel
+ --project-cache-dir "${T}/gradle_project_cache"
+ --stacktrace
+)
+
+src_unpack() {
+ default
+ mv "${WORKDIR}/gradle_project_cache" "${T}" || die
+ mv "${WORKDIR}/gradle_user_home" "${T}" || die
+}
+
+src_prepare() {
+ default
+
+ sed -i -e "s/sqlite-jdbc:3.40.0.0/sqlite-jdbc:3.44.1.0/" \
+ "${S}/build.gradle" || die
+}
+
+src_compile() {
+ gradle "${GRADLE_ARGS[@]}" installDist || die
+}
+
+src_install() {
+ rm "${S}/build/install/signald/bin/signald.bat" || die
+ dodir "/var/lib"
+ mv "${S}/build/install/signald" "${ED}/var/lib" || die
+ dosym -r "/var/lib/signald/bin/signald" "usr/bin/${PN}"
+
+ newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+ sed -i -e "s/^EnvironmentFile=-\/etc\/default\/signald$//" \
+ "${S}/src/main/resources/io/finn/signald/signald.service" || die
+ sed -i -e "s/--system-socket/-s \/tmp\/signald.sock/" \
+ "${S}/src/main/resources/io/finn/signald/signald.service" || die
+ systemd_dounit "${S}/src/main/resources/io/finn/signald/signald.service"
+}