Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-07-27 18:01:33 +00:00 committed by GitHub
commit f6895f13b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
87 changed files with 2377 additions and 1152 deletions

View File

@ -483,8 +483,8 @@ rec {
};
# can execute on 32bit chip
gcc_mips32r2_o32 = { gcc = { arch = "mips32r2"; abi = "o32"; }; };
gcc_mips32r6_o32 = { gcc = { arch = "mips32r6"; abi = "o32"; }; };
gcc_mips32r2_o32 = { gcc = { arch = "mips32r2"; abi = "32"; }; };
gcc_mips32r6_o32 = { gcc = { arch = "mips32r6"; abi = "32"; }; };
gcc_mips64r2_n32 = { gcc = { arch = "mips64r2"; abi = "n32"; }; };
gcc_mips64r6_n32 = { gcc = { arch = "mips64r6"; abi = "n32"; }; };
gcc_mips64r2_64 = { gcc = { arch = "mips64r2"; abi = "64"; }; };

View File

@ -9890,6 +9890,12 @@
fingerprint = "196A BFEC 6A1D D1EC 7594 F8D1 F625 47D0 75E0 9767";
}];
};
patryk4815 = {
email = "patryk.sondej@gmail.com";
github = "patryk4815";
githubId = 3074260;
name = "Patryk Sondej";
};
patternspandemic = {
email = "patternspandemic@live.com";
github = "patternspandemic";
@ -12714,6 +12720,16 @@
githubId = 886074;
name = "Matthieu Coudron";
};
teutat3s = {
email = "teutates@mailbox.org";
matrix = "@teutat3s:pub.solar";
github = "teutat3s";
githubId = 10206665;
name = "teutat3s";
keys = [{
fingerprint = "81A1 1C61 F413 8C84 9139 A4FA 18DA E600 A6BB E705";
}];
};
tex = {
email = "milan.svoboda@centrum.cz";
github = "tex";

View File

@ -6,9 +6,9 @@ with lib;
appstream.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to install files to support the
<link xlink:href="https://www.freedesktop.org/software/appstream/docs/index.html">AppStream metadata specification</link>.
[AppStream metadata specification](https://www.freedesktop.org/software/appstream/docs/index.html).
'';
};
};

View File

@ -30,9 +30,9 @@ in
enable = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to create a directory with links to all fonts in
<filename>/run/current-system/sw/share/X11/fonts</filename>.
{file}`/run/current-system/sw/share/X11/fonts`.
'';
};
@ -40,9 +40,9 @@ in
type = types.bool;
default = config.programs.xwayland.enable;
defaultText = literalExpression "config.programs.xwayland.enable";
description = ''
description = lib.mdDoc ''
Whether to decompress fonts in
<filename>/run/current-system/sw/share/X11/fonts</filename>.
{file}`/run/current-system/sw/share/X11/fonts`.
'';
};

View File

@ -22,9 +22,8 @@ in
default = null;
type = timezone;
example = "America/New_York";
description = ''
The time zone used when displaying times and dates. See <link
xlink:href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"/>
description = lib.mdDoc ''
The time zone used when displaying times and dates. See <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones>
for a comprehensive list of possible values for this setting.
If null, the timezone will default to UTC and can be set imperatively
@ -35,7 +34,7 @@ in
hardwareClockInLocalTime = mkOption {
default = false;
type = types.bool;
description = "If set, keep the hardware clock in local time instead of UTC.";
description = lib.mdDoc "If set, keep the hardware clock in local time instead of UTC.";
};
};
@ -44,18 +43,18 @@ in
latitude = mkOption {
type = types.float;
description = ''
description = lib.mdDoc ''
Your current latitude, between
<literal>-90.0</literal> and <literal>90.0</literal>. Must be provided
`-90.0` and `90.0`. Must be provided
along with longitude.
'';
};
longitude = mkOption {
type = types.float;
description = ''
description = lib.mdDoc ''
Your current longitude, between
between <literal>-180.0</literal> and <literal>180.0</literal>. Must be
between `-180.0` and `180.0`. Must be
provided along with latitude.
'';
};
@ -63,9 +62,9 @@ in
provider = mkOption {
type = types.enum [ "manual" "geoclue2" ];
default = "manual";
description = ''
description = lib.mdDoc ''
The location provider to use for determining your location. If set to
<literal>manual</literal> you must also provide latitude/longitude.
`manual` you must also provide latitude/longitude.
'';
};

View File

@ -13,10 +13,10 @@ with lib;
type = types.listOf types.path;
internal = true;
default = [];
description = ''
description = lib.mdDoc ''
Search path for NSS (Name Service Switch) modules. This allows
several DNS resolution methods to be specified via
<filename>/etc/nsswitch.conf</filename>.
{file}`/etc/nsswitch.conf`.
'';
apply = list:
{
@ -28,8 +28,8 @@ with lib;
system.nssDatabases = {
passwd = mkOption {
type = types.listOf types.str;
description = ''
List of passwd entries to configure in <filename>/etc/nsswitch.conf</filename>.
description = lib.mdDoc ''
List of passwd entries to configure in {file}`/etc/nsswitch.conf`.
Note that "files" is always prepended while "systemd" is appended if nscd is enabled.
@ -40,8 +40,8 @@ with lib;
group = mkOption {
type = types.listOf types.str;
description = ''
List of group entries to configure in <filename>/etc/nsswitch.conf</filename>.
description = lib.mdDoc ''
List of group entries to configure in {file}`/etc/nsswitch.conf`.
Note that "files" is always prepended while "systemd" is appended if nscd is enabled.
@ -52,8 +52,8 @@ with lib;
shadow = mkOption {
type = types.listOf types.str;
description = ''
List of shadow entries to configure in <filename>/etc/nsswitch.conf</filename>.
description = lib.mdDoc ''
List of shadow entries to configure in {file}`/etc/nsswitch.conf`.
Note that "files" is always prepended.
@ -64,8 +64,8 @@ with lib;
hosts = mkOption {
type = types.listOf types.str;
description = ''
List of hosts entries to configure in <filename>/etc/nsswitch.conf</filename>.
description = lib.mdDoc ''
List of hosts entries to configure in {file}`/etc/nsswitch.conf`.
Note that "files" is always prepended, and "dns" and "myhostname" are always appended.
@ -76,8 +76,8 @@ with lib;
services = mkOption {
type = types.listOf types.str;
description = ''
List of services entries to configure in <filename>/etc/nsswitch.conf</filename>.
description = lib.mdDoc ''
List of services entries to configure in {file}`/etc/nsswitch.conf`.
Note that "files" is always prepended.

View File

@ -89,7 +89,7 @@ in {
enable = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to enable the PulseAudio sound server.
'';
};
@ -97,7 +97,7 @@ in {
systemWide = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
If false, a PulseAudio server is launched automatically for
each user that tries to use the sound system. The server runs
with user privileges. If true, one system-wide PulseAudio
@ -112,7 +112,7 @@ in {
support32Bit = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to include the 32-bit pulseaudio libraries in the system or not.
This is only useful on 64-bit systems and currently limited to x86_64-linux.
'';
@ -120,7 +120,7 @@ in {
configFile = mkOption {
type = types.nullOr types.path;
description = ''
description = lib.mdDoc ''
The path to the default configuration options the PulseAudio server
should use. By default, the "default.pa" configuration
from the PulseAudio distribution is used.
@ -130,8 +130,8 @@ in {
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Literal string to append to <literal>configFile</literal>
description = lib.mdDoc ''
Literal string to append to `configFile`
and the config file generated by the pulseaudio module.
'';
};
@ -139,7 +139,7 @@ in {
extraClientConf = mkOption {
type = types.lines;
default = "";
description = ''
description = lib.mdDoc ''
Extra configuration appended to pulse/client.conf file.
'';
};
@ -151,10 +151,10 @@ in {
else pkgs.pulseaudio;
defaultText = literalExpression "pkgs.pulseaudio";
example = literalExpression "pkgs.pulseaudioFull";
description = ''
description = lib.mdDoc ''
The PulseAudio derivation to use. This can be used to enable
features (such as JACK support, Bluetooth) via the
<literal>pulseaudioFull</literal> package.
`pulseaudioFull` package.
'';
};
@ -162,7 +162,7 @@ in {
type = types.listOf types.package;
default = [];
example = literalExpression "[ pkgs.pulseaudio-modules-bt ]";
description = ''
description = lib.mdDoc ''
Extra pulseaudio modules to use. This is intended for out-of-tree
pulseaudio modules like extra bluetooth codecs.
@ -174,7 +174,7 @@ in {
logLevel = mkOption {
type = types.str;
default = "notice";
description = ''
description = lib.mdDoc ''
The log level that the system-wide pulseaudio daemon should use,
if activated.
'';
@ -183,7 +183,7 @@ in {
config = mkOption {
type = types.attrsOf types.unspecified;
default = {};
description = "Config of the pulse daemon. See <literal>man pulse-daemon.conf</literal>.";
description = lib.mdDoc "Config of the pulse daemon. See `man pulse-daemon.conf`.";
example = literalExpression ''{ realtime-scheduling = "yes"; }'';
};
};
@ -205,7 +205,7 @@ in {
type = types.listOf types.str;
default = [];
example = literalExpression ''[ "127.0.0.1" "192.168.1.0/24" ]'';
description = ''
description = lib.mdDoc ''
A list of IP subnets that are allowed to stream to the server.
'';
};

View File

@ -20,10 +20,10 @@ in {
type = types.listOf types.package;
default = [];
example = literalExpression "with pkgs.unixODBCDrivers; [ sqlite psql ]";
description = ''
description = lib.mdDoc ''
Specifies Unix ODBC drivers to be registered in
<filename>/etc/odbcinst.ini</filename>. You may also want to
add <literal>pkgs.unixODBC</literal> to the system path to get
{file}`/etc/odbcinst.ini`. You may also want to
add `pkgs.unixODBC` to the system path to get
a command line client to connect to ODBC databases.
'';
};

View File

@ -10,9 +10,9 @@ with lib;
xdg.autostart.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to install files to support the
<link xlink:href="https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html">XDG Autostart specification</link>.
[XDG Autostart specification](https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html).
'';
};
};

View File

@ -10,9 +10,9 @@ with lib;
xdg.icons.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to install files to support the
<link xlink:href="https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html">XDG Icon Theme specification</link>.
[XDG Icon Theme specification](https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html).
'';
};
};

View File

@ -10,9 +10,9 @@ with lib;
xdg.menus.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to install files to support the
<link xlink:href="https://specifications.freedesktop.org/menu-spec/menu-spec-latest.html">XDG Desktop Menu specification</link>.
[XDG Desktop Menu specification](https://specifications.freedesktop.org/menu-spec/menu-spec-latest.html).
'';
};
};

View File

@ -10,9 +10,9 @@ with lib;
xdg.sounds.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to install files to support the
<link xlink:href="https://www.freedesktop.org/wiki/Specifications/sound-theme-spec/">XDG Sound Theme specification</link>.
[XDG Sound Theme specification](https://www.freedesktop.org/wiki/Specifications/sound-theme-spec/).
'';
};
};

View File

@ -6,13 +6,13 @@ let
in
{
options.hardware.cpu.intel.sgx.enableDcapCompat = mkOption {
description = ''
description = lib.mdDoc ''
Whether to enable backward compatibility for SGX software build for the
out-of-tree Intel SGX DCAP driver.
Creates symbolic links for the SGX devices <literal>/dev/sgx_enclave</literal>
and <literal>/dev/sgx_provision</literal> to make them available as
<literal>/dev/sgx/enclave</literal> and <literal>/dev/sgx/provision</literal>,
Creates symbolic links for the SGX devices `/dev/sgx_enclave`
and `/dev/sgx_provision` to make them available as
`/dev/sgx/enclave` and `/dev/sgx/provision`,
respectively.
'';
type = types.bool;
@ -22,17 +22,17 @@ in
options.hardware.cpu.intel.sgx.provision = {
enable = mkEnableOption "access to the Intel SGX provisioning device";
user = mkOption {
description = "Owner to assign to the SGX provisioning device.";
description = lib.mdDoc "Owner to assign to the SGX provisioning device.";
type = types.str;
default = "root";
};
group = mkOption {
description = "Group to assign to the SGX provisioning device.";
description = lib.mdDoc "Group to assign to the SGX provisioning device.";
type = types.str;
default = defaultPrvGroup;
};
mode = mkOption {
description = "Mode to set for the SGX provisioning device.";
description = lib.mdDoc "Mode to set for the SGX provisioning device.";
type = types.str;
default = "0660";
};

View File

@ -15,9 +15,9 @@ in {
sleep = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
description = lib.mdDoc ''
How many milliseconds ksmd should sleep between scans.
Setting it to <literal>null</literal> uses the kernel's default time.
Setting it to `null` uses the kernel's default time.
'';
};
};

View File

@ -22,9 +22,9 @@ in
let
enginesDrv = filterAttrs (const isDerivation) pkgs.fcitx-engines;
engines = concatStringsSep ", "
(map (name: "<literal>${name}</literal>") (attrNames enginesDrv));
(map (name: "`${name}`") (attrNames enginesDrv));
in
"Enabled Fcitx engines. Available engines are: ${engines}.";
lib.mdDoc "Enabled Fcitx engines. Available engines are: ${engines}.";
};
};

View File

@ -43,15 +43,15 @@ in
let
enginesDrv = filterAttrs (const isDerivation) pkgs.ibus-engines;
engines = concatStringsSep ", "
(map (name: "<literal>${name}</literal>") (attrNames enginesDrv));
(map (name: "`${name}`") (attrNames enginesDrv));
in
"Enabled IBus engines. Available engines are: ${engines}.";
lib.mdDoc "Enabled IBus engines. Available engines are: ${engines}.";
};
panel = mkOption {
type = with types; nullOr path;
default = null;
example = literalExpression ''"''${pkgs.plasma5Packages.plasma-desktop}/lib/libexec/kimpanel-ibus-panel"'';
description = "Replace the IBus panel with another panel.";
description = lib.mdDoc "Replace the IBus panel with another panel.";
};
};
};

View File

@ -75,15 +75,15 @@ in
configuration = mkOption {
internal = true;
type = types.str;
description = ''
The NixOS module that <literal>nixos-generate-config</literal>
saves to <literal>/etc/nixos/configuration.nix</literal>.
description = lib.mdDoc ''
The NixOS module that `nixos-generate-config`
saves to `/etc/nixos/configuration.nix`.
This is an internal option. No backward compatibility is guaranteed.
Use at your own risk!
Note that this string gets spliced into a Perl script. The perl
variable <literal>$bootLoaderConfig</literal> can be used to
variable `$bootLoaderConfig` can be used to
splice in the boot loader configuration.
'';
};
@ -92,15 +92,15 @@ in
internal = true;
type = types.listOf types.lines;
default = [];
description = ''
Text to preseed the desktop configuration that <literal>nixos-generate-config</literal>
saves to <literal>/etc/nixos/configuration.nix</literal>.
description = lib.mdDoc ''
Text to preseed the desktop configuration that `nixos-generate-config`
saves to `/etc/nixos/configuration.nix`.
This is an internal option. No backward compatibility is guaranteed.
Use at your own risk!
Note that this string gets spliced into a Perl script. The perl
variable <literal>$bootLoaderConfig</literal> can be used to
variable `$bootLoaderConfig` can be used to
splice in the boot loader configuration.
'';
};
@ -110,7 +110,7 @@ in
internal = true;
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Disable nixos-rebuild, nixos-generate-config, nixos-installer
and other NixOS tools. This is useful to shrink embedded,
read-only systems which are not expected to be rebuild or

View File

@ -36,8 +36,8 @@ in
type = lib.types.package;
default = pkgs.man-db;
defaultText = lib.literalExpression "pkgs.man-db";
description = ''
The <literal>man-db</literal> derivation to use. Useful to override
description = lib.mdDoc ''
The `man-db` derivation to use. Useful to override
configuration options used for the package.
'';
};

View File

@ -16,9 +16,9 @@ in {
type = with lib.types; listOf str;
default = [ "share/man" ];
example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
description = ''
description = lib.mdDoc ''
Change the manpath, i. e. the directories where
<citerefentry><refentrytitle>man</refentrytitle><manvolnum>1</manvolnum></citerefentry>
{manpage}`man(1)`
looks for section-specific directories of man pages.
You only need to change this setting if you want extra man pages
(e. g. in non-english languages). All values must be strings that
@ -31,8 +31,8 @@ in {
type = lib.types.package;
default = pkgs.mandoc;
defaultText = lib.literalExpression "pkgs.mandoc";
description = ''
The <literal>mandoc</literal> derivation to use. Useful to override
description = lib.mdDoc ''
The `mandoc` derivation to use. Useful to override
configuration options used for the package.
'';
};

View File

@ -49,42 +49,42 @@ in
nixos.version = mkOption {
internal = true;
type = types.str;
description = "The full NixOS version (e.g. <literal>16.03.1160.f2d4ee1</literal>).";
description = lib.mdDoc "The full NixOS version (e.g. `16.03.1160.f2d4ee1`).";
};
nixos.release = mkOption {
readOnly = true;
type = types.str;
default = trivial.release;
description = "The NixOS release (e.g. <literal>16.03</literal>).";
description = lib.mdDoc "The NixOS release (e.g. `16.03`).";
};
nixos.versionSuffix = mkOption {
internal = true;
type = types.str;
default = trivial.versionSuffix;
description = "The NixOS version suffix (e.g. <literal>1160.f2d4ee1</literal>).";
description = lib.mdDoc "The NixOS version suffix (e.g. `1160.f2d4ee1`).";
};
nixos.revision = mkOption {
internal = true;
type = types.nullOr types.str;
default = trivial.revisionWithDefault null;
description = "The Git revision from which this NixOS configuration was built.";
description = lib.mdDoc "The Git revision from which this NixOS configuration was built.";
};
nixos.codeName = mkOption {
readOnly = true;
type = types.str;
default = trivial.codeName;
description = "The NixOS release code name (e.g. <literal>Emu</literal>).";
description = lib.mdDoc "The NixOS release code name (e.g. `Emu`).";
};
stateVersion = mkOption {
type = types.str;
default = cfg.release;
defaultText = literalExpression "config.${opt.release}";
description = ''
description = lib.mdDoc ''
Every once in a while, a new NixOS release may change
configuration defaults in a way incompatible with stateful
data. For instance, if the default version of PostgreSQL
@ -108,13 +108,13 @@ in
internal = true;
type = types.str;
default = "https://nixos.org/channels/nixos-unstable";
description = "Default NixOS channel to which the root user is subscribed.";
description = lib.mdDoc "Default NixOS channel to which the root user is subscribed.";
};
configurationRevision = mkOption {
type = types.nullOr types.str;
default = null;
description = "The Git revision of the top-level flake from which this configuration was built.";
description = lib.mdDoc "The Git revision of the top-level flake from which this configuration was built.";
};
};

View File

@ -20,7 +20,7 @@ in
type = types.package;
default = pkgs.atop;
defaultText = literalExpression "pkgs.atop";
description = ''
description = lib.mdDoc ''
Which package to use for Atop.
'';
};
@ -29,7 +29,7 @@ in
enable = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to install and enable the netatop kernel module.
Note: this sets the kernel taint flag "O" for loading out-of-tree modules.
'';
@ -38,7 +38,7 @@ in
type = types.package;
default = config.boot.kernelPackages.netatop;
defaultText = literalExpression "config.boot.kernelPackages.netatop";
description = ''
description = lib.mdDoc ''
Which package to use for netatop.
'';
};
@ -47,7 +47,7 @@ in
atopgpu.enable = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to install and enable the atopgpud daemon to get information about
NVIDIA gpus.
'';
@ -56,7 +56,7 @@ in
setuidWrapper.enable = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to install a setuid wrapper for Atop. This is required to use some of
the features as non-root user (e.g.: ipc information, netatop, atopgpu).
Atop tries to drop the root privileges shortly after starting.
@ -66,7 +66,7 @@ in
atopService.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to enable the atop service responsible for storing statistics for
long-term analysis.
'';
@ -74,7 +74,7 @@ in
atopRotateTimer.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to enable the atop-rotate timer, which restarts the atop service
daily to make sure the data files are rotate.
'';
@ -82,7 +82,7 @@ in
atopacctService.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether to enable the atopacct service which manages process accounting.
This allows Atop to gather data about processes that disappeared in between
two refresh intervals.
@ -95,8 +95,8 @@ in
flags = "a1f";
interval = 5;
};
description = ''
Parameters to be written to <filename>/etc/atoprc</filename>.
description = lib.mdDoc ''
Parameters to be written to {file}`/etc/atoprc`.
'';
};
};

View File

@ -30,10 +30,10 @@ in
/*
enable = mkOption {
default = true;
description = ''
description = lib.mdDoc ''
Whenever to configure Bash as an interactive shell.
Note that this tries to make Bash the default
<option>users.defaultUserShell</option>,
{option}`users.defaultUserShell`,
which in turn means that you might need to explicitly
set this variable if you have another shell configured
with NixOS.
@ -44,16 +44,16 @@ in
shellAliases = mkOption {
default = {};
description = ''
Set of aliases for bash shell, which overrides <option>environment.shellAliases</option>.
See <option>environment.shellAliases</option> for an option format description.
description = lib.mdDoc ''
Set of aliases for bash shell, which overrides {option}`environment.shellAliases`.
See {option}`environment.shellAliases` for an option format description.
'';
type = with types; attrsOf (nullOr (either str path));
};
shellInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code called during bash shell initialisation.
'';
type = types.lines;
@ -61,7 +61,7 @@ in
loginShellInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code called during login bash shell initialisation.
'';
type = types.lines;
@ -69,7 +69,7 @@ in
interactiveShellInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code called during interactive bash shell initialisation.
'';
type = types.lines;
@ -92,7 +92,7 @@ in
fi
fi
'';
description = ''
description = lib.mdDoc ''
Shell script code used to initialise the bash prompt.
'';
type = types.lines;
@ -100,7 +100,7 @@ in
promptPluginInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code used to initialise bash prompt plugins.
'';
type = types.lines;

View File

@ -33,14 +33,14 @@ in
profiles = mkOption {
type = types.attrsOf types.path;
default = {};
description = "Set of dconf profile files, installed at <filename>/etc/dconf/profiles/<replaceable>name</replaceable></filename>.";
description = lib.mdDoc "Set of dconf profile files, installed at {file}`/etc/dconf/profiles/«name»`.";
internal = true;
};
packages = mkOption {
type = types.listOf types.package;
default = [];
description = "A list of packages which provide dconf profiles and databases in <filename>/etc/dconf</filename>.";
description = lib.mdDoc "A list of packages which provide dconf profiles and databases in {file}`/etc/dconf`.";
};
};
};

View File

@ -49,7 +49,7 @@ in
enable = mkOption {
default = false;
description = ''
description = lib.mdDoc ''
Whether to configure fish as an interactive shell.
'';
type = types.bool;
@ -58,16 +58,16 @@ in
useBabelfish = mkOption {
type = types.bool;
default = false;
description = ''
If enabled, the configured environment will be translated to native fish using <link xlink:href="https://github.com/bouk/babelfish">babelfish</link>.
Otherwise, <link xlink:href="https://github.com/oh-my-fish/plugin-foreign-env">foreign-env</link> will be used.
description = lib.mdDoc ''
If enabled, the configured environment will be translated to native fish using [babelfish](https://github.com/bouk/babelfish).
Otherwise, [foreign-env](https://github.com/oh-my-fish/plugin-foreign-env) will be used.
'';
};
vendor.config.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether fish should source configuration snippets provided by other packages.
'';
};
@ -75,7 +75,7 @@ in
vendor.completions.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether fish should use completion files provided by other packages.
'';
};
@ -83,7 +83,7 @@ in
vendor.functions.enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether fish should autoload fish functions provided by other packages.
'';
};
@ -94,7 +94,7 @@ in
gco = "git checkout";
npu = "nix-prefetch-url";
};
description = ''
description = lib.mdDoc ''
Set of fish abbreviations.
'';
type = with types; attrsOf str;
@ -102,16 +102,16 @@ in
shellAliases = mkOption {
default = {};
description = ''
Set of aliases for fish shell, which overrides <option>environment.shellAliases</option>.
See <option>environment.shellAliases</option> for an option format description.
description = lib.mdDoc ''
Set of aliases for fish shell, which overrides {option}`environment.shellAliases`.
See {option}`environment.shellAliases` for an option format description.
'';
type = with types; attrsOf (nullOr (either str path));
};
shellInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code called during fish shell initialisation.
'';
type = types.lines;
@ -119,7 +119,7 @@ in
loginShellInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code called during fish login shell initialisation.
'';
type = types.lines;
@ -127,7 +127,7 @@ in
interactiveShellInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code called during interactive fish shell initialisation.
'';
type = types.lines;
@ -135,7 +135,7 @@ in
promptInit = mkOption {
default = "";
description = ''
description = lib.mdDoc ''
Shell script code used to initialise fish prompt.
'';
type = types.lines;

View File

@ -41,12 +41,12 @@ in
type = types.nullOr types.path;
default = null;
example = literalExpression ''"''${pkgs.my-configs}/lesskey"'';
description = ''
description = lib.mdDoc ''
Path to lesskey configuration file.
<option>configFile</option> takes precedence over <option>commands</option>,
<option>clearDefaultCommands</option>, <option>lineEditingKeys</option>, and
<option>envVariables</option>.
{option}`configFile` takes precedence over {option}`commands`,
{option}`clearDefaultCommands`, {option}`lineEditingKeys`, and
{option}`envVariables`.
'';
};
@ -57,13 +57,13 @@ in
h = "noaction 5\\e(";
l = "noaction 5\\e)";
};
description = "Defines new command keys.";
description = lib.mdDoc "Defines new command keys.";
};
clearDefaultCommands = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Clear all default commands.
You should remember to set the quit key.
Otherwise you will not be able to leave less without killing it.
@ -76,7 +76,7 @@ in
example = {
e = "abort";
};
description = "Defines new line-editing keys.";
description = lib.mdDoc "Defines new line-editing keys.";
};
envVariables = mkOption {
@ -87,14 +87,14 @@ in
example = {
LESS = "--quit-if-one-screen";
};
description = "Defines environment variables.";
description = lib.mdDoc "Defines environment variables.";
};
lessopen = mkOption {
type = types.nullOr types.str;
default = "|${pkgs.lesspipe}/bin/lesspipe.sh %s";
defaultText = literalExpression ''"|''${pkgs.lesspipe}/bin/lesspipe.sh %s"'';
description = ''
description = lib.mdDoc ''
Before less opens a file, it first gives your input preprocessor a chance to modify the way the contents of the file are displayed.
'';
};
@ -102,7 +102,7 @@ in
lessclose = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
description = lib.mdDoc ''
When less closes a file opened in such a way, it will call another program, called the input postprocessor, which may perform any desired clean-up action (such as deleting the replacement file created by LESSOPEN).
'';
};

View File

@ -14,9 +14,9 @@ in
nanorc = lib.mkOption {
type = lib.types.lines;
default = "";
description = ''
description = lib.mdDoc ''
The system-wide nano configuration.
See <citerefentry><refentrytitle>nanorc</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
See {manpage}`nanorc(5)`.
'';
example = ''
set nowrap
@ -27,7 +27,7 @@ in
syntaxHighlight = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Whether to enable syntax highlight for various languages.";
description = lib.mdDoc "Whether to enable syntax highlight for various languages.";
};
};
};

View File

@ -26,17 +26,17 @@ let
type = mkOption {
type = types.enum [ "http" "socks4" "socks5" ];
description = "Proxy type.";
description = lib.mdDoc "Proxy type.";
};
host = mkOption {
type = types.str;
description = "Proxy host or IP address.";
description = lib.mdDoc "Proxy host or IP address.";
};
port = mkOption {
type = types.port;
description = "Proxy port";
description = lib.mdDoc "Proxy port";
};
};
};
@ -55,26 +55,26 @@ in {
type = mkOption {
type = types.enum [ "dynamic" "strict" "random" ];
default = "strict";
description = ''
<literal>dynamic</literal> - Each connection will be done via chained proxies
description = lib.mdDoc ''
`dynamic` - Each connection will be done via chained proxies
all proxies chained in the order as they appear in the list
at least one proxy must be online to play in chain
(dead proxies are skipped)
otherwise <literal>EINTR</literal> is returned to the app.
otherwise `EINTR` is returned to the app.
<literal>strict</literal> - Each connection will be done via chained proxies
`strict` - Each connection will be done via chained proxies
all proxies chained in the order as they appear in the list
all proxies must be online to play in chain
otherwise <literal>EINTR</literal> is returned to the app.
otherwise `EINTR` is returned to the app.
<literal>random</literal> - Each connection will be done via random proxy
(or proxy chain, see <option>programs.proxychains.chain.length</option>) from the list.
`random` - Each connection will be done via random proxy
(or proxy chain, see {option}`programs.proxychains.chain.length`) from the list.
'';
};
length = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
description = lib.mdDoc ''
Chain length for random chain.
'';
};
@ -83,7 +83,7 @@ in {
proxyDNS = mkOption {
type = types.bool;
default = true;
description = "Proxy DNS requests - no leak for DNS data.";
description = lib.mdDoc "Proxy DNS requests - no leak for DNS data.";
};
quietMode = mkEnableOption "Quiet mode (no output from the library).";
@ -91,7 +91,7 @@ in {
remoteDNSSubnet = mkOption {
type = types.enum [ 10 127 224 ];
default = 224;
description = ''
description = lib.mdDoc ''
Set the class A subnet number to use for the internal remote DNS mapping, uses the reserved 224.x.x.x range by default.
'';
};
@ -99,24 +99,24 @@ in {
tcpReadTimeOut = mkOption {
type = types.int;
default = 15000;
description = "Connection read time-out in milliseconds.";
description = lib.mdDoc "Connection read time-out in milliseconds.";
};
tcpConnectTimeOut = mkOption {
type = types.int;
default = 8000;
description = "Connection time-out in milliseconds.";
description = lib.mdDoc "Connection time-out in milliseconds.";
};
localnet = mkOption {
type = types.str;
default = "127.0.0.0/255.0.0.0";
description = "By default enable localnet for loopback address ranges.";
description = lib.mdDoc "By default enable localnet for loopback address ranges.";
};
proxies = mkOption {
type = types.attrsOf (types.submodule proxyOptions);
description = ''
description = lib.mdDoc ''
Proxies to be used by proxychains.
'';

View File

@ -17,8 +17,8 @@ in
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to install SpaceFM and create <filename>/etc/spacefm/spacefm.conf</filename>.
description = lib.mdDoc ''
Whether to install SpaceFM and create {file}`/etc/spacefm/spacefm.conf`.
'';
};
@ -34,10 +34,10 @@ in
terminal_su = "''${pkgs.sudo}/bin/sudo";
}
'';
description = ''
description = lib.mdDoc ''
The system-wide spacefm configuration.
Parameters to be written to <filename>/etc/spacefm/spacefm.conf</filename>.
Refer to the <link xlink:href="https://ignorantguru.github.io/spacefm/spacefm-manual-en.html#programfiles-etc">relevant entry</link> in the SpaceFM manual.
Parameters to be written to {file}`/etc/spacefm/spacefm.conf`.
Refer to the [relevant entry](https://ignorantguru.github.io/spacefm/spacefm-manual-en.html#programfiles-etc) in the SpaceFM manual.
'';
};

View File

@ -16,8 +16,8 @@ in {
settings = mkOption {
inherit (settingsFormat) type;
default = { };
description = ''
Configuration included in <literal>starship.toml</literal>.
description = lib.mdDoc ''
Configuration included in `starship.toml`.
See https://starship.rs/config/#prompt for documentation.
'';

View File

@ -11,11 +11,11 @@ with lib;
security.lockKernelModules = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Disable kernel module loading once the system is fully initialised.
Module loading is disabled until the next reboot. Problems caused
by delayed module loading can be fixed by adding the module(s) in
question to <option>boot.kernelModules</option>.
question to {option}`boot.kernelModules`.
'';
};
};

View File

@ -29,7 +29,7 @@ in
if (subject.local) return "yes";
});
'';
description =
description = lib.mdDoc
''
Any polkit rules to be added to config (in JavaScript ;-). See:
http://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html#polkit-rules
@ -40,12 +40,12 @@ in
type = types.listOf types.str;
default = [ "unix-group:wheel" ];
example = [ "unix-user:alice" "unix-group:admin" ];
description =
description = lib.mdDoc
''
Specifies which users are considered administrators, for those
actions that require the user to authenticate as an
administrator (i.e. have an <literal>auth_admin</literal>
value). By default, this is all users in the <literal>wheel</literal> group.
administrator (i.e. have an `auth_admin`
value). By default, this is all users in the `wheel` group.
'';
};

View File

@ -222,6 +222,15 @@ in
A script that must run after finishing the backup process.
'';
};
package = mkOption {
type = types.package;
default = pkgs.restic;
defaultText = literalExpression "pkgs.restic";
description = ''
Restic package to use.
'';
};
};
}));
default = { };
@ -254,7 +263,7 @@ in
(name: backup:
let
extraOptions = concatMapStrings (arg: " -o ${arg}") backup.extraOptions;
resticCmd = "${pkgs.restic}/bin/restic${extraOptions}";
resticCmd = "${backup.package}/bin/restic${extraOptions}";
filesFromTmpFile = "/run/restic-backups-${name}/includes";
backupPaths =
if (backup.dynamicFilesFrom == null)

View File

@ -125,6 +125,7 @@ in {
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ] ++ cfg.serviceDependencies;
after = [ "network-online.target" ] ++ cfg.serviceDependencies;
path = [ pkgs.lottieconverter ];
preStart = ''
# Not all secrets can be passed as environment variable (yet)

View File

@ -22,11 +22,11 @@ in
enable = mkOption {
default = false;
type = types.bool;
description = ''
description = lib.mdDoc ''
Whether to create symlinks to the system generations under
<literal>/boot</literal>. When enabled,
<literal>/boot/default/kernel</literal>,
<literal>/boot/default/initrd</literal>, etc., are updated to
`/boot`. When enabled,
`/boot/default/kernel`,
`/boot/default/initrd`, etc., are updated to
point to the current generation's kernel image, initial RAM
disk, and other bootstrap files.
@ -41,7 +41,7 @@ in
copyKernels = mkOption {
default = false;
type = types.bool;
description = ''
description = lib.mdDoc ''
Whether copy the necessary boot files into /boot, so
/nix/store is not needed by the boot loader.
'';

View File

@ -177,11 +177,11 @@ in
default = pkgs.systemd;
defaultText = literalExpression "pkgs.systemd";
type = types.package;
description = "The systemd package.";
description = lib.mdDoc "The systemd package.";
};
systemd.units = mkOption {
description = "Definition of systemd units.";
description = lib.mdDoc "Definition of systemd units.";
default = {};
type = systemdUtils.types.units;
};
@ -190,43 +190,43 @@ in
default = [];
type = types.listOf types.package;
example = literalExpression "[ pkgs.systemd-cryptsetup-generator ]";
description = "Packages providing systemd units and hooks.";
description = lib.mdDoc "Packages providing systemd units and hooks.";
};
systemd.targets = mkOption {
default = {};
type = systemdUtils.types.targets;
description = "Definition of systemd target units.";
description = lib.mdDoc "Definition of systemd target units.";
};
systemd.services = mkOption {
default = {};
type = systemdUtils.types.services;
description = "Definition of systemd service units.";
description = lib.mdDoc "Definition of systemd service units.";
};
systemd.sockets = mkOption {
default = {};
type = systemdUtils.types.sockets;
description = "Definition of systemd socket units.";
description = lib.mdDoc "Definition of systemd socket units.";
};
systemd.timers = mkOption {
default = {};
type = systemdUtils.types.timers;
description = "Definition of systemd timer units.";
description = lib.mdDoc "Definition of systemd timer units.";
};
systemd.paths = mkOption {
default = {};
type = systemdUtils.types.paths;
description = "Definition of systemd path units.";
description = lib.mdDoc "Definition of systemd path units.";
};
systemd.mounts = mkOption {
default = [];
type = systemdUtils.types.mounts;
description = ''
description = lib.mdDoc ''
Definition of systemd mount units.
This is a list instead of an attrSet, because systemd mandates the names to be derived from
the 'where' attribute.
@ -236,7 +236,7 @@ in
systemd.automounts = mkOption {
default = [];
type = systemdUtils.types.automounts;
description = ''
description = lib.mdDoc ''
Definition of systemd automount units.
This is a list instead of an attrSet, because systemd mandates the names to be derived from
the 'where' attribute.
@ -246,41 +246,41 @@ in
systemd.slices = mkOption {
default = {};
type = systemdUtils.types.slices;
description = "Definition of slice configurations.";
description = lib.mdDoc "Definition of slice configurations.";
};
systemd.generators = mkOption {
type = types.attrsOf types.path;
default = {};
example = { systemd-gpt-auto-generator = "/dev/null"; };
description = ''
description = lib.mdDoc ''
Definition of systemd generators.
For each <literal>NAME = VALUE</literal> pair of the attrSet, a link is generated from
<literal>/etc/systemd/system-generators/NAME</literal> to <literal>VALUE</literal>.
For each `NAME = VALUE` pair of the attrSet, a link is generated from
`/etc/systemd/system-generators/NAME` to `VALUE`.
'';
};
systemd.shutdown = mkOption {
type = types.attrsOf types.path;
default = {};
description = ''
description = lib.mdDoc ''
Definition of systemd shutdown executables.
For each <literal>NAME = VALUE</literal> pair of the attrSet, a link is generated from
<literal>/etc/systemd/system-shutdown/NAME</literal> to <literal>VALUE</literal>.
For each `NAME = VALUE` pair of the attrSet, a link is generated from
`/etc/systemd/system-shutdown/NAME` to `VALUE`.
'';
};
systemd.defaultUnit = mkOption {
default = "multi-user.target";
type = types.str;
description = "Default unit started when the system boots.";
description = lib.mdDoc "Default unit started when the system boots.";
};
systemd.ctrlAltDelUnit = mkOption {
default = "reboot.target";
type = types.str;
example = "poweroff.target";
description = ''
description = lib.mdDoc ''
Target that should be started when Ctrl-Alt-Delete is pressed.
'';
};
@ -289,8 +289,8 @@ in
type = with types; attrsOf (nullOr (oneOf [ str path package ]));
default = {};
example = { TZ = "CET"; };
description = ''
Environment variables passed to <emphasis>all</emphasis> systemd units.
description = lib.mdDoc ''
Environment variables passed to *all* systemd units.
'';
};
@ -298,16 +298,16 @@ in
type = with types; attrsOf (nullOr (oneOf [ str path package ]));
default = {};
example = { SYSTEMD_LOG_LEVEL = "debug"; };
description = ''
description = lib.mdDoc ''
Environment variables of PID 1. These variables are
<emphasis>not</emphasis> passed to started units.
*not* passed to started units.
'';
};
systemd.enableCgroupAccounting = mkOption {
default = true;
type = types.bool;
description = ''
description = lib.mdDoc ''
Whether to enable cgroup accounting.
'';
};
@ -315,7 +315,7 @@ in
systemd.enableUnifiedCgroupHierarchy = mkOption {
default = true;
type = types.bool;
description = ''
description = lib.mdDoc ''
Whether to enable the unified cgroup hierarchy (cgroupsv2).
'';
};
@ -324,7 +324,7 @@ in
default = "";
type = types.lines;
example = "DefaultLimitCORE=infinity";
description = ''
description = lib.mdDoc ''
Extra config options for systemd. See man systemd-system.conf for
available options.
'';
@ -334,7 +334,7 @@ in
default = "";
type = types.lines;
example = "HibernateDelaySec=1h";
description = ''
description = lib.mdDoc ''
Extra config options for systemd sleep state logic.
See sleep.conf.d(5) man page for available options.
'';
@ -344,7 +344,7 @@ in
default = [ ];
type = types.listOf types.str;
example = [ "debug-shell.service" "systemd-quotacheck.service" ];
description = ''
description = lib.mdDoc ''
Additional units shipped with systemd that shall be enabled.
'';
};
@ -353,10 +353,10 @@ in
default = [ ];
type = types.listOf types.str;
example = [ "systemd-backlight@.service" ];
description = ''
description = lib.mdDoc ''
A list of units to skip when generating system systemd configuration directory. This has
priority over upstream units, <option>systemd.units</option>, and
<option>systemd.additionalUpstreamSystemUnits</option>. The main purpose of this is to
priority over upstream units, {option}`systemd.units`, and
{option}`systemd.additionalUpstreamSystemUnits`. The main purpose of this is to
prevent a upstream systemd unit from being added to the initrd with any modifications made to it
by other NixOS modules.
'';
@ -366,7 +366,7 @@ in
type = types.nullOr types.path;
default = null;
example = "/dev/watchdog";
description = ''
description = lib.mdDoc ''
The path to a hardware watchdog device which will be managed by systemd.
If not specified, systemd will default to /dev/watchdog.
'';
@ -376,7 +376,7 @@ in
type = types.nullOr types.str;
default = null;
example = "30s";
description = ''
description = lib.mdDoc ''
The amount of time which can elapse before a watchdog hardware device
will automatically reboot the system. Valid time units include "ms",
"s", "min", "h", "d", and "w".
@ -387,7 +387,7 @@ in
type = types.nullOr types.str;
default = null;
example = "10m";
description = ''
description = lib.mdDoc ''
The amount of time which can elapse after a reboot has been triggered
before a watchdog hardware device will automatically reboot the system.
Valid time units include "ms", "s", "min", "h", "d", and "w".
@ -398,7 +398,7 @@ in
type = types.nullOr types.str;
default = null;
example = "10m";
description = ''
description = lib.mdDoc ''
The amount of time which can elapse when kexec is being executed before
a watchdog hardware device will automatically reboot the system. This
option should only be enabled if reloadTime is also enabled. Valid

View File

@ -150,7 +150,7 @@ in {
};
contents = mkOption {
description = "Set of files that have to be linked into the initrd";
description = lib.mdDoc "Set of files that have to be linked into the initrd";
example = literalExpression ''
{
"/etc/hostname".text = "mymachine";
@ -162,7 +162,7 @@ in {
};
storePaths = mkOption {
description = ''
description = lib.mdDoc ''
Store paths to copy into the initrd as well.
'';
type = with types; listOf (oneOf [ singleLineStr package ]);
@ -170,7 +170,7 @@ in {
};
extraBin = mkOption {
description = ''
description = lib.mdDoc ''
Tools to add to /bin
'';
example = literalExpression ''
@ -183,7 +183,7 @@ in {
};
suppressedStorePaths = mkOption {
description = ''
description = lib.mdDoc ''
Store paths specified in the storePaths option that
should not be copied.
'';
@ -194,7 +194,7 @@ in {
emergencyAccess = mkOption {
type = with types; oneOf [ bool (nullOr (passwdEntry str)) ];
visible = false;
description = ''
description = lib.mdDoc ''
Set to true for unauthenticated emergency access, and false for
no emergency access.
@ -208,7 +208,7 @@ in {
type = types.listOf types.package;
default = [];
visible = false;
description = ''
description = lib.mdDoc ''
Packages to include in /bin for the stage 1 emergency shell.
'';
};
@ -218,7 +218,7 @@ in {
type = types.listOf types.str;
visible = false;
example = [ "debug-shell.service" "systemd-quotacheck.service" ];
description = ''
description = lib.mdDoc ''
Additional units shipped with systemd that shall be enabled.
'';
};
@ -228,17 +228,17 @@ in {
type = types.listOf types.str;
example = [ "systemd-backlight@.service" ];
visible = false;
description = ''
description = lib.mdDoc ''
A list of units to skip when generating system systemd configuration directory. This has
priority over upstream units, <option>boot.initrd.systemd.units</option>, and
<option>boot.initrd.systemd.additionalUpstreamUnits</option>. The main purpose of this is to
priority over upstream units, {option}`boot.initrd.systemd.units`, and
{option}`boot.initrd.systemd.additionalUpstreamUnits`. The main purpose of this is to
prevent a upstream systemd unit from being added to the initrd with any modifications made to it
by other NixOS modules.
'';
};
units = mkOption {
description = "Definition of systemd units.";
description = lib.mdDoc "Definition of systemd units.";
default = {};
visible = false;
type = systemdUtils.types.units;
@ -249,49 +249,49 @@ in {
visible = false;
type = types.listOf types.package;
example = literalExpression "[ pkgs.systemd-cryptsetup-generator ]";
description = "Packages providing systemd units and hooks.";
description = lib.mdDoc "Packages providing systemd units and hooks.";
};
targets = mkOption {
default = {};
visible = false;
type = systemdUtils.types.initrdTargets;
description = "Definition of systemd target units.";
description = lib.mdDoc "Definition of systemd target units.";
};
services = mkOption {
default = {};
type = systemdUtils.types.initrdServices;
visible = false;
description = "Definition of systemd service units.";
description = lib.mdDoc "Definition of systemd service units.";
};
sockets = mkOption {
default = {};
type = systemdUtils.types.initrdSockets;
visible = false;
description = "Definition of systemd socket units.";
description = lib.mdDoc "Definition of systemd socket units.";
};
timers = mkOption {
default = {};
type = systemdUtils.types.initrdTimers;
visible = false;
description = "Definition of systemd timer units.";
description = lib.mdDoc "Definition of systemd timer units.";
};
paths = mkOption {
default = {};
type = systemdUtils.types.initrdPaths;
visible = false;
description = "Definition of systemd path units.";
description = lib.mdDoc "Definition of systemd path units.";
};
mounts = mkOption {
default = [];
type = systemdUtils.types.initrdMounts;
visible = false;
description = ''
description = lib.mdDoc ''
Definition of systemd mount units.
This is a list instead of an attrSet, because systemd mandates the names to be derived from
the 'where' attribute.
@ -302,7 +302,7 @@ in {
default = [];
type = systemdUtils.types.automounts;
visible = false;
description = ''
description = lib.mdDoc ''
Definition of systemd automount units.
This is a list instead of an attrSet, because systemd mandates the names to be derived from
the 'where' attribute.
@ -313,7 +313,7 @@ in {
default = {};
type = systemdUtils.types.slices;
visible = false;
description = "Definition of slice configurations.";
description = lib.mdDoc "Definition of slice configurations.";
};
};

View File

@ -14,23 +14,23 @@ in
boot.cleanTmpDir = mkOption {
type = types.bool;
default = false;
description = ''
Whether to delete all files in <filename>/tmp</filename> during boot.
description = lib.mdDoc ''
Whether to delete all files in {file}`/tmp` during boot.
'';
};
boot.tmpOnTmpfs = mkOption {
type = types.bool;
default = false;
description = ''
Whether to mount a tmpfs on <filename>/tmp</filename> during boot.
description = lib.mdDoc ''
Whether to mount a tmpfs on {file}`/tmp` during boot.
'';
};
boot.tmpOnTmpfsSize = mkOption {
type = types.oneOf [ types.str types.types.ints.positive ];
default = "50%";
description = ''
description = lib.mdDoc ''
Size of tmpfs in percentage.
Percentage is defined by systemd.
'';

View File

@ -82,8 +82,8 @@ in
"default/useradd".text = "GROUP=100 ...";
}
'';
description = ''
Set of files that have to be linked in <filename>/etc</filename>.
description = lib.mdDoc ''
Set of files that have to be linked in {file}`/etc`.
'';
type = with types; attrsOf (submodule (
@ -93,7 +93,7 @@ in
enable = mkOption {
type = types.bool;
default = true;
description = ''
description = lib.mdDoc ''
Whether this /etc file should be generated. This
option allows specific /etc files to be disabled.
'';
@ -101,9 +101,9 @@ in
target = mkOption {
type = types.str;
description = ''
description = lib.mdDoc ''
Name of symlink (relative to
<filename>/etc</filename>). Defaults to the attribute
{file}`/etc`). Defaults to the attribute
name.
'';
};
@ -111,20 +111,20 @@ in
text = mkOption {
default = null;
type = types.nullOr types.lines;
description = "Text of the file.";
description = lib.mdDoc "Text of the file.";
};
source = mkOption {
type = types.path;
description = "Path of the source file.";
description = lib.mdDoc "Path of the source file.";
};
mode = mkOption {
type = types.str;
default = "symlink";
example = "0600";
description = ''
If set to something else than <literal>symlink</literal>,
description = lib.mdDoc ''
If set to something else than `symlink`,
the file is copied instead of symlinked, with the given
file mode.
'';
@ -133,7 +133,7 @@ in
uid = mkOption {
default = 0;
type = types.int;
description = ''
description = lib.mdDoc ''
UID of created file. Only takes effect when the file is
copied (that is, the mode is not 'symlink').
'';
@ -142,7 +142,7 @@ in
gid = mkOption {
default = 0;
type = types.int;
description = ''
description = lib.mdDoc ''
GID of created file. Only takes effect when the file is
copied (that is, the mode is not 'symlink').
'';
@ -151,20 +151,20 @@ in
user = mkOption {
default = "+${toString config.uid}";
type = types.str;
description = ''
description = lib.mdDoc ''
User name of created file.
Only takes effect when the file is copied (that is, the mode is not 'symlink').
Changing this option takes precedence over <literal>uid</literal>.
Changing this option takes precedence over `uid`.
'';
};
group = mkOption {
default = "+${toString config.gid}";
type = types.str;
description = ''
description = lib.mdDoc ''
Group name of created file.
Only takes effect when the file is copied (that is, the mode is not 'symlink').
Changing this option takes precedence over <literal>gid</literal>.
Changing this option takes precedence over `gid`.
'';
};

View File

@ -16,33 +16,33 @@ let
enable = mkOption {
default = false;
type = types.bool;
description = "The block device is backed by an encrypted one, adds this device as a initrd luks entry.";
description = lib.mdDoc "The block device is backed by an encrypted one, adds this device as a initrd luks entry.";
};
blkDev = mkOption {
default = null;
example = "/dev/sda1";
type = types.nullOr types.str;
description = "Location of the backing encrypted device.";
description = lib.mdDoc "Location of the backing encrypted device.";
};
label = mkOption {
default = null;
example = "rootfs";
type = types.nullOr types.str;
description = "Label of the unlocked encrypted device. Set <literal>fileSystems.&lt;name?&gt;.device</literal> to <literal>/dev/mapper/&lt;label&gt;</literal> to mount the unlocked device.";
description = lib.mdDoc "Label of the unlocked encrypted device. Set `fileSystems.<name?>.device` to `/dev/mapper/<label>` to mount the unlocked device.";
};
keyFile = mkOption {
default = null;
example = "/mnt-root/root/.swapkey";
type = types.nullOr types.str;
description = ''
description = lib.mdDoc ''
Path to a keyfile used to unlock the backing encrypted
device. At the time this keyfile is accessed, the
<literal>neededForBoot</literal> filesystems (see
<literal>fileSystems.&lt;name?&gt;.neededForBoot</literal>)
will have been mounted under <literal>/mnt-root</literal>,
`neededForBoot` filesystems (see
`fileSystems.<name?>.neededForBoot`)
will have been mounted under `/mnt-root`,
so the keyfile path should usually start with "/mnt-root/".
'';
};

View File

@ -14,7 +14,7 @@ in
d2 = "/mnt/disk2/";
d3 = "/mnt/disk3/";
};
description = "SnapRAID data disks.";
description = lib.mdDoc "SnapRAID data disks.";
type = attrsOf str;
};
parityFiles = mkOption {
@ -27,7 +27,7 @@ in
"/mnt/diskt/snapraid.5-parity"
"/mnt/disku/snapraid.6-parity"
];
description = "SnapRAID parity files.";
description = lib.mdDoc "SnapRAID parity files.";
type = listOf str;
};
contentFiles = mkOption {
@ -37,46 +37,46 @@ in
"/mnt/disk1/snapraid.content"
"/mnt/disk2/snapraid.content"
];
description = "SnapRAID content list files.";
description = lib.mdDoc "SnapRAID content list files.";
type = listOf str;
};
exclude = mkOption {
default = [ ];
example = [ "*.unrecoverable" "/tmp/" "/lost+found/" ];
description = "SnapRAID exclude directives.";
description = lib.mdDoc "SnapRAID exclude directives.";
type = listOf str;
};
touchBeforeSync = mkOption {
default = true;
example = false;
description =
"Whether <command>snapraid touch</command> should be run before <command>snapraid sync</command>.";
description = lib.mdDoc
"Whether {command}`snapraid touch` should be run before {command}`snapraid sync`.";
type = bool;
};
sync.interval = mkOption {
default = "01:00";
example = "daily";
description = "How often to run <command>snapraid sync</command>.";
description = lib.mdDoc "How often to run {command}`snapraid sync`.";
type = str;
};
scrub = {
interval = mkOption {
default = "Mon *-*-* 02:00:00";
example = "weekly";
description = "How often to run <command>snapraid scrub</command>.";
description = lib.mdDoc "How often to run {command}`snapraid scrub`.";
type = str;
};
plan = mkOption {
default = 8;
example = 5;
description =
"Percent of the array that should be checked by <command>snapraid scrub</command>.";
description = lib.mdDoc
"Percent of the array that should be checked by {command}`snapraid scrub`.";
type = int;
};
olderThan = mkOption {
default = 10;
example = 20;
description =
description = lib.mdDoc
"Number of days since data was last scrubbed before it can be scrubbed again.";
type = int;
};
@ -90,7 +90,7 @@ in
autosave 500
pool /pool
'';
description = "Extra config options for SnapRAID.";
description = lib.mdDoc "Extra config options for SnapRAID.";
type = lines;
};
};

View File

@ -10,7 +10,7 @@ in {
};
mdadmConf = lib.mkOption {
description = "Contents of <filename>/etc/mdadm.conf</filename> in initrd.";
description = lib.mdDoc "Contents of {file}`/etc/mdadm.conf` in initrd.";
type = lib.types.lines;
default = "";
};

View File

@ -10,7 +10,7 @@ let
address = mkOption {
default = addr;
type = types.str;
description = ''
description = lib.mdDoc ''
IPv${toString v} ${name} address.
'';
};
@ -18,9 +18,9 @@ let
prefixLength = mkOption {
default = pref;
type = types.addCheck types.int (n: n >= 0 && n <= (if v == 4 then 32 else 128));
description = ''
description = lib.mdDoc ''
Subnet mask of the ${name} address, specified as the number of
bits in the prefix (<literal>${if v == 4 then "24" else "64"}</literal>).
bits in the prefix (`${if v == 4 then "24" else "64"}`).
'';
};
};
@ -37,7 +37,7 @@ in
default = pkgs.anbox.image;
defaultText = literalExpression "pkgs.anbox.image";
type = types.package;
description = ''
description = lib.mdDoc ''
Base android image for Anbox.
'';
};
@ -45,7 +45,7 @@ in
extraInit = mkOption {
type = types.lines;
default = "";
description = ''
description = lib.mdDoc ''
Extra shell commands to be run inside the container image during init.
'';
};
@ -57,7 +57,7 @@ in
dns = mkOption {
default = "1.1.1.1";
type = types.str;
description = ''
description = lib.mdDoc ''
Container DNS server.
'';
};

View File

@ -25,8 +25,8 @@ in
options = {
virtualisation.vmVariant = mkOption {
description = ''
Machine configuration to be added for the vm script produced by <literal>nixos-rebuild build-vm</literal>.
description = lib.mdDoc ''
Machine configuration to be added for the vm script produced by `nixos-rebuild build-vm`.
'';
inherit (vmVariant) type;
default = {};
@ -34,8 +34,8 @@ in
};
virtualisation.vmVariantWithBootLoader = mkOption {
description = ''
Machine configuration to be added for the vm script produced by <literal>nixos-rebuild build-vm-with-bootloader</literal>.
description = lib.mdDoc ''
Machine configuration to be added for the vm script produced by `nixos-rebuild build-vm-with-bootloader`.
'';
inherit (vmVariantWithBootLoader) type;
default = {};

View File

@ -31,7 +31,7 @@ in
mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
This option enables the common /etc/containers configuration module.
'';
};
@ -39,13 +39,13 @@ in
ociSeccompBpfHook.enable = mkOption {
type = types.bool;
default = false;
description = "Enable the OCI seccomp BPF hook";
description = lib.mdDoc "Enable the OCI seccomp BPF hook";
};
containersConf.settings = mkOption {
type = toml.type;
default = { };
description = "containers.conf configuration";
description = lib.mdDoc "containers.conf configuration";
};
containersConf.cniPlugins = mkOption {
@ -60,7 +60,7 @@ in
pkgs.cniPlugins.dnsname
]
'';
description = ''
description = lib.mdDoc ''
CNI plugins to install on the system.
'';
};
@ -74,14 +74,14 @@ in
runroot = "/run/containers/storage";
};
};
description = "storage.conf configuration";
description = lib.mdDoc "storage.conf configuration";
};
registries = {
search = mkOption {
type = types.listOf types.str;
default = [ "docker.io" "quay.io" ];
description = ''
description = lib.mdDoc ''
List of repositories to search.
'';
};
@ -89,7 +89,7 @@ in
insecure = mkOption {
default = [];
type = types.listOf types.str;
description = ''
description = lib.mdDoc ''
List of insecure repositories.
'';
};
@ -97,7 +97,7 @@ in
block = mkOption {
default = [];
type = types.listOf types.str;
description = ''
description = lib.mdDoc ''
List of blocked repositories.
'';
};
@ -116,10 +116,10 @@ in
};
}
'';
description = ''
description = lib.mdDoc ''
Signature verification policy file.
If this option is empty the default policy file from
<literal>skopeo</literal> will be used.
`skopeo` will be used.
'';
};

View File

@ -13,7 +13,7 @@ in
type = with types; either (enum [ "auto" ]) int;
default = "auto";
example = 4096;
description = ''
description = lib.mdDoc ''
Size of disk image. Unit is MB.
'';
};
@ -21,12 +21,12 @@ in
virtualisation.digitalOceanImage.configFile = mkOption {
type = with types; nullOr path;
default = null;
description = ''
description = lib.mdDoc ''
A path to a configuration file which will be placed at
<literal>/etc/nixos/configuration.nix</literal> and be used when switching
to a new configuration. If set to <literal>null</literal>, a default
`/etc/nixos/configuration.nix` and be used when switching
to a new configuration. If set to `null`, a default
configuration is used that imports
<literal>(modulesPath + "/virtualisation/digital-ocean-config.nix")</literal>.
`(modulesPath + "/virtualisation/digital-ocean-config.nix")`.
'';
};
@ -34,7 +34,7 @@ in
type = types.enum [ "gzip" "bzip2" ];
default = "gzip";
example = "bzip2";
description = ''
description = lib.mdDoc ''
Disk image compression method. Choose bzip2 to generate smaller images that
take longer to generate but will consume less metered storage space on your
Digital Ocean account.

View File

@ -15,18 +15,18 @@ in {
type = types.bool;
default = true;
example = true;
description = "Whether to reconfigure the system from Digital Ocean user data";
description = lib.mdDoc "Whether to reconfigure the system from Digital Ocean user data";
};
options.virtualisation.digitalOcean.defaultConfigFile = mkOption {
type = types.path;
default = defaultConfigFile;
defaultText = literalDocBook ''
The default configuration imports user-data if applicable and
<literal>(modulesPath + "/virtualisation/digital-ocean-config.nix")</literal>.
`(modulesPath + "/virtualisation/digital-ocean-config.nix")`.
'';
description = ''
description = lib.mdDoc ''
A path to a configuration file which will be placed at
<literal>/etc/nixos/configuration.nix</literal> and be used when switching to
`/etc/nixos/configuration.nix` and be used when switching to
a new configuration.
'';
};

View File

@ -18,18 +18,18 @@ in
enable = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
This option enables docker in a rootless mode, a daemon that manages
linux containers. To interact with the daemon, one needs to set
<command>DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock</command>.
{command}`DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock`.
'';
};
setSocketVariable = mkOption {
type = types.bool;
default = false;
description = ''
Point <command>DOCKER_HOST</command> to rootless Docker instance for
description = lib.mdDoc ''
Point {command}`DOCKER_HOST` to rootless Docker instance for
normal users by default.
'';
};
@ -41,7 +41,7 @@ in
ipv6 = true;
"fixed-cidr-v6" = "fd00::/80";
};
description = ''
description = lib.mdDoc ''
Configuration for docker daemon. The attributes are serialized to JSON used as daemon.conf.
See https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
'';
@ -51,7 +51,7 @@ in
default = pkgs.docker;
defaultText = literalExpression "pkgs.docker";
type = types.package;
description = ''
description = lib.mdDoc ''
Docker package to be used in the module.
'';
};

View File

@ -13,7 +13,7 @@ in {
enable = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to enable Open vSwitch. A configuration daemon (ovs-server)
will be started.
'';
@ -22,9 +22,9 @@ in {
resetOnStart = mkOption {
type = types.bool;
default = false;
description = ''
description = lib.mdDoc ''
Whether to reset the Open vSwitch configuration database to a default
configuration on every start of the systemd <literal>ovsdb.service</literal>.
configuration on every start of the systemd `ovsdb.service`.
'';
};
@ -32,7 +32,7 @@ in {
type = types.package;
default = pkgs.openvswitch;
defaultText = literalExpression "pkgs.openvswitch";
description = ''
description = lib.mdDoc ''
Open vSwitch package to use.
'';
};

View File

@ -14,42 +14,42 @@ in {
type = with types; either (enum [ "auto" ]) int;
default = "auto";
example = 50 * 1024;
description = ''
description = lib.mdDoc ''
The size of the VirtualBox base image in MiB.
'';
};
baseImageFreeSpace = mkOption {
type = with types; int;
default = 30 * 1024;
description = ''
description = lib.mdDoc ''
Free space in the VirtualBox base image in MiB.
'';
};
memorySize = mkOption {
type = types.int;
default = 1536;
description = ''
description = lib.mdDoc ''
The amount of RAM the VirtualBox appliance can use in MiB.
'';
};
vmDerivationName = mkOption {
type = types.str;
default = "nixos-ova-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
description = ''
description = lib.mdDoc ''
The name of the derivation for the VirtualBox appliance.
'';
};
vmName = mkOption {
type = types.str;
default = "NixOS ${config.system.nixos.label} (${pkgs.stdenv.hostPlatform.system})";
description = ''
description = lib.mdDoc ''
The name of the VirtualBox appliance.
'';
};
vmFileName = mkOption {
type = types.str;
default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.ova";
description = ''
description = lib.mdDoc ''
The file name of the VirtualBox appliance.
'';
};
@ -60,10 +60,10 @@ in {
rtcuseutc = "on";
usb = "off";
};
description = ''
description = lib.mdDoc ''
Parameters passed to the Virtualbox appliance.
Run <literal>VBoxManage modifyvm --help</literal> to see more options.
Run `VBoxManage modifyvm --help` to see more options.
'';
};
exportParams = mkOption {
@ -72,14 +72,14 @@ in {
"--vsys" "0" "--vendor" "ACME Inc."
];
default = [];
description = ''
description = lib.mdDoc ''
Parameters passed to the Virtualbox export command.
Run <literal>VBoxManage export --help</literal> to see more options.
Run `VBoxManage export --help` to see more options.
'';
};
extraDisk = mkOption {
description = ''
description = lib.mdDoc ''
Optional extra disk/hdd configuration.
The disk will be an 'ext4' partition on a separate VMDK file.
'';
@ -93,16 +93,16 @@ in {
options = {
size = mkOption {
type = types.int;
description = "Size in MiB";
description = lib.mdDoc "Size in MiB";
};
label = mkOption {
type = types.str;
default = "vm-extra-storage";
description = "Label for the disk partition";
description = lib.mdDoc "Label for the disk partition";
};
mountPoint = mkOption {
type = types.str;
description = "Path where to mount this disk.";
description = lib.mdDoc "Path where to mount this disk.";
};
};
});

View File

@ -37,7 +37,7 @@ in
type = types.package;
defaultText = literalExpression "pkgs.xen";
example = literalExpression "pkgs.xen-light";
description = ''
description = lib.mdDoc ''
The package used for Xen binary.
'';
relatedPackages = [ "xen" "xen-light" ];
@ -47,7 +47,7 @@ in
type = types.package;
defaultText = literalExpression "pkgs.xen";
example = literalExpression "pkgs.qemu_xen-light";
description = ''
description = lib.mdDoc ''
The package with qemu binaries for dom0 qemu and xendomains.
'';
relatedPackages = [ "xen"
@ -59,7 +59,7 @@ in
mkOption {
default = [];
type = types.listOf types.str;
description =
description = lib.mdDoc
''
Parameters passed to the Xen hypervisor at boot time.
'';
@ -70,7 +70,7 @@ in
default = 0;
example = 512;
type = types.addCheck types.int (n: n >= 0);
description =
description = lib.mdDoc
''
Amount of memory (in MiB) allocated to Domain 0 on boot.
If set to 0, all memory is assigned to Domain 0.
@ -81,7 +81,7 @@ in
name = mkOption {
default = "xenbr0";
type = types.str;
description = ''
description = lib.mdDoc ''
Name of bridge the Xen domUs connect to.
'';
};
@ -89,7 +89,7 @@ in
address = mkOption {
type = types.str;
default = "172.16.0.1";
description = ''
description = lib.mdDoc ''
IPv4 address of the bridge.
'';
};
@ -97,9 +97,9 @@ in
prefixLength = mkOption {
type = types.addCheck types.int (n: n >= 0 && n <= 32);
default = 16;
description = ''
description = lib.mdDoc ''
Subnet mask of the bridge interface, specified as the number of
bits in the prefix (<literal>24</literal>).
bits in the prefix (`24`).
A DHCP server will provide IP addresses for the whole, remaining
subnet.
'';
@ -108,8 +108,8 @@ in
forwardDns = mkOption {
type = types.bool;
default = false;
description = ''
If set to <literal>true</literal>, the DNS queries from the
description = lib.mdDoc ''
If set to `true`, the DNS queries from the
hosts connected to the bridge will be forwarded to the DNS
servers specified in /etc/resolv.conf .
'';
@ -120,7 +120,7 @@ in
virtualisation.xen.stored =
mkOption {
type = types.path;
description =
description = lib.mdDoc
''
Xen Store daemon to use. Defaults to oxenstored of the xen package.
'';
@ -130,7 +130,7 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
description =
description = lib.mdDoc
''
Options defined here will override the defaults for xendomains.
The default options can be seen in the file included from

View File

@ -63,6 +63,12 @@ import ./make-test-python.nix (
inherit repository passwordFile;
pruneOpts = [ "--keep-last 1" ];
};
custompackage = {
inherit repository passwordFile paths;
package = pkgs.writeShellScriptBin "restic" ''
echo "$@" >> /tmp/fake-restic.log;
'';
};
};
environment.sessionVariables.RCLONE_CONFIG_LOCAL_TYPE = "local";
@ -76,6 +82,7 @@ import ./make-test-python.nix (
"${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots",
'${pkgs.restic}/bin/restic --repository-file ${repositoryFile} -p ${passwordFile} snapshots"',
"${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots",
"grep 'backup .* /opt' /tmp/fake-restic.log",
)
server.succeed(
"mkdir -p /opt",
@ -89,6 +96,8 @@ import ./make-test-python.nix (
'${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
'${pkgs.restic}/bin/restic --repository-file ${repositoryFile} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
'${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
"systemctl start restic-backups-custompackage.service",
"grep 'backup .* /opt' /tmp/fake-restic.log",
"timedatectl set-time '2017-12-13 13:45'",
"systemctl start restic-backups-remotebackup.service",
"rm /opt/backupCleanupCommand",

View File

@ -5,10 +5,9 @@
, help2man
, pkg-config
, texinfo
, makeWrapper
, boehmgc
, readline
, guiSupport ? false, tcl, tcllib, tk
, guiSupport ? false, makeWrapper, tcl, tcllib, tk
, miSupport ? true, json_c
, nbdSupport ? !stdenv.isDarwin, libnbd
, textStylingSupport ? true
@ -22,14 +21,17 @@ let
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
in stdenv.mkDerivation rec {
pname = "poke";
version = "2.3";
version = "2.4";
src = fetchurl {
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
sha256 = "sha256-NpDPERbafLOp7GtPcAPiU+JotRAhKiiP04qv7Q68x2Y=";
sha256 = "sha256-hB4oWRfGc4zpgqaTDjDr6t7PsGVaedkYTxb4dqn+bkc=";
};
outputs = [ "out" "dev" "info" "lib" "man" ];
outputs = [ "out" "dev" "info" "lib" ]
# help2man can't cross compile because it runs `poke --help` to
# generate the man page
++ lib.optional (!isCross) "man";
postPatch = ''
patchShebangs .
@ -39,21 +41,28 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [
gettext
help2man
pkg-config
texinfo
] ++ lib.optional guiSupport makeWrapper;
] ++ lib.optionals (!isCross) [
help2man
] ++ lib.optionals guiSupport [
makeWrapper
tcl.tclPackageHook
];
buildInputs = [ boehmgc readline ]
++ lib.optionals guiSupport [ tk tcl.tclPackageHook tcllib ]
++ lib.optionals guiSupport [ tcl tcllib tk ]
++ lib.optional miSupport json_c
++ lib.optional nbdSupport libnbd
++ lib.optional textStylingSupport gettext
++ lib.optional (!isCross) dejagnu;
configureFlags = [
# libpoke depends on $datadir/poke, so we specify the datadir in
# $lib, and later move anything else it doesn't depend on to $out
"--datadir=${placeholder "lib"}/share"
] ++ lib.optionals guiSupport [
"--enable-gui"
"--with-tcl=${tcl}/lib"
"--with-tk=${tk}/lib"
"--with-tkinclude=${tk.dev}/include"
@ -66,6 +75,16 @@ in stdenv.mkDerivation rec {
postInstall = ''
moveToOutput share/emacs "$out"
moveToOutput share/vim "$out"
'';
postFixup = lib.optionalString guiSupport ''
wrapProgram "$out/bin/poke-gui" \
--prefix TCLLIBPATH ' ' "$TCLLIBPATH"
# Prevent tclPackageHook from auto-wrapping all binaries, we only
# need to wrap poke-gui
unset TCLLIBPATH
'';
passthru = {
@ -85,10 +104,11 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "Interactive, extensible editor for binary data";
homepage = "http://www.jemarch.net/poke";
changelog = "https://git.savannah.gnu.org/cgit/poke.git/plain/ChangeLog?h=releases/poke-${version}";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ AndersonTorres kira-bruneau ];
platforms = platforms.unix;
changelog = "https://git.savannah.gnu.org/cgit/poke.git/plain/ChangeLog?h=releases/poke-${version}";
badPlatforms = [ "aarch64-darwin" ]; # Undefined symbols for architecture arm64
};
}

View File

@ -1,4 +1,8 @@
{
"TrueZen-nvim": {
"date": "2022-07-27",
"new": "true-zen-nvim"
},
"compe-tmux": {
"date": "2021-12-21",
"new": "cmp-tmux"

File diff suppressed because it is too large Load Diff

View File

@ -824,6 +824,10 @@ self: super: {
meta.platforms = lib.platforms.all;
});
telescope-media-files-nvim = super.telescope-media-files-nvim.overrideAttrs (old: {
dependencies = with self; [ telescope-nvim popup-nvim plenary-nvim ];
});
telescope-nvim = super.telescope-nvim.overrideAttrs (old: {
dependencies = with self; [ plenary-nvim ];
});
@ -974,7 +978,7 @@ self: super: {
libiconv
];
cargoSha256 = "sha256-9Vr1gpggfAQlMgM/s8j6FTTYFppHql2PQ7cPtg1wNmo=";
cargoSha256 = "sha256-prqS4cx5T+EiilXf3v7ResNBtgst0Kpgvayknf0QDXA=";
};
in
''

View File

@ -614,6 +614,7 @@ https://github.com/nvim-telescope/telescope-fzf-writer.nvim/,,
https://github.com/nvim-telescope/telescope-fzy-native.nvim/,,
https://github.com/nvim-telescope/telescope-github.nvim/,,
https://github.com/gbrlsnchs/telescope-lsp-handlers.nvim/,,
https://github.com/nvim-telescope/telescope-media-files.nvim/,HEAD,
https://github.com/nvim-telescope/telescope-project.nvim/,,
https://github.com/nvim-telescope/telescope-symbols.nvim/,,
https://github.com/nvim-telescope/telescope-ui-select.nvim/,,

View File

@ -34,11 +34,16 @@ let
mktplcRef = {
publisher = "1Password";
name = "op-vscode";
version = "1.0.0";
sha256 = "sha256-ZeKTP3WKjyuR/ryBdJRHXJT+l2gbY4QnWNTsN9+4nOA=";
version = "1.0.1";
sha256 = "sha256-0SsHf1zZgmrb7oIsRU6Xpa3AvR8bSfANz5ZlRogjiS0=";
};
meta = {
license = lib.licenses.mit;
meta = with lib; {
changelog = "https://github.com/1Password/op-vscode/releases";
description = "A VSCode extension that integrates your development workflow with 1Password service";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=1Password.op-vscode";
homepage = "https://github.com/1Password/op-vscode";
license = licenses.mit;
maintainers = with maintainers; [ _2gn ];
};
};

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "pineapple-pictures";
version = "0.6.1";
version = "0.6.2";
src = fetchFromGitHub {
owner = "BLumia";
repo = "pineapple-pictures";
rev = version;
sha256 = "sha256-KTYwe6fS/rUHBbC2B9OdK95mFm3zvgDdGODkg7VQ27M=";
sha256 = "sha256-1fsEHyepmoZfNOFEnW6RQJyccOlQr5LTp8TjRqyXkcw";
};
nativeBuildInputs = [

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "argocd-autopilot";
version = "0.3.9";
version = "0.4.2";
src = fetchFromGitHub {
owner = "argoproj-labs";
repo = "argocd-autopilot";
rev = "v${version}";
sha256 = "sha256-LX/26fOvQYnzCbVuMxsuD/3bdZx/mVD47v8l4DppUPA=";
sha256 = "sha256-xwcETaeoxnfZqW48IJRpJkONuPNuFR5ngUYAMDKWMtk=";
};
vendorSha256 = "sha256-UYTEQ3RvSJB+9zduw0xCDU71Zp54ilZzNucuzTMKEHA=";
vendorSha256 = "sha256-rJj9GFNX9OUMzkdr9D9dzucSZe10iW2LpqybhXD0m6s=";
proxyVendor = true;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "cilium-cli";
version = "0.11.11";
version = "0.12.0";
src = fetchFromGitHub {
owner = "cilium";
repo = pname;
rev = "v${version}";
sha256 = "sha256-IZMtkTKslFvbk/qwfZpFZAV6VUj66JKGFewXH1Ujxbw=";
sha256 = "sha256-/fVPo9aO2UhX/qsyjFUykFz4am7R2USmdvYqhQcT7q8=";
};
vendorSha256 = null;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kn";
version = "1.5.0";
version = "1.6.0";
src = fetchFromGitHub {
owner = "knative";
repo = "client";
rev = "knative-v${version}";
sha256 = "sha256-etENW/zP9xy0pyUT2UoFXrzgkSXrfp8dxl35bD2t/Yc=";
sha256 = "sha256-3qH7L0tOsAnAAPIzTd5MIVMPM/M2SJAkxXfyMijHuRs=";
};
vendorSha256 = null;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "senpai";
version = "unstable-2022-05-10";
version = "unstable-2022-07-25";
src = fetchFromSourcehut {
owner = "~taiite";
repo = "senpai";
rev = "7a9fe74fdfb3f334b97434df0aa74b2b32e3582e";
sha256 = "sha256-uagdJG+YVryzsaZfkg5W2F8mQSc1bpflL77tqMHp1Ck=";
rev = "f13aa044de9d7b8922a12e895f3ff3f86b60e939";
sha256 = "sha256-siQoRgbJIVtBXqrxJzdVABnDgdHqW5FLSJpBrL0iVuU=";
};
vendorSha256 = "sha256-hgojB1D0/SZWLEzJ48EBoT/InYYmqD/1qoTknfk/aTo=";

View File

@ -24,13 +24,13 @@
stdenv.mkDerivation rec {
pname = "clapper";
version = "0.5.1";
version = "0.5.2";
src = fetchFromGitHub {
owner = "Rafostar";
repo = pname;
rev = version;
sha256 = "sha256-o68IdI20gSwWCPI0g/BhUGF5ro6srXMy0JD1EgmY5ck=";
sha256 = "sha256-s+qdTq3/pHHstwr1W3Hs2Zje++iJFHM6hQTFoZD43bY=";
};
nativeBuildInputs = [

View File

@ -1,6 +1,6 @@
{
"commit": "155a57bcfc019c9972a44be54a407d0329dfb436",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/155a57bcfc019c9972a44be54a407d0329dfb436.tar.gz",
"sha256": "17pqq15b936gf8vm1lb1kmnnlmjd61a5bfld9v3cs7ydz764kg8w",
"msg": "Update from Hackage at 2022-07-21T21:13:45Z"
"commit": "c58387b71e19d6dd43bbade8f84d6a44b6418e24",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c58387b71e19d6dd43bbade8f84d6a44b6418e24.tar.gz",
"sha256": "0xdvqn4392l65ns4wm47c8nyp1s7al4i506927dmkzz85m3hvyn0",
"msg": "Update from Hackage at 2022-07-26T16:57:53Z"
}

View File

@ -0,0 +1,381 @@
# Preliminary GHC 9.4.1 expression using the make build system.
# TODO(@sternenseemann): port to hadrian, so we are prepared for 9.6
# where make support will be dropped.
{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
# build-tools
, bootPkgs
, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
, xattr, autoSignDarwinBinariesHook
, bash
, libiconv ? null, ncurses
, glibcLocales ? null
, # GHC can be built with system libffi or a bundled one.
libffi ? null
, useLLVM ? !(stdenv.targetPlatform.isx86
|| stdenv.targetPlatform.isPower
|| stdenv.targetPlatform.isSparc
|| (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
, # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
# build-time dependency too.
buildTargetLlvmPackages, llvmPackages
, # If enabled, GHC will be built with the GPL-free but slightly slower native
# bignum backend instead of the faster but GPLed gmp backend.
enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp)
, gmp
, # If enabled, use -fPIC when compiling static libs.
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
# aarch64 outputs otherwise exceed 2GB limit
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic
, # Whether to build terminfo.
enableTerminfo ? !stdenv.targetPlatform.isWindows
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
(if useLLVM then "perf-cross" else "perf-cross-ncg")
, # Whether to build sphinx documentation.
enableDocs ? (
# Docs disabled for musl and cross because it's a large task to keep
# all `sphinx` dependencies building in those environments.
# `sphinx` pulls in among others:
# Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM.
(stdenv.targetPlatform == stdenv.hostPlatform)
&& !stdenv.hostPlatform.isMusl
)
, enableHaddockProgram ?
# Disabled for cross; see note [HADDOCK_DOCS].
(stdenv.targetPlatform == stdenv.hostPlatform)
, # Whether to disable the large address space allocator
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
disableLargeAddressSpace ? stdenv.targetPlatform.isiOS
}:
assert !enableNativeBignum -> gmp != null;
# Cross cannot currently build the `haddock` program for silly reasons,
# see note [HADDOCK_DOCS].
assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
let
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
inherit (bootPkgs) ghc;
# TODO(@Ericson2314) Make unconditional
targetPrefix = lib.optionalString
(targetPlatform != hostPlatform)
"${targetPlatform.config}-";
buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"}
BUILD_SPHINX_PDF = NO
'' +
# Note [HADDOCK_DOCS]:
# Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock`
# program is built (which we generally always want to have a complete GHC install)
# and whether it is run on the GHC sources to generate hyperlinked source code
# (which is impossible for cross-compilation); see:
# https://gitlab.haskell.org/ghc/ghc/-/issues/20077
# This implies that currently a cross-compiled GHC will never have a `haddock`
# program, so it can never generate haddocks for any packages.
# If this is solved in the future, we'd like to unconditionally
# build the haddock program (removing the `enableHaddockProgram` option).
''
HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
# Build haddocks for boot packages with hyperlinking
EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
'' + lib.optionalString (targetPlatform != hostPlatform) ''
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
CrossCompilePrefix = ${targetPrefix}
'' + lib.optionalString (!enableProfiledLibs) ''
GhcLibWays = "v dyn"
'' +
# -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
# makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
# This solution was described in https://www.tweag.io/blog/2020-09-30-bazel-static-haskell
lib.optionalString enableRelocatedStaticLibs ''
GhcLibHcOpts += -fPIC -fexternal-dynamic-refs
GhcRtsHcOpts += -fPIC -fexternal-dynamic-refs
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
EXTRA_CC_OPTS += -std=gnu99
'';
# Splicer will pull out correct variations
libDeps = platform: lib.optional enableTerminfo ncurses
++ [libffi]
++ lib.optional (!enableNativeBignum) gmp
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
# TODO(@sternenseemann): is buildTarget LLVM unnecessary?
# GHC doesn't seem to have {LLC,OPT}_HOST
toolsForTarget = [
pkgsBuildTarget.targetPackages.stdenv.cc
] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
targetCC = builtins.head toolsForTarget;
# Sometimes we have to dispatch between the bintools wrapper and the unwrapped
# derivation for certain tools depending on the platform.
bintoolsFor = {
# GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
# part of the bintools wrapper (due to codesigning requirements), but not on
# x86_64-darwin.
install_name_tool =
if stdenv.targetPlatform.isAarch64
then targetCC.bintools
else targetCC.bintools.bintools;
# Same goes for strip.
strip =
# TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
then targetCC.bintools
else targetCC.bintools.bintools;
};
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
# see #84670 and #49071 for more background.
useLdGold = targetPlatform.linker == "gold" ||
(targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
variantSuffix = lib.concatStrings [
(lib.optionalString stdenv.hostPlatform.isMusl "-musl")
(lib.optionalString enableNativeBignum "-native-bignum")
];
in
# C compiler, bintools and LLVM are used at build time, but will also leak into
# the resulting GHC's settings file and used at runtime. This means that we are
# currently only able to build GHC if hostPlatform == buildPlatform.
assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
stdenv.mkDerivation (rec {
version = "9.4.0.20220721";
pname = "${targetPrefix}ghc${variantSuffix}";
src = fetchurl {
url = "https://downloads.haskell.org/ghc/9.4.1-rc1/ghc-${version}-src.tar.xz";
sha256 = "bca8c52f76d8747a66291181de2de7bdf9ff80093808fe39bf5cbff0f116c426";
};
enableParallelBuilding = true;
outputs = [ "out" "doc" ];
patches = [
# fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";
sha256 = "sha256-8w8QUCsODaTvknCDGgTfFNZa8ZmvIKaKS+2ZJZ9foYk=";
extraPrefix = "utils/haddock/";
stripLen = 1;
})
];
postPatch = "patchShebangs .";
# GHC needs the locale configured during the Haddock phase.
LANG = "en_US.UTF-8";
# GHC is a bit confused on its cross terminology.
# TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
export "''${env#TARGET_}=''${!env}"
done
# GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools.
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++"
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
'' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
'' + lib.optionalString useLLVM ''
export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
'' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
# LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
'' + ''
echo -n "${buildMK}" > mk/build.mk
# GHC 9.4.1-rc1 tarball is not properly prepared, also the boot script has been renamed
# https://gitlab.haskell.org/ghc/ghc/-/issues/21626#note_444654
# TODO(@sternenseemann): make source-dist rules include all boot-generated files
./boot.source
# Too restrictive upper bound on Cabal the make build system chokes on
# XXX(@sternenseemann): this should be upstreamed
substituteInPlace utils/ghc-cabal/ghc-cabal.cabal --replace "3.8" "3.9"
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") ''
export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
'' + lib.optionalString (!stdenv.isDarwin) ''
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
'' + lib.optionalString stdenv.isDarwin ''
export NIX_LDFLAGS+=" -no_dtrace_dof"
# GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7
export XATTR=${lib.getBin xattr}/bin/xattr
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
'' + lib.optionalString targetPlatform.isMusl ''
echo "patching llvm-targets for musl targets..."
echo "Cloning these existing '*-linux-gnu*' targets:"
grep linux-gnu llvm-targets | sed 's/^/ /'
echo "(go go gadget sed)"
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
echo "llvm-targets now contains these '*-linux-musl*' targets:"
grep linux-musl llvm-targets | sed 's/^/ /'
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
for x in configure aclocal.m4; do
substituteInPlace $x \
--replace '*-android*|*-gnueabi*)' \
'*-android*|*-gnueabi*|*-musleabi*)'
done
'';
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ]
++ lib.optional (targetPlatform != hostPlatform) "target";
# `--with` flags for libraries needed for RTS linker
configureFlags = [
"--datadir=$doc/share/doc/ghc"
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ lib.optionals (libffi != null) [
"--with-system-libffi"
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
"--with-iconv-includes=${libiconv}/include"
"--with-iconv-libraries=${libiconv}/lib"
] ++ lib.optionals (targetPlatform != hostPlatform) [
"--enable-bootstrap-with-devel-snapshot"
] ++ lib.optionals useLdGold [
"CFLAGS=-fuse-ld=gold"
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ lib.optionals (disableLargeAddressSpace) [
"--disable-large-address-space"
];
# Make sure we never relax`$PATH` and hooks support for compatibility.
strictDeps = true;
# Dont add -liconv to LDFLAGS automatically so that GHC will add it itself.
dontAddExtraLibs = true;
nativeBuildInputs = [
perl autoconf automake m4 python3
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
autoSignDarwinBinariesHook
] ++ lib.optionals enableDocs [
sphinx
];
# For building runtime libs
depsBuildTarget = toolsForTarget;
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
checkTarget = "test";
hardeningDisable =
[ "format" ]
# In nixpkgs, musl based builds currently enable `pie` hardening by default
# (see `defaultHardeningFlags` in `make-derivation.nix`).
# But GHC cannot currently produce outputs that are ready for `-pie` linking.
# Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
# See:
# * https://github.com/NixOS/nixpkgs/issues/129247
# * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
++ lib.optional stdenv.targetPlatform.isMusl "pie";
# big-parallel allows us to build with more than 2 cores on
# Hydra which already warrants a significant speedup
requiredSystemFeatures = [ "big-parallel" ];
postInstall = ''
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
'';
passthru = {
inherit bootPkgs targetPrefix;
inherit llvmPackages;
inherit enableShared;
# This is used by the haskell builder to query
# the presence of the haddock program.
hasHaddock = enableHaddockProgram;
# Our Cabal compiler name
haskellCompilerName = "ghc-${version}";
};
meta = {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = with lib.maintainers; [
guibou
] ++ lib.teams.haskell.members;
timeout = 24 * 3600;
inherit (ghc.meta) license platforms;
};
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
dontStrip = true;
dontPatchELF = true;
noAuditTmpdir = true;
})

View File

@ -8,10 +8,10 @@
}:
mkDerivation {
pname = "cabal2nix";
version = "unstable-2022-07-17";
version = "unstable-2022-07-22";
src = fetchzip {
url = "https://github.com/NixOS/cabal2nix/archive/6c6fa480dd535a8a6909b60e1130a6b5bfc2a2c4.tar.gz";
sha256 = "19dagxhj1aflhf19xab8yss5mia6kfpghn4h0na8zshqab8xxgrd";
url = "https://github.com/NixOS/cabal2nix/archive/e00ab24821be85cb025432f8e9c4ff56dbb00a81.tar.gz";
sha256 = "11a5l0fdj67bpqv30af4v5zxr3c7n9p81pfs4c0d3w65bmr9sa1y";
};
isLibrary = true;
isExecutable = true;

View File

@ -99,7 +99,7 @@ self: super: {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "0pr2fnaq3fa6lcly39xssl89v65h0wa26ikv5g30fm8y6z5rkqqd";
sha256 = "0p9qd7yasdji5kwxn4d0hrv9hnxbzfsczknldh8jav3ynhg8k6c9";
# delete android and Android directories which cause issues on
# darwin (case insensitive directory). Since we don't need them
# during the build process, we can delete it to prevent a hash
@ -2404,26 +2404,13 @@ self: super: {
# https://github.com/system-f/validation/issues/57
validation = doJailbreak super.validation;
# aws upstream seems to lack the necessary maintenance at the moment, luckily
# Joey Hess seems to have already looked into building git-annex with aeson 2.0
# https://github.com/aristidb/aws/issues/275
aws = overrideCabal (drv: {
patches = drv.patches or [] ++ [
(fetchpatch {
name = "aws-aeson-2.0-compat.patch";
url = "https://github.com/aristidb/aws/pull/277/commits/7af7586c5d244d07f77d49e5fdc739e6e8e54816.patch";
sha256 = "1bsiyk1k671rwlyflka2whq972h72cwscrxkr9n2wzhxp70ap3g3";
excludes = [ "aws.cabal" ];
})
];
# needs aws credentials, jailbreak for base16-bytestring
doCheck = false;
jailbreak = true;
}) super.aws;
# 2022-03-16: strict upper bounds https://github.com/monadfix/shower/issues/18
shower = doJailbreak (dontCheck super.shower);
# Doesn't compile with HTF 0.15
# https://github.com/andrewufrank/uniform-error/issues/1
uniform-error = dontCheck super.uniform-error;
# The shipped Setup.hs file is broken.
csv = overrideCabal (drv: { preCompileBuildDriver = "rm Setup.hs"; }) super.csv;

View File

@ -0,0 +1,51 @@
{ pkgs, haskellLib }:
let
inherit (pkgs) fetchpatch lib;
inherit (lib) throwIfNot versionOlder;
in
self: super: {
llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
# Disable GHC core libraries.
array = null;
base = null;
binary = null;
bytestring = null;
Cabal = null;
Cabal-syntax = null;
containers = null;
deepseq = null;
directory = null;
exceptions = null;
filepath = null;
ghc-bignum = null;
ghc-boot = null;
ghc-boot-th = null;
ghc-compact = null;
ghc-heap = null;
ghc-prim = null;
ghci = null;
haskeline = null;
hpc = null;
integer-gmp = null;
libiserv = null;
mtl = null;
parsec = null;
pretty = null;
process = null;
rts = null;
stm = null;
system-cxx-std-lib = null;
template-haskell = null;
# GHC only builds terminfo if it is a native compiler
terminfo = if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then null else self.terminfo_0_4_1_5;
text = null;
time = null;
transformers = null;
unix = null;
# GHC only bundles the xhtml library if haddock is enabled, check if this is
# still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
}

View File

@ -543,6 +543,7 @@ broken-packages:
- cabalgraph
- cabal-graphdeps
- cabal-helper
- cabal-hoogle
- Cabal-ide-backend
- cabal-info
- cabal-install-bundle
@ -1259,6 +1260,7 @@ broken-packages:
- ebnf-bff
- eccrypto
- ecma262
- ecta
- ecu
- eddie
- ede
@ -1304,6 +1306,7 @@ broken-packages:
- emailaddress
- email-header
- email-postmark
- embed-config
- embla
- emgm
- Emping
@ -1502,7 +1505,6 @@ broken-packages:
- fix-symbols-gitit
- fizzbuzz
- fizzbuzz-as-a-service
- flac
- flaccuraterip
- flamethrower
- flamingra
@ -2867,6 +2869,7 @@ broken-packages:
- koellner-phonetic
- koneko
- Konf
- konnakol
- kontra-config
- koofr-client
- korea-holidays
@ -3537,7 +3540,6 @@ broken-packages:
- newtype-th
- next-ref
- nextstep-plist
- nfc
- NGrams
- niagra
- nibblestring
@ -4015,6 +4017,7 @@ broken-packages:
- postgres-embedded
- PostgreSQL
- postgresql-lo-stream
- postgresql-ltree
- postgresql-named
- postgresql-query
- postgresql-resilient
@ -5492,6 +5495,7 @@ broken-packages:
- validated-types
- Validation
- validations
- validity-network-uri
- valid-names
- value-supply
- vampire

View File

@ -165,6 +165,8 @@ package-maintainers:
- spago
- stack
- termonad
centromere:
- nfc
dalpd:
- ghc-vis
- svgcairo

View File

@ -304,6 +304,7 @@ dont-distribute-packages:
- PlslTools
- Printf-TH
- ProbabilityMonads
- PropaFP
- Pugs
- Pup-Events
- Pup-Events-Demo
@ -844,6 +845,7 @@ dont-distribute-packages:
- bricks-rendering
- bricks-syntax
- bronyradiogermany-streaming
- btc-lsp
- btree
- buchhaltung
- buildbox-tools
@ -1316,6 +1318,7 @@ dont-distribute-packages:
- ekg-carbon
- ekg-cloudwatch
- ekg-wai
- electrs-client
- elerea-examples
- elliptic-curve
- elsa
@ -1452,7 +1455,6 @@ dont-distribute-packages:
- fixed-point-vector-space
- fixed-precision
- fixhs
- flac-picture
- flashblast
- flatbuffers
- flexiwrap
@ -1550,6 +1552,7 @@ dont-distribute-packages:
- geniconvert
- geniserver
- genvalidity-mergeful
- genvalidity-network-uri
- genvalidity-sydtest
- genvalidity-sydtest-aeson
- genvalidity-sydtest-hashable
@ -3120,6 +3123,7 @@ dont-distribute-packages:
- poseidon
- poseidon-postgis
- postgresql-pure
- postgresql-simple-ltree
- postgresql-simple-queue
- postgresql-simple-typed
- postgresql-tx-query
@ -3194,6 +3198,7 @@ dont-distribute-packages:
- pvd
- qd-vec
- qhs
- qhull
- qr-imager
- qr-repa
- qtah-examples

View File

@ -948,6 +948,10 @@ self: super: builtins.intersectAttrs super {
] ++ (drv.patches or []);
}) super.graphviz;
# Test suite requires AWS access which requires both a network
# connection and payment.
aws = dontCheck super.aws;
# Test case tries to contact the network
http-api-data-qq = overrideCabal (drv: {
testFlags = [
@ -973,6 +977,13 @@ self: super: builtins.intersectAttrs super {
'';
}) super.jacinda;
nfc = overrideCabal (drv: {
isExecutable = true;
executableHaskellDepends = with self; drv.executableHaskellDepends or [] ++ [ base base16-bytestring bytestring ];
configureFlags = drv.configureFlags or [] ++ [ "-fbuild-examples" ];
enableSeparateBinOutput = true;
}) super.nfc;
# haskell-language-server plugins all use the same test harness so we give them what we want in this loop.
} // pkgs.lib.mapAttrs
(_: overrideCabal (drv: {

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
{ lib, stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "cmark-gfm";
version = "0.29.0.gfm.3";
version = "0.29.0.gfm.4";
src = fetchFromGitHub {
owner = "github";
repo = "cmark-gfm";
rev = version;
sha256 = "sha256-V3XegSjqKLCMpfnoYHr9/r5fSC2CC7A2jXkAcHUt7eA=";
sha256 = "sha256-touFLrxVQvX75JXYLADq84yIuQ1kl43fVUvZ4qGYoMM=";
};
nativeBuildInputs = [ cmake ];

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "just";
version = "1.2.0";
version = "1.3.0";
src = fetchFromGitHub {
owner = "casey";
repo = pname;
rev = version;
sha256 = "sha256-b0a5TaB0muojqLCxTVvD95zgGp7gz72OvxfK+QtZV8k=";
sha256 = "sha256-XtX71Nd+xJmBG3MfLdEMK/JWLS8p8tOPN3RAQMMi4vU=";
};
cargoSha256 = "sha256-ka5Np7YxfYRL42ipClD9xWTYA2vynDjQqy/6IsP5Ejs=";
cargoSha256 = "sha256-yMRoLgbX6JyJeO6hG5+iX8jAY5YElXF/FCnO06O3bo4=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];

View File

@ -18,13 +18,13 @@
python3Packages.buildPythonApplication rec {
pname = "grapejuice";
version = "5.1.1";
version = "5.2.2";
src = fetchFromGitLab {
owner = "BrinkerVII";
repo = "grapejuice";
rev = "v${version}";
sha256 = "sha256-31pxQtKw5sLGnnNdboF7AAIFqsan5pXKHIHtKq/ErRE=";
sha256 = "sha256-YEAYoZF1Lf0ykB13cuRf5sOR1HIxwdcibyJLgP3g4Jk=";
};
nativeBuildInputs = [

View File

@ -32,7 +32,7 @@ let
extraMeta = {
branch = lib.versions.majorMinor version + "/master";
maintainers = with lib.maintainers; [ andresilva pedrohlc psydvl ];
maintainers = with lib.maintainers; [ andresilva pedrohlc ];
description = "Built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads." +
lib.optionalString isLqx " (Same as linux_zen but less aggressive release schedule)";
};

View File

@ -66,7 +66,7 @@ in rec {
};
unifi7 = generic {
version = "7.1.66";
sha256 = "sha256-lLpudaDUWdUM3HKn8yLJJh2XrqfQv7QYwYTV21iFZ7k=";
version = "7.1.68";
sha256 = "sha256-N12/v1uUPBpU/lXOvj7AjSKo/CjWTjGr9SMIiE/ldF8=";
};
}

View File

@ -0,0 +1,37 @@
{ stdenv, buildGoModule, fetchFromGitHub, lib }:
buildGoModule rec {
pname = "kics";
version = "1.5.12";
src = fetchFromGitHub {
owner = "Checkmarx";
repo = "kics";
rev = "v${version}";
sha256 = "sha256-jHspStyjq5T9jzYDRYaf2gOI4F/X+h4nDn0PFUOHoBY=";
};
vendorSha256 = "sha256-q5NuuP04kOoLVj210s17fIW2cxrsC/tAyET8YYGai0M=";
subPackages = [ "cmd/console" ];
postInstall = ''
mv $out/bin/console $out/bin/kics
'';
ldflags = [
"-s" "-w"
"-X github.com/Checkmarx/kics/internal/constant.SCMCommits=${version}"
"-X github.com/Checkmarx/kics/internal/constants.Version=${version}"
];
meta = with lib; {
description = ''
Find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development
cycle of your infrastructure-as-code with KICS by Checkmarx.
'';
homepage = "https://github.com/Checkmarx/kics";
license = licenses.asl20;
maintainers = with maintainers; [ patryk4815 ];
};
}

View File

@ -1,34 +1,42 @@
{ lib, stdenv, fetchFromGitHub, libpng, rlottie, zlib }:
{ lib
, stdenv
, fetchFromGitHub
, cmake
, libpng
, rlottie
, giflib
}:
stdenv.mkDerivation rec {
pname = "LottieConverter";
version = "0.1.1";
stdenv.mkDerivation (finalAttrs: {
pname = "lottieconverter";
version = "0.2";
src = fetchFromGitHub {
owner = "sot-tech";
repo = pname;
rev = "r${version}";
hash = "sha256-lAGzh6B2js2zDuN+1U8CZnse09RJGZRXbtmsheGKuYU=";
repo = finalAttrs.pname;
rev = "r${finalAttrs.version}";
hash = "sha256-oCFQsOQbWzmzClaTOeuEtGo7uXoKYtaJuSLLgqAQP1M=";
};
buildInputs = [ libpng rlottie zlib ];
makeFlags = [ "CONF=Release" ];
nativeBuildInputs = [ cmake ];
buildInputs = [ libpng rlottie giflib ];
cmakeFlags = [
"-DSYSTEM_RL=1"
"-DSYSTEM_GL=1"
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -v dist/Release/GNU-Linux/lottieconverter $out/bin/
install -Dm755 lottieconverter "$out/bin/lottieconverter"
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/sot-tech/LottieConverter/";
description = "Lottie converter utility";
license = licenses.lgpl21Plus;
license = licenses.bsd3;
platforms = platforms.all;
maintainers = with maintainers; [ CRTified ];
broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/lottieconverter.x86_64-darwin
maintainers = with maintainers; [ CRTified nickcao ];
};
}
})

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "bgpq4";
version = "1.4";
version = "1.5";
src = fetchFromGitHub {
owner = "bgp";
repo = pname;
rev = version;
sha256 = "sha256-EFxINRFrcNXGtXpNqvBIN6pE1kG3OdeDIHYOsG2celI=";
sha256 = "sha256-yIggx2rSi2/AVw5W9fvKQORD4TaK05TeQtErVEmcHUw=";
};
nativeBuildInputs = [

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "frp";
version = "0.43.0";
version = "0.44.0";
src = fetchFromGitHub {
owner = "fatedier";
repo = pname;
rev = "v${version}";
sha256 = "sha256-ked1emPx9pOz54s4ViutY41s7sQG+IjX/eZJkX15IGo=";
sha256 = "sha256-DH+MOMsDdW+GGrxhkXhC+5D+2IsAZwByd0FjNT+i+og=";
};
vendorSha256 = "sha256-5ljUbEvynNo1AxGpJq9B0bTFgzVfgVZbsqXcPBERLMI=";

View File

@ -0,0 +1,24 @@
{ stdenv, lib, fetchFromGitHub, rustPlatform, CoreServices, SystemConfiguration }:
rustPlatform.buildRustPackage rec {
pname = "deploy-rs-unstable";
version = "2022-05-26";
src = fetchFromGitHub {
owner = "serokell";
repo = "deploy-rs";
rev = "184349d8149436748986d1bdba087e4149e9c160";
sha256 = "sha256-kJ0ENmnQJ4qL2FeYKZba9kvv1KmIuB3NVpBwMeI7AJQ=";
};
cargoHash = "sha256-Ocb1kwNDfODGceCaCJ16CTGGTxIQacgHQ3I6HIR/EUo=";
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices SystemConfiguration ];
meta = with lib; {
description = " A simple multi-profile Nix-flake deploy tool. ";
homepage = "https://github.com/serokell/deploy-rs";
license = licenses.mpl20;
maintainers = [ maintainers.teutat3s ];
};
}

View File

@ -1,13 +1,13 @@
{ lib, fetchFromGitHub, fetchzip }:
rec {
version = "0.103.0";
version = "0.106.0";
src = fetchFromGitHub {
owner = "returntocorp";
repo = "semgrep";
rev = "v${version}";
sha256 = "sha256-vk6GBgLsXRLAVu60xW4WWWhhi4b1WLceTxh/TeISIUg=";
sha256 = "sha256-/L8w8imvfjO3ICe0FBhfVrTivK58/9Y+j9Hc71tlpjA=";
};
# submodule dependencies
@ -17,22 +17,22 @@ rec {
langsSrc = fetchFromGitHub {
owner = "returntocorp";
repo = "semgrep-langs";
rev = "78e518dad1ce2a7c76854c944245434bd8426439";
sha256 = "sha256-t9F/OzzT6FI9G4Fxz0lUjz6TVrJlenusQNJnFpiKaQs=";
rev = "98e4aacb0d58539b50a642a28d916a5d749e2a42";
sha256 = "sha256-7w+8vLmzqBjbeV+a4Br7kLQ2bJv3aZJw8cB0R9d/D+E=";
};
interfacesSrc = fetchFromGitHub {
owner = "returntocorp";
repo = "semgrep-interfaces";
rev = "a64a45034ea428ecbe9da6bd849a4f1cfd23cdd2";
sha256 = "sha256-eatuyA5xyfZVHCmHvZIzQK2c5eEWUEZd9LumJQtk8+s=";
rev = "8bc79b2bca62c051e46a33fb65751357a71b87b6";
sha256 = "sha256-k/rsTGYqHnw/4bsmeg7pQ/ckNglvuA0yhuz+OayXCdw=";
};
# fetch pre-built semgrep-core since the ocaml build is complex and relies on
# the opam package manager at some point
coreRelease = fetchzip {
url = "https://github.com/returntocorp/semgrep/releases/download/v${version}/semgrep-v${version}-ubuntu-16.04.tgz";
sha256 = "sha256-L3NbiVYmgJim7H4W1cr75WOItSiHT1YIkUEefuaCYlY=";
sha256 = "sha256-ARf776uOJkCBGsJI8ul3IDWI24vFQxs2jlGEA6uXG+o=";
};
meta = with lib; {

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "hck";
version = "0.7.1";
version = "0.7.5";
src = fetchFromGitHub {
owner = "sstadick";
repo = pname;
rev = "v${version}";
sha256 = "sha256-6PXhFOXWplj7yEyn7hOQSPS2YDGc1nxTs6wRseRvEVk=";
sha256 = "sha256-29uxcbqAnWCdxKqVdrMVtorXvSLUC+jlt4YwE19Gh+A=";
};
cargoSha256 = "sha256-VAtvc8K4282twB1MRY72+dCky3JmrTRjOPx1Ft7Oqt8=";
cargoSha256 = "sha256-VHuzv6Zq83byXDEEyYDtlaPC4DZ3GNJaJfO0ACrrqO8=";
nativeBuildInputs = [ cmake ];

View File

@ -5696,6 +5696,8 @@ with pkgs;
ssh = openssh;
};
kics = callPackage ../tools/admin/kics { };
kramdown-asciidoc = callPackage ../tools/typesetting/kramdown-asciidoc { };
lychee = callPackage ../tools/networking/lychee { };
@ -34697,6 +34699,10 @@ with pkgs;
dell-530cdn = callPackage ../misc/drivers/dell-530cdn {};
deploy-rs = callPackage ../tools/package-management/deploy-rs {
inherit (darwin.apple_sdk.frameworks) CoreServices SystemConfiguration;
};
dockutil = callPackage ../os-specific/darwin/dockutil { };
eiciel = callPackage ../tools/filesystems/eiciel { };

View File

@ -16,12 +16,14 @@ let
"native-bignum"
"ghc902"
"ghc923"
"ghc941"
"ghcHEAD"
];
nativeBignumIncludes = [
"ghc902"
"ghc923"
"ghc941"
"ghcHEAD"
];
@ -153,6 +155,21 @@ in {
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
llvmPackages = pkgs.llvmPackages_12;
};
ghc941 = callPackage ../development/compilers/ghc/9.4.1.nix {
bootPkgs =
# TODO(@sternenseemann): Package 9.0.2 bindist or wait for upstream fix
# Need to use 902 due to
# https://gitlab.haskell.org/ghc/ghc/-/issues/21914
packages.ghc902;
inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved.
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
# Support range >= 10 && < 14
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
llvmPackages = pkgs.llvmPackages_12;
};
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
bootPkgs =
if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
@ -265,6 +282,11 @@ in {
ghc = bh.compiler.ghc923;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
};
ghc941 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc941;
ghc = bh.compiler.ghc941;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
};
ghcHEAD = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghcHEAD;
ghc = bh.compiler.ghcHEAD;