Hi,
This fixes facter build with clang6.
/usr/include/c++/v1/memory:2541:13: error: delete called on
'facter::facts::external::resolver' that is abstract but has non-virtual
destructor [-Werror,-Wdelete-non-virtual-dtor]
delete __ptr;
^
/usr/include/c++/v1/memory:2541:13: error: delete called on non-final
'facter::facts::collection' that has virtual functions but non-virtual
destructor [-Werror,-Wdelete-non-virtual-dtor]
delete __ptr;
^
ok?
bluhm
Index: sysutils/facter/patches/patch-lib_inc_facter_facts_collection_hpp
===================================================================
RCS file: sysutils/facter/patches/patch-lib_inc_facter_facts_collection_hpp
diff -N sysutils/facter/patches/patch-lib_inc_facter_facts_collection_hpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sysutils/facter/patches/patch-lib_inc_facter_facts_collection_hpp 15 Apr
2018 22:36:22 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/inc/facter/facts/collection.hpp
+--- lib/inc/facter/facts/collection.hpp.orig
++++ lib/inc/facter/facts/collection.hpp
+@@ -101,7 +101,7 @@ namespace facter { namespace facts {
+ /**
+ * Destructor for fact collection.
+ */
+- ~collection();
++ virtual ~collection();
+
+ /**
+ * Prevents the fact collection from being copied.
Index: sysutils/facter/patches/patch-lib_inc_facter_facts_external_resolver_hpp
===================================================================
RCS file:
sysutils/facter/patches/patch-lib_inc_facter_facts_external_resolver_hpp
diff -N sysutils/facter/patches/patch-lib_inc_facter_facts_external_resolver_hpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sysutils/facter/patches/patch-lib_inc_facter_facts_external_resolver_hpp
16 Apr 2018 00:07:52 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Index: lib/inc/facter/facts/external/resolver.hpp
+--- lib/inc/facter/facts/external/resolver.hpp.orig
++++ lib/inc/facter/facts/external/resolver.hpp
+@@ -44,6 +44,11 @@ namespace facter { namespace facts { namespace externa
+ * @param facts The fact collection to populate the external facts
into.
+ */
+ virtual void resolve(std::string const& path, collection& facts)
const = 0;
++
++ /**
++ * Destructor for external resolver.
++ */
++ virtual ~resolver() {}
+ };
+
+ }}} // namespace facter::facts::external