Skip to content

Commit

Permalink
Update vendored fuser to 68e60ea
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesbornholt committed Sep 3, 2022
1 parent 7687d74 commit 8671b85
Show file tree
Hide file tree
Showing 41 changed files with 12,578 additions and 0 deletions.
14 changes: 14 additions & 0 deletions vendor/fuser/.cirrus.yml
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
9 changes: 9 additions & 0 deletions vendor/fuser/.dockerignore
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
71 changes: 71 additions & 0 deletions vendor/fuser/.github/workflows/ci.yml
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 }}
84 changes: 84 additions & 0 deletions vendor/fuser/.github/workflows/macos_ci.yml
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
4 changes: 4 additions & 0 deletions vendor/fuser/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/Cargo.lock
/target
.idea/
logs/
158 changes: 158 additions & 0 deletions vendor/fuser/CHANGELOG.md
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)
Loading

0 comments on commit 8671b85

Please sign in to comment.