Merge master into haskell-updates
This commit is contained in:
commit
dc29b17413
|
@ -6540,6 +6540,12 @@
|
|||
githubId = 705123;
|
||||
name = "Jan Tojnar";
|
||||
};
|
||||
jtrees = {
|
||||
email = "me@jtrees.io";
|
||||
github = "jtrees";
|
||||
githubId = 5802758;
|
||||
name = "Joshua Trees";
|
||||
};
|
||||
juaningan = {
|
||||
email = "juaningan@gmail.com";
|
||||
github = "uningan";
|
||||
|
|
|
@ -183,6 +183,14 @@
|
|||
<link xlink:href="options.html#opt-services.hadoop.hbase.enable">services.hadoop.hbase</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/messagebird/sachet/">Sachet</link>,
|
||||
an SMS alerting tool for the Prometheus Alertmanager.
|
||||
Available as
|
||||
<link linkend="opt-services.prometheus.sachet.enable">services.prometheus.sachet</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/leetronics/infnoise">infnoise</link>,
|
||||
|
|
|
@ -68,6 +68,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [HBase cluster](https://hbase.apache.org/), a distributed, scalable, big data store. Available as [services.hadoop.hbase](options.html#opt-services.hadoop.hbase.enable).
|
||||
|
||||
- [Sachet](https://github.com/messagebird/sachet/), an SMS alerting tool for the Prometheus Alertmanager. Available as [services.prometheus.sachet](#opt-services.prometheus.sachet.enable).
|
||||
|
||||
- [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
|
||||
Available as [services.infnoise](options.html#opt-services.infnoise.enable).
|
||||
|
||||
|
|
|
@ -151,7 +151,7 @@ def p_manpage(md):
|
|||
md.inline.rules.append('manpage')
|
||||
|
||||
def p_admonition(md):
|
||||
ADMONITION_PATTERN = re.compile(r'^::: \{([^\n]*?)\}\n(.*?)^:::\n', flags=re.MULTILINE|re.DOTALL)
|
||||
ADMONITION_PATTERN = re.compile(r'^::: \{([^\n]*?)\}\n(.*?)^:::$\n*', flags=re.MULTILINE|re.DOTALL)
|
||||
def parse(self, m, state):
|
||||
return {
|
||||
'type': 'admonition',
|
||||
|
|
|
@ -35,7 +35,7 @@ in
|
|||
|
||||
networking.hostFiles = lib.mkOption {
|
||||
type = types.listOf types.path;
|
||||
defaultText = literalDocBook "Hosts from <option>networking.hosts</option> and <option>networking.extraHosts</option>";
|
||||
defaultText = literalMD "Hosts from {option}`networking.hosts` and {option}`networking.extraHosts`";
|
||||
example = literalExpression ''[ "''${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]'';
|
||||
description = lib.mdDoc ''
|
||||
Files that should be concatenated together to form {file}`/etc/hosts`.
|
||||
|
|
|
@ -78,10 +78,11 @@ in
|
|||
defaultPackages = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = defaultPackages;
|
||||
defaultText = literalDocBook ''
|
||||
these packages, with their <literal>meta.priority</literal> numerically increased
|
||||
defaultText = literalMD ''
|
||||
these packages, with their `meta.priority` numerically increased
|
||||
(thus lowering their installation priority):
|
||||
<programlisting>${defaultPackagesText}</programlisting>
|
||||
|
||||
${defaultPackagesText}
|
||||
'';
|
||||
example = [];
|
||||
description = lib.mdDoc ''
|
||||
|
|
|
@ -17,35 +17,35 @@ let
|
|||
]);
|
||||
|
||||
passwordDescription = ''
|
||||
The options <option>hashedPassword</option>,
|
||||
<option>password</option> and <option>passwordFile</option>
|
||||
The options {option}`hashedPassword`,
|
||||
{option}`password` and {option}`passwordFile`
|
||||
controls what password is set for the user.
|
||||
<option>hashedPassword</option> overrides both
|
||||
<option>password</option> and <option>passwordFile</option>.
|
||||
<option>password</option> overrides <option>passwordFile</option>.
|
||||
{option}`hashedPassword` overrides both
|
||||
{option}`password` and {option}`passwordFile`.
|
||||
{option}`password` overrides {option}`passwordFile`.
|
||||
If none of these three options are set, no password is assigned to
|
||||
the user, and the user will not be able to do password logins.
|
||||
If the option <option>users.mutableUsers</option> is true, the
|
||||
If the option {option}`users.mutableUsers` is true, the
|
||||
password defined in one of the three options will only be set when
|
||||
the user is created for the first time. After that, you are free to
|
||||
change the password with the ordinary user management commands. If
|
||||
<option>users.mutableUsers</option> is false, you cannot change
|
||||
{option}`users.mutableUsers` is false, you cannot change
|
||||
user passwords, they will always be set according to the password
|
||||
options.
|
||||
'';
|
||||
|
||||
hashedPasswordDescription = ''
|
||||
To generate a hashed password run <literal>mkpasswd -m sha-512</literal>.
|
||||
To generate a hashed password run `mkpasswd -m sha-512`.
|
||||
|
||||
If set to an empty string (<literal>""</literal>), this user will
|
||||
If set to an empty string (`""`), this user will
|
||||
be able to log in without being asked for a password (but not via remote
|
||||
services such as SSH, or indirectly via <command>su</command> or
|
||||
<command>sudo</command>). This should only be used for e.g. bootable
|
||||
services such as SSH, or indirectly via {command}`su` or
|
||||
{command}`sudo`). This should only be used for e.g. bootable
|
||||
live systems. Note: this is different from setting an empty password,
|
||||
which can be achieved using <option>users.users.<name?>.password</option>.
|
||||
which can be achieved using {option}`users.users.<name?>.password`.
|
||||
|
||||
If set to <literal>null</literal> (default) this user will not
|
||||
be able to log in using a password (i.e. via <command>login</command>
|
||||
If set to `null` (default) this user will not
|
||||
be able to log in using a password (i.e. via {command}`login`
|
||||
command).
|
||||
'';
|
||||
|
||||
|
@ -234,7 +234,7 @@ let
|
|||
hashedPassword = mkOption {
|
||||
type = with types; nullOr (passwdEntry str);
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Specifies the hashed password for the user.
|
||||
${passwordDescription}
|
||||
${hashedPasswordDescription}
|
||||
|
@ -244,7 +244,7 @@ let
|
|||
password = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Specifies the (clear text) password for the user.
|
||||
Warning: do not set confidential information here
|
||||
because it is world-readable in the Nix store. This option
|
||||
|
@ -256,11 +256,11 @@ let
|
|||
passwordFile = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The full path to a file that contains the user's password. The password
|
||||
file is read on each system activation. The file should contain
|
||||
exactly one line, which should be the password in an encrypted form
|
||||
that is suitable for the <literal>chpasswd -e</literal> command.
|
||||
that is suitable for the `chpasswd -e` command.
|
||||
${passwordDescription}
|
||||
'';
|
||||
};
|
||||
|
@ -268,13 +268,13 @@ let
|
|||
initialHashedPassword = mkOption {
|
||||
type = with types; nullOr (passwdEntry str);
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Specifies the initial hashed password for the user, i.e. the
|
||||
hashed password assigned if the user does not already
|
||||
exist. If <option>users.mutableUsers</option> is true, the
|
||||
exist. If {option}`users.mutableUsers` is true, the
|
||||
password can be changed subsequently using the
|
||||
<command>passwd</command> command. Otherwise, it's
|
||||
equivalent to setting the <option>hashedPassword</option> option.
|
||||
{command}`passwd` command. Otherwise, it's
|
||||
equivalent to setting the {option}`hashedPassword` option.
|
||||
|
||||
${hashedPasswordDescription}
|
||||
'';
|
||||
|
@ -458,25 +458,25 @@ in {
|
|||
users.mutableUsers = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
If set to <literal>true</literal>, you are free to add new users and groups to the system
|
||||
with the ordinary <literal>useradd</literal> and
|
||||
<literal>groupadd</literal> commands. On system activation, the
|
||||
existing contents of the <literal>/etc/passwd</literal> and
|
||||
<literal>/etc/group</literal> files will be merged with the
|
||||
contents generated from the <literal>users.users</literal> and
|
||||
<literal>users.groups</literal> options.
|
||||
description = lib.mdDoc ''
|
||||
If set to `true`, you are free to add new users and groups to the system
|
||||
with the ordinary `useradd` and
|
||||
`groupadd` commands. On system activation, the
|
||||
existing contents of the `/etc/passwd` and
|
||||
`/etc/group` files will be merged with the
|
||||
contents generated from the `users.users` and
|
||||
`users.groups` options.
|
||||
The initial password for a user will be set
|
||||
according to <literal>users.users</literal>, but existing passwords
|
||||
according to `users.users`, but existing passwords
|
||||
will not be changed.
|
||||
|
||||
<warning><para>
|
||||
If set to <literal>false</literal>, the contents of the user and
|
||||
::: {.warning}
|
||||
If set to `false`, the contents of the user and
|
||||
group files will simply be replaced on system activation. This also
|
||||
holds for the user passwords; all changed
|
||||
passwords will be reset according to the
|
||||
<literal>users.users</literal> configuration on activation.
|
||||
</para></warning>
|
||||
`users.users` configuration on activation.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -183,8 +183,8 @@ in
|
|||
pruneNames = mkOption {
|
||||
type = listOf str;
|
||||
default = lib.optionals (!isFindutils) [ ".bzr" ".cache" ".git" ".hg" ".svn" ];
|
||||
defaultText = literalDocBook ''
|
||||
<literal>[ ".bzr" ".cache" ".git" ".hg" ".svn" ]</literal>, if
|
||||
defaultText = literalMD ''
|
||||
`[ ".bzr" ".cache" ".git" ".hg" ".svn" ]`, if
|
||||
supported by the locate implementation (i.e. mlocate or plocate).
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
|
|
|
@ -692,6 +692,7 @@
|
|||
./services/monitoring/prometheus/alertmanager.nix
|
||||
./services/monitoring/prometheus/exporters.nix
|
||||
./services/monitoring/prometheus/pushgateway.nix
|
||||
./services/monitoring/prometheus/sachet.nix
|
||||
./services/monitoring/prometheus/xmpp-alerts.nix
|
||||
./services/monitoring/riemann.nix
|
||||
./services/monitoring/riemann-dash.nix
|
||||
|
|
|
@ -71,7 +71,7 @@ in
|
|||
type = types.nullOr (types.enum pkgs.pinentry.flavors);
|
||||
example = "gnome3";
|
||||
default = defaultPinentryFlavor;
|
||||
defaultText = literalDocBook ''matching the configured desktop environment'';
|
||||
defaultText = literalMD ''matching the configured desktop environment'';
|
||||
description = lib.mdDoc ''
|
||||
Which pinentry interface to use. If not null, the path to the
|
||||
pinentry binary will be passed to gpg-agent via commandline and
|
||||
|
|
|
@ -128,9 +128,9 @@ in {
|
|||
mpdCfg.credentials).passwordFile
|
||||
else
|
||||
null;
|
||||
defaultText = literalDocBook ''
|
||||
defaultText = literalMD ''
|
||||
The first password file with read access configured for MPD when using a local instance,
|
||||
otherwise <literal>null</literal>.
|
||||
otherwise `null`.
|
||||
'';
|
||||
type = types.nullOr types.str;
|
||||
description = lib.mdDoc ''
|
||||
|
|
|
@ -23,9 +23,9 @@ in {
|
|||
take 3 (splitString "." config.services.kubernetes.apiserver.serviceClusterIpRange
|
||||
))
|
||||
) + ".254";
|
||||
defaultText = literalDocBook ''
|
||||
The <literal>x.y.z.254</literal> IP of
|
||||
<literal>config.${options.services.kubernetes.apiserver.serviceClusterIpRange}</literal>.
|
||||
defaultText = literalMD ''
|
||||
The `x.y.z.254` IP of
|
||||
`config.${options.services.kubernetes.apiserver.serviceClusterIpRange}`.
|
||||
'';
|
||||
type = types.str;
|
||||
};
|
||||
|
|
|
@ -40,7 +40,7 @@ let
|
|||
key = mkOption {
|
||||
description = lib.mdDoc "Key of taint.";
|
||||
default = name;
|
||||
defaultText = literalDocBook "Name of this submodule.";
|
||||
defaultText = literalMD "Name of this submodule.";
|
||||
type = str;
|
||||
};
|
||||
value = mkOption {
|
||||
|
|
|
@ -281,9 +281,9 @@ in
|
|||
type = types.path;
|
||||
internal = true;
|
||||
default = etcSlurm;
|
||||
defaultText = literalDocBook ''
|
||||
defaultText = literalMD ''
|
||||
Directory created from generated config files and
|
||||
<literal>config.${opt.extraConfigPaths}</literal>.
|
||||
`config.${opt.extraConfigPaths}`.
|
||||
'';
|
||||
description = ''
|
||||
Path to directory with slurm config files. This option is set by default from the
|
||||
|
|
|
@ -94,7 +94,7 @@ in {
|
|||
type = types.path;
|
||||
description = lib.mdDoc "Optionally pass master.cfg path. Other options in this configuration will be ignored.";
|
||||
default = defaultMasterCfg;
|
||||
defaultText = literalDocBook ''generated configuration file'';
|
||||
defaultText = literalMD ''generated configuration file'';
|
||||
example = "/etc/nixos/buildbot/master.cfg";
|
||||
};
|
||||
|
||||
|
|
|
@ -168,7 +168,7 @@ let
|
|||
hooksPath = mkOption {
|
||||
type = types.path;
|
||||
default = hooksDir config;
|
||||
defaultText = literalDocBook "generated from <option>services.buildkite-agents.<name>.hooks</option>";
|
||||
defaultText = literalMD "generated from {option}`services.buildkite-agents.<name>.hooks`";
|
||||
description = lib.mdDoc ''
|
||||
Path to the directory storing the hooks.
|
||||
Consider using {option}`services.buildkite-agents.<name>.hooks.<name>`
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
let
|
||||
inherit (lib)
|
||||
filterAttrs
|
||||
literalDocBook
|
||||
literalMD
|
||||
literalExpression
|
||||
mkIf
|
||||
mkOption
|
||||
|
@ -235,7 +235,7 @@ in
|
|||
tomlFile = mkOption {
|
||||
type = types.path;
|
||||
internal = true;
|
||||
defaultText = literalDocBook "generated <literal>hercules-ci-agent.toml</literal>";
|
||||
defaultText = literalMD "generated `hercules-ci-agent.toml`";
|
||||
description = ''
|
||||
The fully assembled config file.
|
||||
'';
|
||||
|
|
|
@ -71,7 +71,7 @@ in {
|
|||
baseq3 = mkOption {
|
||||
type = types.either types.package types.path;
|
||||
default = defaultBaseq3;
|
||||
defaultText = literalDocBook "Manually downloaded Quake 3 installation directory.";
|
||||
defaultText = literalMD "Manually downloaded Quake 3 installation directory.";
|
||||
example = "/var/lib/q3ds";
|
||||
description = lib.mdDoc ''
|
||||
Path to the baseq3 files (pak*.pk3). If this is on the nix store (type = package) all .pk3 files should be saved
|
||||
|
|
|
@ -43,24 +43,26 @@ let
|
|||
};
|
||||
query = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
The query string used to match one or more ${name}s: can be
|
||||
a fullpath to the temperature file (single ${name}) or a fullpath
|
||||
to a driver directory (multiple ${name}s).
|
||||
|
||||
<note><para>
|
||||
When multiple ${name}s match, the query can be restricted using the
|
||||
<option>name</option> or <option>indices</option> options.
|
||||
</para></note>
|
||||
::: {.note}
|
||||
When multiple ${name}s match, the query can be restricted using the
|
||||
{option}`name` or {option}`indices` options.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
indices = mkOption {
|
||||
type = with types; nullOr (listOf ints.unsigned);
|
||||
default = null;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
A list of ${name}s to pick in case multiple ${name}s match the query.
|
||||
|
||||
<note><para>Indices start from 0.</para></note>
|
||||
::: {.note}
|
||||
Indices start from 0.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
} // optionalAttrs (name == "sensor") {
|
||||
|
@ -81,18 +83,18 @@ let
|
|||
// { "${type}" = query; };
|
||||
|
||||
syntaxNote = name: ''
|
||||
<note><para>
|
||||
This section slightly departs from the thinkfan.conf syntax.
|
||||
The type and path must be specified like this:
|
||||
<literal>
|
||||
type = "tpacpi";
|
||||
query = "/proc/acpi/ibm/${name}";
|
||||
</literal>
|
||||
instead of a single declaration like:
|
||||
<literal>
|
||||
- tpacpi: /proc/acpi/ibm/${name}
|
||||
</literal>
|
||||
</para></note>
|
||||
::: {.note}
|
||||
This section slightly departs from the thinkfan.conf syntax.
|
||||
The type and path must be specified like this:
|
||||
```
|
||||
type = "tpacpi";
|
||||
query = "/proc/acpi/ibm/${name}";
|
||||
```
|
||||
instead of a single declaration like:
|
||||
```
|
||||
- tpacpi: /proc/acpi/ibm/${name}
|
||||
```
|
||||
:::
|
||||
'';
|
||||
|
||||
in {
|
||||
|
@ -104,13 +106,13 @@ in {
|
|||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable thinkfan, a fan control program.
|
||||
|
||||
<note><para>
|
||||
This module targets IBM/Lenovo thinkpads by default, for
|
||||
other hardware you will have configure it more carefully.
|
||||
</para></note>
|
||||
::: {.note}
|
||||
This module targets IBM/Lenovo thinkpads by default, for
|
||||
other hardware you will have configure it more carefully.
|
||||
:::
|
||||
'';
|
||||
relatedPackages = [ "thinkfan" ];
|
||||
};
|
||||
|
@ -131,9 +133,11 @@ in {
|
|||
query = "/proc/acpi/ibm/thermal";
|
||||
}
|
||||
];
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
List of temperature sensors thinkfan will monitor.
|
||||
'' + syntaxNote "thermal";
|
||||
|
||||
${syntaxNote "thermal"}
|
||||
'';
|
||||
};
|
||||
|
||||
fans = mkOption {
|
||||
|
@ -143,9 +147,11 @@ in {
|
|||
query = "/proc/acpi/ibm/fan";
|
||||
}
|
||||
];
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
List of fans thinkfan will control.
|
||||
'' + syntaxNote "fan";
|
||||
|
||||
${syntaxNote "fan"}
|
||||
'';
|
||||
};
|
||||
|
||||
levels = mkOption {
|
||||
|
|
|
@ -6,8 +6,6 @@ let
|
|||
cfg = config.services.public-inbox;
|
||||
stateDir = "/var/lib/public-inbox";
|
||||
|
||||
manref = name: vol: "<citerefentry><refentrytitle>${name}</refentrytitle><manvolnum>${toString vol}</manvolnum></citerefentry>";
|
||||
|
||||
gitIni = pkgs.formats.gitIni { listsAsDuplicateKeys = true; };
|
||||
iniAtom = elemAt gitIni.type/*attrsOf*/.functor.wrapped/*attrsOf*/.functor.wrapped/*either*/.functor.wrapped 0;
|
||||
|
||||
|
@ -18,7 +16,7 @@ let
|
|||
args = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
description = "Command-line arguments to pass to ${manref "public-inbox-${proto}d" 1}.";
|
||||
description = lib.mdDoc "Command-line arguments to pass to {manpage}`public-inbox-${proto}d(1)`.";
|
||||
};
|
||||
port = mkOption {
|
||||
type = with types; nullOr (either str port);
|
||||
|
@ -34,13 +32,13 @@ let
|
|||
type = with types; nullOr str;
|
||||
default = null;
|
||||
example = "/path/to/fullchain.pem";
|
||||
description = "Path to TLS certificate to use for connections to ${manref "public-inbox-${proto}d" 1}.";
|
||||
description = lib.mdDoc "Path to TLS certificate to use for connections to {manpage}`public-inbox-${proto}d(1)`.";
|
||||
};
|
||||
key = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
example = "/path/to/key.pem";
|
||||
description = "Path to TLS key to use for connections to ${manref "public-inbox-${proto}d" 1}.";
|
||||
description = lib.mdDoc "Path to TLS key to use for connections to {manpage}`public-inbox-${proto}d(1)`.";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -198,15 +196,15 @@ in
|
|||
options.watch = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
description = "Paths for ${manref "public-inbox-watch" 1} to monitor for new mail.";
|
||||
description = lib.mdDoc "Paths for {manpage}`public-inbox-watch(1)` to monitor for new mail.";
|
||||
example = [ "maildir:/path/to/test.example.com.git" ];
|
||||
};
|
||||
options.watchheader = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
example = "List-Id:<test@example.com>";
|
||||
description = ''
|
||||
If specified, ${manref "public-inbox-watch" 1} will only process
|
||||
description = lib.mdDoc ''
|
||||
If specified, {manpage}`public-inbox-watch(1)` will only process
|
||||
mail containing a matching header.
|
||||
'';
|
||||
};
|
||||
|
@ -253,7 +251,7 @@ in
|
|||
args = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
description = "Command-line arguments to pass to ${manref "public-inbox-mda" 1}.";
|
||||
description = lib.mdDoc "Command-line arguments to pass to {manpage}`public-inbox-mda(1)`.";
|
||||
};
|
||||
};
|
||||
postfix.enable = mkEnableOption "the integration into Postfix";
|
||||
|
@ -302,16 +300,16 @@ in
|
|||
options.publicinboxmda.spamcheck = mkOption {
|
||||
type = with types; enum [ "spamc" "none" ];
|
||||
default = "none";
|
||||
description = ''
|
||||
If set to spamc, ${manref "public-inbox-watch" 1} will filter spam
|
||||
description = lib.mdDoc ''
|
||||
If set to spamc, {manpage}`public-inbox-watch(1)` will filter spam
|
||||
using SpamAssassin.
|
||||
'';
|
||||
};
|
||||
options.publicinboxwatch.spamcheck = mkOption {
|
||||
type = with types; enum [ "spamc" "none" ];
|
||||
default = "none";
|
||||
description = ''
|
||||
If set to spamc, ${manref "public-inbox-watch" 1} will filter spam
|
||||
description = lib.mdDoc ''
|
||||
If set to spamc, {manpage}`public-inbox-watch(1)` will filter spam
|
||||
using SpamAssassin.
|
||||
'';
|
||||
};
|
||||
|
|
|
@ -47,7 +47,7 @@ in
|
|||
$highlight_bin = "${pkgs.highlight}/bin/highlight";
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
defaultText = literalDocBook "generated config file";
|
||||
defaultText = literalMD "generated config file";
|
||||
type = types.path;
|
||||
readOnly = true;
|
||||
internal = true;
|
||||
|
|
|
@ -430,13 +430,14 @@ in
|
|||
};
|
||||
config = {
|
||||
from = mkDefault { type = "indirect"; id = name; };
|
||||
to = mkIf (config.flake != null) (mkDefault
|
||||
to = mkIf (config.flake != null) (mkDefault (
|
||||
{
|
||||
type = "path";
|
||||
path = config.flake.outPath;
|
||||
} // filterAttrs
|
||||
(n: _: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash")
|
||||
config.flake);
|
||||
(n: _: n == "lastModified" || n == "rev" || n == "revCount" || n == "narHash")
|
||||
config.flake
|
||||
));
|
||||
};
|
||||
}
|
||||
));
|
||||
|
|
|
@ -134,6 +134,7 @@ in
|
|||
|
||||
ExecStart = "${cfg.package}/bin/plexmediaserver";
|
||||
KillSignal = "SIGQUIT";
|
||||
PIDFile = "${cfg.dataDir}/Plex Media Server/plexmediaserver.pid";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
|
||||
|
|
|
@ -401,7 +401,7 @@ in
|
|||
config = mkOption {
|
||||
internal = true;
|
||||
default = pkgs.writeText "rippled.conf" rippledCfg;
|
||||
defaultText = literalDocBook "generated config file";
|
||||
defaultText = literalMD "generated config file";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -99,14 +99,14 @@ let
|
|||
|
||||
mkDefOpt = type: defaultStr: description: mkOpt type (description + ''
|
||||
|
||||
Defaults to <literal>${defaultStr}</literal> in prometheus
|
||||
when set to <literal>null</literal>.
|
||||
Defaults to ````${defaultStr}```` in prometheus
|
||||
when set to `null`.
|
||||
'');
|
||||
|
||||
mkOpt = type: description: mkOption {
|
||||
type = types.nullOr type;
|
||||
default = null;
|
||||
inherit description;
|
||||
description = lib.mdDoc description;
|
||||
};
|
||||
|
||||
mkSdConfigModule = extraOptions: types.submodule {
|
||||
|
@ -288,7 +288,7 @@ let
|
|||
|
||||
If honor_labels is set to "false", label conflicts are
|
||||
resolved by renaming conflicting labels in the scraped data
|
||||
to "exported_<original-label>" (for example
|
||||
to "exported_\<original-label\>" (for example
|
||||
"exported_instance", "exported_job") and then attaching
|
||||
server-side labels. This is useful for use cases such as
|
||||
federation, where all labels specified in the target should
|
||||
|
@ -299,10 +299,10 @@ let
|
|||
honor_timestamps controls whether Prometheus respects the timestamps present
|
||||
in scraped data.
|
||||
|
||||
If honor_timestamps is set to <literal>true</literal>, the timestamps of the metrics exposed
|
||||
If honor_timestamps is set to `true`, the timestamps of the metrics exposed
|
||||
by the target will be used.
|
||||
|
||||
If honor_timestamps is set to <literal>false</literal>, the timestamps of the metrics exposed
|
||||
If honor_timestamps is set to `false`, the timestamps of the metrics exposed
|
||||
by the target will be ignored.
|
||||
'';
|
||||
|
||||
|
@ -323,13 +323,13 @@ let
|
|||
bearer_token = mkOpt types.str ''
|
||||
Sets the `Authorization` header on every scrape request with
|
||||
the configured bearer token. It is mutually exclusive with
|
||||
<option>bearer_token_file</option>.
|
||||
{option}`bearer_token_file`.
|
||||
'';
|
||||
|
||||
bearer_token_file = mkOpt types.str ''
|
||||
Sets the `Authorization` header on every scrape request with
|
||||
the bearer token read from the configured file. It is mutually
|
||||
exclusive with <option>bearer_token</option>.
|
||||
exclusive with {option}`bearer_token`.
|
||||
'';
|
||||
|
||||
tls_config = mkOpt promTypes.tls_config ''
|
||||
|
@ -379,7 +379,7 @@ let
|
|||
gce_sd_configs = mkOpt (types.listOf promTypes.gce_sd_config) ''
|
||||
List of Google Compute Engine service discovery configurations.
|
||||
|
||||
See <link xlink:href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config">the relevant Prometheus configuration docs</link>
|
||||
See [the relevant Prometheus configuration docs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config)
|
||||
for more detail.
|
||||
'';
|
||||
|
||||
|
@ -591,7 +591,7 @@ let
|
|||
|
||||
allow_stale = mkOpt types.bool ''
|
||||
Allow stale Consul results
|
||||
(see <link xlink:href="https://www.consul.io/api/index.html#consistency-modes"/>).
|
||||
(see <https://www.consul.io/api/index.html#consistency-modes>).
|
||||
|
||||
Will reduce load on Consul.
|
||||
'';
|
||||
|
@ -632,16 +632,16 @@ let
|
|||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Name of the filter. The available filters are listed in the upstream documentation:
|
||||
Services: <link xlink:href="https://docs.docker.com/engine/api/v1.40/#operation/ServiceList"/>
|
||||
Tasks: <link xlink:href="https://docs.docker.com/engine/api/v1.40/#operation/TaskList"/>
|
||||
Nodes: <link xlink:href="https://docs.docker.com/engine/api/v1.40/#operation/NodeList"/>
|
||||
Services: <https://docs.docker.com/engine/api/v1.40/#operation/ServiceList>
|
||||
Tasks: <https://docs.docker.com/engine/api/v1.40/#operation/TaskList>
|
||||
Nodes: <https://docs.docker.com/engine/api/v1.40/#operation/NodeList>
|
||||
'';
|
||||
};
|
||||
values = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Value for the filter.
|
||||
'';
|
||||
};
|
||||
|
@ -707,12 +707,12 @@ let
|
|||
|
||||
access_key = mkOpt types.str ''
|
||||
The AWS API key id. If blank, the environment variable
|
||||
<literal>AWS_ACCESS_KEY_ID</literal> is used.
|
||||
`AWS_ACCESS_KEY_ID` is used.
|
||||
'';
|
||||
|
||||
secret_key = mkOpt types.str ''
|
||||
The AWS API key secret. If blank, the environment variable
|
||||
<literal>AWS_SECRET_ACCESS_KEY</literal> is used.
|
||||
`AWS_SECRET_ACCESS_KEY` is used.
|
||||
'';
|
||||
|
||||
profile = mkOpt types.str ''
|
||||
|
@ -738,8 +738,8 @@ let
|
|||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
See <link xlink:href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">this list</link>
|
||||
description = lib.mdDoc ''
|
||||
See [this list](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html)
|
||||
for the available filters.
|
||||
'';
|
||||
};
|
||||
|
@ -747,7 +747,7 @@ let
|
|||
values = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Value of the filter.
|
||||
'';
|
||||
};
|
||||
|
@ -806,7 +806,7 @@ let
|
|||
filter = mkOpt types.str ''
|
||||
Filter can be used optionally to filter the instance list by other
|
||||
criteria Syntax of this filter string is described here in the filter
|
||||
query parameter section: <link xlink:href="https://cloud.google.com/compute/docs/reference/latest/instances/list"/>.
|
||||
query parameter section: <https://cloud.google.com/compute/docs/reference/latest/instances/list>.
|
||||
'';
|
||||
|
||||
refresh_interval = mkDefOpt types.str "60s" ''
|
||||
|
@ -822,7 +822,7 @@ let
|
|||
The tag separator used to separate concatenated GCE instance network tags.
|
||||
|
||||
See the GCP documentation on network tags for more information:
|
||||
<link xlink:href="https://cloud.google.com/vpc/docs/add-remove-network-tags"/>
|
||||
<https://cloud.google.com/vpc/docs/add-remove-network-tags>
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -917,7 +917,7 @@ let
|
|||
options = {
|
||||
role = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Selector role
|
||||
'';
|
||||
};
|
||||
|
@ -976,11 +976,11 @@ let
|
|||
'';
|
||||
|
||||
access_key = mkOpt types.str ''
|
||||
The AWS API keys. If blank, the environment variable <literal>AWS_ACCESS_KEY_ID</literal> is used.
|
||||
The AWS API keys. If blank, the environment variable `AWS_ACCESS_KEY_ID` is used.
|
||||
'';
|
||||
|
||||
secret_key = mkOpt types.str ''
|
||||
The AWS API keys. If blank, the environment variable <literal>AWS_SECRET_ACCESS_KEY</literal> is used.
|
||||
The AWS API keys. If blank, the environment variable `AWS_SECRET_ACCESS_KEY` is used.
|
||||
'';
|
||||
|
||||
profile = mkOpt types.str ''
|
||||
|
@ -1030,14 +1030,14 @@ let
|
|||
|
||||
auth_token = mkOpt types.str ''
|
||||
Optional authentication information for token-based authentication:
|
||||
<link xlink:href="https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token"/>
|
||||
It is mutually exclusive with <literal>auth_token_file</literal> and other authentication mechanisms.
|
||||
<https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token>
|
||||
It is mutually exclusive with `auth_token_file` and other authentication mechanisms.
|
||||
'';
|
||||
|
||||
auth_token_file = mkOpt types.str ''
|
||||
Optional authentication information for token-based authentication:
|
||||
<link xlink:href="https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token"/>
|
||||
It is mutually exclusive with <literal>auth_token</literal> and other authentication mechanisms.
|
||||
<https://docs.mesosphere.com/1.11/security/ent/iam-api/#passing-an-authentication-token>
|
||||
It is mutually exclusive with `auth_token` and other authentication mechanisms.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -1299,7 +1299,7 @@ let
|
|||
};
|
||||
|
||||
groups = mkOpt (types.listOf types.str) ''
|
||||
A list of groups for which targets are retrieved, only supported when targeting the <literal>container</literal> role.
|
||||
A list of groups for which targets are retrieved, only supported when targeting the `container` role.
|
||||
If omitted all containers owned by the requesting account are scraped.
|
||||
'';
|
||||
|
||||
|
|
88
nixos/modules/services/monitoring/prometheus/sachet.nix
Normal file
88
nixos/modules/services/monitoring/prometheus/sachet.nix
Normal file
|
@ -0,0 +1,88 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.sachet;
|
||||
configFile = pkgs.writeText "sachet.yml" (builtins.toJSON cfg.configuration);
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.prometheus.sachet = {
|
||||
enable = mkEnableOption "Sachet, an SMS alerting tool for the Prometheus Alertmanager";
|
||||
|
||||
configuration = mkOption {
|
||||
type = types.nullOr types.attrs;
|
||||
default = null;
|
||||
example = literalExample ''
|
||||
{
|
||||
providers = {
|
||||
twilio = {
|
||||
# environment variables gets expanded at runtime
|
||||
account_sid = "$TWILIO_ACCOUNT";
|
||||
auth_token = "$TWILIO_TOKEN";
|
||||
};
|
||||
};
|
||||
templates = [ ./some-template.tmpl ];
|
||||
receivers = [{
|
||||
name = "pager";
|
||||
provider = "twilio";
|
||||
to = [ "+33123456789" ];
|
||||
text = "{{ template \"message\" . }}";
|
||||
}];
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Sachet's configuration as a nix attribute set.
|
||||
'';
|
||||
};
|
||||
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
The address Sachet will listen to.
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 9876;
|
||||
description = ''
|
||||
The port Sachet will listen to.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = singleton {
|
||||
assertion = cfg.configuration != null;
|
||||
message = "Cannot enable Sachet without a configuration.";
|
||||
};
|
||||
|
||||
systemd.services.sachet = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" "network-online.target" ];
|
||||
script = ''
|
||||
${pkgs.envsubst}/bin/envsubst -i "${configFile}" > /tmp/sachet.yaml
|
||||
exec ${pkgs.prometheus-sachet}/bin/sachet -config /tmp/sachet.yaml -listen-address ${cfg.address}:${builtins.toString cfg.port}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
|
||||
ProtectSystem = "strict";
|
||||
ProtectHome = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectControlGroups = true;
|
||||
|
||||
DynamicUser = true;
|
||||
PrivateTmp = true;
|
||||
WorkingDirectory = "/tmp/";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -8,7 +8,7 @@ let
|
|||
nullOpt = type: description: mkOption {
|
||||
type = types.nullOr type;
|
||||
default = null;
|
||||
inherit description;
|
||||
description = lib.mdDoc description;
|
||||
};
|
||||
|
||||
optionToArgs = opt: v : optional (v != null) ''--${opt}="${toString v}"'';
|
||||
|
@ -18,8 +18,8 @@ let
|
|||
|
||||
mkParamDef = type: default: description: mkParam type (description + ''
|
||||
|
||||
Defaults to <literal>${toString default}</literal> in Thanos
|
||||
when set to <literal>null</literal>.
|
||||
Defaults to `${toString default}` in Thanos
|
||||
when set to `null`.
|
||||
'');
|
||||
|
||||
mkParam = type: description: {
|
||||
|
@ -32,7 +32,7 @@ let
|
|||
option = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
inherit description;
|
||||
description = lib.mdDoc description;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -41,7 +41,7 @@ let
|
|||
option = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
inherit description;
|
||||
description = lib.mdDoc description;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -50,7 +50,7 @@ let
|
|||
option = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {};
|
||||
inherit description;
|
||||
description = lib.mdDoc description;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -59,7 +59,7 @@ let
|
|||
option = mkOption {
|
||||
type = types.str;
|
||||
inherit default;
|
||||
inherit description;
|
||||
description = lib.mdDoc description;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -83,8 +83,8 @@ let
|
|||
mkArgumentsOption = cmd: mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = argumentsOf cmd;
|
||||
defaultText = literalDocBook ''
|
||||
calculated from <literal>config.services.thanos.${cmd}</literal>
|
||||
defaultText = literalMD ''
|
||||
calculated from `config.services.thanos.${cmd}`
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
Arguments to the `thanos ${cmd}` command.
|
||||
|
@ -141,13 +141,13 @@ let
|
|||
option = nullOpt types.attrs ''
|
||||
Tracing configuration.
|
||||
|
||||
When not <literal>null</literal> the attribute set gets converted to
|
||||
When not `null` the attribute set gets converted to
|
||||
a YAML file and stored in the Nix store. The option
|
||||
<option>tracing.config-file</option> will default to its path.
|
||||
{option}`tracing.config-file` will default to its path.
|
||||
|
||||
If <option>tracing.config-file</option> is set this option has no effect.
|
||||
If {option}`tracing.config-file` is set this option has no effect.
|
||||
|
||||
See format details: <link xlink:href="https://thanos.io/tracing.md/#configuration"/>
|
||||
See format details: <https://thanos.io/tracing.md/#configuration>
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -155,11 +155,11 @@ let
|
|||
common = cfg: params.log // params.tracing cfg // {
|
||||
|
||||
http-address = mkParamDef types.str "0.0.0.0:10902" ''
|
||||
Listen <literal>host:port</literal> for HTTP endpoints.
|
||||
Listen `host:port` for HTTP endpoints.
|
||||
'';
|
||||
|
||||
grpc-address = mkParamDef types.str "0.0.0.0:10901" ''
|
||||
Listen <literal>ip:port</literal> address for gRPC endpoints (StoreAPI).
|
||||
Listen `ip:port` address for gRPC endpoints (StoreAPI).
|
||||
|
||||
Make sure this address is routable from other components.
|
||||
'';
|
||||
|
@ -206,13 +206,13 @@ let
|
|||
option = nullOpt types.attrs ''
|
||||
Object store configuration.
|
||||
|
||||
When not <literal>null</literal> the attribute set gets converted to
|
||||
When not `null` the attribute set gets converted to
|
||||
a YAML file and stored in the Nix store. The option
|
||||
<option>objstore.config-file</option> will default to its path.
|
||||
{option}`objstore.config-file` will default to its path.
|
||||
|
||||
If <option>objstore.config-file</option> is set this option has no effect.
|
||||
If {option}`objstore.config-file` is set this option has no effect.
|
||||
|
||||
See format details: <link xlink:href="https://thanos.io/storage.md/#configuration"/>
|
||||
See format details: <https://thanos.io/storage.md/#configuration>
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -254,7 +254,7 @@ let
|
|||
store = params.common cfg.store // params.objstore cfg.store // {
|
||||
|
||||
stateDir = mkStateDirParam "data-dir" "thanos-store" ''
|
||||
Data directory relative to <literal>/var/lib</literal>
|
||||
Data directory relative to `/var/lib`
|
||||
in which to cache remote blocks.
|
||||
'';
|
||||
|
||||
|
@ -269,7 +269,7 @@ let
|
|||
store.grpc.series-sample-limit = mkParamDef types.int 0 ''
|
||||
Maximum amount of samples returned via a single Series call.
|
||||
|
||||
<literal>0</literal> means no limit.
|
||||
`0` means no limit.
|
||||
|
||||
NOTE: for efficiency we take 120 as the number of samples in chunk (it
|
||||
cannot be bigger than that), so the actual number of samples might be
|
||||
|
@ -327,14 +327,14 @@ let
|
|||
|
||||
grpc-client-server-name = mkParam types.str ''
|
||||
Server name to verify the hostname on the returned gRPC certificates.
|
||||
See <link xlink:href="https://tools.ietf.org/html/rfc4366#section-3.1"/>
|
||||
See <https://tools.ietf.org/html/rfc4366#section-3.1>
|
||||
'';
|
||||
|
||||
web.route-prefix = mkParam types.str ''
|
||||
Prefix for API and UI endpoints.
|
||||
|
||||
This allows thanos UI to be served on a sub-path. This option is
|
||||
analogous to <option>web.route-prefix</option> of Promethus.
|
||||
analogous to {option}`web.route-prefix` of Promethus.
|
||||
'';
|
||||
|
||||
web.external-prefix = mkParam types.str ''
|
||||
|
@ -342,7 +342,7 @@ let
|
|||
interface.
|
||||
|
||||
Actual endpoints are still served on / or the
|
||||
<option>web.route-prefix</option>. This allows thanos UI to be served
|
||||
{option}`web.route-prefix`. This allows thanos UI to be served
|
||||
behind a reverse proxy that strips a URL sub-path.
|
||||
'';
|
||||
|
||||
|
@ -351,15 +351,15 @@ let
|
|||
redirects.
|
||||
|
||||
This option is ignored if the option
|
||||
<literal>web.external-prefix</literal> is set.
|
||||
`web.external-prefix` is set.
|
||||
|
||||
Security risk: enable this option only if a reverse proxy in front of
|
||||
thanos is resetting the header.
|
||||
|
||||
The setting <literal>web.prefix-header="X-Forwarded-Prefix"</literal>
|
||||
The setting `web.prefix-header="X-Forwarded-Prefix"`
|
||||
can be useful, for example, if Thanos UI is served via Traefik reverse
|
||||
proxy with <literal>PathPrefixStrip</literal> option enabled, which
|
||||
sends the stripped prefix value in <literal>X-Forwarded-Prefix</literal>
|
||||
proxy with `PathPrefixStrip` option enabled, which
|
||||
sends the stripped prefix value in `X-Forwarded-Prefix`
|
||||
header. This allows thanos UI to be served on a sub-path.
|
||||
'';
|
||||
|
||||
|
@ -376,7 +376,7 @@ let
|
|||
deduplicated.
|
||||
|
||||
Still you will be able to query without deduplication using
|
||||
<literal>dedup=false</literal> parameter.
|
||||
`dedup=false` parameter.
|
||||
'';
|
||||
|
||||
selector-labels = mkAttrsParam "selector-label" ''
|
||||
|
@ -386,8 +386,8 @@ let
|
|||
store.addresses = mkListParam "store" ''
|
||||
Addresses of statically configured store API servers.
|
||||
|
||||
The scheme may be prefixed with <literal>dns+</literal> or
|
||||
<literal>dnssrv+</literal> to detect store API servers through
|
||||
The scheme may be prefixed with `dns+` or
|
||||
`dnssrv+` to detect store API servers through
|
||||
respective DNS lookups.
|
||||
'';
|
||||
|
||||
|
@ -411,12 +411,12 @@ let
|
|||
query.auto-downsampling = mkFlagParam ''
|
||||
Enable automatic adjustment (step / 5) to what source of data should
|
||||
be used in store gateways if no
|
||||
<literal>max_source_resolution</literal> param is specified.
|
||||
`max_source_resolution` param is specified.
|
||||
'';
|
||||
|
||||
query.partial-response = mkFlagParam ''
|
||||
Enable partial response for queries if no
|
||||
<literal>partial_response</literal> param is specified.
|
||||
`partial_response` param is specified.
|
||||
'';
|
||||
|
||||
query.default-evaluation-interval = mkParamDef types.str "1m" ''
|
||||
|
@ -426,7 +426,7 @@ let
|
|||
store.response-timeout = mkParamDef types.str "0ms" ''
|
||||
If a Store doesn't send any data in this specified duration then a
|
||||
Store will be ignored and partial data will be returned if it's
|
||||
enabled. <literal>0</literal> disables timeout.
|
||||
enabled. `0` disables timeout.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -440,7 +440,7 @@ let
|
|||
'';
|
||||
|
||||
stateDir = mkStateDirParam "data-dir" "thanos-rule" ''
|
||||
Data directory relative to <literal>/var/lib</literal>.
|
||||
Data directory relative to `/var/lib`.
|
||||
'';
|
||||
|
||||
rule-files = mkListParam "rule-file" ''
|
||||
|
@ -464,9 +464,9 @@ let
|
|||
|
||||
Ruler claims success if push to at least one alertmanager from
|
||||
discovered succeeds. The scheme may be prefixed with
|
||||
<literal>dns+</literal> or <literal>dnssrv+</literal> to detect
|
||||
`dns+` or `dnssrv+` to detect
|
||||
Alertmanager IPs through respective DNS lookups. The port defaults to
|
||||
<literal>9093</literal> or the SRV record's value. The URL path is
|
||||
`9093` or the SRV record's value. The URL path is
|
||||
used as a prefix for the regular Alertmanager API path.
|
||||
'';
|
||||
|
||||
|
@ -491,7 +491,7 @@ let
|
|||
|
||||
This allows thanos UI to be served on a sub-path.
|
||||
|
||||
This option is analogous to <literal>--web.route-prefix</literal> of Promethus.
|
||||
This option is analogous to `--web.route-prefix` of Promethus.
|
||||
'';
|
||||
|
||||
web.external-prefix = mkParam types.str ''
|
||||
|
@ -499,7 +499,7 @@ let
|
|||
interface.
|
||||
|
||||
Actual endpoints are still served on / or the
|
||||
<option>web.route-prefix</option>. This allows thanos UI to be served
|
||||
{option}`web.route-prefix`. This allows thanos UI to be served
|
||||
behind a reverse proxy that strips a URL sub-path.
|
||||
'';
|
||||
|
||||
|
@ -508,23 +508,23 @@ let
|
|||
redirects.
|
||||
|
||||
This option is ignored if the option
|
||||
<option>web.external-prefix</option> is set.
|
||||
{option}`web.external-prefix` is set.
|
||||
|
||||
Security risk: enable this option only if a reverse proxy in front of
|
||||
thanos is resetting the header.
|
||||
|
||||
The header <literal>X-Forwarded-Prefix</literal> can be useful, for
|
||||
The header `X-Forwarded-Prefix` can be useful, for
|
||||
example, if Thanos UI is served via Traefik reverse proxy with
|
||||
<literal>PathPrefixStrip</literal> option enabled, which sends the
|
||||
stripped prefix value in <literal>X-Forwarded-Prefix</literal>
|
||||
`PathPrefixStrip` option enabled, which sends the
|
||||
stripped prefix value in `X-Forwarded-Prefix`
|
||||
header. This allows thanos UI to be served on a sub-path.
|
||||
'';
|
||||
|
||||
query.addresses = mkListParam "query" ''
|
||||
Addresses of statically configured query API servers.
|
||||
|
||||
The scheme may be prefixed with <literal>dns+</literal> or
|
||||
<literal>dnssrv+</literal> to detect query API servers through
|
||||
The scheme may be prefixed with `dns+` or
|
||||
`dnssrv+` to detect query API servers through
|
||||
respective DNS lookups.
|
||||
'';
|
||||
|
||||
|
@ -545,11 +545,11 @@ let
|
|||
compact = params.log // params.tracing cfg.compact // params.objstore cfg.compact // {
|
||||
|
||||
http-address = mkParamDef types.str "0.0.0.0:10902" ''
|
||||
Listen <literal>host:port</literal> for HTTP endpoints.
|
||||
Listen `host:port` for HTTP endpoints.
|
||||
'';
|
||||
|
||||
stateDir = mkStateDirParam "data-dir" "thanos-compact" ''
|
||||
Data directory relative to <literal>/var/lib</literal>
|
||||
Data directory relative to `/var/lib`
|
||||
in which to cache blocks and process compactions.
|
||||
'';
|
||||
|
||||
|
@ -562,28 +562,28 @@ let
|
|||
retention.resolution-raw = mkParamDef types.str "0d" ''
|
||||
How long to retain raw samples in bucket.
|
||||
|
||||
<literal>0d</literal> - disables this retention
|
||||
`0d` - disables this retention
|
||||
'';
|
||||
|
||||
retention.resolution-5m = mkParamDef types.str "0d" ''
|
||||
How long to retain samples of resolution 1 (5 minutes) in bucket.
|
||||
|
||||
<literal>0d</literal> - disables this retention
|
||||
`0d` - disables this retention
|
||||
'';
|
||||
|
||||
retention.resolution-1h = mkParamDef types.str "0d" ''
|
||||
How long to retain samples of resolution 2 (1 hour) in bucket.
|
||||
|
||||
<literal>0d</literal> - disables this retention
|
||||
`0d` - disables this retention
|
||||
'';
|
||||
|
||||
startAt = {
|
||||
toArgs = _opt: startAt: flagToArgs "wait" (startAt == null);
|
||||
option = nullOpt types.str ''
|
||||
When this option is set to a <literal>systemd.time</literal>
|
||||
When this option is set to a `systemd.time`
|
||||
specification the Thanos compactor will run at the specified period.
|
||||
|
||||
When this option is <literal>null</literal> the Thanos compactor service
|
||||
When this option is `null` the Thanos compactor service
|
||||
will run continuously. So it will not exit after all compactions have
|
||||
been processed but wait for new work.
|
||||
'';
|
||||
|
@ -609,7 +609,7 @@ let
|
|||
downsample = params.log // params.tracing cfg.downsample // params.objstore cfg.downsample // {
|
||||
|
||||
stateDir = mkStateDirParam "data-dir" "thanos-downsample" ''
|
||||
Data directory relative to <literal>/var/lib</literal>
|
||||
Data directory relative to `/var/lib`
|
||||
in which to cache blocks and process downsamplings.
|
||||
'';
|
||||
|
||||
|
@ -622,7 +622,7 @@ let
|
|||
'';
|
||||
|
||||
stateDir = mkStateDirParam "tsdb.path" "thanos-receive" ''
|
||||
Data directory relative to <literal>/var/lib</literal> of TSDB.
|
||||
Data directory relative to `/var/lib` of TSDB.
|
||||
'';
|
||||
|
||||
labels = mkAttrsParam "labels" ''
|
||||
|
@ -635,7 +635,7 @@ let
|
|||
tsdb.retention = mkParamDef types.str "15d" ''
|
||||
How long to retain raw samples on local storage.
|
||||
|
||||
<literal>0d</literal> - disables this retention
|
||||
`0d` - disables this retention
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ in
|
|||
''}
|
||||
${pkgs.remarshal}/bin/json2toml < config.json > $out
|
||||
'';
|
||||
defaultText = literalDocBook "TOML file generated from <option>services.dnscrypt-proxy2.settings</option>";
|
||||
defaultText = literalMD "TOML file generated from {option}`services.dnscrypt-proxy2.settings`";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ in {
|
|||
config = mkOption {
|
||||
description = lib.mdDoc "Verbatim ferm.conf configuration.";
|
||||
default = "";
|
||||
defaultText = literalDocBook "empty firewall, allows any traffic";
|
||||
defaultText = literalMD "empty firewall, allows any traffic";
|
||||
type = types.lines;
|
||||
};
|
||||
package = mkOption {
|
||||
|
|
|
@ -417,7 +417,7 @@ in
|
|||
checkReversePath = mkOption {
|
||||
type = types.either types.bool (types.enum ["strict" "loose"]);
|
||||
default = kernelHasRPFilter;
|
||||
defaultText = literalDocBook "<literal>true</literal> if supported by the chosen kernel";
|
||||
defaultText = literalMD "`true` if supported by the chosen kernel";
|
||||
example = "loose";
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
|
|
|
@ -88,7 +88,7 @@ in
|
|||
name = "nftables-rules";
|
||||
text = cfg.ruleset;
|
||||
};
|
||||
defaultText = literalDocBook ''a file with the contents of <option>networking.nftables.ruleset</option>'';
|
||||
defaultText = literalMD ''a file with the contents of {option}`networking.nftables.ruleset`'';
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
The ruleset file to be used with nftables. Should be in a format that
|
||||
|
|
|
@ -57,12 +57,12 @@ rec {
|
|||
|
||||
documentDefault = description : strongswanDefault :
|
||||
if strongswanDefault == null
|
||||
then description
|
||||
else description + ''
|
||||
then mdDoc description
|
||||
else mdDoc (description + ''
|
||||
|
||||
|
||||
StrongSwan default: <literal><![CDATA[${builtins.toJSON strongswanDefault}]]></literal>
|
||||
'';
|
||||
StrongSwan default: ````${builtins.toJSON strongswanDefault}````
|
||||
'');
|
||||
|
||||
single = f: name: value: { ${name} = f value; };
|
||||
|
||||
|
@ -121,7 +121,7 @@ rec {
|
|||
option = mkOption {
|
||||
type = types.attrsOf option;
|
||||
default = {};
|
||||
inherit description;
|
||||
description = mdDoc description;
|
||||
};
|
||||
render = single (attrs:
|
||||
(paramsToRenderedStrings attrs
|
||||
|
@ -139,7 +139,7 @@ rec {
|
|||
option = mkOption {
|
||||
type = types.attrsOf option;
|
||||
default = {};
|
||||
inherit description;
|
||||
description = mdDoc description;
|
||||
};
|
||||
render = prefix: attrs:
|
||||
let prefixedAttrs = mapAttrs' (name: nameValuePair "${prefix}-${name}") attrs;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -27,7 +27,8 @@ let
|
|||
type = types.bool;
|
||||
name = nixosName;
|
||||
value = mkOption {
|
||||
inherit description default;
|
||||
description = lib.mdDoc description;
|
||||
inherit default;
|
||||
type = types.bool;
|
||||
};
|
||||
};
|
||||
|
@ -68,16 +69,16 @@ let
|
|||
Whether users are included.
|
||||
'')
|
||||
(yesNoOption "userlistDeny" "userlist_deny" false ''
|
||||
Specifies whether <option>userlistFile</option> is a list of user
|
||||
Specifies whether {option}`userlistFile` is a list of user
|
||||
names to allow or deny access.
|
||||
The default <literal>false</literal> means whitelist/allow.
|
||||
The default `false` means whitelist/allow.
|
||||
'')
|
||||
(yesNoOption "forceLocalLoginsSSL" "force_local_logins_ssl" false ''
|
||||
Only applies if <option>sslEnable</option> is true. Non anonymous (local) users
|
||||
Only applies if {option}`sslEnable` is true. Non anonymous (local) users
|
||||
must use a secure SSL connection to send a password.
|
||||
'')
|
||||
(yesNoOption "forceLocalDataSSL" "force_local_data_ssl" false ''
|
||||
Only applies if <option>sslEnable</option> is true. Non anonymous (local) users
|
||||
Only applies if {option}`sslEnable` is true. Non anonymous (local) users
|
||||
must use a secure SSL connection for sending/receiving data on data connection.
|
||||
'')
|
||||
(yesNoOption "portPromiscuous" "port_promiscuous" false ''
|
||||
|
@ -86,17 +87,17 @@ let
|
|||
know what you are doing!
|
||||
'')
|
||||
(yesNoOption "ssl_tlsv1" "ssl_tlsv1" true ''
|
||||
Only applies if <option>ssl_enable</option> is activated. If
|
||||
Only applies if {option}`ssl_enable` is activated. If
|
||||
enabled, this option will permit TLS v1 protocol connections.
|
||||
TLS v1 connections are preferred.
|
||||
'')
|
||||
(yesNoOption "ssl_sslv2" "ssl_sslv2" false ''
|
||||
Only applies if <option>ssl_enable</option> is activated. If
|
||||
Only applies if {option}`ssl_enable` is activated. If
|
||||
enabled, this option will permit SSL v2 protocol connections.
|
||||
TLS v1 connections are preferred.
|
||||
'')
|
||||
(yesNoOption "ssl_sslv3" "ssl_sslv3" false ''
|
||||
Only applies if <option>ssl_enable</option> is activated. If
|
||||
Only applies if {option}`ssl_enable` is activated. If
|
||||
enabled, this option will permit SSL v3 protocol connections.
|
||||
TLS v1 connections are preferred.
|
||||
'')
|
||||
|
@ -184,9 +185,9 @@ in
|
|||
type = types.nullOr types.str;
|
||||
example = "/etc/vsftpd/userDb";
|
||||
default = null;
|
||||
description = ''
|
||||
Only applies if <option>enableVirtualUsers</option> is true.
|
||||
Path pointing to the <literal>pam_userdb</literal> user
|
||||
description = lib.mdDoc ''
|
||||
Only applies if {option}`enableVirtualUsers` is true.
|
||||
Path pointing to the `pam_userdb` user
|
||||
database used by vsftpd to authenticate the virtual users.
|
||||
|
||||
This user list should be stored in the Berkeley DB database
|
||||
|
@ -194,21 +195,21 @@ in
|
|||
|
||||
To generate a new user database, create a text file, add
|
||||
your users using the following format:
|
||||
<programlisting>
|
||||
```
|
||||
user1
|
||||
password1
|
||||
user2
|
||||
password2
|
||||
</programlisting>
|
||||
```
|
||||
|
||||
You can then install <literal>pkgs.db</literal> to generate
|
||||
You can then install `pkgs.db` to generate
|
||||
the Berkeley DB using
|
||||
<programlisting>
|
||||
```
|
||||
db_load -T -t hash -f logins.txt userDb.db
|
||||
</programlisting>
|
||||
```
|
||||
|
||||
Caution: <literal>pam_userdb</literal> will automatically
|
||||
append a <literal>.db</literal> suffix to the filename you
|
||||
Caution: `pam_userdb` will automatically
|
||||
append a `.db` suffix to the filename you
|
||||
provide though this option. This option shouldn't include
|
||||
this filetype suffix.
|
||||
'';
|
||||
|
|
|
@ -100,7 +100,7 @@ in
|
|||
confDir = mkOption {
|
||||
type = types.path;
|
||||
default = confDir;
|
||||
defaultText = literalDocBook "generated from configuration";
|
||||
defaultText = literalMD "generated from configuration";
|
||||
description = lib.mdDoc "The location of the config files for xrdp.";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -9,7 +9,7 @@ let
|
|||
stateDir = "/var/lib/tor";
|
||||
runDir = "/run/tor";
|
||||
descriptionGeneric = option: ''
|
||||
See <link xlink:href="https://2019.www.torproject.org/docs/tor-manual.html.en#${option}">torrc manual</link>.
|
||||
See [torrc manual](https://2019.www.torproject.org/docs/tor-manual.html.en#${option}).
|
||||
'';
|
||||
bindsPrivilegedPort =
|
||||
any (p0:
|
||||
|
@ -30,22 +30,22 @@ let
|
|||
optionBool = optionName: mkOption {
|
||||
type = with types; nullOr bool;
|
||||
default = null;
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
optionInt = optionName: mkOption {
|
||||
type = with types; nullOr int;
|
||||
default = null;
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
optionString = optionName: mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
optionStrings = optionName: mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
optionAddress = mkOption {
|
||||
type = with types; nullOr str;
|
||||
|
@ -69,7 +69,7 @@ let
|
|||
optionPorts = optionName: mkOption {
|
||||
type = with types; listOf port;
|
||||
default = [];
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
optionIsolablePort = with types; oneOf [
|
||||
port (enum ["auto"])
|
||||
|
@ -89,7 +89,7 @@ let
|
|||
optionIsolablePorts = optionName: mkOption {
|
||||
default = [];
|
||||
type = with types; either optionIsolablePort (listOf optionIsolablePort);
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
isolateFlags = [
|
||||
"IsolateClientAddr"
|
||||
|
@ -144,17 +144,17 @@ let
|
|||
};
|
||||
}))
|
||||
]))];
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
optionBandwith = optionName: mkOption {
|
||||
type = with types; nullOr (either int str);
|
||||
default = null;
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
optionPath = optionName: mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
description = descriptionGeneric optionName;
|
||||
description = lib.mdDoc (descriptionGeneric optionName);
|
||||
};
|
||||
|
||||
mkValueString = k: v:
|
||||
|
@ -262,7 +262,7 @@ in
|
|||
};
|
||||
|
||||
onionServices = mkOption {
|
||||
description = descriptionGeneric "HiddenServiceDir";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServiceDir");
|
||||
default = {};
|
||||
example = {
|
||||
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" = {
|
||||
|
@ -271,11 +271,14 @@ in
|
|||
};
|
||||
type = types.attrsOf (types.submodule ({name, config, ...}: {
|
||||
options.clientAuthorizations = mkOption {
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Clients' authorizations for a v3 onion service,
|
||||
as a list of files containing each one private key, in the format:
|
||||
<screen>descriptor:x25519:<base32-private-key></screen>
|
||||
'' + descriptionGeneric "_client_authorization";
|
||||
```
|
||||
descriptor:x25519:<base32-private-key>
|
||||
```
|
||||
${descriptionGeneric "_client_authorization"}
|
||||
'';
|
||||
type = with types; listOf path;
|
||||
default = [];
|
||||
example = ["/run/keys/tor/alice.prv.x25519"];
|
||||
|
@ -429,7 +432,7 @@ in
|
|||
};
|
||||
|
||||
onionServices = mkOption {
|
||||
description = descriptionGeneric "HiddenServiceDir";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServiceDir");
|
||||
default = {};
|
||||
example = {
|
||||
"example.org/www" = {
|
||||
|
@ -462,7 +465,7 @@ in
|
|||
'';
|
||||
};
|
||||
options.authorizeClient = mkOption {
|
||||
description = descriptionGeneric "HiddenServiceAuthorizeClient";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServiceAuthorizeClient");
|
||||
default = null;
|
||||
type = types.nullOr (types.submodule ({...}: {
|
||||
options = {
|
||||
|
@ -487,17 +490,20 @@ in
|
|||
}));
|
||||
};
|
||||
options.authorizedClients = mkOption {
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Authorized clients for a v3 onion service,
|
||||
as a list of public key, in the format:
|
||||
<screen>descriptor:x25519:<base32-public-key></screen>
|
||||
'' + descriptionGeneric "_client_authorization";
|
||||
```
|
||||
descriptor:x25519:<base32-public-key>
|
||||
```
|
||||
${descriptionGeneric "_client_authorization"}
|
||||
'';
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
example = ["descriptor:x25519:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"];
|
||||
};
|
||||
options.map = mkOption {
|
||||
description = descriptionGeneric "HiddenServicePort";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServicePort");
|
||||
type = with types; listOf (oneOf [
|
||||
port (submodule ({...}: {
|
||||
options = {
|
||||
|
@ -518,14 +524,15 @@ in
|
|||
apply = map (v: if isInt v then {port=v; target=null;} else v);
|
||||
};
|
||||
options.version = mkOption {
|
||||
description = descriptionGeneric "HiddenServiceVersion";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServiceVersion");
|
||||
type = with types; nullOr (enum [2 3]);
|
||||
default = null;
|
||||
};
|
||||
options.settings = mkOption {
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Settings of the onion service.
|
||||
'' + descriptionGeneric "_hidden_service_options";
|
||||
${descriptionGeneric "_hidden_service_options"}
|
||||
'';
|
||||
default = {};
|
||||
type = types.submodule {
|
||||
freeformType = with types;
|
||||
|
@ -535,18 +542,18 @@ in
|
|||
options.HiddenServiceAllowUnknownPorts = optionBool "HiddenServiceAllowUnknownPorts";
|
||||
options.HiddenServiceDirGroupReadable = optionBool "HiddenServiceDirGroupReadable";
|
||||
options.HiddenServiceExportCircuitID = mkOption {
|
||||
description = descriptionGeneric "HiddenServiceExportCircuitID";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServiceExportCircuitID");
|
||||
type = with types; nullOr (enum ["haproxy"]);
|
||||
default = null;
|
||||
};
|
||||
options.HiddenServiceMaxStreams = mkOption {
|
||||
description = descriptionGeneric "HiddenServiceMaxStreams";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServiceMaxStreams");
|
||||
type = with types; nullOr (ints.between 0 65535);
|
||||
default = null;
|
||||
};
|
||||
options.HiddenServiceMaxStreamsCloseCircuit = optionBool "HiddenServiceMaxStreamsCloseCircuit";
|
||||
options.HiddenServiceNumIntroductionPoints = mkOption {
|
||||
description = descriptionGeneric "HiddenServiceNumIntroductionPoints";
|
||||
description = lib.mdDoc (descriptionGeneric "HiddenServiceNumIntroductionPoints");
|
||||
type = with types; nullOr (ints.between 0 20);
|
||||
default = null;
|
||||
};
|
||||
|
@ -605,7 +612,7 @@ in
|
|||
options.ClientAutoIPv6ORPort = optionBool "ClientAutoIPv6ORPort";
|
||||
options.ClientDNSRejectInternalAddresses = optionBool "ClientDNSRejectInternalAddresses";
|
||||
options.ClientOnionAuthDir = mkOption {
|
||||
description = descriptionGeneric "ClientOnionAuthDir";
|
||||
description = lib.mdDoc (descriptionGeneric "ClientOnionAuthDir");
|
||||
default = null;
|
||||
type = with types; nullOr path;
|
||||
};
|
||||
|
@ -618,7 +625,7 @@ in
|
|||
options.ConstrainedSockets = optionBool "ConstrainedSockets";
|
||||
options.ContactInfo = optionString "ContactInfo";
|
||||
options.ControlPort = mkOption rec {
|
||||
description = descriptionGeneric "ControlPort";
|
||||
description = lib.mdDoc (descriptionGeneric "ControlPort");
|
||||
default = [];
|
||||
example = [{port = 9051;}];
|
||||
type = with types; oneOf [port (enum ["auto"]) (listOf (oneOf [
|
||||
|
@ -653,7 +660,7 @@ in
|
|||
options.DormantTimeoutDisabledByIdleStreams = optionBool "DormantTimeoutDisabledByIdleStreams";
|
||||
options.DirCache = optionBool "DirCache";
|
||||
options.DirPolicy = mkOption {
|
||||
description = descriptionGeneric "DirPolicy";
|
||||
description = lib.mdDoc (descriptionGeneric "DirPolicy");
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
example = ["accept *:*"];
|
||||
|
@ -680,7 +687,7 @@ in
|
|||
options.ExitPortStatistics = optionBool "ExitPortStatistics";
|
||||
options.ExitRelay = optionBool "ExitRelay"; # default is null and like "auto"
|
||||
options.ExtORPort = mkOption {
|
||||
description = descriptionGeneric "ExtORPort";
|
||||
description = lib.mdDoc (descriptionGeneric "ExtORPort");
|
||||
default = null;
|
||||
type = with types; nullOr (oneOf [
|
||||
port (enum ["auto"]) (submodule ({...}: {
|
||||
|
@ -709,7 +716,7 @@ in
|
|||
options.GeoIPv6File = optionPath "GeoIPv6File";
|
||||
options.GuardfractionFile = optionPath "GuardfractionFile";
|
||||
options.HidServAuth = mkOption {
|
||||
description = descriptionGeneric "HidServAuth";
|
||||
description = lib.mdDoc (descriptionGeneric "HidServAuth");
|
||||
default = [];
|
||||
type = with types; listOf (oneOf [
|
||||
(submodule {
|
||||
|
@ -760,7 +767,7 @@ in
|
|||
options.ProtocolWarnings = optionBool "ProtocolWarnings";
|
||||
options.PublishHidServDescriptors = optionBool "PublishHidServDescriptors";
|
||||
options.PublishServerDescriptor = mkOption {
|
||||
description = descriptionGeneric "PublishServerDescriptor";
|
||||
description = lib.mdDoc (descriptionGeneric "PublishServerDescriptor");
|
||||
type = with types; nullOr (enum [false true 0 1 "0" "1" "v3" "bridge"]);
|
||||
default = null;
|
||||
};
|
||||
|
@ -778,7 +785,7 @@ in
|
|||
options.ServerDNSResolvConfFile = optionPath "ServerDNSResolvConfFile";
|
||||
options.ServerDNSSearchDomains = optionBool "ServerDNSSearchDomains";
|
||||
options.ServerTransportPlugin = mkOption {
|
||||
description = descriptionGeneric "ServerTransportPlugin";
|
||||
description = lib.mdDoc (descriptionGeneric "ServerTransportPlugin");
|
||||
default = null;
|
||||
type = with types; nullOr (submodule ({...}: {
|
||||
options = {
|
||||
|
@ -797,13 +804,13 @@ in
|
|||
options.ShutdownWaitLength = mkOption {
|
||||
type = types.int;
|
||||
default = 30;
|
||||
description = descriptionGeneric "ShutdownWaitLength";
|
||||
description = lib.mdDoc (descriptionGeneric "ShutdownWaitLength");
|
||||
};
|
||||
options.SocksPolicy = optionStrings "SocksPolicy" // {
|
||||
example = ["accept *:*"];
|
||||
};
|
||||
options.SOCKSPort = mkOption {
|
||||
description = descriptionGeneric "SOCKSPort";
|
||||
description = lib.mdDoc (descriptionGeneric "SOCKSPort");
|
||||
default = if cfg.settings.HiddenServiceNonAnonymousMode == true then [{port = 0;}] else [];
|
||||
defaultText = literalExpression ''
|
||||
if config.${opt.settings}.HiddenServiceNonAnonymousMode == true
|
||||
|
@ -816,7 +823,7 @@ in
|
|||
options.TestingTorNetwork = optionBool "TestingTorNetwork";
|
||||
options.TransPort = optionIsolablePorts "TransPort";
|
||||
options.TransProxyType = mkOption {
|
||||
description = descriptionGeneric "TransProxyType";
|
||||
description = lib.mdDoc (descriptionGeneric "TransProxyType");
|
||||
type = with types; nullOr (enum ["default" "TPROXY" "ipfw" "pf-divert"]);
|
||||
default = null;
|
||||
};
|
||||
|
|
|
@ -100,9 +100,9 @@ in
|
|||
enableACME = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = cfg.sslCertificate == null && cfg.sslCertificateKey == null;
|
||||
defaultText = lib.literalDocBook ''
|
||||
<literal>true</literal>, unless <option>services.discourse.sslCertificate</option>
|
||||
and <option>services.discourse.sslCertificateKey</option> are set.
|
||||
defaultText = lib.literalMD ''
|
||||
`true`, unless {option}`services.discourse.sslCertificate`
|
||||
and {option}`services.discourse.sslCertificateKey` are set.
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
Whether an ACME certificate should be used to secure
|
||||
|
|
|
@ -20,7 +20,7 @@ let
|
|||
mkDefault
|
||||
literalExpression
|
||||
isAttrs
|
||||
literalDocBook
|
||||
literalMD
|
||||
maintainers
|
||||
catAttrs
|
||||
collect
|
||||
|
@ -165,7 +165,7 @@ in
|
|||
mkOption {
|
||||
type = port;
|
||||
default = dbPorts.${cfg.database.type};
|
||||
defaultText = literalDocBook "default port of selected database";
|
||||
defaultText = literalMD "default port of selected database";
|
||||
description = lib.mdDoc ''
|
||||
Port of the database to connect to.
|
||||
'';
|
||||
|
|
|
@ -527,7 +527,7 @@ in {
|
|||
occ = mkOption {
|
||||
type = types.package;
|
||||
default = occ;
|
||||
defaultText = literalDocBook "generated script";
|
||||
defaultText = literalMD "generated script";
|
||||
internal = true;
|
||||
description = ''
|
||||
The nextcloud-occ program preconfigured to target this Nextcloud instance.
|
||||
|
|
|
@ -30,8 +30,8 @@ in
|
|||
collectionCgi = mkOption {
|
||||
type = types.path;
|
||||
default = defaultCollectionCgi;
|
||||
defaultText = literalDocBook ''
|
||||
<literal>config.${options.services.collectd.package}</literal> configured for lighttpd
|
||||
defaultText = literalMD ''
|
||||
`config.${options.services.collectd.package}` configured for lighttpd
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
Path to collection.cgi script from (collectd sources)/contrib/collection.cgi
|
||||
|
|
|
@ -62,7 +62,7 @@ in
|
|||
ipAllow = mkOption {
|
||||
type = types.nullOr yaml.type;
|
||||
default = lib.importJSON ./ip_allow.json;
|
||||
defaultText = literalDocBook "upstream defaults";
|
||||
defaultText = literalMD "upstream defaults";
|
||||
example = literalExpression ''
|
||||
{
|
||||
ip_allow = [{
|
||||
|
@ -85,7 +85,7 @@ in
|
|||
logging = mkOption {
|
||||
type = types.nullOr yaml.type;
|
||||
default = lib.importJSON ./logging.json;
|
||||
defaultText = literalDocBook "upstream defaults";
|
||||
defaultText = literalMD "upstream defaults";
|
||||
example = { };
|
||||
description = lib.mdDoc ''
|
||||
Configure logs.
|
||||
|
|
|
@ -24,7 +24,7 @@ let
|
|||
Xft.lcdfilter: lcd${fontconfig.subpixel.lcdfilter}
|
||||
Xft.hinting: ${if fontconfig.hinting.enable then "1" else "0"}
|
||||
Xft.autohint: ${if fontconfig.hinting.autohint then "1" else "0"}
|
||||
Xft.hintstyle: hintslight
|
||||
Xft.hintstyle: ${fontconfig.hinting.style}
|
||||
'';
|
||||
|
||||
# file provided by services.xserver.displayManager.sessionData.wrapper
|
||||
|
@ -285,7 +285,7 @@ in
|
|||
defaultSessionFromLegacyOptions
|
||||
else
|
||||
null;
|
||||
defaultText = literalDocBook ''
|
||||
defaultText = literalMD ''
|
||||
Taken from display manager settings or window manager settings, if either is set.
|
||||
'';
|
||||
example = "gnome";
|
||||
|
|
|
@ -143,7 +143,7 @@ in
|
|||
readOnly = true;
|
||||
internal = true;
|
||||
default = systemActivationScript (removeAttrs config.system.activationScripts [ "script" ]) true;
|
||||
defaultText = literalDocBook "generated activation script";
|
||||
defaultText = literalMD "generated activation script";
|
||||
};
|
||||
|
||||
system.userActivationScripts = mkOption {
|
||||
|
|
|
@ -75,10 +75,10 @@ in
|
|||
|
||||
themePackages = mkOption {
|
||||
default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth;
|
||||
defaultText = literalDocBook ''
|
||||
defaultText = literalMD ''
|
||||
A NixOS branded variant of the breeze theme when
|
||||
<literal>config.${opt.theme} == "breeze"</literal>, otherwise
|
||||
<literal>[ ]</literal>.
|
||||
`config.${opt.theme} == "breeze"`, otherwise
|
||||
`[ ]`.
|
||||
'';
|
||||
type = types.listOf types.package;
|
||||
description = lib.mdDoc ''
|
||||
|
|
|
@ -611,7 +611,7 @@ in
|
|||
then "zstd"
|
||||
else "gzip"
|
||||
);
|
||||
defaultText = literalDocBook "<literal>zstd</literal> if the kernel supports it (5.9+), <literal>gzip</literal> if not";
|
||||
defaultText = literalMD "`zstd` if the kernel supports it (5.9+), `gzip` if not";
|
||||
type = types.either types.str (types.functionTo types.str);
|
||||
description = ''
|
||||
The compressor to use on the initrd image. May be any of:
|
||||
|
|
|
@ -209,7 +209,7 @@ in
|
|||
readOnly = true;
|
||||
type = types.bool;
|
||||
default = inInitrd || inSystem;
|
||||
defaultText = literalDocBook "<literal>true</literal> if ZFS filesystem support is enabled";
|
||||
defaultText = literalMD "`true` if ZFS filesystem support is enabled";
|
||||
description = lib.mdDoc "True if ZFS filesystem support is enabled";
|
||||
};
|
||||
|
||||
|
|
|
@ -172,13 +172,13 @@ let
|
|||
type = types.enum (lib.attrNames tempaddrValues);
|
||||
default = cfg.tempAddresses;
|
||||
defaultText = literalExpression ''config.networking.tempAddresses'';
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
When IPv6 is enabled with SLAAC, this option controls the use of
|
||||
temporary address (aka privacy extensions) on this
|
||||
interface. This is used to reduce tracking.
|
||||
|
||||
See also the global option
|
||||
<xref linkend="opt-networking.tempAddresses"/>, which
|
||||
[](#opt-networking.tempAddresses), which
|
||||
applies to all interfaces where this is not set.
|
||||
|
||||
Possible values are:
|
||||
|
@ -227,15 +227,19 @@ let
|
|||
{ address = "192.168.2.0"; prefixLength = 24; via = "192.168.1.1"; }
|
||||
];
|
||||
type = with types; listOf (submodule (routeOpts 4));
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
List of extra IPv4 static routes that will be assigned to the interface.
|
||||
<warning><para>If the route type is the default <literal>unicast</literal>, then the scope
|
||||
is set differently depending on the value of <option>networking.useNetworkd</option>:
|
||||
the script-based backend sets it to <literal>link</literal>, while networkd sets
|
||||
it to <literal>global</literal>.</para></warning>
|
||||
|
||||
::: {.warning}
|
||||
If the route type is the default `unicast`, then the scope
|
||||
is set differently depending on the value of {option}`networking.useNetworkd`:
|
||||
the script-based backend sets it to `link`, while networkd sets
|
||||
it to `global`.
|
||||
:::
|
||||
|
||||
If you want consistency between the two implementations,
|
||||
set the scope of the route manually with
|
||||
<literal>networking.interfaces.eth0.ipv4.routes = [{ options.scope = "global"; }]</literal>
|
||||
`networking.interfaces.eth0.ipv4.routes = [{ options.scope = "global"; }]`
|
||||
for example.
|
||||
'';
|
||||
};
|
||||
|
@ -407,17 +411,10 @@ let
|
|||
description = "generate IPv6 temporary addresses and use these as source addresses in routing";
|
||||
};
|
||||
};
|
||||
tempaddrDoc = ''
|
||||
<itemizedlist>
|
||||
${concatStringsSep "\n" (mapAttrsToList (name: { description, ... }: ''
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>"${name}"</literal> to ${description};
|
||||
</para>
|
||||
</listitem>
|
||||
'') tempaddrValues)}
|
||||
</itemizedlist>
|
||||
'';
|
||||
tempaddrDoc = concatStringsSep "\n"
|
||||
(mapAttrsToList
|
||||
(name: { description, ... }: ''- `"${name}"` to ${description};'')
|
||||
tempaddrValues);
|
||||
|
||||
hostidFile = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
|
||||
hi="${cfg.hostId}"
|
||||
|
@ -1241,17 +1238,15 @@ in
|
|||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "02:00:00:00:00:01";
|
||||
description = ''
|
||||
MAC address to use for the device. If <literal>null</literal>, then the MAC of the
|
||||
description = lib.mdDoc ''
|
||||
MAC address to use for the device. If `null`, then the MAC of the
|
||||
underlying hardware WLAN device is used.
|
||||
|
||||
INFO: Locally administered MAC addresses are of the form:
|
||||
<itemizedlist>
|
||||
<listitem><para>x2:xx:xx:xx:xx:xx</para></listitem>
|
||||
<listitem><para>x6:xx:xx:xx:xx:xx</para></listitem>
|
||||
<listitem><para>xA:xx:xx:xx:xx:xx</para></listitem>
|
||||
<listitem><para>xE:xx:xx:xx:xx:xx</para></listitem>
|
||||
</itemizedlist>
|
||||
- x2:xx:xx:xx:xx:xx
|
||||
- x6:xx:xx:xx:xx:xx
|
||||
- xA:xx:xx:xx:xx:xx
|
||||
- xE:xx:xx:xx:xx:xx
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -1287,10 +1282,10 @@ in
|
|||
if ''${config.${opt.enableIPv6}} then "default" else "disabled"
|
||||
'';
|
||||
type = types.enum (lib.attrNames tempaddrValues);
|
||||
description = ''
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable IPv6 Privacy Extensions for interfaces not
|
||||
configured explicitly in
|
||||
<xref linkend="opt-networking.interfaces._name_.tempAddress"/>.
|
||||
[](#opt-networking.interfaces._name_.tempAddress).
|
||||
|
||||
This sets the ipv6.conf.*.use_tempaddr sysctl for all
|
||||
interfaces. Possible values are:
|
||||
|
|
|
@ -20,7 +20,7 @@ in {
|
|||
options.virtualisation.digitalOcean.defaultConfigFile = mkOption {
|
||||
type = types.path;
|
||||
default = defaultConfigFile;
|
||||
defaultText = literalDocBook ''
|
||||
defaultText = literalMD ''
|
||||
The default configuration imports user-data if applicable and
|
||||
`(modulesPath + "/virtualisation/digital-ocean-config.nix")`.
|
||||
'';
|
||||
|
|
|
@ -18,6 +18,8 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
|
|||
serverProperties = {
|
||||
enable-rcon = true;
|
||||
level-seed = seed;
|
||||
level-type = "flat";
|
||||
generate-structures = false;
|
||||
online-mode = false;
|
||||
"rcon.password" = rcon-pass;
|
||||
"rcon.port" = rcon-port;
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "bambootracker";
|
||||
version = "0.5.1";
|
||||
version = "0.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BambooTracker";
|
||||
repo = "BambooTracker";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-AEELUJYiapF/sBWRXXuBXUHwnKp0szdIOCNVMYufv94=";
|
||||
sha256 = "sha256-+9PmpmsF08oU//pJOWaoGQzG7a2O13kYqKbGwVRAMlU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake qttools pkg-config ];
|
||||
|
|
|
@ -8,28 +8,38 @@
|
|||
, lua5_3
|
||||
, libid3tag
|
||||
, flac
|
||||
, pcre
|
||||
, pcre2
|
||||
, gzip
|
||||
, perl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mympd";
|
||||
version = "8.0.4";
|
||||
version = "9.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jcorporation";
|
||||
repo = "myMPD";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-hpUoXqblhHreDZg8fDD5S4UG+ltptIbzP9LKyQ/WbX0=";
|
||||
sha256 = "sha256-WmGaZXITvrp7ml7s7FPyp3Q3072KU/P6UombBj99fX0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config cmake ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cmake
|
||||
gzip
|
||||
perl
|
||||
];
|
||||
preConfigure = ''
|
||||
env MYMPD_BUILDDIR=$PWD/build ./build.sh createassets
|
||||
'';
|
||||
buildInputs = [
|
||||
libmpdclient
|
||||
openssl
|
||||
lua5_3
|
||||
libid3tag
|
||||
flac
|
||||
pcre
|
||||
pcre2
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
|
@ -43,7 +53,7 @@ stdenv.mkDerivation rec {
|
|||
hardeningDisable = [ "strictoverflow" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://jcorporation.github.io/mympd";
|
||||
homepage = "https://jcorporation.github.io/myMPD";
|
||||
description = "A standalone and mobile friendly web mpd client with a tiny footprint and advanced features";
|
||||
maintainers = [ lib.maintainers.doronbehar ];
|
||||
platforms = lib.platforms.linux;
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "praat";
|
||||
version = "6.2.10";
|
||||
version = "6.2.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "praat";
|
||||
repo = "praat";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-IYbPMjKWDQQrF+JiqBQ2wsjY+Ms93tEdsG75CxipwaI=";
|
||||
sha256 = "sha256-k6wFTwXMXpLb+nddJ6fOfhzCOrcbQR7Pot8rmrx2gYs=";
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
|
|
|
@ -11,16 +11,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "songrec";
|
||||
version = "0.3.0";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "marin-m";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-aHZH3sQNUUPcMRySy8Di0XUoFo4qjGi2pi0phLwORaA=";
|
||||
sha256 = "sha256-cUiy8ApeUv1K8SEH4APMTvbieGTt4kZYhyB9iGJd/IY=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-EpkB43rMUJO6ouUV9TmQ+RSnGhX32DZHpKic1E6lUyU=";
|
||||
cargoSha256 = "sha256-Tlq4qDp56PXP4N1UyHjtQoRgDrc/19vIv8uml/lAqqc=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
@ -17,9 +17,10 @@ stdenv.mkDerivation rec {
|
|||
categories = [ "Development" ];
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [
|
||||
fontconfig freetype glib gsettings-desktop-schemas gtk jdk libX11
|
||||
libXrender libXtst libsecret makeWrapper zlib
|
||||
libXrender libXtst libsecret zlib
|
||||
] ++ lib.optional (webkitgtk != null) webkitgtk;
|
||||
|
||||
buildCommand = ''
|
||||
|
|
|
@ -5,22 +5,14 @@ The list is ordered from more-specific (the user profile) to the
|
|||
least specific (the system profile)"
|
||||
(reverse (split-string (or (getenv "NIX_PROFILES") ""))))
|
||||
|
||||
;;; Extend `load-path' to search for elisp files in subdirectories of
|
||||
;;; all folders in `NIX_PROFILES'. Also search for one level of
|
||||
;;; subdirectories in these directories to handle multi-file libraries
|
||||
;;; like `mu4e'.'
|
||||
(require 'seq)
|
||||
(let* ((subdirectory-sites (lambda (site-lisp)
|
||||
(when (file-exists-p site-lisp)
|
||||
(seq-filter (lambda (f) (file-directory-p (file-truename f)))
|
||||
;; Returns all files in `site-lisp', excluding `.' and `..'
|
||||
(directory-files site-lisp 'full "^\\([^.]\\|\\.[^.]\\|\\.\\..\\)")))))
|
||||
(paths (apply #'append
|
||||
(mapcar (lambda (profile-dir)
|
||||
(let ((site-lisp (concat profile-dir "/share/emacs/site-lisp/")))
|
||||
(cons site-lisp (funcall subdirectory-sites site-lisp))))
|
||||
(nix--profile-paths)))))
|
||||
(setq load-path (append paths load-path)))
|
||||
;;; Extend `load-path' to search for elisp files in subdirectories of all folders in `NIX_PROFILES'.
|
||||
;;; Non-Nix distros have similar logic in /usr/share/emacs/site-lisp/subdirs.el.
|
||||
;;; See https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Search.html
|
||||
(dolist (profile (nix--profile-paths))
|
||||
(let ((default-directory (expand-file-name "share/emacs/site-lisp/" profile)))
|
||||
(when (file-exists-p default-directory)
|
||||
(setq load-path (cons default-directory load-path))
|
||||
(normal-top-level-add-subdirs-to-load-path))))
|
||||
|
||||
;;; Remove wrapper site-lisp from EMACSLOADPATH so it's not propagated
|
||||
;;; to any other Emacsen that might be started as subprocesses.
|
||||
|
|
|
@ -22,7 +22,7 @@ rec {
|
|||
launcher = runCommand "octave-kernel-launcher" {
|
||||
inherit octave;
|
||||
python = python3.withPackages (ps: [ ps.traitlets ps.jupyter_core ps.ipykernel ps.metakernel kernel ]);
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
} ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
|
@ -16,6 +17,13 @@ rustPlatform.buildRustPackage rec {
|
|||
sha256 = "sha256-ox1qKWxJlUIFzEqeyzG2kqZix3AHnOKFrlpf6O5QM+k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 syntax.d/* -t $out/share/kibi/syntax.d
|
||||
wrapProgram $out/bin/kibi --prefix XDG_DATA_DIRS : "$out/share"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A text editor in ≤1024 lines of code, written in Rust";
|
||||
homepage = "https://github.com/ilai-deutel/kibi";
|
||||
|
|
|
@ -16,11 +16,11 @@ stdenv.mkDerivation rec {
|
|||
pname = "pinegrow";
|
||||
# deactivate auto update, because an old 6.21 version is getting mixed up
|
||||
# see e.g. https://github.com/NixOS/nixpkgs/pull/184460
|
||||
version = "6.6"; # nixpkgs-update: no auto update
|
||||
version = "6.8"; # nixpkgs-update: no auto update
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.pinegrow.com/PinegrowLinux64.${version}.zip";
|
||||
sha256 = "sha256-a3SwUNcMXl42+Gy3wjcx/KvVprgFAO0D0lFPohPV3Tk=";
|
||||
sha256 = "sha256-gqRmu0VR8Aj57UwYYLKICd4FnYZMhM6pTTSGIY5MLMk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -58,16 +58,16 @@ stdenv.mkDerivation rec {
|
|||
# folder and symlinked.
|
||||
unzip -q $src -d $out/opt/pinegrow
|
||||
substituteInPlace $out/opt/pinegrow/Pinegrow.desktop \
|
||||
--replace 'Exec=sh -c "$(dirname %k)/PinegrowLibrary"' 'Exec=sh -c "$out/bin/Pinegrow"'
|
||||
mv $out/opt/pinegrow/Pinegrow.desktop $out/share/applications/Pinegrow.desktop
|
||||
ln -s $out/opt/pinegrow/PinegrowLibrary $out/bin/Pinegrow
|
||||
--replace 'Exec=sh -c "$(dirname %k)/PinegrowLibrary"' 'Exec=sh -c "$out/bin/pinegrow"'
|
||||
mv $out/opt/pinegrow/Pinegrow.desktop $out/share/applications/pinegrow.desktop
|
||||
ln -s $out/opt/pinegrow/PinegrowLibrary $out/bin/pinegrow
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# GSETTINGS_SCHEMAS_PATH is not set in installPhase
|
||||
preFixup = ''
|
||||
wrapProgram $out/bin/Pinegrow \
|
||||
wrapProgram $out/bin/pinegrow \
|
||||
''${makeWrapperArgs[@]} \
|
||||
''${gappsWrapperArgs[@]}
|
||||
'';
|
||||
|
|
|
@ -338,7 +338,7 @@ rec {
|
|||
if vimrcFile != null then vimrcFile
|
||||
else if vimrcConfig != null then mkVimrcFile vimrcConfig
|
||||
else throw "at least one of vimrcConfig and vimrcFile must be specified";
|
||||
bin = runCommand "${name}-bin" { buildInputs = [ makeWrapper ]; } ''
|
||||
bin = runCommand "${name}-bin" { nativeBuildInputs = [ makeWrapper ]; } ''
|
||||
vimrc=${lib.escapeShellArg vimrc}
|
||||
gvimrc=${if gvimrcFile != null then lib.escapeShellArg gvimrcFile else ""}
|
||||
|
||||
|
|
|
@ -979,6 +979,23 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
firefox-devtools.vscode-firefox-debug = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-firefox-debug";
|
||||
publisher = "firefox-devtools";
|
||||
version = "2.9.8";
|
||||
sha256 = "sha256-MCL562FPgEfhUM1KH5LMl7BblbjIkQ4UEwB67RlO5Mk=";
|
||||
};
|
||||
meta = with lib; {
|
||||
changelog = "https://marketplace.visualstudio.com/items/firefox-devtools.vscode-firefox-debug/changelog";
|
||||
description = "A Visual Studio Code extension for debugging web applications and browser extensions in Firefox";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=firefox-devtools.vscode-firefox-debug";
|
||||
homepage = "https://github.com/firefox-devtools/vscode-firefox-debug";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ felschr ];
|
||||
};
|
||||
};
|
||||
|
||||
foam.foam-vscode = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "foam-vscode";
|
||||
|
|
|
@ -6,11 +6,10 @@ let pkg = import ./base.nix {
|
|||
pkgSha256 = "00906lky0z1m0bdqnjmzxgcb19dzvljhddhh42lixyr53sjp94cc";
|
||||
};
|
||||
in callPackage pkg {
|
||||
buildInputs = [ glib gtk3 libxml2 gnuplot libmirage makeWrapper
|
||||
gnome.adwaita-icon-theme gdk-pixbuf librsvg intltool
|
||||
buildInputs = [ glib gtk3 libxml2 gnuplot libmirage gnome.adwaita-icon-theme gdk-pixbuf librsvg
|
||||
python3Packages.python python3Packages.pygobject3 python3Packages.matplotlib ];
|
||||
drvParams = {
|
||||
nativeBuildInputs = [ gobject-introspection cmake ];
|
||||
nativeBuildInputs = [ gobject-introspection cmake makeWrapper intltool ];
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/image-analyzer \
|
||||
--set PYTHONPATH "$PYTHONPATH" \
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{ pname, version, pkgSha256 }:
|
||||
{ lib, stdenv, fetchurl, cmake, pkg-config, buildInputs, drvParams ? {} }:
|
||||
attrs@{ lib, stdenv, fetchurl, cmake, pkg-config, buildInputs, drvParams ? {}, ... }:
|
||||
stdenv.mkDerivation ( rec {
|
||||
inherit pname version buildInputs;
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/cdemu/${pname}-${version}.tar.xz";
|
||||
sha256 = pkgSha256;
|
||||
};
|
||||
nativeBuildInputs = [ pkg-config cmake ];
|
||||
nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ [ pkg-config cmake ];
|
||||
setSourceRoot = ''
|
||||
mkdir build
|
||||
cd build
|
||||
|
|
|
@ -5,8 +5,8 @@ let pkg = import ./base.nix {
|
|||
pkgSha256 = "1prrdhv0ia0axc6b73crszqzh802wlkihz6d100yvg7wbgmqabd7";
|
||||
};
|
||||
in callPackage pkg {
|
||||
buildInputs = [ python3Packages.python python3Packages.dbus-python python3Packages.pygobject3
|
||||
intltool makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper intltool ];
|
||||
buildInputs = [ python3Packages.python python3Packages.dbus-python python3Packages.pygobject3 ];
|
||||
drvParams = {
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/cdemu \
|
||||
|
|
|
@ -5,5 +5,6 @@ let pkg = import ./base.nix {
|
|||
pkgSha256 = "16g6fv1lxkdmbsy6zh5sj54dvgwvm900fd18aq609yg8jnqm644d";
|
||||
};
|
||||
in callPackage pkg {
|
||||
buildInputs = [ glib libao libmirage intltool ];
|
||||
nativeBuildInputs = [ intltool ];
|
||||
buildInputs = [ glib libao libmirage ];
|
||||
}
|
||||
|
|
|
@ -8,10 +8,9 @@ let
|
|||
};
|
||||
inherit (python3Packages) python pygobject3;
|
||||
in callPackage pkg {
|
||||
buildInputs = [ python pygobject3 gtk3 glib libnotify intltool makeWrapper
|
||||
gnome.adwaita-icon-theme gdk-pixbuf librsvg ];
|
||||
buildInputs = [ python pygobject3 gtk3 glib libnotify gnome.adwaita-icon-theme gdk-pixbuf librsvg ];
|
||||
drvParams = {
|
||||
nativeBuildInputs = [ gobject-introspection cmake ];
|
||||
nativeBuildInputs = [ gobject-introspection cmake makeWrapper intltool ];
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/gcdemu \
|
||||
--set PYTHONPATH "$PYTHONPATH" \
|
||||
|
|
|
@ -8,11 +8,11 @@ let pkg = import ./base.nix {
|
|||
pkgSha256 = "0f8i2ha44rykkk3ac2q8zsw3y1zckw6qnf6zvkyrj3qqbzhrf3fm";
|
||||
};
|
||||
in callPackage pkg {
|
||||
buildInputs = [ glib libsndfile zlib bzip2 xz libsamplerate intltool ];
|
||||
buildInputs = [ glib libsndfile zlib bzip2 xz libsamplerate ];
|
||||
drvParams = {
|
||||
PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "${placeholder "out"}/share/gir-1.0";
|
||||
PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0";
|
||||
nativeBuildInputs = [ cmake gobject-introspection pkg-config ];
|
||||
nativeBuildInputs = [ cmake gobject-introspection pkg-config intltool ];
|
||||
propagatedBuildInputs = [ pcre util-linux libselinux libsepol ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sameboy";
|
||||
version = "0.14.7";
|
||||
version = "0.15.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LIJI32";
|
||||
repo = "SameBoy";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-rvcR1mp+lJ6ZFc9WYUK9FBVcG2vD5MoX6lY+AJsMaeQ=";
|
||||
sha256 = "sha256-YLWo6Em/NdU60Dtu4ePANSKLixozxpxVwD3dJcAOs3g=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-VK9FCqIwHGmeJe5lk12lpAGcsC1aPRBiI+XjACXjDd4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite
|
||||
readline ffmpeg makeWrapper netcdf geos postgresql libmysqlclient blas
|
||||
readline ffmpeg netcdf geos postgresql libmysqlclient blas
|
||||
libLAS proj-datumgrid zstd wrapGAppsHook ]
|
||||
++ lib.optionals stdenv.isLinux [ cairo pdal wxGTK31 ]
|
||||
++ lib.optional stdenv.isDarwin wxmac
|
||||
|
|
|
@ -35,7 +35,7 @@ bundlerApp {
|
|||
|
||||
exes = [ "image_optim" ];
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/image_optim \
|
||||
|
|
|
@ -16,8 +16,9 @@ stdenv.mkDerivation rec {
|
|||
wrapProgram $out/bin/timelapse-deflicker --set PERL5LIB $PERL5LIB
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = with perlPackages; [
|
||||
makeWrapper perl
|
||||
perl
|
||||
ImageMagick TermProgressBar ImageExifTool
|
||||
FileType ClassMethodMaker
|
||||
];
|
||||
|
|
|
@ -10,9 +10,9 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "10zxih7gmyhq0az1mnsw2x563l4bbwcns794s4png8rf4d6hjszm";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
buildInputs = [ perl libX11 libXinerama libjpeg libpng libtiff
|
||||
librsvg glib gtk2 libXxf86vm libXext poppler xine-lib ghostscript makeWrapper ];
|
||||
librsvg glib gtk2 libXxf86vm libXext poppler xine-lib ghostscript ];
|
||||
|
||||
# The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the
|
||||
# trick on NIX_LDFLAGS and dontPatchELF to make it find them.
|
||||
|
|
|
@ -7,7 +7,7 @@ bundlerApp rec {
|
|||
inherit ruby;
|
||||
gemdir = ./.;
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
passthru.updateScript = bundlerUpdateScript "gollum";
|
||||
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
, curl, writeShellScript, common-updater-scripts }:
|
||||
|
||||
let
|
||||
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.5-31be26f1/Hubstaff-1.6.5-31be26f1.sh";
|
||||
version = "1.6.5-31be26f1";
|
||||
sha256 = "1z1binnqppyxavmjg0l1cvy64ylzy2v454sws2x1am2qhhbnycjm";
|
||||
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.6-61e2338c/Hubstaff-1.6.6-61e2338c.sh";
|
||||
version = "1.6.6-61e2338c";
|
||||
sha256 = "0i5wxwnrgabirk1x9aii7m428dkr745sfm1lcql4yhlqx4mw6qn1";
|
||||
|
||||
rpath = lib.makeLibraryPath
|
||||
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
|
||||
|
|
|
@ -18,9 +18,10 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0skrc8r4wh4mjfgw1c94awr5sacfb9nfsbm4frikanc9xsy16ksr";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ which highlight ]
|
||||
++ (with perlPackages; [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
|
||||
TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
|
||||
TimeDate gettext DBFile CGISession CGIFormBuilder LocaleGettext
|
||||
RpcXML XMLSimple ImageMagick YAML YAMLLibYAML HTMLTree AuthenPassphrase
|
||||
NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay ])
|
||||
++ lib.optionals docutilsSupport [
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "inherd-quake";
|
||||
version = "0.5.0";
|
||||
version = "0.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phodal";
|
||||
repo = "quake";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-OkgrkjO6IS6P2ZyFFbOprROPzDfQcHYCwaTKFsjjVo8=";
|
||||
sha256 = "sha256-HKAR4LJm0lrQgTOCqtYIRFbO3qHtPbr4Fpx2ek1oJ4Q=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-EMRaChFwjMYZKSX5OvXYLSiwWo1m1H/tHVqc8RXX52A=";
|
||||
cargoSha256 = "sha256-svvtZyfN91OT3yqxH6TgFhGYg9drpXsts4p2WqSHG8w=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ in bundlerApp {
|
|||
then ./full
|
||||
else ./basic;
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/jekyll --prefix PATH : ${rubyWrapper}/bin
|
||||
|
|
|
@ -12,10 +12,10 @@ mkDerivation rec {
|
|||
};
|
||||
|
||||
# LaTeX is used from $PATH, as people often want to have it with extra pkgs
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
buildInputs = [
|
||||
qtbase qtsvg python3 file/*for libmagic*/ bc
|
||||
hunspell makeWrapper # enchant
|
||||
hunspell # enchant
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
|
|
|
@ -24,11 +24,10 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
preConfigure = "./autogen.sh --libexecdir=$(out)/bin";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config makeWrapper libtool ];
|
||||
buildInputs = [
|
||||
glib libwnck libnotify dbus-glib makeWrapper
|
||||
glib libwnck libnotify dbus-glib
|
||||
gsettings-desktop-schemas gnome.gnome-common
|
||||
libtool
|
||||
];
|
||||
|
||||
configureFlags = [ "--libexecdir=$(out)/bin" ];
|
||||
|
|
|
@ -9,9 +9,9 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0g5a7a680b05x27apz0y1ldl5csxpp152wqi42s107jymbp0s20j";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
buildInputs = [
|
||||
glib libwnck libnotify dbus-glib makeWrapper
|
||||
glib libwnck libnotify dbus-glib
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
|
|
|
@ -46,13 +46,13 @@ stdenv.mkDerivation rec {
|
|||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
glib
|
||||
libnotify
|
||||
makeWrapper
|
||||
rofi-unwrapped
|
||||
wl-clipboard
|
||||
xclip
|
||||
|
|
|
@ -13,9 +13,10 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-cf0QTOzhLyTcbJryCQoTVzU8kfrPV6SLpqi4s36X5N0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper which ];
|
||||
buildInputs =
|
||||
[boost] ++
|
||||
(with perlPackages; [ perl makeWrapper which
|
||||
(with perlPackages; [ perl
|
||||
EncodeLocale MathClipper ExtUtilsXSpp
|
||||
MathConvexHullMonotoneChain MathGeometryVoronoi MathPlanePath Moo
|
||||
IOStringy ClassXSAccessor Wx GrowlGNTP NetDBus ImportInto XMLSAX
|
||||
|
|
|
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-IWHj//ZZOdfOCBJHnPnKNoYNtWl/f8H6ARYe1AkqB0U=";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
|
|
@ -41,7 +41,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
sha256 = "1zg13wajsfrl3hli6sihn47db08w037jjq9vgr6m5sjh8r1jb9iy";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ] ++ otherDependencies ++ pythonDependencies;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = otherDependencies ++ pythonDependencies;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "glooctl";
|
||||
version = "1.12.7";
|
||||
version = "1.12.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solo-io";
|
||||
repo = "gloo";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-GFexXy/vH8rbtoxGo0Sy6cO+FxLTGaO67BkBPgaHuws=";
|
||||
hash = "sha256-FSZTonoMojBsp+6K4gID2X92wcOE009hTPNqONxRbps=";
|
||||
};
|
||||
|
||||
subPackages = [ "projects/gloo/cli/cmd" ];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "stable";
|
||||
version = "2.11.2";
|
||||
sha256 = "sha256-6FlOHnOmqZ2jqx9qFMPA5jkxBaNqzeCwsepwXR1Imss=";
|
||||
vendorSha256 = "sha256-wM5qIjabg9ICJcLi8QV9P4G4E7Rn3ctVCqdm2GO8RyU=";
|
||||
version = "2.12.0";
|
||||
sha256 = "0p8k5c0gzpmqp7qrhfcjrhbgwd2mzsn2qpsv7ym0ywjkvrkg3355";
|
||||
vendorSha256 = "sha256-qjXpzS1ctEQfXFjzyBUiIp6+oqABedpwHqDxQz0DJ8U=";
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "edge";
|
||||
version = "22.6.1";
|
||||
sha256 = "sha256-YM6d2bWcjoNMEbgXVR79tcklTRqAhzm6SzJU2k+7BNU=";
|
||||
vendorSha256 = "sha256-i+AbrzN9d9CGZcGj/D4xnYlamp0iOlq2xcax14/GqEE=";
|
||||
version = "22.8.2";
|
||||
sha256 = "114lfq5d5b09zg14iwnmaf0vmm183xr37q7b4bj3m8zbzhpbk7xx";
|
||||
vendorSha256 = "sha256-hKdokt5QW50oc2z8UFMq78DRWpwPlL5tSf2F0rQNEQ8=";
|
||||
}
|
||||
|
|
|
@ -53,6 +53,6 @@ buildGoModule rec {
|
|||
downloadPage = "https://github.com/linkerd/linkerd2/";
|
||||
homepage = "https://linkerd.io/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ Gonzih bryanasdev000 ];
|
||||
maintainers = with maintainers; [ bryanasdev000 Gonzih superherointj ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ cd $(dirname "$0")
|
|||
|
||||
VERSION=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
|
||||
--silent https://api.github.com/repos/linkerd/linkerd2/releases | \
|
||||
jq 'map(.tag_name)' | grep edge | sed 's/["|,| ]//g' | sed 's/edge-//' | sort -V -r | head -n1)
|
||||
jq 'map(.tag_name)' | grep -v -e '-rc' | grep edge | sed 's/["|,| ]//g' | sed 's/edge-//' | sort -V -r | head -n1)
|
||||
|
||||
SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linkerd/linkerd2/archive/refs/tags/edge-${VERSION}.tar.gz)
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ cd $(dirname "$0")
|
|||
|
||||
VERSION=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
|
||||
--silent https://api.github.com/repos/linkerd/linkerd2/releases | \
|
||||
jq 'map(.tag_name)' | grep stable | sed 's/["|,| ]//g' | sed 's/stable-//' | sort -V -r | head -n1)
|
||||
jq 'map(.tag_name)' | grep -v -e '-rc' | grep stable | sed 's/["|,| ]//g' | sed 's/stable-//' | sort -V -r | head -n1)
|
||||
|
||||
SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linkerd/linkerd2/archive/refs/tags/stable-${VERSION}.tar.gz)
|
||||
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "pluto";
|
||||
version = "5.7.0";
|
||||
version = "5.10.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FairwindsOps";
|
||||
repo = "pluto";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-/H8/wpDqlo96qb6QBIxpIGMv6VtK/nn/GwozIJjZyNY=";
|
||||
sha256 = "sha256-Pdw8xPpH9PjLDbno8u3IWI7ygO18j2P3puE55+Pmzec=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-jPVlHyKZ1ygF08OypXOMzHBfb2z5mhg5B8zJmAcQbLk=";
|
||||
vendorSha256 = "sha256-hAnlKMDqrQG8vlmBLufJlq79rb1vo4PdVaJjBBSjnRM=";
|
||||
|
||||
ldflags = [
|
||||
"-w" "-s"
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
# SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
|
||||
let rev = "51c79060fc1433233eb43842de564f0f2e47be86";
|
||||
let rev = "551bf68c694927839c3add25a2512f880902ee9b";
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "sonobuoy";
|
||||
version = "0.56.4"; # Do not forget to update `rev` above
|
||||
version = "0.56.10"; # Do not forget to update `rev` above
|
||||
|
||||
ldflags =
|
||||
let t = "github.com/vmware-tanzu/sonobuoy";
|
||||
|
@ -20,10 +20,10 @@ buildGoModule rec {
|
|||
owner = "vmware-tanzu";
|
||||
repo = "sonobuoy";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-6kHqfWDrZL3J5SrZ3JK50Z2Sw8mwM0zrfaKWo22g27A=";
|
||||
sha256 = "sha256-Hykm8h0kJzTL6XbaBe3vtoghmP4LmvPfBhrTgCmNyRE=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-8n4a1PLUYDU46lVegQoOCmmRSR1XfnjgEGZ+R5f36Ic=";
|
||||
vendorSha256 = "sha256-jBm3t/kvijAv5KOLhDJ1kGLdzpFJiBs/Vtu2mO2lnPM=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "starboard";
|
||||
version = "0.15.4";
|
||||
version = "0.15.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aquasecurity";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-GhcHvKqYktBAPB443ZjJ3LYRJZorO7IH1OEnEQKUO0g=";
|
||||
sha256 = "sha256-AgAcN1KtMW7yHi12Gg1M3hu7DQA7WdWtY3qf4K7c1YA=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
|
@ -20,7 +20,7 @@ buildGoModule rec {
|
|||
find "$out" -name .git -print0 | xargs -0 rm -rf
|
||||
'';
|
||||
};
|
||||
vendorSha256 = "sha256-ozbejIFR0mDgCgca+2yaPRiMMHLOEsC9u+kQUe69spc=";
|
||||
vendorSha256 = "sha256-aQrKppIJOCTIDrKvtE6WTkQY8mfYzUh7mBKUd6z19E0=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "dnscontrol";
|
||||
version = "3.19.0";
|
||||
version = "3.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StackExchange";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-bP9tksdP/hNjC4opACLYHad8jj137+WQfb3bM8A6tVQ=";
|
||||
sha256 = "sha256-jBpapZIQGYC63SEc4kT6pEbNR3H1IQFM7P/wxMlrP8I=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-/lFH/4fQgK0LAqLIn39r+hi0pqNlJuupWlLhOhDh0TU=";
|
||||
vendorSha256 = "sha256-iY4Q1P4Mir6idcv88Op5v0kQ7PkoOm85aCBb845xvGs=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
|
|
|
@ -24,13 +24,13 @@
|
|||
, libvpx
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.1.0";
|
||||
version = "2.6.0";
|
||||
pname = "baresip";
|
||||
src = fetchFromGitHub {
|
||||
owner = "baresip";
|
||||
repo = "baresip";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-9mc1Beo7/iNhDXSDC/jiTL+lJRt8ah/1xF1heoHTE+g=";
|
||||
sha256 = "sha256-YcXLRhW7PyvK0R1+7DOjmtxg+Ajq9u7fvZFQO7DJapQ=";
|
||||
};
|
||||
postPatch = ''
|
||||
patchShebangs modules/ctrl_dbus/gen.sh
|
||||
|
|
|
@ -61,13 +61,13 @@
|
|||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.9.18";
|
||||
version = "5.14.14";
|
||||
pname = "feishu";
|
||||
packageHash = "5db94058d7ad"; # A hash value used in the download url
|
||||
packageHash = "2844ab12b34f"; # A hash value used in the download url
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/${packageHash}/Feishu-linux_x64-${version}.deb";
|
||||
sha256 = "ffb29b5a184b025d4e4ea468a8f684a7067ab5bfd45867abc370e59be63892c7";
|
||||
sha256 = "c0ca999edc10d8ada08c46b33b15d7db0ced264248abd3ebfdb895d8457e1bec";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0cm1hvi68iqgjsg15xdii271pklgzjn9j9afb1c460z71kgy3wz2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [
|
||||
perl
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with perlPackages; [
|
||||
|
|
|
@ -7,7 +7,7 @@ in symlinkJoin {
|
|||
|
||||
paths = [ pidgin ] ++ plugins;
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/pidgin \
|
||||
|
|
|
@ -137,7 +137,7 @@ let
|
|||
hash = "sha256-vLUEvOSBUyAJIWHOAIkTqTW/W6TkgmeyRzQbquZP810=";
|
||||
};
|
||||
|
||||
buildInputs = [ xar cpio makeWrapper ];
|
||||
nativeBuildInputs = [ xar cpio makeWrapper ];
|
||||
|
||||
unpackPhase = ''
|
||||
xar -xf $src
|
||||
|
|
|
@ -8,9 +8,9 @@ stdenv.mkDerivation rec {
|
|||
|
||||
dontStrip = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [
|
||||
perl
|
||||
makeWrapper
|
||||
] ++ (with perlPackages; [
|
||||
FileRemove
|
||||
DigestSHA1
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "seaweedfs";
|
||||
version = "3.15";
|
||||
version = "3.23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chrislusf";
|
||||
repo = "seaweedfs";
|
||||
rev = version;
|
||||
sha256 = "sha256-07cIqGKmw2Co7GEc/APiOWTgflUwDIQPQzs73XTAPQA=";
|
||||
sha256 = "sha256-Pq0t8KDrmPfkJ0sWtpw1iAwycLj+YIuYIanyqEjdf5A=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-4U96s9PJLuVuzgWXCMLKfXK/XK1EaC+ep2c8TpKVRlc=";
|
||||
vendorSha256 = "sha256-YbdGtB6BEo8RoEYXjj1NG8bXMDojddd1UY0IXQK1Kgo=";
|
||||
|
||||
subPackages = [ "weed" ];
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue