102 lines
4.5 KiB
Nix
102 lines
4.5 KiB
Nix
|
# Cargo.nix and crate-hashes.json were created with:
|
||
|
# - `nix run '.#crate2nix' -- generate -f ~/ref/repos/schmiddi-on-mobile/flare/Cargo.toml`
|
||
|
# - `sed -i 's/target."curve25519_dalek_backend"/target."curve25519_dalek_backend" or ""/g' Cargo.nix`
|
||
|
#
|
||
|
# the generated Cargo.nix points to an impure source (~/ref/...), but that's resolved by overriding `src` below
|
||
|
{ pkgs
|
||
|
, fetchFromGitLab
|
||
|
, flare-signal
|
||
|
, gdk-pixbuf
|
||
|
, glib
|
||
|
, gtk4
|
||
|
, gtksourceview5
|
||
|
, libadwaita
|
||
|
, pkg-config
|
||
|
}:
|
||
|
let
|
||
|
cargoNix = import ./Cargo.nix {
|
||
|
inherit pkgs;
|
||
|
|
||
|
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
|
||
|
flare = attrs: attrs // {
|
||
|
# inherit (flare-signal) src;
|
||
|
src = fetchFromGitLab {
|
||
|
domain = "gitlab.com";
|
||
|
owner = "schmiddi-on-mobile";
|
||
|
repo = "flare";
|
||
|
# flare/Cargo.nix version compatibility:
|
||
|
# - flare tip (49060eee): same errors as 0.10.1-beta.2
|
||
|
# - flare 0.10.1-beta.2: requires gtk 4.11, not yet in nixpkgs
|
||
|
# - <https://github.com/NixOS/nixpkgs/pull/247766>
|
||
|
# - specifically, that's because of gdk4-sys 0.7.2.
|
||
|
# - after 0.10.1-beta.1, there's a translations update, then immediately "ui(): Port to GTK 4.12 and Libadwaita 1.4"
|
||
|
# so 0.10.1-beta.1 is effectively the last gtk 4.10 compatible version
|
||
|
# - flare 0.10.1-beta.1: uses a variant of serde_derive which doesn't cross compile in nixpkgs
|
||
|
# - after serde_derive downgraded => 1.0.171:
|
||
|
# ```
|
||
|
# > 424 | .send(manager.sync_contacts().await)
|
||
|
# > | ^^^^^^^^^^^^^ private method
|
||
|
# > --> /presage-d6d8fff/presage/src/manager.rs:650:5
|
||
|
# > = note: private method defined here
|
||
|
|
||
|
# ```
|
||
|
# - flare 0.10.0: uses a version of serde_derive which doesn't cross compile in nixpkgs
|
||
|
# - same error as 0.9.0 once serde_derive is downgraded to 1.0.171
|
||
|
# - flare 0.9.3: uses a version of serde_derive which doesn't cross compile in nixpkgs
|
||
|
# - same error as 0.9.0 once serde_derive is downgraded to 1.0.171
|
||
|
# - flare 0.9.2: uses a version of serde_derive which doesn't cross compile in nixpkgs
|
||
|
# - same error as 0.9.0 once serde_derive is downgraded to 1.0.171
|
||
|
# - flare 0.9.1: uses a version of serde_derive (1.0.175) which doesn't cross compile in nixpkgs
|
||
|
# - flare 16acc70ceb6e80eb2d87a92e72e2727e8b98b4db (last rev before serde_derive 1.0.175): same error as 0.9.0
|
||
|
# - flare 0.9.0: deps build but crate itself fails because `mod config` is unknown (i.e. we didn't invoke meson and let it generate config.rs)
|
||
|
# rev = "49060eee61e26b622150179cece4918c1707db6a";
|
||
|
# hash = "sha256-/xP4AC0ZkVsNIFiTxyTsF0sJWIj53OIiXlSLU0LhBRM=";
|
||
|
# rev = "0.10.1-beta.2";
|
||
|
# hash = "sha256-xkTM8Jeyb89ZUo2lFKNm8HlTe8BTlO/flZmENRfDEm4=";
|
||
|
# rev = "0.10.1-beta.1";
|
||
|
# hash = "sha256-nUR3jnbjMJvI3XbguFLz5yQL3SAXzLkdVwXyhcMeZoc=";
|
||
|
rev = "0.10.0";
|
||
|
hash = "sha256-+9zpYW9xjLe78c2GRL6raFDR5g+R/JWxQzU/ZS+5JtY=";
|
||
|
# rev = "0.9.3";
|
||
|
# hash = "sha256-bTR3Jzzy8dVdBJ4Mo2PYstEnNzBVwiWE8hRBnJ7pJSs=";
|
||
|
# rev = "0.9.2";
|
||
|
# hash = "sha256-70OqHCe+NZ0dn1sjpkke5MtXU3bFgpwkm0TYlbXOUl8=";
|
||
|
# rev = "16acc70ceb6e80eb2d87a92e72e2727e8b98b4db";
|
||
|
# hash = "sha256-Lz7h5JUrqBUsvRICW3QacuO8rkeGBY9yroq/Gtb7nMw=";
|
||
|
# rev = "0.9.0";
|
||
|
# hash = "sha256-6p9uuK71fJvJs0U14jJEVb2mfpZWrCZZFE3eoZe9eVo=";
|
||
|
};
|
||
|
};
|
||
|
gdk-pixbuf-sys = attrs: attrs // {
|
||
|
nativeBuildInputs = [ pkg-config ];
|
||
|
buildInputs = [ gdk-pixbuf ];
|
||
|
};
|
||
|
gdk4-x11-sys = attrs: attrs // {
|
||
|
nativeBuildInputs = [ pkg-config ];
|
||
|
buildInputs = [ gtk4 ]; # depends on "gtk4_x11"
|
||
|
};
|
||
|
|
||
|
gdk4-wayland-sys = attrs: attrs // {
|
||
|
nativeBuildInputs = [ pkg-config ];
|
||
|
buildInputs = [ gtk4 ]; # depends on "gtk4_wayland"
|
||
|
};
|
||
|
gio-sys = attrs: attrs // {
|
||
|
nativeBuildInputs = [ pkg-config ];
|
||
|
buildInputs = [ glib ];
|
||
|
};
|
||
|
gobject-sys = attrs: attrs // {
|
||
|
nativeBuildInputs = [ pkg-config ];
|
||
|
buildInputs = [ glib ];
|
||
|
};
|
||
|
libadwaita-sys = attrs: attrs // {
|
||
|
nativeBuildInputs = [ pkg-config ];
|
||
|
buildInputs = [ libadwaita ];
|
||
|
};
|
||
|
sourceview5-sys = attrs: attrs // {
|
||
|
nativeBuildInputs = [ pkg-config ];
|
||
|
buildInputs = [ gtksourceview5 ];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
in cargoNix.workspaceMembers.flare.build
|