forked from awslabs/mountpoint-s3
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7687d74
commit 8671b85
Showing
41 changed files
with
12,578 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
freebsd_instance: | ||
image_family: freebsd-12-2 | ||
|
||
task: | ||
name: FreeBSD 12.2 | ||
setup_script: | ||
- pkg install -y pkgconf fusefs-libs fusefs-libs3 rust | ||
build_script: | ||
- cargo build --all --all-targets | ||
doc_script: | ||
- cargo doc --all --no-deps --features=abi-7-21 | ||
test_script: | ||
- cargo test --all --all-targets -- --skip=mnt::test::mount_unmount | ||
- cargo test --all --all-targets --features=abi-7-21 -- --skip=mnt::test::mount_unmount |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
* | ||
!src/ | ||
!examples/ | ||
!./Cargo.* | ||
!./build.rs | ||
!./pjdfs.sh | ||
!./xfstests.sh | ||
!./mount_tests.sh | ||
!./simplefs_tests.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
name: CI | ||
|
||
on: | ||
pull_request: | ||
|
||
jobs: | ||
compile: | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
matrix: | ||
libfuse: [libfuse-dev, libfuse3-dev] | ||
features: [ '', 'abi-7-19' ] | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install packages | ||
run: | | ||
sudo apt update | ||
sudo apt install -y ${{ matrix.libfuse }} build-essential | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
target: x86_64-unknown-linux-musl | ||
|
||
- name: Run tests | ||
run: | | ||
cargo build --all --all-targets --features=${{ matrix.features }} | ||
cargo build --all --all-targets --no-default-features | ||
cargo build --target=x86_64-unknown-linux-musl --no-default-features | ||
cargo test --all --features=${{ matrix.features }} | ||
cargo doc --all --no-deps --features=${{ matrix.features }} | ||
ci: | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
matrix: | ||
test_group: [pre, mount_tests, pjdfs_tests, xfstests] | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install packages | ||
run: | | ||
sudo apt update | ||
sudo apt install -y libfuse-dev libfuse3-dev build-essential | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
components: rustfmt, clippy | ||
|
||
- name: Cache cargo registry | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo/registry | ||
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Cache cargo index | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo/git | ||
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Cache cargo build | ||
uses: actions/cache@v1 | ||
with: | ||
path: target | ||
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | ||
|
||
- name: Install cargo-deny | ||
run: cargo install --force cargo-deny --locked | ||
|
||
- name: Run tests | ||
run: INTERACTIVE="" make ${{ matrix.test_group }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
name: Macos CI | ||
|
||
on: | ||
pull_request: | ||
jobs: | ||
ci-osxfuse: | ||
runs-on: macos-10.15 | ||
env: | ||
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig:$PKG_CONFIG_PATH | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install packages | ||
run: | | ||
brew update > /dev/null && brew install --cask osxfuse | ||
- name: Start fuse | ||
run: | | ||
/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
components: rustfmt, clippy | ||
- name: Cache cargo registry | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo/registry | ||
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Cache cargo index | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo/git | ||
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Build all targets | ||
run: cargo build --all --all-targets | ||
- name: Build all targets, all features | ||
run: cargo build --all --all-targets --all-features | ||
- name: Run all tests | ||
run: cargo test --all | ||
- name: Run all tests, all features | ||
run: cargo test --all --all-features | ||
- name: Run cargo doc for all features | ||
run: cargo doc --all --no-deps --all-features | ||
- name: Run macos mount tests | ||
run: bash osx_mount_tests.sh | ||
ci-macfuse: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
os: [macos-10.15] | ||
env: | ||
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig:$PKG_CONFIG_PATH | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install packages | ||
run: | | ||
brew update > /dev/null && brew install --cask macfuse | ||
- name: Start fuse | ||
run: | | ||
/Library/Filesystems/macfuse.fs/Contents/Resources/load_macfuse | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
components: rustfmt, clippy | ||
- name: Cache cargo registry | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo/registry | ||
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Cache cargo index | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo/git | ||
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Build all targets | ||
run: cargo build --all --all-targets | ||
- name: Build all targets, all features | ||
run: cargo build --all --all-targets --all-features | ||
- name: Run all tests | ||
run: cargo test --all | ||
- name: Run all tests, all features | ||
run: cargo test --all --all-features | ||
- name: Run cargo doc for all features | ||
run: cargo doc --all --no-deps --all-features | ||
- name: Run macos mount tests | ||
run: bash osx_mount_tests.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
/Cargo.lock | ||
/target | ||
.idea/ | ||
logs/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
# FUSE for Rust - Changelog | ||
|
||
## 0.12.0 - UNRELEASED | ||
|
||
## 0.11.0 - 2022-03-05 | ||
* Add `spawn_mount2()` | ||
* Deprecate `spawn_mount()` | ||
|
||
## 0.10.0 - 2022-01-06 | ||
* Improve error messages | ||
* Support compiling with musl | ||
* Default `link()` & `symlink()` now return EPERM instead of ENOSYS | ||
|
||
## 0.9.1 - 2021-09-07 | ||
* `forget` and `batch_forget` no longer require that `AllowRoot` be set | ||
|
||
## 0.9.0 - 2021-08-31 | ||
* Ensure that `Filesystem::destroy` is always called, when the filesystem is unmounted | ||
* Remove request parameter from `Filesystem::destroy`. | ||
* Make `fuse_forget_one` public, so that `Filesystem::batch_forget` can be implemented by users. | ||
* Fix `batch_forget`. Previously, it always received an empty list of inodes. | ||
* Fix `MountOption::AllowRoot`. Previously, using it resulted in a crash. | ||
* Fix `MountOption::AutoUnmount` so that it works when `AllowRoot` and `AllowOther` are both not set. | ||
* Make log messages more verbose (now includes the operation) | ||
|
||
## 0.8.0 - 2021-06-11 | ||
* Deprecate `mount()` | ||
* Remove `FileAttr.padding`. This field was added by mistake, and does nothing | ||
* Fix crash when receiving an unknown FUSE operation type | ||
* Minor performance optimizations | ||
|
||
## 0.7.0 - 2021-01-10 | ||
* Support building with MacFuse 4.x on OSX | ||
* Support configuring max_write & max_readahead via `KernelConfig` during `init` | ||
* Support configuring filesystem timestamp granularity via `KernelConfig.set_time_granularity` during `init` | ||
* Support requesting additional capability flags via `KernelConfig.add_capabilities` during `init` | ||
|
||
## 0.6.0 - 2020-11-22 | ||
* Make `spawn_mount()` safe | ||
* Change `flags` parameter of `create()`, `open()`, `opendir()`, `release()`, `releasedir()` to be signed, so that it matches | ||
libfuse and the associated constants in libc | ||
* Change `flags` parameter of `setxattr()` to be signed, so that it matches libfuse | ||
* Change `mask` parameter of `access()` to be signed, so that it matches libfuse and the associated constants in libc | ||
* Change lock type parameter of `getlk()` and `setlk()` to be signed, so that it matches libfuse and the associated constants in libc | ||
* Change atime & atime_now and mtime & mtime_now parameters of `setattr()` to make their relationship more obvious | ||
* Add `lock_owner` and file `flags` parameters to `read()` and `write()` | ||
* Add `umask` parameter to `mknod()`, `mkdir()` and `create()` | ||
* Add `KernelConfig` parameter to `init()` to allow `Filesystem` to configure the kernel connection attributes | ||
* Add support for `fallocate()`, `ioctl()`, `copy_file_range()`, and `lseek()` | ||
* Add support for FUSE_BATCH_FORGET | ||
* Add support for FUSE_READDIRPLUS | ||
* Add support for FUSE_RENAME2 | ||
* Add FUSE_WRITE_KILL_PRIV flag for `write()` | ||
* Add FUSE_WRITEBACK_CACHE flag | ||
* Add FUSE_NO_OPEN_SUPPORT flag | ||
* Add FUSE_PARALLEL_DIROPS flag | ||
* Add FUSE_HANDLE_KILLPRIV flag | ||
* Add FUSE_POSIX_ACL flag | ||
* Add FUSE_ABORT_ERROR flag | ||
* Add FUSE_NO_OPENDIR_SUPPORT flag | ||
* Add FUSE_CACHE_SYMLINKS flag | ||
* Add FUSE_EXPLICIT_INVAL_DATA flag | ||
* Add FUSE_IOCTL_COMPAT_X32 flag | ||
* Add FOPEN_CACHE_DIR flag | ||
* Add FOPEN_STREAM flag | ||
* Add FUSE_MAX_PAGES flag | ||
* Add max_pages, and time_gran support to init code path (these are not currently configurable) | ||
* Add support for ctime in `setattr()` | ||
* Add support for timestamps before the unix epoch in `getattr()` and `setattr()` | ||
|
||
## 0.5.0 - 2020-10-17 | ||
|
||
* Enable FUSE_BIG_WRITES for ABI >= 7.10 | ||
* Add FUSE_AUTO_INVAL_DATA constant | ||
* Add ABI 7.20 to 7.31 feature flags. Support for these are incomplete. | ||
* Add support for building with libfuse3 | ||
* Add support for building without libfuse/libfuse3 on Linux (i.e. there's now a pure Rust implementation of all features) | ||
* Add `mount2()` with improved option API | ||
|
||
## 0.4.1 - 2020-10-12 | ||
|
||
* Added new feature `serializable` that will enable serde serialization/deserialization for `FileType`, `FileAttr` | ||
|
||
## 0.4.0 - 2020-06-18 | ||
|
||
* Forked as `fuser` crate, at https://github.com/cberner/fuser | ||
* Add ATIME_NOW and MTIME_NOW support | ||
* Add stubs for ioctl, fallocate, and poll for ABI 7.11 | ||
|
||
## 0.3.1 - 2017-11-08 | ||
|
||
* Offsets to `read`, `write` and `readdir` methods are signed integers now (breaking change, sorry) | ||
* Link `libosxfuse` on macOS, `libfuse` on all other systems | ||
|
||
## 0.3.0 - 2017-01-06 | ||
|
||
* Fix extended attribute handling (`getxattr` and `listxattr` methods changed and `ReplyXattr` was added) | ||
* `mount` now also returns a `Result` since it may fail if the session fails to run | ||
* Filenames are now passed as `&OsStr` in the filesystem interface | ||
* Removed publishing of documentation on GitHub pages. Docs are now available on https://docs.rs/fuse | ||
* Add `FileType::Socket` | ||
|
||
## 0.2.8 - 2016-07-31 | ||
|
||
* Documentation of releases is build by CI now and made available at https://zargony.github.io/rust-fuse | ||
* Fix `unmount` on BSD systems | ||
* Simplified `libfuse` detection with `pkg-config` | ||
* `ReplyDirectory::sized` was removed since it was impossible to use it safely | ||
|
||
## 0.2.7 - 2015-09-08 | ||
|
||
* Update to latest Rust stable - no longer needs nightly Rust | ||
* A filesystem implementation doesn't need to be `Send` anymore to be mounted synchronously | ||
* A filesystem implementation doesn't need to be 'static anymore to be mounted asynchronously | ||
* CI tests are covering nightly, beta and stable Rust under OSX and Linux now | ||
|
||
## 0.2.6 - 2015-04-23 | ||
|
||
* Update to latest Rust nightly | ||
* Fix mounting of filesystems as non-root on Linux systems | ||
|
||
## 0.2.5 - 2015-03-21 | ||
|
||
* Update to latest Rust nightly | ||
* `unmount` returns a `Result` now since unmounting may fail internally | ||
* Fix `unmount` on Linux systems | ||
* Remove deprecated file types from interface (got rid of `std::old_io`) | ||
* Introducing `FileType` | ||
|
||
## 0.2.4 - 2015-02-22 | ||
|
||
* Update to latest Rust nightly | ||
* `spawn_mount` returns a `Result` now since starting a new thread may fail | ||
* Paths are now passed using `std::path::Path` (got rid of `std::old_path`) | ||
* FUSE options are now passed as a slice of `OsStr` rather than a slice of bytes | ||
|
||
## 0.2.3 - 2015-01-17 | ||
|
||
* Update to latest Rust nightly | ||
|
||
## 0.2.2 - 2015-01-14 | ||
|
||
* Update to latest Rust nightly | ||
* Ensure that `Reply` is `Send` to support asynchronous processing | ||
* Add CI testing under Linux | ||
|
||
## 0.2.1 - 2015-01-07 | ||
|
||
* Update to latest Rust nightly | ||
* Use `build.rs` and `pkg-config` to discover `libfuse` / `libosxfuse` | ||
|
||
## 0.2.0 - 2014-12-25 | ||
|
||
Initial release | ||
|
||
## pre-0.2.0 - 2013-10-03 | ||
|
||
No versioning (based on make, cargo and crates.io didn't exist yet) |
Oops, something went wrong.