dev-ruby/facter: fix vague Gem::MissingSpecError

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
This commit is contained in:
Robin H. Johnson
2024-07-20 10:27:52 -07:00
parent c1262a7114
commit 03e8deb55e
2 changed files with 92 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
# 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 ~riscv ~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
"${FILESDIR}"/facter-4.7.0-gentoo-thor-gemspec.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
}

View File

@@ -0,0 +1,36 @@
Upstream Facter still supports Ruby 2.5 due to Puppetserver 7, but the Thor
dependency dropped Ruby 2.5 support in the 1.3 series.
That doesn't matter for Gentoo, because Gentoo dropped Ruby 2.5 long ago, so
tweak the dependency to permit newer Thor.
This stops the incredibly vague error:
```
$ puppet parser validate ..
Error: Could not initialize global default settings: Gem::MissingSpecError
```
Reference: https://github.com/puppetlabs/facter/issues/2687
Reference: https://github.com/puppetlabs/facter/pull/2674
Reference: https://github.com/puppetlabs/facter/pull/2686
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
diff '--color=auto' -Nuar facter-4.7.0.orig/ext/project_data.yaml facter-4.7.0/ext/project_data.yaml
--- facter-4.7.0.orig/ext/project_data.yaml 2024-04-05 10:45:18.000000000 -0700
+++ facter-4.7.0/ext/project_data.yaml 2024-07-20 10:20:06.637005127 -0700
@@ -15,4 +15,4 @@
gem_required_ruby_version: ['>= 2.5', '< 4.0']
gem_runtime_dependencies:
hocon: ~> 1.3
- thor: ['>= 1.0.1', '< 1.3']
+ thor: ['>= 1.0.1', '< 2.0']
diff '--color=auto' -Nuar facter-4.7.0.orig/facter.gemspec facter-4.7.0/facter.gemspec
--- facter-4.7.0.orig/facter.gemspec 2024-07-20 10:18:09.763758108 -0700
+++ facter-4.7.0/facter.gemspec 2024-07-20 10:19:55.470346750 -0700
@@ -46,5 +46,5 @@
spec.add_development_dependency 'yard', '~> 0.9'
spec.add_runtime_dependency 'hocon', '~> 1.3'
- spec.add_runtime_dependency 'thor', ['>= 1.0.1', '< 1.3'] # Thor 1.3.0 drops support for Ruby 2.5
+ spec.add_runtime_dependency 'thor', ['>= 1.0.1', '< 2.0'] # Thor 1.3.0 drops support for Ruby 2.5 - which doesn't matter for Gentoo
end