From ea80fbe7c3d3d235dfbedef24ab4bd1c7b55b941 Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Sun, 24 Mar 2024 16:44:44 +0100 Subject: [PATCH] facter: 3.14.17 -> 4.6.1 https://github.com/puppetlabs/facter/compare/3.14.17...4.6.1 --- pkgs/tools/system/facter/Gemfile | 5 ++ pkgs/tools/system/facter/Gemfile.lock | 17 ++++++ pkgs/tools/system/facter/default.nix | 87 ++++++++++++++++++--------- pkgs/tools/system/facter/gemset.nix | 33 ++++++++++ 4 files changed, 112 insertions(+), 30 deletions(-) create mode 100644 pkgs/tools/system/facter/Gemfile create mode 100644 pkgs/tools/system/facter/Gemfile.lock create mode 100644 pkgs/tools/system/facter/gemset.nix diff --git a/pkgs/tools/system/facter/Gemfile b/pkgs/tools/system/facter/Gemfile new file mode 100644 index 000000000000..eff7af10b5d6 --- /dev/null +++ b/pkgs/tools/system/facter/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "facter" diff --git a/pkgs/tools/system/facter/Gemfile.lock b/pkgs/tools/system/facter/Gemfile.lock new file mode 100644 index 000000000000..d980285ae0f3 --- /dev/null +++ b/pkgs/tools/system/facter/Gemfile.lock @@ -0,0 +1,17 @@ +GEM + remote: https://rubygems.org/ + specs: + facter (4.6.1) + hocon (~> 1.3) + thor (>= 1.0.1, < 2.0) + hocon (1.4.0) + thor (1.3.1) + +PLATFORMS + ruby + +DEPENDENCIES + facter + +BUNDLED WITH + 2.5.6 diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix index 02c48d302ac3..38d037c53efb 100644 --- a/pkgs/tools/system/facter/default.nix +++ b/pkgs/tools/system/facter/default.nix @@ -1,39 +1,66 @@ -{ lib, stdenv, fetchFromGitHub, boost, cmake, cpp-hocon, curl, leatherman, libwhereami, yaml-cpp, openssl, ruby, util-linux }: +{ + bundlerApp, + bundlerUpdateScript, + coreutils, + facter, + gnugrep, + iproute2, + lib, + makeWrapper, + nettools, + pciutils, + procps, + stdenv, + testers, + util-linux, + virt-what, + zfs, +}: -stdenv.mkDerivation rec { +bundlerApp { pname = "facter"; - version = "3.14.17"; + gemdir = ./.; + exes = [ "facter" ]; - src = fetchFromGitHub { - sha256 = "sha256-RvsUt1DyN8Xr+Xtz84mbKlDwxLewgK6qklYVdQHu6q0="; - rev = version; - repo = pname; - owner = "puppetlabs"; + nativeBuildInputs = [ makeWrapper ]; + + postBuild = + let + runtimeDependencies = + [ + coreutils + gnugrep + nettools + pciutils + procps + util-linux + ] + ++ lib.optionals stdenv.isLinux [ + iproute2 + virt-what + zfs + ]; + in + '' + wrapProgram $out/bin/facter --prefix PATH : ${lib.makeBinPath runtimeDependencies} + ''; + + passthru = { + tests.version = testers.testVersion { + command = "${lib.getExe facter} --version"; + package = facter; + version = (import ./gemset.nix).facter.version; + }; + updateScript = bundlerUpdateScript "facter"; }; - postPatch = '' - sed '1i#include ' -i lib/src/facts/glib/load_average_resolver.cc # gcc12 - ''; - - CXXFLAGS = lib.optionalString stdenv.cc.isGNU "-fpermissive -Wno-error=catch-value"; - NIX_LDFLAGS = lib.optionalString stdenv.isLinux "-lblkid"; - - cmakeFlags = [ - "-DFACTER_RUBY=${ruby}/lib/libruby${stdenv.hostPlatform.extensions.sharedLibrary}" - "-DRUBY_LIB_INSTALL=${placeholder "out"}/lib/ruby" - ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ boost cpp-hocon curl leatherman libwhereami yaml-cpp openssl ruby util-linux ]; - - meta = with lib; { - homepage = "https://github.com/puppetlabs/facter"; + meta = { + changelog = "https://www.puppet.com/docs/puppet/latest/release_notes_facter.html"; description = "A system inventory tool"; - license = licenses.asl20; - maintainers = [ maintainers.womfoo ]; - platforms = platforms.unix; + homepage = "https://github.com/puppetlabs/facter"; + license = lib.licenses.asl20; mainProgram = "facter"; + maintainers = with lib.maintainers; [ womfoo anthonyroussel ]; + platforms = lib.platforms.unix; }; } diff --git a/pkgs/tools/system/facter/gemset.nix b/pkgs/tools/system/facter/gemset.nix new file mode 100644 index 000000000000..6f1cf7a2b8b0 --- /dev/null +++ b/pkgs/tools/system/facter/gemset.nix @@ -0,0 +1,33 @@ +{ + facter = { + dependencies = ["hocon" "thor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pxpldfcf40dr9khra3sa131ij7gzd97bba2vpw89c785pl736a7"; + type = "gem"; + }; + version = "4.6.1"; + }; + hocon = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "106dmzsl1bxkqw5xaif012nwwfr3k9wff32cqc77ibjngknj6477"; + type = "gem"; + }; + version = "1.4.0"; + }; + thor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps"; + type = "gem"; + }; + version = "1.3.1"; + }; +}