- From d25580289199a8e9c6aa4bf3ceadf1b50a393c7e Mon Sep 17 00:00:00 2001
- From: Cedric Blancher <cedric.blancher@gmail.com>
- Date: Mon, 17 Nov 2025 17:51:52 +0100
- Subject: [PATCH 1/4] tests: signtool.exe can be in either '/cygdrive/c/Program
- Files/' or '/cygdrive/c/Program Files (x86)/'
- Handle two options where signtool.exe can be located - either in
- '/cygdrive/c/Program Files/' or in '/cygdrive/c/Program Files (x86)/'.
- Signed-off-by: Roland Mainz <roland.mainz@nrubsig.org>
- ---
- tests/ea/Makefile | 8 ++++----
- tests/filemmaptests/Makefile | 8 ++++----
- tests/lockincfile1/Makefile | 8 ++++----
- tests/lssparse/Makefile | 8 ++++----
- tests/winclonefile/Makefile | 8 ++++----
- tests/winfsinfo1/Makefile | 8 ++++----
- tests/winoffloadcopyfile/Makefile | 8 ++++----
- tests/winrunassystem/Makefile | 12 ++++++------
- tests/winsg/Makefile | 8 ++++----
- 9 files changed, 38 insertions(+), 38 deletions(-)
- diff --git a/tests/ea/Makefile b/tests/ea/Makefile
- index e647cb6..fb6674e 100644
- --- a/tests/ea/Makefile
- +++ b/tests/ea/Makefile
- @@ -2,18 +2,18 @@
- # Makefile for nfs_ea
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: nfs_ea.i686.exe nfs_ea.x86_64.exe nfs_ea.exe
- nfs_ea.i686.exe: main.c
- clang -target i686-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DSTRSAFE_NO_DEPRECATE=1 -D_CRT_STDIO_ISO_WIDE_SPECIFIERS=1 -DUNICODE=1 -D_UNICODE=1 -isystem /usr/include/w32api/ddk -I../../include -g main.c -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- nfs_ea.x86_64.exe: main.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DSTRSAFE_NO_DEPRECATE=1 -D_CRT_STDIO_ISO_WIDE_SPECIFIERS=1 -DUNICODE=1 -D_UNICODE=1 -isystem /usr/include/w32api/ddk -I../../include -g main.c -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- nfs_ea.exe: nfs_ea.x86_64.exe
- rm -f nfs_ea.exe
- diff --git a/tests/filemmaptests/Makefile b/tests/filemmaptests/Makefile
- index 3b2a9e53..679f2f8 100644
- --- a/tests/filemmaptests/Makefile
- +++ b/tests/filemmaptests/Makefile
- @@ -2,8 +2,8 @@
- # Makefile for qsortonmmapedfile1
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: \
- qsortonmmapedfile1.i686.exe \
- @@ -12,11 +12,11 @@ all: \
- qsortonmmapedfile1.i686.exe: qsortonmmapedfile1.c
- clang -target i686-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g -O qsortonmmapedfile1.c -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- qsortonmmapedfile1.x86_64.exe: qsortonmmapedfile1.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g -O qsortonmmapedfile1.c -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- qsortonmmapedfile1.exe: qsortonmmapedfile1.x86_64.exe
- ln -s qsortonmmapedfile1.x86_64.exe qsortonmmapedfile1.exe
- diff --git a/tests/lockincfile1/Makefile b/tests/lockincfile1/Makefile
- index ab539dc..2ce0f92 100644
- --- a/tests/lockincfile1/Makefile
- +++ b/tests/lockincfile1/Makefile
- @@ -2,8 +2,8 @@
- # Makefile for lockincfile1
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: \
- lockincfile1.i686.exe \
- @@ -12,11 +12,11 @@ all: \
- lockincfile1.i686.exe: lockincfile1.c
- clang -target i686-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g -O lockincfile1.c -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- lockincfile1.x86_64.exe: lockincfile1.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g -O lockincfile1.c -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- lockincfile1.exe: lockincfile1.x86_64.exe
- ln -s lockincfile1.x86_64.exe lockincfile1.exe
- diff --git a/tests/lssparse/Makefile b/tests/lssparse/Makefile
- index 0f2a11d..d87d40c 100644
- --- a/tests/lssparse/Makefile
- +++ b/tests/lssparse/Makefile
- @@ -2,19 +2,19 @@
- # Makefile for lssparse
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: lssparse.x86_64.exe lssparse.exe
- # Cygwin 3.6 does not support 32bit builds anymore
- #lssparse.i686.exe: lssparse.c
- # gcc -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g lssparse.c -lntdll -o $@
- -# bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- +# bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- lssparse.x86_64.exe: lssparse.c
- gcc -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g lssparse.c -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- lssparse.exe: lssparse.x86_64.exe
- ln -s lssparse.x86_64.exe lssparse.exe
- diff --git a/tests/winclonefile/Makefile b/tests/winclonefile/Makefile
- index 4c00b53..c196f24 100644
- --- a/tests/winclonefile/Makefile
- +++ b/tests/winclonefile/Makefile
- @@ -2,18 +2,18 @@
- # Makefile for winclonefile
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: winclonefile.i686.exe winclonefile.x86_64.exe winclonefile.exe
- winclonefile.i686.exe: winclonefile.c
- clang -target i686-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g winclonefile.c -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winclonefile.x86_64.exe: winclonefile.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g winclonefile.c -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winclonefile.exe: winclonefile.x86_64.exe
- ln -s winclonefile.x86_64.exe winclonefile.exe
- diff --git a/tests/winfsinfo1/Makefile b/tests/winfsinfo1/Makefile
- index 262a93f..1099aa4 100644
- --- a/tests/winfsinfo1/Makefile
- +++ b/tests/winfsinfo1/Makefile
- @@ -2,18 +2,18 @@
- # Makefile for winfsinfo
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: winfsinfo.i686.exe winfsinfo.x86_64.exe winfsinfo.exe
- winfsinfo.i686.exe: winfsinfo.c
- clang -target i686-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g winfsinfo.c -lmpr -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winfsinfo.x86_64.exe: winfsinfo.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g winfsinfo.c -lmpr -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winfsinfo.exe: winfsinfo.x86_64.exe
- ln -s winfsinfo.x86_64.exe winfsinfo.exe
- diff --git a/tests/winoffloadcopyfile/Makefile b/tests/winoffloadcopyfile/Makefile
- index 5330d4f..e415e15 100644
- --- a/tests/winoffloadcopyfile/Makefile
- +++ b/tests/winoffloadcopyfile/Makefile
- @@ -2,18 +2,18 @@
- # Makefile for winoffloadcopyfile
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: winoffloadcopyfile.i686.exe winoffloadcopyfile.x86_64.exe winoffloadcopyfile.exe
- winoffloadcopyfile.i686.exe: winoffloadcopyfile.c
- clang -target i686-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g winoffloadcopyfile.c -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winoffloadcopyfile.x86_64.exe: winoffloadcopyfile.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -I../../include -g winoffloadcopyfile.c -lntdll -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winoffloadcopyfile.exe: winoffloadcopyfile.x86_64.exe
- ln -s winoffloadcopyfile.x86_64.exe winoffloadcopyfile.exe
- diff --git a/tests/winrunassystem/Makefile b/tests/winrunassystem/Makefile
- index 881396d..773b72e 100644
- --- a/tests/winrunassystem/Makefile
- +++ b/tests/winrunassystem/Makefile
- @@ -2,8 +2,8 @@
- # Makefile for winrunassystem
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: \
- winrunassystem.i686.exe \
- @@ -18,11 +18,11 @@ all: \
- #
- winrunassystem.i686.exe: winrunassystem.c
- clang -target i686-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DBUILD_WINRUNASSYSTEM=1 -DUNICODE=1 -D_UNICODE=1 -g winrunassystem.c -lWtsapi32 -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winrunassystem.x86_64.exe: winrunassystem.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DBUILD_WINRUNASSYSTEM=1 -DUNICODE=1 -D_UNICODE=1 -g winrunassystem.c -lWtsapi32 -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winrunassystem.exe: winrunassystem.x86_64.exe
- ln -s winrunassystem.x86_64.exe $@
- @@ -36,11 +36,11 @@ winrunassystem.exe: winrunassystem.x86_64.exe
- #
- nfs_globalmount.i686.exe: winrunassystem.c
- clang -target i686-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DBUILD_NFS_GLOBALMOUNT=1 -DUNICODE=1 -D_UNICODE=1 -g winrunassystem.c -lWtsapi32 -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- nfs_globalmount.x86_64.exe: winrunassystem.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DBUILD_NFS_GLOBALMOUNT=1 -DUNICODE=1 -D_UNICODE=1 -g winrunassystem.c -lWtsapi32 -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- nfs_globalmount.exe: nfs_globalmount.x86_64.exe
- ln -s nfs_globalmount.x86_64.exe $@
- diff --git a/tests/winsg/Makefile b/tests/winsg/Makefile
- index 345151d..28f0335 100644
- --- a/tests/winsg/Makefile
- +++ b/tests/winsg/Makefile
- @@ -2,18 +2,18 @@
- # Makefile for winsg
- #
- -# POSIX Makefile
- -SIGNTOOL="/cygdrive/c/Program Files (x86)/Microsoft SDKs/ClickOnce/SignTool/signtool.exe"
- +# signtool.exe can be in either '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'
- +SIGNTOOL := $(shell ls -1 '/cygdrive/c/Program Files'*'/Microsoft SDKs/ClickOnce/SignTool/signtool.exe' | head -n 1)
- all: winsg.i686.exe winsg.x86_64.exe winsg.exe
- winsg.i686.exe: winsg.c
- clang -target i686-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g winsg.c -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winsg.x86_64.exe: winsg.c
- clang -target x86_64-pc-windows-gnu -std=gnu17 -municode -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g winsg.c -o $@
- - bash -x -c '$(SIGNTOOL) sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- + bash -x -c '"$(SIGNTOOL)" sign /ph /fd "sha256" /sha1 "$${CERTIFICATE_THUMBPRINT%$$(printf "\r")}" $@'
- winsg.exe: winsg.x86_64.exe
- ln -s winsg.x86_64.exe winsg.exe
- --
- 2.51.0
- From 056c1fe61bb7980fced6dfc632e99e04b69cd70d Mon Sep 17 00:00:00 2001
- From: Cedric Blancher <cedric.blancher@gmail.com>
- Date: Mon, 17 Nov 2025 18:12:10 +0100
- Subject: [PATCH 2/4] tests: Fix Windows 32bit-only build failures on Windows
- 10/Cygwin 3.3
- Fix Windows 32bit-only build failures on Windows 10/Cygwin 3.3.
- Signed-off-by: Roland Mainz <roland.mainz@nrubsig.org>
- ---
- tests/winclonefile/winclonefile.c | 5 +++++
- tests/winoffloadcopyfile/winoffloadcopyfile.c | 9 +++++++++
- tests/winrunassystem/winrunassystem.c | 1 +
- 3 files changed, 15 insertions(+)
- diff --git a/tests/winclonefile/winclonefile.c b/tests/winclonefile/winclonefile.c
- index 80bf35a..e1e2303 100644
- --- a/tests/winclonefile/winclonefile.c
- +++ b/tests/winclonefile/winclonefile.c
- @@ -37,6 +37,11 @@
- #define EXIT_USAGE (2) /* Traditional UNIX exit code for usage */
- +#ifndef FSCTL_DUPLICATE_EXTENTS_TO_FILE
- +#define FSCTL_DUPLICATE_EXTENTS_TO_FILE \
- + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA)
- +#endif /* !FSCTL_DUPLICATE_EXTENTS_TO_FILE */
- +
- #ifdef DUPLICATE_EXTENTS_DATA_EX_SOURCE_ATOMIC
- /*
- * MinGW commit
- diff --git a/tests/winoffloadcopyfile/winoffloadcopyfile.c b/tests/winoffloadcopyfile/winoffloadcopyfile.c
- index 05ccf6a..c6cbcd3 100644
- --- a/tests/winoffloadcopyfile/winoffloadcopyfile.c
- +++ b/tests/winoffloadcopyfile/winoffloadcopyfile.c
- @@ -37,6 +37,15 @@
- #define EXIT_USAGE (2) /* Traditional UNIX exit code for usage */
- +#ifndef FSCTL_OFFLOAD_READ
- +#define FSCTL_OFFLOAD_READ \
- + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
- +#endif /* !FSCTL_OFFLOAD_READ */
- +#ifndef FSCTL_OFFLOAD_WRITE
- +#define FSCTL_OFFLOAD_WRITE \
- + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
- +#endif /* !FSCTL_OFFLOAD_WRITE */
- +
- /* MinGW headers are currently missing these defines and types */
- #ifndef OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE
- typedef struct _FSCTL_OFFLOAD_READ_INPUT {
- diff --git a/tests/winrunassystem/winrunassystem.c b/tests/winrunassystem/winrunassystem.c
- index 68b2e30..aa1486c 100644
- --- a/tests/winrunassystem/winrunassystem.c
- +++ b/tests/winrunassystem/winrunassystem.c
- @@ -36,6 +36,7 @@
- */
- #define WIN32_LEAN_AND_MEAN 1
- +#define STRSAFE_NO_DEPRECATE 1
- #include <windows.h>
- #include <strsafe.h>
- --
- 2.51.0
- From e5d4395f1860d6775e8592d39c66b6e3b16130c0 Mon Sep 17 00:00:00 2001
- From: Cedric Blancher <cedric.blancher@gmail.com>
- Date: Mon, 17 Nov 2025 18:37:02 +0100
- Subject: [PATCH 3/4] cygwin: Windows Kit 10 can be in either
- '/cygdrive/c/Program Files/' or in '/cygdrive/c/Program Files (x86)/'
- make installdest should handle that Windows Kit 10 is either in
- '/cygdrive/c/Program Files/' or '/cygdrive/c/Program Files (x86)/'.
- Signed-off-by: Roland Mainz <roland.mainz@nrubsig.org>
- ---
- cygwin/Makefile.install | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
- diff --git a/cygwin/Makefile.install b/cygwin/Makefile.install
- index fa391ee..129366f 100644
- --- a/cygwin/Makefile.install
- +++ b/cygwin/Makefile.install
- @@ -13,6 +13,11 @@ PROJECT_BASEDIR_DIR := $(shell dirname $(realpath $(CYGWIN_MAKEFILE_DIR)/))
- DESTDIR := $(PROJECT_BASEDIR_DIR)/destdir
- +# Windows Kit 10 bins can be either in
- +# '/cygdrive/c/Program Files/Windows Kits/10/bin/' or in
- +# '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/'
- +WINDOWS_KITS_10_BIN_DIR := $(shell ls -1d '/cygdrive/c/Program Files'*'/Windows Kits/10/bin/' | head -n 1)
- +
- # install in DESTDIR
- installdest:
- #
- @@ -96,7 +101,7 @@ installdest:
- [[ -f "$(DESTDIR)/lib/msnfs41client/$${infdir}/nfs41_driver.sys" ]] || continue ; \
- ( \
- cp "$(PROJECT_BASEDIR_DIR)/nfs41rdr.inf" "$(DESTDIR)/lib/msnfs41client/$${infdir}/." && \
- - inf2catbin="$$(find '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin' -iname inf2cat.exe | head -n 1)" && \
- + inf2catbin="$$(find '$(WINDOWS_KITS_10_BIN_DIR)' -iname inf2cat.exe | head -n 1)" && \
- cd "$(DESTDIR)/lib/msnfs41client/$${infdir}/." && \
- if [[ "$$(/usr/lib/csih/getVolInfo . | awk '/FILE_CASE_SENSITIVE_SEARCH/ { print $$3 }')" == "TRUE" ]] ; then \
- printf "# case-sensitive filesystem, resetting TMP TMPDIR TEMP to /tmp\n" ; \
- @@ -188,18 +193,18 @@ installdest:
- cp \
- "$$(find "$${vsbasepath}/$${vssubdir}" -ipath '*/x86/*/VCRUNTIME140D.dll' | sort -n -r | head -n 1)" \
- "$(DESTDIR)/lib/msnfs41client/i686/." ; \
- - cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/x86/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/i686/." ; \
- + cp '$(WINDOWS_KITS_10_BIN_DIR)/x86/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/i686/." ; \
- if [[ "$(VS_BUILD_DIR_X64)" != '' ]] ; then \
- cp \
- "$$(find "$${vsbasepath}/$${vssubdir}" -ipath '*/x64/*/VCRUNTIME140D.dll' | sort -n -r | head -n 1)" \
- "$(DESTDIR)/lib/msnfs41client/x64/." ; \
- - cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/x64/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/x64/." ; \
- + cp '$(WINDOWS_KITS_10_BIN_DIR)/x64/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/x64/." ; \
- fi ; \
- if [[ "$(VS_BUILD_DIR_ARM64)" != '' ]] ; then \
- cp \
- "$$(find "$${vsbasepath}/$${vssubdir}" -ipath '*/arm64/*/VCRUNTIME140D.dll' | sort -n -r | head -n 1)" \
- "$(DESTDIR)/lib/msnfs41client/arm64/." ; \
- - cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/arm64/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/arm64/." ; \
- + cp '$(WINDOWS_KITS_10_BIN_DIR)/arm64/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/arm64/." ; \
- fi
- @ printf "# Set file flags\n"
- (cd $(DESTDIR)/bin/ && chmod a+rx *.exe)
- --
- 2.51.0
- From 1fe470aa6e78732f318402abe372f2d1e11d4409 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Mon, 17 Nov 2025 20:07:03 +0100
- Subject: [PATCH 4/4] README.md,docs,tests: Document Windows Server 2025 as
- supported platform
- Document Windows Server 2025 as supported platform (NFS server and
- running ms-nfs41-client on Windows Server 2025).
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- README.md | 5 +++--
- docs/README.xml | 4 ++--
- tests/nfs_server_setup.txt | 5 +++--
- 3 files changed, 8 insertions(+), 6 deletions(-)
- diff --git a/README.md b/README.md
- index 8da6e80..df8c22b 100644
- --- a/README.md
- +++ b/README.md
- @@ -40,7 +40,7 @@ title: Windows NFS 4.2 FileSystem Client Instructions
- # What is this ?
- NFSv4.2/NFSv4.1 filesystem driver for Windows 10/11 & Windows Server
- -2019+2022
- +2019+2022+2025
- # Features
- @@ -260,7 +260,8 @@ NFSv4.2/NFSv4.1 filesystem driver for Windows 10/11 & Windows Server
- # Requirements
- -- Windows 10 (32bit or 64bit), Windows 11 or Windows Server 2019+2022
- +- Windows 10 (32bit or 64bit), Windows 11 or Windows Server
- + 2019+2022+2025
- - Cygwin:
- diff --git a/docs/README.xml b/docs/README.xml
- index 161ac5d..5c0d941 100644
- --- a/docs/README.xml
- +++ b/docs/README.xml
- @@ -10,7 +10,7 @@
- <section xml:id="what-is-this">
- <title>What is this ?</title>
- - <para>NFSv4.2/NFSv4.1 filesystem driver for Windows 10/11 & Windows Server 2019+2022</para>
- + <para>NFSv4.2/NFSv4.1 filesystem driver for Windows 10/11 & Windows Server 2019+2022+2025</para>
- </section>
- <section xml:id="features">
- @@ -301,7 +301,7 @@
- <title>Requirements</title>
- <itemizedlist>
- <listitem>
- - <para>Windows 10 (32bit or 64bit), Windows 11 or Windows Server 2019+2022</para>
- + <para>Windows 10 (32bit or 64bit), Windows 11 or Windows Server 2019+2022+2025</para>
- </listitem>
- <listitem>
- <para>Cygwin:
- diff --git a/tests/nfs_server_setup.txt b/tests/nfs_server_setup.txt
- index 594f04f..d945ec7 100644
- --- a/tests/nfs_server_setup.txt
- +++ b/tests/nfs_server_setup.txt
- @@ -78,10 +78,10 @@ service nfs-server restart
- #
- -# Windows Server 2019 NFSv4.1 server setup
- +# Windows Server 2019/2022/2025 NFSv4.1 server setup
- #
- -# Install Windows Server 2019, then run these commands in an
- +# Install Windows Server 2019, 2022 or 2025, then run these commands in an
- # Adminstrator PowerShell
- Install-WindowsFeature -name Telnet-Client
- @@ -97,6 +97,7 @@ New-NfsShare -Name nfs1 -Path C:\shares\nfsfolder
- Set-NfsShare -Name nfs1 -Permission readwrite -Authentication "sys" -EnableUnmappedAccess $True -AllowRootAccess $True
- Set-NfsServerConfiguration -HideFilesBeginningInDot $True
- +# grant machines "192.168.209.129" and "localhost" (="127.0.0.1") access
- Grant-NfsSharePermission -Name nfs1 -ClientName "192.168.209.129" -ClientType "host" -AllowRootAccess $True -Permission readwrite
- Grant-NfsSharePermission -Name nfs1 -ClientName "127.0.0.1" -ClientType "host" -AllowRootAccess $True -Permission readwrite
- --
- 2.51.0
msnfs41client: Patches for Windows 32bit-only build fixes, Windows Server 2025 support+misc, 2025-11-17
Posted by Anonymous on Mon 17th Nov 2025 20:22
raw | new post
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.
rovema.kpaste.net RSS