summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2022-07-30 10:04:08 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2022-07-30 10:04:08 -0400
commit5a38ac6d372f89e1189188d2b41d19852721ddea (patch)
tree77de73b76aa8448480fad1dce3450c5e8790bbc9
parentipfs: use passthru for repoVersion (diff)
downloadnixpkgs-5a38ac6d372f89e1189188d2b41d19852721ddea.tar.gz
ipfs_0_14: Init
On stable we just add new versions, rather than making potentially breaking bumps. See 6109ba4f3077e2988780452ab16cfcf627691396 for prior art of this.
-rw-r--r--pkgs/applications/networking/ipfs/0.12.nix (renamed from pkgs/applications/networking/ipfs/default.nix)0
-rw-r--r--pkgs/applications/networking/ipfs/0.14.nix62
-rw-r--r--pkgs/top-level/all-packages.nix8
3 files changed, 69 insertions, 1 deletions
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/0.12.nix
index 50d30b0392d9..50d30b0392d9 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/0.12.nix
diff --git a/pkgs/applications/networking/ipfs/0.14.nix b/pkgs/applications/networking/ipfs/0.14.nix
new file mode 100644
index 000000000000..71df2c1a075f
--- /dev/null
+++ b/pkgs/applications/networking/ipfs/0.14.nix
@@ -0,0 +1,62 @@
+{ lib, buildGoModule, fetchurl, nixosTests, openssl, pkg-config }:
+
+buildGoModule rec {
+ pname = "ipfs";
+ version = "0.14.0"; # When updating, also check if the repo version changed and adjust repoVersion below
+ rev = "v${version}";
+
+ passthru.repoVersion = "12"; # Also update ipfs-migrator when changing the repo version
+
+ # go-ipfs makes changes to it's source tarball that don't match the git source.
+ src = fetchurl {
+ url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz";
+ hash = "sha256-93jd0r5nWkGrMnaPXoJMf6dHxMrtiWPgkHYaWH109lg=";
+ };
+
+ # 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" ];
+
+ buildInputs = [ openssl ];
+ nativeBuildInputs = [ pkg-config ];
+ tags = [ "openssl" ];
+
+ passthru.tests.ipfs = nixosTests.ipfs;
+
+ vendorSha256 = null;
+
+ outputs = [ "out" "systemd_unit" "systemd_unit_hardened" ];
+
+ postPatch = ''
+ substituteInPlace 'misc/systemd/ipfs.service' \
+ --replace '/usr/bin/ipfs' "$out/bin/ipfs"
+ substituteInPlace 'misc/systemd/ipfs-hardened.service' \
+ --replace '/usr/bin/ipfs' "$out/bin/ipfs"
+ '';
+
+ postInstall = ''
+ install --mode=444 -D 'misc/systemd/ipfs-api.socket' "$systemd_unit/etc/systemd/system/ipfs-api.socket"
+ install --mode=444 -D 'misc/systemd/ipfs-gateway.socket' "$systemd_unit/etc/systemd/system/ipfs-gateway.socket"
+ install --mode=444 -D 'misc/systemd/ipfs.service' "$systemd_unit/etc/systemd/system/ipfs.service"
+
+ install --mode=444 -D 'misc/systemd/ipfs-api.socket' "$systemd_unit_hardened/etc/systemd/system/ipfs-api.socket"
+ install --mode=444 -D 'misc/systemd/ipfs-gateway.socket' "$systemd_unit_hardened/etc/systemd/system/ipfs-gateway.socket"
+ install --mode=444 -D 'misc/systemd/ipfs-hardened.service' "$systemd_unit_hardened/etc/systemd/system/ipfs.service"
+ '';
+
+ 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 ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e73b55b492b8..1ff319236ea6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7173,7 +7173,13 @@ with pkgs;
ipfetch = callPackage ../tools/networking/ipfetch { };
- ipfs = callPackage ../applications/networking/ipfs { };
+ ipfs = ipfs_0_12;
+ ipfs_latest = ipfs_0_14;
+ ipfs_0_12 = callPackage ../applications/networking/ipfs/0.12.nix { };
+ ipfs_0_14 = callPackage ../applications/networking/ipfs/0.14.nix {
+ buildGoModule = buildGo118Module;
+ };
+
ipfs-cluster = callPackage ../applications/networking/ipfs-cluster { };
ipfs-migrator-all-fs-repo-migrations = callPackage ../applications/networking/ipfs-migrator/all-migrations.nix { };