Date: Sat, 12 Aug 2017 13:09:34 +0000 (UTC) From: =?UTF-8?Q?Romain_Tarti=c3=a8re?= <romain@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r447826 - in head/sysutils/facter: . files Message-ID: <201708121309.v7CD9Yrg080778@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708121309.v7CD9Yrg080778>