summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ruby/facter')
-rw-r--r--dev-ruby/facter/Manifest9
-rw-r--r--dev-ruby/facter/facter-3.14.24.ebuild (renamed from dev-ruby/facter/facter-3.14.10.ebuild)22
-rw-r--r--dev-ruby/facter/facter-3.14.9.ebuild99
-rw-r--r--dev-ruby/facter/facter-4.4.1.ebuild46
-rw-r--r--dev-ruby/facter/facter-4.4.3-r1.ebuild55
-rw-r--r--dev-ruby/facter/facter-4.5.0.ebuild55
-rw-r--r--dev-ruby/facter/facter-4.5.1.ebuild55
-rw-r--r--dev-ruby/facter/facter-4.5.2.ebuild55
-rw-r--r--dev-ruby/facter/facter-4.7.0.ebuild55
-rw-r--r--dev-ruby/facter/facter-9999.ebuild113
-rw-r--r--dev-ruby/facter/files/facter-3.14.23-gcc12.patch10
-rw-r--r--dev-ruby/facter/files/facter-3.14.6-explicit-rspec-2.patch11
-rw-r--r--dev-ruby/facter/files/facter-4.4.3-rspec-gentoo-tweak.patch53
-rw-r--r--dev-ruby/facter/metadata.xml4
14 files changed, 405 insertions, 237 deletions
diff --git a/dev-ruby/facter/Manifest b/dev-ruby/facter/Manifest
index aba2c725447b..dec2bb3d1ff0 100644
--- a/dev-ruby/facter/Manifest
+++ b/dev-ruby/facter/Manifest
@@ -1,2 +1,7 @@
-DIST facter-3.14.10.tar.gz 406470 BLAKE2B ffd97f450676ad7465332f5159dc4fc9c695b9cbaaf8a09a2b575221bf11b11c044edeaab093f5222d64b0e7ef271d860072ab5435845ddff427714a4f2950e6 SHA512 e9f6b5a722982ad80282c355a82a5a6d302e6db36367d65701b7216f80032225da58106ccb025b742d2dc6ef98e2f5df5a07e53489802ee44603bc99ab930ffa
-DIST facter-3.14.9.tar.gz 404448 BLAKE2B f95c0acce84013d58565193a35931d7f562639f607f3fed36ede5d2197336bec0ea4318a28ef29297150ab07a1fd35c292ca15c056b0b8cfe879bbebc64bfb18 SHA512 ff809c87641d65c43a9764d0a2cfe42f64c17d50e473a6d27b6ff25adfbd7be15edf25286932aeba348b669b05a11780257d41aa541fbb013c1169b6d8d25582
+DIST facter-3.14.24.tar.gz 410547 BLAKE2B 69d2fd3b1bf9f91456ca570f9fef44ddd6e7656a285c035ecb42df2553c461be137d06232fc1f96f239598143912928dcfaf0d9b3078f4335dfc83163eee5120 SHA512 88e47271f213570fb7819630f7b08076bd8b234612a2bb885de760acab48c37b588c1f214da11c5096f0db6b7df4a516b6e83abc56a1d95779b6f1353831e588
+DIST facter-4.4.1.tar.gz 492785 BLAKE2B b8f173aee1e2c3a6e9b650e1962ee6a7f860cadb0ea09254f396cce60cb01d702feaf23e0e147a80ca95554bcf835bd23df59d4faa78404dc92fd86defb65472 SHA512 c9e148141b3348977c9d6209ed3d72ab1eaaff46e0ada2ce5c3452ee71c3cbc051605bf0d9aad77c249559639e52fbb423c6b3e0cb784f2c208ea206fb3f4fd8
+DIST facter-4.4.3.tar.gz 493663 BLAKE2B 19f670e503b5ccf3d78b7fa72b0f3d25cef827eacf9939182fa4bfd6591fbfae6091425d6fc4d00c87ee587537dbcefdc1ff8d3a6d713c21ad6e167b55753835 SHA512 9e8867b00665559562e5778783247bf97a8fce154c857fc1b2e4cb193a66c9029edcfa09dd4e3ca8a0ad16b8dec272b440441f4cffab899366d543a66d1e26df
+DIST facter-4.5.0.tar.gz 494255 BLAKE2B 7ec4edc85c83fd2a4ab198e0807d705cfba7c05ae5fd6dc1954c00a6e14ab6869926d315bc6fcaf553ec3ae632452a383c6a25e5da2d9a099f24c721fd14407c SHA512 025afb1a8ce2716253cfa94f2a4692558ab1c0021afeacfe4c8e6f482fdf91e8042d0f914da04716c4c50faca5b7e89cd6e741b10d431a71ed933943ca4e712f
+DIST facter-4.5.1.tar.gz 494725 BLAKE2B d77ef233c901f41e2bfeaaf5ecd0d3be885154f5027d9e51a02815eed928ddfa6911af396b5ccfb4a33bd7814ba1e8afd77cafec76e78f2baa57a2113dfd2e0a SHA512 f89dfda26fbde74a7425159cde6eb51755238b86b4e15e2237dbfe3997032130e88f7be3d80c5fe115c6dc41cc69ef8942b826aeeb1669d94fe7a1b7824c0167
+DIST facter-4.5.2.tar.gz 465911 BLAKE2B c806d5abb14ed434a4453cbabc77edd5791788ed11eab6b6ea4c56fbfaee82c1ecbb3407b0953ea674b00b0893da1cdce4752c9ab299bdffc97aece61b14ad0b SHA512 1117845c730fa102b833deb2c1020dc82fd9a5fe3ef959e0e98b0b55b3beeb988bc9bc2dbbb04374e26a2c449815139763a107c799a075ad12f64bbf357ca9b8
+DIST facter-4.7.0.tar.gz 481862 BLAKE2B 5179a15616ca9bb2e494c77d407227b2ecb3c554e73433ff461bd19b28fa23bc89d3ce774810435efbcd80b9307340b5a18ccf5360652924f39e9da27446afa8 SHA512 cd0482bc8cd845fc1f0fa73aa3a7217ad45cced7578069317a0812daf9d1b363931edd99412777fa4db020f1407dd073c9adef425cc262755b2a0a236cd44677
diff --git a/dev-ruby/facter/facter-3.14.10.ebuild b/dev-ruby/facter/facter-3.14.24.ebuild
index b7819b83844f..584ef617e0a4 100644
--- a/dev-ruby/facter/facter-3.14.10.ebuild
+++ b/dev-ruby/facter/facter-3.14.24.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-USE_RUBY="ruby24 ruby25 ruby26 ruby27"
+USE_RUBY="ruby31"
# git-r3 goes after ruby-ng so that it overrides src_unpack properly
-inherit cmake-utils eutils ruby-ng
+inherit cmake ruby-ng
DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
@@ -19,13 +19,13 @@ if [[ ${PV} == 9999 ]] ; then
EGIT_BRANCH="master"
else
[[ "${PV}" = *_rc* ]] || \
- KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86"
+ KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc x86"
SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
fi
RESTRICT="!test? ( test )"
-ruby_add_bdepend "test? ( dev-ruby/rake dev-ruby/rspec:2 dev-ruby/mocha:0.14 )"
+ruby_add_bdepend "test? ( dev-ruby/rake dev-ruby/rspec:3 dev-ruby/mocha:0.14 )"
RDEPEND="
>=dev-cpp/cpp-hocon-0.2.1:=
@@ -46,6 +46,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.14.6-fix-static-libcpp-hocon.patch
# be explicit about the version of rspec we test with
"${FILESDIR}"/${PN}-3.14.8-explicit-rspec-2.patch
+ "${FILESDIR}"/${PN}-3.14.23-gcc12.patch
)
pkg_setup() {
@@ -61,7 +62,7 @@ src_unpack() {
}
src_prepare() {
- cmake-utils_src_prepare
+ cmake_src_prepare
}
each_ruby_configure() {
@@ -75,18 +76,19 @@ src_configure() {
local mycmakeargs=(
-DRUBY_LIB_INSTALL=${my_ruby_sitelibdir}
+ -DWITHOUT_JRUBY=ON
-DBLKID_LIBRARYDIR="${EPREFIX}/$(get_libdir)"
)
- cmake-utils_src_configure
+ cmake_src_configure
}
src_compile() {
addpredict /proc/self/oom_score_adj
- cmake-utils_src_compile
+ cmake_src_compile
}
src_test() {
- cmake-utils_src_test
+ cmake_src_test
}
each_ruby_install() {
@@ -94,6 +96,6 @@ each_ruby_install() {
}
src_install() {
- cmake-utils_src_install
+ cmake_src_install
ruby-ng_src_install
}
diff --git a/dev-ruby/facter/facter-3.14.9.ebuild b/dev-ruby/facter/facter-3.14.9.ebuild
deleted file mode 100644
index f2b40c9e3b70..000000000000
--- a/dev-ruby/facter/facter-3.14.9.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-USE_RUBY="ruby24 ruby25 ruby26 ruby27"
-
-# git-r3 goes after ruby-ng so that it overrides src_unpack properly
-inherit cmake-utils eutils ruby-ng
-
-DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
-HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="test"
-if [[ ${PV} == 9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
- EGIT_BRANCH="master"
-else
- [[ "${PV}" = *_rc* ]] || \
- KEYWORDS="amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc x86"
- SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-fi
-
-RESTRICT="!test? ( test )"
-
-ruby_add_bdepend "test? ( dev-ruby/rake dev-ruby/rspec:2 dev-ruby/mocha:0.14 )"
-
-RDEPEND="
- >=dev-cpp/cpp-hocon-0.2.1:=
- >=dev-libs/leatherman-1.0.0:=
- dev-libs/openssl:0=
- sys-apps/util-linux
- app-emulation/virt-what
- net-misc/curl
- dev-libs/boost:=[nls]
- >=dev-cpp/yaml-cpp-0.5.1
- !<app-admin/puppet-4.0.0"
-DEPEND="${RDEPEND}"
-
-# restore ${S} and override all phases exported by ruby-ng.eclass
-S="${WORKDIR}/${P}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.14.6-fix-static-libcpp-hocon.patch
- # be explicit about the version of rspec we test with
- "${FILESDIR}"/${PN}-3.14.8-explicit-rspec-2.patch
-)
-
-pkg_setup() {
- ruby-ng_pkg_setup
-}
-
-src_unpack() {
- default
-
- if [[ ${PV} == 9999 ]] ; then
- git-r3_src_unpack
- fi
-}
-
-src_prepare() {
- cmake-utils_src_prepare
-}
-
-each_ruby_configure() {
- # hack for correct calculation of relative path from facter.rb to
- # libfacter.so
- my_ruby_sitelibdir=$(ruby_rbconfig_value 'sitelibdir')
-}
-
-src_configure() {
- ruby-ng_src_configure
-
- local mycmakeargs=(
- -DRUBY_LIB_INSTALL=${my_ruby_sitelibdir}
- -DBLKID_LIBRARYDIR="${EPREFIX}/$(get_libdir)"
- )
- cmake-utils_src_configure
-}
-
-src_compile() {
- addpredict /proc/self/oom_score_adj
- cmake-utils_src_compile
-}
-
-src_test() {
- cmake-utils_src_test
-}
-
-each_ruby_install() {
- doruby "${BUILD_DIR}"/lib/facter.rb
-}
-
-src_install() {
- cmake-utils_src_install
- ruby-ng_src_install
-}
diff --git a/dev-ruby/facter/facter-4.4.1.ebuild b/dev-ruby/facter/facter-4.4.1.ebuild
new file mode 100644
index 000000000000..1c4e136e7a9c
--- /dev/null
+++ b/dev-ruby/facter/facter-4.4.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby27 ruby30 ruby31"
+RUBY_FAKEGEM_GEMSPEC="facter.gemspec"
+#RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_RECIPE_DOC="yard"
+
+inherit ruby-ng ruby-fakegem
+
+DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
+HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+#IUSE="test"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
+ EGIT_BRANCH="master"
+else
+ [[ "${PV}" = *_rc* ]] || \
+ KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc x86"
+ SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+#RESTRICT="!test? ( test )"
+
+ruby_add_rdepend "dev-ruby/hocon <dev-ruby/thor-2.0 dev-ruby/ffi"
+#ruby_add_bdepend "test? ( dev-ruby/simplecov dev-ruby/timecop dev-ruby/webmock )"
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+ ruby-ng_src_unpack
+}
+
+all_ruby_prepare() {
+ sed -e 's/__dir__/"."/' \
+ -e 's/__FILE__/"'${RUBY_FAKEGEM_GEMSPEC}'"/' \
+ -i ${RUBY_FAKEGEM_GEMSPEC} || die
+ # Breaks tests; handle deps ourselves
+ sed -e "/require 'bundler/d" -i spec/spec_helper.rb || die
+}
diff --git a/dev-ruby/facter/facter-4.4.3-r1.ebuild b/dev-ruby/facter/facter-4.4.3-r1.ebuild
new file mode 100644
index 000000000000..18070dbf7ff7
--- /dev/null
+++ b/dev-ruby/facter/facter-4.4.3-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby30 ruby31 ruby32"
+RUBY_FAKEGEM_GEMSPEC="facter.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_RECIPE_DOC="yard"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
+HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+#IUSE="test"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
+ EGIT_BRANCH="master"
+else
+ [[ "${PV}" = *_rc* ]] || \
+ KEYWORDS="~amd64 ~x86"
+ #KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+#RESTRICT="!test? ( test )"
+
+ruby_add_rdepend "dev-ruby/hocon <dev-ruby/thor-2.0 dev-ruby/ffi dev-ruby/sys-filesystem"
+ruby_add_bdepend "test? ( dev-ruby/simplecov dev-ruby/timecop dev-ruby/webmock )"
+
+PATCHES=(
+ "${FILESDIR}"/facter-4.4.3-rspec-gentoo-tweak.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+ ruby-ng_src_unpack
+}
+
+all_ruby_prepare() {
+ sed -e 's/__dir__/"."/' \
+ -e 's/__FILE__/"'${RUBY_FAKEGEM_GEMSPEC}'"/' \
+ -i ${RUBY_FAKEGEM_GEMSPEC} || die
+ # Breaks tests; handle deps ourselves
+ sed -e "/require 'bundler/d" -i spec/spec_helper.rb || die
+ # dev tasks not needed, but block tests
+ for f in tasks/rubocop.rake tasks/check.rake ; do
+ test -e ${f} && mv -f ${f}{,.DISABLE}
+ done
+}
diff --git a/dev-ruby/facter/facter-4.5.0.ebuild b/dev-ruby/facter/facter-4.5.0.ebuild
new file mode 100644
index 000000000000..18070dbf7ff7
--- /dev/null
+++ b/dev-ruby/facter/facter-4.5.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby30 ruby31 ruby32"
+RUBY_FAKEGEM_GEMSPEC="facter.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_RECIPE_DOC="yard"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
+HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+#IUSE="test"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
+ EGIT_BRANCH="master"
+else
+ [[ "${PV}" = *_rc* ]] || \
+ KEYWORDS="~amd64 ~x86"
+ #KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+#RESTRICT="!test? ( test )"
+
+ruby_add_rdepend "dev-ruby/hocon <dev-ruby/thor-2.0 dev-ruby/ffi dev-ruby/sys-filesystem"
+ruby_add_bdepend "test? ( dev-ruby/simplecov dev-ruby/timecop dev-ruby/webmock )"
+
+PATCHES=(
+ "${FILESDIR}"/facter-4.4.3-rspec-gentoo-tweak.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+ ruby-ng_src_unpack
+}
+
+all_ruby_prepare() {
+ sed -e 's/__dir__/"."/' \
+ -e 's/__FILE__/"'${RUBY_FAKEGEM_GEMSPEC}'"/' \
+ -i ${RUBY_FAKEGEM_GEMSPEC} || die
+ # Breaks tests; handle deps ourselves
+ sed -e "/require 'bundler/d" -i spec/spec_helper.rb || die
+ # dev tasks not needed, but block tests
+ for f in tasks/rubocop.rake tasks/check.rake ; do
+ test -e ${f} && mv -f ${f}{,.DISABLE}
+ done
+}
diff --git a/dev-ruby/facter/facter-4.5.1.ebuild b/dev-ruby/facter/facter-4.5.1.ebuild
new file mode 100644
index 000000000000..18070dbf7ff7
--- /dev/null
+++ b/dev-ruby/facter/facter-4.5.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby30 ruby31 ruby32"
+RUBY_FAKEGEM_GEMSPEC="facter.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_RECIPE_DOC="yard"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
+HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+#IUSE="test"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
+ EGIT_BRANCH="master"
+else
+ [[ "${PV}" = *_rc* ]] || \
+ KEYWORDS="~amd64 ~x86"
+ #KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+#RESTRICT="!test? ( test )"
+
+ruby_add_rdepend "dev-ruby/hocon <dev-ruby/thor-2.0 dev-ruby/ffi dev-ruby/sys-filesystem"
+ruby_add_bdepend "test? ( dev-ruby/simplecov dev-ruby/timecop dev-ruby/webmock )"
+
+PATCHES=(
+ "${FILESDIR}"/facter-4.4.3-rspec-gentoo-tweak.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+ ruby-ng_src_unpack
+}
+
+all_ruby_prepare() {
+ sed -e 's/__dir__/"."/' \
+ -e 's/__FILE__/"'${RUBY_FAKEGEM_GEMSPEC}'"/' \
+ -i ${RUBY_FAKEGEM_GEMSPEC} || die
+ # Breaks tests; handle deps ourselves
+ sed -e "/require 'bundler/d" -i spec/spec_helper.rb || die
+ # dev tasks not needed, but block tests
+ for f in tasks/rubocop.rake tasks/check.rake ; do
+ test -e ${f} && mv -f ${f}{,.DISABLE}
+ done
+}
diff --git a/dev-ruby/facter/facter-4.5.2.ebuild b/dev-ruby/facter/facter-4.5.2.ebuild
new file mode 100644
index 000000000000..c2a4a652e567
--- /dev/null
+++ b/dev-ruby/facter/facter-4.5.2.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby30 ruby31 ruby32"
+RUBY_FAKEGEM_GEMSPEC="facter.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_RECIPE_DOC="yard"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
+HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+#IUSE="test"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
+ EGIT_BRANCH="master"
+else
+ [[ "${PV}" = *_rc* ]] || \
+ KEYWORDS="~amd64 ~x86"
+ #KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+#RESTRICT="!test? ( test )"
+
+ruby_add_rdepend "dev-ruby/hocon <dev-ruby/thor-2.0 dev-ruby/ffi dev-ruby/sys-filesystem"
+ruby_add_bdepend "test? ( dev-ruby/simplecov dev-ruby/timecop dev-ruby/webmock )"
+
+PATCHES=(
+ "${FILESDIR}"/facter-4.4.3-rspec-gentoo-tweak.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+ ruby-ng_src_unpack
+}
+
+all_ruby_prepare() {
+ sed -e 's/__dir__/"."/' \
+ -e 's/__FILE__/"'${RUBY_FAKEGEM_GEMSPEC}'"/' \
+ -i ${RUBY_FAKEGEM_GEMSPEC} || die
+ # Breaks tests; handle deps ourselves
+ sed -e "/require 'bundler/d" -i spec/spec_helper.rb || die
+ # dev tasks not needed, but block tests
+ for f in tasks/rubocop.rake tasks/check.rake ; do
+ test -e ${f} && mv -f ${f}{,.DISABLE}
+ done
+}
diff --git a/dev-ruby/facter/facter-4.7.0.ebuild b/dev-ruby/facter/facter-4.7.0.ebuild
new file mode 100644
index 000000000000..c2a4a652e567
--- /dev/null
+++ b/dev-ruby/facter/facter-4.7.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby30 ruby31 ruby32"
+RUBY_FAKEGEM_GEMSPEC="facter.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_RECIPE_DOC="yard"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
+HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+#IUSE="test"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
+ EGIT_BRANCH="master"
+else
+ [[ "${PV}" = *_rc* ]] || \
+ KEYWORDS="~amd64 ~x86"
+ #KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+#RESTRICT="!test? ( test )"
+
+ruby_add_rdepend "dev-ruby/hocon <dev-ruby/thor-2.0 dev-ruby/ffi dev-ruby/sys-filesystem"
+ruby_add_bdepend "test? ( dev-ruby/simplecov dev-ruby/timecop dev-ruby/webmock )"
+
+PATCHES=(
+ "${FILESDIR}"/facter-4.4.3-rspec-gentoo-tweak.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+ ruby-ng_src_unpack
+}
+
+all_ruby_prepare() {
+ sed -e 's/__dir__/"."/' \
+ -e 's/__FILE__/"'${RUBY_FAKEGEM_GEMSPEC}'"/' \
+ -i ${RUBY_FAKEGEM_GEMSPEC} || die
+ # Breaks tests; handle deps ourselves
+ sed -e "/require 'bundler/d" -i spec/spec_helper.rb || die
+ # dev tasks not needed, but block tests
+ for f in tasks/rubocop.rake tasks/check.rake ; do
+ test -e ${f} && mv -f ${f}{,.DISABLE}
+ done
+}
diff --git a/dev-ruby/facter/facter-9999.ebuild b/dev-ruby/facter/facter-9999.ebuild
deleted file mode 100644
index de60deb0a216..000000000000
--- a/dev-ruby/facter/facter-9999.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-USE_RUBY="ruby23 ruby24 ruby25 ruby26"
-
-# git-r3 goes after ruby-ng so that it overrides src_unpack properly
-inherit cmake-utils eutils multilib ruby-ng
-
-DESCRIPTION="A cross-platform ruby library for retrieving facts from operating systems"
-HOMEPAGE="http://www.puppetlabs.com/puppet/related-projects/facter/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="debug test"
-if [[ ${PV} == 9999 ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/puppetlabs/facter.git"
- EGIT_BRANCH="master"
-else
- [[ "${PV}" = *_rc* ]] || \
- KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86"
- SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-fi
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="
- >=sys-devel/gcc-4.8:*
- dev-cpp/cpp-hocon"
-COMMON_DEPEND="
- >=dev-libs/leatherman-1.0.0:=
- dev-libs/openssl:0=
- sys-apps/util-linux
- app-emulation/virt-what
- net-misc/curl
- >=dev-libs/boost-1.54:=[nls]
- >=dev-cpp/yaml-cpp-0.5.1
- !<app-admin/puppet-4.0.0"
-
-ruby_add_bdepend "test? ( dev-ruby/rake dev-ruby/rspec:2 dev-ruby/mocha:0.14 )"
-
-RDEPEND="${COMMON_DEPEND}"
-DEPEND="${BDEPEND}
- ${COMMON_DEPEND}"
-
-# restore ${S} and override all phases exported by ruby-ng.eclass
-S="${WORKDIR}/${P}"
-
-pkg_setup() {
- ruby-ng_pkg_setup
-}
-
-src_unpack() {
- default
-
- if [[ ${PV} == 9999 ]] ; then
- git-r3_src_unpack
- fi
-}
-
-src_prepare() {
- # be explicit about the version of rspec we test with
- sed -i -e '/libfacter.*specs/ s/rspec/rspec-2/' \
- CMakeLists.txt || die
- # be more lenient for software versions for tests
- sed -i -e '/rake/ s/~> 10.1.0/>= 10/' \
- -e '/rspec/ s/2.11.0/2.11/' \
- -e '/mocha/ s/0.10.5/0.14.0/' lib/Gemfile || die
- # patches
- default
- cmake-utils_src_prepare
-}
-
-each_ruby_configure() {
- # hack for correct calculation of relative path from facter.rb to
- # libfacter.so
- my_ruby_sitelibdir=$(ruby_rbconfig_value 'sitelibdir')
-}
-
-src_configure() {
- ruby-ng_src_configure
-
- local mycmakeargs=(
- -DCMAKE_VERBOSE_MAKEFILE=ON
- -DRUBY_LIB_INSTALL=${my_ruby_sitelibdir}
- -DBLKID_LIBRARYDIR="${EPREFIX}/$(get_libdir)"
- )
- if use debug; then
- mycmakeargs+=(
- -DCMAKE_BUILD_TYPE=Debug
- )
- fi
- cmake-utils_src_configure
-}
-
-src_compile() {
- addpredict /proc/self/oom_score_adj
- cmake-utils_src_compile
-}
-
-src_test() {
- cmake-utils_src_test
-}
-
-each_ruby_install() {
- doruby "${BUILD_DIR}"/lib/facter.rb
-}
-
-src_install() {
- cmake-utils_src_install
- ruby-ng_src_install
-}
diff --git a/dev-ruby/facter/files/facter-3.14.23-gcc12.patch b/dev-ruby/facter/files/facter-3.14.23-gcc12.patch
new file mode 100644
index 000000000000..671b085a15b5
--- /dev/null
+++ b/dev-ruby/facter/files/facter-3.14.23-gcc12.patch
@@ -0,0 +1,10 @@
+https://bugs.gentoo.org/840116
+--- a/lib/src/facts/glib/load_average_resolver.cc
++++ b/lib/src/facts/glib/load_average_resolver.cc
+@@ -1,5 +1,6 @@
+ #include <internal/facts/glib/load_average_resolver.hpp>
+ #include <leatherman/logging/logging.hpp>
++#include <array>
+ #include <cstdlib>
+
+ #ifdef __sun
diff --git a/dev-ruby/facter/files/facter-3.14.6-explicit-rspec-2.patch b/dev-ruby/facter/files/facter-3.14.6-explicit-rspec-2.patch
deleted file mode 100644
index cd8f9f614d11..000000000000
--- a/dev-ruby/facter/files/facter-3.14.6-explicit-rspec-2.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -205,7 +205,7 @@
- if (RUBY_FOUND)
- find_program(BUNDLER_PATH NAMES bundle.bat bundle)
- if (BUNDLER_PATH)
-- add_test(NAME "libfacter\\ specs" COMMAND ${BUNDLER_PATH} exec rspec WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/lib")
-+ add_test(NAME "libfacter\\ specs" COMMAND ${BUNDLER_PATH} exec rspec-2 WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/lib")
- endif()
- endif()
- add_test(NAME "facter\\ smoke" COMMAND facter)
diff --git a/dev-ruby/facter/files/facter-4.4.3-rspec-gentoo-tweak.patch b/dev-ruby/facter/files/facter-4.4.3-rspec-gentoo-tweak.patch
new file mode 100644
index 000000000000..ce97bbbccee9
--- /dev/null
+++ b/dev-ruby/facter/files/facter-4.4.3-rspec-gentoo-tweak.patch
@@ -0,0 +1,53 @@
+These two tests fail on a Gentoo system. Mark as pending so we have coverage of the other tests.
+
+```
+ 1) Facter::Core::Execution::Base#execute with expand on posix does not expant builtin command
+ # False positive on Gentoo due to environment, returns GEM_SKIP instead of PATH
+ Failure/Error: old_require(path) unless LIBS_TO_SKIP.include?(path)
+
+ {"SHELL"=>"/bin/bash", ..., "_"=>"/usr/bin/rspec", "RACK_ENV"=>"test",
+ "resolution_test_foo"=>"foo"} received :[] with unexpected arguments
+ expected: ("PATH")
+ got: ("GEM_SKIP")
+ Please stub a default value first if message might be received with other args as well.
+ # ./spec/mocks/kernel.rb:7:in `require'
+ # ./lib/facter/custom_facts/core/execution/base.rb:74:in `execute_command'
+ # ./lib/facter/custom_facts/core/execution/base.rb:63:in `execute'
+ # ./spec/custom_facts/core/execution/fact_manager_spec.rb:106:in `block (4 levels) in <top (required)>'
+
+
+ 2) Facter::Core::Execution::Posix when calling execute_command executes a command
+ # False positive on Gentoo due to environment, returns "" instead of ["", ""]
+ Failure/Error: expect(posix_executor.execute_command('/usr/bin/true', nil, logger)).to eq(['', ''])
+
+ expected: ["", ""]
+ got: ""
+
+ (compared using ==)
+ # ./spec/custom_facts/core/execution/posix_spec.rb:112:in `block (3 levels) in <top (required)>'
+```
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+diff -NuarwbB --exclude '*swp' facter-4.4.3.orig/spec/custom_facts/core/execution/fact_manager_spec.rb facter-4.4.3/spec/custom_facts/core/execution/fact_manager_spec.rb
+--- facter-4.4.3.orig/spec/custom_facts/core/execution/fact_manager_spec.rb 2023-08-24 10:49:03.000000000 -0700
++++ facter-4.4.3/spec/custom_facts/core/execution/fact_manager_spec.rb 2023-09-09 21:25:03.428326009 -0700
+@@ -99,6 +99,7 @@
+ end
+
+ it 'does not expant builtin command' do
++ pending('False positive on Gentoo due to environment, returns GEM_SKIP instead of PATH')
+ allow(Facter::Core::Execution::Popen3).to receive(:popen3e).with({ 'LC_ALL' => 'C', 'LANG' => 'C' }, '/bin/foo')
+ .and_return('')
+ allow(Open3).to receive(:capture2).with('type /bin/foo').and_return('builtin')
+diff -NuarwbB --exclude '*swp' facter-4.4.3.orig/spec/custom_facts/core/execution/posix_spec.rb facter-4.4.3/spec/custom_facts/core/execution/posix_spec.rb
+--- facter-4.4.3.orig/spec/custom_facts/core/execution/posix_spec.rb 2023-08-24 10:49:03.000000000 -0700
++++ facter-4.4.3/spec/custom_facts/core/execution/posix_spec.rb 2023-09-09 21:24:39.484374593 -0700
+@@ -108,6 +108,7 @@
+ let(:logger) { instance_spy(Logger) }
+
+ it 'executes a command' do
++ pending('False positive on Gentoo due to environment, returns "" instead of ["", ""]')
+ expect(posix_executor.execute_command('/usr/bin/true', nil, logger)).to eq(['', ''])
+ end
+
diff --git a/dev-ruby/facter/metadata.xml b/dev-ruby/facter/metadata.xml
index 89ac2d179c9f..1f54ed29ba4d 100644
--- a/dev-ruby/facter/metadata.xml
+++ b/dev-ruby/facter/metadata.xml
@@ -1,5 +1,5 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>