about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMario Rodas <marsam@users.noreply.github.com>2024-04-15 07:57:08 -0500
committerGitHub <noreply@github.com>2024-04-15 07:57:08 -0500
commit48e4597e5238eb1b920086f3b25ac0c0b364611a (patch)
tree78f04f08492f1189f04a57046713b554df9f8a95
parent1f62dc5ccd627ac62c245fa8dba460aed7b3fa51 (diff)
parentfe26578be988f00bd629d7775a04c7ae87c3574e (diff)
Merge pull request #298667 from anthonyroussel/upgrade/facter
facter: 3.14.17 -> 4.6.1
-rw-r--r--pkgs/by-name/fa/facter/Gemfile5
-rw-r--r--pkgs/by-name/fa/facter/Gemfile.lock17
-rw-r--r--pkgs/by-name/fa/facter/gemset.nix33
-rw-r--r--pkgs/by-name/fa/facter/package.nix66
-rw-r--r--pkgs/tools/system/facter/default.nix39
-rw-r--r--pkgs/top-level/all-packages.nix2
6 files changed, 121 insertions, 41 deletions
diff --git a/pkgs/by-name/fa/facter/Gemfile b/pkgs/by-name/fa/facter/Gemfile
new file mode 100644
index 0000000000000..eff7af10b5d69
--- /dev/null
+++ b/pkgs/by-name/fa/facter/Gemfile
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+source "https://rubygems.org"
+
+gem "facter"
diff --git a/pkgs/by-name/fa/facter/Gemfile.lock b/pkgs/by-name/fa/facter/Gemfile.lock
new file mode 100644
index 0000000000000..d980285ae0f32
--- /dev/null
+++ b/pkgs/by-name/fa/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/by-name/fa/facter/gemset.nix b/pkgs/by-name/fa/facter/gemset.nix
new file mode 100644
index 0000000000000..6f1cf7a2b8b07
--- /dev/null
+++ b/pkgs/by-name/fa/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";
+  };
+}
diff --git a/pkgs/by-name/fa/facter/package.nix b/pkgs/by-name/fa/facter/package.nix
new file mode 100644
index 0000000000000..38d037c53efb7
--- /dev/null
+++ b/pkgs/by-name/fa/facter/package.nix
@@ -0,0 +1,66 @@
+{
+  bundlerApp,
+  bundlerUpdateScript,
+  coreutils,
+  facter,
+  gnugrep,
+  iproute2,
+  lib,
+  makeWrapper,
+  nettools,
+  pciutils,
+  procps,
+  stdenv,
+  testers,
+  util-linux,
+  virt-what,
+  zfs,
+}:
+
+bundlerApp {
+  pname = "facter";
+  gemdir = ./.;
+  exes = [ "facter" ];
+
+  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";
+  };
+
+  meta = {
+    changelog = "https://www.puppet.com/docs/puppet/latest/release_notes_facter.html";
+    description = "A system inventory tool";
+    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/default.nix b/pkgs/tools/system/facter/default.nix
deleted file mode 100644
index 02c48d302ac35..0000000000000
--- a/pkgs/tools/system/facter/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, boost, cmake, cpp-hocon, curl, leatherman, libwhereami, yaml-cpp, openssl, ruby, util-linux }:
-
-stdenv.mkDerivation rec {
-  pname = "facter";
-  version = "3.14.17";
-
-  src = fetchFromGitHub {
-    sha256 = "sha256-RvsUt1DyN8Xr+Xtz84mbKlDwxLewgK6qklYVdQHu6q0=";
-    rev = version;
-    repo = pname;
-    owner = "puppetlabs";
-  };
-
-  postPatch = ''
-    sed '1i#include <array>' -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";
-    description = "A system inventory tool";
-    license = licenses.asl20;
-    maintainers = [ maintainers.womfoo ];
-    platforms = platforms.unix;
-    mainProgram = "facter";
-  };
-}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 45ac70caa80e0..0d08726db17f0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5249,8 +5249,6 @@ with pkgs;
 
   facedetect = callPackage ../tools/graphics/facedetect { };
 
-  facter = callPackage ../tools/system/facter { };
-
   faketty = callPackage ../tools/misc/faketty { };
 
   fasd = callPackage ../tools/misc/fasd { };