Commit graph

2806 commits

Author SHA1 Message Date
sternenseemann 8c27f7a2bd haskellPackages.ghcWithPackages: throw on old override interface
Adding a fake override function via passthru will at least give users of
the old override interface a more helpful error message. Additionally we
also document the changes in the changelog.
2022-02-08 13:28:30 +01:00
zowoq 5e7ec2c9ad nixos/doc/2205: add note for go_1_17 vendorSha256 2022-02-07 18:59:53 -08:00
markuskowa 768dd74738
Merge pull request #140891 from markuskowa/os-moosefs
nixos: init moosefs module and test
2022-02-07 10:48:33 +01:00
davidak a57a774cfa
Merge pull request #157314 from onny/passwordsafe
gnome-passwordsafe: rename to gnome-secrets, 5.1 -> 6.1
2022-02-05 21:55:38 +01:00
Jonas Heinrich 61b6ed869a gnome-passwordsafe: rename to gnome-secrets, 5.0->6.1 2022-02-04 15:14:19 +01:00
Markus Kowalewski d86fef1a57
nixos/doc: add moosefs module to release notes 2022-02-03 12:33:44 +01:00
Martin Weinelt 778d148959
Merge pull request #155061 from piegamesde/gnome 2022-02-01 20:53:10 +01:00
Maciej Krüger 8bb7bec755
Merge pull request #141122 from Luflosi/add-apfs-nixos-module 2022-02-01 17:29:10 +01:00
pennae 7325eb455b
Merge pull request #157046 from kradalby/add-headscale-module
Add headscale module
2022-01-31 23:53:18 +00:00
Kristoffer Dalby 00db4205fb nixos/headscale: Add headscale service module 2022-01-31 22:02:56 +00:00
Uri Baghin f8f3b9103c
Merge pull request #157001 from 06kellyjac/opentelemetry-collector
opentelemetry-collector: 0.40.0 -> 0.43.1, opentelemetry-collector-contrib: init at 0.43.0
2022-01-31 21:36:33 +11:00
Michele Guerini Rocco 09e2956012
Merge pull request #155895 from rnhmjoj/pr-dhcpd-hard
nixos/dhcpd: switch to DynamicUser [v2]
2022-01-31 10:06:57 +01:00
Seong Yong-ju 4244235785 vimPlugins.onedark-nvim: etc
`vimPlugins.onedark-nvim` now refers to navarasu/onedark.nvim (formerly
refers to olimorris/onedarkpro.nvim).
2022-01-30 01:08:30 +01:00
Ingo Blechschmidt 92eb5bc48e ethercalc: init at latest master (b19627) 2022-01-29 20:56:06 +01:00
piegames 405b157aaa nixos/modules/programs/spacefm: remove gksu dependency 2022-01-29 18:09:15 +01:00
piegames 5ffbf9ed81 tilp2: drop
While tilp2's libglade dependency is optional, it still has a hard dependency
on it via gfm
2022-01-29 18:08:52 +01:00
06kellyjac f32263250b opentelemetry-collector-contrib: init at 0.43.0 2022-01-28 12:52:58 +00:00
Wout Mertens ecd6b2864c
Merge pull request #147557 from wmertens/nixos-ozone
wayland: enable ozone via $NIXOS_OZONE_WL
2022-01-27 23:46:27 +01:00
Bernardo Meurer 5f9b470ff0
Merge pull request #154809 from helsinki-systems/feat/stc-proper-unit-file-parser
nixos/switch-to-configuration: Proper unit file parser and clean/fix lower part of the script
2022-01-27 09:35:34 -08:00
Luflosi 26a695399a
nixos/apfs: init
Add the final missing pieces for full APFS support.
2022-01-27 15:18:45 +01:00
Wout Mertens b2eb5f62a7 wayland: enable ozone via $NIXOS_OZONE_WL
Chrome, Chromium, VSCode, Slack, Signal, Discord, element-desktop,
schildichat.

For the latter two, the feature flag useWayland was removed and a
wrapper script was provided.
2022-01-27 09:46:36 +01:00
polykernel 4a9d9928dc nixos/nix-daemon: use structural settings
The `nix.*` options, apart from options for setting up the
daemon itself, currently provide a lot of setting mappings
for the Nix daemon configuration. The scope of the mapping yields
convience, but the line where an option is considered essential
is blurry. For instance, the `extra-sandbox-paths` mapping is
provided without its primary consumer, and the corresponding
`sandbox-paths` option is also not mapped.

The current system increases the maintenance burden as maintainers have to
closely follow upstream changes. In this case, there are two state versions
of Nix which have to be maintained collectively, with different options
avaliable.

This commit aims to following the standard outlined in RFC 42[1] to
implement a structural setting pattern. The Nix configuration is encoded
at its core as key-value pairs which maps nicely to attribute sets, making
it feasible to express in the Nix language itself. Some existing options are
kept such as `buildMachines` and `registry` which present a simplified interface
to managing the respective settings. The interface is exposed as `nix.settings`.

Legacy configurations are mapped to their corresponding options under `nix.settings`
for backwards compatibility.

Various options settings in other nixos modules and relevant tests have been
updated to use structural setting for consistency.

The generation and validation of the configration file has been modified to
use `writeTextFile` instead of `runCommand` for clarity. Note that validation
is now mandatory as strict checking of options has been pushed down to the
derivation level due to freeformType consuming unmatched options. Furthermore,
validation can not occur when cross-compiling due to current limitations.

A new option `publicHostKey` was added to the `buildMachines`
submodule corresponding to the base64 encoded public host key settings
exposed in the builder syntax. The build machine generation was subsequently
rewritten to use `concatStringsSep` for better performance by grouping
concatenations.

[1] - https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
2022-01-26 21:04:50 -05:00
Patrick Hilhorst 2774f31f40
Merge pull request #156697 from marijanp/fix-146169 2022-01-26 20:24:57 +01:00
Marijan Petričević d590556d5c update docs 2022-01-26 10:46:46 +01:00
Jeremy Kolb 7be304a543 nixos/programs/tmux: specify wanted plugins
Currently it's rather difficult to install tmux plugins. The process involves two steps:
  1. Specify the correct `pkg.tmuxPlugins` package in `environment.systemPackages`
  2. Adding to the configuration file to instantiate the plugin.

This commit allows the user to specify a list of plugins under `programs.tmux.plugins`.

Update nixos/modules/programs/tmux.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-01-25 17:12:44 -05:00
Martin Weinelt 48f17360d9 Merge remote-tracking branch 'origin/master' into staging-next 2022-01-25 15:53:19 +01:00
Robert Hensing 8919495cac
Merge pull request #156503 from hercules-ci/nixos-add-system.build-options
nixos: Add `system.build.`{`toplevel`,`installBootLoader`}, improve error message
2022-01-25 14:13:24 +01:00
github-actions[bot] bbbd0a92af
Merge master into staging-next 2022-01-25 00:02:13 +00:00
Luflosi 1c58cdbeed
nixos/modprobe: add boot.initrd.extraModprobeConfig option
This option behaves exactly like `boot.extraModprobeConfig`, except that it also includes the generated modprobe.d file in the initrd.
Many years ago, someone tried to include the normal modprobe.d/nixos.conf file generated by `boot.extraModprobeConfig` in the initrd: 0aa2c1dc46. This file contains a reference to a directory with firmware files inside. Including firmware in the initrd made it too big, so the commit was reverted again in 4a4c051a95.
The `boot.extraModprobeConfig` option not changing the initrd caused me much confusion because I tried to set the maximum cache size for ZFS and it didn't work.
Closes https://github.com/NixOS/nixpkgs/issues/25456.
2022-01-24 22:56:14 +01:00
github-actions[bot] a45818989a
Merge master into staging-next 2022-01-24 18:01:03 +00:00
Robert Hensing 48dbe26229 nixos/doc: Document types.unique 2022-01-24 16:31:59 +01:00
pennae 865a9ed3f5
Merge pull request #155669 from schuelermine/patch-mkPackageOption
lib/options: Add mkPackageOption
2022-01-24 13:35:32 +00:00
github-actions[bot] 6fee71d339
Merge master into staging-next 2022-01-24 12:01:16 +00:00
Jonas Chevalier e7dbfd7ece
terraform.withPlugins: clean and remove 0.12 support (#155477)
Now that the terraform 0.12 compatibility is not needed anymore, the
`terraform.withPlugins` and `terraform-providers.mkProvider`
implementations can be simplified.

Instead of building a bunch of bin wrappers on instantiation, the
providers are now stored in
`$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version>`
and then a simple `buildEnv` can be used to merge them.

This breaks back-compat so it's not possible to mix-and-match with
previous versions of nixpkgs. In exchange, it now becomes possible to
use the providers from
[nixpkgs-terraform-providers-bin](https://github.com/numtide/nixpkgs-terraform-providers-bin)
directly.
2022-01-24 12:53:05 +01:00
Anselm Schüler c008b3d100 nixos/docs/option-declarations: Document mkEnableOption and mkPackageOption
This is a squashed commit. These are the original commit messages:

lib/option: Improve comment

better comment

Update documentation

Updated nixos/doc/manual/development/options-declarations.md with info on mkEnableOption and mkPackageOption.
Updated the comment on mkEnableOption in lib/options.nix

remove trailing whitespace

nixos/doc/option-declarations: Update IDs & formatting

nixos/docs/option-declarations: Escape angle brackets

Build DB from MD

(Amended) Fix typo
Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>

(Amended) Build DB from MD (again)
2022-01-23 19:44:21 +01:00
github-actions[bot] 93a9821309
Merge master into staging-next 2022-01-23 18:01:11 +00:00
Jonas Heinrich c95e816c65
nixos/wordpress: Drop old deprecated interface (#152674) 2022-01-23 23:17:01 +09:00
github-actions[bot] 429249f120
Merge master into staging-next 2022-01-23 00:01:54 +00:00
ajs124 5833536257 mariadb: mention multiple release support in release notes 2022-01-22 02:28:55 +01:00
github-actions[bot] 1ca0ba653f
Merge master into staging-next 2022-01-22 00:01:46 +00:00
pennae ce49a1d98c
Merge pull request #155517 from Radvendii/knownHosts
programs.ssh.knownHosts.<name>.hostNames -> extraHostNames
2022-01-21 23:24:05 +00:00
github-actions[bot] fc3ddb8979
Merge master into staging-next 2022-01-21 00:01:42 +00:00
Luflosi ca58bd0a50
nixos/networkd: Add routes from interfaces to [Route] section of .network file
Closes https://github.com/NixOS/nixpkgs/pull/93635.
2022-01-20 20:14:55 +01:00
github-actions[bot] ce88a19065
Merge master into staging-next 2022-01-20 18:01:19 +00:00
rnhmjoj 79b4b7eaa1
docs/release-notes: document dhcpd hardening 2022-01-20 15:54:38 +01:00
Janne Heß 96d36b0c2e
nixos/switch-to-configuration: Proper unit file parser
This replaces the naive K=V unit parser with a proper INI parser from a
library and adds proper support for override files. Also adds a bunch of
comments about parsing, I hope this makes it easier to understand and
maintain in the future.

There are multiple reasons to do so, the first one is just general
correctness with is nice imo. But to get to more serious reasons (I
didn't put in all that effort for nothing) is that this is the first
step torwards more clever restart/reload handling. By using a library
like Data::Compare a future PR could replace the current way of
fingerprinting units (which is to compare store paths) by comparing the
hashes. This is more precise because units won't get restarted because
the order of the options change, comments are added, some dependency of
writeText changes, .... Also this allows us to add a feature like
`X-Reload-Triggers` so the unit can either be reloaded when these change
or restarted when everything else changes, giving module authors the
ability to have their services reloaded without having to fear that
updates are not applied because the service doesn't get restarted.
Another reason why this feature is nice is that now that the unit files
are parsed correctly (and values are just extracted from one section),
potential future rewrites can just rely on some INI library without
having to implement their own weird parser that is compatible with this
script.

This also comes with a new subroutine to handle systemd booleans because
I thought the current way of handling it was just ugly. This also allows
overriding values this script reads in an override file.

Apart from making this script more compatible with the world around it,
this also fixes two issues I saw bugging exactly 0 (zero) people. First
is that this script now supports multiple override files, also ones that
are not called override.conf and the second one is that `1` and `on` are
treated as bools by systemd but were previously not parsed as such by
switch-to-configuration.
2022-01-20 15:10:23 +01:00
Jonas Heinrich 80475b46f5
nixos/invoiceplane: init module and package at 1.5.11 (#146909) 2022-01-20 22:45:35 +09:00
pennae 989fd06cb8 nixos/ssh: add release notes for extraHostNames option 2022-01-19 17:21:11 +01:00
github-actions[bot] 0fdca24272
Merge master into staging-next 2022-01-19 00:01:38 +00:00
sternenseemann 48965506a1 lib/asserts: use throw to display message for assertMsg
`assert` has the annoying property that it dumps a lot of code at the
user without the built in capability to display a nicer message. We have
worked around this using `assertMsg` which would *additionally* display
a nice message. We can do even better: By using `throw` we can make
evaluation fail before assert draws its conclusions and prevent it from
displaying the code making up the assert condition, so we get the nicer
message of `throw` and the syntactical convenience of `assert`.

Before:

    nix-repl> python.override { reproducibleBuild = true; stripBytecode = false; }
    trace: Deterministic builds require stripping bytecode.
    error: assertion (((lib).assertMsg  (reproducibleBuild -> stripBytecode))  "Deterministic builds require stripping bytecode.") failed at /home/lukas/src/nix/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix:45:1

After:

    nix-repl> python.override { reproducibleBuild = true; stripBytecode = false; }
    error: Deterministic builds require stripping bytecode.
2022-01-19 00:50:06 +01:00