Merge pull request #183349 from Luflosi/rename-ipfs-to-kubo

This commit is contained in:
Sandro 2022-10-03 21:34:14 +02:00 committed by GitHub
commit b70049a463
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 104 additions and 75 deletions

View file

@ -722,7 +722,7 @@
./services/network-filesystems/drbd.nix
./services/network-filesystems/glusterfs.nix
./services/network-filesystems/kbfs.nix
./services/network-filesystems/ipfs.nix
./services/network-filesystems/kubo.nix
./services/network-filesystems/litestream/default.nix
./services/network-filesystems/netatalk.nix
./services/network-filesystems/nfsd.nix

View file

@ -1,9 +1,9 @@
{ config, lib, pkgs, utils, ... }:
with lib;
let
cfg = config.services.ipfs;
cfg = config.services.kubo;
ipfsFlags = utils.escapeSystemdExecArgs (
kuboFlags = utils.escapeSystemdExecArgs (
optional cfg.autoMount "--mount" ++
optional cfg.enableGC "--enable-gc" ++
optional (cfg.serviceFdlimit != null) "--manage-fdlimit=false" ++
@ -50,27 +50,27 @@ in
options = {
services.ipfs = {
services.kubo = {
enable = mkEnableOption (lib.mdDoc "Interplanetary File System (WARNING: may cause severe network degredation)");
package = mkOption {
type = types.package;
default = pkgs.ipfs;
defaultText = literalExpression "pkgs.ipfs";
description = lib.mdDoc "Which IPFS package to use.";
default = pkgs.kubo;
defaultText = literalExpression "pkgs.kubo";
description = lib.mdDoc "Which Kubo package to use.";
};
user = mkOption {
type = types.str;
default = "ipfs";
description = lib.mdDoc "User under which the IPFS daemon runs";
description = lib.mdDoc "User under which the Kubo daemon runs";
};
group = mkOption {
type = types.str;
default = "ipfs";
description = lib.mdDoc "Group under which the IPFS daemon runs";
description = lib.mdDoc "Group under which the Kubo daemon runs";
};
dataDir = mkOption {
@ -84,7 +84,7 @@ in
then "/var/lib/ipfs"
else "/var/lib/ipfs/.ipfs"
'';
description = lib.mdDoc "The data dir for IPFS";
description = lib.mdDoc "The data dir for Kubo";
};
defaultMode = mkOption {
@ -96,13 +96,13 @@ in
autoMount = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc "Whether IPFS should try to mount /ipfs and /ipns at startup.";
description = lib.mdDoc "Whether Kubo should try to mount /ipfs and /ipns at startup.";
};
autoMigrate = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc "Whether IPFS should try to run the fs-repo-migration at startup.";
description = lib.mdDoc "Whether Kubo should try to run the fs-repo-migration at startup.";
};
ipfsMountDir = mkOption {
@ -126,7 +126,7 @@ in
apiAddress = mkOption {
type = types.str;
default = "/ip4/127.0.0.1/tcp/5001";
description = lib.mdDoc "Where IPFS exposes its API to";
description = lib.mdDoc "Where Kubo exposes its API to";
};
swarmAddress = mkOption {
@ -137,7 +137,7 @@ in
"/ip4/0.0.0.0/udp/4001/quic"
"/ip6/::/udp/4001/quic"
];
description = lib.mdDoc "Where IPFS listens for incoming p2p connections";
description = lib.mdDoc "Where Kubo listens for incoming p2p connections";
};
enableGC = mkOption {
@ -174,14 +174,14 @@ in
extraFlags = mkOption {
type = types.listOf types.str;
description = lib.mdDoc "Extra flags passed to the IPFS daemon";
description = lib.mdDoc "Extra flags passed to the Kubo daemon";
default = [ ];
};
localDiscovery = mkOption {
type = types.bool;
description = lib.mdDoc ''Whether to enable local discovery for the ipfs daemon.
This will allow ipfs to scan ports on your local network. Some hosting services will ban you if you do this.
description = lib.mdDoc ''Whether to enable local discovery for the Kubo daemon.
This will allow Kubo to scan ports on your local network. Some hosting services will ban you if you do this.
'';
default = false;
};
@ -189,14 +189,14 @@ in
serviceFdlimit = mkOption {
type = types.nullOr types.int;
default = null;
description = lib.mdDoc "The fdlimit for the IPFS systemd unit or `null` to have the daemon attempt to manage it";
description = lib.mdDoc "The fdlimit for the Kubo systemd unit or `null` to have the daemon attempt to manage it";
example = 64 * 1024;
};
startWhenNeeded = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc "Whether to use socket activation to start IPFS when needed.";
description = lib.mdDoc "Whether to use socket activation to start Kubo when needed.";
};
};
@ -223,7 +223,7 @@ in
uid = config.ids.uids.ipfs;
description = "IPFS daemon user";
packages = [
pkgs.ipfs-migrator
pkgs.kubo-migrator
];
};
};
@ -255,7 +255,7 @@ in
# After an unclean shutdown this file may exist which will cause the config command to attempt to talk to the daemon. This will hang forever if systemd is holding our sockets open.
rm -vf "$IPFS_PATH/api"
'' + optionalString cfg.autoMigrate ''
${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
${pkgs.kubo-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
'' + ''
ipfs --offline config profile apply ${profile} >/dev/null
fi
@ -279,7 +279,7 @@ in
| ipfs --offline config replace -
'';
serviceConfig = {
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}" ];
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${kuboFlags}" ];
User = cfg.user;
Group = cfg.group;
StateDirectory = "";
@ -320,4 +320,27 @@ in
meta = {
maintainers = with lib.maintainers; [ Luflosi ];
};
imports = [
(mkRenamedOptionModule [ "services" "ipfs" "enable" ] [ "services" "kubo" "enable" ])
(mkRenamedOptionModule [ "services" "ipfs" "package" ] [ "services" "kubo" "package" ])
(mkRenamedOptionModule [ "services" "ipfs" "user" ] [ "services" "kubo" "user" ])
(mkRenamedOptionModule [ "services" "ipfs" "group" ] [ "services" "kubo" "group" ])
(mkRenamedOptionModule [ "services" "ipfs" "dataDir" ] [ "services" "kubo" "dataDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "defaultMode" ] [ "services" "kubo" "defaultMode" ])
(mkRenamedOptionModule [ "services" "ipfs" "autoMount" ] [ "services" "kubo" "autoMount" ])
(mkRenamedOptionModule [ "services" "ipfs" "autoMigrate" ] [ "services" "kubo" "autoMigrate" ])
(mkRenamedOptionModule [ "services" "ipfs" "ipfsMountDir" ] [ "services" "kubo" "ipfsMountDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "ipnsMountDir" ] [ "services" "kubo" "ipnsMountDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "gatewayAddress" ] [ "services" "kubo" "gatewayAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "apiAddress" ] [ "services" "kubo" "apiAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "swarmAddress" ] [ "services" "kubo" "swarmAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "enableGC" ] [ "services" "kubo" "enableGC" ])
(mkRenamedOptionModule [ "services" "ipfs" "emptyRepo" ] [ "services" "kubo" "emptyRepo" ])
(mkRenamedOptionModule [ "services" "ipfs" "extraConfig" ] [ "services" "kubo" "extraConfig" ])
(mkRenamedOptionModule [ "services" "ipfs" "extraFlags" ] [ "services" "kubo" "extraFlags" ])
(mkRenamedOptionModule [ "services" "ipfs" "localDiscovery" ] [ "services" "kubo" "localDiscovery" ])
(mkRenamedOptionModule [ "services" "ipfs" "serviceFdlimit" ] [ "services" "kubo" "serviceFdlimit" ])
(mkRenamedOptionModule [ "services" "ipfs" "startWhenNeeded" ] [ "services" "kubo" "startWhenNeeded" ])
];
}

View file

@ -284,7 +284,6 @@ in {
installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
invoiceplane = handleTest ./invoiceplane.nix {};
iodine = handleTest ./iodine.nix {};
ipfs = handleTest ./ipfs.nix {};
ipv6 = handleTest ./ipv6.nix {};
iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
iscsi-root = handleTest ./iscsi-root.nix {};
@ -317,6 +316,7 @@ in {
ksm = handleTest ./ksm.nix {};
kthxbye = handleTest ./kthxbye.nix {};
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
kubo = handleTest ./kubo.nix {};
ladybird = handleTest ./ladybird.nix {};
languagetool = handleTest ./languagetool.nix {};
latestKernel.login = handleTest ./login.nix { latestKernel = true; };

View file

@ -1,11 +1,11 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "ipfs";
name = "kubo";
meta = with pkgs.lib.maintainers; {
maintainers = [ mguentner ];
};
nodes.machine = { ... }: {
services.ipfs = {
services.kubo = {
enable = true;
# Also will add a unix domain socket socket API address, see module.
startWhenNeeded = true;
@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
};
nodes.fuse = { ... }: {
services.ipfs = {
services.kubo = {
enable = true;
apiAddress = "/ip4/127.0.0.1/tcp/2324";
autoMount = true;

View file

@ -1,23 +0,0 @@
{ lib
, buildEnv
, makeWrapper
, ipfs-migrator-unwrapped
, ipfs-migrator-all-fs-repo-migrations
}:
buildEnv {
name = "ipfs-migrator-${ipfs-migrator-unwrapped.version}";
nativeBuildInputs = [ makeWrapper ];
paths = [ ipfs-migrator-unwrapped ];
pathsToLink = [ "/bin" ];
postBuild = ''
wrapProgram "$out/bin/fs-repo-migrations" \
--prefix PATH ':' '${lib.makeBinPath [ ipfs-migrator-all-fs-repo-migrations ]}'
'';
inherit (ipfs-migrator-unwrapped) meta;
}

View file

@ -2,23 +2,23 @@
, stdenv
, symlinkJoin
, buildGoModule
, ipfs-migrator-unwrapped
, kubo-migrator-unwrapped
}:
# This package contains all the individual migrations in the bin directory.
# This is used by fs-repo-migrations and could also be used by IPFS itself
# This is used by fs-repo-migrations and could also be used by Kubo itself
# when starting it like this: ipfs daemon --migrate
let
fs-repo-common = pname: version: buildGoModule {
inherit pname version;
inherit (ipfs-migrator-unwrapped) src;
inherit (kubo-migrator-unwrapped) src;
sourceRoot = "source/${pname}";
vendorSha256 = null;
doCheck = false;
meta = ipfs-migrator-unwrapped.meta // {
meta = kubo-migrator-unwrapped.meta // {
mainProgram = pname;
description = "Individual migration for the filesystem repository of ipfs clients";
description = "Individual migration for the filesystem repository of Kubo clients";
};
};
@ -58,6 +58,6 @@ let
in
symlinkJoin {
name = "ipfs-migrator-all-fs-repo-migrations-${version}";
name = "kubo-migrator-all-fs-repo-migrations-${version}";
paths = all-migrations;
}

View file

@ -0,0 +1,23 @@
{ lib
, buildEnv
, makeWrapper
, kubo-migrator-unwrapped
, kubo-migrator-all-fs-repo-migrations
}:
buildEnv {
name = "kubo-migrator-${kubo-migrator-unwrapped.version}";
nativeBuildInputs = [ makeWrapper ];
paths = [ kubo-migrator-unwrapped ];
pathsToLink = [ "/bin" ];
postBuild = ''
wrapProgram "$out/bin/fs-repo-migrations" \
--prefix PATH ':' '${lib.makeBinPath [ kubo-migrator-all-fs-repo-migrations ]}'
'';
inherit (kubo-migrator-unwrapped) meta;
}

View file

@ -4,7 +4,7 @@
}:
buildGoModule rec {
pname = "ipfs-migrator";
pname = "kubo-migrator";
version = "2.0.2";
src = fetchFromGitHub {
@ -26,7 +26,7 @@ buildGoModule rec {
doCheck = false;
meta = with lib; {
description = "Migrations for the filesystem repository of ipfs clients";
description = "Migrations for the filesystem repository of Kubo clients";
homepage = "https://github.com/ipfs/fs-repo-migrations";
license = licenses.mit;
maintainers = with maintainers; [ Luflosi elitak ];

View file

@ -1,13 +1,13 @@
{ lib, buildGoModule, fetchurl, nixosTests, openssl, pkg-config }:
buildGoModule rec {
pname = "ipfs";
pname = "kubo";
version = "0.15.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
passthru.repoVersion = "12"; # Also update kubo-migrator when changing the repo version
# go-ipfs makes changes to it's source tarball that don't match the git source.
# Kubo 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-GkOY1G2CKXbMbHXkw5v27HmfkJIl2nZOmjjZbzuaRWs=";
@ -15,10 +15,10 @@ buildGoModule rec {
# tarball contains multiple files/directories
postUnpack = ''
mkdir ipfs-src
mkdir kubo-src
shopt -s extglob
mv !(ipfs-src) ipfs-src || true
cd ipfs-src
mv !(kubo-src) kubo-src || true
cd kubo-src
'';
sourceRoot = ".";
@ -29,7 +29,7 @@ buildGoModule rec {
nativeBuildInputs = [ pkg-config ];
tags = [ "openssl" ];
passthru.tests.ipfs = nixosTests.ipfs;
passthru.tests.kubo = nixosTests.kubo;
vendorSha256 = null;
@ -57,6 +57,7 @@ buildGoModule rec {
homepage = "https://ipfs.io/";
license = licenses.mit;
platforms = platforms.unix;
mainProgram = "ipfs";
maintainers = with maintainers; [ fpletz ];
};
}

View file

@ -14,7 +14,7 @@
, pytest-order
, pytest-cid
, mock
, ipfs
, kubo
, httpx
, httpcore
}:
@ -46,7 +46,7 @@ buildPythonPackage rec {
pytest-order
pytest-cid
mock
ipfs
kubo
httpcore
httpx
];

View file

@ -1,5 +1,5 @@
{ lib, buildPythonPackage, pythonOlder, fetchFromSourcehut
, ipfs, packaging, tomli }:
, kubo, packaging, tomli }:
buildPythonPackage rec {
pname = "ipwhl";
@ -14,7 +14,7 @@ buildPythonPackage rec {
sha256 = "sha256-YaIYcoUnbiv9wUOFIzGj2sWGbh7NsqRQcqOR2X6+QZA=";
};
buildInputs = [ ipfs ];
buildInputs = [ kubo ];
propagatedBuildInputs = [ packaging tomli ];
doCheck = false; # there's no test
pythonImportsCheck = [ "ipwhl" ];

View file

@ -516,6 +516,10 @@ mapAliases ({
interfacer = throw "interfacer is deprecated and archived by upstream"; # Added 2022-04-05
inter-ui = throw "'inter-ui' has been renamed to/replaced by 'inter'"; # Converted to throw 2022-09-24
iops = throw "iops was removed: upstream is gone"; # Added 2022-02-06
ipfs = kubo; # Added 2022-09-27
ipfs-migrator-all-fs-repo-migrations = kubo-migrator-all-fs-repo-migrations; # Added 2022-09-27
ipfs-migrator-unwrapped = kubo-migrator-unwrapped; # Added 2022-09-27
ipfs-migrator = kubo-migrator; # Added 2022-09-27
iproute = throw "'iproute' has been renamed to/replaced by 'iproute2'"; # Converted to throw 2022-09-24
ipsecTools = throw "ipsecTools has benn removed, because it was no longer maintained upstream"; # Added 2021-12-15
itch-setup = throw "itch-setup has benn removed, use itch instead"; # Added 2022-06-02

View file

@ -7838,17 +7838,10 @@ with pkgs;
ipfetch = callPackage ../tools/networking/ipfetch { };
ipfs = callPackage ../applications/networking/ipfs {
openssl = openssl_1_1;
};
ipfs-cluster = callPackage ../applications/networking/ipfs-cluster {
buildGoModule = buildGo119Module;
};
ipfs-migrator-all-fs-repo-migrations = callPackage ../applications/networking/ipfs-migrator/all-migrations.nix { };
ipfs-migrator-unwrapped = callPackage ../applications/networking/ipfs-migrator/unwrapped.nix { };
ipfs-migrator = callPackage ../applications/networking/ipfs-migrator { };
ipfs-upload-client = callPackage ../applications/networking/ipfs-upload-client { };
ipget = callPackage ../applications/networking/ipget { };
@ -8193,6 +8186,14 @@ with pkgs;
kubergrunt = callPackage ../applications/networking/cluster/kubergrunt { };
kubo = callPackage ../applications/networking/kubo {
openssl = openssl_1_1;
};
kubo-migrator-all-fs-repo-migrations = callPackage ../applications/networking/kubo-migrator/all-migrations.nix { };
kubo-migrator-unwrapped = callPackage ../applications/networking/kubo-migrator/unwrapped.nix { };
kubo-migrator = callPackage ../applications/networking/kubo-migrator { };
kwalletcli = libsForQt5.callPackage ../tools/security/kwalletcli { };
peruse = libsForQt5.callPackage ../tools/misc/peruse { };