34 Commits (8cb104f004cc5d3343bc3b5ef2187c1830e00f19)

Author SHA1 Message Date
Jakob Unterwurzacher ed230379e7 Expand statfs man page a little and include in build.bash 4 years ago
Maxim Baz 1f37c920ac Add missing -ldflags for gocryptfs-xray 4 years ago
Sebastian Lackner 2a010263f6 build.bash: Escape LDFLAGS before passing them to 'go build'.
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?
5 years ago
Jakob Unterwurzacher 3cba378ad5 build.bash: support user-set LDFLAGS
As requested at https://github.com/rfjakob/gocryptfs/pull/280
5 years ago
Jakob Unterwurzacher bf241ce77e build.bash: use -trimpath for reproducible builds
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
ab2bbcfc00/lib/Debian/Debhelper/Buildsystem/golang.pm (L465) .
5 years ago
Jakob Unterwurzacher d32c149266 build.bash: respect SOURCE_DATE_EPOCH
SOURCE_DATE_EPOCH seems to be the standard env variable
for faking a build date for reproducible builds.
5 years ago
Jakob Unterwurzacher 182f4833ee build.bash: handle args containing spaces
Fixes ./build.bash -tags "enable_trezor without_openssl"
5 years ago
Jakob Unterwurzacher 39839ade70 Add source packaging script 6 years ago
Jakob Unterwurzacher 9a3791fbc1 build.bash: support VERSION file and vendored go-fuse
Prepares for the release of all-in-one source tarballs
that include all non-stdlib dependencies.
6 years ago
Jakob Unterwurzacher 830cbb7218 build.bash: make reproduceable builds easier
* Reduce the build time precision from seconds to days
* Allow to specify an arbitrary build date through an
  env variable
6 years ago
Jakob Unterwurzacher e4fdb42496 build.bash: implement "you need Go 1.5" lockout in pure Go
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
6 years ago
Jakob Unterwurzacher f3965a4e4c build.bash: use plain "git describe" for go-fuse
go-fuse recently added a git tag - let's use it.
6 years ago
Jakob Unterwurzacher 966308eeb7 Drop Go 1.4 compatability code everywhere
Yields a nice reduction in code size.
6 years ago
Jakob Unterwurzacher 166c62fd21 build.bash: use $(go env GOPATH) 6 years ago
Jakob Unterwurzacher 1139c27c36 build.bash: deduplicate build call 6 years ago
Jakob Unterwurzacher 10361a907a build.bash: GOPATH may be unset since Go v1.8. Handle it. 6 years ago
Jakob Unterwurzacher 6c86afb5cd build-without-openssl: compile statically
$ ldd gocryptfs
not a dynamic executable
$ file gocryptfs
gocryptfs: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
7 years ago
Jakob Unterwurzacher 4e95d394cf build.bash: rename "GOPATH2" to "GOPATH1"
It's the 1st component of GOPATH, so call it like that.
7 years ago
Jakob Unterwurzacher c7385b3681 build.bash: abort if we hit a known-bad go-fuse version
Also, standardize to "if [[ ]] ; then" style.
7 years ago
Jakob Unterwurzacher 56c0b19612 without_openssl: support compiling completely without openssl
Build helper script: build-without-openssl.bash
7 years ago
Jakob Unterwurzacher 3a9bd92754 xray: add "gocryptfs-xray", on-disk-format exploration tool
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
7 years ago
Jakob Unterwurzacher 0d5d6fc99b main: bake build date into version string
$ gocryptfs -version
gocryptfs v0.12-36-ge021b9d-dirty; go-fuse a4c968c; 2016-07-03 go1.6.2
7 years ago
Jakob Unterwurzacher ffc000943b build.bash: support colon-separated GOPATH variable
Fixes issue #31
https://github.com/rfjakob/gocryptfs/issues/31
7 years ago
Jakob Unterwurzacher af07866e08 build.bash: check if the go-fuse tree is dirty
If it is, append "-dirty" to the hash.
7 years ago
Jakob Unterwurzacher 1dcafb99ff main: drop "on-disk format" from -version output, add Go version
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.
7 years ago
Jakob Unterwurzacher a2c73cfde5 build.bash: fail early if the go binary does not exist
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
7 years ago
Jakob Unterwurzacher bb16f2d565 build.bash: replace "git -C"
"-C" is not supported on older git versions. Instead, just cd into
the directory.

See issue #20.
7 years ago
Jakob Unterwurzacher 36c1039228 build.bash: bake the go-fuse commit hash into the binaries 7 years ago
Jakob Unterwurzacher f5fe140d5b build.bash: copy binary to $GOPATH/bin 8 years ago
Jakob Unterwurzacher 57b32a0b8b Make build.bash work when called from outside the gocryptfs directory 8 years ago
Jakob Unterwurzacher 38f7dc1a17 Make build.bash version bake-in compatible with Go 1.3 and 1.4 8 years ago
Jakob Unterwurzacher 3f490d4d86 Bake version string into binary, add "--version" switch
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.
8 years ago
Jakob Unterwurzacher 5dc7e44aa2 Move main files to top level dir
This is in preparation of getting rid of the shell wrapper
8 years ago
Jakob Unterwurzacher 440abcbac6 Add test.bash
...also adapt the cryptfs tests for 256 bit long keys
8 years ago