From 626fe1946d8da32030876efd6beffbb6892a2133 Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 31 Oct 2023 01:33:42 +0000 Subject: [PATCH] flare-signal: get a better cross-compiled build (via emulation) --- hosts/common/programs/flare-signal.nix | 6 ++++-- overlays/cross.nix | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hosts/common/programs/flare-signal.nix b/hosts/common/programs/flare-signal.nix index b2bb1f02..f39595f1 100644 --- a/hosts/common/programs/flare-signal.nix +++ b/hosts/common/programs/flare-signal.nix @@ -2,13 +2,15 @@ # UI is effectively a clone of Fractal. # compatibility: # - desko: works fine. pairs, and exchanges contact list (but not message history) with the paired device. exchanges future messages fine. -# - moby (cross compiled): nope. it pairs, but can only *receive* messages and never *send* them. +# - moby (cross compiled flare-signal-nixified): nope. it pairs, but can only *receive* messages and never *send* them. # - even `rsync`ing the data and keyrings from desko -> moby, still fails in that same manner. # - console shows error messages. quite possibly an endianness mismatch somewhere +# - moby (partially-emulated flare-signal): works! pairs and can send/receive messages, same as desko. { pkgs, ... }: { sane.programs.flare-signal = { - package = pkgs.flare-signal-nixified; + # package = pkgs.flare-signal-nixified; + package = pkgs.flare-signal; persist.private = [ # everything: conf, state, files, all opaque ".local/share/flare" diff --git a/overlays/cross.nix b/overlays/cross.nix index f30ae613..7ef86955 100644 --- a/overlays/cross.nix +++ b/overlays/cross.nix @@ -562,6 +562,11 @@ in { }; }); + flare-signal = prev.flare-signal.override { + # fixes "cargo:warning=aarch64-unknown-linux-gnu-gcc: error: unrecognized command-line option ‘-m64’" + inherit (emulated) cargo meson rustc rustPlatform stdenv; + }; + flare-signal-nixified = prev.flare-signal-nixified.override { # N.B. blueprint-compiler is in nativeBuildInputs. # the trick here is to force the aarch64 versions to be used during build (via emulation).