[PR #1855] [MERGED] Windows compilation support #2213

Closed
opened 2026-03-04 02:04:22 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/s3fs-fuse/s3fs-fuse/pull/1855
Author: @siketyan
Created: 1/12/2022
Status: Merged
Merged: 1/23/2022
Merged by: @gaul

Base: masterHead: master


📝 Commits (10+)

  • e6bf995 Add polyfills for MSYS2 environment
  • f5d7afd Use polyfills in MSYS2 environment
  • ca8fcc1 Disable features that causes problems on Windows
  • 59e67e5 Run autoupdate
  • 1bb6740 Ignore .exe files
  • 3829132 Add instructions for Windows compilation
  • bbdd314 Fix the statfs issue, using f_frsize instead
  • c5679e7 Revert "Run autoupdate"
  • 752e414 Use std::get_time instead in strptime polyfill
  • a462723 Remove duplicates in .gitignore

📊 Changes

5 files changed (+110 additions, -1 deletions)

View changed files

📝 .gitignore (+9 -0)
📝 COMPILATION.md (+55 -0)
📝 src/s3fs.cpp (+22 -1)
📝 src/string_util.cpp (+18 -0)
📝 src/string_util.h (+6 -0)

📄 Description

Relevant Issue (if applicable)

Closes #728

Details

Added support to compile s3fs-fuse on/for Windows.
It requires MSYS2 environment.
To complete the compilation, it was needed to put polyfills for functions that do not exist in MSYS2.
This pull request also adds the polyfills tho.

Confirmed that works:

  • Mounting to a drive (.\s3fs.exe [bucket] "S:" -f -o uid=-1 -o gid=-1 -o umask=0000 -o mp_umask=0000)
  • Listing, stating, reading, and writing files
  • Naming files/directories in CJK languages (Unicode support confirmed)

Known issues:

  • MSYS2 shell is required to execute because s3fs-fuse try to find AWS credentials only from /home/$USER/.aws/credentials, which does not exist on Windows

This pull request does not propose full support for Windows.
This is just a initial experiment to port this project to Windows, a not *nix operating system.
Note that the changes will not break any backward compatibility on *nix platforms.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/s3fs-fuse/s3fs-fuse/pull/1855 **Author:** [@siketyan](https://github.com/siketyan) **Created:** 1/12/2022 **Status:** ✅ Merged **Merged:** 1/23/2022 **Merged by:** [@gaul](https://github.com/gaul) **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (10+) - [`e6bf995`](https://github.com/s3fs-fuse/s3fs-fuse/commit/e6bf9958a38572dfeb72dc2ba58b31512d461aaf) Add polyfills for MSYS2 environment - [`f5d7afd`](https://github.com/s3fs-fuse/s3fs-fuse/commit/f5d7afd39d1391fc41ccbd26391dfbf7bd2c91e3) Use polyfills in MSYS2 environment - [`ca8fcc1`](https://github.com/s3fs-fuse/s3fs-fuse/commit/ca8fcc181bed0f620776eab5a65879af67263dbb) Disable features that causes problems on Windows - [`59e67e5`](https://github.com/s3fs-fuse/s3fs-fuse/commit/59e67e5bfc6330d7aca77a34a7aebd0ac58f91db) Run `autoupdate` - [`1bb6740`](https://github.com/s3fs-fuse/s3fs-fuse/commit/1bb67405b9084e9da25e9e0bf50cc0be5c63e500) Ignore .exe files - [`3829132`](https://github.com/s3fs-fuse/s3fs-fuse/commit/3829132bc942a01e884eb3c994ec1fb443f519e8) Add instructions for Windows compilation - [`bbdd314`](https://github.com/s3fs-fuse/s3fs-fuse/commit/bbdd314e103a9040c9136fc20c943e7d9918ee87) Fix the statfs issue, using f_frsize instead - [`c5679e7`](https://github.com/s3fs-fuse/s3fs-fuse/commit/c5679e7a482818f78172ccc476fa8fa088710863) Revert "Run `autoupdate`" - [`752e414`](https://github.com/s3fs-fuse/s3fs-fuse/commit/752e414f9137a56e4c2dfa474789faad23238dfd) Use std::get_time instead in strptime polyfill - [`a462723`](https://github.com/s3fs-fuse/s3fs-fuse/commit/a462723d8a2ac8848b280413ce080f08a1fa0791) Remove duplicates in .gitignore ### 📊 Changes **5 files changed** (+110 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `.gitignore` (+9 -0) 📝 `COMPILATION.md` (+55 -0) 📝 `src/s3fs.cpp` (+22 -1) 📝 `src/string_util.cpp` (+18 -0) 📝 `src/string_util.h` (+6 -0) </details> ### 📄 Description ### Relevant Issue (if applicable) Closes #728 ### Details Added support to compile s3fs-fuse on/for Windows. It requires MSYS2 environment. To complete the compilation, it was needed to put polyfills for functions that do not exist in MSYS2. This pull request also adds the polyfills tho. Confirmed that works: - Mounting to a drive (`.\s3fs.exe [bucket] "S:" -f -o uid=-1 -o gid=-1 -o umask=0000 -o mp_umask=0000`) - Listing, stating, reading, and writing files - Naming files/directories in CJK languages (Unicode support confirmed) Known issues: - MSYS2 shell is required to execute because s3fs-fuse try to find AWS credentials only from `/home/$USER/.aws/credentials`, which does not exist on Windows This pull request does not propose full support for Windows. This is just a initial experiment to port this project to Windows, a not *nix operating system. Note that the changes will not break any backward compatibility on *nix platforms. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-04 02:04:22 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#2213
No description provided.