Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a480add63 | |||
|
0c0a341f1e |
|||
|
f74ca52f4f |
4 changed files with 280 additions and 126 deletions
|
|
@ -311,58 +311,3 @@ jobs:
|
||||||
"$API/repos/$REPO/releases/$release_id"
|
"$API/repos/$REPO/releases/$release_id"
|
||||||
done < "$DELETE_RELEASES"
|
done < "$DELETE_RELEASES"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
- name: Update root flake release hash
|
|
||||||
env:
|
|
||||||
TAG: ${{ steps.version.outputs.tag }}
|
|
||||||
run: |
|
|
||||||
nix develop .#electron --command bash <<'EOF'
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
DEB="$(find releases -maxdepth 1 -type f -name 'Tensamin-*-linux-amd64.deb' -print -quit)"
|
|
||||||
test -n "$DEB"
|
|
||||||
|
|
||||||
HASH="$(node -e 'const fs = require("fs"); const crypto = require("crypto"); const file = process.argv[1]; console.log("sha256-" + crypto.createHash("sha256").update(fs.readFileSync(file)).digest("base64"));' "$DEB")"
|
|
||||||
export HASH
|
|
||||||
|
|
||||||
node -e '
|
|
||||||
const fs = require("fs");
|
|
||||||
const version = process.env.TAG;
|
|
||||||
const hash = process.env.HASH;
|
|
||||||
let content = fs.readFileSync("flake.nix", "utf8");
|
|
||||||
content = content.replace(/version = "[^"]+";/, `version = "${version}";`);
|
|
||||||
content = content.replace(/x86_64DebHash = "sha256-[^"]+";/, `x86_64DebHash = "${hash}";`);
|
|
||||||
fs.writeFileSync("flake.nix", content);
|
|
||||||
'
|
|
||||||
|
|
||||||
if git diff --quiet -- flake.nix; then
|
|
||||||
echo "flake.nix already has the current release hash on main."
|
|
||||||
else
|
|
||||||
git add flake.nix
|
|
||||||
git -c user.name="forgejo-actions" -c user.email="forgejo-actions@localhost" commit -m "(qol): update release flake hash"
|
|
||||||
git push
|
|
||||||
fi
|
|
||||||
|
|
||||||
git fetch origin dev
|
|
||||||
git worktree add ../dev-flake-update origin/dev
|
|
||||||
cd ../dev-flake-update
|
|
||||||
|
|
||||||
node -e '
|
|
||||||
const fs = require("fs");
|
|
||||||
const version = process.env.TAG;
|
|
||||||
const hash = process.env.HASH;
|
|
||||||
let content = fs.readFileSync("flake.nix", "utf8");
|
|
||||||
content = content.replace(/version = "[^"]+";/, `version = "${version}";`);
|
|
||||||
content = content.replace(/x86_64DebHash = "sha256-[^"]+";/, `x86_64DebHash = "${hash}";`);
|
|
||||||
fs.writeFileSync("flake.nix", content);
|
|
||||||
'
|
|
||||||
|
|
||||||
if git diff --quiet -- flake.nix; then
|
|
||||||
echo "flake.nix already has the current release hash on dev."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
git add flake.nix
|
|
||||||
git -c user.name="forgejo-actions" -c user.email="forgejo-actions@localhost" commit -m "(qol): update release flake hash"
|
|
||||||
git push origin HEAD:dev
|
|
||||||
EOF
|
|
||||||
|
|
|
||||||
182
apps/tauri/src-tauri/Cargo.lock
generated
182
apps/tauri/src-tauri/Cargo.lock
generated
|
|
@ -560,6 +560,17 @@ dependencies = [
|
||||||
"uuid",
|
"uuid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfb"
|
||||||
|
version = "0.14.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3"
|
||||||
|
dependencies = [
|
||||||
|
"fnv",
|
||||||
|
"uuid",
|
||||||
|
"web-time",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-expr"
|
name = "cfg-expr"
|
||||||
version = "0.15.8"
|
version = "0.15.8"
|
||||||
|
|
@ -826,7 +837,20 @@ version = "0.36.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2"
|
checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cssparser-macros",
|
"cssparser-macros 0.6.1",
|
||||||
|
"dtoa-short",
|
||||||
|
"itoa",
|
||||||
|
"phf",
|
||||||
|
"smallvec",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cssparser"
|
||||||
|
version = "0.37.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98"
|
||||||
|
dependencies = [
|
||||||
|
"cssparser-macros 0.7.0",
|
||||||
"dtoa-short",
|
"dtoa-short",
|
||||||
"itoa",
|
"itoa",
|
||||||
"phf",
|
"phf",
|
||||||
|
|
@ -843,6 +867,16 @@ dependencies = [
|
||||||
"syn 2.0.119",
|
"syn 2.0.119",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cssparser-macros"
|
||||||
|
version = "0.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "10a2a99df6e410a8ff4245aa2006499ea662245f967cc7c0a38c83ef8eb44dbf"
|
||||||
|
dependencies = [
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.119",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ctor"
|
name = "ctor"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
|
|
@ -1127,11 +1161,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89"
|
checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bit-set",
|
"bit-set",
|
||||||
"cssparser",
|
"cssparser 0.36.0",
|
||||||
"foldhash",
|
"foldhash",
|
||||||
"html5ever",
|
"html5ever 0.38.0",
|
||||||
"precomputed-hash",
|
"precomputed-hash",
|
||||||
"selectors",
|
"selectors 0.36.1",
|
||||||
|
"tendril",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dom_query"
|
||||||
|
version = "0.28.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fac5fca71e65e94cc718a6e2af65d6e0f9c6027751c2aa562fbb5087fda639bc"
|
||||||
|
dependencies = [
|
||||||
|
"bit-set",
|
||||||
|
"cssparser 0.37.0",
|
||||||
|
"foldhash",
|
||||||
|
"html5ever 0.39.0",
|
||||||
|
"precomputed-hash",
|
||||||
|
"selectors 0.38.0",
|
||||||
"tendril",
|
"tendril",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1982,7 +2031,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2"
|
checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"markup5ever",
|
"markup5ever 0.38.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "html5ever"
|
||||||
|
version = "0.39.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"markup5ever 0.39.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -2278,7 +2337,16 @@ version = "0.19.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7"
|
checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfb",
|
"cfb 0.7.3",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "infer"
|
||||||
|
version = "0.22.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f4200d433cbd5178df7797c9c2e75b348b728e39631cf14520d1e2fc424201f4"
|
||||||
|
dependencies = [
|
||||||
|
"cfb 0.14.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -2641,6 +2709,17 @@ dependencies = [
|
||||||
"web_atoms",
|
"web_atoms",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "markup5ever"
|
||||||
|
version = "0.39.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"tendril",
|
||||||
|
"web_atoms",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.8.3"
|
version = "2.8.3"
|
||||||
|
|
@ -4200,7 +4279,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c"
|
checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.13.1",
|
"bitflags 2.13.1",
|
||||||
"cssparser",
|
"cssparser 0.36.0",
|
||||||
|
"derive_more",
|
||||||
|
"log",
|
||||||
|
"new_debug_unreachable",
|
||||||
|
"phf",
|
||||||
|
"phf_codegen",
|
||||||
|
"precomputed-hash",
|
||||||
|
"rustc-hash",
|
||||||
|
"servo_arc",
|
||||||
|
"smallvec",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "selectors"
|
||||||
|
version = "0.38.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags 2.13.1",
|
||||||
|
"cssparser 0.37.0",
|
||||||
"derive_more",
|
"derive_more",
|
||||||
"log",
|
"log",
|
||||||
"new_debug_unreachable",
|
"new_debug_unreachable",
|
||||||
|
|
@ -4798,7 +4896,7 @@ dependencies = [
|
||||||
"serde_repr",
|
"serde_repr",
|
||||||
"serialize-to-javascript",
|
"serialize-to-javascript",
|
||||||
"swift-rs",
|
"swift-rs",
|
||||||
"tauri-build",
|
"tauri-build 2.6.3 (git+https://github.com/tauri-apps/tauri?rev=4af26a3f7f8b692d62cca549bbacd93f5ce90b41)",
|
||||||
"tauri-macros",
|
"tauri-macros",
|
||||||
"tauri-runtime",
|
"tauri-runtime",
|
||||||
"tauri-runtime-wry",
|
"tauri-runtime-wry",
|
||||||
|
|
@ -4833,6 +4931,26 @@ dependencies = [
|
||||||
"walkdir",
|
"walkdir",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tauri-build"
|
||||||
|
version = "2.6.3"
|
||||||
|
source = "git+https://github.com/tauri-apps/tauri?rev=dd6befda925845fc74ca595d6d42de6c49580dd8#dd6befda925845fc74ca595d6d42de6c49580dd8"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"cargo_toml",
|
||||||
|
"dirs",
|
||||||
|
"glob",
|
||||||
|
"heck 0.5.0",
|
||||||
|
"json-patch 4.2.0",
|
||||||
|
"schemars 0.8.22",
|
||||||
|
"semver",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"tauri-utils 2.9.3 (git+https://github.com/tauri-apps/tauri?rev=dd6befda925845fc74ca595d6d42de6c49580dd8)",
|
||||||
|
"tauri-winres",
|
||||||
|
"walkdir",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-codegen"
|
name = "tauri-codegen"
|
||||||
version = "2.6.3"
|
version = "2.6.3"
|
||||||
|
|
@ -5027,11 +5145,11 @@ dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"cargo_metadata",
|
"cargo_metadata",
|
||||||
"ctor 0.8.0",
|
"ctor 0.8.0",
|
||||||
"dom_query",
|
"dom_query 0.27.0",
|
||||||
"dunce",
|
"dunce",
|
||||||
"glob",
|
"glob",
|
||||||
"http",
|
"http",
|
||||||
"infer",
|
"infer 0.19.0",
|
||||||
"json-patch 3.0.1",
|
"json-patch 3.0.1",
|
||||||
"log",
|
"log",
|
||||||
"memchr",
|
"memchr",
|
||||||
|
|
@ -5063,11 +5181,11 @@ dependencies = [
|
||||||
"brotli",
|
"brotli",
|
||||||
"cargo_metadata",
|
"cargo_metadata",
|
||||||
"ctor 1.0.12",
|
"ctor 1.0.12",
|
||||||
"dom_query",
|
"dom_query 0.27.0",
|
||||||
"dunce",
|
"dunce",
|
||||||
"glob",
|
"glob",
|
||||||
"http",
|
"http",
|
||||||
"infer",
|
"infer 0.19.0",
|
||||||
"json-patch 4.2.0",
|
"json-patch 4.2.0",
|
||||||
"log",
|
"log",
|
||||||
"memchr",
|
"memchr",
|
||||||
|
|
@ -5091,6 +5209,42 @@ dependencies = [
|
||||||
"walkdir",
|
"walkdir",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tauri-utils"
|
||||||
|
version = "2.9.3"
|
||||||
|
source = "git+https://github.com/tauri-apps/tauri?rev=dd6befda925845fc74ca595d6d42de6c49580dd8#dd6befda925845fc74ca595d6d42de6c49580dd8"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"cargo_metadata",
|
||||||
|
"ctor 1.0.12",
|
||||||
|
"dom_query 0.28.0",
|
||||||
|
"dunce",
|
||||||
|
"glob",
|
||||||
|
"http",
|
||||||
|
"infer 0.22.0",
|
||||||
|
"json-patch 4.2.0",
|
||||||
|
"log",
|
||||||
|
"memchr",
|
||||||
|
"phf",
|
||||||
|
"plist",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"regex",
|
||||||
|
"schemars 0.8.22",
|
||||||
|
"semver",
|
||||||
|
"serde",
|
||||||
|
"serde-untagged",
|
||||||
|
"serde_json",
|
||||||
|
"serde_with",
|
||||||
|
"swift-rs",
|
||||||
|
"thiserror 2.0.19",
|
||||||
|
"toml 1.1.4+spec-1.1.0",
|
||||||
|
"url",
|
||||||
|
"urlpattern 0.6.0",
|
||||||
|
"uuid",
|
||||||
|
"walkdir",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tauri-winres"
|
name = "tauri-winres"
|
||||||
version = "0.3.6"
|
version = "0.3.6"
|
||||||
|
|
@ -5146,7 +5300,7 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"tauri",
|
"tauri",
|
||||||
"tauri-build",
|
"tauri-build 2.6.3 (git+https://github.com/tauri-apps/tauri?rev=dd6befda925845fc74ca595d6d42de6c49580dd8)",
|
||||||
"tauri-plugin-deep-link",
|
"tauri-plugin-deep-link",
|
||||||
"tauri-plugin-log",
|
"tauri-plugin-log",
|
||||||
"tauri-plugin-notification",
|
"tauri-plugin-notification",
|
||||||
|
|
@ -6330,7 +6484,7 @@ dependencies = [
|
||||||
"cookie",
|
"cookie",
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
"dirs",
|
"dirs",
|
||||||
"dom_query",
|
"dom_query 0.27.0",
|
||||||
"dpi",
|
"dpi",
|
||||||
"dunce",
|
"dunce",
|
||||||
"gdkx11",
|
"gdkx11",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ name = "mobile_lib"
|
||||||
crate-type = ["staticlib", "cdylib", "rlib"]
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
tauri-build = { git = "https://github.com/tauri-apps/tauri", rev = "4af26a3f7f8b692d62cca549bbacd93f5ce90b41", features = [] }
|
tauri-build = { git = "https://github.com/tauri-apps/tauri", rev = "dd6befda925845fc74ca595d6d42de6c49580dd8", features = [] }
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
tauri-plugin-opener = "2"
|
tauri-plugin-opener = "2"
|
||||||
|
|
|
||||||
181
flake.nix
181
flake.nix
|
|
@ -17,8 +17,6 @@
|
||||||
systems = [ "x86_64-linux" ];
|
systems = [ "x86_64-linux" ];
|
||||||
forAllSystems = nixpkgs.lib.genAttrs systems;
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
version = "0.0.11";
|
version = "0.0.11";
|
||||||
x86_64DebHash = "sha256-iMEgdjY8Ghlx6K/YzKC5JAZbeHNJDIFHm8MKmM4efaI=";
|
|
||||||
forgejoBaseUrl = "https://git.methanium.net/tensamin/client/releases/download/${version}";
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
packages = forAllSystems (
|
packages = forAllSystems (
|
||||||
|
|
@ -32,8 +30,6 @@
|
||||||
android_sdk.accept_license = true;
|
android_sdk.accept_license = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
debArtifact = "Tensamin-${version}-linux-amd64.deb";
|
|
||||||
|
|
||||||
electronRuntimeLibs = with pkgs; [
|
electronRuntimeLibs = with pkgs; [
|
||||||
alsa-lib
|
alsa-lib
|
||||||
at-spi2-atk
|
at-spi2-atk
|
||||||
|
|
@ -75,71 +71,130 @@
|
||||||
libXtst
|
libXtst
|
||||||
libxcb
|
libxcb
|
||||||
];
|
];
|
||||||
packageDeb =
|
electron = pkgs.electron;
|
||||||
src:
|
pnpm = pkgs.pnpm;
|
||||||
pkgs.stdenv.mkDerivation {
|
mtpTypeMaps = pkgs.fetchgit {
|
||||||
pname = "tensamin";
|
url = "https://git.methanium.net/tensamin/mtp-type-maps";
|
||||||
inherit version src;
|
rev = "6e5122fe44f793c0e0d3229b3d34145ce17c2d31";
|
||||||
|
hash = "sha256-/4n8F0YLJaLncefKL907P5l+en1CTjpgdFmLBF3gbiQ=";
|
||||||
nativeBuildInputs = with pkgs; [
|
};
|
||||||
autoPatchelfHook
|
mtpSource = pkgs.fetchzip {
|
||||||
dpkg
|
url = "https://git.methanium.net/methanium/mtp/releases/download/0.3.0-dev-c7c7afe/mtp-0.3.0.tgz";
|
||||||
makeWrapper
|
hash = "sha256-XLTa8DxP93Q4hBHRCLUzCPOqkbdb4V3aZxE5Iuq+kW0=";
|
||||||
];
|
};
|
||||||
buildInputs = electronRuntimeLibs;
|
mtpCargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
||||||
|
src = mtpSource;
|
||||||
dontConfigure = true;
|
hash = "sha256-8MZ65N/EtWPAggal0JkGDx3WSn+LxWQORinkqVbsrys=";
|
||||||
dontBuild = true;
|
};
|
||||||
|
wasmBindgenCliSource = pkgs.fetchCrate {
|
||||||
unpackPhase = ''
|
pname = "wasm-bindgen-cli";
|
||||||
runHook preUnpack
|
version = "0.2.127";
|
||||||
dpkg-deb -x "$src" .
|
hash = "sha256-di+qBAdd7pENLiIB9CoZoab+W5xeDoByMREcCGTSzWo=";
|
||||||
runHook postUnpack
|
};
|
||||||
'';
|
wasmBindgenCli = pkgs.buildWasmBindgenCli {
|
||||||
|
src = wasmBindgenCliSource;
|
||||||
installPhase = ''
|
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
||||||
runHook preInstall
|
src = wasmBindgenCliSource;
|
||||||
|
hash = "sha256-FTv2GZIAQs0ePdIZXIXil7JbZ6kIT05VG6vqC1qNFxQ=";
|
||||||
mkdir -p "$out"
|
|
||||||
cp -r opt "$out/"
|
|
||||||
cp -r usr/* "$out/"
|
|
||||||
|
|
||||||
mkdir -p "$out/bin"
|
|
||||||
makeWrapper "$out/opt/Tensamin/tensamin" "$out/bin/tensamin" \
|
|
||||||
--prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath electronRuntimeLibs}"
|
|
||||||
|
|
||||||
substituteInPlace "$out/share/applications/Tensamin.desktop" \
|
|
||||||
--replace-fail "Exec=/opt/Tensamin/tensamin" "Exec=tensamin"
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
defaultPackage = packageDeb (
|
};
|
||||||
pkgs.fetchurl {
|
desktopItem = pkgs.makeDesktopItem {
|
||||||
url = "${forgejoBaseUrl}/${debArtifact}";
|
name = "tensamin";
|
||||||
hash = x86_64DebHash;
|
desktopName = "Tensamin";
|
||||||
}
|
exec = "tensamin";
|
||||||
);
|
icon = "tensamin";
|
||||||
localDebPath = builtins.getEnv "TENSAMIN_DEB";
|
startupWMClass = "Tensamin";
|
||||||
localPathPackage =
|
categories = [ "Network" ];
|
||||||
if localDebPath == "" then
|
};
|
||||||
pkgs.writeShellScriptBin "tensamin" ''
|
defaultPackage = pkgs.stdenv.mkDerivation (finalAttrs: {
|
||||||
echo "Set TENSAMIN_DEB to a local .deb path and run with --impure." >&2
|
pname = "tensamin";
|
||||||
exit 1
|
inherit version;
|
||||||
''
|
src = self;
|
||||||
else
|
|
||||||
packageDeb (
|
pnpmDeps = pkgs.fetchPnpmDeps {
|
||||||
builtins.path {
|
inherit (finalAttrs) pname version src;
|
||||||
path = localDebPath;
|
inherit pnpm;
|
||||||
name = debArtifact;
|
fetcherVersion = 4;
|
||||||
}
|
hash = "sha256-imP3MTr1YLc28Z9n617m0Wt/6vPirFznzoriKzojlEg=";
|
||||||
);
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
copyDesktopItems
|
||||||
|
makeWrapper
|
||||||
|
nodejs_22
|
||||||
|
pnpm
|
||||||
|
pnpmConfigHook
|
||||||
|
cargo
|
||||||
|
lld
|
||||||
|
rustc
|
||||||
|
wasm-pack
|
||||||
|
wasmBindgenCli
|
||||||
|
binaryen
|
||||||
|
];
|
||||||
|
|
||||||
|
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
rm -rf mtp-type-maps
|
||||||
|
ln -s ${mtpTypeMaps} mtp-type-maps
|
||||||
|
|
||||||
|
node -e '
|
||||||
|
const fs = require("fs");
|
||||||
|
const path = "apps/electron/package.json";
|
||||||
|
const pkg = JSON.parse(fs.readFileSync(path, "utf8"));
|
||||||
|
pkg.version = "${version}";
|
||||||
|
fs.writeFileSync(path, JSON.stringify(pkg, null, 2) + "\n");
|
||||||
|
'
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
mkdir -p "$HOME/.cargo"
|
||||||
|
substitute ${mtpCargoDeps}/.cargo/config.toml "$HOME/.cargo/config.toml" \
|
||||||
|
--replace-fail @vendor@ ${mtpCargoDeps}
|
||||||
|
|
||||||
|
pnpm run copy-licenses
|
||||||
|
pnpm run build:packages
|
||||||
|
pnpm run build:web
|
||||||
|
pnpm --dir apps/tauri run gen-icons
|
||||||
|
pnpm --dir apps/electron run build
|
||||||
|
pnpm --dir apps/electron exec electron-builder --dir --linux --publish never \
|
||||||
|
--config.electronDist=${electron.dist} \
|
||||||
|
--config.electronVersion=${electron.version}
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p "$out/lib/tensamin" "$out/bin"
|
||||||
|
cp -r apps/electron/release/linux-unpacked/. "$out/lib/tensamin/"
|
||||||
|
|
||||||
|
makeWrapper "$out/lib/tensamin/tensamin" "$out/bin/tensamin" \
|
||||||
|
--prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath electronRuntimeLibs}"
|
||||||
|
|
||||||
|
install -Dm644 apps/electron/build/icons/icon.png \
|
||||||
|
"$out/share/icons/hicolor/512x512/apps/tensamin.png"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
desktopItems = [ desktopItem ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Tensamin desktop client";
|
||||||
|
homepage = "https://git.methanium.net/tensamin/client";
|
||||||
|
mainProgram = "tensamin";
|
||||||
|
platforms = pkgs.lib.platforms.linux;
|
||||||
|
};
|
||||||
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
default = defaultPackage;
|
default = defaultPackage;
|
||||||
tensamin = defaultPackage;
|
tensamin = defaultPackage;
|
||||||
electron = defaultPackage;
|
electron = defaultPackage;
|
||||||
localPathForDev = localPathPackage;
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue