Signal-desktop expired

signal reports itself as version 6.42.1
6.42.1 on manjaro arm
the package manager claims to have version 6.44.1-1 (packages.manjaro.org stable 6.44.1-1). tried removing and reinstalling of the package, but got the same result.

now instead of sending the message, a pop-up in the bottom left informs me that i have to update to continue messaging. sending messages is not possible any more:

btw, windows version currently has version 7.3.0

are you sure?

sudo pacman -S signal-desktop
signal-desktop-7.0.0-1

yup. according to packages.manjaro.org signal-desktop 6.44.1-1 is the latest for arm stable

Unfortunately, the binary upstream source that was being used has not been updated. We also do not have a current maintainer for this package. I just tried building it from source and it failed. Since the current version is insecure, I will be dropping from the repos. You can install the official Flatpak instead.

unfortunately there is only a x86_64 but no aarch64 version on flatpak :pensive:

Oh, sorry I didn’t notice it was x86_64 only. :man_shrugging:

sorry, my bad, I didn’t notice it was ARM repo… :neutral_face:

The only version the signal.org people provide right now for aarch64 is signal-desktop-7.2.0.alpha.1. I have built it and pushed it to the unstable branch when the mirrors sync. I have tested it and seems to work ok.

It requires several libs for depends and there has been quite a bit of package upgrades lately so I am worried about lib versions so I did not push to all branches and do not want to build a separate package for each branch. Switch to the unstable branch and see if signal-desktop will install. If not you will have to updated everything to the unstable branch first. These libs I am particularly worried about:

libasound.so=2-64
libatk-bridge-2.0.so=0-64
libcairo.so=2-64
libdbus-1.so=3-64
libexpat.so=1-64

Crash when file>create stickers

{"level":50,"time":"2024-03-23T19:25:25.429Z","msg":"(node:33159) electron: Failed to load URL: file:[REDACTED]/sticker-creator/dist/index.html with error: ERR_FILE_NOT_FOUND"}
Unhandled Promise Rejection: Error: ERR_FILE_NOT_FOUND (-6) loading 'file:///opt/signal/resources/app.asar/sticker-creator/dist/index.html'
    at rejectAndCleanup (node:electron/js2c/browser_init:2:75584)
    at WebContents.failListener (node:electron/js2c/browser_init:2:75797)
    at WebContents.emit (node:events:514:28)
{"level":50,"time":"2024-03-23T19:25:25.430Z","msg":"Unhandled Promise Rejection: Error: ERR_FILE_NOT_FOUND (-6) loading 'file:[REDACTED]/sticker-creator/dist/index.html'\n    at rejectAndCleanup (node:electron/js2c/browser_init:2:75584)\n    at WebContents.failListener (node:electron/js2c/browser_init:2:75797)\n    at WebContents.emit (node:events:514:28)"}
{"level":30,"time":"2024-03-23T19:25:31.282Z","msg":"main window closed event"}

I have never used that. I did install 6.44.1 and get the same thing today. So I do not know if that has been happening all along or there is an issue with our electron version installed. I removed the alpha version from the repo. It had been there for about 3 weeks but I ignored it as I usually do not do alpha or beta releases.

Until something improves along the way it looks like signal-desktop for aarch64 is on hold for a while.

i have tested aur package
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=signal-desktop-beta
just modifying beta2 and checksum

It should probably build against v7.3.1 too/

Yep it does and the file>create stickers works. I just wonder why they have not released a current aarch64 package yet on their Downloads. The major issue is it requires a make depend fpm from aur to compile for aarch64 from source which requires several ruby gems. I cut out quite a few gems by disabling the checks in a couple of packages. I used this source code from their git:

https://github.com/signalapp/Signal-Desktop/tree/7.3.x

Here is the package signal-desktop-7.3.1-1-aarch64.pkg.tar.zst built on the unstable branch.

https://drive.google.com/file/d/184PUC3yBlM2bOmh8aEdGLqjHdBH4JBTt/view?usp=sharing

as far as i can tell this build does work quite well, thank you!

For use with tray icon the beta version has an option available.
For stable version, change the launcher with

--use-tray-icon

For wayland update the launcher with (–enable-features=WaylandWindowDecorations just for gnome)

--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WaylandWindowDecorations

or the environment

ELECTRON_OZONE_PLATFORM_HINT=auto

and launcher for gnome

--enable-features=WaylandWindowDecorations

Why not make an official package with fpm ? Version 7.4.0 is out and you will have probably to make a “forum’s maintenance” and signal can be a sensitive issue relating to data protection, so you have to trust the sources

I publish my own pkgbuild to empower people

# Maintainer: Eduard Tolosa <edu4rdshl@protonmail.com>
# PKGBUILD modified from kpcyrd <kpcyrd[at]archlinux[dot]org>
# Contributor: Jean Lucas <jean@4ray.co>
# This package is just an adaptation of the signal-desktop package
# that is in the official repos in order to provide a version
# of signal that does not use precompiled binaries.

pkgname=signal-desktop
_pkgname=Signal-Desktop
_sticker_creator="sticker-creator"
pkgver=7.4.0
pkgrel=1
pkgdesc='Signal Private Messenger for Linux.'
license=('GPL3')
conflicts=('signal-desktop-beta-bin')
arch=('aarch64')
url="https://signal.org"
depends=('gtk3' 'hicolor-icon-theme' 'libasound.so' 'libatk-bridge-2.0.so' 'libcairo.so' 'libdbus-1.so'
        'libexpat.so' 'libgio-2.0.so' 'libpango-1.0.so' 'libxkbcommon.so' 'libxss')
# We need libxcrypt-compat for it to build: https://github.com/electron-userland/electron-builder-binaries/issues/47
makedepends=('yarn' 'git' 'nodejs' 'npm' 'python' 'git-lfs' 'libxcrypt-compat' 'node-gyp')
optdepends=('xdg-desktop-portal: Screensharing with Wayland')
makedepends_aarch64=('fpm')
source=(
  "${pkgname}-${pkgver}.tar.gz::https://github.com/signalapp/${_pkgname}/archive/v${pkgver}.tar.gz"
  "dns-fallback-${pkgver}.json::https://raw.githubusercontent.com/kpcyrd/signal-desktop-dns-fallback-extractor/${pkgver}/dns-fallback.json"
  "${pkgname}.desktop"
  )
sha512sums=('51edb647832a1f9658abb7fddb4c35e8c84f5ea73c36f52bb02cf3460b871ace5bc6a86b439df738d6fbc418f0753e717962a0edefa95a0d4b2ca846fa11371e'
            'aa79c2d440a69387f4bd07f95ecee4237d09bfae32abcb2afd4d1ecc90be1f68fa88bfa8eb4b570d9ef5a39b01ff58ef221231d8bd9a57cd888624e53380f113'
            '6ac4f336e5fd2bb9aec2a9f3d14ef5f38953bdc6ed1162370e30c32b1a93115eab5683e4bfb3092efcd53b607e438880321a9075e1f6aaf2835568d167a80c8f')

prepare() {
  cd "${_pkgname}-${pkgver}"

  git lfs install

  # Allow higher Node versions
  sed 's#"node": "#&>=#' -i package.json

  cd ${_sticker_creator}
  yarn install

  cd ..
  yarn install --ignore-engines
}

build() {
  cd "${_pkgname}-${pkgver}"

# temporary fix for openssl3 (not necessary)
#  export NODE_OPTIONS=--openssl-legacy-provider

  cd ${_sticker_creator}
  USE_SYSTEM_FPM=$([ $(uname -m) == "aarch64" ] && echo true || echo false) bash -c 'yarn build'

  cd ..
  
# Fix reproducible builds, use official dns-fallback.json instead of the generated one
# https://github.com/signalapp/Signal-Desktop/issues/6823

cp "../dns-fallback-${pkgver}.json" build/dns-fallback.json
> ts/scripts/generate-dns-fallback.ts

  

yarn generate

USE_SYSTEM_FPM=$([ $(uname -m) == "aarch64" ] && echo true || echo false) bash -c 'yarn build:esbuild:prod && yarn build:release --linux dir'
}

package() {
  cd "${_pkgname}-${pkgver}"

  install -d "${pkgdir}/usr/"{lib,bin}

  case "${CARCH}" in
    "aarch64") folder="linux-arm64-unpacked" ;;
    *) folder="linux-unpacked" ;;
  esac
  cp -a release/${folder} "${pkgdir}/usr/lib/${pkgname}"

  ln -s "/usr/lib/${pkgname}/${pkgname}" "${pkgdir}/usr/bin/"

  chmod u+s "${pkgdir}/usr/lib/${pkgname}/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
}

aren’t you using an automated build system?

i’m helping users, who never used a terminal, who work on raspberries and they now rely on someone to build signal for them. but even if i learn how to build (and distribute) software packages for manjaro now, they would have to trust me on this sensitive issue. i don’t think that was the idea either :thinking:

don’t you want to reconsider the decision and provide a package that’s trusted because it’s built by the distribution?