On Sun, Dec 05 2021, Christian Weisgerber <naddy@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
No comments:
Post a Comment