diff -urN wine-7.0-orig/configure.ac wine-7.0/configure.ac
--- wine-7.0-orig/configure.ac	2022-01-19 05:52:35 +0900
+++ wine-7.0/configure.ac	2022-03-23 20:04:38 +0900
@@ -15,6 +15,11 @@
 
 dnl **** Command-line arguments ****
 
+AC_ARG_ENABLE(unixfs,AS_HELP_STRING([--disable-unixfs],[do not include unixfs support]))
+if test "x$enable_unixfs" != "xno"
+then
+    AC_DEFINE(ENABLE_UNIXFS, 1, [Define to enable unixfs]) 
+fi
 AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 support]))
 AC_ARG_ENABLE(win64, AS_HELP_STRING([--enable-win64],[build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
 AC_ARG_ENABLE(tests, AS_HELP_STRING([--disable-tests],[do not build the regression tests]))
diff -urN wine-7.0-orig/dlls/ntdll/unix/file.c wine-7.0/dlls/ntdll/unix/file.c
--- wine-7.0-orig/dlls/ntdll/unix/file.c	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/ntdll/unix/file.c	2022-03-23 20:04:38 +0900
@@ -3237,7 +3237,9 @@
 static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char **unix_name_ret,
                                               UINT disposition )
 {
+#if defined(ENABLE_UNIXFS)
     static const WCHAR unixW[] = {'u','n','i','x'};
+#endif
     static const WCHAR invalid_charsW[] = { INVALID_NT_CHARS, 0 };
 
     NTSTATUS status = STATUS_SUCCESS;
@@ -3271,12 +3273,14 @@
     }
     if (pos > MAX_DIR_ENTRY_LEN) return STATUS_OBJECT_NAME_INVALID;
 
+#if defined(ENABLE_UNIXFS)
     if (pos >= 4 && !memcmp( prefix, unixW, sizeof(unixW) ))
     {
         /* allow slash for unix namespace */
         if (pos > 4 && prefix[4] == '/') pos = 4;
         is_unix = pos == 4;
     }
+#endif
     prefix_len = pos;
     prefix[prefix_len] = 0;
 
@@ -3541,7 +3545,9 @@
  */
 NTSTATUS unix_to_nt_file_name( const char *name, WCHAR **nt )
 {
+#if defined(ENABLE_UNIXFS)
     static const WCHAR unix_prefixW[] = {'\\','?','?','\\','u','n','i','x',0};
+#endif
     WCHAR dos_prefixW[] = {'\\','?','?','\\','A',':','\\',0};
     const WCHAR *prefix = unix_prefixW;
     unsigned int lenW, lenA = strlen(name);
@@ -3559,6 +3565,7 @@
         dos_prefixW[4] += drive;
         prefix = dos_prefixW;
     }
+#if defined(ENABLE_UNIXFS)
     else if (status != STATUS_OBJECT_PATH_NOT_FOUND) return status;
 
     lenW = wcslen( prefix );
@@ -3569,6 +3576,9 @@
     collapse_path( buffer );
     *nt = buffer;
     return STATUS_SUCCESS;
+#else
+    return status;
+#endif
 }
 
 
diff -urN wine-7.0-orig/dlls/shell32/folders.c wine-7.0/dlls/shell32/folders.c
--- wine-7.0-orig/dlls/shell32/folders.c	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/folders.c	2022-03-23 20:04:38 +0900
@@ -222,9 +222,11 @@
                 *piIndex = -IDI_SHELL_MY_DOCUMENTS;
             else if(IsEqualGUID(riid, &CLSID_NetworkPlaces))
                 *piIndex = -IDI_SHELL_MY_NETWORK_PLACES;
+#if defined(ENABLE_UNIXFS)
             else if(IsEqualGUID(riid, &CLSID_UnixFolder) ||
                     IsEqualGUID(riid, &CLSID_UnixDosFolder))
                 *piIndex = -IDI_SHELL_DRIVE;
+#endif
             else
                 *piIndex = -IDI_SHELL_FOLDER;
 	  }
diff -urN wine-7.0-orig/dlls/shell32/shell32_classes.idl wine-7.0/dlls/shell32/shell32_classes.idl
--- wine-7.0-orig/dlls/shell32/shell32_classes.idl	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/shell32_classes.idl	2022-03-23 20:04:38 +0900
@@ -126,6 +126,7 @@
     uuid(0afaced1-e828-11d1-9187-b532f1e9575d)
 ] coclass FolderShortcut { interface IShellFolder2; }
 
+/*
 [
     helpstring("/"),
     threading(apartment),
@@ -137,6 +138,7 @@
     threading(apartment),
     uuid(9d20aae8-0625-44b0-9ca7-71889c2254d9)
 ] coclass UnixDosFolder { interface IShellFolder2; }
+*/
 
 [
     helpstring("My Documents"),
diff -urN wine-7.0-orig/dlls/shell32/shell32_main.h wine-7.0/dlls/shell32/shell32_main.h
--- wine-7.0-orig/dlls/shell32/shell32_main.h	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/shell32_main.h	2022-03-23 20:04:38 +0900
@@ -94,8 +94,10 @@
 HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) DECLSPEC_HIDDEN;
 HRESULT WINAPI IFileSystemBindData_Constructor(const WIN32_FIND_DATAW *pfd, LPBC *ppV) DECLSPEC_HIDDEN;
 HRESULT WINAPI IControlPanel_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) DECLSPEC_HIDDEN;
+#if defined(ENABLE_UNIXFS)
 HRESULT WINAPI UnixFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv) DECLSPEC_HIDDEN;
 HRESULT WINAPI UnixDosFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN;
+#endif
 HRESULT WINAPI FolderShortcut_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN;
 HRESULT WINAPI MyDocuments_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv) DECLSPEC_HIDDEN;
 HRESULT WINAPI RecycleBin_Constructor(IUnknown * pUnkOuter, REFIID riif, LPVOID *ppv) DECLSPEC_HIDDEN;
@@ -177,8 +179,10 @@
 
 extern WCHAR swShell32Name[MAX_PATH] DECLSPEC_HIDDEN;
 
+#if defined(ENABLE_UNIXFS)
 extern const GUID CLSID_UnixFolder DECLSPEC_HIDDEN;
 extern const GUID CLSID_UnixDosFolder DECLSPEC_HIDDEN;
+#endif
 
 extern BOOL run_winemenubuilder( const WCHAR *args ) DECLSPEC_HIDDEN;
 
diff -urN wine-7.0-orig/dlls/shell32/shellole.c wine-7.0/dlls/shell32/shellole.c
--- wine-7.0-orig/dlls/shell32/shellole.c	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/shellole.c	2022-03-23 20:04:38 +0900
@@ -80,8 +80,10 @@
 	{&CLSID_ShellFSFolder,	IFSFolder_Constructor},
 	{&CLSID_ShellItem,	IShellItem_Constructor},
 	{&CLSID_ShellLink,	IShellLink_Constructor},
+#if defined(ENABLE_UNIXFS)
 	{&CLSID_UnixDosFolder,  UnixDosFolder_Constructor},
 	{&CLSID_UnixFolder,     UnixFolder_Constructor},
+#endif
 	{&CLSID_ExplorerBrowser,ExplorerBrowser_Constructor},
 	{&CLSID_KnownFolderManager, KnownFolderManager_Constructor},
 	{&CLSID_Shell,          IShellDispatch_Constructor},
diff -urN wine-7.0-orig/dlls/shell32/shellpath.c wine-7.0/dlls/shell32/shellpath.c
--- wine-7.0-orig/dlls/shell32/shellpath.c	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/shellpath.c	2022-03-23 20:04:38 +0900
@@ -3300,9 +3300,11 @@
         DWORD call_for_attr;
     } folders[] =
     {
+#if defined(ENABLE_UNIXFS)
         { &CLSID_UnixFolder, TRUE, FALSE, FALSE },
         { &CLSID_UnixDosFolder, TRUE, FALSE, FALSE,
           SFGAO_FILESYSANCESTOR|SFGAO_FOLDER|SFGAO_HASSUBFOLDER, SFGAO_FILESYSTEM },
+#endif
         { &CLSID_FolderShortcut, FALSE, FALSE, FALSE,
           SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_LINK,
           SFGAO_HASSUBFOLDER|SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR },
@@ -3432,9 +3434,11 @@
             *ppidl = _ILCreateDesktop();
             break;
 
+#if defined(ENABLE_UNIXFS)
         case CSIDL_PERSONAL:
             *ppidl = _ILCreateMyDocuments();
             break;
+#endif
 
         case CSIDL_INTERNET:
             *ppidl = _ILCreateIExplore();
diff -urN wine-7.0-orig/dlls/shell32/shfldr.h wine-7.0/dlls/shell32/shfldr.h
--- wine-7.0-orig/dlls/shell32/shfldr.h	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/shfldr.h	2022-03-23 20:04:38 +0900
@@ -82,5 +82,7 @@
 
 void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags) DECLSPEC_HIDDEN;
 
+#if defined(ENABLE_UNIXFS)
 DEFINE_GUID( CLSID_UnixFolder, 0xcc702eb2, 0x7dc5, 0x11d9, 0xc6, 0x87, 0x00, 0x04, 0x23, 0x8a, 0x01, 0xcd );
 DEFINE_GUID( CLSID_UnixDosFolder, 0x9d20aae8, 0x0625, 0x44b0, 0x9c, 0xa7, 0x71, 0x88, 0x9c, 0x22, 0x54, 0xd9 );
+#endif
diff -urN wine-7.0-orig/dlls/shell32/shfldr_desktop.c wine-7.0/dlls/shell32/shfldr_desktop.c
--- wine-7.0-orig/dlls/shell32/shfldr_desktop.c	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/shfldr_desktop.c	2022-03-23 20:04:38 +0900
@@ -185,11 +185,13 @@
         pidlTemp = _ILCreateMyComputer ();
         szNext = lpszDisplayName;
     }
+#if defined(ENABLE_UNIXFS)
     else if (!wcsncmp( lpszDisplayName, L"\\\\?\\unix\\", 9 ))
     {
         pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder);
         szNext = lpszDisplayName;
     }
+#endif
     else if (PathIsUNCW(lpszDisplayName))
     {
         pidlTemp = _ILCreateNetwork();
@@ -217,6 +219,7 @@
 
         if (*lpszDisplayName)
         {
+#if defined(ENABLE_UNIXFS)
             if (*lpszDisplayName == '/')
             {
                 /* UNIX paths should be parsed by unixfs */
@@ -230,6 +233,7 @@
                 }
             }
             else
+#endif
             {
                 /* build a complete path to create a simple pidl */
                 WCHAR szPath[MAX_PATH];
diff -urN wine-7.0-orig/dlls/shell32/shfldr_fs.c wine-7.0/dlls/shell32/shfldr_fs.c
--- wine-7.0-orig/dlls/shell32/shfldr_fs.c	2022-01-19 05:52:35 +0900
+++ wine-7.0/dlls/shell32/shfldr_fs.c	2022-03-23 20:06:11 +0900
@@ -332,6 +332,7 @@
         /* get the next element */
         szNext = GetNextElementW( lpszDisplayName, szPath + len, MAX_PATH - len );
 
+#if defined(ENABLE_UNIXFS)
         if (IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ) && lpszDisplayName[0] == '/')
         {
             lstrcpynW( szPath + len, lpszDisplayName + 1, MAX_PATH - len );
@@ -353,6 +354,7 @@
             (*ppidl)->mkid.cb = 0; /* Terminate the ITEMIDLIST */
             return S_OK;
         }
+#endif
 
         PathRemoveBackslashW( szPath );
 
@@ -441,7 +443,9 @@
     TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbc,
      shdebugstr_guid (riid), ppvOut);
 
+#if defined(ENABLE_UNIXFS)
     if (!IsEqualCLSID( clsid, &CLSID_UnixFolder ) && !IsEqualCLSID( clsid, &CLSID_UnixDosFolder ))
+#endif
         clsid = &CLSID_ShellFSFolder;
 
     return SHELL32_BindToChild (This->pidlRoot, clsid, This->sPathTarget, pidl, riid, ppvOut);
@@ -804,6 +808,7 @@
 
     lstrcpynW( dest, path, MAX_PATH );
 
+#if defined(ENABLE_UNIXFS)
     /* try to get a better path than the \\?\unix one */
     if (!wcsnicmp( path, L"\\\\?\\unix\\", 9 ))
     {
@@ -821,6 +826,7 @@
         }
         else lstrcpynW( dest, path + 8, MAX_PATH );
     }
+#endif
 
     if (!_ILIsDesktop(pidl))
     {
@@ -869,7 +875,12 @@
         {
             if (This->sPathTarget)
                 get_display_name( pszPath, This->sPathTarget, pidl,
-                                  IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ));
+#if defined(ENABLE_UNIXFS)
+                                  IsEqualCLSID( This->pclsid, &CLSID_UnixFolder )
+#else
+                                  0
+#endif
+            );
         } else {
             /* pidl has to contain exactly one non null SHITEMID */
             hr = E_INVALIDARG;
@@ -880,7 +891,12 @@
             This->sPathTarget)
         {
             get_display_name( pszPath, This->sPathTarget, pidl,
-                              IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ));
+#if defined(ENABLE_UNIXFS)
+                              IsEqualCLSID( This->pclsid, &CLSID_UnixFolder )
+#else
+                              0
+#endif
+            );
         }
         else _ILSimpleGetTextW(pidl, pszPath, MAX_PATH);
         if (!_ILIsFolder(pidl)) SHELL_FS_ProcessDisplayFilename(pszPath, dwFlags);
@@ -1891,6 +1907,7 @@
     return create_fs( outer_unk, riid, ppv, &CLSID_ShellFSFolder );
 }
 
+#if defined(ENABLE_UNIXFS)
 HRESULT WINAPI UnixFolder_Constructor(IUnknown *outer_unk, REFIID riid, void **ppv)
 {
     return create_fs( outer_unk, riid, ppv, &CLSID_UnixFolder );
@@ -1900,6 +1917,7 @@
 {
     return create_fs( outer_unk, riid, ppv, &CLSID_UnixDosFolder );
 }
+#endif
 
 HRESULT WINAPI FolderShortcut_Constructor(IUnknown *outer_unk, REFIID riid, void **ppv)
 {
diff -urN wine-7.0-orig/include/config.h.in wine-7.0/include/config.h.in
--- wine-7.0-orig/include/config.h.in	2022-01-19 05:52:35 +0900
+++ wine-7.0/include/config.h.in	2022-03-23 20:04:38 +0900
@@ -3,6 +3,9 @@
 #ifndef __WINE_CONFIG_H
 #define __WINE_CONFIG_H
 
+/* Define to enable unixfs */
+#undef ENABLE_UNIXFS
+
 /* Define to the file extension for executables. */
 #undef EXEEXT
 
