svn commit: r447826 - in head/sysutils/facter: . files
Romain Tartière
romain at FreeBSD.org
Sat Aug 12 13:09:38 UTC 2017
Author: romain
Date: Sat Aug 12 13:09:34 2017
New Revision: 447826
URL: https://svnweb.freebsd.org/changeset/ports/447826
Log:
Update to 3.7.1
- Prepare the port to have a slave-port: java-facter;
- Add a bunch of patches that where merged upstream but not yet released so
that facter can be a drop-in replacement of rubygem-facter.
With hat: puppet
Added:
head/sysutils/facter/files/patch-cmake_FindCPPHOCON.cmake (contents, props changed)
head/sysutils/facter/files/patch-lib_CMakeLists.txt (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_facter_facts_fact.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_facter_facts_vm.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_memory__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_operating__system__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_virtualization__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_zfs__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_zpool__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_operating__system__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_zfs__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_zpool__resolver.hpp (contents, props changed)
head/sysutils/facter/files/patch-lib_schema_facter.yaml (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_bsd_collection.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_freebsd_collection.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_freebsd_memory__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_freebsd_operating__system__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_freebsd_virtualization__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_freebsd_zfs__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_freebsd_zpool__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_openbsd_collection.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_resolvers_operating__system__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_resolvers_zfs__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_src_facts_resolvers_zpool__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_tests_facts_resolvers_zfs__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_tests_facts_resolvers_zpool__resolver.cc (contents, props changed)
head/sysutils/facter/files/patch-lib_tests_facts_schema.cc (contents, props changed)
Deleted:
head/sysutils/facter/files/patch-vendor_leatherman_cmake_cflags.cmake
head/sysutils/facter/files/patch-vendor_leatherman_logging_src_logging.cc
Modified:
head/sysutils/facter/Makefile
head/sysutils/facter/distinfo
head/sysutils/facter/pkg-plist
Modified: head/sysutils/facter/Makefile
==============================================================================
--- head/sysutils/facter/Makefile Sat Aug 12 12:46:01 2017 (r447825)
+++ head/sysutils/facter/Makefile Sat Aug 12 13:09:34 2017 (r447826)
@@ -1,9 +1,9 @@
# $FreeBSD$
PORTNAME= facter
-PORTVERSION= 3.1.3
-PORTREVISION= 6
-CATEGORIES= sysutils
+PORTVERSION= 3.7.1
+PORTREVISION?= 0
+CATEGORIES?= sysutils
MASTER_SITES= http://downloads.puppetlabs.com/facter/
MAINTAINER= puppet at FreeBSD.org
@@ -12,25 +12,53 @@ COMMENT= Cross-platform library for retrieving facts f
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
-LIB_DEPENDS= libboost_system.so:devel/boost-libs \
- libyaml-cpp.so:devel/yaml-cpp
+USES= cmake
+.if !defined(PKGNAMEPREFIX)
+
+BROKEN_DragonFly= DragonFly is not supported upstream
BROKEN_powerpc64= fails to compile: collection.cc: 'stoi' was not declared in this scope
+CONFLICTS_INSTALL= rubygem-facter-2*
+
+LIB_DEPENDS= libboost_system.so:devel/boost-libs \
+ liblibcpp-hocon.so:devel/cpp-hocon \
+ libleatherman_locale.so:devel/leatherman \
+ libyaml-cpp.so:devel/yaml-cpp
+
PLIST_SUB+= PORTVERSION="${PORTVERSION}"
USE_LDCONFIG= yes
USE_RUBY= yes
-USES= cmake compiler:c++11-lib
+USES+= compiler:c++11-lib ssl
CMAKE_ARGS+= -DMAN_PATH=${MANPREFIX}/man
-CONFLICTS_INSTALL= rubygem-facter-2*
+test: build
+ cd ${WRKSRC}/lib && bundle install --path vendor
+ cd ${WRKSRC} && ninja test
-BROKEN_DragonFly= DragonFly is not supported upstream
+.elif ${PKGNAMEPREFIX} == java-
+LIB_DEPENDS= libfacter.so:sysutils/facter
+
+ALL_TARGET= facter-jruby
+USE_JAVA= yes
+JAVA_BUILD= yes
+CMAKE_ARGS+= -DJAVA_HOME=${JAVA_HOME}
+
+# Ignore sysutils/facter's pkg-plist by providing a non-existent file
+PLIST= ${WRKDIR}/no-plist
+PLIST_FILES= ${PREFIX}/lib/ruby/vendor_ruby/facter.jar
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/ruby/vendor_ruby
+ cd ${WRKSRC} && ${INSTALL_DATA} lib/facter.jar ${STAGEDIR}${PREFIX}/lib/ruby/vendor_ruby
+
+.endif
+
.include <bsd.port.pre.mk>
-.if ${OPSYS} == FreeBSD && ${COMPILER_FEATURES:Mlibstdc++}
+.if !defined(PKGNAMEPREFIX) && ${OPSYS} == FreeBSD && ${COMPILER_FEATURES:Mlibstdc++}
BROKEN= Build with system libstdc++ is unsupported
.endif
Modified: head/sysutils/facter/distinfo
==============================================================================
--- head/sysutils/facter/distinfo Sat Aug 12 12:46:01 2017 (r447825)
+++ head/sysutils/facter/distinfo Sat Aug 12 13:09:34 2017 (r447826)
@@ -1,2 +1,3 @@
-SHA256 (facter-3.1.3.tar.gz) = b27bfeade320331a02a68d3d2b41491d5cfcbb889292a8e9e1a11bd8641ff7d9
-SIZE (facter-3.1.3.tar.gz) = 603386
+TIMESTAMP = 1500912593
+SHA256 (facter-3.7.1.tar.gz) = 54fc56bfc3997b40c806982759c837f609a7268f669764921424fd41fda83467
+SIZE (facter-3.7.1.tar.gz) = 330767
Added: head/sysutils/facter/files/patch-cmake_FindCPPHOCON.cmake
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-cmake_FindCPPHOCON.cmake Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,12 @@
+
+$FreeBSD$
+
+--- cmake/FindCPPHOCON.cmake.orig 2017-06-27 17:42:22 UTC
++++ 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 "liblibcpp-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")
Added: head/sysutils/facter/files/patch-lib_CMakeLists.txt
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_CMakeLists.txt Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,14 @@
+--- lib/CMakeLists.txt.orig 2017-07-18 18:49:09 UTC
++++ lib/CMakeLists.txt
+@@ -203,6 +203,11 @@ elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "
+ "src/facts/freebsd/dmi_resolver.cc"
+ "src/facts/freebsd/networking_resolver.cc"
+ "src/util/bsd/scoped_ifaddrs.cc"
++ "src/facts/freebsd/virtualization_resolver.cc"
++ "src/facts/freebsd/memory_resolver.cc"
++ "src/facts/freebsd/zfs_resolver.cc"
++ "src/facts/freebsd/zpool_resolver.cc"
++ "src/facts/freebsd/operating_system_resolver.cc"
+ )
+ elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "OpenBSD")
+ set(LIBFACTER_PLATFORM_SOURCES
Added: head/sysutils/facter/files/patch-lib_inc_facter_facts_fact.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_facter_facts_fact.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,31 @@
+--- lib/inc/facter/facts/fact.hpp.orig 2017-07-18 18:49:09 UTC
++++ lib/inc/facter/facts/fact.hpp
+@@ -528,9 +528,9 @@ namespace facter { namespace facts {
+ constexpr static char const* zfs_version = "zfs_version";
+
+ /**
+- * The ZFS supported feature numbers.
++ * The ZFS supported version numbers.
+ */
+- constexpr static char const* zfs_featurenumbers = "zfs_featurenumbers";
++ constexpr static char const* zfs_versionnumbers = "zfs_featurenumbers";
+
+ /**
+ * The ZFS storage pool (zpool) version fact.
+@@ -538,9 +538,14 @@ namespace facter { namespace facts {
+ constexpr static char const* zpool_version = "zpool_version";
+
+ /**
+- * The ZFS storage pool supported feature numbers.
++ * The ZFS storage pool supported feature flags.
+ */
+- constexpr static char const* zpool_featurenumbers = "zpool_featurenumbers";
++ constexpr static char const* zpool_featureflags = "zpool_featureflags";
++
++ /**
++ * The ZFS storage pool supported version numbers.
++ */
++ constexpr static char const* zpool_versionnumbers = "zpool_featurenumbers";
+
+ /**
+ * The fact for number of Solaris zones.
Added: head/sysutils/facter/files/patch-lib_inc_facter_facts_vm.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_facter_facts_vm.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,14 @@
+--- lib/inc/facter/facts/vm.hpp.orig 2017-06-27 17:42:22 UTC
++++ lib/inc/facter/facts/vm.hpp
+@@ -137,6 +137,11 @@ namespace facter { namespace facts {
+ * The name for Solaris ldom
+ */
+ constexpr static char const* ldom = "ldom";
++
++ /**
++ * The name of FreeBSD jails
++ */
++ constexpr static char const* jail = "jail";
+ };
+
+ }} // namespace facter::facts
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_memory__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_memory__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,28 @@
+--- lib/inc/internal/facts/freebsd/memory_resolver.hpp.orig 2017-07-10 14:30:58 UTC
++++ lib/inc/internal/facts/freebsd/memory_resolver.hpp
+@@ -0,0 +1,25 @@
++/**
++ * @file
++ * Declares the FreeBSD memory fact resolver.
++ */
++#pragma once
++
++#include "../resolvers/memory_resolver.hpp"
++
++namespace facter { namespace facts { namespace freebsd {
++
++ /**
++ * Responsible for resolving memory facts.
++ */
++ struct memory_resolver : resolvers::memory_resolver
++ {
++ protected:
++ /**
++ * Collects the resolver data.
++ * @param facts The fact collection that is resolving facts.
++ * @return Returns the resolver data.
++ */
++ virtual data collect_data(collection& facts) override;
++ };
++
++}}} // namespace facter::facts::osx
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_operating__system__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_operating__system__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,27 @@
+--- lib/inc/internal/facts/freebsd/operating_system_resolver.hpp.orig 2017-07-28 07:09:48 UTC
++++ lib/inc/internal/facts/freebsd/operating_system_resolver.hpp
+@@ -0,0 +1,24 @@
++/**
++ * @file
++ * Declares the FreeBSD operating system fact resolver.
++ */
++#pragma once
++
++#include "../posix/operating_system_resolver.hpp"
++
++namespace facter { namespace facts { namespace freebsd {
++
++ /**
++ * Responsible for resolving operating system facts.
++ */
++ struct operating_system_resolver : posix::operating_system_resolver
++ {
++ protected:
++ /**
++ * Collects the resolver's release data.
++ * @param facts The fact collection that is resolving facts.
++ * @param result The current resolver data.
++ */
++ virtual void collect_release_data(collection& facts, data& result) override;
++ };
++}}} // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_virtualization__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_virtualization__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,30 @@
+--- lib/inc/internal/facts/freebsd/virtualization_resolver.hpp.orig 2017-07-10 14:30:58 UTC
++++ lib/inc/internal/facts/freebsd/virtualization_resolver.hpp
+@@ -0,0 +1,27 @@
++/**
++ * @file
++ * Declares the FreeBSD virtualization fact resolver.
++ */
++#pragma once
++
++#include "../resolvers/virtualization_resolver.hpp"
++
++namespace facter { namespace facts { namespace freebsd {
++
++ /**
++ * Responsible for resolving virtualization facts.
++ */
++ struct virtualization_resolver : resolvers::virtualization_resolver
++ {
++ protected:
++ /**
++ * Gets the name of the hypervisor.
++ * @param facts The fact collection that is resolving facts.
++ * @return Returns the name of the hypervisor or empty string if no hypervisor.
++ */
++ virtual std::string get_hypervisor(collection& facts) override;
++ private:
++ static std::string get_jail_vm();
++ };
++
++}}} // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_zfs__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_zfs__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,27 @@
+--- lib/inc/internal/facts/freebsd/zfs_resolver.hpp.orig 2017-07-10 16:43:09 UTC
++++ lib/inc/internal/facts/freebsd/zfs_resolver.hpp
+@@ -0,0 +1,24 @@
++/**
++ * @file
++ * Declares the ZFS fact resolver.
++ */
++#pragma once
++
++#include "../resolvers/zfs_resolver.hpp"
++
++namespace facter { namespace facts { namespace freebsd {
++
++ /**
++ * Responsible for resolving ZFS facts.
++ */
++ struct zfs_resolver : resolvers::zfs_resolver
++ {
++ protected:
++ /**
++ * Gets the platform's ZFS command.
++ * @return Returns the platform's ZFS command.
++ */
++ virtual std::string zfs_command();
++ };
++
++}}} // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_zpool__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_freebsd_zpool__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,27 @@
+--- lib/inc/internal/facts/freebsd/zpool_resolver.hpp.orig 2017-07-10 16:43:09 UTC
++++ lib/inc/internal/facts/freebsd/zpool_resolver.hpp
+@@ -0,0 +1,24 @@
++/**
++ * @file
++ * Declares the FreeBSD ZFS storage pool (zpool) fact resolver.
++ */
++#pragma once
++
++#include "../resolvers/zpool_resolver.hpp"
++
++namespace facter { namespace facts { namespace freebsd {
++
++ /**
++ * Responsible for resolving ZFS storage pool (zpool) facts.
++ */
++ struct zpool_resolver : resolvers::zpool_resolver
++ {
++ protected:
++ /**
++ * Gets the platform's zpool command.
++ * @return Returns the platform's zpool command.
++ */
++ virtual std::string zpool_command();
++ };
++
++}}} // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_operating__system__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_operating__system__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,23 @@
+--- lib/inc/internal/facts/resolvers/operating_system_resolver.hpp.orig 2017-07-18 18:49:09 UTC
++++ lib/inc/internal/facts/resolvers/operating_system_resolver.hpp
+@@ -216,6 +216,20 @@ namespace facter { namespace facts { nam
+ * @return Returns the resolver data.
+ */
+ virtual data collect_data(collection& facts);
++
++ /**
++ * Collects the resolver's kernel data.
++ * @param facts The fact collection that is resolving facts.
++ * @param result The current resolver data.
++ */
++ virtual void collect_kernel_data(collection& facts, data &result);
++
++ /**
++ * Collects the resolver's release data.
++ * @param facts The fact collection that is resolving facts.
++ * @param result The current resolver data.
++ */
++ virtual void collect_release_data(collection& facts, data &result);
+ };
+
+ }}} // namespace facter::facts::resolvers
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_zfs__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_zfs__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,14 @@
+--- lib/inc/internal/facts/resolvers/zfs_resolver.hpp.orig 2017-07-18 18:49:09 UTC
++++ lib/inc/internal/facts/resolvers/zfs_resolver.hpp
+@@ -43,9 +43,9 @@ namespace facter { namespace facts { nam
+ */
+ std::string version;
+ /**
+- * Stores the ZFS feature numbers.
++ * Stores the ZFS version numbers.
+ */
+- std::vector<std::string> features;
++ std::vector<std::string> versions;
+ };
+
+ /**
Added: head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_zpool__resolver.hpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_inc_internal_facts_resolvers_zpool__resolver.hpp Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,18 @@
+--- lib/inc/internal/facts/resolvers/zpool_resolver.hpp.orig 2017-07-18 18:49:09 UTC
++++ lib/inc/internal/facts/resolvers/zpool_resolver.hpp
+@@ -43,9 +43,13 @@ namespace facter { namespace facts { nam
+ */
+ std::string version;
+ /**
+- * Stores the zpool feature numbers.
++ * Stores the zpool feature flags.
+ */
+- std::vector<std::string> features;
++ std::vector<std::string> feature_flags;
++ /**
++ * Stores the zpool version numbers.
++ */
++ std::vector<std::string> versions;
+ };
+
+ /**
Added: head/sysutils/facter/files/patch-lib_schema_facter.yaml
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_schema_facter.yaml Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,17 @@
+--- lib/schema/facter.yaml.orig 2017-07-18 18:49:09 UTC
++++ lib/schema/facter.yaml
+@@ -1894,6 +1894,14 @@ zones:
+ caveats: |
+ Solaris: the `zoneadm` utility must be present.
+
++zpool_featureflags:
++ type: string
++ description: Return the comma-delimited feature flags for ZFS storage pools.
++ resolution: |
++ Solaris: use the `zpool` utility to retrieve the feature numbers for ZFS storage pools
++ caveats: |
++ Solaris: the `zpool` utility must be present.
++
+ zpool_featurenumbers:
+ type: string
+ description: Return the comma-delimited feature numbers for ZFS storage pools.
Added: head/sysutils/facter/files/patch-lib_src_facts_bsd_collection.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_bsd_collection.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,19 @@
+--- lib/src/facts/bsd/collection.cc.orig 2017-06-27 17:42:22 UTC
++++ lib/src/facts/bsd/collection.cc
+@@ -1,6 +1,6 @@
+ #include <facter/facts/collection.hpp>
+ #include <internal/facts/posix/kernel_resolver.hpp>
+-#include <internal/facts/resolvers/operating_system_resolver.hpp>
++#include <internal/facts/posix/operating_system_resolver.hpp>
+ #include <internal/facts/bsd/uptime_resolver.hpp>
+ #include <internal/facts/bsd/filesystem_resolver.hpp>
+ #include <internal/facts/posix/ssh_resolver.hpp>
+@@ -15,7 +15,7 @@ namespace facter { namespace facts {
+ void collection::add_platform_facts()
+ {
+ add(make_shared<posix::kernel_resolver>());
+- add(make_shared<resolvers::operating_system_resolver>());
++ add(make_shared<posix::operating_system_resolver>());
+ add(make_shared<bsd::uptime_resolver>());
+ add(make_shared<bsd::filesystem_resolver>());
+ add(make_shared<posix::ssh_resolver>());
Added: head/sysutils/facter/files/patch-lib_src_facts_freebsd_collection.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_freebsd_collection.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,36 @@
+--- lib/src/facts/freebsd/collection.cc.orig 2017-07-18 18:49:09 UTC
++++ lib/src/facts/freebsd/collection.cc
+@@ -8,8 +8,12 @@
+ #include <internal/facts/posix/kernel_resolver.hpp>
+ #include <internal/facts/posix/ssh_resolver.hpp>
+ #include <internal/facts/posix/timezone_resolver.hpp>
+-#include <internal/facts/resolvers/operating_system_resolver.hpp>
++#include <internal/facts/freebsd/operating_system_resolver.hpp>
+ #include <internal/facts/freebsd/networking_resolver.hpp>
++#include <internal/facts/freebsd/virtualization_resolver.hpp>
++#include <internal/facts/freebsd/memory_resolver.hpp>
++#include <internal/facts/freebsd/zfs_resolver.hpp>
++#include <internal/facts/freebsd/zpool_resolver.hpp>
+
+ using namespace std;
+
+@@ -18,7 +22,7 @@ namespace facter { namespace facts {
+ void collection::add_platform_facts()
+ {
+ add(make_shared<posix::kernel_resolver>());
+- add(make_shared<resolvers::operating_system_resolver>());
++ add(make_shared<freebsd::operating_system_resolver>());
+ add(make_shared<freebsd::networking_resolver>());
+ add(make_shared<bsd::uptime_resolver>());
+ add(make_shared<bsd::filesystem_resolver>());
+@@ -28,6 +32,10 @@ namespace facter { namespace facts {
+ add(make_shared<glib::load_average_resolver>());
+ add(make_shared<freebsd::processor_resolver>());
+ add(make_shared<freebsd::dmi_resolver>());
++ add(make_shared<freebsd::virtualization_resolver>());
++ add(make_shared<freebsd::memory_resolver>());
++ add(make_shared<freebsd::zfs_resolver>());
++ add(make_shared<freebsd::zpool_resolver>());
+ }
+
+ }} // namespace facter::facts
Added: head/sysutils/facter/files/patch-lib_src_facts_freebsd_memory__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_freebsd_memory__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,79 @@
+--- lib/src/facts/freebsd/memory_resolver.cc.orig 2017-07-10 14:30:58 UTC
++++ lib/src/facts/freebsd/memory_resolver.cc
+@@ -0,0 +1,76 @@
++#include <internal/facts/freebsd/memory_resolver.hpp>
++#include <leatherman/execution/execution.hpp>
++#include <leatherman/logging/logging.hpp>
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <vm/vm_param.h>
++#include <unistd.h>
++
++using namespace std;
++using namespace leatherman::execution;
++
++namespace facter { namespace facts { namespace freebsd {
++
++ memory_resolver::data memory_resolver::collect_data(collection& facts)
++ {
++ data result;
++
++ size_t size;
++ int pagesize = getpagesize();
++
++ // Memory usage
++
++ unsigned long physmem;
++ size = sizeof(physmem);
++ if (0 == sysctlbyname("hw.physmem", &physmem, &size, NULL, 0)) {
++ result.mem_total = physmem;
++ }
++
++ unsigned int inactive_count = 0;
++ size = sizeof(inactive_count);
++ sysctlbyname("vm.stats.vm.v_inactive_count", &inactive_count, &size, NULL, 0);
++
++ unsigned int cache_count = 0;
++ size = sizeof(cache_count);
++ sysctlbyname("vm.stats.vm.v_cache_count", &cache_count, &size, NULL, 0);
++
++ unsigned int free_count = 0;
++ size = sizeof(free_count);
++ sysctlbyname("vm.stats.vm.v_free_count", &free_count, &size, NULL, 0);
++
++ long mem_free_page_count = inactive_count + cache_count + free_count;
++ result.mem_free = mem_free_page_count * pagesize;
++
++ // Swap usage
++
++ struct xswdev xsw;
++ size = sizeof(xsw);
++
++ int mib[16];
++ size_t mibsize;
++ mibsize = sizeof mib / sizeof mib[0];
++ if (sysctlnametomib("vm.swap_info", mib, &mibsize) == -1) {
++ LOG_DEBUG("sysctlnametomib() failed");
++ } else {
++ for (int n = 0; ; ++n) {
++ mib[mibsize] = n;
++ if (-1 == sysctl(mib, mibsize + 1, &xsw, &size, NULL, 0))
++ break;
++
++ if (xsw.xsw_version != XSWDEV_VERSION) {
++ LOG_DEBUG("xswdev version mismatch");
++ } else {
++ result.swap_total += xsw.xsw_nblks;
++ result.swap_free += xsw.xsw_nblks - xsw.xsw_used;
++ }
++ }
++
++ result.swap_free *= pagesize;
++ result.swap_total *= pagesize;
++ }
++
++ return result;
++ }
++
++}}} // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_src_facts_freebsd_operating__system__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_freebsd_operating__system__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,20 @@
+--- lib/src/facts/freebsd/operating_system_resolver.cc.orig 2017-07-28 07:09:48 UTC
++++ lib/src/facts/freebsd/operating_system_resolver.cc
+@@ -0,0 +1,17 @@
++#include <leatherman/execution/execution.hpp>
++
++#include <internal/facts/freebsd/operating_system_resolver.hpp>
++
++using namespace std;
++using namespace leatherman::execution;
++
++namespace facter { namespace facts { namespace freebsd {
++
++ void operating_system_resolver::collect_release_data(collection& facts, data& result)
++ {
++ auto exec = execute("freebsd-version");
++ if (exec.success) {
++ result.release = exec.output;
++ }
++ }
++} } } // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_src_facts_freebsd_virtualization__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_freebsd_virtualization__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,47 @@
+--- lib/src/facts/freebsd/virtualization_resolver.cc.orig 2017-07-10 14:30:58 UTC
++++ lib/src/facts/freebsd/virtualization_resolver.cc
+@@ -0,0 +1,44 @@
++#include <internal/facts/freebsd/virtualization_resolver.hpp>
++#include <facter/facts/scalar_value.hpp>
++#include <facter/facts/collection.hpp>
++#include <facter/facts/fact.hpp>
++#include <facter/facts/vm.hpp>
++#include <leatherman/execution/execution.hpp>
++#include <boost/algorithm/string.hpp>
++
++#include <sys/types.h>
++#include <sys/sysctl.h>
++
++using namespace std;
++using namespace facter::facts;
++using namespace leatherman::execution;
++
++namespace facter { namespace facts { namespace freebsd {
++
++ string virtualization_resolver::get_hypervisor(collection& facts)
++ {
++ string value = get_jail_vm();
++
++ if (value.empty()) {
++ auto product_name = facts.get<string_value>(fact::product_name);
++ if (product_name) {
++ value = get_product_name_vm(product_name->value());
++ }
++ }
++
++ return value;
++ }
++
++ string virtualization_resolver::get_jail_vm()
++ {
++ int jailed;
++ size_t size = sizeof(jailed);
++ if (sysctlbyname("security.jail.jailed", &jailed, &size, NULL, 0) == 0) {
++ if (jailed)
++ return vm::jail;
++ }
++
++ return {};
++ }
++
++} } } // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_src_facts_freebsd_zfs__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_freebsd_zfs__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,15 @@
+--- lib/src/facts/freebsd/zfs_resolver.cc.orig 2017-07-10 16:43:09 UTC
++++ lib/src/facts/freebsd/zfs_resolver.cc
+@@ -0,0 +1,12 @@
++#include <internal/facts/freebsd/zfs_resolver.hpp>
++
++using namespace std;
++
++namespace facter { namespace facts { namespace freebsd {
++
++ string zfs_resolver::zfs_command()
++ {
++ return "/sbin/zfs";
++ }
++
++}}} // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_src_facts_freebsd_zpool__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_freebsd_zpool__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,15 @@
+--- lib/src/facts/freebsd/zpool_resolver.cc.orig 2017-07-10 16:43:09 UTC
++++ lib/src/facts/freebsd/zpool_resolver.cc
+@@ -0,0 +1,12 @@
++#include <internal/facts/freebsd/zpool_resolver.hpp>
++
++using namespace std;
++
++namespace facter { namespace facts { namespace freebsd {
++
++ string zpool_resolver::zpool_command()
++ {
++ return "/sbin/zpool";
++ }
++
++}}} // namespace facter::facts::freebsd
Added: head/sysutils/facter/files/patch-lib_src_facts_openbsd_collection.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_openbsd_collection.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,20 @@
+--- lib/src/facts/openbsd/collection.cc.orig 2017-06-27 17:42:22 UTC
++++ lib/src/facts/openbsd/collection.cc
+@@ -11,7 +11,7 @@
+ #include <internal/facts/posix/kernel_resolver.hpp>
+ #include <internal/facts/posix/ssh_resolver.hpp>
+ #include <internal/facts/posix/timezone_resolver.hpp>
+-#include <internal/facts/resolvers/operating_system_resolver.hpp>
++#include <internal/facts/posix/operating_system_resolver.hpp>
+
+ using namespace std;
+
+@@ -20,7 +20,7 @@ namespace facter { namespace facts {
+ void collection::add_platform_facts()
+ {
+ add(make_shared<posix::kernel_resolver>());
+- add(make_shared<resolvers::operating_system_resolver>());
++ add(make_shared<posix::operating_system_resolver>());
+ add(make_shared<bsd::uptime_resolver>());
+ add(make_shared<bsd::filesystem_resolver>());
+ add(make_shared<posix::ssh_resolver>());
Added: head/sysutils/facter/files/patch-lib_src_facts_resolvers_operating__system__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_resolvers_operating__system__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,32 @@
+--- lib/src/facts/resolvers/operating_system_resolver.cc.orig 2017-07-18 18:49:09 UTC
++++ lib/src/facts/resolvers/operating_system_resolver.cc
+@@ -231,18 +231,27 @@ namespace facter { namespace facts { nam
+ {
+ data result;
+
++ collect_kernel_data(facts, result);
++ collect_release_data(facts, result);
++
++ return result;
++ }
++
++ void operating_system_resolver::collect_kernel_data(collection& facts, data& result)
++ {
+ auto kernel = facts.get<string_value>(fact::kernel);
+ if (kernel) {
+ result.name = kernel->value();
+ result.family = kernel->value();
+ }
++ }
+
++ void operating_system_resolver::collect_release_data(collection& facts, data& result)
++ {
+ auto release = facts.get<string_value>(fact::kernel_release);
+ if (release) {
+ result.release = release->value();
+ }
+-
+- return result;
+ }
+
+ tuple<string, string> operating_system_resolver::parse_distro(string const& name, string const& release)
Added: head/sysutils/facter/files/patch-lib_src_facts_resolvers_zfs__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_resolvers_zfs__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,40 @@
+--- lib/src/facts/resolvers/zfs_resolver.cc.orig 2017-07-18 18:49:09 UTC
++++ lib/src/facts/resolvers/zfs_resolver.cc
+@@ -18,7 +18,7 @@ namespace facter { namespace facts { nam
+ "ZFS",
+ {
+ fact::zfs_version,
+- fact::zfs_featurenumbers
++ fact::zfs_versionnumbers
+ })
+ {
+ }
+@@ -30,8 +30,8 @@ namespace facter { namespace facts { nam
+ if (!data.version.empty()) {
+ facts.add(fact::zfs_version, make_value<string_value>(move(data.version)));
+ }
+- if (!data.features.empty()) {
+- facts.add(fact::zfs_featurenumbers, make_value<string_value>(boost::join(data.features, ",")));
++ if (!data.versions.empty()) {
++ facts.add(fact::zfs_versionnumbers, make_value<string_value>(boost::join(data.versions, ",")));
+ }
+ }
+
+@@ -48,12 +48,12 @@ namespace facter { namespace facts { nam
+ return true;
+ });
+
+- // Get the ZFS features
+- static boost::regex zfs_feature("\\s*(\\d+)[ ]");
++ // Get the ZFS versions
++ static boost::regex zfs_supported_version("^\\s*(\\d+)[ ]");
+ each_line(zfs_command(), {"upgrade", "-v"}, [&] (string& line) {
+- string feature;
+- if (re_search(line, zfs_feature, &feature)) {
+- result.features.emplace_back(move(feature));
++ string version;
++ if (re_search(line, zfs_supported_version, &version)) {
++ result.versions.emplace_back(move(version));
+ }
+ return true;
+ });
Added: head/sysutils/facter/files/patch-lib_src_facts_resolvers_zpool__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_src_facts_resolvers_zpool__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,82 @@
+--- lib/src/facts/resolvers/zpool_resolver.cc.orig 2017-07-18 18:49:09 UTC
++++ lib/src/facts/resolvers/zpool_resolver.cc
+@@ -18,7 +18,8 @@ namespace facter { namespace facts { nam
+ "ZFS storage pool",
+ {
+ fact::zpool_version,
+- fact::zpool_featurenumbers,
++ fact::zpool_featureflags,
++ fact::zpool_versionnumbers,
+ })
+ {
+ }
+@@ -30,8 +31,11 @@ namespace facter { namespace facts { nam
+ if (!data.version.empty()) {
+ facts.add(fact::zpool_version, make_value<string_value>(move(data.version)));
+ }
+- if (!data.features.empty()) {
+- facts.add(fact::zpool_featurenumbers, make_value<string_value>(boost::join(data.features, ",")));
++ if (!data.feature_flags.empty()) {
++ facts.add(fact::zpool_featureflags, make_value<string_value>(boost::join(data.feature_flags, ",")));
++ }
++ if (!data.versions.empty()) {
++ facts.add(fact::zpool_versionnumbers, make_value<string_value>(boost::join(data.versions, ",")));
+ }
+ }
+
+@@ -39,16 +43,47 @@ namespace facter { namespace facts { nam
+ {
+ data result;
+
++ enum { UNKNOWN, FEATURES, VERSIONS } state = UNKNOWN;
++
+ // Get the zpool version and features
+- static boost::regex zpool_version("ZFS pool version (\\d+)[.]");
+- static boost::regex zpool_feature("\\s*(\\d+)[ ]");
++ static boost::regex zpool_version("^This system is currently running ZFS pool version (\\d+)\\.$");
++ static boost::regex zpool_feature_flags("^This system supports ZFS pool feature flags\\.$");
++
++ static boost::regex zpool_supported_feature_header("^The following features are supported:$");
++ static boost::regex zpool_supported_versions_header("^The following versions are supported:$");
++ static boost::regex zpool_supported_legacy_versions_header("^The following legacy versions are also supported:$");
++
++ static boost::regex zpool_supported_feature("^([[:alnum:]_]+)(\\s+\\(read-only compatible\\))?$");
++ static boost::regex zpool_supported_version("^\\s*(\\d+)[ ]");
++
++ string feature;
+ each_line(zpool_command(), {"upgrade", "-v"}, [&] (string& line) {
+- if (re_search(line, zpool_version, &result.version)) {
+- return true;
+- }
+- string feature;
+- if (re_search(line, zpool_feature, &feature)) {
+- result.features.emplace_back(move(feature));
++ switch (state) {
++ case UNKNOWN:
++ if (re_search(line, zpool_version, &result.version)) {
++ } else if (re_search(line, zpool_feature_flags)) {
++ result.version = "5000";
++ } else if (re_search(line, zpool_supported_feature_header)) {
++ state = FEATURES;
++ } else if (re_search(line, zpool_supported_versions_header)) {
++ state = VERSIONS;
++ }
++ break;
++
++ case FEATURES:
++ if (re_search(line, zpool_supported_feature, &feature)) {
++ result.feature_flags.emplace_back(move(feature));
++ } else if (re_search(line, zpool_supported_legacy_versions_header)) {
++ state = VERSIONS;
++ }
++ break;
++
++ case VERSIONS:
++ string feature;
++ if (re_search(line, zpool_supported_version, &feature)) {
++ result.versions.emplace_back(move(feature));
++ }
++ break;
+ }
+ return true;
+ });
Added: head/sysutils/facter/files/patch-lib_tests_facts_resolvers_zfs__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_tests_facts_resolvers_zfs__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,20 @@
+--- lib/tests/facts/resolvers/zfs_resolver.cc.orig 2017-07-18 18:49:09 UTC
++++ lib/tests/facts/resolvers/zfs_resolver.cc
+@@ -37,7 +37,7 @@ struct test_zfs_resolver : zfs_resolver
+ {
+ data result;
+ result.version = "1";
+- result.features = { "1", "2", "3" };
++ result.versions = { "1", "2", "3" };
+ return result;
+ }
+ };
+@@ -57,7 +57,7 @@ SCENARIO("using the ZFS resolver") {
+ auto value = facts.get<string_value>(fact::zfs_version);
+ REQUIRE(value);
+ REQUIRE(value->value() == "1");
+- value = facts.get<string_value>(fact::zfs_featurenumbers);
++ value = facts.get<string_value>(fact::zfs_versionnumbers);
+ REQUIRE(value);
+ REQUIRE(value->value() == "1,2,3");
+ }
Added: head/sysutils/facter/files/patch-lib_tests_facts_resolvers_zpool__resolver.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_tests_facts_resolvers_zpool__resolver.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,31 @@
+--- lib/tests/facts/resolvers/zpool_resolver.cc.orig 2017-07-18 18:49:09 UTC
++++ lib/tests/facts/resolvers/zpool_resolver.cc
+@@ -37,7 +37,8 @@ struct test_zpool_resolver : zpool_resol
+ {
+ data result;
+ result.version = "1";
+- result.features = { "1", "2", "3" };
++ result.versions = { "1", "2", "3" };
++ result.feature_flags = { "async_destroy", "lz4_compress", "enabled_txg" };
+ return result;
+ }
+ };
+@@ -53,13 +54,16 @@ SCENARIO("using the zpool resolver") {
+ WHEN("data is present") {
+ facts.add(make_shared<test_zpool_resolver>());
+ THEN("flat facts are added") {
+- REQUIRE(facts.size() == 2u);
++ REQUIRE(facts.size() == 3u);
+ auto value = facts.get<string_value>(fact::zpool_version);
+ REQUIRE(value);
+ REQUIRE(value->value() == "1");
+- value = facts.get<string_value>(fact::zpool_featurenumbers);
++ value = facts.get<string_value>(fact::zpool_versionnumbers);
+ REQUIRE(value);
+ REQUIRE(value->value() == "1,2,3");
++ value = facts.get<string_value>(fact::zpool_featureflags);
++ REQUIRE(value);
++ REQUIRE(value->value() == "async_destroy,lz4_compress,enabled_txg");
+ }
+ }
+ }
Added: head/sysutils/facter/files/patch-lib_tests_facts_schema.cc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/facter/files/patch-lib_tests_facts_schema.cc Sat Aug 12 13:09:34 2017 (r447826)
@@ -0,0 +1,21 @@
+--- lib/tests/facts/schema.cc.orig 2017-07-18 18:49:09 UTC
++++ lib/tests/facts/schema.cc
+@@ -396,7 +396,7 @@ protected:
+ {
+ data result;
+ result.version = 1;
+- result.features = { "1", "2", "3" };
++ result.versions = { "1", "2", "3" };
+ return result;
+ }
+ };
+@@ -433,7 +433,8 @@ protected:
+ {
+ data result;
+ result.version = 1;
+- result.features = { "1", "2", "3" };
++ result.versions = { "1", "2", "3" };
++ result.feature_flags = { "async_destroy", "lz4_compress", "enabled_txg" };
+ return result;
+ }
+ };
Modified: head/sysutils/facter/pkg-plist
==============================================================================
--- head/sysutils/facter/pkg-plist Sat Aug 12 12:46:01 2017 (r447825)
+++ head/sysutils/facter/pkg-plist Sat Aug 12 13:09:34 2017 (r447826)
@@ -13,6 +13,7 @@ include/facter/facts/value.hpp
include/facter/facts/vm.hpp
include/facter/logging/logging.hpp
include/facter/ruby/ruby.hpp
+include/facter/util/config.hpp
include/facter/util/string.hpp
include/facter/version.h
lib/libfacter.so
More information about the svn-ports-all
mailing list