- From ad51657ac22da429d17a99c837b6df57400e3514 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Mon, 29 Sep 2025 12:56:34 +0200
- Subject: [PATCH 1/4] cygwin: Unify
- destdir/cygdrive/c/cygwin+destdir/cygdrive/c/cygwin64 into destdir/
- Unify destdir/cygdrive/c/cygwin+destdir/cygdrive/c/cygwin64 into
- destdir/. This avoids the duplication for each userland and kernel
- architecture.
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- cygwin/Makefile | 13 +-
- cygwin/Makefile.install | 222 ++++++++++++++++----------------
- cygwin/devel/msnfs41client.bash | 21 +++
- 3 files changed, 140 insertions(+), 116 deletions(-)
- diff --git a/cygwin/Makefile b/cygwin/Makefile
- index febbbb2..5156b5b 100644
- --- a/cygwin/Makefile
- +++ b/cygwin/Makefile
- @@ -150,8 +150,7 @@ installdest32: \
- installdest \
- VS_BUILD_DIR_I686="$(VS_BUILD_DIR_I686)" \
- VS_BUILD_DIR_X64="" \
- - VS_BUILD_DIR_ARM64="" \
- - CYGWIN_BASEPATH=/cygdrive/c/cygwin/
- + VS_BUILD_DIR_ARM64=""
- # installdest64: 32bit nfs41_np.dll is required to support 32bit
- # apps on 64bit Windows
- @@ -174,8 +173,7 @@ installdest64: \
- installdest \
- VS_BUILD_DIR_I686="$(VS_BUILD_DIR_I686)" \
- VS_BUILD_DIR_X64="$(VS_BUILD_DIR_X64)" \
- - VS_BUILD_DIR_ARM64="$(VS_BUILD_DIR_ARM64)" \
- - CYGWIN_BASEPATH=/cygdrive/c/cygwin64/
- + VS_BUILD_DIR_ARM64="$(VS_BUILD_DIR_ARM64)"
- # installdest: we need a .WAIT here becase Makefile.install uses git commands
- # to create a git bundle, and the commands do not like to run
- @@ -190,8 +188,7 @@ bintarball: installdest $(PROJECT_BASEDIR_DIR)/README.txt $(PROJECT_BASEDIR_DIR)
- tar -cvf - \
- --owner=SYSTEM:18 \
- --group=SYSTEM:18 \
- - cygdrive/c/cygwin \
- - cygdrive/c/cygwin64 \
- + sbin bin usr lib etc \
- | \
- bzip2 -9 >"$${base_filename}.tar.bz2" ; \
- archive_sha256hash="$$(openssl sha256 -r "$${base_filename}.tar.bz2" | while read a dummy ; do printf "%s\n" "$$a" ; done)" ; \
- @@ -212,7 +209,7 @@ bintarball32: installdest32 $(PROJECT_BASEDIR_DIR)/README.txt $(PROJECT_BASEDIR_
- tar -cvf - \
- --owner=SYSTEM:18 \
- --group=SYSTEM:18 \
- - cygdrive/c/cygwin \
- + sbin bin usr lib etc \
- | \
- bzip2 -9 >"$${base_filename}.tar.bz2" ; \
- archive_sha256hash="$$(openssl sha256 -r "$${base_filename}.tar.bz2" | while read a dummy ; do printf "%s\n" "$$a" ; done)" ; \
- @@ -233,7 +230,7 @@ bintarball64: installdest64 $(PROJECT_BASEDIR_DIR)/README.txt $(PROJECT_BASEDIR_
- tar -cvf - \
- --owner=SYSTEM:18 \
- --group=SYSTEM:18 \
- - cygdrive/c/cygwin64 \
- + sbin bin usr lib etc \
- | \
- bzip2 -9 >"$${base_filename}.tar.bz2" ; \
- archive_sha256hash="$$(openssl sha256 -r "$${base_filename}.tar.bz2" | while read a dummy ; do printf "%s\n" "$$a" ; done)" ; \
- diff --git a/cygwin/Makefile.install b/cygwin/Makefile.install
- index a6029a6..4124928 100644
- --- a/cygwin/Makefile.install
- +++ b/cygwin/Makefile.install
- @@ -23,41 +23,41 @@ installdest:
- exit 1 ; \
- fi
- mkdir -p $(DESTDIR)
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/
- - # /usr/bin is a bind mount to C:/cygwin64/bin, so copy binaries to /$(CYGWIN_BASEPATH)/bin
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/bin
- - # /usr/lib is a bind mount to C:/cygwin64/lib, so copy library data to /$(CYGWIN_BASEPATH)/lib
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/lib
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686
- - if [[ "$(VS_BUILD_DIR_X64)" != '' ]] ; then mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64 ; fi
- - if [[ "$(VS_BUILD_DIR_ARM64)" != '' ]] ; then mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64 ; fi
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/etc
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/src/msnfs41client
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/man/man1
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/misc
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/sparsefiles
- - mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests
- + mkdir -p $(DESTDIR)/sbin/
- + # /usr/bin is a bind mount to C:/cygwin64/bin, so copy binaries to /bin
- + mkdir -p $(DESTDIR)/bin
- + # /usr/lib is a bind mount to C:/cygwin64/lib, so copy library data to /lib
- + mkdir -p $(DESTDIR)/lib
- + mkdir -p $(DESTDIR)/lib/msnfs41client
- + mkdir -p $(DESTDIR)/lib/msnfs41client/i686
- + if [[ "$(VS_BUILD_DIR_X64)" != '' ]] ; then mkdir -p $(DESTDIR)/lib/msnfs41client/x64 ; fi
- + if [[ "$(VS_BUILD_DIR_ARM64)" != '' ]] ; then mkdir -p $(DESTDIR)/lib/msnfs41client/ARM64 ; fi
- + mkdir -p $(DESTDIR)/etc
- + mkdir -p $(DESTDIR)/usr/src/msnfs41client
- + mkdir -p $(DESTDIR)/usr/share/man/man1
- + mkdir -p $(DESTDIR)/usr/share/msnfs41client
- + mkdir -p $(DESTDIR)/usr/share/msnfs41client/tests
- + mkdir -p $(DESTDIR)/usr/share/msnfs41client/tests/misc
- + mkdir -p $(DESTDIR)/usr/share/msnfs41client/tests/sparsefiles
- + mkdir -p $(DESTDIR)/usr/share/msnfs41client/tests/filemmaptests
- #
- # copy x86 binaries
- #
- if [[ -f "$(VS_BUILD_DIR_I686)/nfs41_driver.sys" ]] ; then \
- # workaround for coreutils 9.5-1 /bin/cp bug stuck in an endless loop with compressed files \
- chattr -V -c $(VS_BUILD_DIR_I686)/nfs41_driver.* ; \
- - cp $(VS_BUILD_DIR_I686)/nfs41_driver.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/. ; \
- - cp $(VS_BUILD_DIR_I686)/nfsd.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/. ; \
- - cp $(VS_BUILD_DIR_I686)/libtirpc.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/. ; \
- - cp $(VS_BUILD_DIR_I686)/nfs_install.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/. ; \
- + cp $(VS_BUILD_DIR_I686)/nfs41_driver.* $(DESTDIR)/lib/msnfs41client/i686/. ; \
- + cp $(VS_BUILD_DIR_I686)/nfsd.* $(DESTDIR)/lib/msnfs41client/i686/. ; \
- + cp $(VS_BUILD_DIR_I686)/libtirpc.* $(DESTDIR)/lib/msnfs41client/i686/. ; \
- + cp $(VS_BUILD_DIR_I686)/nfs_install.* $(DESTDIR)/lib/msnfs41client/i686/. ; \
- fi
- - cp $(VS_BUILD_DIR_I686)/nfs_mount.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/.
- + cp $(VS_BUILD_DIR_I686)/nfs_mount.* $(DESTDIR)/lib/msnfs41client/i686/.
- # install 32bit nfs_mount.exe on 64bit Windows to assist with debugging 32bit issues
- # we use the "Release" version on 64bit to avoid issues with missing debug libraries
- # on 32bit we just create a hardlink from nfs_mount.exe to nfs_mount.i686.exe
- - cp $(VS_BUILD_DIR_I686)/../Release/nfs_mount.exe $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/nfs_mount.release.i686.exe
- - cp $(VS_BUILD_DIR_I686)/../Release/nfs41_np.dll $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/nfs41_np.release.dll
- - cp $(VS_BUILD_DIR_I686)/nfs41_np.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/. ; \
- + cp $(VS_BUILD_DIR_I686)/../Release/nfs_mount.exe $(DESTDIR)/lib/msnfs41client/i686/nfs_mount.release.i686.exe
- + cp $(VS_BUILD_DIR_I686)/../Release/nfs41_np.dll $(DESTDIR)/lib/msnfs41client/i686/nfs41_np.release.dll
- + cp $(VS_BUILD_DIR_I686)/nfs41_np.* $(DESTDIR)/lib/msnfs41client/i686/. ; \
- #
- # copy x64 binaries
- #
- @@ -65,13 +65,13 @@ installdest:
- if [[ -f "$(VS_BUILD_DIR_X64)/nfs41_driver.sys" ]] ; then \
- # workaround for coreutils 9.5-1 /bin/cp bug stuck in an endless loop with compressed files \
- chattr -V -c $(VS_BUILD_DIR_X64)/nfs41_driver.* ; \
- - cp $(VS_BUILD_DIR_X64)/nfs41_driver.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/. ; \
- - cp $(VS_BUILD_DIR_X64)/nfsd.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/. ; \
- - cp $(VS_BUILD_DIR_X64)/libtirpc.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/. ; \
- - cp $(VS_BUILD_DIR_X64)/nfs_install.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/. ; \
- + cp $(VS_BUILD_DIR_X64)/nfs41_driver.* $(DESTDIR)/lib/msnfs41client/x64/. ; \
- + cp $(VS_BUILD_DIR_X64)/nfsd.* $(DESTDIR)/lib/msnfs41client/x64/. ; \
- + cp $(VS_BUILD_DIR_X64)/libtirpc.* $(DESTDIR)/lib/msnfs41client/x64/. ; \
- + cp $(VS_BUILD_DIR_X64)/nfs_install.* $(DESTDIR)/lib/msnfs41client/x64/. ; \
- fi ; \
- - cp $(VS_BUILD_DIR_X64)/nfs_mount.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/. ; \
- - cp $(VS_BUILD_DIR_X64)/nfs41_np.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/. ; \
- + cp $(VS_BUILD_DIR_X64)/nfs_mount.* $(DESTDIR)/lib/msnfs41client/x64/. ; \
- + cp $(VS_BUILD_DIR_X64)/nfs41_np.* $(DESTDIR)/lib/msnfs41client/x64/. ; \
- fi
- #
- # copy ARM64 binaries
- @@ -80,22 +80,22 @@ installdest:
- if [[ -f "$(VS_BUILD_DIR_ARM64)/nfs41_driver.sys" ]] ; then \
- # workaround for coreutils 9.5-1 /bin/cp bug stuck in an endless loop with compressed files \
- chattr -V -c $(VS_BUILD_DIR_ARM64)/nfs41_driver.* ; \
- - cp $(VS_BUILD_DIR_ARM64)/nfs41_driver.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/. ; \
- - cp $(VS_BUILD_DIR_ARM64)/nfsd.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/. ; \
- - cp $(VS_BUILD_DIR_ARM64)/libtirpc.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/. ; \
- - cp $(VS_BUILD_DIR_ARM64)/nfs_install.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/. ; \
- + cp $(VS_BUILD_DIR_ARM64)/nfs41_driver.* $(DESTDIR)/lib/msnfs41client/ARM64/. ; \
- + cp $(VS_BUILD_DIR_ARM64)/nfsd.* $(DESTDIR)/lib/msnfs41client/ARM64/. ; \
- + cp $(VS_BUILD_DIR_ARM64)/libtirpc.* $(DESTDIR)/lib/msnfs41client/ARM64/. ; \
- + cp $(VS_BUILD_DIR_ARM64)/nfs_install.* $(DESTDIR)/lib/msnfs41client/ARM64/. ; \
- fi ; \
- - cp $(VS_BUILD_DIR_ARM64)/nfs_mount.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/. ; \
- - cp $(VS_BUILD_DIR_ARM64)/nfs41_np.* $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/. ; \
- + cp $(VS_BUILD_DIR_ARM64)/nfs_mount.* $(DESTDIR)/lib/msnfs41client/ARM64/. ; \
- + cp $(VS_BUILD_DIR_ARM64)/nfs41_np.* $(DESTDIR)/lib/msnfs41client/ARM64/. ; \
- fi
- # Copy kernel driver INF file and generate signature catalog
- # (inf2cat.exe cannot handle case-sensitive filesystems like NFS for temporary files, so we reset TMP&co)
- for infdir in "i686" "x64" "ARM64" ; do \
- - [[ -f "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/$${infdir}/nfs41_driver.sys" ]] || continue ; \
- + [[ -f "$(DESTDIR)/lib/msnfs41client/$${infdir}/nfs41_driver.sys" ]] || continue ; \
- ( \
- - cp "$(PROJECT_BASEDIR_DIR)/nfs41rdr.inf" "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/$${infdir}/." && \
- + 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)" && \
- - cd "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/$${infdir}/." && \
- + 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" ; \
- export TMP=/tmp TMPDIR=/tmp TEMP=/tmp ; \
- @@ -105,67 +105,73 @@ installdest:
- ) ; \
- done
- # Platform-independent files
- - cp $(PROJECT_BASEDIR_DIR)/etc_netconfig $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/.
- - cp $(PROJECT_BASEDIR_DIR)/ms-nfs41-idmap.conf $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/.
- - cp $(CYGWIN_MAKEFILE_DIR)/devel/msnfs41client.bash $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/msnfs41client
- - chmod a+x "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/msnfs41client"
- + cp $(PROJECT_BASEDIR_DIR)/etc_netconfig $(DESTDIR)/lib/msnfs41client/.
- + cp $(PROJECT_BASEDIR_DIR)/ms-nfs41-idmap.conf $(DESTDIR)/lib/msnfs41client/.
- + cp $(CYGWIN_MAKEFILE_DIR)/devel/msnfs41client.bash $(DESTDIR)/lib/msnfs41client/msnfs41client
- + chmod a+x "$(DESTDIR)/lib/msnfs41client/msnfs41client"
- # this must be a symlink, so msnfs41client can find it's real location
- - (cd "$(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/" && ln -s -f ../lib/msnfs41client/msnfs41client .)
- - cp $(PROJECT_BASEDIR_DIR)/cygwin_idmapper.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/.
- + (cd "$(DESTDIR)/sbin/" && ln -s -f ../lib/msnfs41client/msnfs41client .)
- + cp $(PROJECT_BASEDIR_DIR)/cygwin_idmapper.ksh $(DESTDIR)/lib/msnfs41client/.
- @ printf "# Package sources and diffs\n"
- git config --global --add safe.directory "$(PROJECT_BASEDIR_DIR)"
- - git bundle create "$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/src/msnfs41client/msnfs41client_git.bundle" HEAD
- - git diff -w >"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/src/msnfs41client/msnfs41client_diff_w.diff"
- - git diff >"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/src/msnfs41client/msnfs41client_diff.diff"
- + git bundle create "$(DESTDIR)/usr/src/msnfs41client/msnfs41client_git.bundle" HEAD
- + git diff -w >"$(DESTDIR)/usr/src/msnfs41client/msnfs41client_diff_w.diff"
- + git diff >"$(DESTDIR)/usr/src/msnfs41client/msnfs41client_diff.diff"
- @ printf "# Package utilties\n"
- - cp $(CYGWIN_MAKEFILE_DIR)/utils/mountall_msnfs41client/mountall_msnfs41client.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/mountall_msnfs41client
- - chmod a+x $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/mountall_msnfs41client
- - PATH+=":$(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/" \
- - /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/mountall_msnfs41client/mountall_msnfs41client.ksh --nroff 2>"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/man/man1/mountall_msnfs41client.1" || true
- - cp $(CYGWIN_MAKEFILE_DIR)/utils/cygwinaccount2nfs4account/cygwinaccount2nfs4account.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/cygwinaccount2nfs4account
- - chmod a+x $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/cygwinaccount2nfs4account
- - PATH+=":$(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/" \
- - /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/cygwinaccount2nfs4account/cygwinaccount2nfs4account.ksh --nroff 2>"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/man/man1/cygwinaccount2nfs4account.1" || true
- - cp $(CYGWIN_MAKEFILE_DIR)/utils/mount_sshnfs/mount_sshnfs.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/mount_sshnfs
- - chmod a+x $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/mount_sshnfs
- - PATH+=":$(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/" \
- - /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/mount_sshnfs/mount_sshnfs.ksh --nroff 2>"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/man/man1/mount_sshnfs.1" || true
- - cp $(CYGWIN_MAKEFILE_DIR)/utils/sshnfs/sshnfs.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/sshnfs
- - chmod a+x $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/sshnfs
- - cp $(CYGWIN_MAKEFILE_DIR)/utils/nfsurlconv/nfsurlconv.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/nfsurlconv
- - chmod a+x $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/nfsurlconv
- - /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/nfsurlconv/nfsurlconv.ksh --nroff 2>"$(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/man/man1/nfsurlconv.1" || true
- + cp $(CYGWIN_MAKEFILE_DIR)/utils/mountall_msnfs41client/mountall_msnfs41client.ksh $(DESTDIR)/sbin/mountall_msnfs41client
- + chmod a+x $(DESTDIR)/sbin/mountall_msnfs41client
- + PATH+=":$(DESTDIR)/sbin/" \
- + /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/mountall_msnfs41client/mountall_msnfs41client.ksh --nroff 2>"$(DESTDIR)/usr/share/man/man1/mountall_msnfs41client.1" || true
- + cp $(CYGWIN_MAKEFILE_DIR)/utils/cygwinaccount2nfs4account/cygwinaccount2nfs4account.ksh $(DESTDIR)/sbin/cygwinaccount2nfs4account
- + chmod a+x $(DESTDIR)/sbin/cygwinaccount2nfs4account
- + PATH+=":$(DESTDIR)/sbin/" \
- + /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/cygwinaccount2nfs4account/cygwinaccount2nfs4account.ksh --nroff 2>"$(DESTDIR)/usr/share/man/man1/cygwinaccount2nfs4account.1" || true
- + cp $(CYGWIN_MAKEFILE_DIR)/utils/mount_sshnfs/mount_sshnfs.ksh $(DESTDIR)/sbin/mount_sshnfs
- + chmod a+x $(DESTDIR)/sbin/mount_sshnfs
- + PATH+=":$(DESTDIR)/sbin/" \
- + /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/mount_sshnfs/mount_sshnfs.ksh --nroff 2>"$(DESTDIR)/usr/share/man/man1/mount_sshnfs.1" || true
- + cp $(CYGWIN_MAKEFILE_DIR)/utils/sshnfs/sshnfs.ksh $(DESTDIR)/sbin/sshnfs
- + chmod a+x $(DESTDIR)/sbin/sshnfs
- + cp $(CYGWIN_MAKEFILE_DIR)/utils/nfsurlconv/nfsurlconv.ksh $(DESTDIR)/bin/nfsurlconv
- + chmod a+x $(DESTDIR)/bin/nfsurlconv
- + /usr/bin/ksh93 $(CYGWIN_MAKEFILE_DIR)/utils/nfsurlconv/nfsurlconv.ksh --nroff 2>"$(DESTDIR)/usr/share/man/man1/nfsurlconv.1" || true
- @ printf "# Package tests\n"
- - cp "$(PROJECT_BASEDIR_DIR)/tests/manual_testing.txt" $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/manual_testing.txt
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winfsinfo.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winfsinfo.i686.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winclonefile/winclonefile.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winclonefile.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winclonefile/winclonefile.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winclonefile.i686.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winoffloadcopyfile/winoffloadcopyfile.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winoffloadcopyfile.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winoffloadcopyfile/winoffloadcopyfile.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winoffloadcopyfile.i686.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/winrunassystem.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/winrunassystem.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/winrunassystem.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/winrunassystem.i686.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/nfs_globalmount.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/nfs_globalmount.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/nfs_globalmount.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/nfs_globalmount.i686.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/lssparse/lssparse.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/lssparse.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winsg/winsg.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winsg.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/winsg/winsg.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/winsg.i686.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/ea/nfs_ea.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/nfs_ea.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/ea/nfs_ea.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/nfs_ea.i686.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/qsortonmmapedfile1.x86_64.exe
- - cp "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/qsortonmmapedfile1.i686.exe
- - cp $(PROJECT_BASEDIR_DIR)/tests/filemmaptests/testqsortonmmapedfile1.ksh93 $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/testqsortonmmapedfile1.ksh93
- - cp $(PROJECT_BASEDIR_DIR)/tests/nfsbuildtest/nfsbuildtest.ksh93 $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/misc/nfsbuildtest.ksh93
- - cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/testsparsefile1.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/sparsefiles/testsparsefile1.ksh
- - cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/testsparseexe1.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/sparsefiles/testsparseexe1.ksh
- - cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/multisparsefiletest.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/sparsefiles/multisparsefiletest.ksh
- - cp $(PROJECT_BASEDIR_DIR)/tests/fstest_make_numtree1/fstest_make_numtree1.ksh93 $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/misc/fstest_make_numtree1.ksh93
- - cp $(PROJECT_BASEDIR_DIR)/tests/wintartests/wintartest_comparewinvsgnu001.bash $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/misc/wintartest_comparewinvsgnu001.bash
- - cp $(PROJECT_BASEDIR_DIR)/tests/wintartests/wintartest_seq001.bash $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/misc/wintartest_seq001.bash
- + cp "$(PROJECT_BASEDIR_DIR)/tests/manual_testing.txt" $(DESTDIR)/usr/share/msnfs41client/tests/manual_testing.txt
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.x86_64.exe" $(DESTDIR)/bin/winfsinfo.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.i686.exe" $(DESTDIR)/bin/winfsinfo.i686.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winclonefile/winclonefile.x86_64.exe" $(DESTDIR)/bin/winclonefile.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winclonefile/winclonefile.i686.exe" $(DESTDIR)/bin/winclonefile.i686.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winoffloadcopyfile/winoffloadcopyfile.x86_64.exe" $(DESTDIR)/bin/winoffloadcopyfile.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winoffloadcopyfile/winoffloadcopyfile.i686.exe" $(DESTDIR)/bin/winoffloadcopyfile.i686.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/winrunassystem.x86_64.exe" $(DESTDIR)/sbin/winrunassystem.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/winrunassystem.i686.exe" $(DESTDIR)/sbin/winrunassystem.i686.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/nfs_globalmount.x86_64.exe" $(DESTDIR)/sbin/nfs_globalmount.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winrunassystem/nfs_globalmount.i686.exe" $(DESTDIR)/sbin/nfs_globalmount.i686.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/lssparse/lssparse.x86_64.exe" $(DESTDIR)/bin/lssparse.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winsg/winsg.x86_64.exe" $(DESTDIR)/bin/winsg.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/winsg/winsg.i686.exe" $(DESTDIR)/bin/winsg.i686.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/ea/nfs_ea.x86_64.exe" $(DESTDIR)/bin/nfs_ea.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/ea/nfs_ea.i686.exe" $(DESTDIR)/bin/nfs_ea.i686.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.x86_64.exe" $(DESTDIR)/usr/share/msnfs41client/tests/filemmaptests/qsortonmmapedfile1.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.i686.exe" $(DESTDIR)/usr/share/msnfs41client/tests/filemmaptests/qsortonmmapedfile1.i686.exe
- + cp $(PROJECT_BASEDIR_DIR)/tests/filemmaptests/testqsortonmmapedfile1.ksh93 $(DESTDIR)/usr/share/msnfs41client/tests/filemmaptests/testqsortonmmapedfile1.ksh93
- + cp $(PROJECT_BASEDIR_DIR)/tests/nfsbuildtest/nfsbuildtest.ksh93 $(DESTDIR)/usr/share/msnfs41client/tests/misc/nfsbuildtest.ksh93
- + cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/testsparsefile1.ksh $(DESTDIR)/usr/share/msnfs41client/tests/sparsefiles/testsparsefile1.ksh
- + cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/testsparseexe1.ksh $(DESTDIR)/usr/share/msnfs41client/tests/sparsefiles/testsparseexe1.ksh
- + cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/multisparsefiletest.ksh $(DESTDIR)/usr/share/msnfs41client/tests/sparsefiles/multisparsefiletest.ksh
- + cp $(PROJECT_BASEDIR_DIR)/tests/fstest_make_numtree1/fstest_make_numtree1.ksh93 $(DESTDIR)/usr/share/msnfs41client/tests/misc/fstest_make_numtree1.ksh93
- + cp $(PROJECT_BASEDIR_DIR)/tests/wintartests/wintartest_comparewinvsgnu001.bash $(DESTDIR)/usr/share/msnfs41client/tests/misc/wintartest_comparewinvsgnu001.bash
- + cp $(PROJECT_BASEDIR_DIR)/tests/wintartests/wintartest_seq001.bash $(DESTDIR)/usr/share/msnfs41client/tests/misc/wintartest_seq001.bash
- @ printf "# Package ksh93&co (if available) since Cygwin does not ship with it yet\n"
- - [[ -x $(CYGWIN_BASEPATH)/bin/ksh93.exe ]] && cp -f $(CYGWIN_BASEPATH)/bin/ksh93.exe $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/ksh93.exe || true
- - [[ -x $(CYGWIN_BASEPATH)/bin/shcomp.exe ]] && cp -f $(CYGWIN_BASEPATH)/bin/shcomp.exe $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/shcomp.exe || true
- - cp $(PROJECT_BASEDIR_DIR)/cygwin/cygwin_ksh93/ksh.kshrc $(DESTDIR)/$(CYGWIN_BASEPATH)/etc/ksh.kshrc
- + if [[ -d '$(DESTDIR)/lib/msnfs41client/x64/' ]] ; then \
- + [[ -x '/cygdrive/c/cygwin/bin/ksh93.exe' ]] && cp '/cygdrive/c/cygwin/bin/ksh93.exe' '$(DESTDIR)/lib/msnfs41client/i686/ksh93.i686.exe' ; \
- + [[ -x '/cygdrive/c/cygwin/bin/shcomp.exe' ]] && cp '/cygdrive/c/cygwin/bin/shcomp.exe' '$(DESTDIR)/lib/msnfs41client/i686/shcomp.i686.exe' ; \
- + fi
- + if [[ -d '$(DESTDIR)/lib/msnfs41client/x64/' ]] ; then \
- + [[ -x '/cygdrive/c/cygwin64/bin/ksh93.exe' ]] && cp '/cygdrive/c/cygwin64/bin/ksh93.exe' '$(DESTDIR)/lib/msnfs41client/x64/ksh93.x86_64.exe' ; \
- + [[ -x '/cygdrive/c/cygwin64/bin/shcomp.exe' ]] && cp '/cygdrive/c/cygwin64/bin/shcomp.exe' '$(DESTDIR)/lib/msnfs41client/x64/shcomp.x86_64.exe' ; \
- + fi
- + cp $(PROJECT_BASEDIR_DIR)/cygwin/cygwin_ksh93/ksh.kshrc $(DESTDIR)/etc/ksh.kshrc
- @ printf '# Packaging libs\n'
- set -o errexit -o pipefail ; \
- typeset msbuildpath="$$(which MSBuild.exe)" ; \
- @@ -173,34 +179,34 @@ installdest:
- test -d "$${vsbasepath}" || { printf "vsbasepath not found\n" 1>&2 ; exit 1 ; }; \
- cp \
- "$$(find "$${vsbasepath}/Community" -ipath '*/x86/*/VCRUNTIME140D.dll' | sort -n -r | head -n 1)" \
- - "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/." ; \
- - cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/x86/ucrt/ucrtbased.dll' "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686/." ; \
- + "$(DESTDIR)/lib/msnfs41client/i686/." ; \
- + cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/x86/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/i686/." ; \
- if [[ "$(VS_BUILD_DIR_X64)" != '' ]] ; then \
- cp \
- "$$(find "$${vsbasepath}/Community" -ipath '*/x64/*/VCRUNTIME140D.dll' | sort -n -r | head -n 1)" \
- - "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/." ; \
- - cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/x64/ucrt/ucrtbased.dll' "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64/." ; \
- + "$(DESTDIR)/lib/msnfs41client/x64/." ; \
- + cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/x64/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/x64/." ; \
- fi ; \
- if [[ "$(VS_BUILD_DIR_ARM64)" != '' ]] ; then \
- cp \
- "$$(find "$${vsbasepath}/Community" -ipath '*/arm64/*/VCRUNTIME140D.dll' | sort -n -r | head -n 1)" \
- - "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/." ; \
- - cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/arm64/ucrt/ucrtbased.dll' "$(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64/." ; \
- + "$(DESTDIR)/lib/msnfs41client/ARM64/." ; \
- + cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/bin/arm64/ucrt/ucrtbased.dll' "$(DESTDIR)/lib/msnfs41client/ARM64/." ; \
- fi
- @ printf "# Set file flags\n"
- - (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/ && chmod a+rx *.exe)
- - (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/ && chmod a+rx *.exe)
- - (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/i686 && chmod a+rx *.exe *.dll)
- + (cd $(DESTDIR)/bin/ && chmod a+rx *.exe)
- + (cd $(DESTDIR)/sbin/ && chmod a+rx *.exe)
- + (cd $(DESTDIR)/lib/msnfs41client/i686 && chmod a+rx *.exe *.dll)
- if [[ "$(VS_BUILD_DIR_X64)" != '' ]] ; then \
- - (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/x64 && chmod a+rx *.exe *.dll) ; \
- + (cd $(DESTDIR)/lib/msnfs41client/x64 && chmod a+rx *.exe *.dll) ; \
- fi
- if [[ "$(VS_BUILD_DIR_ARM64)" != '' ]] ; then \
- - (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/lib/msnfs41client/ARM64 && chmod a+rx *.exe *.dll) ; \
- + (cd $(DESTDIR)/lib/msnfs41client/ARM64 && chmod a+rx *.exe *.dll) ; \
- fi
- - @printf "\n#\n# TEST sbin dir is %s\n#\n" "$(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/"
- + @printf "\n#\n# TEST sbin dir is %s\n#\n" "$(DESTDIR)/sbin/"
- @printf '\n'
- @printf "\n#\n# Now use\n# $$ cd '%s' && ./msnfs41client install #\n# to install the kernel driver as Admin\n#\n" \
- - "$(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/"
- + "$(DESTDIR)/sbin/"
- sync
- diff --git a/cygwin/devel/msnfs41client.bash b/cygwin/devel/msnfs41client.bash
- index b7f6b07..704b306 100755
- --- a/cygwin/devel/msnfs41client.bash
- +++ b/cygwin/devel/msnfs41client.bash
- @@ -222,6 +222,27 @@ function nfsclient_install
- ln -f 'i686/nfs_mount.release.i686.exe' "../../sbin/nfs_mount.i686.exe"
- fi
- + # copy ksh93&co
- + case "${kernel_platform}" in
- + 'x64')
- + ln -f "${platform_dir}/ksh93.x86_64.exe" "../../bin/ksh93.exe"
- + ln -f "${platform_dir}/shcomp.x86_64.exe" "../../bin/shcomp.exe"
- + ;;
- + 'ARM64')
- + if [[ -f "${platform_dir}/ksh93.arm64.exe" ]] ; then
- + ln -f "${platform_dir}/ksh93.arm64.exe" "../../bin/ksh93.exe"
- + ln -f "${platform_dir}/shcomp.arm64.exe" "../../bin/shcomp.exe"
- + else
- + ln -f "${platform_dir}/../x64/ksh93.x86_64.exe" "../../bin/ksh93.exe"
- + ln -f "${platform_dir}/../x64/shcomp.x86_64.exe" "../../bin/shcomp.exe"
- + fi
- + ;;
- + 'i686')
- + ln -f "${platform_dir}/ksh93.i686.exe" "../../bin/ksh93.exe"
- + ln -f "${platform_dir}/shcomp.i686.exe" "../../bin/shcomp.exe"
- + ;;
- + esac
- +
- typeset -a platformspecificexe=(
- 'bin/winfsinfo'
- 'bin/winclonefile'
- --
- 2.51.0
- From 1305898f315bd427503c81f003d2a01be64a69f1 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Mon, 29 Sep 2025 13:20:40 +0200
- Subject: [PATCH 2/4] sys: |map_mount_errors()| should map
- |ERROR_BAD_ARGUMENTS| to |STATUS_INVALID_PARAMETER|
- |map_mount_errors()| should map |ERROR_BAD_ARGUMENTS| to
- |STATUS_INVALID_PARAMETER|, in case nfsd.exe reports invalid/bad arguments
- (e.g. TCP port==0 via $ nfs_mount -o rw '*' 'nfs://10.49.202.128://xxx' #, note
- the missing port number behind ':').
- Reported-by: Josh Hurst <joshhurst@gmail.com>
- Reported-by: Lionel Cons <lionelcons1972@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- sys/nfs41sys_mount.c | 1 +
- 1 file changed, 1 insertion(+)
- diff --git a/sys/nfs41sys_mount.c b/sys/nfs41sys_mount.c
- index b22a679..ac5e8d6 100644
- --- a/sys/nfs41sys_mount.c
- +++ b/sys/nfs41sys_mount.c
- @@ -249,6 +249,7 @@ NTSTATUS map_mount_errors(
- case ERROR_BAD_NETPATH: return STATUS_BAD_NETWORK_PATH;
- case ERROR_NOT_SUPPORTED: return STATUS_NOT_SUPPORTED;
- case ERROR_NFS_VERSION_MISMATCH: return STATUS_NFS_VERSION_MISMATCH;
- + case ERROR_BAD_ARGUMENTS: return STATUS_INVALID_PARAMETER;
- case ERROR_INTERNAL_ERROR: return STATUS_INTERNAL_ERROR;
- default:
- print_error("map_mount_errors: "
- --
- 2.51.0
- From 07a3cbf371cfc3d8f84050b1cc3c50f277d476d5 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Mon, 29 Sep 2025 13:47:47 +0200
- Subject: [PATCH 3/4] README.md,docs: Document how to build ms-nfs41-client
- with VS2026 Community Insiders on Windows 10
- Document how to build ms-nfs41-client with "Visual Studio 2026 Community
- Insiders" edition on Windows 10.
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++-----
- docs/README.xml | 49 ++++++++++++++++++++++++++++++++++++++++++-----
- 2 files changed, 90 insertions(+), 10 deletions(-)
- diff --git a/README.md b/README.md
- index 9fc64de..bc07283 100644
- --- a/README.md
- +++ b/README.md
- @@ -234,7 +234,8 @@ NFSv4.2/NFSv4.1 filesystem driver for Windows 10/11 & Windows Server
- - All tools from Cygwin/MSYS2/MinGW
- - - Visual Studio (tested: VS2019, VS2022)
- + - Visual Studio (tested: VS2019 Community VS2022 Community, VS2026
- + Community Insiders)
- - VMware Workstation (can use VMs hosted on NFSv4.2/NFSv4.1
- filesystem)
- @@ -823,7 +824,7 @@ Source code can be obtained from
- #### Required Software
- -- **Option 1:** Windows 10 with Visual Studio 2019
- +- **Option 1:** Windows 10 with Visual Studio 2019 Community
- - Start Visual Studio 2019 installer and import the installer config
- file `ms-nfs41-client/build.vc19/ms-nfs41-client_vs2019.vsconfig`,
- @@ -844,7 +845,7 @@ Source code can be obtained from
- - PanDoc document converter, from
- <https://github.com/jgm/pandoc/releases/download/3.7.0.1/pandoc-3.7.0.1-windows-x86_64.msi>
- -- **Option 2:** Windows 10/11 with Visual Studio 2022
- +- **Option 2:** Windows 11 with Visual Studio 2022 Community
- - Start Visual Studio 2022 installer and import the installer config
- file `ms-nfs41-client/build.vc19/ms-nfs41-client_vs2022.vsconfig`,
- @@ -865,9 +866,31 @@ Source code can be obtained from
- - PanDoc document converter, from
- <https://github.com/jgm/pandoc/releases/download/3.7.0.1/pandoc-3.7.0.1-windows-x86_64.msi>
- +- **Option 3 (EXPERIMENTAL):** Windows 10 with Visual Studio 2026
- + Community Insiders
- +
- + - Start Visual Studio 2026 installer and import the installer config
- + file `ms-nfs41-client/build.vc19/ms-nfs41-client_vs2022.vsconfig`,
- + and then install Visual Studio 2026 Community Insiders.
- +
- + - WDK for Windows 10, version 2004, from
- + <https://go.microsoft.com/fwlink/?linkid=2128854>, and then copy the
- + `Microsoft.DriverKit.Build.Tasks.16.0.dll` to
- + `Microsoft.DriverKit.Build.Tasks.18.0.dll`:
- +
- + cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/build/bin/Microsoft.DriverKit.Build.Tasks.16.0.dll' '/cygdrive/c/Program Files (x86)/Windows Kits/10/build/bin/Microsoft.DriverKit.Build.Tasks.18.0.dll'
- +
- + - Cygwin 64bit \>= 3.5.0 (see
- + `ms-nfs41-clientcygwin/README.bintarball.txt` for Cygwin 32bit and
- + 64bit installation instructions)
- +
- + - PanDoc document converter, from
- + <https://github.com/jgm/pandoc/releases/download/3.7.0.1/pandoc-3.7.0.1-windows-x86_64.msi>
- +
- #### Build the Project
- -- **Using Visual Studio 2019+Cygwin command line (bash/ksh93):**
- +- **Windows 10: Using Visual Studio 2019+Cygwin command line
- + (bash/ksh93):**
- # this creates a 32bit+kernel+64bit-kernel build for Windows 10+11
- export PATH="/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/:$PATH"
- @@ -880,7 +903,8 @@ Source code can be obtained from
- make installdest
- make bintarball
- -- **Using Visual Studio 2022+Cygwin command line (bash/ksh93):**
- +- **Windows 11: Using Visual Studio 2022+Cygwin command line
- + (bash/ksh93):**
- # this creates a 64bit-kernel only build for Windows 11
- export PATH="/cygdrive/c/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/:$PATH"
- @@ -896,6 +920,23 @@ Source code can be obtained from
- make installdest64
- make bintarball64
- +- **Windows 10: Using Visual Studio 2026 Community Insiders+Cygwin
- + command line (bash/ksh93):**
- +
- + # this creates a 32bit+kernel+64bit-kernel build for Windows 10+11
- + export PATH="/cygdrive/c/Program Files/Microsoft Visual Studio/18/Insiders/MSBuild/Current/Bin/:$PATH"
- + git clone https://github.com/kofemann/ms-nfs41-client.git
- + cd ms-nfs41-client
- + # "retarget" VS platform toolset to "v145"
- + # ("v142" should remain the default when comitting)
- + sed -i -E 's/<PlatformToolset>v142<\/PlatformToolset>/<PlatformToolset>v145<\/PlatformToolset>/g' $(find 'build.vc19' -name \*.vcxproj)
- + cd cygwin
- + # get default WDK Test Certificate SHA1 ThumbPrint value for code signing
- + export CERTIFICATE_THUMBPRINT="$(powershell -c 'Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.Subject -like "*WDKTestCert*"} | Select-Object -ExpandProperty Thumbprint')"
- + make build
- + make installdest
- + make bintarball
- +
- > [!NOTE]
- > `make installdest` or `make installdest64` can fail on SMB/NFSv4.1
- > filesystems with a "link.exe" crash. The workaround is to disable
- diff --git a/docs/README.xml b/docs/README.xml
- index 7952b65..7666be1 100644
- --- a/docs/README.xml
- +++ b/docs/README.xml
- @@ -265,7 +265,7 @@
- <para>All tools from Cygwin/MSYS2/MinGW</para>
- </listitem>
- <listitem>
- - <para>Visual Studio (tested: VS2019, VS2022)</para>
- + <para>Visual Studio (tested: VS2019 Community VS2022 Community, VS2026 Community Insiders)</para>
- </listitem>
- <listitem>
- <para>VMware Workstation (can use VMs hosted on NFSv4.2/NFSv4.1 filesystem)</para>
- @@ -925,7 +925,7 @@ Datei befindet. Versuchen Sie, die Datei woanders zu speichern.</programlisting>
- <title>Required Software</title>
- <itemizedlist>
- <listitem>
- - <para><emphasis role="bold">Option 1:</emphasis> Windows 10 with Visual Studio 2019</para>
- + <para><emphasis role="bold">Option 1:</emphasis> Windows 10 with Visual Studio 2019 Community</para>
- <itemizedlist>
- <listitem>
- <para>Start Visual Studio 2019 installer and import the installer config file
- @@ -946,7 +946,7 @@ Datei befindet. Versuchen Sie, die Datei woanders zu speichern.</programlisting>
- </itemizedlist>
- </listitem>
- <listitem>
- - <para><emphasis role="bold">Option 2:</emphasis> Windows 10/11 with Visual Studio 2022</para>
- + <para><emphasis role="bold">Option 2:</emphasis> Windows 11 with Visual Studio 2022 Community</para>
- <itemizedlist>
- <listitem>
- <para>Start Visual Studio 2022 installer and import the installer config file
- @@ -966,6 +966,28 @@ Datei befindet. Versuchen Sie, die Datei woanders zu speichern.</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- + <listitem>
- + <para><emphasis role="bold">Option 3 (EXPERIMENTAL):</emphasis> Windows 10 with Visual Studio 2026 Community Insiders</para>
- + <itemizedlist>
- + <listitem>
- + <para>Start Visual Studio 2026 installer and import the installer config file
- + <filename>ms-nfs41-client/build.vc19/ms-nfs41-client_vs2022.vsconfig</filename>,
- + and then install Visual Studio 2026 Community Insiders.</para>
- + </listitem>
- + <listitem>
- + <para>WDK for Windows 10, version 2004, from <link xl:href="https://go.microsoft.com/fwlink/?linkid=2128854">https://go.microsoft.com/fwlink/?linkid=2128854</link>,
- + and then copy the <filename>Microsoft.DriverKit.Build.Tasks.16.0.dll</filename> to <filename>Microsoft.DriverKit.Build.Tasks.18.0.dll</filename>:
- + <programlisting>cp '/cygdrive/c/Program Files (x86)/Windows Kits/10/build/bin/Microsoft.DriverKit.Build.Tasks.16.0.dll' '/cygdrive/c/Program Files (x86)/Windows Kits/10/build/bin/Microsoft.DriverKit.Build.Tasks.18.0.dll'</programlisting>
- + </para>
- + </listitem>
- + <listitem>
- + <para>Cygwin 64bit >= 3.5.0 (see <filename>ms-nfs41-clientcygwin/README.bintarball.txt</filename> for Cygwin 32bit and 64bit installation instructions)</para>
- + </listitem>
- + <listitem>
- + <para>PanDoc document converter, from <link xl:href="https://github.com/jgm/pandoc/releases/download/3.7.0.1/pandoc-3.7.0.1-windows-x86_64.msi">https://github.com/jgm/pandoc/releases/download/3.7.0.1/pandoc-3.7.0.1-windows-x86_64.msi</link></para>
- + </listitem>
- + </itemizedlist>
- + </listitem>
- </itemizedlist>
- </section>
- @@ -973,7 +995,7 @@ Datei befindet. Versuchen Sie, die Datei woanders zu speichern.</programlisting>
- <title>Build the Project</title>
- <itemizedlist>
- <listitem>
- - <para><emphasis role="bold">Using Visual Studio 2019+Cygwin command line (bash/ksh93):</emphasis></para>
- + <para><emphasis role="bold">Windows 10: Using Visual Studio 2019+Cygwin command line (bash/ksh93):</emphasis></para>
- <programlisting># this creates a 32bit+kernel+64bit-kernel build for Windows 10+11
- export PATH="/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/:$PATH"
- git clone https://github.com/kofemann/ms-nfs41-client.git
- @@ -986,7 +1008,7 @@ make installdest
- make bintarball</programlisting>
- </listitem>
- <listitem>
- - <para><emphasis role="bold">Using Visual Studio 2022+Cygwin command line (bash/ksh93):</emphasis></para>
- + <para><emphasis role="bold">Windows 11: Using Visual Studio 2022+Cygwin command line (bash/ksh93):</emphasis></para>
- <programlisting># this creates a 64bit-kernel only build for Windows 11
- export PATH="/cygdrive/c/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/:$PATH"
- git clone https://github.com/kofemann/ms-nfs41-client.git
- @@ -1001,6 +1023,23 @@ make build64
- make installdest64
- make bintarball64</programlisting>
- </listitem>
- + <listitem>
- + <para><emphasis role="bold">Windows 10: Using Visual Studio 2026 Community Insiders+Cygwin command line (bash/ksh93):</emphasis></para>
- + <programlisting># this creates a 32bit+kernel+64bit-kernel build for Windows 10+11
- +export PATH="/cygdrive/c/Program Files/Microsoft Visual Studio/18/Insiders/MSBuild/Current/Bin/:$PATH"
- +git clone https://github.com/kofemann/ms-nfs41-client.git
- +cd ms-nfs41-client
- +# "retarget" VS platform toolset to "v145"
- +# ("v142" should remain the default when comitting)
- +sed -i -E 's/<PlatformToolset>v142<\/PlatformToolset>/<PlatformToolset>v145<\/PlatformToolset>/g' $(find 'build.vc19' -name \*.vcxproj)
- +cd cygwin
- +# get default WDK Test Certificate SHA1 ThumbPrint value for code signing
- +export CERTIFICATE_THUMBPRINT="$(powershell -c 'Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.Subject -like "*WDKTestCert*"} | Select-Object -ExpandProperty Thumbprint')"
- +make build
- +make installdest
- +make bintarball</programlisting>
- + </listitem>
- +
- </itemizedlist>
- <note>
- <para><command>make installdest</command> or <command>make installdest64</command> can fail on SMB/NFSv4.1 filesystems with a "link.exe" crash. The workaround is to disable incremental linking before building, e.g., do:</para>
- --
- 2.51.0
- From 0d24269a1ddcc4170c13a9727670555692044bb7 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Mon, 29 Sep 2025 14:32:32 +0200
- Subject: [PATCH 4/4] tests: nfsbuildtest: Handle Cygwin uname -r output for
- devel Cygwin versions
- Handle Cygwin uname -r output for devel Cygwin versions.
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- tests/nfsbuildtest/nfsbuildtest.ksh93 | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
- diff --git a/tests/nfsbuildtest/nfsbuildtest.ksh93 b/tests/nfsbuildtest/nfsbuildtest.ksh93
- index 5946fa3..234f09f 100644
- --- a/tests/nfsbuildtest/nfsbuildtest.ksh93
- +++ b/tests/nfsbuildtest/nfsbuildtest.ksh93
- @@ -591,7 +591,10 @@ function get_cpv_cygwin_version
- typeset uname_r="${ /usr/bin/uname -r ; }"
- typeset leftover
- - leftover="${uname_r/~(Elr)([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)-([[:digit:]]+)\..+/x}"
- + # Example output of $ uname -r # on Cygwin:
- + # "3.3.6-341.i686"
- + # "3.7.0-dev-289-g63dc988ac745-dirty.x86_64"
- + leftover="${uname_r/~(Elr)([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)-(?:dev-|)([[:digit:]]+)(-|\.).+/x}"
- if [[ "$leftover" != 'x' ]] ; then
- print -u2 -f $"%s: error parsing uname -r for Cygwin version number, got %q\n" \
- --
- 2.51.0
msnfs41client: Patches for unified 32bit/64bit install dir, docs for building with VS2026, tests+misc, 2025-09-29
Posted by Anonymous on Mon 29th Sep 2025 14:04
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.