diff --git a/pkgs/tools/filesystems/gocrypfs/default.nix b/pkgs/tools/filesystems/gocrypfs/default.nix new file mode 100644 index 000000000000..c156cd13244a --- /dev/null +++ b/pkgs/tools/filesystems/gocrypfs/default.nix @@ -0,0 +1,43 @@ +# This file was generated by go2nix. +{ stdenv, lib, buildGoPackage, fetchFromGitHub, pkgconfig, openssl }: + +with lib; + +let + goFuseVersion = substring 0 7 (head (filter ( + d: d.goPackagePath == "github.com/hanwen/go-fuse" + ) (import ./deps.nix))).fetch.rev; +in buildGoPackage rec { + name = "gocryptfs-${version}"; + version = "1.1.1"; + rev = "v${version}"; + + goPackagePath = "github.com/rfjakob/gocryptfs"; + + src = fetchFromGitHub { + inherit rev; + owner = "rfjakob"; + repo = "gocryptfs"; + sha256 = "0p173x2s0km7a43h6ihir5p19fdlkkb9lc9120k9hccr33iws25z"; + }; + + buildInputs = [pkgconfig openssl]; + + goDeps = ./deps.nix; + + postPatch = "rm -r tests"; + + buildFlagsArray = '' + -ldflags= + -X main.GitVersion=${rev} + -X main.GitVersionFuse=${goFuseVersion} + ''; + + meta = { + description = "Encrypted overlay filesystem written in Go"; + license = licenses.mit; + homepage = https://nuetzlich.net/gocryptfs/; + maintainers = with maintainers; [offline]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/tools/filesystems/gocrypfs/deps.nix b/pkgs/tools/filesystems/gocrypfs/deps.nix new file mode 100644 index 000000000000..08a4afb52653 --- /dev/null +++ b/pkgs/tools/filesystems/gocrypfs/deps.nix @@ -0,0 +1,39 @@ +# This file was generated by go2nix. +[ + { + goPackagePath = "github.com/hanwen/go-fuse"; + fetch = { + type = "git"; + url = "https://github.com/hanwen/go-fuse"; + rev = "6c2b7d8f22c99776f8bfe17cd26d5f744a5b4cdc"; + sha256 = "1mb73vyqfy92830qif83zdlng0zycmm5fgmm9bwihqh92y8inw3h"; + }; + } + { + goPackagePath = "github.com/jacobsa/crypto"; + fetch = { + type = "git"; + url = "https://github.com/jacobsa/crypto"; + rev = "293ce0c192fb4f59cd879b46544922b9ed09a13a"; + sha256 = "12nm5h5dqqk8yrzlkmcqm0aam8l6l1s6rah48mrmz1z5bgm9h5rs"; + }; + } + { + goPackagePath = "github.com/rfjakob/eme"; + fetch = { + type = "git"; + url = "https://github.com/rfjakob/eme"; + rev = "601d0e278ceda9aa2085a61c9265f6e690ef5255"; + sha256 = "1ryh5f2a42psrqcpjh73shk3p0mva2vcyyfav4nhxmfqall77k5z"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "88d0005bf4c3ec17306ecaca4281a8d8efd73e91"; + sha256 = "1d3x0rwfd4cml06ka8gy74wxrw94m2z7qgz6ky0rgmxcr7p5iikz"; + }; + } +] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b6629bf9146c..428249b7e920 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1878,6 +1878,8 @@ in goaccess = callPackage ../tools/misc/goaccess { }; + gocryptfs = callPackage ../tools/filesystems/gocrypfs { }; + go-mtpfs = callPackage ../tools/filesystems/go-mtpfs { }; go-pup = callPackage ../development/tools/pup { };