diff --git a/pkgbuilds/signal-desktop/.SRCINFO b/pkgbuilds/signal-desktop/.SRCINFO new file mode 100644 index 0000000..599c70c --- /dev/null +++ b/pkgbuilds/signal-desktop/.SRCINFO @@ -0,0 +1,59 @@ +pkgbase = signal-desktop + pkgdesc = Signal Private Messenger for Linux + pkgver = 7.77.1 + pkgrel = 1 + url = https://signal.org + arch = x86_64 + license = AGPL-3.0-only + makedepends = git + makedepends = git-lfs + makedepends = libxcrypt-compat + makedepends = node-gyp + makedepends = nodejs-lts-jod + makedepends = pnpm + makedepends = python + depends = alsa-lib + depends = libasound.so + depends = at-spi2-core + depends = libatk-bridge-2.0.so + depends = cairo + depends = libcairo.so + depends = dbus + depends = libdbus-1.so + depends = expat + depends = libexpat.so + depends = gcc-libs + depends = glib2 + depends = libgio-2.0.so + depends = glibc + depends = gtk3 + depends = hicolor-icon-theme + depends = libcups + depends = libdrm + depends = libnotify + depends = libpulse + depends = libx11 + depends = libxcb + depends = libxcomposite + depends = libxdamage + depends = libxext + depends = libxfixes + depends = libxkbcommon + depends = libxkbcommon.so + depends = libxrandr + depends = mesa + depends = nspr + depends = nss + depends = pango + depends = libpango-1.0.so + depends = systemd-libs + depends = libudev.so + optdepends = xdg-desktop-portal: Screensharing with Wayland + source = signal-desktop-7.77.1.tar.gz::https://github.com/signalapp/Signal-Desktop/archive/v7.77.1.tar.gz + source = signal-desktop.desktop + sha256sums = 5aae71e9b3ef88bb0499f96295e92d576ba8b6b6d2fe8ac90349fb589882d0dd + sha256sums = bf388df4b5bbcab5559ebbf220ed4748ed21b057f24b5ff46684e3fe6e88ccce + b2sums = dda49421e7d8f5f906b92a228e50c0081c73c6b6259b20959eeeb9d9f960a1ab74890c9e725c68b56d9c60537a82633af033b8e59aae52c79f2b7289601ba294 + b2sums = ffb8f7bab4fd84aacf13e7b6d2835daf449b6650b4b3fa723456792ba7fb6cae352928fea11cb030510d558ce30036ff5a1513444f067b94c7fff0158b4f2265 + +pkgname = signal-desktop diff --git a/pkgbuilds/signal-desktop/.nvchecker.toml b/pkgbuilds/signal-desktop/.nvchecker.toml new file mode 100644 index 0000000..3f050c4 --- /dev/null +++ b/pkgbuilds/signal-desktop/.nvchecker.toml @@ -0,0 +1,5 @@ +[signal-desktop] +source = "github" +github = "signalapp/signal-desktop" +prefix = "v" +use_latest_release = true diff --git a/pkgbuilds/signal-desktop/LICENSE b/pkgbuilds/signal-desktop/LICENSE new file mode 100644 index 0000000..b87c5e4 --- /dev/null +++ b/pkgbuilds/signal-desktop/LICENSE @@ -0,0 +1,12 @@ +Copyright Arch Linux Contributors + +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/pkgbuilds/signal-desktop/LICENSES/0BSD.txt b/pkgbuilds/signal-desktop/LICENSES/0BSD.txt new file mode 120000 index 0000000..ea5b606 --- /dev/null +++ b/pkgbuilds/signal-desktop/LICENSES/0BSD.txt @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/pkgbuilds/signal-desktop/PKGBUILD b/pkgbuilds/signal-desktop/PKGBUILD new file mode 100644 index 0000000..c61fa48 --- /dev/null +++ b/pkgbuilds/signal-desktop/PKGBUILD @@ -0,0 +1,126 @@ +# Maintainer: kpcyrd +# Maintainer: Christian Heusel +# Contributor: Jean Lucas + +pkgname=signal-desktop +_pkgname=Signal-Desktop +pkgver=7.77.1 +pkgrel=1 +pkgdesc="Signal Private Messenger for Linux" +license=('AGPL-3.0-only') +arch=('aarch64') # Only for aarch64 - already in Arch extra repo for x86_64 +url="https://signal.org" +depends=( + 'alsa-lib' 'libasound.so' + 'at-spi2-core' 'libatk-bridge-2.0.so' + 'cairo' 'libcairo.so' + 'dbus' 'libdbus-1.so' + 'expat' 'libexpat.so' + 'gcc-libs' + 'glib2' 'libgio-2.0.so' + 'glibc' + 'gtk3' + 'hicolor-icon-theme' + 'libcups' + 'libdrm' + 'libnotify' + 'libpulse' + 'libx11' + 'libxcb' + 'libxcomposite' + 'libxdamage' + 'libxext' + 'libxfixes' + 'libxkbcommon' 'libxkbcommon.so' + 'libxrandr' + 'mesa' + 'nspr' + 'nss' + 'pango' 'libpango-1.0.so' + 'systemd-libs' 'libudev.so' +) +makedepends=( + 'git' + 'git-lfs' + 'libxcrypt-compat' + 'node-gyp' + 'nodejs-lts-jod' + 'pnpm' + 'python' +) +optdepends=('xdg-desktop-portal: Screensharing with Wayland') +source=( + "${pkgname}-${pkgver}.tar.gz::https://github.com/signalapp/${_pkgname}/archive/v${pkgver}.tar.gz" + "${pkgname}.desktop" +) +sha256sums=('5aae71e9b3ef88bb0499f96295e92d576ba8b6b6d2fe8ac90349fb589882d0dd' + 'bf388df4b5bbcab5559ebbf220ed4748ed21b057f24b5ff46684e3fe6e88ccce') +b2sums=('dda49421e7d8f5f906b92a228e50c0081c73c6b6259b20959eeeb9d9f960a1ab74890c9e725c68b56d9c60537a82633af033b8e59aae52c79f2b7289601ba294' + 'ffb8f7bab4fd84aacf13e7b6d2835daf449b6650b4b3fa723456792ba7fb6cae352928fea11cb030510d558ce30036ff5a1513444f067b94c7fff0158b4f2265') + +prepare() { + cd "${_pkgname}-${pkgver}" + + # git-lfs hook needs to be installed for one of the dependencies + git lfs install + + # Allow higher Node versions + sed 's#"node": "#&>=#' -i package.json + + # Disable .deb packaging to avoid fpm architecture mismatch in cross-compilation + # electron-builder will still create the unpacked directory we need for packaging + # Use node to properly modify the JSON structure + node -e " + const fs = require('fs'); + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + if (pkg.build && pkg.build.linux && pkg.build.linux.target) { + pkg.build.linux.target = ['dir']; + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); + console.log('Modified package.json to use dir target only'); + } + " + + # Install dependencies for sticker-creator + pnpm --prefix ./sticker-creator/ install + + # Install dependencies for signal-desktop + pnpm install +} + +build() { + cd "${_pkgname}-${pkgver}" + + # Build the sticker creator + pnpm --prefix ./sticker-creator/ run build + + # Build signal-desktop + pnpm run build +} + +package() { + cd "${_pkgname}-${pkgver}" + + # Determine the architecture-specific directory + case "${CARCH}" in + x86_64) + _releasedir="release/linux-unpacked" + ;; + aarch64) + _releasedir="release/linux-arm64-unpacked" + ;; + esac + + install -d "${pkgdir}/usr/"{lib,bin} + cp -a "${_releasedir}" "${pkgdir}/usr/lib/${pkgname}" + ln -s "/usr/lib/${pkgname}/${pkgname}" "${pkgdir}/usr/bin/" + + chmod u+s "${pkgdir}/usr/lib/signal-desktop/chrome-sandbox" + + install -Dm 644 "../${pkgname}.desktop" -t "${pkgdir}/usr/share/applications" + for i in 16 24 32 48 64 128 256 512 1024; do + install -Dm 644 "build/icons/png/${i}x${i}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${pkgname}.png" + done +} + +# vim: ts=2 sw=2 et: diff --git a/pkgbuilds/signal-desktop/REUSE.toml b/pkgbuilds/signal-desktop/REUSE.toml new file mode 100644 index 0000000..2a8da8b --- /dev/null +++ b/pkgbuilds/signal-desktop/REUSE.toml @@ -0,0 +1,23 @@ +version = 1 + +[[annotations]] +path = [ + "PKGBUILD", + "README.md", + "keys/**", + ".SRCINFO", + ".nvchecker.toml", + "*.install", + "*.sysusers", + "*.tmpfiles", + "*.logrotate", + "*.pam", + "*.service", + "*.socket", + "*.timer", + "*.desktop", + "*.hook", + "TRADEMARK_CONSENT.txt", +] +SPDX-FileCopyrightText = "Arch Linux contributors" +SPDX-License-Identifier = "0BSD" diff --git a/pkgbuilds/signal-desktop/TRADEMARK_CONSENT.txt b/pkgbuilds/signal-desktop/TRADEMARK_CONSENT.txt new file mode 100644 index 0000000..ce1f9de --- /dev/null +++ b/pkgbuilds/signal-desktop/TRADEMARK_CONSENT.txt @@ -0,0 +1,187 @@ +Return-Path: aruna@signal.org +Delivered-To: kpcyrd@rxv.cc +Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) + by mail.rxv.cc (OpenSMTPD) with ESMTPS id 20277d00 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) + for ; + Tue, 7 Jan 2020 18:20:28 +0000 (UTC) +Received: from orion.archlinux.org (localhost [127.0.0.1]) + by orion.archlinux.org (Postfix) with ESMTP id AB67717EC9F8AC + for ; Tue, 7 Jan 2020 18:20:23 +0000 (UTC) +X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on orion.archlinux.org +X-Spam-Level: +X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00=-1,DKIM_SIGNED=0.1, + DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,HTML_MESSAGE=0.001, + LOCAL_FAKEBUSINESS=0.5,RCVD_IN_DNSWL_NONE=-0.0001,SPF_HELO_NONE=0.001, + T_DMARC_POLICY_NONE=0.01 autolearn=no autolearn_force=no version=3.4.3 +X-Spam-BL-Results: + [127.0.5.0] +Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) + (No client certificate requested) + by orion.archlinux.org (Postfix) with ESMTPS + for ; Tue, 7 Jan 2020 18:20:23 +0000 (UTC) +Received: by mail-ed1-x531.google.com with SMTP id b8so383435edx.7 + for ; Tue, 07 Jan 2020 10:20:23 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=signal.org; s=google; + h=mime-version:references:in-reply-to:from:date:message-id:subject:to; + bh=bSFjfcgPZhi0DEnSAuOFA+jYWeb26nFDHmCc2toMM1U=; + b=B7BgoISRirE9NVUMI3pKSDzMirKsxQ7+BN5JJk/WlgHEZ+anP6uIaXLUIcxzjfc8d6 + qdHdD1UsUdqHgbwXiE2KeZdTAtIoy80lQUDzjQZRTORfOVgQtgelvwq7d8N8EFy2jfik + K/QOU8pN+NSqsNTw6rZyATa6y1c3OSaxRkJ/I= +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:mime-version:references:in-reply-to:from:date + :message-id:subject:to; + bh=bSFjfcgPZhi0DEnSAuOFA+jYWeb26nFDHmCc2toMM1U=; + b=YzxIQxXMSHyuIUMo/XiKE4Q4Yo070VgbsWV57e8hWI4vZIQKN3490bAkt0XlGR+bQv + ozPh35v8AjOJ9DSBWOtWriZdB3k05pV+Y/Pu44bmMWE/ThF9eFHZomhHkKOyFdgWpQjT + ffOM39d3DpMY/gTi083CMstFmYtpjYcxTMMTfD6vXtaIBivBUqq5S9shFiwUNEIPQZPy + 2DS+NCRi62/8NzIZlXkbeWLmBzTgyEjR7H4DPKHuvxAjDIYfdF3kAnVVBrqvxbQ+VKRu + 3Cw4cla6HZq4npO82NPTzYBNZzZfdsypoWLjmopDxdEX+9aEFACOHoCgfQGUPjsaMe5O + 7cnQ== +X-Gm-Message-State: APjAAAWXyDg/5THr46Vg5hniOGGHZ/OgYqnBSnmU97hgIZTUbnXhkO3B + RW7cMtIUVxuPUz3DUzeeD/7An/HIl1DpIgePlalM41ZfST8= +X-Google-Smtp-Source: APXvYqxh9T/e1HyKnOSFhjFW3jhiuhEBWF0NhnTDGALsoZHz/wcEaRca9g8sqmsHLAN4Nfu/BE6+mYbuE5F0Ja2LW6g= +X-Received: by 2002:a50:ed94:: with SMTP id h20mr1236027edr.17.1578421222932; + Tue, 07 Jan 2020 10:20:22 -0800 (PST) +MIME-Version: 1.0 +References: +In-Reply-To: +From: Aruna Harder +Date: Tue, 7 Jan 2020 10:19:54 -0800 +Message-ID: +Subject: Re: distributing Signal Desktop +To: kpcyrd@archlinux.org +Content-Type: multipart/alternative; boundary="0000000000004c9813059b90d4b0" + +--0000000000004c9813059b90d4b0 +Content-Type: text/plain; charset="UTF-8" + +Hello, + +I consulted with our attorney and despite the language in our Terms of +Service related to various IP rights, the Signal code is explicitly +licensed under GPLv3. As long as your company complies with the GPLv3, your +use and distribution of Signal Desktop is explicitly permitted under GPLv3. + +We do ask that you use reasonable efforts to make timely updates to your +repository to the most current version of Signal as it becomes available. + +Please let me know if you have any questions. All the best to you and your +organization. + +Thanks. +-aruna + +Aruna Harder +Signal Messenger + +On Mon, Jan 6, 2020 at 9:38 AM Aruna Harder wrote: + +> Hello, +> +> Moxie forwarded your message to me about distributing Signal Desktop +> (copied here). I will get an agreement to you in the next few days. We +> would like to ensure you are always distributing the latest Signal code, +> for obvious reasons - e.g. to ensure latest fixes to known issues are +> addressed, etc. What is a reasonable timeframe to have latest Signal +> Desktop releases incorporated into your package? +> +> Thanks. +> -aruna +> +> Aruna Harder +> Signal +> +> ================================================== +> +> Date: Tue, 31 Dec 2019 17:48:24 +0000 +> From: kpcyrd +> To: moxie@thoughtcrime.org +> Subject: Grant Trademark Use to Arch Linux +> +> ohai! +> +> I'm reaching out to you because I'm looking into distributing +> signal-desktop as an official Arch Linux package. While the GPLv3 +> license works great for us we noticed this in the Terms and Conditions: +> +> > Signal's Rights. [...] You may not use our copyrights, trademarks, +> > domains, logos, trade dress, patents, and other intellectual property +> > rights unless you have our written permission. [...] +> +> This is similar to firefox (which we distribute) but more strictly +> worded so we need to ask you to please send us a written permission to +> distribute signal-desktop in the Arch Linux repositories. +> +> We did this before for discord[1] and teamspeak[2]. +> +> [1]: +> +> https://git.archlinux.org/svntogit/community.git/tree/trunk/Permission_to_Distribute.mbox?h=packages/discord +> [2]: +> +> https://git.archlinux.org/svntogit/community.git/tree/trunk/PERMISSION.eml?h=packages/teamspeak3 +> +> If you wish you may send it to kpcyrd@archlinux.org +> +> Thank you very much +> + +--0000000000004c9813059b90d4b0 +Content-Type: text/html; charset="UTF-8" +Content-Transfer-Encoding: quoted-printable + +
Hello,=C2=A0

I consulted with our attor= +ney and despite the language in our Terms of Service related to various IP = +rights,=C2=A0the Signal code is explicitly licensed under GPLv3. As long as= + your company complies with the GPLv3, your use and distribution of Signal = +Desktop is explicitly permitted under GPLv3.=C2=A0

We do ask that you use reasonable efforts to make timely updates to your r= +epository to the most current version of Signal as it becomes available.=C2= +=A0

Please let me know if you have any questions. = +All the best to you and your organization.=C2=A0

T= +hanks.
-aruna

Aruna Harder
Sig= +nal=C2=A0Messenger

On Mon, Jan 6, 2020 at 9:38 AM Aruna Harder <aruna@signal.org> wrote:
<= +blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= +eft:1px solid rgb(204,204,204);padding-left:1ex">
Hell= +o,=C2=A0

Moxie forwarded your message to me about = +distributing Signal Desktop (copied here). I will get an agreement to you i= +n the next few days. We would like to ensure you are always=C2=A0distributi= +ng the latest Signal code, for obvious=C2=A0reasons - e.g. to ensure latest= + fixes to known issues are addressed, etc. What is a reasonable timeframe t= +o have latest Signal Desktop releases incorporated into your package?=C2=A0= +

Thanks.=C2=A0
-aruna

Aruna Harder
Signal=C2=A0

=3D=3D=3D=3D= +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Da= +te: Tue, 31 Dec 2019 17:48:24 +0000
From: kpcyrd <kpcyrd@rxv.cc>To:=C2=A0moxie@thoughtcrime.org
Subject: Grant Trademark Use t= +o Arch Linux

ohai!

I'm reaching out to you because I'= +m looking into distributing
signal-desktop as an official Arch Linux pac= +kage. While the GPLv3
license works great for us we noticed this in the = +Terms and Conditions:

> Signal's Rights. [...] You may not us= +e our copyrights, trademarks,
> domains, logos, trade dress, patents,= + and other intellectual property
> rights unless you have our written= + permission. [...]

This is similar to firefox (which we distribute) = +but more strictly
worded so we need to ask you to please send us a writt= +en permission to
distribute signal-desktop in the Arch Linux repositorie= +s.

We did this before for discord[1] and teamspeak[2].

[1]:https://git.archlinux.org/svntogit/community.git/tre= +e/trunk/Permission_to_Distribute.mbox?h=3Dpackages/discord
[2]:
<= +a href=3D"https://git.archlinux.org/svntogit/community.git/tree/trunk/PERMI= +SSION.eml?h=3Dpackages/teamspeak3" rel=3D"noreferrer noreferrer" target=3D"= +_blank">https://git.archlinux.org/svntogit/community.git/tree/trunk/PERMISS= +ION.eml?h=3Dpackages/teamspeak3

If you wish you may send it to= +=C2=A0kpcyrd@archlinux.org

Thank you very much
+
+ +--0000000000004c9813059b90d4b0-- diff --git a/pkgbuilds/signal-desktop/patches/aarch64.patch b/pkgbuilds/signal-desktop/patches/aarch64.patch new file mode 100644 index 0000000..ee8e6a7 --- /dev/null +++ b/pkgbuilds/signal-desktop/patches/aarch64.patch @@ -0,0 +1,53 @@ +diff --git a/PKGBUILD b/PKGBUILD +index 98e2b17..c61fa48 100644 +--- a/PKGBUILD ++++ b/PKGBUILD +@@ -8,7 +8,7 @@ pkgver=7.77.1 + pkgrel=1 + pkgdesc="Signal Private Messenger for Linux" + license=('AGPL-3.0-only') +-arch=('x86_64') ++arch=('aarch64') # Only for aarch64 - already in Arch extra repo for x86_64 + url="https://signal.org" + depends=( + 'alsa-lib' 'libasound.so' +@@ -67,6 +67,19 @@ prepare() { + # Allow higher Node versions + sed 's#"node": "#&>=#' -i package.json + ++ # Disable .deb packaging to avoid fpm architecture mismatch in cross-compilation ++ # electron-builder will still create the unpacked directory we need for packaging ++ # Use node to properly modify the JSON structure ++ node -e " ++ const fs = require('fs'); ++ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); ++ if (pkg.build && pkg.build.linux && pkg.build.linux.target) { ++ pkg.build.linux.target = ['dir']; ++ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); ++ console.log('Modified package.json to use dir target only'); ++ } ++ " ++ + # Install dependencies for sticker-creator + pnpm --prefix ./sticker-creator/ install + +@@ -87,8 +100,18 @@ build() { + package() { + cd "${_pkgname}-${pkgver}" + ++ # Determine the architecture-specific directory ++ case "${CARCH}" in ++ x86_64) ++ _releasedir="release/linux-unpacked" ++ ;; ++ aarch64) ++ _releasedir="release/linux-arm64-unpacked" ++ ;; ++ esac ++ + install -d "${pkgdir}/usr/"{lib,bin} +- cp -a release/linux-unpacked "${pkgdir}/usr/lib/${pkgname}" ++ cp -a "${_releasedir}" "${pkgdir}/usr/lib/${pkgname}" + ln -s "/usr/lib/${pkgname}/${pkgname}" "${pkgdir}/usr/bin/" + + chmod u+s "${pkgdir}/usr/lib/signal-desktop/chrome-sandbox" diff --git a/pkgbuilds/signal-desktop/signal-desktop.desktop b/pkgbuilds/signal-desktop/signal-desktop.desktop new file mode 100644 index 0000000..b9edaa0 --- /dev/null +++ b/pkgbuilds/signal-desktop/signal-desktop.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Type=Application +Name=Signal +Comment=Signal - Private Messenger +Comment[de]=Signal - Sicherer Messenger +Icon=signal-desktop +Exec=signal-desktop -- %u +Terminal=false +Categories=Network;InstantMessaging; +StartupWMClass=signal +MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha; +Keywords=sgnl;chat;im;messaging;messenger;security;privat; +X-GNOME-UsesNotifications=true