nixos/ausweisapp: init module with firewall option

Optional functionality of AusweisApp2 requires an UDP port to be opened.
The module allows for convenient configuration and serves as documentation.
See also https://github.com/NixOS/nixpkgs/issues/136269

Changed files
+36
nixos
doc
manual
from_md
release-notes
release-notes
modules
+8
nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
···
</listitem>
<listitem>
<para>
+
<link xlink:href="https://www.ausweisapp.bund.de/">AusweisApp2</link>,
+
the authentication software for the German ID card. Available
+
as
+
<link linkend="opt-programs.ausweisapp.enable">programs.ausweisapp</link>.
+
</para>
+
</listitem>
+
<listitem>
+
<para>
<link xlink:href="https://github.com/zalando/patroni">Patroni</link>,
a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
Available as
+2
nixos/doc/manual/release-notes/rl-2211.section.md
···
- [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
+
- [AusweisApp2](https://www.ausweisapp.bund.de/), the authentication software for the German ID card. Available as [programs.ausweisapp](#opt-programs.ausweisapp.enable).
+
- [Patroni](https://github.com/zalando/patroni), a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
Available as [services.patroni](options.html#opt-services.patroni.enable).
+1
nixos/modules/module-list.nix
···
./programs/adb.nix
./programs/appgate-sdp.nix
./programs/atop.nix
+
./programs/ausweisapp.nix
./programs/autojump.nix
./programs/bandwhich.nix
./programs/bash/bash.nix
+25
nixos/modules/programs/ausweisapp.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
cfg = config.programs.ausweisapp;
+
in
+
{
+
options.programs.ausweisapp = {
+
enable = mkEnableOption (lib.mdDoc "AusweisApp2");
+
+
openFirewall = mkOption {
+
description = lib.mdDoc ''
+
Whether to open the required firewall ports for the Smartphone as Card Reader (SaC) functionality of AusweisApp2.
+
'';
+
default = false;
+
type = lib.types.bool;
+
};
+
};
+
+
config = mkIf cfg.enable {
+
environment.systemPackages = with pkgs; [ AusweisApp2 ];
+
networking.firewall.allowedUDPPorts = lib.optionals cfg.openFirewall [ 24727 ];
+
};
+
}