aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-08-03loadgithub_macosJakob Unterwurzacher
2025-08-03test_helpers: send SIGQUIT on mount timeoutJakob Unterwurzacher
2025-08-03fJakob Unterwurzacher
2025-08-03test.bash: print "?" when we cannot determine fs typeJakob Unterwurzacher
2025-08-03github ci: add macosJakob Unterwurzacher
2025-08-03test.bash: drop SC2002 exceptionJakob Unterwurzacher
No longer needed.
2025-08-03test.bash: use flock without subshellJakob Unterwurzacher
From man 1 flock: shell> exec 4<>/var/lock/mylockfile; shell> flock -n 4 This form is convenient for locking a file without spawning a subprocess. The shell opens the lock file for reading and writing as file descriptor 4, then flock is used to lock the descriptor.
2025-08-03fusefronted: report correct directory size in fstatJakob Unterwurzacher
Fixes https://github.com/rfjakob/gocryptfs/issues/951
2025-08-03tests: matrix: add TestDirSizeJakob Unterwurzacher
Fails at the moment, as expected: === RUN TestDirSize matrix_test.go:938: stat size is different from fstat size: pStat=80 pFstat=30 matrix_test.go:941: fstat size is different: pSt=30 cSt=80 matrix_test.go:938: stat size is different from fstat size: pStat=100 pFstat=50 matrix_test.go:941: fstat size is different: pSt=50 cSt=100 matrix_test.go:938: stat size is different from fstat size: pStat=120 pFstat=70 matrix_test.go:941: fstat size is different: pSt=70 cSt=120 matrix_test.go:938: stat size is different from fstat size: pStat=140 pFstat=90 matrix_test.go:941: fstat size is different: pSt=90 cSt=140 matrix_test.go:938: stat size is different from fstat size: pStat=160 pFstat=110 matrix_test.go:941: fstat size is different: pSt=110 cSt=160 https://github.com/rfjakob/gocryptfs/issues/951
2025-08-03tests: matrix: enable ctlsockJakob Unterwurzacher
2025-08-03tests: matrix: make "matrix" localJakob Unterwurzacher
2025-08-03tests: matrix: factor out MainTestJakob Unterwurzacher
2025-08-03tests: overlayfs_test: fix typo in commentJakob Unterwurzacher
2025-08-03tests: root_test: move btrfs test to new fileJakob Unterwurzacher
2025-08-03cryptocore: add note about crypto/rand.Read errorsJakob Unterwurzacher
2025-07-16build(deps): bump actions/checkout from 3 to 4dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16build(deps): bump actions/setup-go from 3 to 5dependabot[bot]
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 5. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v3...v5) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16Added dependabot workflow for action updatesDamian Mendroch
2025-07-15The master key is printed at initialization, not on mountLars Quentin
2025-07-14README: changelog for v2.6.0v2.6.0Jakob Unterwurzacher
2025-07-14tests: TestBtrfsQuirks: skip if mkfs.btrfs is not installedJakob Unterwurzacher
Fixes https://github.com/rfjakob/gocryptfs/issues/930
2025-07-14go.mod: upgrade to go-fuse v2.8.0Jakob Unterwurzacher
2025-07-10remove redundant contentEnc reference from fileLars Quentin
2025-07-08Fix all staticcheck errors in gocryptfs codebasecopilot-swe-agent[bot]
Co-authored-by: rfjakob <286847+rfjakob@users.noreply.github.com> Add staticcheck to test.bash for continuous static analysis Co-authored-by: rfjakob <286847+rfjakob@users.noreply.github.com> Fix nil pointer dereference in timesToTimespec function The previous fix for deprecated fuse.UtimeToTimespec caused a panic because unix.TimeToTimespec doesn't handle nil pointers. This fix properly handles nil pointers by using unix.UTIME_OMIT while still using the non-deprecated unix.TimeToTimespec function. Co-authored-by: rfjakob <286847+rfjakob@users.noreply.github.com> Undo SA6002 changes and add staticcheck ignore directive instead Co-authored-by: rfjakob <286847+rfjakob@users.noreply.github.com>
2025-07-07Fix a bunch of staticcheck errorsJakob Unterwurzacher
Tool-assisted.
2025-07-07test.bash: don't descend into vendor dirJakob Unterwurzacher
Before: ./vendor/golang.org/x/sys/unix/syscall_linux.go: return syscall.Setuid(uid) ./vendor/golang.org/x/sys/unix/syscall_linux.go: return syscall.Setgid(gid) ./vendor/golang.org/x/sys/unix/syscall_linux.go: return syscall.Setreuid(ruid, euid) ./vendor/golang.org/x/sys/unix/syscall_linux.go: return syscall.Setregid(rgid, egid) ./vendor/golang.org/x/sys/unix/syscall_linux.go: return syscall.Setresuid(ruid, euid, suid) ./vendor/golang.org/x/sys/unix/syscall_linux.go: return syscall.Setresgid(rgid, egid, sgid) test.bash: This affects the whole process. Please use the syscallcompat wrappers instead. After: clean https://github.com/rfjakob/gocryptfs/issues/930
2025-07-07Delete deprecated golint.bashJakob Unterwurzacher
golint is dead since 2021
2025-06-20tests: reverse: delete static directory treeJakob Unterwurzacher
2025-06-20tests: reverse: generate directory tree for exlucude tests dynamicallyJakob Unterwurzacher
2025-06-20testing: reverse: add some verbose loggingJakob Unterwurzacher
2025-06-19testing: reverse: factor out newReverseFSJakob Unterwurzacher
Will be used soon in a new gitignore test. Relates-to: https://github.com/rfjakob/gocryptfs/issues/927
2025-06-15build-without-openssl.bash: drop ldd checkJakob Unterwurzacher
Apparently, the check does not work on some distributions, notably Ubuntu 24.04. On Ubuntu 24.04, ldd exits with 0 (success) even when run against a static binary. Even "ld.so --verify" returns 0, and "file" output is indistinguishable for static and dynamic builds. We could go for objdump or readelf, but this is not installed per default. Just drop the check. By now, I trust that CGO_ENABLED=0 will always build a static binary. Fixes https://github.com/rfjakob/gocryptfs/issues/926
2025-06-15fusefronted: fake fstat for deleted fifosJakob Unterwurzacher
git test suite t9300-fast-import.sh test 245 does the equivalent of this: mkfifo fifo exec 8<>fifo rm fifo cat /dev/null >&8 This used to fail with cat: standard output: No such file or directory because cat tries to fstat stdout. The open() on the fifo does not reach the filesystem, so we don't have an fd open for the delted file, hence no way to access it. Fake fstat success as good as we can to make cat happy. Fixes https://github.com/rfjakob/gocryptfs/issues/929
2025-06-15fusefronted: comment syscall.S_IFMT maskingJakob Unterwurzacher
2025-06-05mount: fix -force_owner not allowing file/dir createJakob Unterwurzacher
Fixes https://github.com/rfjakob/gocryptfs/issues/783
2025-06-05tests: add TestRootForceOwnerJakob Unterwurzacher
$ make root_test [...] === RUN TestRootForceOwner root_test.go:398: mkdir /var/tmp/gocryptfs-test-parent-0/3816769547/TestRootForceOwner.2366169656.mnt/dir1: permission denied root_test.go:408: open /var/tmp/gocryptfs-test-parent-0/3816769547/TestRootForceOwner.2366169656.mnt/file1: permission denied root_test.go:415: mknod: permission denied --- FAIL: TestRootForceOwner (0.04s) https://github.com/rfjakob/gocryptfs/issues/783
2025-06-03Documentation: make file-format.md more structuredJakob Unterwurzacher
Also mention that empty files are stored empty.
2025-06-02go.mod: upgrade jacobsa-cryptoJakob Unterwurzacher
This pulls in https://github.com/aperturerobotics/jacobsa-crypto/commit/e3f78416c5c1dbdfef68c84d62a97a809a94f4dd "fix build error on loong64 (#8)" and fixes this build error on loong64: $ GOARCH=loong64 go build -tags without_openssl # github.com/aperturerobotics/jacobsa-crypto/cmac ../../go/pkg/mod/github.com/aperturerobotics/jacobsa-crypto@v1.0.2/cmac/hash.go:97:3: undefined: xorBlock
2025-06-02README: add link to gocryptfs-create-folderJakob Unterwurzacher
https://github.com/rfjakob/gocryptfs/discussions/918
2025-05-29idleMonitor: switch to the new atomic.Bool apiJakob Unterwurzacher
2025-05-10tests: fsstress-gocryptfs.bash: inform user that they should wait for cleanupJakob Unterwurzacher
Without this message, fsstress-gocryptfs.bash seems to just hang after Ctrl-C.
2025-05-06Switch to the new atomic Uint64.Add apiJakob Unterwurzacher
The new api guarantees that the value is aligned, preventing stuff like this on 32 bit platforms: goroutine 26 [running]: internal/runtime/atomic.panicUnaligned() /usr/lib/go-1.24/src/internal/runtime/atomic/unaligned.go:8 +0x24 internal/runtime/atomic.Xadd64(0x2496c74, 0x1) /usr/lib/go-1.24/src/internal/runtime/atomic/atomic_arm.s:318 +0x14 github.com/rfjakob/gocryptfs/internal/inomap.(*InoMap).NextSpillIno(0x2496c60) Fixes https://github.com/rfjakob/gocryptfs/issues/912
2025-05-06fusefrontend_reverse: import go-gitignore with explicit aliasJakob Unterwurzacher
2025-04-26darwin: tests/defaults: fix unix.Getdents build failureJakob Unterwurzacher
Error was: + go test -c -tags without_openssl -o /dev/null github.com/rfjakob/gocryptfs/v2/tests/defaults Error: tests/defaults/main_test.go:532:17: undefined: unix.Getdents Error: tests/defaults/main_test.go:538:16: undefined: unix.Getdents Error: tests/defaults/main_test.go:549:16: undefined: unix.Getdents
2025-04-26fusefrontend: switch to new go-fuse dir apiJakob Unterwurzacher
go-fuse 2.6.0, specifically, https://github.com/hanwen/go-fuse/commit/e885cea8d4d40a5a9bb92bc3cef7193f2a316f59 introduced a new, file-based directory API while deprecating the old one. Switch to the new API. xfstests generic/035 now passes. Fixes https://github.com/hanwen/go-fuse/issues/55
2025-04-19go.mod: update to go-fuse e3463465126aJakob Unterwurzacher
Done using: go get -u github.com/hanwen/go-fuse/v2@master Upgrading to master because I want https://github.com/hanwen/go-fuse/commit/216e54932a48254d949871bf07f58d48f5046ec2 and https://github.com/hanwen/go-fuse/commit/d6170d09d743644ccf6099744e5bad1d2c3e552f which are not released yet. Fixes TestSeekDir.
2025-04-19go.mod: upgrade to go-fuse v2.7.2Jakob Unterwurzacher
Done using: go get -u github.com/hanwen/go-fuse/v2 As expected, this breaks TestSeekDir: gocryptfs/tests/defaults$ go test -run TestSeekDir test_helpers: warning: testParentDir "/tmp/gocryptfs-test-parent-1026" does not reside on ext4, we will miss failures caused by ino reuse --- FAIL: TestSeekDir (0.00s) main_test.go:536: 1st getdents returned 288 bytes main_test.go:542: 2nd getdents returned 0 bytes main_test.go:551: operation not supported FAIL exit status 1 FAIL github.com/rfjakob/gocryptfs/v2/tests/defaults 0.030s
2025-04-19tests: add TestSeekDirJakob Unterwurzacher
Acc. to the commit message, https://github.com/hanwen/go-fuse/commit/0d1228a39dd49c83c8b7c30dec7928f5d7d84cc0 break seeking in directories. This commit appears in go-fuse v2.6.0.
2025-04-19cli: mount: add -context optionJakob Unterwurzacher
Set the SELinux context. See mount(8) for details.
2025-04-13README: update changelogv2.5.4Jakob Unterwurzacher