nixos/network: Backport systemd-networkd-wait-online@.service from 251

This commit is contained in:
Jack O'Sullivan 2022-06-06 15:21:37 +01:00
parent b1a968afea
commit 6d3fa55a10
2 changed files with 34 additions and 4 deletions

View File

@ -12,9 +12,6 @@ in
"before accepting login."); "before accepting login.");
}; };
}; };
# Only present in >=22.05, so forward declare
documentation.nixos.options.warningsAreErrors = dummyOption;
}; };
imports = [ imports = [

View File

@ -1,6 +1,35 @@
{ lib, config, ... }: { lib, pkgs, config, ... }:
let let
inherit (lib) flatten optional mkIf mkDefault mkMerge; inherit (lib) flatten optional mkIf mkDefault mkMerge;
# TODO: Backported from systemd 251
networkd-wait-online-at = pkgs.writeTextDir "lib/systemd/system/systemd-networkd-wait-online@.service" ''
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Wait for Network Interface %i to be Configured
Documentation=man:systemd-networkd-wait-online.service(8)
DefaultDependencies=no
Conflicts=shutdown.target
Requires=systemd-networkd.service
After=systemd-networkd.service
Before=network-online.target shutdown.target
[Service]
Type=oneshot
ExecStart=${pkgs.systemd}/lib/systemd/systemd-networkd-wait-online -i %i
RemainAfterExit=yes
[Install]
WantedBy=network-online.target
'';
in in
{ {
config = mkMerge [ config = mkMerge [
@ -12,6 +41,10 @@ in
useNetworkd = mkDefault true; useNetworkd = mkDefault true;
}; };
systemd = {
packages = [ networkd-wait-online-at ];
};
services.resolved = { services.resolved = {
domains = [ config.networking.domain ]; domains = [ config.networking.domain ];
# Explicitly unset fallback DNS (Nix module will not allow for a blank config) # Explicitly unset fallback DNS (Nix module will not allow for a blank config)