Age | Commit message (Collapse) | Author |
|
As seen in https://github.com/rfjakob/gocryptfs/issues/908,
there are users still running x86-64-v1 cpus. They get
This program can only be run on AMD64 processors
with v2 microarchitecture support.
and cannot read their encrypted files.
Build for AMD64v1 again an accept the XChaCha20 performance hit for
for some cpus ( https://github.com/golang/go/issues/67240 ).
This reverts commit f5007b28c366d1a9671146710975679a154f30f8.
Related:
https://github.com/rfjakob/gocryptfs/issues/828
https://github.com/rfjakob/gocryptfs/pull/833
https://github.com/apptainer/apptainer/issues/2873
https://github.com/golang/go/issues/67240
|
|
Enables older CPUs (2008-2013) to take advantage of certain hardware accelerators.
Closes #828
|
|
GNU date syntax does not work on macos.
Fixes https://github.com/rfjakob/gocryptfs/issues/570
|
|
|
|
$ ./contrib/atomicrename/atomicrename -h
atomicrename creates 100 "src" files in the current directory, renames
them in random order over a single "dst" file while reading the "dst"
file concurrently in a loop.
Progress and errors are reported as they occour in addition to a summary
printed at the end. cifs and fuse filesystems are known to fail, local
filesystems and nfs seem ok.
See https://github.com/hanwen/go-fuse/issues/398 for background info.
|
|
Utility and libs to find hole/data segments using lseek.
|
|
If you do something like this,
go mod edit -replace github.com/hanwen/go-fuse/v2=/home/jakob/go/src/github.com/hanwen/go-fuse
the version string of the resulting binary should reflect that.
Before:
gocryptfs v1.8.0-135-g352b547-dirty.gofuse_v2api; go-fuse v2.0.4-0.20200908172753-0b6cbc515082; 2020-10-03 go1.15.2 linux/amd64
After:
gocryptfs v1.8.0-135-g352b547-dirty.gofuse_v2api; go-fuse v2.0.4-0.20200908172753-0b6cbc515082 => /home/jakob/go/src/github.com/hanwen/go-fuse; 2020-10-03 go1.15.2 linux/amd64
|
|
We need
https://github.com/hanwen/go-fuse/commit/fd7328faf9fdf75709f7ba7df7072aaf4eeb18b3
to fix a crash reported in https://github.com/rfjakob/gocryptfs/issues/430 :
2019/10/30 17:14:16 Unknown opcode 2016
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x508d38]
This patch is only in the v2.x.x branch. Upgrade to v2, as the
old API is also supported there.
Running
git grep hanwen/go-fuse | grep -v hanwen/go-fuse/v2
to check for forgotten references comes back clean.
|
|
The case of a git repo without any tags used to fail
with:
fatal: No names found, cannot describe anything.
Now we continue, using "[no_tags_found]" as the
version string.
|
|
Causes warnings:
$ ./build-without-openssl.bash
# github.com/rfjakob/gocryptfs
loadinternal: cannot find runtime/cgo
# github.com/rfjakob/gocryptfs/gocryptfs-xray
loadinternal: cannot find runtime/cgo
# github.com/rfjakob/gocryptfs/contrib/statfs
loadinternal: cannot find runtime/cgo
gocryptfs v1.7.1-48-gf6b1c68 without_openssl; go-fuse v1.0.1-0.20190319092520-161a16484456; 2020-04-18 go1.13.6 linux/amd64
https://github.com/golang/go/issues/30986
|
|
|
|
GOFLAGS exists since Go 1.11: https://golang.org/doc/go1.11
https://github.com/rfjakob/gocryptfs/pull/460
|
|
|
|
And run shellcheck in test.bash.
|
|
|
|
|
|
|
|
This ensures that ./build.bash still works when the LDFLAGS environment
variable contains multiple options, e.g., LDFLAGS="-lpthread -lm". The
correct way of passing multiple options is discussed here:
https://github.com/golang/go/issues/6234
For some unknown reason, the method only works when -extldflags is the
last argument - is this a bug in Go?
|
|
As requested at https://github.com/rfjakob/gocryptfs/pull/280
|
|
Support both Go 1.7...1.9 and Go 1.10 by checking the
version and using the appropropriate syntax.
We trim GOPATH/src and use both -gcflags and -asmflags like Debian does in
https://salsa.debian.org/go-team/packages/dh-golang/blob/ab2bbcfc00b1229066cc3d3d1195ac901a2b9411/lib/Debian/Debhelper/Buildsystem/golang.pm#L465 .
|
|
SOURCE_DATE_EPOCH seems to be the standard env variable
for faking a build date for reproducible builds.
|
|
Fixes ./build.bash -tags "enable_trezor without_openssl"
|
|
|
|
Prepares for the release of all-in-one source tarballs
that include all non-stdlib dependencies.
|
|
* Reduce the build time precision from seconds to days
* Allow to specify an arbitrary build date through an
env variable
|
|
As noticed by @riking, the logic in the bash script will break
when Go 1 version numbers reach double-digits.
Instead, use a build tag "!go1.5" to cause a syntax error:
$ /opt/go1.4.3/bin/go build
can't load package: package github.com/rfjakob/gocryptfs:
go1.4.go:5:1: expected 'package', found 'STRING' "You need Go 1.5 or higher to compile gocryptfs!"
Fixes https://github.com/rfjakob/gocryptfs/issues/133
|
|
go-fuse recently added a git tag - let's use it.
|
|
Yields a nice reduction in code size.
|
|
|
|
|
|
|
|
$ ldd gocryptfs
not a dynamic executable
$ file gocryptfs
gocryptfs: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
|
|
It's the 1st component of GOPATH, so call it like that.
|
|
Also, standardize to "if [[ ]] ; then" style.
|
|
Build helper script: build-without-openssl.bash
|
|
Example output for a file encrypted in reverse mode:
Header: Version: 2, Id: 0b7f5e2574e4afa859a9bb156a2e7772
Block 0: IV: 0b7f5e2574e4afa859a9bb156a2e7773, Tag: bf39279ac6b1ccd852567aaf26ee386b, Len: 4128
Block 1: IV: 0b7f5e2574e4afa859a9bb156a2e7774, Tag: a4f0f9cde7f70a752254aa8fe7718699, Len: 4128
Block 2: IV: 0b7f5e2574e4afa859a9bb156a2e7775, Tag: b467b153016fc1d531818b65ab9e24f6, Len: 4128
Block 3: IV: 0b7f5e2574e4afa859a9bb156a2e7776, Tag: 1fcb7ffd8f1816fbe807df8148718a5c, Len: 4128
Block 4: IV: 0b7f5e2574e4afa859a9bb156a2e7777, Tag: a217e7933ef434c9f03ad931bb5fde9b, Len: 4128
Block 5: IV: 0b7f5e2574e4afa859a9bb156a2e7778, Tag: f3e6240d75cd66371a0b301111d6f1fc, Len: 4128
Block 6: IV: 0b7f5e2574e4afa859a9bb156a2e7779, Tag: bc85d322ebc7761ae5ef114ea3903a56, Len: 4128
Block 7: IV: 0b7f5e2574e4afa859a9bb156a2e777a, Tag: efda01c6b794690f939a12d6d49ac3af, Len: 4128
Block 8: IV: 0b7f5e2574e4afa859a9bb156a2e777b, Tag: b198329d489d1392080f710206932ff0, Len: 2907
|
|
$ gocryptfs -version
gocryptfs v0.12-36-ge021b9d-dirty; go-fuse a4c968c; 2016-07-03 go1.6.2
|
|
Fixes issue #31
https://github.com/rfjakob/gocryptfs/issues/31
|
|
If it is, append "-dirty" to the hash.
|
|
As v0.4 introduced ext4-style feature flags, the on-disk format version
is unlinkely to change. Drop it from the version output to reduce
clutter. Use "gocryptfs -version -debug" to see it.
Add the Go version string because only Go 1.6 and newer have an optimized
AES-GCM implementation. This will help users to understand the performance
of their build.
|
|
This used to fail in an ugly way:
$ ./build.bash
./build.bash: line 13: go: command not found
./build.bash: line 15: [: too many arguments
./build.bash: line 20: go: command not found
|
|
"-C" is not supported on older git versions. Instead, just cd into
the directory.
See issue #20.
|
|
|
|
|
|
|
|
|
|
Example:
./gocryptfs -version
gocryptfs v0.2-20-gabcef9e-dirty; on-disk format 1
Note that you MUST compile using "./build.bash" for this to work.
|
|
This is in preparation of getting rid of the shell wrapper
|
|
...also adapt the cryptfs tests for 256 bit long keys
|