gocryptfs: 1.1.1 -> 1.5

Bold marked applicable changelog entries:

- Support extended attributes (xattr) in forward mode<Paste>
- Add -fsck function
- Fix several symlink race attacks
- Use memory pools for buffer handling
- Parallelize file content encryption
- Use HKDF to derive separate keys for GCM and EME

+61 -28
+25 -19
pkgs/tools/filesystems/gocryptfs/default.nix
··· 1 - # This file was generated by go2nix. 2 - { stdenv, lib, buildGoPackage, fetchFromGitHub, pkgconfig, openssl }: 3 - 4 - with lib; 5 6 let 7 - goFuseVersion = substring 0 7 (head (filter ( 8 d: d.goPackagePath == "github.com/hanwen/go-fuse" 9 ) (import ./deps.nix))).fetch.rev; 10 - in buildGoPackage rec { 11 name = "gocryptfs-${version}"; 12 - version = "1.1.1"; 13 - rev = "v${version}"; 14 15 goPackagePath = "github.com/rfjakob/gocryptfs"; 16 17 src = fetchFromGitHub { 18 - inherit rev; 19 owner = "rfjakob"; 20 repo = "gocryptfs"; 21 - sha256 = "0p173x2s0km7a43h6ihir5p19fdlkkb9lc9120k9hccr33iws25z"; 22 }; 23 24 - nativeBuildInputs = [ pkgconfig ]; 25 - buildInputs = [ openssl]; 26 - 27 - goDeps = ./deps.nix; 28 - 29 postPatch = "rm -r tests"; 30 31 buildFlagsArray = '' 32 -ldflags= 33 - -X main.GitVersion=${rev} 34 -X main.GitVersionFuse=${goFuseVersion} 35 ''; 36 37 - meta = { 38 description = "Encrypted overlay filesystem written in Go"; 39 license = licenses.mit; 40 homepage = https://nuetzlich.net/gocryptfs/; 41 - maintainers = with maintainers; [offline]; 42 - platforms = with platforms; linux; 43 }; 44 }
··· 1 + # This file was generated by https://github.com/kamilchm/go2nix v1.2.1 2 + { stdenv, buildGoPackage, fetchFromGitHub, openssl, pandoc, pkgconfig }: 3 4 let 5 + version = "v1.5"; 6 + goFuseVersion = with stdenv.lib; substring 0 7 (head (filter ( 7 d: d.goPackagePath == "github.com/hanwen/go-fuse" 8 ) (import ./deps.nix))).fetch.rev; 9 + in 10 + buildGoPackage rec { 11 name = "gocryptfs-${version}"; 12 13 goPackagePath = "github.com/rfjakob/gocryptfs"; 14 + 15 + nativeBuildInputs = [ pandoc pkgconfig ]; 16 + buildInputs = [ openssl ]; 17 18 src = fetchFromGitHub { 19 owner = "rfjakob"; 20 repo = "gocryptfs"; 21 + rev = version; 22 + sha256 = "0s5smjc7n9088n8a2mv7cy3cx31ci13i1i8fhg1vslc17a15qs2d"; 23 }; 24 25 postPatch = "rm -r tests"; 26 27 buildFlagsArray = '' 28 -ldflags= 29 + -X main.GitVersion=${version} 30 -X main.GitVersionFuse=${goFuseVersion} 31 ''; 32 33 + goDeps = ./deps.nix; 34 + 35 + postBuild = '' 36 + pushd go/src/github.com/rfjakob/gocryptfs/Documentation/ 37 + mkdir -p $out/share/man/man1 38 + pandoc MANPAGE.md -s -t man -o $out/share/man/man1/gocryptfs.1 39 + pandoc MANPAGE-XRAY.md -s -t man -o $out/share/man/man1/gocryptfs-xray.1 40 + popd 41 + ''; 42 + 43 + meta = with stdenv.lib; { 44 description = "Encrypted overlay filesystem written in Go"; 45 license = licenses.mit; 46 homepage = https://nuetzlich.net/gocryptfs/; 47 + maintainers = with maintainers; [ flokli offline ]; 48 + platforms = platforms.unix; 49 }; 50 }
+36 -9
pkgs/tools/filesystems/gocryptfs/deps.nix
··· 1 - # This file was generated by go2nix. 2 [ 3 { 4 goPackagePath = "github.com/hanwen/go-fuse"; 5 fetch = { 6 type = "git"; 7 url = "https://github.com/hanwen/go-fuse"; 8 - rev = "6c2b7d8f22c99776f8bfe17cd26d5f744a5b4cdc"; 9 - sha256 = "1mb73vyqfy92830qif83zdlng0zycmm5fgmm9bwihqh92y8inw3h"; 10 }; 11 } 12 { ··· 14 fetch = { 15 type = "git"; 16 url = "https://github.com/jacobsa/crypto"; 17 - rev = "293ce0c192fb4f59cd879b46544922b9ed09a13a"; 18 - sha256 = "12nm5h5dqqk8yrzlkmcqm0aam8l6l1s6rah48mrmz1z5bgm9h5rs"; 19 }; 20 } 21 { ··· 23 fetch = { 24 type = "git"; 25 url = "https://github.com/rfjakob/eme"; 26 - rev = "601d0e278ceda9aa2085a61c9265f6e690ef5255"; 27 - sha256 = "1ryh5f2a42psrqcpjh73shk3p0mva2vcyyfav4nhxmfqall77k5z"; 28 }; 29 } 30 { ··· 32 fetch = { 33 type = "git"; 34 url = "https://go.googlesource.com/crypto"; 35 - rev = "88d0005bf4c3ec17306ecaca4281a8d8efd73e91"; 36 - sha256 = "1d3x0rwfd4cml06ka8gy74wxrw94m2z7qgz6ky0rgmxcr7p5iikz"; 37 }; 38 } 39 ]
··· 1 + # This file was generated by https://github.com/kamilchm/go2nix v1.2.1 2 [ 3 { 4 goPackagePath = "github.com/hanwen/go-fuse"; 5 fetch = { 6 type = "git"; 7 url = "https://github.com/hanwen/go-fuse"; 8 + rev = "291273cb8ce0f139636a6fd7414be3c7e2de6288"; 9 + sha256 = "1djfl6mni8k4wllhwcr6qwyg1nh6wykdalvdl6gpc1rwrjj9c6xi"; 10 }; 11 } 12 { ··· 14 fetch = { 15 type = "git"; 16 url = "https://github.com/jacobsa/crypto"; 17 + rev = "c73681c634de898c869684602cf0c0d2ce938c4d"; 18 + sha256 = "02jbiy6szshbzcmp4j3gpc577hrhikxqvm4kzxixp27k9f2cx5si"; 19 + }; 20 + } 21 + { 22 + goPackagePath = "github.com/pkg/xattr"; 23 + fetch = { 24 + type = "git"; 25 + url = "https://github.com/pkg/xattr"; 26 + rev = "d15dbc2bb0b5da267362b5e066e2c44c1fcff6c7"; 27 + sha256 = "1vab8mpk2x4vbhx0kd0i0kn6sf7z5ivilcmdklyizzcfcwghh17g"; 28 }; 29 } 30 { ··· 32 fetch = { 33 type = "git"; 34 url = "https://github.com/rfjakob/eme"; 35 + rev = "2222dbd4ba467ab3fc7e8af41562fcfe69c0d770"; 36 + sha256 = "0c227ly3z8pqaqg22lpd8nzgqrfsbjx5gi9rp9ks1cmd11dv2gl9"; 37 }; 38 } 39 { ··· 41 fetch = { 42 type = "git"; 43 url = "https://go.googlesource.com/crypto"; 44 + rev = "a49355c7e3f8fe157a85be2f77e6e269a0f89602"; 45 + sha256 = "020q1laxjx5kcmnqy4wmdb63zhb0lyq6wpy40axhswzg2nd21s44"; 46 + }; 47 + } 48 + { 49 + goPackagePath = "golang.org/x/sync"; 50 + fetch = { 51 + type = "git"; 52 + url = "https://go.googlesource.com/sync"; 53 + rev = "1d60e4601c6fd243af51cc01ddf169918a5407ca"; 54 + sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6"; 55 + }; 56 + } 57 + { 58 + goPackagePath = "golang.org/x/sys"; 59 + fetch = { 60 + type = "git"; 61 + url = "https://go.googlesource.com/sys"; 62 + rev = "151529c776cdc58ddbe7963ba9af779f3577b419"; 63 + sha256 = "149yfzs4k8vxhjr8f832drndir2k5ha0ggs2dw2fd6xvxf698bcx"; 64 }; 65 } 66 ]