Skip to content

Commit

Permalink
Merge branch 'master' of github.com:libfuse/libfuse
Browse files Browse the repository at this point in the history
  • Loading branch information
Smith-JackSmith committed Feb 3, 2025
2 parents 135cb92 + 7f86f3b commit bdbcb4d
Show file tree
Hide file tree
Showing 40 changed files with 10,185 additions and 660 deletions.
4 changes: 3 additions & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ skip = .git,*.pdf,*.svg,AUTHORS
# - alse: used in regex
# - siz: wanted short
# - fiter: variable
ignore-words-list = alse,siz,fiter
# - re-used: intentional hyphenation
# - re-using: intentional hyphenation
ignore-words-list = alse,siz,fiter,re-used,re-using
6 changes: 4 additions & 2 deletions .github/workflows/abicheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ on:
push:
branches:
- master
- '[0-9]+.[0-9]+' # This will match branches like 3.17, 3.18, 4.0, etc.
pull_request:
branches:
- master

- '[0-9]+.[0-9]+'
permissions:
contents: read

Expand Down Expand Up @@ -56,7 +57,8 @@ jobs:
meson compile -C build
- name: Run abidiff
run: abidiff
run: abidiff
--no-added-syms
--headers-dir1 previous/include/
--headers-dir2 current/include/
previous/build/lib/libfuse3.so
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/checkpatch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Checkpatch

on:
pull_request:
types: [opened, synchronize, reopened]

jobs:
checkpatch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y perl
- name: Run checkpatch.pl
run: |
git fetch origin ${{ github.base_ref }}
base_commit=$(git merge-base origin/${{ github.base_ref }} HEAD)
echo "Base commit: $base_commit"
echo "Running checkpatch.pl on all commits in the PR:"
git rev-list --reverse $base_commit..HEAD | while read commit; do
subject=$(git log -1 --format=%s $commit)
echo "Checking commit: $commit - $subject"
if ! ./checkpatch.pl --no-tree --ignore MAINTAINERS,SPDX_LICENSE_TAG,COMMIT_MESSAGE,FILE_PATH_CHANGES,EMAIL_SUBJECT,AVOID_EXTERNS,GIT_COMMIT_ID,ENOSYS_SYSCALL -g $commit; then
echo "checkpatch.pl found issues in commit $commit - $subject"
exit 1
fi
done
12 changes: 8 additions & 4 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@ name: "CodeQL Advanced"

on:
push:
branches: [ "master" ]
branches:
- master
- '[0-9]+.[0-9]+' # This will match branches like 3.17, 3.18, 4.0, etc.
pull_request:
branches: [ "master" ]
branches:
- master
- '[0-9]+.[0-9]+'

jobs:
analyze:
Expand Down Expand Up @@ -49,7 +53,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
uses: github/codeql-action/init@17a820bf2e43b47be2c72b39cc905417bc1ab6d0 # v3.28.6
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
Expand All @@ -74,7 +78,7 @@ jobs:
meson compile -C build
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@f09c1c0a94de965c15400f5634aa42fac8fb8f88 # v3.27.5
uses: github/codeql-action/analyze@17a820bf2e43b47be2c72b39cc905417bc1ab6d0 # v3.28.6

with:
category: "/language:${{matrix.language}}"
10 changes: 8 additions & 2 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@ name: Codespell

on:
push:
branches: [master]
branches:
- master
- '[0-9]+.[0-9]+' # This will match branches like 3.17, 3.18, 4.0, etc.
pull_request:
branches: [master]
branches:
- master
- '[0-9]+.[0-9]+'

permissions:
contents: read
Expand All @@ -20,3 +24,5 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Codespell
uses: codespell-project/actions-codespell@406322ec52dd7b488e48c1c4b82e2a8b3a1bf630 # v2.1
with:
skip: checkpatch.pl
51 changes: 51 additions & 0 deletions .github/workflows/iwyi-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# check for uneeded header includes of modified files
# False positives can be avoided with
# #include "some_include.h" // IWYU pragma: keep

name: IWYU Check

on:
pull_request:
branches: [ main ]
paths:
- '**.cpp'
- '**.hpp'
- '**.c'
- '**.h'

jobs:
iwyu-check:
name: Include What You Use Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

- name: Install IWYU
run: |
sudo apt-get update
sudo apt-get install -y iwyu
- name: Get changed files
id: changed-files
run: |
git fetch origin ${{ github.base_ref }}
base_commit=$(git merge-base FETCH_HEAD ${{ github.event.pull_request.head.sha }})
changed_files=$(git diff --name-only $base_commit HEAD | grep -E '\.(cpp|hpp|c|h)$' || true)
echo "files=$changed_files" >> $GITHUB_OUTPUT
- name: Run IWYU checks on changed files
if: steps.changed-files.outputs.files != ''
run: |
echo "${{ steps.changed-files.outputs.files }}" | while read -r file; do
if [ -f "$file" ]; then
echo "Checking $file..."
iwyu -Xiwyu --mapping_file=iwyu.imp "$file" 2>&1 || true
fi
done | tee iwyu_output.txt
if grep -q "should add these lines:" iwyu_output.txt || \
grep -q "should remove these lines:" iwyu_output.txt; then
echo "IWYU checks failed. Please fix the includes in the affected files."
exit 1
fi
2 changes: 2 additions & 0 deletions .github/workflows/pr-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ on:
push:
branches:
- master
- '[0-9]+.[0-9]+' # This will match branches like 3.17, 3.18, 4.0, etc.
pull_request:
branches:
- master
- '[0-9]+.[0-9]+'

permissions:
contents: read
Expand Down
28 changes: 28 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -231,3 +231,31 @@ Yuri Per <[email protected]>
Zhansong Gao <[email protected]>
Zhiqiang Liu <[email protected]>
zsugabubus <[email protected]>

# New authors since fuse-3.16.2
farlongsignal <[email protected]>
yangyun50 <[email protected]>
bigbrotherwei <[email protected]>
Caian Benedicto <[email protected]>
desertwitch <[email protected]>
SteveYang <[email protected]>
FredyVia <[email protected]>
legezywzh <[email protected]>
CismonX <[email protected]>
amitgeron <[email protected]>
Bernd Schubert <[email protected]>
Daniel Rosenberg <[email protected]>
Horst Birthelmer <[email protected]>
Joanne Koong <[email protected]>
Josef Bacik <[email protected]>
Matthew <[email protected]>
gandalfs_cat <[email protected]>
MJ Harvey <[email protected]>
Nils <[email protected]>
Norman Wilson <[email protected]>
leipeng <[email protected]>
Vladimir Serbinenko <[email protected]>
George Hilliard <[email protected]>
Tyler Hall <[email protected]>
yangyun <[email protected]>
Abhishek <[email protected]>
9 changes: 4 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ cmake_minimum_required (VERSION 3.12.0)
set (CMAKE_VERBOSE_MAKEFILE FALSE)

project (libfuse3
VERSION 3.16.2
VERSION 3.17.0
DESCRIPTION "The CMake implementation of the Linux FUSE (Filesystem in Userspace) interface"
HOMEPAGE_URL https://github.com/Smit-tay/libfuse-cmake
LANGUAGES C CXX)
Expand Down Expand Up @@ -47,7 +47,7 @@ if (NOT EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt)
endif()

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# This needs to be looked at - is linux=1 necessary ?
Expand Down Expand Up @@ -210,9 +210,8 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/include)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test)

option(OPTION_BUILD_UTILS "Also build utils and docs" OFF)
option(OPTION_BUILD_UTILS "Also build utils and docs" ON)

option(OPTION_BUILD_UTILS "Also build utils and docs" OFF)
if(OPTION_BUILD_UTILS)
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "BSD" AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "DRAGONFLY" )
message("Also building utils and docs")
Expand All @@ -223,7 +222,7 @@ else()
message("NOT building utils and docs")
endif()

option(OPTION_BUILD_EXAMPLES "Also build examples" OFF)
option(OPTION_BUILD_EXAMPLES "Also build examples" ON)
if(OPTION_BUILD_EXAMPLES)
message("Also building examples")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/example)
Expand Down
35 changes: 31 additions & 4 deletions ChangeLog.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,37 @@
libfuse 3.17 (unreleased)
========================
libfuse 3.17 (2024-01-01)
=========================

* 3.11 and 3.14.2 introduced ABI incompatibilities, the ABI is restored
to 3.10, .so version was increased since there were releases with
the incompatible ABI

* The libfuse version a program was compiled against is now encoded into
that program, using inlined functions in fuse_lowlevel.h and fuse.h
* Allows to handle fatal signals and to print a backtrace.
New public function: fuse_set_fail_signal_handlers()
New API function: fuse_set_fail_signal_handlers()

* Allows fuse_log() messages to be send to syslog instead of stderr
New public functions: fuse_log_enable_syslog() and fuse_log_close_syslog()
New API functions: fuse_log_enable_syslog() and fuse_log_close_syslog()

* Handle buffer misalignment for FUSE_WRITE

* Added support for filesystem passthrough read/write of files when
FUSE_PASSTHROUGH capability is enabled
New API functions: fuse_passthrough_open() and fuse_passthrough_close(),
also see example/passthrough_hp.cc

* Added fmask and dmask options to high-level API
- dmask: umask applied to directories
- fmask: umask applied to non-directories

* Added FUSE_FILL_DIR_DEFAULTS enum to support C++ programs using
fuse_fill_dir_t function

* Added support for FUSE_CAP_HANDLE_KILLPRIV_V2

Fixes:
* Fixed compilation failure on FreeBSD (mount_bsd.c now points to correct
header)

libfuse 3.16.2 (2023-10-10)
===========================
Expand Down
Loading

0 comments on commit bdbcb4d

Please sign in to comment.