Conversation
|
This needs to target staging, and needs to be bumped to systemd/systemd-stable v250.3. Furthermore, we should at least skim over the changes from v250..v250.3 and verify that they don't break any NixOS things. |
|
Yea, traveling right now. I'll mark as draft until it's actually ready |
|
I'll do a proper rebase and merge conflict analysis once I get home. |
|
@ofborg eval |
|
@jonringer commit |
|
rebased on latest master, will rebase onto staging once it's ready to merge. I would like to wait a staging cycle, as there was the python changes merged to staging, which I would prefer to stabilize in a different staging-next cycle from systemd changes |
|
I saw your PR too late and opened up #156438 |
|
I am closing this just now to avoid pings on rebase... |
|
I'm running a hydra job on this: https://hydra.jonringer.us/jobset/nixpkgs/systemd250 |
@jonringer there have been some more staging cycles (#158080, #158080). This also needs a rebase, as there have been some conflicts. Is there anything else preventing this from being merged? (I see the PR title still contains a "WIP" too). |
|
I am using this for some time on my laptop now without noticeable impact so far. |
|
@flokli I was going to use this staging cycle for glibc #133431 (comment). Once it begins, I think we can merge this. |
|
I can still rebase though |
There was a problem hiding this comment.
Fails to build on EFI enabled RISC-V because the requested EFI linker (efi-ld=gold) is unsupported. According to Wikipedia gold only supports x86, x86-64, ARM, PowerPC, TileGX.
If there is no particular reason to pick gold over bfd, I suggest passing -Defi-ld=bfd instead.
Edit: I suggest just removing the option altogether, so it will figure out a suitable default by itself. See comment about changed semantics below as to why this is okay for v250.
There was a problem hiding this comment.
Yes. In systemd v249.7 the variable was used to invoke the linker directly (see meson.build), so that's why ld was valid and defaulted to bfd.
In systemd v250.3 it's passed to -fuse-ld instead. meson.build
Actually, because of these new semantics, we can just drop the option. It will figure out the default linker by itself, or use bfd if it's anything other than bfd or gold.
We don't have to do that as we already set all the feature flags to null. Setting individual libraries to null instead of disabling their feature flag will lead with bad example that will cause each of the features to be disabled with multiple flags in the systemdMinimal variant. If a dependency is pulled in via another feature we should disable that rather than setting it to null. Overriding a given package should be the last resort.
This allows us to make test-only dependencies optional in builds that aren't running tests (sadly all of our builds).
When initializing a system (e.g. first boot / livecd) we have no good reference source for time. systemd-timesyncd however would revert back to its configured fallback time (in our case 01.01.1980). Since we probably don't want to hardcode a specific date as fallback we are now using the current system time (wherever that might have come from) to initialize the reference clock file. The only systems that might be remotely affected by this change are machines that have highly unreliable RTCs or those where the battery that backs the RTC is running empty. Historically these systems always had a tough time with anything time related and likely required manual intervention. For stateless systems (those that wipe / between reboots or our installer CDs) this has the consequence that time will always be reset to whatever the system comes up with on boot. This is likely the correct time coming from an RTC. No harm done here the situation is likely unchanged for them. For stateful systems (those that retain the / partition across reboots) there shouldn't be a change at all. They'll provide an initial clock value once on their lifetime (during first boot / after installation). From then onwards systemd-timesyncd will update the file with the newer fallback time (that will be picked up on the next boot).
This helps systemd during runtime to make decisions about the sanity of the system clock. See the references news article for more details on the matter.
We do not run them, so it is unnecessary work.
As reported in NixOS#156096 (review), this fails to build on EFI enabled RISC-V because the requested EFI linker (efi-ld=gold) is unsupported. According to Wikipedia gold only supports x86, x86-64, ARM, PowerPC, TileGX. Removing this option alltogether will cause meson to figure out the default linker by itself.
|
I rebased this onto latest staging, fixed the conflicts, and dropped Considering this has been open for quite some time, and tested by some people already, I'll run the |
|
Let's get this into staging. |
|
This merge broke Maybe also some other small-channel blockers from this list regressed together with it: https://hydra.nixos.org/eval/1748773#tabs-still-fail (you can see logs there or reproduce cheaply on that particular commit) |
|
Thanks for the heads-up, I'll take a look.
|
|
I built this locally. The container startup fails while trying to bind-mount I ran the interactive test driver, and looked at the VM. Indeed |
|
Okay, I figured this out - this is actually a bug in the upstream nix-daemon.socket unit. I have a workaround in nixpkgs, and will send a fix to the Nix repo. |
|
@vcunat the workaround is in #164644, and the proper fix in Nix is in NixOS/nix#6282. |
Motivation for this change
Continuation of #150491
Opening PR so I can start large build job before getting on a plane.
Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)nixos/doc/manual/md-to-db.shto update generated release notes