Commit Graph

1325 Commits

Author SHA1 Message Date
Yarny0
20a9a21b24 nixos/tsm-client: add migration code for freeform settings
To help users migrate from the previous
settings to new freeform settings type,
the commit at hand adds some
`mkRemovedOptionModule` and `mkRenamedOptionModule`.

These modules are not designed to work
inside an attribute set of submodules.
They create values for `assertions` and
`warnings` to inform the user of required changes.
Also, these informational texts do not contain
the full attribute path of the changed options.
To work around these deficiencies,
we define the required options `assertions` and `warnings`
inside the submodule and later add the values collected
inside these options to the corresponding top-level options.
In the course of doing so, we also add the full attribute path
to the informational texts so the user knows these warning
and error messages refer to the `tsmClient.servers` option.

Also, we have to filter out `warnings`, `assertions`, and
the "old" options when rendering the target config file.
2023-12-02 09:09:28 +01:00
Yarny0
98c03bf8c6 nixos/tsm-client: stricter assertions
Check for spaces or duplicate names in server config keys.
Since server config keys are case insensitive,
a setting like

```
{
  compression = "yes";
  Compression = "no";
}
```

would lead to an ambiguous configuration.
2023-12-02 09:09:27 +01:00
Yarny0
3fb29fecd5 nixos/tsm-client: use freeformType for server config
`tsm-client` uses a global configuration
file that must contain coordinates for each
server that it is supposed to contact.
This configuration consists of text
lines with key-value pairs.

In the NixOS module, these servers may be declared
with an attribute set, where the attribute name
defines an alias for the server, and the value
is again an attribute set with the settings for
the respective server.
This is organized as an option of type `attrsOf submodule...`.

Before this commit:

Important settings have their own option within
the submodule.  For everything else, there is
the "catch-all" option `extraConfig` that may
be used to declare any key-value pairs.
There is also `text` that can be used to
add arbitrary text to each server's
section in the global config file.

After this commit:

`extraConfig` and `text` are gone,
the attribute names and values of each server's attribute
set are translated directly into key-value pairs,
with the following notable rules:

* Lists are translated into multiple lines
  with the same key, as such is permitted by
  the software for certain keys.
* `null` may be used to override/shadow a value that
  is defined elsewhere and hides the corresponding key.

Those "important settings" that have previously been
defined as dedicated options are still defined as such,
but they have been renamed to match their
corresponding key names in the configuration file.
There is a notable exception:
"Our" boolean option `genPasswd` influences the "real"
option `passwordaccess', but the latter one is
uncomfortable to use and might lead
to undesirable outcome if used the wrong way.
So it seems advisable to keep the boolean option
and the warning in its description.
To this end, the value of `getPasswd` itself is
later filtered out when the config file is generated.

The tsm-backup service module and the vm test are adapted.

Migration code will be added in a separate
commit to permit easy reversal later, when the
migration code is no longer deemed necessary.
2023-12-02 09:09:27 +01:00
Yarny0
8b918ed8ab nixos/tsm-client: submodule doesn't need singleton list 2023-12-02 09:09:27 +01:00
Yarny0
5bc6eb731e nixos/tsm-client: server alias names cannot have spaces 2023-12-02 09:09:27 +01:00
Yarny0
fe96d79adf nixos/tsm-client: drop own checkIUnique for allUnique 2023-12-02 09:09:27 +01:00
Yarny0
363cf1e363 nixos/tsm-client: use mkPackageOption for wrappedPackage 2023-12-02 09:08:47 +01:00
Yarny0
cec6d7f51a nixos/tsm*: update product name and URLs
With the tsm-client 8.1.19.0 release,
IBM renamed the product brand from
"IBM Spectrum Protect" to "IBM Storage Protect":
https://www.ibm.com/support/pages/node/6964770 .

The package already got updated in commits
5ff5b2ae4c and
a4b7a62532 .

The commit at hand updates the modules accordingly.
2023-12-02 09:05:45 +01:00
Emily Trau
00bee09724
Merge pull request #264419 from Noodlez1232/joycond-cemuhook
joycond-cemuhook: init at unstable-2023-08-09
2023-12-01 22:00:55 +11:00
Weijia Wang
a06a0562f1
Merge pull request #271302 from SohamG/patch-1
nixos/oddjobd: add SohamG as maintainer
2023-12-01 09:19:46 +01:00
Soham Gumaste
e1c0473dc4 nixos/oddjobd: add SohamG as maintainer 2023-12-01 09:17:45 +01:00
h7x4
f12eabdcbe
nixos/screen: clean up 2023-12-01 01:35:29 +01:00
h7x4
79d3d59f58
treewide: replace mkPackageOptionMD with mkPackageOption 2023-11-30 19:03:14 +01:00
Peder Bergebakken Sundt
637577f1bb
Merge pull request #261704 from baloo/baloo/dublin-traceroute/init
dublin-traceroute: init at 2023.04.12
2023-11-30 18:17:24 +01:00
Weijia Wang
feeae486de
Merge pull request #261702 from h7x4/replace-mkoption-with-mkpackageoption
treewide: use `mkPackageOption`
2023-11-30 02:49:30 +01:00
Emily Trau
a557bce738
Merge pull request #270344 from hexclover/bump-mininet
mininet: 2.3.0 -> 2.3.1b4, make `mn` start again
2023-11-29 18:24:33 +11:00
Arthur Gautier
070bcf9da4 nixos/dublin-traceroute: init 2023-11-28 08:47:56 -08:00
Maëlys Bras de fer
03652db90b nixos/river: add xdg.portal.config 2023-11-28 00:49:03 +01:00
hexclover
4e6fc83b98 nixos/mininet: wrap with mininet in PYTHONPATH and ifconfig in PATH 2023-11-27 14:22:30 +08: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
K900
54c8998ba1 treewide: /lib/libexec -> /libexec
/lib/libexec doesn't exist.
2023-11-26 10:55:37 +03:00
ProminentRetail
2db2f446c2
nixos/git: add prompt.enable 2023-11-24 20:38:16 +01:00
Silvan Mosberger
bf01ec00a0
Merge pull request #250949 from ShamrockLee/apptainer-localstatedir
apptainer, singularity: use self-contained LOCALSTATEDIR by default
2023-11-23 01:37:54 +01:00
Reed Riley
ed84add157 nixos/starship: add comment describing why this uses a hardcoded path 2023-11-22 11:17:03 -08:00
Bobby Rong
fd788f9d1a nixos/wayland: Add xdg.portal.config or xdg.portal.configPackages
See the changes in x-d-p 1.17 for details.
2023-11-21 08:42:17 +01:00
Reed Riley
71d9dab8f0 starship: change logic that sets STARSHIP_CONFIG so that it won't override a user-provided config 2023-11-17 11:17:52 -08:00
name_snrl
e3a7f716c2 nixos/sway: refactoring of package option
Instead of the `defaultSwayPackage` variable that overrides `pkgs.sway`, use a
function that will override the user-defined package, but only if the package
contains the necessary arguments.
2023-11-13 23:06:45 +05:00
Fabian Möller
cd631134df AusweisApp2: 1.26.7 -> 2.0.1 2023-11-13 13:43:39 +01:00
Anthony Roussel
e30f48be94
treewide: fix redirected and broken URLs
Using the script in maintainers/scripts/update-redirected-urls.sh
2023-11-11 10:49:01 +01:00
~noodlez1232
f1047f611d joycond-cemuhook: init at unstable-2023-08-09 2023-11-10 18:09:55 -08:00
Adam Joseph
bc2d598878 treewide: change pythonForBuild to pythonOnBuildForHost 2023-11-05 17:42:12 -08:00
Thiago Kenji Okada
3fcd5f430b
Merge pull request #263206 from kanashimia/revert-259066-add-renice-sway
Revert "nixos/sway: add enableRealtime option"
2023-11-04 21:59:06 +00:00
linsui
92c106c097 nixos/firefox: update document link 2023-11-03 17:05:37 +08:00
Acid Bong
e7d95c440b
nixos/direnv: fix typo 2023-10-31 12:09:06 +02:00
Herwig Hochleitner
a5e03844dc
Merge pull request #260091 from bendlas/fix-cdemu-service
cdemu: fix service setup
2023-10-27 14:46:57 +02:00
h7x4
8c2f678ff6 nixos/cardboard: use mkPackageOptionMD 2023-10-25 16:19:26 -03:00
Anderson Torres
6b2f0db256 nixos/cardboard: init
Copy-inspired from river.
2023-10-25 13:26:38 -03:00
Kanashimia
952bb841ae
Revert "nixos/sway: add enableRealtime option" 2023-10-24 21:38:32 +03:00
K900
60421a1622 firefox: start killing all the per-extension options 2023-10-22 17:13:42 +03:00
Ivan Jager
57436cf549 nixos/firefox: Fix package references
https://github.com/NixOS/nixpkgs/pull/262017 removed `with pkgs;` so setting
`programs.firefox.enable = true` resulted in evaluation errors like
`error: undefined variable 'ff2mpv'`

This still doesn't fix https://github.com/NixOS/nixpkgs/issues/262600
2023-10-21 16:53:32 -05:00
K900
186cd78231
Merge pull request #262017 from K900/firefox-preserve-old-args
nixos/firefox: preserve old wrapper args when overriding
2023-10-21 11:46:40 +03:00
Bjørn Forsman
142074c2a8 nixos: fix bad mkEnableOption descriptions
Fix descriptions that don't account for (1) the "Whether to enable"
prefix or (2) the automatically added trailing dot.
2023-10-20 16:22:40 +01:00
K900
23704cce1f nixos/firefox: preserve old wrapper args when overriding
Also some drive-by cleanups
2023-10-19 13:10:22 +03:00
r-vdp
97e3336a5b
fish: use the subcommand style for the status command
The flag style has been deprecated and will eventually be removed.
2023-10-19 08:40:56 +02:00
the-furry-hubofeverything
ac30ac808a nixos/virt-manager: init 2023-10-18 21:02:37 +02:00
Maximilian Bosch
89ec004f59
nixos/regreet: make cage(1) args configurable
In my case I'd like to be able to add `-m last` to `cage` to make sure
that the login form from regreet isn't displayed half on my external
monitor and half on my laptop screen, but on the last connected monitor
only.

That's basically the issue described in #226586, though it's not a
proper fix since the login form is shown on one monitor only.
2023-10-18 14:01:32 +02:00
Artturi
32817b0b03
Merge pull request #259075 from schuelermine/patch/nixos/modules/nano/syntaxHighlight 2023-10-15 02:46:07 +03:00
Janik
96896946dd
Merge pull request #242371 from jfly/add-openvpn3-systemd-resolved-support 2023-10-13 19:58:37 +02:00
Jeremy Fleischman
7ee5699496
nixos/openvpn3: Add support for systemd-resolved
I noticed that openvpn3 is been clobbering my `/etc/resolv.conf` file. I
dug around a bit, and it turns out that upstream actually does have
support for systemd-resolved. I think it makes sense for us to
automatically enable that feature if the system is configured to use
systemd-resolved.

I opted to not change the default behavior of `pkgs.openvpn3`, but can
easily be convinced to change that if folks think I should.
2023-10-13 00:32:15 -07:00
Pol Dellaiera
30046d3bc1
nixos/module: add projecteur 2023-10-12 19:51:20 +02:00
figsoda
a9cd086d3c
Merge pull request #260618 from Aleksanaa/nixos/bandwhich
nixos/bandwhich: add missing capabilities
2023-10-12 10:18:46 -04:00
aleksana
bb777015c8 nixos/bandwhich: add missing capabilities 2023-10-12 15:53:55 +08:00
Herwig Hochleitner
13364f124a cdemu: fix service setup
closes https://github.com/NixOS/nixpkgs/issues/154613
2023-10-10 00:23:27 +02:00
Thiago Kenji Okada
e7a621f8e9
Merge pull request #259066 from thiagokokada/add-renice-sway
nixos/sway: add enableRealtime option
2023-10-09 19:53:51 +01:00
Michele Guerini Rocco
2e54187399
Merge pull request #258347 from Benjamin-L/gnupg-agent-extraconfig
nixos/gnupg: add agent.settings option
2023-10-09 11:12:55 +02:00
Benjamin Lee
f0a8e05a5d
nixos/gnupg: add agent.settings option 2023-10-05 18:43:23 -07:00
Thiago Kenji Okada
63fce4ce48 nixos/sway: add enableRealtime option
This option wraps the `sway` binary to allow it to request realtime
scheduling (SCHED_RR). This allow for possible lower latency, specially
when the system is under high load.

Available since Sway 1.8. See:
- https://github.com/swaywm/sway/pull/6994
- https://github.com/swaywm/sway/releases/tag/1.8
2023-10-05 15:26:47 +01:00
Anselm Schüler
a5bc9ee49b
nixos/nano: enable syntaxHighlight by default 2023-10-05 00:15:32 +02:00
Anselm Schüler
8679b69dcd
nixos/nano: include extra syntax highlight files when syntaxHighlight is true 2023-10-05 00:12:42 +02:00
Maximilian Bosch
4305d167a2
Merge pull request #256407 from Ma27/motd-ordering
nixos/rust-motd: allow ordering sections
2023-10-04 19:25:18 +02:00
edef
77225e33c0
Merge pull request #248627 from edef1c/gpg-agent-sockets 2023-10-04 12:32:29 -04:00
Alyssa Ross
dc439e41db nixos/environment: move XDG_CONFIG_DIRS to sessionVariables
Otherwise, in non-interactive contexts (e.g. systemd units), this
entry (the default) won't be in the list.  Only the profile relative
ones would be, since they were already using session variables.  This
is clearly not the correct behavior.
2023-10-02 18:47:48 +00:00
Ryan Lahfa
6f4a420057
Merge pull request #257719 from CardboardTurkey/regreet-fix-group 2023-10-02 13:28:37 +02:00
K900
e53c99eb17 treewide: use pkgs.config instead of config.nixpkgs.config
`pkgs` may be passed in externally, in which case `config.nixpkgs.config` will not be set.

Follow-up to #257458.
2023-10-01 20:48:40 +03:00
K900
eb8ce7930d
Merge pull request #257458 from K900/die-nixpkgs-config-die
treewide: fail when `nixpkgs.config` is set with explicit `pkgs`, remove all `nixpkgs.config` usages in in-tree modules
2023-10-01 10:11:15 +03:00
Maximilian Bosch
57de6a8550
nixos/rust-motd: refactor assertion and TOML generation
* `sort (<)` also works for strings (TIL!), so no need for comparing
  length and whether all keys from `cfg.settings` exist in `cfg.order`
  (slightly less overhead).

* Don't build another piece of JSON (`orderedSections`), simply use
  `cfg.settings`/`cfg.order` with `__structuredAttrs` to ensure a
  properly ordered TOML.

  This also has the upside of not having to do quote hackery.

* Also, a freeform submodule isn't strictly needed because we don't have
  any special options defined, so replacing that with
  `attrsOf format.type`.

Co-authored-by: Silvan Mosberger <github@infinisil.com>
2023-09-29 11:13:27 +02:00
Sandro Jäckel
5b9cdda1c2
nixos/nano: add enable, package option, do not create /etc/nanorc by default
and remove nano from environment.defaultPackages. In addition also cleanup the file in general.

This is a follow up to #220481

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
2023-09-29 00:24:34 +02:00
Kiran Ostrolenk
eb2c136196
regreet: fix user group in tmpfiles rules
Prior to this commit the derivation assumed a user's primary group has
the same name as the user themselves. This is standard on linux but not
necessary (and indeed I believe not the default on NixOS).

Closes #232184
2023-09-27 22:00:42 +01:00
Maximilian Bosch
d77b59b41d
nixos/rust-motd: use a second attribute (order) for the of sections in TOML
Rather than using `priority` with `sortProperties`, a new option called
`order` defines the ordering of the sections. I.e.

    order = [ "global" "uptime" "banner" ]

means that `uptime` comes before `banner`. Please note that `global` is
for global settings and not a section. I figured that it'd be too much
magic to hide this in the implementation and ask the user to specify the
order of _each_ section in `settings` instead.

OTOH this makes the intent way clearer than priorities. Also, this
remains opt-in, the option defaults to `attrNames cfg.settings`, i.e.
all sections ordered alphabetically.
2023-09-26 23:28:40 +02:00
K900
d3c27efa36 nixos/firefox: remove nixpkgs.config usage 2023-09-26 18:02:01 +03:00
Artturi
87ee3c4fdf
Merge pull request #176886 from hyperfekt/nonderivation_fish-completion 2023-09-23 06:28:23 +03:00
Maximilian Bosch
214cf0b934
nixos/rust-motd: .attrs.json -> "$NIX_ATTRS_JSON_FILE"
That way the derivation can also be built in a `nix-shell` where
`.attrs.json` isn't under "$NIX_BUILD_TOP".
2023-09-21 13:17:13 +02:00
Maximilian Bosch
11376df6d4
nixos/rust-motd: allow ordering sections by priority
Closes #234802

The problem here is that with e.g.

    {
      uptime.prefix = "Up";
      banner.command = "hostname | figlet -f slant";
    }

`banner` still appears before `uptime` in the final motd text because
Nix sorts attribute names alphabetically internally.

To work around this without breaking compatibility or losing the
property to override individual sections in other modules - e.g.

    {
      banner.color = mkForce "blue";
    }

I decided to introduce an option `priority` here, similar to the
priority field for `nginx`[1] and with the same semantics (i.e. higher
value means lower priority).

Internally a bunch of env vars are generated, i.e. `env0` to `envN` for
`N` sections with each of them containing a declaration for the TOML,
i.e. `env0` contains `{ uptime.prefix = "Up"; }` and `env1` contains
`{ banner.command = "hostname | figlet -f slant"; }` if `uptime.priority`
is set to a value below 1000.

In this order, the declarations are concatenated together by `jq(1)`
which doesn't sort keys alphabetically which results in a JSON
representation with `uptime` before `banner`. This is finally piped to
`json2toml` which converts this into TOML for rust-motd.

[1] https://nixos.org/manual/nixos/unstable/options#opt-services.nginx.virtualHosts._name_.locations._name_.priority
2023-09-21 13:17:13 +02:00
Maximilian Bosch
0a71cf07a8
nixos/rust-motd: run once on bootup
That way e.g. the last login and uptime isn't completely bogus when
accessing a machine for the first time after a reboot.
2023-09-20 22:16:03 +02:00
Nick Cao
e8e461df5d
Merge pull request #254833 from NickCao/qt4-leftover
nixos/environment: drop QT_PLUGIN_PATH for qt4 and kde4 as they has b…
2023-09-19 10:08:27 -04:00
Nick Cao
315168eba4
nixos/environment: drop MOZ_PLUGIN_PATH
There are currently no references to MOZ_PLUGIN_PATH treewide in gecko[1].
And the support for this environment variable was dropped in 2019[2].

See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1602308

[1] https://github.com/search?q=repo%3Amozilla%2Fgecko-dev+MOZ_PLUGIN_PATH&type=code
[2] https://hg.mozilla.org/mozilla-central/rev/9b4e603eb86a
2023-09-15 09:49:19 -04:00
tomf
e5d8baafcd
nixos/yubikey-touch-detector: init (#254947)
* nixos/yubikey-touch-detector: init

* nixos/yubikey-touch-detector: enable user socket
2023-09-14 20:15:32 +00:00
Mihai Fufezan
cef441709d nixos/hyprland: update portal override 2023-09-14 11:03:04 +02:00
Nick Cao
1ae69c5842
nixos/environment: drop KDEDIRS as a leftover from KDE4 2023-09-13 11:05:45 -04:00
Nick Cao
74c10dd002
Merge pull request #254941 from foo-dogsquared/update-clash-verge-docs
nixos/clash-verge: fix module descriptions
2023-09-13 09:01:24 -04:00
Gabriel Arazas
ffa538dfc4 nixos/clash-verge: fix module descriptions 2023-09-13 20:30:28 +08:00
linsui
840f02aa54 nixos/yazi: add to module-list.nix 2023-09-13 14:48:24 +08:00
Nick Cao
c463b4f200
nixos/environment: drop QT_PLUGIN_PATH for qt4 and kde4 as they has been removed 2023-09-12 18:43:09 -04:00
Fabián Heredia Montiel
8f711593fc
Merge pull request #254296 from Gerg-L/direnv
nixos/direnv: remove persistDerivations
2023-09-12 16:20:15 -05:00
nicoo
3222262ff1 nixos/bash: Drop workarounds for eterm 2023-09-12 13:10:41 +00:00
Gerg-L
59e48e33c4
nixos/direnv: remove persistDerivations 2023-09-09 17:24:43 -04:00
Weijia Wang
4fbea0f80b
Merge pull request #253071 from linsui/yazi
nixos/yazi: init
2023-09-07 22:57:22 +02:00
Weijia Wang
024c8c2bd4
Merge pull request #247618 from Majiir/streamdeck-ui-3.0.1
streamdeck-ui: 2.0.6 -> 3.0.1
2023-09-07 10:24:22 +02:00
Majiir Paktu
44813a8a61 streamdeck-ui: split desktop items 2023-09-06 21:38:23 -04:00
Niklas Hambüchen
5d778d1f03 Add programs.ecryptfs for mount wrappers.
The `ecryptfs` package refers to the setuid wrapper paths, but they do
not exist so far in NixOS.
2023-09-05 18:56:24 +00:00
Sandro Jäckel
7eff362ca4
nixos/ssh: inline askPassword 2023-09-03 17:12:55 +02:00
linsui
6b2934d6e9 nixos/yazi: init 2023-09-03 17:28:12 +08:00
Jan Tojnar
434d160d7c
Merge pull request #234615 from linsui/dconf
nixos/dconf: support generating from attrs
2023-08-28 18:31:52 +02:00
Franz Pletz
da9db25ca4
Merge pull request #222515 from codedownio/tmux-run-plugins-last 2023-08-26 22:47:33 +02:00
Ilan Joselevich
0f95d1cfe1
Merge pull request #248748 from acid-bong/zshLsColors
nixos/zsh: add enableLsColors
2023-08-24 22:04:43 +03:00
Yueh-Shun Li
ac77669531 apptainer, singularity: make LOCALSTATEDIR internal by default
Use "$out/var/lib" as LOCALSTATEDIR configuration value
by default intsead of "/var/lib"
as a way toward top-level-directory independent runtime.

Add input argument externalLocalStateDir to optionally specify the
path to external LOCALSTATEDIR if not null.

Add NixOS module option
programs.singularity.enableExternalLocalStateDir (default to true)
to use "/var/lib" as LOCALSTATEDIR.
2023-08-23 18:40:20 +08:00
Yueh-Shun Li
7ccd495465 apptainer, singularity: drop obsolete LOCALSTATEDIR dirs
Leave only the SESSIONDIR, which is "$LOCALSTATEDIR/$projectName/mnt/session"
2023-08-23 18:20:25 +08:00
Tobias Widmann
e4a62b0fd1 nixos/htop: fix boolean values in settings option
When generating htoprc, in order to be recognized by htop, a boolean value
of 'false' should be written as '0', not an empty string.
2023-08-20 00:10:24 +02:00
Lin Jian
1c704628dc
nixos/environment: stop setting ASPELL_CONF
We set[1] ASPELL_CONF to the last nix profile containing lib/aspell in
2013.  In 2017, aspell is patched[2] to search NIX_PROFILES, which
makes [1] not needed any more.

Deleting it is also agreed in this discussion[3].

[1]: 0192c02720
[2]: ba4cefe4ae
[3]: https://github.com/NixOS/nixpkgs/pull/30234
2023-08-16 09:18:45 +08:00
linsui
038d78d4ce nixos/dconf: add locks support 2023-08-15 19:20:39 +08:00