diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/ipfs/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/ipfs/default.nix | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/nixpkgs/pkgs/applications/networking/ipfs/default.nix new file mode 100644 index 000000000000..e96602a54c53 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix @@ -0,0 +1,45 @@ +{ lib, buildGoModule, fetchurl, nixosTests }: + +buildGoModule rec { + pname = "ipfs"; + version = "0.9.0"; + rev = "v${version}"; + + # go-ipfs makes changes to it's source tarball that don't match the git source. + src = fetchurl { + url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz"; + sha256 = "sha256:1fyffnw1d860w7gwm6ijbgrh68297z5bmvww8yqfshm3xgvcs6bf"; + }; + + # tarball contains multiple files/directories + postUnpack = '' + mkdir ipfs-src + shopt -s extglob + mv !(ipfs-src) ipfs-src || true + cd ipfs-src + ''; + + sourceRoot = "."; + + subPackages = [ "cmd/ipfs" ]; + + passthru.tests.ipfs = nixosTests.ipfs; + + vendorSha256 = null; + + postInstall = '' + install --mode=444 -D misc/systemd/ipfs.service $out/etc/systemd/system/ipfs.service + install --mode=444 -D misc/systemd/ipfs-api.socket $out/etc/systemd/system/ipfs-api.socket + install --mode=444 -D misc/systemd/ipfs-gateway.socket $out/etc/systemd/system/ipfs-gateway.socket + substituteInPlace $out/etc/systemd/system/ipfs.service \ + --replace /usr/bin/ipfs $out/bin/ipfs + ''; + + meta = with lib; { + description = "A global, versioned, peer-to-peer filesystem"; + homepage = "https://ipfs.io/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ fpletz ]; + }; +} |