From 59c4d804cb53b5f76d98d546582f6d9b7b3c08e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 17 Jul 2026 23:43:14 +0200 Subject: [PATCH 1/2] zfstools: cleanup fetcher and meta --- pkgs/by-name/zf/zfstools/package.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/zf/zfstools/package.nix b/pkgs/by-name/zf/zfstools/package.nix index 4f76b7e1d723..4cd457e14f4d 100644 --- a/pkgs/by-name/zf/zfstools/package.nix +++ b/pkgs/by-name/zf/zfstools/package.nix @@ -13,10 +13,10 @@ stdenv.mkDerivation (finalAttrs: { version = "0.3.6"; src = fetchFromGitHub { - sha256 = "16lvw3xbmxp2pr8nixqn7lf4504zaaxvbbdnjkv4dggwd4lsdjyg"; - rev = "v${finalAttrs.version}"; - repo = "zfstools"; owner = "bdrewery"; + repo = "zfstools"; + tag = "v${finalAttrs.version}"; + hash = "sha256-z8umKWn8vUb2lLattbtSn4BCHD0W92hRvuL2uvrgm5o="; }; buildInputs = [ ruby ]; @@ -36,9 +36,8 @@ stdenv.mkDerivation (finalAttrs: { ''; meta = { - inherit (finalAttrs) version; - inherit (finalAttrs.src.meta) homepage; description = "OpenSolaris-compatible auto-snapshotting script for ZFS"; + homepage = "https://github.com/bdrewery/zfstools"; longDescription = '' zfstools is an OpenSolaris-like and compatible auto snapshotting script for ZFS, which also supports auto snapshotting mysql databases. From 7abf4cd10ee7900fb3258830ab2925207810f285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 17 Jul 2026 23:43:45 +0200 Subject: [PATCH 2/2] zfstools: add gem dependency which is no longer in ruby per default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ➜ zfs-auto-snapshot /nix/store/k5zrvznvg3h4b7spivvflxsb1xxw1i0k-ruby-3.4.9/lib/ruby/3.4.0/did_you_mean/core_ext/name_error.rb:11: warning: getoptlong is not part of the default gems starting from Ruby 3.4.0. Install getoptlong from RubyGems. :139:in 'Kernel#require': cannot load such file -- getoptlong (LoadError) from :139:in 'Kernel#require' from /nix/store/26lkg3mw6f8kgmm026hm9m08x3m5ywbm-zfstools-0.3.6/bin/.zfs-auto-snapshot-wrapped:6:in '
' --- pkgs/by-name/zf/zfstools/Gemfile | 3 +++ pkgs/by-name/zf/zfstools/Gemfile.lock | 14 ++++++++++++++ pkgs/by-name/zf/zfstools/gemset.nix | 12 ++++++++++++ pkgs/by-name/zf/zfstools/package.nix | 10 ++++++++-- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 pkgs/by-name/zf/zfstools/Gemfile create mode 100644 pkgs/by-name/zf/zfstools/Gemfile.lock create mode 100644 pkgs/by-name/zf/zfstools/gemset.nix diff --git a/pkgs/by-name/zf/zfstools/Gemfile b/pkgs/by-name/zf/zfstools/Gemfile new file mode 100644 index 000000000000..324862eead8e --- /dev/null +++ b/pkgs/by-name/zf/zfstools/Gemfile @@ -0,0 +1,3 @@ +source "http://rubygems.org" + +gem "getoptlong" diff --git a/pkgs/by-name/zf/zfstools/Gemfile.lock b/pkgs/by-name/zf/zfstools/Gemfile.lock new file mode 100644 index 000000000000..a878ba5a503b --- /dev/null +++ b/pkgs/by-name/zf/zfstools/Gemfile.lock @@ -0,0 +1,14 @@ +GEM + remote: http://rubygems.org/ + specs: + getoptlong (0.2.1) + +PLATFORMS + ruby + x86_64-linux + +DEPENDENCIES + getoptlong + +BUNDLED WITH + 2.6.9 diff --git a/pkgs/by-name/zf/zfstools/gemset.nix b/pkgs/by-name/zf/zfstools/gemset.nix new file mode 100644 index 000000000000..a208f82b1198 --- /dev/null +++ b/pkgs/by-name/zf/zfstools/gemset.nix @@ -0,0 +1,12 @@ +{ + getoptlong = { + groups = [ "default" ]; + platforms = [ ]; + source = { + remotes = [ "http://rubygems.org" ]; + sha256 = "198vy9dxyzibqdbw9jg8p2ljj9iknkyiqlyl229vz55rjxrz08zx"; + type = "gem"; + }; + version = "0.2.1"; + }; +} diff --git a/pkgs/by-name/zf/zfstools/package.nix b/pkgs/by-name/zf/zfstools/package.nix index 4cd457e14f4d..14e3754c2653 100644 --- a/pkgs/by-name/zf/zfstools/package.nix +++ b/pkgs/by-name/zf/zfstools/package.nix @@ -1,12 +1,18 @@ { lib, + bundlerEnv, stdenv, fetchFromGitHub, - ruby, zfs, freebsd, makeWrapper, }: +let + rubyEnv = bundlerEnv { + name = "zfstools-gems"; + gemdir = ./.; + }; +in stdenv.mkDerivation (finalAttrs: { pname = "zfstools"; @@ -19,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-z8umKWn8vUb2lLattbtSn4BCHD0W92hRvuL2uvrgm5o="; }; - buildInputs = [ ruby ]; + buildInputs = [ rubyEnv.wrappedRuby ]; nativeBuildInputs = [ makeWrapper ]; installPhase = ''