From b6fb3450ea193aa81fa57105b92f41f57bec8e06 Mon Sep 17 00:00:00 2001 From: Savyasachee Jha Date: Sat, 13 Sep 2025 12:13:20 +0200 Subject: [PATCH] matrix-continuwuity: 0.5.0-rc.6 -> 0.5.0-rc.7 --- .../ma/matrix-continuwuity/cargolock.patch | 32 ++++++++ .../ma/matrix-continuwuity/package.nix | 82 +++++++++++++++---- 2 files changed, 100 insertions(+), 14 deletions(-) create mode 100644 pkgs/by-name/ma/matrix-continuwuity/cargolock.patch diff --git a/pkgs/by-name/ma/matrix-continuwuity/cargolock.patch b/pkgs/by-name/ma/matrix-continuwuity/cargolock.patch new file mode 100644 index 000000000000..aca29fdf6602 --- /dev/null +++ b/pkgs/by-name/ma/matrix-continuwuity/cargolock.patch @@ -0,0 +1,32 @@ +diff --git a/Cargo.lock b/Cargo.lock +index 5d7192b6..ce9b1302 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -3900,8 +3900,9 @@ dependencies = [ + + [[package]] + name = "resolv-conf" +-version = "0.7.4" +-source = "git+https://forgejo.ellis.link/continuwuation/resolv-conf?rev=56251316cc4127bcbf36e68ce5e2093f4d33e227#56251316cc4127bcbf36e68ce5e2093f4d33e227" ++version = "0.7.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" + + [[package]] + name = "rgb" +diff --git a/Cargo.toml b/Cargo.toml +index c656e183..2942ad07 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -592,9 +592,8 @@ rev = "e4ae7628fe4fcdacef9788c4c8415317a4489941" + + # Allows no-aaaa option in resolv.conf + # Use 1-indexed line numbers when displaying parse error messages +-[patch.crates-io.resolv-conf] +-git = "https://forgejo.ellis.link/continuwuation/resolv-conf" +-rev = "56251316cc4127bcbf36e68ce5e2093f4d33e227" ++[workspace.dependencies.resolv-conf] ++version = "0.7.5" + + # + # Our crates diff --git a/pkgs/by-name/ma/matrix-continuwuity/package.nix b/pkgs/by-name/ma/matrix-continuwuity/package.nix index a02af10a8a25..5af8647fb9d9 100644 --- a/pkgs/by-name/ma/matrix-continuwuity/package.nix +++ b/pkgs/by-name/ma/matrix-continuwuity/package.nix @@ -13,35 +13,86 @@ enableBlurhashing ? true, # upstream continuwuity enables jemalloc by default, so we follow suit enableJemalloc ? true, - rust-jemalloc-sys, + rust-jemalloc-sys-unprefixed, enableLiburing ? stdenv.hostPlatform.isLinux, liburing, nixosTests, }: let - rust-jemalloc-sys' = rust-jemalloc-sys.override { - unprefixed = !stdenv.hostPlatform.isDarwin; - }; - rocksdb' = rocksdb.override { - inherit enableLiburing; - # rocksdb does not support prefixed jemalloc, which is required on darwin - enableJemalloc = enableJemalloc && !stdenv.hostPlatform.isDarwin; - jemalloc = rust-jemalloc-sys'; - }; + rocksdb' = + (rocksdb.override { + inherit enableLiburing; + # rocksdb does not support prefixed jemalloc, which is required on darwin + enableJemalloc = enableJemalloc && !stdenv.hostPlatform.isDarwin; + jemalloc = rust-jemalloc-sys-unprefixed; + }).overrideAttrs + ( + final: old: { + version = "10.4.2"; + src = fetchFromGitea { + domain = "forgejo.ellis.link"; + owner = "continuwuation"; + repo = "rocksdb"; + rev = "10.4.fb"; + hash = "sha256-/Hvy1yTH/0D5aa7bc+/uqFugCQq4InTdwlRw88vA5IY="; + }; + + patches = [ ]; + + cmakeFlags = + lib.subtractLists [ + # no real reason to have snappy or zlib, no one uses this + (lib.cmakeBool "WITH_SNAPPY" true) + (lib.cmakeBool "ZLIB" true) + (lib.cmakeBool "WITH_ZLIB" true) + # we dont need to use ldb or sst_dump (core_tools) + (lib.cmakeBool "WITH_CORE_TOOLS" true) + # we dont need to build rocksdb tests + (lib.cmakeBool "WITH_TESTS" true) + # we use rust-rocksdb via C interface and dont need C++ RTTI + (lib.cmakeBool "USE_RTTI" true) + # this doesn't exist in RocksDB + (lib.cmakeBool "FORCE_SSE43" true) + ] old.cmakeFlags + ++ [ + # no real reason to have snappy, no one uses this + (lib.cmakeBool "WITH_SNAPPY" false) + (lib.cmakeBool "ZLIB" false) + (lib.cmakeBool "WITH_ZLIB" false) + # we dont need to use ldb or sst_dump (core_tools) + (lib.cmakeBool "WITH_CORE_TOOLS" false) + # we dont need to build rocksdb tests + (lib.cmakeBool "WITH_TESTS" false) + # we use rust-rocksdb via C interface and dont need C++ RTTI + (lib.cmakeBool "USE_RTTI" false) + (lib.cmakeBool "WITH_TRACE_TOOLS" false) + ]; + outputs = [ "out" ]; + + # We aren't building tools, the original package uses this to make sure rocksdb + # tools work as expected. Hence we override this and make it empty. + preInstall = ""; + } + ); in rustPlatform.buildRustPackage (finalAttrs: { pname = "matrix-continuwuity"; - version = "0.5.0-rc.6"; + version = "0.5.0-rc.7"; + # Switch back to fetchFromGitea once archive download errors are fixed src = fetchFromGitea { domain = "forgejo.ellis.link"; owner = "continuwuation"; repo = "continuwuity"; tag = "v${finalAttrs.version}"; - hash = "sha256-xK/jTURQzFJ1FkF1E9cItTxXAgXgTwAiA9/8aE51FvU="; + hash = "sha256-u1k1r95qBoEizeILR5rrM5lDFz2a2NjUwM9TTi0HNjw="; }; - cargoHash = "sha256-+7k1dtrXdonFDXa2Z/qVo4n1hZRmMWEQKKlffki8+/k="; + # Patch to fix linking issue caused by resolv-conf which needs to be incorporated + # into continuwuity upstream. + cargoPatches = [ ./cargolock.patch ]; + + cargoHash = "sha256-1ECD8RZ918TM1IX3jkTDNhCR5Zye0a3ii0zeIPy8jlI="; nativeBuildInputs = [ pkg-config @@ -52,7 +103,9 @@ rustPlatform.buildRustPackage (finalAttrs: { bzip2 zstd ] - ++ lib.optional enableJemalloc rust-jemalloc-sys' + ++ lib.optional enableJemalloc [ + rust-jemalloc-sys-unprefixed + ] ++ lib.optional enableLiburing liburing; env = { @@ -76,6 +129,7 @@ rustPlatform.buildRustPackage (finalAttrs: { "systemd" "url_preview" "zstd_compression" + "bindgen-runtime" ] ++ lib.optional enableBlurhashing "blurhashing" ++ lib.optional enableJemalloc [