Kann signal-desktop nicht bauen

Elwood

Naiver Mutmaßlicher
Moin,

ich versuche gerade den Signal-Client aus den Ports zu bauen mit folgendem Ergebnis:


Code:
[9:52 /<1>ports/net-im/signal-desktop] # make
===>   signal-desktop-6.48.1_3 depends on file: /usr/local/lib/libcrypto.a - found
===>   signal-desktop-6.48.1_3 depends on file: /usr/local/lib/libringrtc.so - found
===>   signal-desktop-6.48.1_3 depends on file: /usr/local/lib/libsignal_node.so - not found
===>  Building for libsignal-node-0.39.1_1
echo 'yarn-offline-mirror "../yarn-offline-cache"' > /usr/ports/net-im/libsignal-node/work/libsignal-0.39.1/.yarnrc
echo 'nodedir "/usr/local"' >> /usr/ports/net-im/libsignal-node/work/libsignal-0.39.1/.yarnrc
cd /usr/ports/net-im/libsignal-node/work/libsignal-0.39.1/node &&  /usr/bin/env HOME=/usr/ports/net-im/libsignal-node/work  PYTHON=/usr/local/bin/python3.9  RUSTFLAGS=-Clink-dead-code  XDG_CACHE_HOME=/usr/ports/net-im/libsignal-node/work/.cache RUSTC_BOOTSTRAP=aes,polyval XDG_DATA_HOME=/usr/ports/net-im/libsignal-node/work  XDG_CONFIG_HOME=/usr/ports/net-im/libsignal-node/work  XDG_CACHE_HOME=/usr/ports/net-im/libsignal-node/work/.cache  HOME=/usr/ports/net-im/libsignal-node/work TMPDIR="/usr/ports/net-im/libsignal-node/work" PATH=/usr/ports/net-im/libsignal-node/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/local/kde4/bin:/root/bin PKG_CONFIG_LIBDIR=/usr/ports/net-im/libsignal-node/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe  -fstack-protector-strong -fno-strict-aliasing "  CPP="cpp" CPPFLAGS=""  LDFLAGS=" -fstack-protector-strong " LIBS=""  CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing  " BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" yarn install --frozen-lockfile --ignore-optional --offline
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
error Can't make a request in offline mode ("https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz")
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/net-im/libsignal-node
*** Error code 1

Stop.
make: stopped in /usr/ports/net-im/signal-desktop

Ich habe es auf 2 Rechnern probiert. Da ich absoluter Noob in Sachen node, yarn und co. bin, weiss ich mir keinen Rat und Tante google und Co hat mir auch keine Erleuchtung gebracht.
Liegt das unter Umständen an den Ports (yarn und node?!). Ein Signal-Desktop-Packet ist zur Zeit ja leider auch nicht verfügbar.

Läuft das bei euch?

VG Elwood
 
Du könntest versuchen, das Makefile (/usr/ports/net-im/libsignal-node) zu manipulieren:
Im Ziel do-build den Parameter --offline beim Aufruf von yarn install entfernen.

Rob
 
Du könntest versuchen, das Makefile (/usr/ports/net-im/libsignal-node) zu manipulieren:
Im Ziel do-build den Parameter --offline beim Aufruf von yarn install entfernen.
Danke für den Tip. Das führt leider nicht zum Erfolg... hab mal stufenweise alle --offline aus dem Makefile rausgeschmissen.
 
Mit welchen Fehlermeldungen?

Leider bleibt es bei den gleichen Meldungen. Ich vermute, dass das Problem eher im Bereich fetch-yarn: liegt.
Insgesamt scheint der Port halbgruselig zu sein, trotz Einstellung in make.conf -> DEFAULT_VERSIONS+= ssl=base
wird der openssl-Port gebaut, was natürlich bei nächster Gelegenheit bei anderen Ports wieder Probleme macht, weil andere Ports sich an die make.conf-Einstellung halten.

Aus meiner Sicht ist der Port broken... Leider fehlen mir die Zeit und Kenntnisse das zu debuggen.

Wenn jemand auch den o.g. Port nutzt und erfolgreich bauen kann, dann würde ich in die Materie weiter eintauchen.

VG Elwood
 
Moin,

nach einigen gescheiterten Versuchen, signal-desktop aus den ports zu bauen, scheint folgender workaround zu funktionieren:

Code:
# portmaster --packages net-im/signal-desktop

Einige Ports, die sich nicht bauen lassen, sind glücklicherweise als Packages vorhanden.
 
Zuletzt bearbeitet:
Ich nutze unter OpenBSD gurk, ein command line Signal client, der komplett auf Java verzichtet und in Rust programmiert ist. Da es unter OpenBSD sonst keinen funktionierenden Signal Client gibt, war das eine gute Alternative fuer mich. Anhaenge koennen mit file:///foo.png gesendet werden. Empfangene Anhaenge werden unter ~/.local/share/gurk/file gespeichert. Links koennen auch per shortcut im Browser geoeffnet werden. Notifications funktionieren auch.

Diesen gibt es auch als Port unter FreeBSD. Evtl. waere das eine (temporaere) Alternative fuer Dich, bis der native und offizielle Signal-Client wieder bei dir funktioniert? Ich wuerde den dann in Rust selber bauen, da der dann aktueller ist und einige Fehler behoben sind. Das geht ganz einfach und schnell.

screenshot.png



Edit: Ich sehe gerade, dass du einen Workaround gefunden hast der funktioniert. Dann hätte ich mir den Post sparen können. Ich lasse ihn aber stehen, da er evtl. jemand anderem hilfreich sein kann.
 
Zuletzt bearbeitet:
Ich wollte gerade gurk-rs unter FreeBSD (14.0-RELEASE) testen. Läuft leider nicht. Es wird ein QR-Code generiert. Wenn ich den scanne, schmiert das Programm mit der Meldung "Error: failed to provision device: Service error: Unexpected response: HTTP 405" ab. Erwähnen sollte man auch, dass gurk-rs unter OpenBSD nicht als package verfügbar ist.
 
Ich wollte gerade gurk-rs unter FreeBSD (14.0-RELEASE) testen. Läuft leider nicht. Es wird ein QR-Code generiert. Wenn ich den scanne, schmiert das Programm mit der Meldung "Error: failed to provision device: Service error: Unexpected response: HTTP 405" ab. Erwähnen sollte man auch, dass gurk-rs unter OpenBSD nicht als package verfügbar ist.
Kann ich hier auch so bestätigen.
 
Habe jetzt einen halben Tag damit verbracht signal-desktop und electron28 aus den Ports zu bauen, aber jetzt stürzt es direkt nach dem Starten ab :(
Code:
[74483:0418/225846.076778:ERROR:gpu_process_host.cc(994)] GPU process exited unexpectedly: exit_code=139
[74483:0418/225846.076795:FATAL:gpu_data_manager_impl_private.cc(448)] GPU process isn't usable. Goodbye.

Internet behaupted --in-process-gpu würde das fixen. Damit kommen dann die Fehlermeldungen auch nicht mehr. Aber Segfault gibts trotzdem.
 
Unter OpenBSD habe ich das so gebaut:

Code:
$ doas pkg_add git protobuf rust
$ cargo install --git https://github.com/boxdot/gurk-rs gurk
$ cd ~/.cargo/bin
$ ./gurk

Unter FreeBSD habe ich es nicht getestet zu bauen, aber evtl. fehlt devel/protobuf zum Betrieb.

 
Unter FreeBSD habe ich es nicht getestet zu bauen, aber evtl. fehlt devel/protobuf zum Betrieb.

devel/protobuf wird zumindest bei 14 mitinstalliert:

====> Compressing man pages (compress-man)
===> Installing for gurk-rs-0.4.1_1
===> Checking if gurk-rs is already installed
===> Registering installation for gurk-rs-0.4.1_1
Installing gurk-rs-0.4.1_1...

===>>> The following actions were performed:
Installation of devel/jsoncpp (jsoncpp-1.9.5)
Installation of devel/pkgconf (pkgconf-2.0.3_1,1)
Installation of devel/libuv (libuv-1.47.0)
Installation of devel/libtextstyle (libtextstyle-0.22.3)
Installation of devel/gettext-tools (gettext-tools-0.22.3)
Installation of security/rhash (rhash-1.4.4)
Installation of devel/cmake-core (cmake-core-3.27.8)
Installation of devel/protobuf (protobuf-3.21.12,1)
Installation of devel/ninja (ninja-1.11.1,2)
Installation of lang/rust (rust-1.73.0)
Installation of net-im/gurk-rs (gurk-rs-0.4.1_1)

gebaut wurde wie bei @Elwood oben mittels
Code:
portmaster --packages net-im/gurk-rs
 
Ok. Die Version unter FreeBSD ist auch schon ziemlich alt und hat noch einige Bugs. Evtl. baut ihr das direkt mit Rust wie im Post weiter oben beschrieben. Ansonsten habe ich auch keine Idee mehr. :-)
 
Moin,
heute sind neue Ports reingekommen: electron29 und signal-desktop-48.2.
Mal schauen, ob es diesmal wieder durchläuft.
 
Das ist schon ziemlich alt. Nutzt Du noch ein altes FreeBSD? Im quarterly ist 1.74.1 und in latest ist 1.77.0.

Da FreeBSD rustup unterstuetzt, wuerde ich das damit versuchen und installieren.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
 
aargh, kaum macht man mal ein paar Tage kein pkg upgrade... :ugly:
...
py39-wheel: 0.42.0 -> 0.43.0
rhash: 1.4.4 -> 1.4.4_1
ringrtc: 2.34.1 -> 2.37.0_2
rust: 1.73.0 -> 1.77.0
texinfo: 7.1,1 -> 7.1_2,1
xmlcatmgr: 2.2_3 -> 2.2_4
...
 
Probier mal gurk aus dem git Repo; auf einem 14-RELEASE mit aktuellen (hüstel) Packages konnte ich das mit dem cargo Befehl von oben erfolgreich bauen

Code:
cargo install --git https://github.com/boxdot/gurk-rs gurk

Die Version aus den Ports ist etliche Signal-Protokoll-Versionen hinten nach, vermutlich scheitert die deswegen mit dem "Unexpected Response" Error
 
So, jetzt der wirkliche Dirty-Workaround (funktioniert vermutlich nur, wenn man signal-desktop relativ aktuell schon mal installiert hat).

Ich habe mittels pkg lock -> electron28 und electron29 ge'lock't und portmaster wieder benutzt: Somit ist jetzt hier die 7.5 von signal auf dem Desktop.
 
Moin,
so richtig lief die o.g. Lösung nicht, da die alte libsignal-node Version 39?! benutzt wurde.

Also nochmal von vorn: Der Showstopper ist nun libsignal-node.

Folgender Workaround von vermaden funktioniert bei mir (diesmal): --offline bei do-build: entfernen. Weiss nicht, warum das damals nicht geklappt hat, egal!


Danach lässt sich auch signal-desktop bauen - auf 2 Maschinen getestet.
 
Zurück
Oben