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

Reply via email to