Unverified Commit f4a0b6d5 authored by github-actions[bot]'s avatar github-actions[bot] Committed by GitHub
Browse files

Merge staging-next into staging

parents a85f7e61 994ce571
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -11056,6 +11056,12 @@
    githubId = 47835714;
    name = "Nintron";
  };
  niols = {
    email = "niols@niols.fr";
    github = "niols";
    githubId = 5920602;
    name = "Nicolas Jeannerod";
  };
  nioncode = {
    email = "nioncode+github@gmail.com";
    github = "nioncode";
+3 −0
Original line number Diff line number Diff line
@@ -400,6 +400,9 @@ In addition to numerous new and upgraded packages, this release has the followin

- The option `services.prometheus.exporters.pihole.interval` does not exist anymore and has been removed.

- The option `services.gpsd.device` has been replaced with
  `services.gpsd.devices`, which supports multiple devices.

- `k3s` can now be configured with an EnvironmentFile for its systemd service, allowing secrets to be provided without ending up in the Nix Store.

- `boot.initrd.luks.device.<name>` has a new `tryEmptyPassphrase` option, this is useful for OEM's who need to install an encrypted disk with a future settable passphrase
+27 −19
Original line number Diff line number Diff line
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, utils, ... }:

with lib;

@@ -8,12 +8,15 @@ let
  gid = config.ids.gids.gpsd;
  cfg = config.services.gpsd;

in

{
in {

  ###### interface

  imports = [
    (lib.mkRemovedOptionModule [ "services" "gpsd" "device" ]
      "Use `services.gpsd.devices` instead.")
  ];

  options = {

    services.gpsd = {
@@ -26,13 +29,17 @@ in
        '';
      };

      device = mkOption {
        type = types.str;
        default = "/dev/ttyUSB0";
      devices = mkOption {
        type = types.listOf types.str;
        default = [ "/dev/ttyUSB0" ];
        description = lib.mdDoc ''
          A device may be a local serial device for GPS input, or a URL of the form:
               `[{dgpsip|ntrip}://][user:passwd@]host[:port][/stream]`
          in which case it specifies an input source for DGPS or ntrip data.
          List of devices that `gpsd` should subscribe to.

          A device may be a local serial device for GPS input, or a
          URL of the form:
          `[{dgpsip|ntrip}://][user:passwd@]host[:port][/stream]` in
          which case it specifies an input source for DGPS or ntrip
          data.
        '';
      };

@@ -89,13 +96,12 @@ in

  };


  ###### implementation

  config = mkIf cfg.enable {

    users.users.gpsd =
      { inherit uid;
    users.users.gpsd = {
      inherit uid;
      group = "gpsd";
      description = "gpsd daemon user";
      home = "/var/empty";
@@ -109,13 +115,15 @@ in
      after = [ "network.target" ];
      serviceConfig = {
        Type = "forking";
        ExecStart = ''
        ExecStart = let
          devices = utils.escapeSystemdExecArgs cfg.devices;
        in ''
          ${pkgs.gpsd}/sbin/gpsd -D "${toString cfg.debugLevel}"  \
            -S "${toString cfg.port}"                             \
            ${optionalString cfg.readonly "-b"}                   \
            ${optionalString cfg.nowait "-n"}                     \
            ${optionalString cfg.listenany "-G"}                  \
            "${cfg.device}"
            ${devices}
        '';
      };
    };
+13 −4
Original line number Diff line number Diff line
@@ -10,8 +10,13 @@ let
    InterfacePeers = {
      eth1 = [ "tcp://192.168.1.200:12345" ];
    };
    MulticastInterfaces = [ "eth1" ];
    LinkLocalTCPPort = 54321;
    MulticastInterfaces = [ {
      Regex = ".*";
      Beacon = true;
      Listen = true;
      Port = 54321;
      Priority = 0;
    } ];
    PublicKey = "2b6f918b6c1a4b54d6bcde86cf74e074fb32ead4ee439b7930df2aa60c825186";
    PrivateKey = "0c4a24acd3402722ce9277ed179f4a04b895b49586493c25fbaed60653d857d62b6f918b6c1a4b54d6bcde86cf74e074fb32ead4ee439b7930df2aa60c825186";
  };
@@ -115,8 +120,12 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
          settings = {
            IfTAPMode = true;
            IfName = "ygg0";
            MulticastInterfaces = [ "eth1" ];
            LinkLocalTCPPort = 43210;
            MulticastInterfaces = [
              {
                Port = 43210;
              }
            ];
            openMulticastPort = true;
          };
          persistentKeys = true;
        };
+4 −0
Original line number Diff line number Diff line
@@ -128,6 +128,10 @@ stdenv.mkDerivation {
  ''
  + lib.concatStrings (builtins.map installFirmware compatFirmware);

  # parallel install creates a bad symlink at $out/lib/sane/libsane.so.1 which prevents finding plugins
  # https://github.com/NixOS/nixpkgs/issues/224569
  enableParallelInstalling = false;

  meta = with lib; {
    description = "SANE (Scanner Access Now Easy) backends";
    longDescription = ''
Loading