Mon Feb 7 10:48:26 2022 UTC ()
libfilezilla: update to 0.36.0.

0.36.0 (2022-02-02)

+ Added parameter to tls_layer::set_alpn to control which peer has priority over which ALPN is chosen.
+ Added fz::hmac_sha1
+ Mutex debugging framework to detect locking order inversions that may lead to deadlocks
+ Add additional io_redirect mode to fz::process_spawn where the parent-side handles for stdin/out/err are always closed
- fz::json: Handle object members with empty string as name
- Minor performance improvements to removing timers and to spawning processes

0.35.0 (2021-12-08)

+ *nix: Added fz::forkblock which can be used to safely set FD_CLOEXEC on descriptors even if the system lacks SOCK_CLOCKEXEC, MSG_CMSG_CLOEXEC, pipe2 or accept4
+ macOS: Impersonation support
+ Added fz::tls_layer::set_unexpected_eof_cb, in some situations it may be desirable that unexpected closure is not reported as a hard errror
- Added various convenience overloads for fz::buffer
- Performance improvement for fz::json::to_string

0.34.2 (2021-10-26)

+ fz::file::open now returns fz::result
- fz::tls_layer: Additional fixes for trust path extration
- MSW: fz::local_filesys::get_next_file now handles directory contents returned by the kernel in oversized buffers with embedded nulls

0.34.1 (2021-10-19)

- *nix: Handle supplementary groups when impersonating
- *nix: fz::recv_fd now sets the MSG_CMSG_CLOEXEC flag
- *nix: fz::local_filesys::get_link_target now handles link targets larger than 1024 bytes
- MSW: Restrict DLL search path for system DLLs to the system32 directory
- fz::tls_layer: Fixed how trust path extration interacts with CRLs

0.34.0 (2021-10-11)

- MSW: Load shell32.dll and ole32.dll on-demand at runtime, it is not available in all environments
- Made fz::local_filesys movable

0.33.0 (2021-09-29)

+ MSW: Add local_filesys::begin_find_files overload accepting a directory HANDLE
+ If peer certificate chain is trusted by the system trust store, tls_session_info::get_certificates now returns the actual path to the trust anchor, use tls_session_info::get_peer_certificates to get the peer certificates as received by the server. GnuTLS 3.7.0 or later is required.
- JSON: Correctly handle \u-encoded UTF-16 surrogate pairs

0.32.0 (2021-09-14)

+ MSW: Impersonation support
- Allow more direct control over session ticket/PSK generation under TLS 1.3, requires GnuTLS 3.6.14 or later
- Ensure an error is returned if accepting a socket fails
- Fixed appending to fz::buffer

0.32.0-beta1 (2021-08-30)

+ *nix: Impersonation support
+ *nix: Sending of file descriptors over Unix Domain Sockets
* nix: Add local_filesys::begin_find_files overload accepting a directory file descriptor
+ Allow creating fz::file from a file descriptors/handle, add function to detach the descriptor/handle
+ Added fz::datetime::operator>=
+ Added fz::duration::absolute()
- fz::sprintf no longer crashes on x and X conversion specifiers if a negative signed integer is passed as argument
- Replace std::random_device as the C++ standard allows it to not be random
- JSON: Fixed crash if assigning values from nested values
- JWS: Fixed memory leak and padding of signature components


(wiz)
diff -r1.39 -r1.40 pkgsrc/net/libfilezilla/Makefile
diff -r1.13 -r1.14 pkgsrc/net/libfilezilla/PLIST
diff -r1.33 -r1.34 pkgsrc/net/libfilezilla/distinfo
diff -r0 -r1.1 pkgsrc/net/libfilezilla/patches/patch-lib_impersonation.cpp

cvs diff -r1.39 -r1.40 pkgsrc/net/libfilezilla/Makefile (expand / switch to unified diff)

--- pkgsrc/net/libfilezilla/Makefile 2021/12/08 16:06:02 1.39
+++ pkgsrc/net/libfilezilla/Makefile 2022/02/07 10:48:26 1.40
@@ -1,17 +1,16 @@ @@ -1,17 +1,16 @@
1# $NetBSD: Makefile,v 1.39 2021/12/08 16:06:02 adam Exp $ 1# $NetBSD: Makefile,v 1.40 2022/02/07 10:48:26 wiz Exp $
2 2
3DISTNAME= libfilezilla-0.31.1 3DISTNAME= libfilezilla-0.36.0
4PKGREVISION= 2 
5CATEGORIES= net 4CATEGORIES= net
6# some kind of direct-download disabling 5# some kind of direct-download disabling
7#MASTER_SITES= https://dl3.cdn.filezilla-project.org/libfilezilla/ 6#MASTER_SITES= https://dl3.cdn.filezilla-project.org/libfilezilla/
8EXTRACT_SUFX= .tar.bz2 7EXTRACT_SUFX= .tar.bz2
9 8
10MAINTAINER= pkgsrc-users@NetBSD.org 9MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= https://lib.filezilla-project.org/ 10HOMEPAGE= https://lib.filezilla-project.org/
12COMMENT= Library for building high-performing, platform-independent programs 11COMMENT= Library for building high-performing, platform-independent programs
13LICENSE= gnu-gpl-v2 12LICENSE= gnu-gpl-v2
14 13
15GNU_CONFIGURE= yes 14GNU_CONFIGURE= yes
16USE_LIBTOOL= yes 15USE_LIBTOOL= yes
17USE_TOOLS+= gmake msgfmt pkg-config 16USE_TOOLS+= gmake msgfmt pkg-config

cvs diff -r1.13 -r1.14 pkgsrc/net/libfilezilla/PLIST (expand / switch to unified diff)

--- pkgsrc/net/libfilezilla/PLIST 2021/07/29 10:28:47 1.13
+++ pkgsrc/net/libfilezilla/PLIST 2022/02/07 10:48:26 1.14
@@ -1,29 +1,31 @@ @@ -1,29 +1,31 @@
1@comment $NetBSD: PLIST,v 1.13 2021/07/29 10:28:47 wiz Exp $ 1@comment $NetBSD: PLIST,v 1.14 2022/02/07 10:48:26 wiz Exp $
2include/libfilezilla/apply.hpp 2include/libfilezilla/apply.hpp
3include/libfilezilla/buffer.hpp 3include/libfilezilla/buffer.hpp
4include/libfilezilla/encode.hpp 4include/libfilezilla/encode.hpp
5include/libfilezilla/encryption.hpp 5include/libfilezilla/encryption.hpp
6include/libfilezilla/event.hpp 6include/libfilezilla/event.hpp
7include/libfilezilla/event_handler.hpp 7include/libfilezilla/event_handler.hpp
8include/libfilezilla/event_loop.hpp 8include/libfilezilla/event_loop.hpp
9include/libfilezilla/file.hpp 9include/libfilezilla/file.hpp
10include/libfilezilla/format.hpp 10include/libfilezilla/format.hpp
 11include/libfilezilla/fsresult.hpp
11include/libfilezilla/glue/unix.hpp 12include/libfilezilla/glue/unix.hpp
12include/libfilezilla/glue/windows.hpp 13include/libfilezilla/glue/windows.hpp
13include/libfilezilla/glue/wx.hpp 14include/libfilezilla/glue/wx.hpp
14include/libfilezilla/glue/wxinvoker.hpp 15include/libfilezilla/glue/wxinvoker.hpp
15include/libfilezilla/hash.hpp 16include/libfilezilla/hash.hpp
16include/libfilezilla/hostname_lookup.hpp 17include/libfilezilla/hostname_lookup.hpp
 18include/libfilezilla/impersonation.hpp
17include/libfilezilla/invoker.hpp 19include/libfilezilla/invoker.hpp
18include/libfilezilla/iputils.hpp 20include/libfilezilla/iputils.hpp
19include/libfilezilla/json.hpp 21include/libfilezilla/json.hpp
20include/libfilezilla/jws.hpp 22include/libfilezilla/jws.hpp
21include/libfilezilla/libfilezilla.hpp 23include/libfilezilla/libfilezilla.hpp
22include/libfilezilla/local_filesys.hpp 24include/libfilezilla/local_filesys.hpp
23include/libfilezilla/logger.hpp 25include/libfilezilla/logger.hpp
24include/libfilezilla/mutex.hpp 26include/libfilezilla/mutex.hpp
25include/libfilezilla/nonowning_buffer.hpp 27include/libfilezilla/nonowning_buffer.hpp
26include/libfilezilla/optional.hpp 28include/libfilezilla/optional.hpp
27include/libfilezilla/private/defs.hpp 29include/libfilezilla/private/defs.hpp
28include/libfilezilla/private/visibility.hpp 30include/libfilezilla/private/visibility.hpp
29include/libfilezilla/process.hpp 31include/libfilezilla/process.hpp

cvs diff -r1.33 -r1.34 pkgsrc/net/libfilezilla/distinfo (expand / switch to unified diff)

--- pkgsrc/net/libfilezilla/distinfo 2021/10/26 11:05:54 1.33
+++ pkgsrc/net/libfilezilla/distinfo 2022/02/07 10:48:26 1.34
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
1$NetBSD: distinfo,v 1.33 2021/10/26 11:05:54 nia Exp $ 1$NetBSD: distinfo,v 1.34 2022/02/07 10:48:26 wiz Exp $
2 2
3BLAKE2s (libfilezilla-0.31.1.tar.bz2) = ca51716842113f08b37ab3967fa1489def8b7ee3dc82d274e5bcdb4773753a2a 3BLAKE2s (libfilezilla-0.36.0.tar.bz2) = 2f73811e989f0fb8fa2afbfbef3fcf99a4323ea147ffdda884c907ef0b3c9fee
4SHA512 (libfilezilla-0.31.1.tar.bz2) = 072ae343bc44939deff435078c29954dc60e4bb5079aa705b7445bec17717919d4957858538284e4f131d734439743bd5d39085a618ea41d586be8be887cf2b8 4SHA512 (libfilezilla-0.36.0.tar.bz2) = c6b0240c560afb87426f7ccf01e34eb92975b043697be89f26a12dcfaf4a109d308eed200429f986b14f80111573ea5a869194375c844fa7b666d173e9629a0a
5Size (libfilezilla-0.31.1.tar.bz2) = 585070 bytes 5Size (libfilezilla-0.36.0.tar.bz2) = 598327 bytes
 6SHA1 (patch-lib_impersonation.cpp) = 08f549a935e7534721b36d6689d5324e6c0e6ff7

File Added: pkgsrc/net/libfilezilla/patches/patch-lib_impersonation.cpp
$NetBSD: patch-lib_impersonation.cpp,v 1.1 2022/02/07 10:48:26 wiz Exp $

Hide Linux-specific stuff in ifdef __Linux__

--- lib/impersonation.cpp.orig	2021-12-08 15:10:58.000000000 +0000
+++ lib/impersonation.cpp
@@ -7,7 +7,7 @@
 #include <optional>
 #include <tuple>
 
-#if FZ_UNIX
+#if FZ_UNIX && defined(__Linux__)
 #include <crypt.h>
 #include <shadow.h>
 #endif
@@ -58,7 +58,7 @@ passwd_holder get_passwd(fz::native_stri
 	return ret;
 }
 
-#if FZ_UNIX
+#if FZ_UNIX && defined(__Linux__)
 struct shadow_holder {
 	shadow_holder() = default;
 	shadow_holder(shadow_holder const&) = delete;
@@ -150,7 +150,7 @@ std::vector<gid_t> get_supplementary(std
 
 bool check_auth(fz::native_string const& username, fz::native_string const& password)
 {
-#if FZ_UNIX
+#if FZ_UNIX && defined(__Linux__)
 	auto shadow = get_shadow(username);
 	if (shadow.shadow_) {
 		struct crypt_data data{};