Add threema-desktop beta (wip)

This commit is contained in:
2025-10-28 15:19:07 +01:00
parent d4ae65bb30
commit 8e59f537c3
4 changed files with 105 additions and 7 deletions

6
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1759632233,
"narHash": "sha256-krgZxGAIIIKFJS+UB0l8do3sYUDWJc75M72tepmVMzE=",
"lastModified": 1761594641,
"narHash": "sha256-sImk6SJQASDLQo8l+0zWWaBgg7TueLS6lTvdH5pBZpo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d7f52a7a640bc54c7bb414cca603835bf8dd4b10",
"rev": "1666250dbe4141e4ca8aaf89b40a3a51c2e36144",
"type": "github"
},
"original": {

View File

@@ -4,7 +4,10 @@
};
outputs =
{ self, nixpkgs }:
{
self,
nixpkgs,
}:
let
system = "x86_64-linux"; # Adjust if necessary
pkgs = import nixpkgs {
@@ -14,9 +17,9 @@
in
{
packages.${system} = {
xsdata-pydantic = pkgs.python313Packages.callPackage ./xsdata-pydantic.nix { };
entsoe-apy = pkgs.python313Packages.callPackage ./entsoe-apy.nix {
xsdata-pydantic = self.packages.${system}.xsdata-pydantic;
wasm-bindgen-cli_0_2_101 = pkgs.callPackage ./wasm-bindgen-cli.nix { };
threema-desktop = pkgs.callPackage ./threema-desktop.nix {
wasm-bindgen-cli = self.packages.${system}.wasm-bindgen-cli_0_2_101;
};
};

76
threema-desktop.nix Normal file
View File

@@ -0,0 +1,76 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
rustPlatform,
binaryen,
pkg-config,
openssl,
wasm-bindgen-cli,
protobuf,
lld,
}:
buildNpmPackage rec {
pname = "threema-desktop";
version = "2.0-beta56";
src = fetchFromGitHub {
owner = "threema-ch";
repo = "threema-desktop";
rev = "v${version}";
hash = "sha256-wMIQ7piFPOBp0IleSnDSrZjaqXNBDyeELjx+938pmVk=";
};
forceGitDeps = true;
npmDepsHash = "sha256-9pyBbA+MARxWPZzyvjyKCuofgt+X3DrDCa81S6/S5qg="; # replace after first build
npmFlags = [ "--legacy-peer-deps" ];
makeCacheWritable = true;
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
sourceRoot = "${src.name}/libs/libthreema";
hash = "sha256-SQ33LcCYlJ3W69TmpH1AkOKaREZ0p3KotJPuKZtc6yI=";
};
nativeBuildInputs = [
rustPlatform.bindgenHook
wasm-bindgen-cli
binaryen
pkg-config
protobuf
lld
];
buildInputs = [
openssl
];
postPatch = ''
patchShebangs --build ./tools
patchShebangs --build ./libs/libthreema/tools
sed -i '/"engines":/,/},/d' package.json
'';
buildPhase = ''
runHook preBuild
npm run libthreema:build
npm run package binary consumer-live
runHook postBuild
'';
installPhase = ''
mkdir -p $out/opt/threema-desktop
cp -r build/out/* $out/opt/threema-desktop
'';
meta = with lib; {
description = "Threema App for Desktop (Windows/macOS/Linux)";
longDescription = "A standalone Threema client for the desktop with end-to-end encryption";
homepage = "https://threema.ch/";
license = licenses.agpl3Plus;
maintainers = [ ];
platforms = platforms.linux;
};
}

19
wasm-bindgen-cli.nix Normal file
View File

@@ -0,0 +1,19 @@
{
buildWasmBindgenCli,
fetchCrate,
rustPlatform,
}:
buildWasmBindgenCli rec {
src = fetchCrate {
pname = "wasm-bindgen-cli";
version = "0.2.101";
hash = "sha256-txpbTzlrPSEktyT9kSpw4RXQoiSZHm9t3VxeRn//9JI=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
inherit (src) pname version;
hash = "sha256-J+F9SqTpH3T0MbvlNKVyKnMachgn8UXeoTF0Pk3Xtnc=";
};
}