···5353 ${optionalString (
5454 cfg.down != "" || cfg.updateResolvConf
5555 ) "down ${pkgs.writeShellScript "openvpn-${name}-down" downScript}"}
5656- ${optionalString (cfg.authUserPass != null)
5757- "auth-user-pass ${pkgs.writeText "openvpn-credentials-${name}" ''
5858- ${cfg.authUserPass.username}
5959- ${cfg.authUserPass.password}
6060- ''}"
6161- }
5656+ ${optionalString (cfg.authUserPass != null) (
5757+ if isAttrs cfg.authUserPass then
5858+ "auth-user-pass ${pkgs.writeText "openvpn-credentials-${name}" ''
5959+ ${cfg.authUserPass.username}
6060+ ${cfg.authUserPass.password}
6161+ ''}"
6262+ else
6363+ "auth-user-pass ${cfg.authUserPass}"
6464+ )}
6265 '';
63666467 in
···202205 This option can be used to store the username / password credentials
203206 with the "auth-user-pass" authentication method.
204207205205- WARNING: Using this option will put the credentials WORLD-READABLE in the Nix store!
208208+ You can either provide an attribute set of `username` and `password`,
209209+ or the path to a file containing the credentials on two lines.
210210+211211+ WARNING: If you use an attribute set, this option will put the credentials WORLD-READABLE into the Nix store!
206212 '';
207213 type = types.nullOr (
208208- types.submodule {
214214+ types.oneOf [
215215+ types.singleLineStr
216216+ (types.submodule {
217217+ options = {
218218+ username = mkOption {
219219+ description = "The username to store inside the credentials file.";
220220+ type = types.str;
221221+ };
209222210210- options = {
211211- username = mkOption {
212212- description = "The username to store inside the credentials file.";
213213- type = types.str;
223223+ password = mkOption {
224224+ description = "The password to store inside the credentials file.";
225225+ type = types.str;
226226+ };
214227 };
215215-216216- password = mkOption {
217217- description = "The password to store inside the credentials file.";
218218- type = types.str;
219219- };
220220- };
221221- }
228228+ })
229229+ ]
222230 );
223231 };
224232 };
···97979898 - GNU Multiple Precision arithmetic library (GMP): [`pkgs/development/libraries/gmp`](development/libraries/gmp). Also done by the generic builder, but has a dependency on `m4`.
9999100100- - Pan, a GTK-based newsreader: [`pkgs/by-name/pa/pan/package.nix`](./by-name/pa/pan/package.nix). Has an optional dependency on `gtkspell`, which is only built if `spellCheck` is `true`.
100100+ - Pan, a GTK-based newsreader: [`pkgs/by-name/pa/pan/package.nix`](./by-name/pa/pan/package.nix). Has an optional dependency on `gspell`, which is only built if `spellCheck` is `true`.
101101102102 - Apache HTTPD: [`pkgs/servers/http/apache-httpd/2.4.nix`](servers/http/apache-httpd/2.4.nix). A bunch of optional features, variable substitutions in the configure flags, a post-install hook, and miscellaneous hackery.
103103
···16181618 prometheus-minio-exporter = throw "'prometheus-minio-exporter' has been removed from nixpkgs, use Minio's built-in Prometheus integration instead"; # Added 2024-06-10
16191619 prometheus-tor-exporter = throw "'prometheus-tor-exporter' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2024-10-30
16201620 protobuf_23 = throw "'protobuf_23' has been removed from nixpkgs. Consider using a more recent version of the protobuf library"; # Added 2025-04-20
16211621+ protobuf_28 = throw "'protobuf_28' has been removed from nixpkgs. Consider using a more recent version of the protobuf library"; # Added 2025-06-14
16211622 protobuf3_24 = protobuf_24;
16221623 protobuf3_23 = protobuf_23;
16231624 protobuf3_21 = protobuf_21;