├── README.md ├── patches ├── libtool │ ├── 0001-Pick-up-clang_rt-static-archives-compiler-internal-l.patch │ └── 0002-Allow-statically-linking-compiler-support-libraries-.patch ├── filezilla │ ├── 0004-Mainfrm-fix-missing-definition.patch │ ├── 0001-Enable-shellext-build-on-clang-MinGW.patch │ ├── 0003-Enable-shellext-on-Windows-ARM.patch │ └── 0002-Enable-ARM64-installer.patch └── gmp-aarch64-configure-tweaks.patch └── .appveyor.yml /README.md: -------------------------------------------------------------------------------- 1 | # filezilla-woa 2 | Filezilla for Windows ARM32/ARM64, built with LLVM/MinGW toolchain 3 | 4 | Please go to [releases](https://github.com/driver1998/filezilla-woa/releases) for the latest binaries. 5 | 6 | Note: Filezilla is now enabled on MSYS2 CLANGARM64 subsystem, the latest version there is 3.57.0. This repo may be updated soon. 7 | 8 | # Features 9 | - Native filezilla and fzputty for Windows ARM32 and ARM64 platform 10 | - ARM64 installer (with x86 setup program) 11 | - ARM64 and ARM32 portable zip package 12 | - Shell extensions (ARM64/x86 versions) in ARM64 installer 13 | - Multilanguage/Localization 14 | -------------------------------------------------------------------------------- /patches/libtool/0001-Pick-up-clang_rt-static-archives-compiler-internal-l.patch: -------------------------------------------------------------------------------- 1 | diff --git a/m4/libtool.m4 b/m4/libtool.m4 2 | index b55a6e57..e6fc29bb 100644 3 | --- a/m4/libtool.m4 4 | +++ b/m4/libtool.m4 5 | @@ -7553,10 +7553,11 @@ if AC_TRY_EVAL(ac_compile); then 6 | # the conftest object file. 7 | pre_test_object_deps_done=no 8 | 9 | + eval std_shrext=\"$shrext_cmds\" 10 | for p in `eval "$output_verbose_link_cmd"`; do 11 | case $prev$p in 12 | 13 | - -L* | -R* | -l*) 14 | + -L* | -R* | -l* | *.${libext} | *${std_shrext}) 15 | # Some compilers place space between "-{L,R}" and the path. 16 | # Remove the space. 17 | if test x-L = "$p" || 18 | 19 | -------------------------------------------------------------------------------- /patches/filezilla/0004-Mainfrm-fix-missing-definition.patch: -------------------------------------------------------------------------------- 1 | From c48adc4ed47e3290d78ecd6298bc12afc06ac61a Mon Sep 17 00:00:00 2001 2 | From: GH Cao 3 | Date: Mon, 6 Apr 2020 23:46:37 +0800 4 | Subject: [PATCH 4/4] Mainfrm: fix missing definition 5 | 6 | --- 7 | src/interface/Mainfrm.h | 2 ++ 8 | 1 file changed, 2 insertions(+) 9 | 10 | diff --git a/src/interface/Mainfrm.h b/src/interface/Mainfrm.h 11 | index 0641ff5..a1e1a3c 100644 12 | --- a/src/interface/Mainfrm.h 13 | +++ b/src/interface/Mainfrm.h 14 | @@ -1,6 +1,8 @@ 15 | #ifndef FILEZILLA_INTERFACE_MAINFRM_HEADER 16 | #define FILEZILLA_INTERFACE_MAINFRM_HEADER 17 | 18 | +#include 19 | + 20 | #include "statusbar.h" 21 | #include "engine_context.h" 22 | #include "notification.h" 23 | -- 24 | 2.17.1 25 | 26 | -------------------------------------------------------------------------------- /patches/libtool/0002-Allow-statically-linking-compiler-support-libraries-.patch: -------------------------------------------------------------------------------- 1 | diff --git a/config/ltmain.in b/config/ltmain.in 2 | index e2fb2633..db4d775c 100644 3 | --- a/config/ltmain.sh 4 | +++ b/config/ltmain.sh 5 | @@ -5870,8 +5870,15 @@ func_mode_link () 6 | fi 7 | case $linkmode in 8 | lib) 9 | - # Linking convenience modules into shared libraries is allowed, 10 | - # but linking other static libraries is non-portable. 11 | + # Linking convenience modules and compiler provided static libraries 12 | + # into shared libraries is allowed, but linking other static 13 | + # libraries is non-portable. 14 | + case $deplib in 15 | + */libgcc*.$libext | */libclang_rt*.$libext) 16 | + deplibs="$deplib $deplibs" 17 | + continue 18 | + ;; 19 | + esac 20 | case " $dlpreconveniencelibs " in 21 | *" $deplib "*) ;; 22 | *) 23 | 24 | -------------------------------------------------------------------------------- /patches/filezilla/0001-Enable-shellext-build-on-clang-MinGW.patch: -------------------------------------------------------------------------------- 1 | From f885eb983f356aae00d4add2a834f0498a4af145 Mon Sep 17 00:00:00 2001 2 | From: GH Cao 3 | Date: Thu, 20 Feb 2020 20:18:03 +0800 4 | Subject: [PATCH 1/4] Enable shellext build on clang/MinGW 5 | 6 | --- 7 | src/fzshellext/configure.ac | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/src/fzshellext/configure.ac b/src/fzshellext/configure.ac 11 | index d5a7604..a11fcc0 100644 12 | --- a/src/fzshellext/configure.ac 13 | +++ b/src/fzshellext/configure.ac 14 | @@ -46,7 +46,7 @@ AC_MSG_CHECKING([whether the compiler actually targets MinGW]) 15 | matching= 16 | cxx_v=`"$CXX" -v 2>&1` 17 | if echo "$cxx_v" | grep -i '^target:.*$' >/dev/null 2>&1; then 18 | - if echo "$cxx_v" | grep -i '^target:.*mingw.*$' >/dev/null 2>&1; then 19 | + if echo "$cxx_v" | grep -i '^target:.*mingw\|windows.*$' >/dev/null 2>&1; then 20 | matching=1 21 | fi 22 | else 23 | -- 24 | 2.17.1 25 | 26 | -------------------------------------------------------------------------------- /patches/filezilla/0003-Enable-shellext-on-Windows-ARM.patch: -------------------------------------------------------------------------------- 1 | From 423f73160f597e352947a3afdeb158adae226450 Mon Sep 17 00:00:00 2001 2 | From: GH Cao 3 | Date: Thu, 20 Feb 2020 20:33:05 +0800 4 | Subject: [PATCH 3/4] Enable shellext on Windows ARM 5 | 6 | --- 7 | configure.ac | 13 +++++++++++-- 8 | 1 file changed, 11 insertions(+), 2 deletions(-) 9 | 10 | diff --git a/configure.ac b/configure.ac 11 | index 01eb746..4764201 100644 12 | --- a/configure.ac 13 | +++ b/configure.ac 14 | @@ -127,9 +127,18 @@ AC_ARG_ENABLE(shellext, [], \ 15 | 16 | if test "$localesonly" != "yes" && echo $host_os | grep "cygwin\|mingw" > /dev/null 2>&1 && test "$shellext" = "yes"; then 17 | cd "$OLD_DIR/src/fzshellext/32" || exit 1 18 | - "$ac_abs_confdir/src/fzshellext/configure" --prefix="$prefix" --exec-prefix="$exec_prefix" --host=i686-w64-mingw32 || exit 1 19 | + if echo $host_cpu | grep "armv7" > /dev/null 2>&1; then 20 | + "$ac_abs_confdir/src/fzshellext/configure" --prefix="$prefix" --exec-prefix="$exec_prefix" --host=armv7-w64-mingw32 || exit 1 21 | + else 22 | + "$ac_abs_confdir/src/fzshellext/configure" --prefix="$prefix" --exec-prefix="$exec_prefix" --host=i686-w64-mingw32 || exit 1 23 | + fi 24 | + 25 | cd "$OLD_DIR/src/fzshellext/64" || exit 1 26 | - "$ac_abs_confdir/src/fzshellext/configure" --prefix="$prefix" --exec-prefix="$exec_prefix" --host=x86_64-w64-mingw32 || exit 1 27 | + if echo $host_cpu | grep "aarch64" > /dev/null 2>&1; then 28 | + "$ac_abs_confdir/src/fzshellext/configure" --prefix="$prefix" --exec-prefix="$exec_prefix" --host=aarch64-w64-mingw32 || exit 1 29 | + else 30 | + "$ac_abs_confdir/src/fzshellext/configure" --prefix="$prefix" --exec-prefix="$exec_prefix" --host=x86_64-w64-mingw32 || exit 1 31 | + fi 32 | else 33 | cd "$OLD_DIR/src/fzshellext/64" || exit 1 34 | "$ac_abs_confdir/src/fzshellext/configure" --disable-shellext || exit 1 35 | -- 36 | 2.17.1 37 | 38 | -------------------------------------------------------------------------------- /patches/filezilla/0002-Enable-ARM64-installer.patch: -------------------------------------------------------------------------------- 1 | From 1e7d16d101c95ee0d92834c8f06ed5ec7d04713b Mon Sep 17 00:00:00 2001 2 | From: GH Cao 3 | Date: Thu, 20 Feb 2020 20:27:48 +0800 4 | Subject: [PATCH 2/4] Enable ARM64 installer 5 | 6 | --- 7 | configure.ac | 6 ++++++ 8 | data/install.nsi.in | 7 +++++++ 9 | 2 files changed, 13 insertions(+) 10 | 11 | diff --git a/configure.ac b/configure.ac 12 | index 77bbe32..01eb746 100644 13 | --- a/configure.ac 14 | +++ b/configure.ac 15 | @@ -408,10 +408,16 @@ if test "$buildmain" = "yes"; then 16 | makensisscript="yes" 17 | if echo $host_cpu | grep "x86_64" > /dev/null 2>&1; then 18 | NSIS_64BIT=1 19 | + NSIS_ARM64=0 20 | + elif echo $host_cpu | grep "aarch64" > /dev/null 2>&1; then 21 | + NSIS_64BIT=1 22 | + NSIS_ARM64=1 23 | else 24 | NSIS_64BIT=0 25 | + NSIS_ARM64=0 26 | fi 27 | AC_SUBST(NSIS_64BIT) 28 | + AC_SUBST(NSIS_ARM64) 29 | else 30 | makensisscript="no" 31 | fi 32 | diff --git a/data/install.nsi.in b/data/install.nsi.in 33 | index 7c1532f..64448f0 100644 34 | --- a/data/install.nsi.in 35 | +++ b/data/install.nsi.in 36 | @@ -387,6 +387,13 @@ Function .onInit 37 | installonoldwindows: 38 | ${EndUnless} 39 | 40 | + !if "@NSIS_ARM64@" == "1" 41 | + ${Unless} ${IsNativeARM64} 42 | + ${MessageBox} MB_YESNO|MB_ICONSTOP "Unsupported operating system.$\nThis is the installer for the 64bit ARM version of FileZilla ${VERSION} and does not run on your operating system which is x86 based.$\nPlease download the x86 FileZilla installer instead.$\nDo you really want to continue with the installation?" IDNO 'IDYES install64on32' 43 | + Abort 44 | + ${EndUnless} 45 | + !endif 46 | + 47 | !if "@NSIS_64BIT@" == "1" 48 | ${Unless} ${RunningX64} 49 | ${MessageBox} MB_YESNO|MB_ICONSTOP "Unsupported operating system.$\nThis is the installer for the 64bit version of FileZilla ${VERSION} and does not run on your operating system which is only 32bit.$\nPlease download the 32bit FileZilla installer instead.$\nDo you really want to continue with the installation?" IDNO 'IDYES install64on32' 50 | -- 51 | 2.17.1 52 | 53 | -------------------------------------------------------------------------------- /patches/gmp-aarch64-configure-tweaks.patch: -------------------------------------------------------------------------------- 1 | 2 | # HG changeset patch 3 | # User Niels Möller 4 | # Date 1524424949 -7200 5 | # Node ID ca5a00a4037c11f08f92c37cb76451c9ede84a1e 6 | # Parent 6e5b01dd940ffaa2913905dfa4af8c753ef235f7 7 | Configure tweaks for windows on aarch64. 8 | 9 | # diff -r 6e5b01dd940f -r ca5a00a4037c ChangeLog 10 | # --- a/ChangeLog Wed Apr 18 23:28:26 2018 +0200 11 | # +++ b/ChangeLog Sun Apr 22 21:22:29 2018 +0200 12 | # @@ -1,3 +1,13 @@ 13 | # +2018-04-22 Niels Möller 14 | # + 15 | # + From Martin Storsjö: 16 | # + * configure.ac (aarch64): Just as on windows/x86_64, "long" still 17 | # + is 32 bit on aarch64. To distinguish between 32-bit and 64-bit 18 | # + ABI, test sizeof(void*) instead of sizeof(long). Use long long for 19 | # + mp_limb_t for mingw targets. 20 | # + * acinclude.m4 (GMP_C_TEST_SIZEOF): Allow '*' in the type name, 21 | # + e.g., void*. 22 | # + 23 | # 2018-04-18 Marc Glisse 24 | 25 | # * mpq/clear.c: Handle lazy numerator. 26 | diff -r 6e5b01dd940f -r ca5a00a4037c acinclude.m4 27 | --- a/acinclude.m4 Wed Apr 18 23:28:26 2018 +0200 28 | +++ b/acinclude.m4 Sun Apr 22 21:22:29 2018 +0200 29 | @@ -907,8 +907,8 @@ 30 | 31 | AC_DEFUN([GMP_C_TEST_SIZEOF], 32 | [echo "configure: testlist $2" >&AC_FD_CC 33 | -[gmp_sizeof_type=`echo "$2" | sed 's/sizeof-\([a-z]*\).*/\1/'`] 34 | -[gmp_sizeof_want=`echo "$2" | sed 's/sizeof-[a-z]*-\([0-9]*\).*/\1/'`] 35 | +[gmp_sizeof_type=`echo "$2" | sed 's/sizeof-\([a-z\*]*\).*/\1/'`] 36 | +[gmp_sizeof_want=`echo "$2" | sed 's/sizeof-[a-z\*]*-\([0-9]*\).*/\1/'`] 37 | AC_MSG_CHECKING([compiler $1 has sizeof($gmp_sizeof_type)==$gmp_sizeof_want]) 38 | cat >conftest.c <