Commit Graph

4648 Commits

Author SHA1 Message Date
Kerstin
e248589c0f
gancio: init at 1.19.0 (#279011) 2024-09-08 22:51:23 +02:00
Sarah Brofeldt
8a508485c4
nixos/kubernetes: add extraConfig to kubelet config (#338526) 2024-09-08 20:35:46 +02:00
Jean-Baptiste Giraudeau
f5e44554c4
nixos/gancio: init module 2024-09-08 18:09:57 +02:00
Bjørn Forsman
4861c28956 homebox: update URLs in documentation
https://github.com/hay-kot/homebox was archived on 2024-06-12 and we use
the https://github.com/sysadminsmedia/homebox fork since the beginning,
in commit 4be8e799db
("homebox: init at 0.13.0").

Update the documentation to be in sync with the source we build from.
2024-09-06 19:34:15 +02:00
Anthony Roussel
3b48a7e013 nixos/samba: add documentation 2024-09-06 17:53:22 +02:00
Anthony Roussel
988c598106 nixos/samba: migrate to structural settings (RFC42) 2024-09-06 17:53:22 +02:00
Emily
fe63e7a0aa
nixos: switch to switch-to-configuration-ng by default (#339727) 2024-09-06 09:30:27 +01:00
Emily
862911fd22 nixos/release-small: remove minimal installer ISOs
These take up 2 GiB every time anything in the minimal installer
changes, or up to 4 GiB per day. We already stopped building Amazon
images in 9426d90c67. Meaningful
installer changes are rare enough, and the couple of days it takes
for them to trickle down to the large channel acceptable enough,
that this is mostly a waste of space.

This should buy enough slack to build `stdenv` on `staging` without
contributing to cache size growth.
2024-09-06 08:56:39 +01:00
Emily
56dea6da87 nixos: switch to switch-to-configuration-ng by default
The Rust `switch-to-configuration-ng` rewrite was carefully written
to be compatible with the original Perl script, has been checked
against NixOS VM tests, and has been available on an opt‐in basis
for testing for the 24.05 release cycle.

The next step towards replacing the Perl script entirely is to
switch it on by default so that we can get real‐world testing from
a much greater number of users. Maintaining two implementations in
parallel is becoming a burden; we are having to adjust the systemd
service activation behaviour slightly to fix a long‐standing bug,
and backporting the changes to the Perl script is an unpleasant
process. We will do it anyway to ensure that the Rust and Perl
implementations keep parity with each other throughout the 24.11
release cycle, but we think the time has come to flip the switch.

Taking this step now will give us two to three months to test this in
the wild before the 24.11 release and gain confidence that there are
no regressions. If any non‐trivial problems arise before the final
release, we will revert to the Perl implementation by default. Doing
this switch ASAP will help to disentangle any problems that might
arise from the Rust implementation from problems that arise from the
systemd service activation changes, or the upcoming switch to using
systemd in stage 1 by default.

The main concern that was raised about replacing the Perl script in the
PR that added `switch-to-configuration-ng` was that it is currently
possible to run NixOS on systems that cannot natively host a Rust
compiler. This does not apply to any platforms that have official
support from NixOS, and as far as I know we do not know of any such
systems with users that are not cross‐compiling anyway.

My understanding is that these systems are already broken by default
anyway, as `systemd.shutdownRamfs.enable` is on by default and uses
`make-initrd-ng`, which is also written in Rust. Switching the default
while keeping the Perl implementation around will give us at least
an entire release cycle to find out if there are any users that will
be affected by this and decide what to do about it if so.

There is currently one known inconsistency between
the Perl and Rust implementations, as documented in
<https://github.com/NixOS/nixpkgs/issues/312297>; the Rust
implementation has more accurate handling of failed systemd units.

We slightly adjust the semantics of `system.switch.enable{,Ng}` to
not conflict with each other, so that `system.switch.enableNg` is
on by default, but turning off `system.switch.enable` still results
in no `switch-to-configuration` implementation being used. This
won’t break the configuration of anyone who already opted in to
`system.switch.enableNg` and is probably how the option should have
worked to begin with.
2024-09-06 08:35:43 +01:00
Will Fancher
5a575e88b6
Revert "nixos: support dm-verity" 2024-09-05 15:56:49 -04:00
Philip Taron
2dd2a33447
nixos/installer: drop support for ReiserFS and JFS (#339821) 2024-09-05 11:30:06 -07:00
Emily
74b480507f
nixos/doc/rl-2411: improve wording of macOS version warning (#339587) 2024-09-05 16:11:44 +01:00
Emily
7b9bb0a9a1 nixos/installer: drop support for ReiserFS and JFS
ReiserFS has not been actively maintained for many years. It has been
marked as obsolete since Linux 6.6, and is scheduled for removal
in 2025. A warning is logged informing users of this every time a
ReiserFS file system is mounted. It suffers from unfixable issues
like the year 2038 problem.

JFS is a slightly more ambiguous case. It also has not been actively
maintained for years; even in 2008 questions were being raised
about its maintenance state  and IBM’s commitment to it, and some
enterprise distributions were opting not to ship support for it as
a result. It will [indefinitely postpone journal writes], leading
to data loss over potentially arbitrary amounts of time. Kernel
developers [considered marking it as deprecated] last year, but
no concrete decision was made. There have been [occasional fixes]
to the code since then, but even the developer of much of those was
not opposed to deprecating it.

[considered marking it as deprecated]: https://lore.kernel.org/lkml/Y8DvK281ii6yPRcW@infradead.org/
[indefinitely postpone journal writes]: https://www.usenix.org/legacy/events/usenix05/tech/general/full_papers/prabhakaran/prabhakaran.pdf
[occasional fixes]: https://www.phoronix.com/news/JFS-Linux-6.7-Improvements

Regardless of whether JFS should be removed from the kernel, with all
the implications for existing installations that entails, I think
it’s safe to say that no new Linux installation should be using
either of these file systems, and that it’s a waste of space and
potential footgun to be shipping support for them on our standard
installation media. We’re lagging behind other distributions on
this decision; neither is supported by Fedora’s installation media.

(It also just so happens that `jfsutils` is the one remaining package
in the minimal installer ISO that has reproducibility issues, due to
some cursed toolchain bug, but I’m not trying to Goodhart’s law
this or anything. I just think we shouldn’t be shipping it anyway.)
2024-09-05 16:00:35 +01:00
phaer
74180c6159 brightboxImage: remove, as it seems unmaintained
...and is broken/flaky on master, due to custom script with mknod usage.
2024-09-05 14:40:29 +02:00
Moritz Sanft
d0213a75e0
nixos: support dm-verity 2024-09-05 08:42:53 +02:00
éclairevoyant
fcb54ddcc9
openlens: remove package (#339553) 2024-09-05 02:32:14 +00:00
Martin Weinelt
ad601344e1
Revert "nixos/version: validate system.stateVersion" (#339671)
This broke the eval of the ISOs on nixos/unstable-small and likely nixos/trunk-combined. See #339671 for details.
2024-09-05 03:22:20 +02:00
Emily
1ac50842b2 nixos/doc/rl-2411: improve wording of macOS version warning
Fixes: f1c3597d95
2024-09-04 23:26:31 +01:00
Emily
42e6ee04b1
nixos/*: use pipewire by default (#339209) 2024-09-04 22:42:18 +01:00
Sebastian Sellmeier
4b29fd82fc
openlens: remove package 2024-09-04 22:47:28 +02:00
Johannes Jöns
3df1783166
nixos/version: validate system.stateVersion (#317858) 2024-09-04 18:09:57 +00:00
K900
63222b4c81 doc/rl-2411: add PipeWire note 2024-09-04 13:56:51 +03:00
datafoo
24e08d0e9b nixos/timesyncd: allow NTP servers advertised by DHCP to be used
- add option `fallbackServers` with default to `networking.timeServers`
- option `servers` now default to null

Fix #335050
2024-09-04 12:17:39 +02:00
Maximilian Bosch
6cc3e274c9
prometheus-openldap-exporter: remove (#338824) 2024-09-03 19:57:31 +02:00
Maximilian Bosch
40012de7de
mautrix-signal: 0.6.3 -> 0.7.0 (#337534) 2024-09-03 17:18:01 +02:00
Sandro
3bd4ec61c2
nixos/stargazer: module bug fix and hardening (#294795) 2024-09-03 11:56:05 +02:00
Emily
2419b85a5e
nixos/syncplay: add missing options (#338579) 2024-09-03 04:36:51 +01:00
Assistant
8119ec6478 nixos/syncplay: add missing options
Exposes all currently available command-line arguments that were
missing, including some that were impossible to use with the catch-all
option `extraArgs` alone, requiring changes to other parts of the
system.
Those are now all self-contained in the module.
The service now uses systemd's `DynamicUsers`.
2024-09-02 22:26:11 -04:00
Alyssa Ross
ca4ecee93b nixos/doc/rl-2411: document "rust" deprecations 2024-09-02 21:48:21 +02:00
Frédéric Christ
aab2bd233c nixos/mautrix-signal: Adapt to new configuration
With mautrix-signal v0.7.0 the bridge is built upon the bridgev2
architecture. With this, the configuration file was slightly rearranged.
Options like login_shared_secret_map and double_puppet_server_map were
dropped.
2024-09-02 20:47:10 +02:00
Martin Weinelt
76d4d43c6f
nixos/doc/rl-24.11: knot 3.4.0 migration guide 2024-09-02 15:25:32 +02:00
Weijia Wang
c0df3aea49
nixos/doc/rl-2411: warn about upcoming macOS version requirement (#338695) 2024-09-02 09:56:38 +02:00
Maximilian Bosch
735662bf16
prometheus-openldap-exporter: remove
2.3.0 is the final release, the repo is now archived.

Also I don't use it anymore for quite a while, so it didn't have a real
nixpkgs maintainer either.

Closes #338712
2024-09-01 16:47:45 +02:00
Sarah Brofeldt
1860dfed71
nixos/kubernetes: allow setting multiple kubelet dns resolvers (#338523) 2024-09-01 15:07:08 +02:00
Jan Tojnar
ffdd6582a0 release-notes: Mention gnome scope dissolution
Now, only non-packages remain.
2024-09-01 14:16:31 +02:00
Emily
f1c3597d95 nixos/doc/rl-2411: warn about upcoming macOS version requirement
For a long time now, the SDK and minimum target version for
`x86_64-darwin` has been stuck on macOS 10.12. In the past, the minimum
SDK was updated quite regularly; at first, the current situation was
just because updating the SDKs was excessively burdensome and nobody
was up for doing the work, but the introduction of `aarch64-darwin`
with its macOS 11 default SDK has resulted in a long‐term fracture
of the two platforms.

Per <https://endoflife.date/macos>, macOS 10.12 has not received
an update since 2017 and went out of security support 5 years
ago. Trying to support it in Nixpkgs has been a large burden on the
Darwin maintainers, resulting in workarounds, porting work, and even
patching functionality out of applications. The existence of Nix
users using a macOS version this old is, to my knowledge, entirely
theoretical, and we pay in both maintenance costs and functionality:
for instance, applications built for `x86_64-darwin` do not support
automatic dark mode switching by default.

This situation has always been suboptimal, but it is
now becoming untenable. Python, a critical component
of the Nixpkgs standard environment for builds, is
dropping support for versions older than 10.13 in 3.13:
<https://www.python.org/downloads/release/python-3130rc1/>. Qt 6 only
supports macOS 11 and newer. libuv only supports the versions Apple
does, and is a ticking time bomb due to its use in the standard
environment. QEMU only supports the last two macOS releases, and
won’t build with an SDK older than macOS 12; we previously vendored
a set of backporting changes and functionality‐removing reverts
to keep it building for 10.12, but this also became overly onerous,
and we gave up in <https://github.com/NixOS/nixpkgs/pull/338598>.

`x86_64-darwin` is a platform with a limited upstream future. Apple no
longer sells any hardware that runs it natively, and it is unclear how
much longer they will support it in the operating system. There are
still many users of the platform, myself included, so we shouldn’t
drop support for it prematurely, but it’s unreasonable to try and
patch the entire world to keep it supporting insecure versions of
the OS that only run on hardware that is no longer sold.

Therefore, this adds a release note to warn users ahead of time that
25.05 will only support macOS 11 and newer, as suggested by the 24.05
release team when the possibility of bumping the required version
was raised.

Why target Big Sur, rather than any other version? The
reason is simple: it’s the same SDK and deployment target as
`aarch64-darwin`. There are many packages that work on `aarch64-darwin`
but not `x86_64-darwin`, and Darwin maintainers frequently need to be
called in to fix things that work fine on the newer platform but not
the older one. This change will increase the health of `x86_64-darwin`
by aligning the SDK versions and support between the two platforms;
the vast majority of packages that work on one will Just Work on the
other. macOS 11 is almost four years old and has itself been out of
security support for a year now, but as the first version to support
Apple Silicon, it’s a far more compatible base for us to build our
Darwin packages for. Any future change in supported versions should
be synchronized between the two Darwin architectures.

When 25.05 is released, users on old, unsupported versions of macOS
will have the following options:

* Update to a new macOS version. For users that are on hardware
  that Apple has dropped support for, OpenCore Legacy Patcher
  (<https://dortania.github.io/OpenCore-Legacy-Patcher/>) can enable
  the use of newer macOS versions on hardware even older than 10.12
  supports.

* Install NixOS. That obviously precludes the use of macOS software
  (though most of that software has already dropped support for 10.12),
  but will give users a secure, supported operating system that we
  can actually own the support for going forward.

* Keep using 24.11 forever. Since they’re not getting updates
  to their OS and core applications anyway, this is likely to be
  acceptable to many users.

* Switch to MacPorts. They support all the way back to 10.6 for
  `x86_64-darwin` by building packages separately for every OS release,
  though not every package is available for every version.

* Send patches. We *may* accept non‐invasive patches to keep
  certain critical packages (such as the core `stdenv` packages)
  building for old OS versions, on a case‐by‐case basis, but we
  can’t guarantee it. This will ultimately have to be a decision
  made by package maintainers and personally I doubt this will be a
  viable path to sustainably support older versions.
2024-09-01 00:29:37 +01:00
Lin Jian
485edde32f
doc/release-notes: change "New Services" to "New Modules" (#337984) 2024-08-31 23:11:50 +08:00
Martin Weinelt
b51e706d6e
nixos/doc/rl-2411: frigate breaking changes 2024-08-31 13:49:32 +02:00
github-actions[bot]
8158f1d5b3
Merge master into staging-next 2024-08-31 06:04:15 +00:00
Tristan Gosselin-Hane
2d54b2b048 nixos/kubernetes: allow setting multiple kubelet dns resolvers
The current kubernetes module only allows you to set a single DNS
resolver for the kubelet. Historically, this has not mattered as the
value was passed to a cli argument as a string and as per the kubelet's
configuration parsing mechanism, multiple values could be passed as a
comma-delimited string. However, recently, the module was refactored to
make configure kubernetes components via configuration files rather than
the deprecated command-line arguments. These files more strongly-typed
than CLI arguments and to pass multiple values, one must define a list
in the file. When this change was made, an incorrect assumption was made
that only a single DNS server could be specified and forced a
single-item list into this configuration file. We need to introduce a
breaking change to the module in order to allow the user to supply their
own list with however many dns resolvers they wish to use.
2024-08-30 22:17:00 -04:00
Tristan Gosselin-Hane
5a03aa5a45 nixos/kubernetes: add extraConfig to kubelet config
Every now and then, kubernetes adds new configuration parameters to the
kubelet configuration. Since this is defined using a nix attrset which
is then converted to json/yaml, it would be nice to have an escape hatch
similar to the extraOpts one that exists for additional CLI arguments.
The typical use case would be to configure new settings before they are
officially supported in the nixos module.
2024-08-30 22:12:40 -04:00
Yt
4dd3c85ad5
{prisma,prisma-engines}: 5.16.1 -> 5.18.0 (#337521) 2024-08-31 00:15:53 +00:00
Simon Žlender
dcbcaee4cf prisma: init at 5.18.0 2024-08-30 21:12:54 +02:00
github-actions[bot]
43febad8fc
Merge master into staging-next 2024-08-30 12:05:11 +00:00
WilliButz
c169763c30
userborn: init at 0.1.0 (#332719) 2024-08-30 12:22:54 +02:00
github-actions[bot]
59b57346d9
Merge master into staging-next 2024-08-28 18:04:19 +00:00
linsui
89f10dc1a8 nixos/foot: init 2024-08-29 01:37:27 +08:00
Lin Jian
bcd8941419
doc/release-notes: change "New Services" to "New Modules" 2024-08-29 01:29:06 +08:00
Christina Sørensen
a96a49338e
nixos/wakapi: init module (#335436) 2024-08-28 18:58:13 +02:00
Bobby Rong
ce95ecae1a
nixos/doc/rl-2411: Don't mention nemo layer-shell change (#337854) 2024-08-28 20:39:39 +08:00