<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/8cf5ea6c4f8810fb5a5c66d3bdf27c09202c93fc">https://github.com/macports/macports-ports/commit/8cf5ea6c4f8810fb5a5c66d3bdf27c09202c93fc</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 8cf5ea6c4f8810fb5a5c66d3bdf27c09202c93fc
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Sun Apr 28 00:35:59 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> FileZilla: update to 3.67.0, fix for older systems
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/69113
</span>---
www/FileZilla/Portfile | 84 +++++++--
www/FileZilla/files/patch-fix-fz_datadir.diff | 39 ++++
www/FileZilla/files/patch-fix-mac-wxgtk.diff | 33 ++++
.../files/patch-relax-wxwidgets-version.diff | 13 ++
www/FileZilla/files/patch-wx3.0.diff | 208 +++++++++++++++++++++
5 files changed, 362 insertions(+), 15 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/FileZilla/Portfile b/www/FileZilla/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 389f212ff2a..aece0deaa35 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/www/FileZilla/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/FileZilla/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +1,18 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup wxWidgets 1.0
</span> PortGroup compiler_blacklist_versions 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup wxWidgets 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# LegacySupport only used for providing wrappers here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.newest_darwin_requires_legacy 0
</span>
name FileZilla
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 3.66.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 3.67.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span>
categories www aqua
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span> maintainers nomaintainer
license GPL-2+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,17 +25,47 @@ long_description FileZilla Client is a fast and reliable cross-platform \
</span> homepage https://filezilla-project.org/
master_sites https://download.filezilla-project.org/client
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 950e44a39b4464cd47888295eb20cb394b8df6fd \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 a40f04e02efaae7b50d1515ee1c36c4b0e445818566c450e440bfd6c70e9b203 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 4057952
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 598141c7af251fbeec751bbaf7e6573d0f0e40af \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 e5dadc807db999ceb464984f974d3ef59b562c59546658057e9b201183adaf9a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 4058264
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# FileZilla 3.67 dropped support for wxWidgets < 3.2.1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# However, wxWidgets-3.2 does not build on < 10.11,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# and wxWidgets-3.0* does not work correctly on < 10.8.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# So for older macOS (and non-Darwin) use wxGTK.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} > 15} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wxWidgets.use wxWidgets-3.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${os.platform} eq "darwin" && ${os.major} > 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wxWidgets.use wxWidgets-3.0-cxx11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wxWidgets.use wxGTK-3.0-cxx11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:desktop-file-utils
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ legacysupport.redirect_bins filezilla
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Contrary to documentation, FZ_DATADIR does nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # on macOS, since assumption of app bundle is hardcoded.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-fix-fz_datadir.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# wxWidgets-3.0 with support for C++11 on < 10.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-wxWidgets.use wxWidgets-3.0-cxx11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${wxWidgets.version} < 3.2} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Here we just restore macOS-relevant fallbacks from 3.66.4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-relax-wxwidgets-version.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-wx3.0.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build port:pkgconfig \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:gettext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:autoconf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:automake \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:gettext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libtool \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:pkgconfig
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib port:dbus \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:dbus \
</span> path:lib/pkgconfig/gnutls.pc:gnutls \
port:libfilezilla \
port:libidn \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -40,12 +74,19 @@ depends_lib port:dbus \
</span> port:xdg-utils \
port:${wxWidgets.port}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # checking for whether we need to use Boost Regex due GCC bug 86164
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # configure: error: Boost Regex 1.76 or higher not found.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:boost
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> distname ${name}_${version}_src
use_xz yes
worksrcdir filezilla-${version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles patch-src-commonui-buildinfo.cpp.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-src-commonui-buildinfo.cpp.diff \
</span> patch-src-engine-version.cpp.diff \
patch-src-interface-mainfrm.cpp.diff \
patch-src-interface-toolbar.mm.diff \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -54,6 +95,11 @@ patchfiles patch-src-commonui-buildinfo.cpp.diff \
</span> patch-paths-1050.diff
platform darwin {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Condition is wrong in the source, since this object is required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # for linking on macOS, whether or not app bundle is built.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-fix-mac-wxgtk.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${os.major} < 11} {
# O_CLOEXEC was added in Mac OS X 10.7. Only apply this patch on
# system versions which need it because it could create a race
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,7 +110,8 @@ platform darwin {
</span>
# http://trac.filezilla-project.org/ticket/5473
# http://sourceforge.net/p/tinyxml/patches/51/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args --with-tinyxml=builtin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-tinyxml=builtin \
</span> --with-pugixml=builtin \
--disable-manualupdatecheck \
--disable-autoupdatecheck \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -78,8 +125,15 @@ compiler.thread_local_storage yes
</span> # https://trac.macports.org/ticket/59805
compiler.blacklist-append {clang < 1000}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- copy ${worksrcpath}/FileZilla.app ${destroot}${applications_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# We only override destroot for app bundle build.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} > 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ copy ${worksrcpath}/FileZilla.app ${destroot}${applications_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
livecheck.type regex
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/FileZilla/files/patch-fix-fz_datadir.diff b/www/FileZilla/files/patch-fix-fz_datadir.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..21f595c72e2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/FileZilla/files/patch-fix-fz_datadir.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,39 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/commonui/fz_paths.cpp 2021-10-26 20:12:19.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/commonui/fz_paths.cpp 2024-04-24 10:26:33.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -245,7 +245,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * and hope we find them. If not, the user can still specify on the cmdline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * and using environment variables where the resources are.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * At least on OS X it's simple: All inside application bundle.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CLocalPath ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -264,20 +263,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef FZ_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (void)prefixSub;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (searchSelfDir) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFBundleRef bundle = CFBundleGetMainBundle();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (bundle) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (testPath(fromCFURLRef(CFBundleCopySharedSupportURL(bundle)))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return CLocalPath();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // First try the user specified data dir.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (searchSelfDir) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (testPath(GetEnv("FZ_DATADIR"))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -327,7 +312,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ret.clear();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CLocalPath GetDefaultsDir()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/FileZilla/files/patch-fix-mac-wxgtk.diff b/www/FileZilla/files/patch-fix-mac-wxgtk.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b181c6eeea0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/FileZilla/files/patch-fix-mac-wxgtk.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+We do not want a bundle with wxGTK in this case.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(It might be possible to still build this as a bundle,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+but it will require more patches to the sources. No need.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure 2024-04-16 02:20:29.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure 2024-04-27 22:26:10.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21311,7 +21311,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Create application bundle on OS X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if test "$mac" = "1"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if echo $WX_CPPFLAGS | grep __WXMAC__ > /dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macappbundle="yes"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macappbundle="no"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/commonui/Makefile.am 2023-05-10 16:01:51.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/commonui/Makefile.am 2024-04-24 09:31:15.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,8 +65,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libfzclient_commonui_private_la_LDFLAGS += -lole32 -Wl,-luuid
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if MACAPPBUNDLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ noinst_LTLIBRARIES = libfzclient-commonui-private-mac.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libfzclient_commonui_private_mac_la_CPPFLAGS = -I$(top_builddir)/config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,5 +82,3 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libfzclient_commonui_private_la_LIBADD = libfzclient-commonui-private-mac.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libfzclient_commonui_private_la_DEPENDENCIES += libfzclient-commonui-private-mac.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/FileZilla/files/patch-relax-wxwidgets-version.diff b/www/FileZilla/files/patch-relax-wxwidgets-version.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..dc0aeda2983
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/FileZilla/files/patch-relax-wxwidgets-version.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Until wxWidgets 3.2.x is fixed for older macOS, this is unavoidable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure 2024-04-16 02:20:29.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure 2024-04-27 22:26:10.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19636,7 +19636,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- MIN_WX_VERSION="3.2.1" # Do not downgrade this. wx 3.2.0 and older have too many known and fixed bugs affecting FileZilla.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MIN_WX_VERSION="3.0.4" # Do not downgrade this. wx 3.0.3 and older have too many known and fixed bugs affecting FileZilla.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x${WX_CONFIG_NAME+set} != xset ; then
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/www/FileZilla/files/patch-wx3.0.diff b/www/FileZilla/files/patch-wx3.0.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e63987cf268
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/www/FileZilla/files/patch-wx3.0.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,208 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/aui_notebook_ex.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/aui_notebook_ex.cpp 2024-04-27 22:28:49.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -62,6 +62,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ disabled = active.ConvertToDisabled(brightness);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void PrepareTabIcon(wxBitmapBundle & active, wxBitmapBundle & disabled, wxString const& art, wxSize const& size, wxSize const& canvasSize, wxSize const& offset = wxSize(), std::function<void(wxImage&)> const& f = nullptr, unsigned char brightness = 128)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wxBitmap a, d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,6 +70,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ active = MakeBmpBundle(a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ disabled = MakeBmpBundle(d);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,7 +101,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return art;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ virtual wxSize GetTabSize(wxDC& dc, wxWindow* wnd, const wxString& caption, const wxBitmapBundle& bitmap, bool active, int close_button_state, int* x_extent) override
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ virtual wxSize GetTabSize(wxDC& dc, wxWindow* wnd, const wxString& caption, const wxBitmap& bitmap, bool active, int close_button_state, int* x_extent) override
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wxSize size = TabArtBase::GetTabSize(dc, wnd, caption, bitmap, active, close_button_state, x_extent);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -180,11 +186,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ protected:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if USE_PREPARED_ICONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ virtual void UpdateColoursFromSystem() override
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TabArtBase::UpdateColoursFromSystem();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PrepareIcons();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void PrepareIcons()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/graphics.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/graphics.cpp 2024-04-27 22:33:29.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,12 +61,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ auto combo = dynamic_cast<wxComboBox*>(&m_wnd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (combo) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wxColour c = wxTextCtrl::GetClassDefaultAttributes().colBg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // In old versions of macOS, the wrong color may be reported. Try to detect it and just default to white.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ((!c.IsOk() || c == *wxBLACK) && !wxSystemSettingsNative::GetAppearance().IsDark()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return wxColour(255, 255, 255);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return c;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/filelistctrl.cpp 2024-02-07 00:35:09.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/filelistctrl.cpp 2024-04-27 22:32:11.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -878,7 +878,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const int item = event.GetIndex();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if !defined(__WXMSW__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined(__WXMSW__) && wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (item == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (wxGetKeyState(WXK_SHIFT)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Sad, so expensive.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/themeprovider.cpp 2024-01-27 12:30:02.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/themeprovider.cpp 2024-04-27 23:00:33.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -338,7 +338,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool allowContentScale{true};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (client == wxART_TOOLBAR) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ allowContentScale = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/textctrlex.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/textctrlex.cpp 2024-04-27 22:42:37.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3,2,1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OSXEnableAutomaticQuoteSubstitution(false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OSXEnableAutomaticDashSubstitution(false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/StatusView.cpp 2024-02-07 00:13:14.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/StatusView.cpp 2024-04-27 22:41:55.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -95,7 +95,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ : COptionChangeEventHandler(this)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ , options_(options)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3, 1, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int const border = wxBORDER_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int const border = wxBORDER_SUNKEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/statusbar.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/statusbar.cpp 2024-04-27 22:41:14.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -761,7 +761,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CStatusBar::SetFieldBitmap(int field, wxStaticBitmap*& indicator, wxBitmap const& bmp, wxSize const& s)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (indicator) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RemoveField(field);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ indicator->Destroy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ indicator = nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/sitemanager_dialog.cpp 2024-03-06 12:30:02.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/sitemanager_dialog.cpp 2024-04-27 22:40:21.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1128,7 +1128,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m_is_deleting = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if !defined(__WXMSW__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined(__WXMSW__) && wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ auto focused = tree_->GetFocusedItem();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (focused) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree_->EnsureVisible(focused);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/renderer.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/renderer.cpp 2024-04-27 22:39:30.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "filezilla.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "renderer.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3, 1, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "themeprovider.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <wx/renderer.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/queue.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/queue.cpp 2024-04-27 22:38:37.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -896,7 +896,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ END_EVENT_TABLE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3, 1, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int constexpr border = wxBORDER_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int constexpr border = wxBORDER_SUNKEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/viewheader.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/viewheader.cpp 2024-04-27 22:57:31.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,13 +18,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __WXMSW__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const int border_offset = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__WXMAC__) && wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const int border_offset = 12;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++const int border_offset = 6;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const int border_offset = 10;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3, 2, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const int combo_offset = -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const int combo_offset = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -152,7 +154,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if wxUSE_UXTHEME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (!wxUxThemeIsActive())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if wxCHECK_VERSION(3, 1, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (wxUxThemeIsActive())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ wxUxThemeEngine *p = wxUxThemeEngine::Get();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (p && p->IsThemeActive())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif //wxUSE_UXTHEME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dc.SetPen(wxPen(wxSystemSettings::GetColour(IsEnabled() ? wxSYS_COLOUR_WINDOW : wxSYS_COLOUR_BTNFACE)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/interface/view.cpp 2024-01-02 22:09:45.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/interface/view.cpp 2024-04-27 22:55:07.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CView::CView(wxWindow* pParent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__WXMAC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__WXMAC__) && wxCHECK_VERSION(3, 1, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int const border = wxBORDER_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int const border = wxBORDER_SUNKEN;
</span></pre><pre style='margin:0'>
</pre>