On Sun, Dec 05 2021, Christian Weisgerber <na...@mips.inka.de> wrote:
> I ran another amd64 bulk build with base clang updated to LLVM 13
> and --allow-shlib-undefined as the default again (~patrick/llvm.v6).
> I also put in a tentative fix for security/nss.
>
> Failure logs:
> http://build-failures.rhaalovely.net/amd64-clang/2021-12-04/
>
> Triage:

[...]

> security/encfs                  C++: no matching constructor

I had to diff an old /usr/include/c++/v1/memory and a new
/usr/include/c++/v1/__memory/shared_ptr.h to get a hint about what was
going wrong.  Which lead to:

/usr/include/c++/v1/__memory/shared_ptr.h:464:9: note: candidate template 
ignored: requirement '__shared_ptr_deleter_ctor_reqs<encfs::NullDestructor, 
encfs::NullKey, encfs::AbstractCipherKey>::value' was not satisfied [with _Yp = 
encfs::NullKey, _Dp = encfs::NullDestructor]
        shared_ptr(_Yp* __p, _Dp __d,

-> https://reviews.llvm.org/D81414

The tentative diff below fixes the signature of the destructor/deleter.
Reviews from people versed into C++ could be helpful.  ok?

While here:
- fix HOMEPAGE, the previous one was replaced with a generic
  https://www.arg0.net/projects with the encfs entry pointing to the
  github repo.
- respect CXXFLAGS (repairing the mistake I introduced)
- re-enable tests


Index: Makefile
===================================================================
RCS file: /cvs/ports/security/encfs/Makefile,v
retrieving revision 1.24
diff -u -p -r1.24 Makefile
--- Makefile    4 Dec 2021 11:35:34 -0000       1.24
+++ Makefile    6 Dec 2021 23:03:05 -0000
@@ -4,11 +4,11 @@ COMMENT =             fuse-based cryptographic file
 
 V =                    1.9.5
 DISTNAME =             encfs-$V
-REVISION =             3
+REVISION =             4
 
 CATEGORIES =           security
 
-HOMEPAGE =             http://www.arg0.net/encfs
+HOMEPAGE =             https://github.com/vgough/encfs
 
 # GPLv3+
 PERMIT_PACKAGE =       Yes
@@ -32,9 +32,9 @@ LIB_DEPENDS =         devel/gettext,-runtime \
 CONFIGURE_ARGS =       -DUSE_INTERNAL_TINYXML=Off \
                        -DCMAKE_DISABLE_FIND_PACKAGE_Git=On
 
-CONFIGURE_ENV =                CXXFLAGS="-DHAVE_UTIMENSAT 
-D_DIRENT_HAVE_D_TYPE"
+CXXFLAGS+=             -DHAVE_UTIMENSAT -D_DIRENT_HAVE_D_TYPE
 
-TEST_TARGET =          unittests test
+TEST_TARGET =          unittests test/test
 
 .include <bsd.port.mk>
 
Index: patches/patch-encfs_NullCipher_cpp
===================================================================
RCS file: patches/patch-encfs_NullCipher_cpp
diff -N patches/patch-encfs_NullCipher_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-encfs_NullCipher_cpp  6 Dec 2021 23:03:05 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Fix str::shared_ptr destructor signature.
+
+Index: encfs/NullCipher.cpp
+--- encfs/NullCipher.cpp.orig
++++ encfs/NullCipher.cpp
+@@ -76,7 +76,7 @@ class NullDestructor {
+   NullDestructor &operator=(const NullDestructor &) = delete; // copy 
assignment
+   NullDestructor& operator=(NullDestructor&& other) = delete; // move 
assignment
+ 
+-  void operator()(NullKey *&) {}
++  void operator()(NullKey *) {}
+ };
+ std::shared_ptr<AbstractCipherKey> gNullKey(new NullKey(), NullDestructor());
+ 


-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to