1
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-28 20:16:41 +03:00
Commit graph

25 commits

Author SHA1 Message Date
Silvan Mosberger
4f0dadbf38 treewide: format all inactive Nix files
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.

Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.

A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.

This commit was automatically created and can be verified using

    nix-build https://github.com/infinisil/treewide-nixpkgs-reformat-script/archive/a08b3a4d199c6124ac5b36a889d9099b4383463f.tar.gz \
      --argstr baseRev b32a094368
    result/bin/apply-formatting $NIXPKGS_PATH
2024-12-10 20:26:33 +01:00
Luflosi
5742cb2a48
kubo: 0.29.0 -> 0.30.0
https://github.com/ipfs/kubo/releases/tag/v0.30.0
2024-11-21 19:12:27 +01:00
Luflosi
9e2866d215
kubo-migrator: rewrite
- Migrate to pkgs/by-name
- Format with nixfmt-rfc-style
- Make it possible to remove support for very old migrations in the future by increasing the `minRepoVersion` parameter
- Rename kubo-migrator-all-fs-repo-migrations to kubo-fs-repo-migrations since it may no longer include all migrations
- Add an alias for kubo-migrator-all-fs-repo-migrations to keep backwards compatibility
- Update descriptions to differentiate between kubo-migrator and kubo-migrator-unwrapped and better describe the purpose of the migrator
- Add a description to every individual migration
- Add a description to kubo-fs-repo-migrations
- Fetch the source code of the individual migrations from their specific Git tags, like upstream intends
- Enable tests for some migrations
- Check that the migrations don't crash on startup
- Mark two broken migrations as broken. They are not compatible with the latest Go versions and upstream is not interested in fixing this
- Change code to allow most updates to be done by only changing three lines (add new version and change git tag and hash)
- Add a stub for any disabled or broken migration to prevent downloading unsigned binaries from the internet, see https://github.com/ipfs/fs-repo-migrations/issues/148#issuecomment-2351355627 and https://github.com/ipfs/fs-repo-migrations/issues/188
- Use `lib.getExe` instead of hardcoding the binary name in the kubo NixOS module
- Use `substituteInPlace` with `--replace-fail` instead of `--replace`
2024-11-20 16:17:14 +01:00
Felix Buehler
8f72002794 nixos/services.kubo: remove with lib; 2024-09-15 10:43:49 +02:00
stuebinm
6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
Lassulus
da25b2382d
Merge pull request #280373 from h7x4/treewide-use-new-tmpfiles-api
treewide: use new tmpfiles API
2024-01-26 10:47:18 +01:00
h7x4
f5d513c573
treewide: use new tmpfiles api 2024-01-24 05:13:17 +01:00
Luflosi
a4c451fd37
nixos/kubo: cleanup
- Add note explaining why enabling the Kubo daemon won't fully work immediately and requires logging in again
- Use `builtins.isList addrIn` instead of `builtins.typeOf addrIn == "list"`
- Fix indentation
2024-01-14 12:21:09 +01:00
Luflosi
b2f8b846f2
nixos/kubo: increase maximum UDP send buffer size
In addition to increasing the maximum UDP receive buffer size in the Linux kernel, it is now recommended to do the same for the send buffer size.
This is documented in https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes.
The change to the documentation was made in June: https://github.com/quic-go/quic-go/wiki/UDP-Receive-Buffer-Size/_compare/5b5e58d2897751221fe7c42c28ddf4230462a60a.

Without this change, the Kubo daemon will output this warning:
```
failed to sufficiently increase send buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
```
This can be seen while running the NixOS tests.
2023-12-31 14:09:27 +01:00
Luflosi
45c4fb240a
nixos/kubo: convert two settings to RFC42-style settings
Convert the `ipfsMountDir` and `ipnsMountDir` settings to RFC42-style settings.
I don't know why I didn't already do this in a255c43f44, I guess I just missed it.
2023-12-16 01:01:56 +01:00
Luflosi
d4fcb44dcc
nixos/kubo: fix potential panic on startup
This fixes a panic of the kubo daemon which could occur under certain conditions when the daemon was starting.
It was caused by the `ipfs.service` unit not depending on the `ipfs-api.socket` and `ipfs-gateway.socket` units with `Wants=`. This allows the `ipfs.service` to be started manually or by `nixos-rebuild` without the sockets being set up before that. When that happens, the daemon won't know about these sockets and will only use what is set in `services.kubo.settings.Addresses.Gateway` and `services.kubo.settings.Addresses.API`. By default the `API` is an empty list in NixOS though. The daemon doesn't like this at all and panics on startup, see https://github.com/ipfs/kubo/issues/10056.
With this commit, starting `ipfs.service` will first set up the two sockets before starting the actual service.
Adding the `Sockets=` option implicitly adds a `Wants=` for the sockets and this is exactly what we need. See https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#Implicit%20Dependencies . This can be checked with `systemctl show ipfs.service`.

This should probably be upstreamed to the unit file in the Kubo repo.

The problem can be reproduced in the following way:
- Add `services.kubo.enable = true` to `/etc/nixos/configuration.nix`
- `sudo nixos-rebuild switch` (this may already fail, not sure why it's not deterministic for me)
- `sudo systemctl stop ipfs-api.socket`
- `sudo systemctl stop ipfs-gateway.socket`
- `sudo systemctl stop ipfs.service`
- `sudo systemctl start ipfs.service`

Fixes #248447.
2023-12-15 23:36:08 +01:00
h7x4
0a37316d6c
treewide: use mkPackageOption
This commit replaces a lot of usages of `mkOption` with the package
type, to be `mkPackageOption`, in order to reduce the amount of code.
2023-11-27 01:28:36 +01:00
Luflosi
70c8adce8d
kubo: 0.22.0 -> 0.23.0
https://github.com/ipfs/kubo/releases/tag/v0.23.0

Support for /quic (Draft 29) was removed, so remove it from `services.kubo.settings.Addresses.Swarm`.

The changelog says that there have been some fixes to the FUSE mountpoint functionality but the test still requires the workaround, so leave that unchanged.
2023-10-08 02:04:02 +02:00
Mayeu
77fb833411 kubo: 0.20.0 -> 0.21.0 2023-07-27 16:59:45 +02:00
Luflosi
ada7f14219
kubo: 0.19.2 -> 0.20.0
https://github.com/ipfs/kubo/releases/tag/v0.20.0

When creating a repository with `ipfs init`, `--empty-repo=true` is now the default according to the changelog. Modify the NixOS module to reflect this change and fix the `emptyRepo` setting to work with this change.
2023-05-10 19:50:46 +02:00
Luflosi
f2be3ae30d
nixos/kubo: restrict access to the API to users in a group by default 2023-04-15 15:25:20 +02:00
Luflosi
7ceebbb35b
nixos/kubo: allow multiple API and Gateway addresses
The daemon allows specifying an array of multiaddrs for Addresses.API and Addresses.Gateway, so the NixOS module should allow that as well.
2023-04-15 15:25:06 +02:00
Luflosi
929a00bd84
nixos/kubo: give normal users access to the daemon by default
Fixes https://github.com/NixOS/nixpkgs/issues/223289.

This doesn't reduce the security in any way since it was already possible for normal users to do what I do here and create such a fake repo for themselves and set their $IPFS_PATH variable to it. It was and still is also possible to just use the --api CLI option.
This change just removes the manual setup that would otherwise be required.

We wouldn't need this workaround if https://github.com/ipfs/kubo/pull/9366 was merged but the fix seems to have been ignored upstream. Patching it ourselves seems like a bad idea since the patch has security implications.
2023-04-15 15:24:58 +02:00
Karmanyaah Malhotra
6086d85777 nixos/kubo: documentation suggestions
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2023-04-13 03:14:59 -05:00
Karmanyaah Malhotra
4bd622cd9d nixos/kubo: unmount on service stop
When kubo is force killed with `pkill -KILL ipfs` or by systemd-oomd,
it doesn't unmount /ipfs and /ipns. That prevents it
from starting up the next time. So, unmount on postStop.
2023-04-13 03:14:59 -05:00
Luflosi
ef9c99a035
nixos/kubo: add QUICv1 and WebTransport to Addresses.Swarm list
According to https://github.com/ipfs/kubo/blob/v0.18.0/docs/config.md#addressesswarm, the default list of swarm multiaddrs includes QUICv1 and WebTransport since v0.18.0.
More information can be found in the release notes at https://github.com/ipfs/kubo/releases/tag/v0.18.0.
2023-03-22 20:02:56 +01:00
Luflosi
78f357f134
nixos/kubo: make the configuration options idempotent
Without this commit, unsetting any of the `services.kubo.settings` options does not reset the value back to the default. This commit gets rid of this statefulness.
This is achieved by generating the default config, applying the user specified config options to it and then patching the `Identity` and `Pinning` config options from the old config back in. This new config is then applied using `ipfs config replace`.
The only remaining stateful parts of the config are the `Identity` and `Pinning.RemoteServices` settings as those can't be changed with `ipfs config replace`. `Pinning.RemoteServices` also contains secrets that shouldn't be in the Nix store. Setting these options wasn't possible before as it would result in an error when the daemon tried to start. I added some assertions to guard against this case.
2023-01-24 16:33:03 +01:00
figsoda
6bb0dbf91f nixos: fix typos 2022-12-17 19:31:14 -05:00
Luflosi
a255c43f44
nixos/kubo: convert to RFC42-style settings 2022-10-21 20:54:00 +02:00
Luflosi
eefaaf41d6
kubo: rename from ipfs
Go-IPFS was renamed to Kubo in version 0.14.0, see https://github.com/ipfs/kubo/issues/8959.
2022-10-02 16:00:22 +02:00
Renamed from nixos/modules/services/network-filesystems/ipfs.nix (Browse further)