From b53377300ee3b4a3aee482fb740722c7a1170a99 Mon Sep 17 00:00:00 2001 From: Bad3r <25513724+Bad3r@users.noreply.github.com> Date: Sat, 28 Feb 2026 14:36:05 +0300 Subject: [PATCH 1/4] dwarfs: 0.12.4 -> 0.14.0 https://github.com/mhx/dwarfs/releases/tag/v0.14.0 --- pkgs/by-name/dw/dwarfs/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dw/dwarfs/package.nix b/pkgs/by-name/dw/dwarfs/package.nix index c0d7424775f1..18fd1fca30f4 100644 --- a/pkgs/by-name/dw/dwarfs/package.nix +++ b/pkgs/by-name/dw/dwarfs/package.nix @@ -34,14 +34,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "dwarfs"; - version = "0.12.4"; + version = "0.14.0"; src = fetchFromGitHub { owner = "mhx"; repo = "dwarfs"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-EYNnmv0QKdWddIRFRsuwsazHep3nrJ8lInlR4S67rME="; + hash = "sha256-4Ec1AqumTSPZpPEi528OaO3bOU1Soc8ZHuuKXIDvCUA="; }; cmakeFlags = [ From 5aa26611e773b360c02c0711504ebddef2b16ec2 Mon Sep 17 00:00:00 2001 From: Bad3r <25513724+Bad3r@users.noreply.github.com> Date: Sat, 28 Feb 2026 14:36:40 +0300 Subject: [PATCH 2/4] dwarfs: drop date input and align license metadata v0.14.0 source files now use GPL-3.0-or-later SPDX, and the v0.14.0 release notes mention dropping the hard dependency on the date library.\n\nhttps://github.com/mhx/dwarfs/releases/tag/v0.13.0\nhttps://github.com/mhx/dwarfs/releases/tag/v0.14.0 --- pkgs/by-name/dw/dwarfs/package.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/by-name/dw/dwarfs/package.nix b/pkgs/by-name/dw/dwarfs/package.nix index 18fd1fca30f4..22af1db71825 100644 --- a/pkgs/by-name/dw/dwarfs/package.nix +++ b/pkgs/by-name/dw/dwarfs/package.nix @@ -12,7 +12,6 @@ flac, glog, gtest, - howard-hinnant-date, jemalloc, libarchive, libevent, @@ -57,7 +56,6 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ bison cmake - howard-hinnant-date # uses only the header-only parts pkg-config range-v3 # header-only library ronn @@ -118,7 +116,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Fast high compression read-only file system"; homepage = "https://github.com/mhx/dwarfs"; changelog = "https://github.com/mhx/dwarfs/blob/v${finalAttrs.version}/CHANGES.md"; - license = lib.licenses.gpl3Only; + license = lib.licenses.gpl3Plus; maintainers = [ lib.maintainers.luftmensch-luftmensch ]; platforms = lib.platforms.linux; }; From 7c7666010b7fbffd8aa58e876d933b5211015083 Mon Sep 17 00:00:00 2001 From: Bad3r <25513724+Bad3r@users.noreply.github.com> Date: Sat, 28 Feb 2026 14:51:12 +0300 Subject: [PATCH 3/4] dwarfs: skip fuse and xattr tests in sandbox dwarfs 0.14.0 introduces additional tests that require a FUSE device/fusermount3 and xattr support not available in Nix sandbox builds. Exclude those cases through GTEST_FILTER, consistent with existing sandbox-specific test filtering in this derivation. --- pkgs/by-name/dw/dwarfs/package.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/by-name/dw/dwarfs/package.nix b/pkgs/by-name/dw/dwarfs/package.nix index 22af1db71825..c583315c7b77 100644 --- a/pkgs/by-name/dw/dwarfs/package.nix +++ b/pkgs/by-name/dw/dwarfs/package.nix @@ -104,6 +104,15 @@ stdenv.mkDerivation (finalAttrs: { "dwarfs/tools_test.end_to_end/*" "dwarfs/tools_test.mutating_and_error_ops/*" "dwarfs/tools_test.categorize/*" + # Requires a working FUSE device and fusermount3, unavailable in sandbox. + "dwarfs/tools_test.timestamps_fuse*" + "dwarfs/tools_test.dwarfs_automount*" + "dwarfs/tools_test.dwarfs_fsname_and_subtype*" + "dwarfs/sparse_files_test.random_large_files*" + "dwarfs/sparse_files_test.random_small_files_fuse*" + "dwarfs/sparse_files_test.huge_holes_fuse*" + # Requires xattr support unavailable in sandbox. + "dwarfs/xattr_test.portable_xattr" ]; in "-${lib.concatStringsSep ":" disabledTests}"; From f64a4875acf86e74e4e4efdd2ecc5f41147be14e Mon Sep 17 00:00:00 2001 From: Bad3r <25513724+Bad3r@users.noreply.github.com> Date: Sat, 28 Feb 2026 16:15:04 +0300 Subject: [PATCH 4/4] dwarfs: fix 0.14.0 sandbox test and mount helper handling Update the new 0.14.0 GTest exclusions to match actual test names in sandbox runs, keep sbin behavior stable for mount helper links, and force relative CMAKE_INSTALL_SBINDIR so upstream create_link logic does not create nested nix/store paths.\n\nThis preserves passing checks in sandbox and keeps mount.dwarfs valid. --- pkgs/by-name/dw/dwarfs/package.nix | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/dw/dwarfs/package.nix b/pkgs/by-name/dw/dwarfs/package.nix index c583315c7b77..657b1f05b435 100644 --- a/pkgs/by-name/dw/dwarfs/package.nix +++ b/pkgs/by-name/dw/dwarfs/package.nix @@ -49,6 +49,10 @@ stdenv.mkDerivation (finalAttrs: { # Needs to be set so `dwarfs` does not try to download `gtest`; it is not # a submodule, see: https://github.com/mhx/dwarfs/issues/188#issuecomment-1907657083 "-DPREFER_SYSTEM_GTEST=ON" + # Upstream composes DESTDIR + CMAKE_INSTALL_PREFIX + CMAKE_INSTALL_SBINDIR + # in a create_link() install script. Keep SBINDIR relative to avoid + # nested nix/store path creation in the output. + "-DCMAKE_INSTALL_SBINDIR=sbin" "-DWITH_LEGACY_FUSE=ON" "-DWITH_TESTS=ON" ]; @@ -105,14 +109,14 @@ stdenv.mkDerivation (finalAttrs: { "dwarfs/tools_test.mutating_and_error_ops/*" "dwarfs/tools_test.categorize/*" # Requires a working FUSE device and fusermount3, unavailable in sandbox. - "dwarfs/tools_test.timestamps_fuse*" - "dwarfs/tools_test.dwarfs_automount*" - "dwarfs/tools_test.dwarfs_fsname_and_subtype*" - "dwarfs/sparse_files_test.random_large_files*" - "dwarfs/sparse_files_test.random_small_files_fuse*" - "dwarfs/sparse_files_test.huge_holes_fuse*" + "tools_test.timestamps_fuse*" + "tools_test.dwarfs_automount*" + "tools_test.dwarfs_fsname_and_subtype*" + "sparse_files_test.random_large_files*" + "sparse_files_test.random_small_files_fuse*" + "sparse_files_test.huge_holes_fuse*" # Requires xattr support unavailable in sandbox. - "dwarfs/xattr_test.portable_xattr" + "xattr_test.portable_xattr" ]; in "-${lib.concatStringsSep ":" disabledTests}"; @@ -120,6 +124,7 @@ stdenv.mkDerivation (finalAttrs: { doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; versionCheckProgram = "${placeholder "out"}/bin/dwarfs"; + dontMoveSbin = true; meta = { description = "Fast high compression read-only file system";