#8 Update to Facter 4.2.0
Merged 2 years ago by brandfbb. Opened 2 years ago by ekohl.
rpms/ ekohl/facter rawhide-update-to-facter-4  into  rawhide

Minor fixes for Facter 4.2.0
Ewoud Kohl van Wijngaarden • 2 years ago  
file modified
+3
@@ -4,3 +4,6 @@ 

  *.tar.gz.asc

  /.build*.log

  /facter-*/

+ /*.gem

+ /*.gem.asc

+ /puppet-gpg-signing-key-20250406.pub

file removed
-47
@@ -1,47 +0,0 @@ 

- diff --git a/lib/src/util/bsd/scoped_ifaddrs.cc b/lib/src/util/bsd/scoped_ifaddrs.cc

- index d61d8a4..fbbea6d 100644

- --- a/lib/src/util/bsd/scoped_ifaddrs.cc

- +++ b/lib/src/util/bsd/scoped_ifaddrs.cc

- @@ -1,3 +1,4 @@

- +#include <cstddef>

-  #include <internal/util/bsd/scoped_ifaddrs.hpp>

-  

-  using namespace std;

- diff --git a/lib/src/util/posix/scoped_addrinfo.cc b/lib/src/util/posix/scoped_addrinfo.cc

- index 1dc60b4..bf5bf00 100644

- --- a/lib/src/util/posix/scoped_addrinfo.cc

- +++ b/lib/src/util/posix/scoped_addrinfo.cc

- @@ -1,3 +1,5 @@

- +#include <cstddef>

- +

-  #include <internal/util/posix/scoped_addrinfo.hpp>

-  

-  using namespace std;

- diff --git a/lib/src/util/posix/scoped_bio.cc b/lib/src/util/posix/scoped_bio.cc

- index cdf25d6..dfb7f09 100644

- --- a/lib/src/util/posix/scoped_bio.cc

- +++ b/lib/src/util/posix/scoped_bio.cc

- @@ -1,4 +1,5 @@

-  #pragma clang diagnostic ignored "-Wdeprecated-declarations"

- +#include <cstddef>

-  #include <internal/util/posix/scoped_bio.hpp>

-  

-  using namespace std;

- diff --git a/lib/src/util/posix/scoped_descriptor.cc b/lib/src/util/posix/scoped_descriptor.cc

- index 3ba2d4e..7a131d3 100644

- --- a/lib/src/util/posix/scoped_descriptor.cc

- +++ b/lib/src/util/posix/scoped_descriptor.cc

- @@ -1,3 +1,4 @@

- +#include <cstddef>

-  #include <internal/util/posix/scoped_descriptor.hpp>

-  

-  using namespace std;

- diff --git a/lib/src/util/scoped_file.cc b/lib/src/util/scoped_file.cc

- index 440d8e3..2369987 100644

- --- a/lib/src/util/scoped_file.cc

- +++ b/lib/src/util/scoped_file.cc

- @@ -1,3 +1,4 @@

- +#include <cstddef>

-  #include <internal/util/scoped_file.hpp>

-  #include <boost/nowide/cstdio.hpp>

-  

file modified
+62 -79
@@ -1,47 +1,39 @@ 

- %if 0%{?rhel} && 0%{?rhel} <= 7

- %global boost_suffix 169

- %global cmake_suffix 3

- %global cmake %%cmake%{?cmake_suffix}

- %endif

+ %global gem_name facter

+ %global debug_package %{nil}

  

  Name:           facter

- Version:        3.14.7

- Release:        7%{?dist}

+ Version:        4.2.0

+ Release:        1%{?dist}

  Summary:        Command and ruby library for gathering system information

  

- License:        ASL 2.0

+ License:        MIT

  URL:            https://puppetlabs.com/facter

- Source0:        https://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz

- Source1:        https://downloads.puppetlabs.com/%{name}/%{name}-%{version}.tar.gz.asc

- Source2:        gpgkey-6F6B15509CF8E59E6E469F327F438280EF8D349F.gpg

- Patch0:         shared_cpp_hcon.patch

- Patch1:         %{name}-gcc11.patch

+ Source0:        https://downloads.puppetlabs.com/%{name}/%{name}-%{version}.gem

+ Source1:        https://downloads.puppetlabs.com/%{name}/%{name}-%{version}.gem.asc

+ Source2:        https://downloads.puppetlabs.com/puppet-gpg-signing-key-20250406.pub

  

  BuildRequires:  gnupg2

- BuildRequires:  cmake%{?cmake_suffix}

- BuildRequires:  make

- BuildRequires:  gcc-c++

- BuildRequires:  libcurl-devel

- BuildRequires:  leatherman-devel

- BuildRequires:  boost%{?boost_suffix}-devel

- BuildRequires:  ruby-devel >= 1.9

- BuildRequires:  yaml-cpp-devel

- BuildRequires:  openssl-devel

- BuildRequires:  libblkid-devel

- BuildRequires:  cpp-hocon-devel

- #BuildRequires:  whereami-devel

- 

- # autoreq is not picking this one up so be specific

- Requires: leatherman%{?_isa}

- 

- %package devel

- Summary:        Development libraries for building against facter

- Requires:       %{name}%{?_isa} = %{version}-%{release}

- 

- %package -n ruby-%{name}

- Summary:        Ruby bindings for facter

- Requires:       %{name}%{?_isa} = %{version}-%{release}

- Requires:       ruby%{?_isa}

+ BuildRequires:  rubygems-devel

+ BuildRequires:  ruby >= 2.3

+ Requires:       ruby(rubygems)

+ 

+ # Add runtime deps for testing

+ BuildRequires:  rubygem(hocon)

+ BuildRequires:  rubygem(thor)

+ 

+ # Binaries that Facter can call for complete facts

+ %ifarch %ix86 x86_64 ia64

+ Requires:       dmidecode

+ Requires:       pciutils

+ Requires:       virt-what

+ %endif

+ Requires:       net-tools

+ 

+ Provides:       ruby-%{name} = %{version}

+ Obsoletes:      ruby-%{name} < 4

+ Obsoletes:      %{name}-devel < 4

+ 

+ BuildArch: noarch

  

  %description

  Facter is a lightweight program that gathers basic node information about the
@@ -54,63 +46,54 @@ 

  facts. Facter can also be used to create conditional expressions in Puppet that

  key off the values returned by facts.

  

- %description devel

- The headers to link against libfacter in other applications.

  

- %description -n ruby-%{name}

- The ruby bindings for libfacter.

+ %package doc

+ Summary: Documentation for %{name}

+ Requires: %{name} = %{version}-%{release}

+ BuildArch: noarch

+ 

+ %description doc

+ Documentation for %{name}.

+ 

  

  %prep

  %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'

- %autosetup -p1

+ %setup -q -n %{gem_name}-%{version}

  

  %build

- %cmake . -B%{_target_platform} \

-   -DBOOST_INCLUDEDIR=%{_includedir}/boost%{?boost_suffix} \

-   -DBOOST_LIBRARYDIR=%{_libdir}/boost%{?boost_suffix} \

-   -DLeatherman_DIR=%{_libdir}/cmake%{?cmake_suffix}/leatherman \

-   -DCMAKE_BUILD_TYPE=RelWithDebInfo \

-   %{nil}

- %make_build -C %{_target_platform}

+ gem build ../%{gem_name}-%{version}.gemspec

+ %gem_install

+ 

  

  %install

- %make_install -C %{_target_platform}

+ mkdir -p %{buildroot}%{gem_dir}

+ cp -a .%{gem_dir}/* %{buildroot}%{gem_dir}/

  

- %check

- # Tests depend too much on environment

- # 1: -------------------------------------------------------------------------------

- # 1: Scenario: using the filesystem resolver

- # 1:       When: populating facts

- # 1:       Then: non-tmpfs mounts should exist

- # 1: -------------------------------------------------------------------------------

- # 1: /builddir/build/BUILD/facter-3.14.2/lib/tests/facts/linux/filesystem_resolver.cc:37

- # 1: ...............................................................................

- # 1: 

- # 1: /builddir/build/BUILD/facter-3.14.2/lib/tests/facts/linux/filesystem_resolver.cc:38: FAILED:

- # 1:   REQUIRE( facts.query<facter::facts::map_value>("mountpoints./") )

- # 1: with expansion:

- # 1:   NULL

- #make_build -C %{_target_platform} test

+ mkdir -p %{buildroot}%{_bindir}

+ cp -a .%{gem_instdir}/bin/facter %{buildroot}%{_bindir}

+ rm -rf %{buildroot}/%{gem_instdir}/bin

  

- %files

- %license LICENSE

- %doc README.md

- %{_bindir}/%{name}

- # Note that leatherman has a hardcoded libfacter.so path for the installation

- # of the library for the bindings: https://tickets.puppetlabs.com/browse/FACT-1772

- %{_libdir}/lib%{name}.so.*

- %{_libdir}/lib%{name}.so

- %{_mandir}/man8/%{name}*

  

- %files devel

- %{_includedir}/%{name}/

+ %check

+ # No test suite can run since the spec files are not part of the gem

+ # So try to run the executable and see if that works

+ GEM_HOME="%{buildroot}%{gem_dir}" %{buildroot}%{_bindir}/facter

+ 

  

- %files -n ruby-%{name}

- %{ruby_vendorlibdir}/%{name}.rb

+ %files

+ %dir %{gem_instdir}

+ %{_bindir}/facter

+ %{gem_libdir}

+ %exclude %{gem_cache}

+ %{gem_spec}

  

- %ldconfig_scriptlets

+ %files doc

+ %doc %{gem_docdir}

  

  %changelog

+ * Wed Jun 02 2021 Joel Capitao <jcapitao@redhat.com> - 4.2.0-1

+ - Update to 4.2.0

+ 

  * Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.14.7-7

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

  

file removed
-11
@@ -1,11 +0,0 @@ 

- diff --git a/cmake/FindCPPHOCON.cmake b/cmake/FindCPPHOCON.cmake

- index 00ba8bd..0df0a51 100644

- --- a/cmake/FindCPPHOCON.cmake

- +++ b/cmake/FindCPPHOCON.cmake

- @@ -1,5 +1,5 @@

-  include(FindDependency)

- -find_dependency(CPPHOCON DISPLAY "cpp-hocon" HEADERS "hocon/config.hpp" LIBRARIES "libcpp-hocon.a")

- +find_dependency(CPPHOCON DISPLAY "cpp-hocon" HEADERS "hocon/config.hpp" LIBRARIES "libcpp-hocon.so")

-  

-  include(FeatureSummary)

-  set_package_properties(CPPHOCON PROPERTIES DESCRIPTION "A C++ parser for the HOCON configuration language" URL "https://github.com/puppetlabs/cpp-hocon")

file modified
+3 -2
@@ -1,2 +1,3 @@ 

- SHA512 (facter-3.14.7.tar.gz) = df7c3343d0330e749915f34ab655141b7db5a4a0501c1ee6b2d59f7ffea0a13339ae9885b7555c429d7901532a2f7b23cb36b25594f357f9b41da4cdc750c7df

- SHA512 (facter-3.14.7.tar.gz.asc) = 3ff074a639146d0550d75bbfd6e3b60acfd76c8b13242eda3035f0b8ea12ebe28948b9c822ae707c85c6a511c7cc107c72446466d7c28fe8b7a62238f0cd7b96

+ SHA512 (facter-4.2.0.gem) = 6897c8a0cafa29c3afb19a7095d073fd7b85f99203427371946a850a12ab33f98bef5c1fb5e75b8713893570b9b01f4889790f55d83821dbd93cf668645f1abd

+ SHA512 (facter-4.2.0.gem.asc) = 30ff5c1c1936345d983fa7a4a7217086598bd672aeaf8c262a4a4c95a71e3db44347421c756ac8b71a5261f21036c1603e5f0cdd5888c41ff736b12c1ea43a44

+ SHA512 (puppet-gpg-signing-key-20250406.pub) = 571abab24c87f039d1e5194894f4c00784f39d4a57c2860de81fedd6a2d8e3ed222d845e8a852e3dc893557947bb200b2965fe15fc881f8f1932af9b5f061d09

This updates to Facter 4.2.0, based on https://src.fedoraproject.org/rpms/facter/pull-request/7 but with fixes to address review comments. That's layered as a separate commit for easy review and proper author attribution.

I have not updated to 4.2.1 yet, which is on Rubygems but not on downloads.puppet.com.

I wasn't very sure about this part. I copied it from somewhere else. That appears to stem from some spec for Facter 2, but I think it's still relevant. Facter 4 does call binaries provided by these packages.

Does this fix BZ 1972698?
We also have ruby-facter. Is it somehow affected by this change?

I can't make this a draft like on Github, but I noticed I messed up /usr/bin/facter. Still working on that and trying to get some basic tests.

Does this fix BZ 1972698?

Yes it should since Facter 4 is a pure Ruby gem.

We also have ruby-facter. Is it somehow affected by this change?

It should replace it. I've tried to make it replace it well by adding an Obsoletes and Provides. That's always a part I'm a bit uncertain about, but the idea is that the package should be replaced, but anything that depends on it will still have its dependencies satisfied.

2 new commits added

  • Minor fixes for Facter 4.2.0
  • Update to 4.2.0
2 years ago

I can't make this a draft like on Github, but I noticed I messed up /usr/bin/facter. Still working on that and trying to get some basic tests.

Ok, that should now be taken care of. There is a basic %check phase that runs /usr/bin/facter and see if that works. Since there are no specs included in the gem, it's the only thing I could think of to verify the program.

Cool. Tested here, seems to be fine.
You've been doing a nice job, ekohl. Thanks for your time.

Pull-Request has been merged by brandfbb

2 years ago