Project import generated by Copybara.

GitOrigin-RevId: c97e777ff06fcb8d37dcdf5e21e9eff1f34f0e90
This commit is contained in:
Default email 2022-09-11 12:47:08 -03:00
parent bfe31111ba
commit 7bc014aa9c
375 changed files with 8927 additions and 5548 deletions

View file

@ -0,0 +1,21 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p html-tidy
set -euo pipefail
shopt -s inherit_errexit
normalize() {
tidy \
--anchor-as-name no \
--coerce-endtags no \
--escape-scripts no \
--fix-backslash no \
--fix-style-tags no \
--fix-uri no \
--indent yes \
--wrap 0 \
< "$1" \
2> /dev/null
}
diff -U3 <(normalize "$1") <(normalize "$2")

View file

@ -27,5 +27,13 @@ jobs:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere. # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Building NixOS manual - name: Building NixOS manual with DocBook options
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux
- name: Building NixOS manual with Markdown options
run: |
export NIX_PATH=nixpkgs=$(pwd)
nix-build \
--option restrict-eval true \
--arg configuration '{ documentation.nixos.options.allowDocBook = false; }' \
nixos/release.nix \
-A manual.x86_64-linux

View file

@ -0,0 +1,64 @@
name: "Check NixOS Manual DocBook rendering against MD rendering"
on:
schedule:
# * is a special character in YAML so you have to quote this string
# Check every 24 hours
- cron: '0 0 * * *'
permissions:
contents: read
jobs:
check-rendering-equivalence:
permissions:
issues: write # for peter-evans/create-or-update-comment to create or update comment
if: github.repository_owner == 'NixOS'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v17
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v10
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Build DocBook and MD manuals
run: |
export NIX_PATH=nixpkgs=$(pwd)
nix-build \
--option restrict-eval true \
-o docbook nixos/release.nix \
-A manual.x86_64-linux
nix-build \
--option restrict-eval true \
--arg configuration '{ documentation.nixos.options.allowDocBook = false; }' \
-o md nixos/release.nix \
-A manual.x86_64-linux
- name: Compare DocBook and MD manuals
id: check
run: |
export NIX_PATH=nixpkgs=$(pwd)
.github/workflows/compare-manuals.sh \
docbook/share/doc/nixos/options.html \
md/share/doc/nixos/options.html
# if the manual can't be built we don't want to notify anyone.
# while this may temporarily hide rendering failures it will be a lot
# less noisy until all nixpkgs pull requests have stopped using
# docbook for option docs.
- name: Comment on failure
uses: peter-evans/create-or-update-comment@v2
if: ${{ failure() && steps.check.conclusion == 'failure' }}
with:
issue-number: 189318
body: |
Markdown and DocBook manuals do not agree.
Check https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }} for details.

View file

@ -284,7 +284,10 @@ rec {
*/ */
literalDocBook = text: literalDocBook = text:
if ! isString text then throw "literalDocBook expects a string." if ! isString text then throw "literalDocBook expects a string."
else { _type = "literalDocBook"; inherit text; }; else
lib.warnIf (lib.isInOldestRelease 2211)
"literalDocBook is deprecated, use literalMD instead"
{ _type = "literalDocBook"; inherit text; };
/* Transition marker for documentation that's already migrated to markdown /* Transition marker for documentation that's already migrated to markdown
syntax. syntax.

View file

@ -227,11 +227,11 @@ rec {
}; };
int = mkOptionType { int = mkOptionType {
name = "int"; name = "int";
description = "signed integer"; description = "signed integer";
check = isInt; check = isInt;
merge = mergeEqualOption; merge = mergeEqualOption;
}; };
# Specialized subdomains of int # Specialized subdomains of int
ints = ints =
@ -292,10 +292,34 @@ rec {
port = ints.u16; port = ints.u16;
float = mkOptionType { float = mkOptionType {
name = "float"; name = "float";
description = "floating point number"; description = "floating point number";
check = isFloat; check = isFloat;
merge = mergeEqualOption; merge = mergeEqualOption;
};
number = either int float;
numbers = let
betweenDesc = lowest: highest:
"${builtins.toJSON lowest} and ${builtins.toJSON highest} (both inclusive)";
in {
between = lowest: highest:
assert lib.assertMsg (lowest <= highest)
"numbers.between: lowest must be smaller than highest";
addCheck number (x: x >= lowest && x <= highest) // {
name = "numberBetween";
description = "integer or floating point number between ${betweenDesc lowest highest}";
};
nonnegative = addCheck number (x: x >= 0) // {
name = "numberNonnegative";
description = "nonnegative integer or floating point number, meaning >=0";
};
positive = addCheck number (x: x > 0) // {
name = "numberPositive";
description = "positive integer or floating point number, meaning >0";
};
}; };
str = mkOptionType { str = mkOptionType {

View file

@ -1027,6 +1027,12 @@
fingerprint = "BF8B F725 DA30 E53E 7F11 4ED8 AAA5 0652 F047 9205"; fingerprint = "BF8B F725 DA30 E53E 7F11 4ED8 AAA5 0652 F047 9205";
}]; }];
}; };
apraga = {
email = "alexis.praga@proton.me";
github = "apraga";
githubId = 914687;
name = "Alexis Praga";
};
ar1a = { ar1a = {
email = "aria@ar1as.space"; email = "aria@ar1as.space";
github = "ar1a"; github = "ar1a";
@ -1075,6 +1081,12 @@
githubId = 628387; githubId = 628387;
name = "Arian van Putten"; name = "Arian van Putten";
}; };
arikgrahl = {
email = "mail@arik-grahl.de";
github = "arikgrahl";
githubId = 8049011;
name = "Arik Grahl";
};
aristid = { aristid = {
email = "aristidb@gmail.com"; email = "aristidb@gmail.com";
github = "aristidb"; github = "aristidb";
@ -6043,6 +6055,12 @@
fingerprint = "A506 C38D 5CC8 47D0 DF01 134A DA8B 833B 5260 4E63"; fingerprint = "A506 C38D 5CC8 47D0 DF01 134A DA8B 833B 5260 4E63";
}]; }];
}; };
jcs090218 = {
email = "jcs090218@gmail.com";
github = "jcs090218";
githubId = 8685505;
name = "Jen-Chieh Shen";
};
jcumming = { jcumming = {
email = "jack@mudshark.org"; email = "jack@mudshark.org";
github = "jcumming"; github = "jcumming";
@ -8599,6 +8617,13 @@
githubId = 71893; githubId = 71893;
name = "Michael Maclean"; name = "Michael Maclean";
}; };
mglolenstine = {
email = "mglolenstine@gmail.com";
github = "MGlolenstine";
githubId = 9406770;
matrix = "@mglolenstine:matrix.org";
name = "MGlolenstine";
};
mgregoire = { mgregoire = {
email = "gregoire@martinache.net"; email = "gregoire@martinache.net";
github = "M-Gregoire"; github = "M-Gregoire";
@ -15268,6 +15293,12 @@
fingerprint = "4384 B8E1 299F C028 1641 7B8F EC30 EFBE FA7E 84A4"; fingerprint = "4384 B8E1 299F C028 1641 7B8F EC30 EFBE FA7E 84A4";
}]; }];
}; };
bezmuth = {
email = "benkel97@protonmail.com";
name = "Ben Kelly";
github = "bezmuth";
githubId = 31394095;
};
cafkafk = { cafkafk = {
email = "cafkafk@cafkafk.com"; email = "cafkafk@cafkafk.com";
matrix = "@cafkafk:matrix.cafkafk.com"; matrix = "@cafkafk:matrix.cafkafk.com";
@ -15284,4 +15315,10 @@
githubId = 7775707; githubId = 7775707;
name = "RB"; name = "RB";
}; };
bpaulin = {
email = "brunopaulin@bpaulin.net";
github = "bpaulin";
githubId = 115711;
name = "bpaulin";
};
} }

View file

@ -6,6 +6,7 @@
, extraSources ? [] , extraSources ? []
, baseOptionsJSON ? null , baseOptionsJSON ? null
, warningsAreErrors ? true , warningsAreErrors ? true
, allowDocBook ? true
, prefix ? ../../.. , prefix ? ../../..
}: }:
@ -28,7 +29,7 @@ let
stripAnyPrefixes = lib.flip (lib.foldr lib.removePrefix) prefixesToStrip; stripAnyPrefixes = lib.flip (lib.foldr lib.removePrefix) prefixesToStrip;
optionsDoc = buildPackages.nixosOptionsDoc { optionsDoc = buildPackages.nixosOptionsDoc {
inherit options revision baseOptionsJSON warningsAreErrors; inherit options revision baseOptionsJSON warningsAreErrors allowDocBook;
transformOptions = opt: opt // { transformOptions = opt: opt // {
# Clean up declaration sites to not refer to the NixOS source tree. # Clean up declaration sites to not refer to the NixOS source tree.
declarations = map stripAnyPrefixes opt.declarations; declarations = map stripAnyPrefixes opt.declarations;

View file

@ -44,26 +44,23 @@ The function `mkOption` accepts the following arguments.
: A textual representation of the default value to be rendered verbatim in : A textual representation of the default value to be rendered verbatim in
the manual. Useful if the default value is a complex expression or depends the manual. Useful if the default value is a complex expression or depends
on other values or packages. on other values or packages.
Use `lib.literalExpression` for a Nix expression, `lib.literalDocBook` for Use `lib.literalExpression` for a Nix expression, `lib.literalMD` for
a plain English description in DocBook format. a plain English description in [Nixpkgs-flavored Markdown](
https://nixos.org/nixpkgs/manual/#sec-contributing-markup) format.
`example` `example`
: An example value that will be shown in the NixOS manual. : An example value that will be shown in the NixOS manual.
You can use `lib.literalExpression` and `lib.literalDocBook` in the same way You can use `lib.literalExpression` and `lib.literalMD` in the same way
as in `defaultText`. as in `defaultText`.
`description` `description`
: A textual description of the option, in DocBook format, that will be : A textual description of the option, in [Nixpkgs-flavored Markdown](
https://nixos.org/nixpkgs/manual/#sec-contributing-markup) format, that will be
included in the NixOS manual. During the migration process from DocBook included in the NixOS manual. During the migration process from DocBook
to CommonMark the description may also be written in CommonMark, but has to CommonMark the description may also be written in DocBook, but this is
to be wrapped in `lib.mdDoc` to differentiate it from DocBook. See discouraged.
the nixpkgs manual for [the list of CommonMark extensions](
https://nixos.org/nixpkgs/manual/#sec-contributing-markup)
supported by NixOS documentation.
New documentation should preferably be written as CommonMark.
## Utility functions for common option patterns {#sec-option-declarations-util} ## Utility functions for common option patterns {#sec-option-declarations-util}

View file

@ -4,7 +4,7 @@ Option types are a way to put constraints on the values a module option
can take. Types are also responsible of how values are merged in case of can take. Types are also responsible of how values are merged in case of
multiple value definitions. multiple value definitions.
## Basic Types {#sec-option-types-basic} ## Basic types {#sec-option-types-basic}
Basic types are the simplest available types in the module system. Basic Basic types are the simplest available types in the module system. Basic
types include multiple string types that mainly differ in how definition types include multiple string types that mainly differ in how definition
@ -25,6 +25,11 @@ merging is handled.
: A top-level store path. This can be an attribute set pointing : A top-level store path. This can be an attribute set pointing
to a store path, like a derivation or a flake input. to a store path, like a derivation or a flake input.
`types.enum` *`l`*
: One element of the list *`l`*, e.g. `types.enum [ "left" "right" ]`.
Multiple definitions cannot be merged.
`types.anything` `types.anything`
: A type that accepts any value and recursively merges attribute sets : A type that accepts any value and recursively merges attribute sets
@ -95,7 +100,7 @@ merging is handled.
problems. problems.
::: :::
Integer-related types: ### Numeric types {#sec-option-types-numeric}
`types.int` `types.int`
@ -118,6 +123,10 @@ Integer-related types:
from 0 to 2^n1 respectively (e.g. `0` from 0 to 2^n1 respectively (e.g. `0`
to `255` for 8 bits). to `255` for 8 bits).
`types.ints.between` *`lowest highest`*
: An integer between *`lowest`* and *`highest`* (both inclusive).
`types.ints.positive` `types.ints.positive`
: A positive integer (that is > 0). : A positive integer (that is > 0).
@ -127,12 +136,44 @@ Integer-related types:
: A port number. This type is an alias to : A port number. This type is an alias to
`types.ints.u16`. `types.ints.u16`.
String-related types: `types.float`
: A floating point number.
::: {.warning}
Converting a floating point number to a string with `toString` or `toJSON`
may result in [precision loss](https://github.com/NixOS/nix/issues/5733).
:::
`types.number`
: Either a signed integer or a floating point number. No implicit conversion
is done between the two types, and multiple equal definitions will only be
merged if they have the same type.
`types.numbers.between` *`lowest highest`*
: An integer or floating point number between *`lowest`* and *`highest`* (both inclusive).
`types.numbers.nonnegative`
: A nonnegative integer or floating point number (that is >= 0).
`types.numbers.positive`
: A positive integer or floating point number (that is > 0).
### String types {#sec-option-types-string}
`types.str` `types.str`
: A string. Multiple definitions cannot be merged. : A string. Multiple definitions cannot be merged.
`types.separatedString` *`sep`*
: A string. Multiple definitions are concatenated with *`sep`*, e.g.
`types.separatedString "|"`.
`types.lines` `types.lines`
: A string. Multiple definitions are concatenated with a new line : A string. Multiple definitions are concatenated with a new line
@ -144,7 +185,7 @@ String-related types:
`types.envVar` `types.envVar`
: A string. Multiple definitions are concatenated with a collon `":"`. : A string. Multiple definitions are concatenated with a colon `":"`.
`types.strMatching` `types.strMatching`
@ -152,24 +193,9 @@ String-related types:
definitions cannot be merged. The regular expression is processed definitions cannot be merged. The regular expression is processed
using `builtins.match`. using `builtins.match`.
## Value Types {#sec-option-types-value} ## Submodule types {#sec-option-types-submodule}
Value types are types that take a value parameter. Submodules are detailed in [Submodule](#section-option-types-submodule).
`types.enum` *`l`*
: One element of the list *`l`*, e.g. `types.enum [ "left" "right" ]`.
Multiple definitions cannot be merged.
`types.separatedString` *`sep`*
: A string with a custom separator *`sep`*, e.g.
`types.separatedString "|"`.
`types.ints.between` *`lowest highest`*
: An integer between *`lowest`* and *`highest`* (both inclusive). Useful
for creating types like `types.port`.
`types.submodule` *`o`* `types.submodule` *`o`*
@ -178,7 +204,6 @@ Value types are types that take a value parameter.
value. Submodules are used in composed types to create modular value. Submodules are used in composed types to create modular
options. This is equivalent to options. This is equivalent to
`types.submoduleWith { modules = toList o; shorthandOnlyDefinesConfig = true; }`. `types.submoduleWith { modules = toList o; shorthandOnlyDefinesConfig = true; }`.
Submodules are detailed in [Submodule](#section-option-types-submodule).
`types.submoduleWith` { *`modules`*, *`specialArgs`* ? {}, *`shorthandOnlyDefinesConfig`* ? false } `types.submoduleWith` { *`modules`*, *`specialArgs`* ? {}, *`shorthandOnlyDefinesConfig`* ? false }
@ -239,7 +264,7 @@ Value types are types that take a value parameter.
more convenient and discoverable than expecting the module user to more convenient and discoverable than expecting the module user to
type-merge with the `attrsOf submodule` option. type-merge with the `attrsOf submodule` option.
## Composed Types {#sec-option-types-composed} ## Composed types {#sec-option-types-composed}
Composed types are types that take a type as parameter. `listOf Composed types are types that take a type as parameter. `listOf
int` and `either int str` are examples of composed types. int` and `either int str` are examples of composed types.
@ -496,7 +521,7 @@ Types are mainly characterized by their `check` and `merge` functions.
of strings, and `defs` the list of defined values as a list. It is of strings, and `defs` the list of defined values as a list. It is
possible to override a type merge function for custom needs. possible to override a type merge function for custom needs.
## Custom Types {#sec-option-types-custom} ## Custom types {#sec-option-types-custom}
Custom types can be created with the `mkOptionType` function. As type Custom types can be created with the `mkOptionType` function. As type
creation includes some more complex topics such as submodule handling, creation includes some more complex topics such as submodule handling,

View file

@ -69,8 +69,10 @@ options = {
verbatim in the manual. Useful if the default value is a verbatim in the manual. Useful if the default value is a
complex expression or depends on other values or packages. Use complex expression or depends on other values or packages. Use
<literal>lib.literalExpression</literal> for a Nix expression, <literal>lib.literalExpression</literal> for a Nix expression,
<literal>lib.literalDocBook</literal> for a plain English <literal>lib.literalMD</literal> for a plain English
description in DocBook format. description in
<link xlink:href="https://nixos.org/nixpkgs/manual/#sec-contributing-markup">Nixpkgs-flavored
Markdown</link> format.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -82,7 +84,7 @@ options = {
<para> <para>
An example value that will be shown in the NixOS manual. You An example value that will be shown in the NixOS manual. You
can use <literal>lib.literalExpression</literal> and can use <literal>lib.literalExpression</literal> and
<literal>lib.literalDocBook</literal> in the same way as in <literal>lib.literalMD</literal> in the same way as in
<literal>defaultText</literal>. <literal>defaultText</literal>.
</para> </para>
</listitem> </listitem>
@ -93,18 +95,12 @@ options = {
</term> </term>
<listitem> <listitem>
<para> <para>
A textual description of the option, in DocBook format, that A textual description of the option, in
will be included in the NixOS manual. During the migration <link xlink:href="https://nixos.org/nixpkgs/manual/#sec-contributing-markup">Nixpkgs-flavored
process from DocBook to CommonMark the description may also be Markdown</link> format, that will be included in the NixOS
written in CommonMark, but has to be wrapped in manual. During the migration process from DocBook to
<literal>lib.mdDoc</literal> to differentiate it from DocBook. CommonMark the description may also be written in DocBook, but
See the nixpkgs manual for this is discouraged.
<link xlink:href="https://nixos.org/nixpkgs/manual/#sec-contributing-markup">the
list of CommonMark extensions</link> supported by NixOS
documentation.
</para>
<para>
New documentation should preferably be written as CommonMark.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View file

@ -6,7 +6,7 @@
in case of multiple value definitions. in case of multiple value definitions.
</para> </para>
<section xml:id="sec-option-types-basic"> <section xml:id="sec-option-types-basic">
<title>Basic Types</title> <title>Basic types</title>
<para> <para>
Basic types are the simplest available types in the module system. Basic types are the simplest available types in the module system.
Basic types include multiple string types that mainly differ in Basic types include multiple string types that mainly differ in
@ -49,6 +49,20 @@
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>
<literal>types.enum</literal>
<emphasis><literal>l</literal></emphasis>
</term>
<listitem>
<para>
One element of the list
<emphasis><literal>l</literal></emphasis>, e.g.
<literal>types.enum [ &quot;left&quot; &quot;right&quot; ]</literal>.
Multiple definitions cannot be merged.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<literal>types.anything</literal> <literal>types.anything</literal>
@ -150,186 +164,241 @@
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
<para> <section xml:id="sec-option-types-numeric">
Integer-related types: <title>Numeric types</title>
</para> <variablelist>
<variablelist> <varlistentry>
<varlistentry> <term>
<term> <literal>types.int</literal>
<literal>types.int</literal> </term>
</term> <listitem>
<listitem> <para>
<para> A signed integer.
A signed integer. </para>
</para> </listitem>
</listitem> </varlistentry>
</varlistentry> <varlistentry>
<varlistentry> <term>
<term> <literal>types.ints.{s8, s16, s32}</literal>
<literal>types.ints.{s8, s16, s32}</literal> </term>
</term> <listitem>
<listitem> <para>
<para> Signed integers with a fixed length (8, 16 or 32 bits).
Signed integers with a fixed length (8, 16 or 32 bits). They They go from 2^n/2 to 2^n/21 respectively (e.g.
go from 2^n/2 to 2^n/21 respectively (e.g. <literal>128</literal> to <literal>127</literal> for 8
<literal>128</literal> to <literal>127</literal> for 8 bits).
bits). </para>
</para> </listitem>
</listitem> </varlistentry>
</varlistentry> <varlistentry>
<varlistentry> <term>
<term> <literal>types.ints.unsigned</literal>
<literal>types.ints.unsigned</literal> </term>
</term> <listitem>
<listitem> <para>
<para> An unsigned integer (that is &gt;= 0).
An unsigned integer (that is &gt;= 0). </para>
</para> </listitem>
</listitem> </varlistentry>
</varlistentry> <varlistentry>
<varlistentry> <term>
<term> <literal>types.ints.{u8, u16, u32}</literal>
<literal>types.ints.{u8, u16, u32}</literal> </term>
</term> <listitem>
<listitem> <para>
<para> Unsigned integers with a fixed length (8, 16 or 32 bits).
Unsigned integers with a fixed length (8, 16 or 32 bits). They go from 0 to 2^n1 respectively (e.g.
They go from 0 to 2^n1 respectively (e.g. <literal>0</literal> to <literal>255</literal> for 8
<literal>0</literal> to <literal>255</literal> for 8 bits). bits).
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<literal>types.ints.positive</literal> <literal>types.ints.between</literal>
</term> <emphasis><literal>lowest highest</literal></emphasis>
<listitem> </term>
<para> <listitem>
A positive integer (that is &gt; 0). <para>
</para> An integer between
</listitem> <emphasis><literal>lowest</literal></emphasis> and
</varlistentry> <emphasis><literal>highest</literal></emphasis> (both
<varlistentry> inclusive).
<term> </para>
<literal>types.port</literal> </listitem>
</term> </varlistentry>
<listitem> <varlistentry>
<para> <term>
A port number. This type is an alias to <literal>types.ints.positive</literal>
<literal>types.ints.u16</literal>. </term>
</para> <listitem>
</listitem> <para>
</varlistentry> A positive integer (that is &gt; 0).
</variablelist> </para>
<para> </listitem>
String-related types: </varlistentry>
</para> <varlistentry>
<variablelist> <term>
<varlistentry> <literal>types.port</literal>
<term> </term>
<literal>types.str</literal> <listitem>
</term> <para>
<listitem> A port number. This type is an alias to
<para> <literal>types.ints.u16</literal>.
A string. Multiple definitions cannot be merged. </para>
</para> </listitem>
</listitem> </varlistentry>
</varlistentry> <varlistentry>
<varlistentry> <term>
<term> <literal>types.float</literal>
<literal>types.lines</literal> </term>
</term> <listitem>
<listitem> <para>
<para> A floating point number.
A string. Multiple definitions are concatenated with a new </para>
line <literal>&quot;\n&quot;</literal>. <warning>
</para> <para>
</listitem> Converting a floating point number to a string with
</varlistentry> <literal>toString</literal> or <literal>toJSON</literal>
<varlistentry> may result in
<term> <link xlink:href="https://github.com/NixOS/nix/issues/5733">precision
<literal>types.commas</literal> loss</link>.
</term> </para>
<listitem> </warning>
<para> </listitem>
A string. Multiple definitions are concatenated with a comma </varlistentry>
<literal>&quot;,&quot;</literal>. <varlistentry>
</para> <term>
</listitem> <literal>types.number</literal>
</varlistentry> </term>
<varlistentry> <listitem>
<term> <para>
<literal>types.envVar</literal> Either a signed integer or a floating point number. No
</term> implicit conversion is done between the two types, and
<listitem> multiple equal definitions will only be merged if they
<para> have the same type.
A string. Multiple definitions are concatenated with a </para>
collon <literal>&quot;:&quot;</literal>. </listitem>
</para> </varlistentry>
</listitem> <varlistentry>
</varlistentry> <term>
<varlistentry> <literal>types.numbers.between</literal>
<term> <emphasis><literal>lowest highest</literal></emphasis>
<literal>types.strMatching</literal> </term>
</term> <listitem>
<listitem> <para>
<para> An integer or floating point number between
A string matching a specific regular expression. Multiple <emphasis><literal>lowest</literal></emphasis> and
definitions cannot be merged. The regular expression is <emphasis><literal>highest</literal></emphasis> (both
processed using <literal>builtins.match</literal>. inclusive).
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> <varlistentry>
<term>
<literal>types.numbers.nonnegative</literal>
</term>
<listitem>
<para>
A nonnegative integer or floating point number (that is
&gt;= 0).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.numbers.positive</literal>
</term>
<listitem>
<para>
A positive integer or floating point number (that is &gt;
0).
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="sec-option-types-string">
<title>String types</title>
<variablelist>
<varlistentry>
<term>
<literal>types.str</literal>
</term>
<listitem>
<para>
A string. Multiple definitions cannot be merged.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.separatedString</literal>
<emphasis><literal>sep</literal></emphasis>
</term>
<listitem>
<para>
A string. Multiple definitions are concatenated with
<emphasis><literal>sep</literal></emphasis>, e.g.
<literal>types.separatedString &quot;|&quot;</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.lines</literal>
</term>
<listitem>
<para>
A string. Multiple definitions are concatenated with a new
line <literal>&quot;\n&quot;</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.commas</literal>
</term>
<listitem>
<para>
A string. Multiple definitions are concatenated with a
comma <literal>&quot;,&quot;</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.envVar</literal>
</term>
<listitem>
<para>
A string. Multiple definitions are concatenated with a
colon <literal>&quot;:&quot;</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.strMatching</literal>
</term>
<listitem>
<para>
A string matching a specific regular expression. Multiple
definitions cannot be merged. The regular expression is
processed using <literal>builtins.match</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</section>
</section> </section>
<section xml:id="sec-option-types-value"> <section xml:id="sec-option-types-submodule">
<title>Value Types</title> <title>Submodule types</title>
<para> <para>
Value types are types that take a value parameter. Submodules are detailed in
<link linkend="section-option-types-submodule">Submodule</link>.
</para> </para>
<variablelist> <variablelist>
<varlistentry>
<term>
<literal>types.enum</literal>
<emphasis><literal>l</literal></emphasis>
</term>
<listitem>
<para>
One element of the list
<emphasis><literal>l</literal></emphasis>, e.g.
<literal>types.enum [ &quot;left&quot; &quot;right&quot; ]</literal>.
Multiple definitions cannot be merged.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.separatedString</literal>
<emphasis><literal>sep</literal></emphasis>
</term>
<listitem>
<para>
A string with a custom separator
<emphasis><literal>sep</literal></emphasis>, e.g.
<literal>types.separatedString &quot;|&quot;</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<literal>types.ints.between</literal>
<emphasis><literal>lowest highest</literal></emphasis>
</term>
<listitem>
<para>
An integer between
<emphasis><literal>lowest</literal></emphasis> and
<emphasis><literal>highest</literal></emphasis> (both
inclusive). Useful for creating types like
<literal>types.port</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<literal>types.submodule</literal> <literal>types.submodule</literal>
@ -345,8 +414,6 @@
in composed types to create modular options. This is in composed types to create modular options. This is
equivalent to equivalent to
<literal>types.submoduleWith { modules = toList o; shorthandOnlyDefinesConfig = true; }</literal>. <literal>types.submoduleWith { modules = toList o; shorthandOnlyDefinesConfig = true; }</literal>.
Submodules are detailed in
<link linkend="section-option-types-submodule">Submodule</link>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -467,7 +534,7 @@
</variablelist> </variablelist>
</section> </section>
<section xml:id="sec-option-types-composed"> <section xml:id="sec-option-types-composed">
<title>Composed Types</title> <title>Composed types</title>
<para> <para>
Composed types are types that take a type as parameter. Composed types are types that take a type as parameter.
<literal>listOf int</literal> and <literal>listOf int</literal> and
@ -850,7 +917,7 @@ nixThings = mkOption {
</variablelist> </variablelist>
</section> </section>
<section xml:id="sec-option-types-custom"> <section xml:id="sec-option-types-custom">
<title>Custom Types</title> <title>Custom types</title>
<para> <para>
Custom types can be created with the Custom types can be created with the
<literal>mkOptionType</literal> function. As type creation <literal>mkOptionType</literal> function. As type creation

View file

@ -243,6 +243,15 @@ OK
</para> </para>
<programlisting> <programlisting>
# parted /dev/sda -- mkpart primary 1MB -8GB # parted /dev/sda -- mkpart primary 1MB -8GB
</programlisting>
</listitem>
<listitem>
<para>
Set the root partitions boot flag to on. This allows the
disk to be booted from.
</para>
<programlisting>
# parted /dev/sda -- set 1 boot on
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>

View file

@ -265,6 +265,14 @@
<link linkend="opt-services.tempo.enable">services.tempo</link>. <link linkend="opt-services.tempo.enable">services.tempo</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<link xlink:href="https://www.ausweisapp.bund.de/">AusweisApp2</link>,
the authentication software for the German ID card. Available
as
<link linkend="opt-programs.ausweisapp.enable">programs.ausweisapp</link>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<link xlink:href="https://github.com/zalando/patroni">Patroni</link>, <link xlink:href="https://github.com/zalando/patroni">Patroni</link>,
@ -577,6 +585,25 @@
as coreboots fork is no longer available. as coreboots fork is no longer available.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Option descriptions, examples, and defaults writting in
DocBook are now deprecated. Using CommonMark is preferred and
will become the default in a future release.
</para>
</listitem>
<listitem>
<para>
The
<literal>documentation.nixos.options.allowDocBook</literal>
option was added to ease the transition to CommonMark option
documentation. Setting this option to <literal>false</literal>
causes an error for every option included in the manual that
uses DocBook documentation; it defaults to
<literal>true</literal> to preserve the previous behavior and
will be removed once the transition to CommonMark is complete.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The udisks2 service, available at The udisks2 service, available at

View file

@ -183,7 +183,13 @@ update /etc/fstab.
# parted /dev/sda -- mkpart primary 1MB -8GB # parted /dev/sda -- mkpart primary 1MB -8GB
``` ```
3. Finally, add a *swap* partition. The size required will vary 3. Set the root partition's boot flag to on. This allows the disk to be booted from.
```ShellSession
# parted /dev/sda -- set 1 boot on
```
4. Finally, add a *swap* partition. The size required will vary
according to needs, here a 8GiB one is created. according to needs, here a 8GiB one is created.
```ShellSession ```ShellSession

View file

@ -94,6 +94,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable). - [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
- [AusweisApp2](https://www.ausweisapp.bund.de/), the authentication software for the German ID card. Available as [programs.ausweisapp](#opt-programs.ausweisapp.enable).
- [Patroni](https://github.com/zalando/patroni), a template for PostgreSQL HA with ZooKeeper, etcd or Consul. - [Patroni](https://github.com/zalando/patroni), a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
Available as [services.patroni](options.html#opt-services.patroni.enable). Available as [services.patroni](options.html#opt-services.patroni.enable).
@ -197,6 +199,10 @@ Use `configure.packages` instead.
- memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available. - memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available.
- Option descriptions, examples, and defaults writting in DocBook are now deprecated. Using CommonMark is preferred and will become the default in a future release.
- The `documentation.nixos.options.allowDocBook` option was added to ease the transition to CommonMark option documentation. Setting this option to `false` causes an error for every option included in the manual that uses DocBook documentation; it defaults to `true` to preserve the previous behavior and will be removed once the transition to CommonMark is complete.
- The udisks2 service, available at `services.udisks2.enable`, is now disabled by default. It will automatically be enabled through services and desktop environments as needed. - The udisks2 service, available at `services.udisks2.enable`, is now disabled by default. It will automatically be enabled through services and desktop environments as needed.
This also means that polkit will now actually be disabled by default. The default for `security.polkit.enable` was already flipped in the previous release, but udisks2 being enabled by default re-enabled it. This also means that polkit will now actually be disabled by default. The default for `security.polkit.enable` was already flipped in the previous release, but udisks2 being enabled by default re-enabled it.

View file

@ -34,6 +34,10 @@
# instead of printing warnings for eg options with missing descriptions (which may be lost # instead of printing warnings for eg options with missing descriptions (which may be lost
# by nix build unless -L is given), emit errors instead and fail the build # by nix build unless -L is given), emit errors instead and fail the build
, warningsAreErrors ? true , warningsAreErrors ? true
# allow docbook option docs if `true`. only markdown documentation is allowed when set to
# `false`, and a different renderer may be used with different bugs and performance
# characteristics but (hopefully) indistinguishable output.
, allowDocBook ? true
}: }:
let let
@ -127,26 +131,23 @@ in rec {
]; ];
options = builtins.toFile "options.json" options = builtins.toFile "options.json"
(builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix)); (builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix));
# merge with an empty set if baseOptionsJSON is null to run markdown
# processing on the input options
baseJSON =
if baseOptionsJSON == null
then builtins.toFile "base.json" "{}"
else baseOptionsJSON;
} }
'' ''
# Export list of options in different format. # Export list of options in different format.
dst=$out/share/doc/nixos dst=$out/share/doc/nixos
mkdir -p $dst mkdir -p $dst
${ python ${./mergeJSON.py} \
if baseOptionsJSON == null ${lib.optionalString warningsAreErrors "--warnings-are-errors"} \
then '' ${lib.optionalString (! allowDocBook) "--error-on-docbook"} \
# `cp $options $dst/options.json`, but with temporary $baseJSON $options \
# markdown processing > $dst/options.json
python ${./mergeJSON.py} $options <(echo '{}') > $dst/options.json
''
else ''
python ${./mergeJSON.py} \
${lib.optionalString warningsAreErrors "--warnings-are-errors"} \
${baseOptionsJSON} $options \
> $dst/options.json
''
}
brotli -9 < $dst/options.json > $dst/options.json.br brotli -9 < $dst/options.json > $dst/options.json.br

View file

@ -212,8 +212,17 @@ def convertMD(options: Dict[str, Any]) -> str:
return options return options
warningsAreErrors = sys.argv[1] == "--warnings-are-errors" warningsAreErrors = False
optOffset = 1 if warningsAreErrors else 0 errorOnDocbook = False
optOffset = 0
for arg in sys.argv[1:]:
if arg == "--warnings-are-errors":
optOffset += 1
warningsAreErrors = True
if arg == "--error-on-docbook":
optOffset += 1
errorOnDocbook = True
options = pivot(json.load(open(sys.argv[1 + optOffset], 'r'))) options = pivot(json.load(open(sys.argv[1 + optOffset], 'r')))
overrides = pivot(json.load(open(sys.argv[2 + optOffset], 'r'))) overrides = pivot(json.load(open(sys.argv[2 + optOffset], 'r')))
@ -241,9 +250,33 @@ for (k, v) in overrides.items():
severity = "error" if warningsAreErrors else "warning" severity = "error" if warningsAreErrors else "warning"
def is_docbook(o, key):
val = o.get(key, {})
if not isinstance(val, dict):
return False
return val.get('_type', '') == 'literalDocBook'
# check that every option has a description # check that every option has a description
hasWarnings = False hasWarnings = False
hasErrors = False
for (k, v) in options.items(): for (k, v) in options.items():
if errorOnDocbook:
if isinstance(v.value.get('description', {}), str):
hasErrors = True
print(
f"\x1b[1;31merror: option {v.name} description uses DocBook\x1b[0m",
file=sys.stderr)
elif is_docbook(v.value, 'defaultText'):
hasErrors = True
print(
f"\x1b[1;31merror: option {v.name} default uses DocBook\x1b[0m",
file=sys.stderr)
elif is_docbook(v.value, 'example'):
hasErrors = True
print(
f"\x1b[1;31merror: option {v.name} example uses DocBook\x1b[0m",
file=sys.stderr)
if v.value.get('description', None) is None: if v.value.get('description', None) is None:
hasWarnings = True hasWarnings = True
print(f"\x1b[1;31m{severity}: option {v.name} has no description\x1b[0m", file=sys.stderr) print(f"\x1b[1;31m{severity}: option {v.name} has no description\x1b[0m", file=sys.stderr)
@ -254,6 +287,8 @@ for (k, v) in options.items():
f"\x1b[1;31m{severity}: option {v.name} has no type. Please specify a valid type, see " + f"\x1b[1;31m{severity}: option {v.name} has no type. Please specify a valid type, see " +
"https://nixos.org/manual/nixos/stable/index.html#sec-option-types\x1b[0m", file=sys.stderr) "https://nixos.org/manual/nixos/stable/index.html#sec-option-types\x1b[0m", file=sys.stderr)
if hasErrors:
sys.exit(1)
if hasWarnings and warningsAreErrors: if hasWarnings and warningsAreErrors:
print( print(
"\x1b[1;31m" + "\x1b[1;31m" +

View file

@ -26,7 +26,7 @@ with lib;
# Provide networkmanager for easy wireless configuration. # Provide networkmanager for easy wireless configuration.
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.wireless.enable = mkForce false; networking.wireless.enable = mkImageMediaOverride false;
# KDE complains if power management is disabled (to be precise, if # KDE complains if power management is disabled (to be precise, if
# there is no power management backend such as upower). # there is no power management backend such as upower).

View file

@ -99,7 +99,7 @@ let
exit 1 exit 1
} >&2 } >&2
''; '';
inherit (cfg.nixos.options) warningsAreErrors; inherit (cfg.nixos.options) warningsAreErrors allowDocBook;
}; };
@ -255,6 +255,23 @@ in
''; '';
}; };
nixos.options.allowDocBook = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc ''
Whether to allow DocBook option docs. When set to `false` all option using
DocBook documentation will cause a manual build error; additionally a new
renderer may be used.
::: {.note}
The `false` setting for this option is not yet fully supported. While it
should work fine and produce the same output as the previous toolchain
using DocBook it may not work in all circumstances. Whether markdown option
documentation is allowed is independent of this option.
:::
'';
};
nixos.options.warningsAreErrors = mkOption { nixos.options.warningsAreErrors = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;

View file

@ -128,6 +128,7 @@
./programs/adb.nix ./programs/adb.nix
./programs/appgate-sdp.nix ./programs/appgate-sdp.nix
./programs/atop.nix ./programs/atop.nix
./programs/ausweisapp.nix
./programs/autojump.nix ./programs/autojump.nix
./programs/bandwhich.nix ./programs/bandwhich.nix
./programs/bash/bash.nix ./programs/bash/bash.nix

View file

@ -22,10 +22,10 @@ with lib;
config = { config = {
# Enable in installer, even if the minimal profile disables it. # Enable in installer, even if the minimal profile disables it.
documentation.enable = mkForce true; documentation.enable = mkImageMediaOverride true;
# Show the manual. # Show the manual.
documentation.nixos.enable = mkForce true; documentation.nixos.enable = mkImageMediaOverride true;
# Use less privileged nixos user # Use less privileged nixos user
users.users.nixos = { users.users.nixos = {
@ -41,7 +41,7 @@ with lib;
# Allow passwordless sudo from nixos user # Allow passwordless sudo from nixos user
security.sudo = { security.sudo = {
enable = mkDefault true; enable = mkDefault true;
wheelNeedsPassword = mkForce false; wheelNeedsPassword = mkImageMediaOverride false;
}; };
# Automatically log in at the virtual consoles. # Automatically log in at the virtual consoles.

View file

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.ausweisapp;
in
{
options.programs.ausweisapp = {
enable = mkEnableOption (lib.mdDoc "AusweisApp2");
openFirewall = mkOption {
description = lib.mdDoc ''
Whether to open the required firewall ports for the Smartphone as Card Reader (SaC) functionality of AusweisApp2.
'';
default = false;
type = lib.types.bool;
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ AusweisApp2 ];
networking.firewall.allowedUDPPorts = lib.optionals cfg.openFirewall [ 24727 ];
};
}

View file

@ -7,7 +7,7 @@ let
format = pkgs.formats.toml { }; format = pkgs.formats.toml { };
in { in {
options.programs.rust-motd = { options.programs.rust-motd = {
enable = mkEnableOption "rust-motd"; enable = mkEnableOption (lib.mdDoc "rust-motd");
enableMotdInSSHD = mkOption { enableMotdInSSHD = mkOption {
default = true; default = true;
type = types.bool; type = types.bool;

View file

@ -52,10 +52,11 @@ let
{ type = lib.types.commas; { type = lib.types.commas;
default = ""; default = "";
description = lib.mdDoc '' description = lib.mdDoc ''
A comma-separated list of capabilities to be given to the wrapper A comma-separated list of capability clauses to be given to the
program. For capabilities supported by the system check the wrapper program. The format for capability clauses is described in the
{manpage}`capabilities(7)` TEXTUAL REPRESENTATION section of the {manpage}`cap_from_text(3)`
manual page. manual page. For a list of capabilities supported by the system, check
the {manpage}`capabilities(7)` manual page.
::: {.note} ::: {.note}
`cap_setpcap`, which is required for the wrapper `cap_setpcap`, which is required for the wrapper

View file

@ -9,7 +9,7 @@ let
inherit name; inherit name;
value = mkOption { value = mkOption {
default = null; default = null;
inherit description; description = lib.mdDoc description;
type = types.nullOr types.lines; type = types.nullOr types.lines;
} // (if example == null then {} else { inherit example; }); } // (if example == null then {} else { inherit example; });
}; };

View file

@ -96,10 +96,8 @@ let
}; };
} cfg.extraConfig; } cfg.extraConfig;
configFile = pkgs.runCommandLocal "config.toml" { configFile = pkgs.runCommandLocal "config.toml" { } ''
nativeBuildInputs = [ pkgs.remarshal ]; ${pkgs.buildPackages.remarshal}/bin/remarshal -if json -of toml \
} ''
remarshal -if json -of toml \
< ${pkgs.writeText "config.json" (builtins.toJSON configOptions)} \ < ${pkgs.writeText "config.json" (builtins.toJSON configOptions)} \
> $out > $out
''; '';

View file

@ -6,7 +6,7 @@ in {
meta = { maintainers = with lib.maintainers; [ numkem ]; }; meta = { maintainers = with lib.maintainers; [ numkem ]; };
options = { options = {
services.espanso = { enable = options.mkEnableOption "Espanso"; }; services.espanso = { enable = options.mkEnableOption (lib.mdDoc "Espanso"); };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {

View file

@ -43,8 +43,10 @@ in
format = pkgs.formats.toml { }; format = pkgs.formats.toml { };
conf = format.generate "vector.toml" cfg.settings; conf = format.generate "vector.toml" cfg.settings;
validateConfig = file: validateConfig = file:
pkgs.runCommand "validate-vector-conf" { } '' pkgs.runCommand "validate-vector-conf" {
${pkgs.vector}/bin/vector validate --no-environment "${file}" nativeBuildInputs = [ pkgs.buildPackages.vector ];
} ''
vector validate --no-environment "${file}"
ln -s "${file}" "$out" ln -s "${file}" "$out"
''; '';
in in

View file

@ -87,6 +87,14 @@ in
description = lib.mdDoc "Specifies the path of the repository directory. If it does not exist, Gollum will create it on startup."; description = lib.mdDoc "Specifies the path of the repository directory. If it does not exist, Gollum will create it on startup.";
}; };
package = mkOption {
type = types.package;
default = pkgs.gollum;
defaultText = literalExpression "pkgs.gollum";
description = lib.mdDoc ''
The package used in the service
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -120,7 +128,7 @@ in
Group = config.users.groups.gollum.name; Group = config.users.groups.gollum.name;
WorkingDirectory = cfg.stateDir; WorkingDirectory = cfg.stateDir;
ExecStart = '' ExecStart = ''
${pkgs.gollum}/bin/gollum \ ${cfg.package}/bin/gollum \
--port ${toString cfg.port} \ --port ${toString cfg.port} \
--host ${cfg.address} \ --host ${cfg.address} \
--config ${pkgs.writeText "gollum-config.rb" cfg.extraConfig} \ --config ${pkgs.writeText "gollum-config.rb" cfg.extraConfig} \

View file

@ -101,7 +101,7 @@ let
todosrht todosrht
]); ]);
mkOptionNullOrStr = description: mkOption { mkOptionNullOrStr = description: mkOption {
inherit description; description = lib.mdDoc description;
type = with types; nullOr str; type = with types; nullOr str;
default = null; default = null;
}; };

View file

@ -628,18 +628,18 @@ in {
}; };
allowedDomains = mkOption { allowedDomains = mkOption {
description = lib.mdDoc '' description = lib.mdDoc ''
To limit access to authenticated users who are members of one or more groups, Limits access to users who belong to specific domains.
set allowedGroups to a comma- or space-separated list of group object IDs. Separate domains with space or comma.
You can find object IDs for a specific group on the Azure portal.
''; '';
default = ""; default = "";
type = types.str; type = types.str;
}; };
allowedGroups = mkOption { allowedGroups = mkOption {
description = lib.mdDoc '' description = lib.mdDoc ''
Limits access to users who belong to specific domains. To limit access to authenticated users who are members of one or more groups,
Separate domains with space or comma. set allowedGroups to a comma- or space-separated list of group object IDs.
''; You can find object IDs for a specific group on the Azure portal.
'';
default = ""; default = "";
type = types.str; type = types.str;
}; };

View file

@ -16,7 +16,7 @@ in
}; };
"${field}" = lib.mkOption { "${field}" = lib.mkOption {
type = int; type = int;
inherit description; description = lib.mdDoc description;
}; };
location = lib.mkOption { location = lib.mkOption {
type = str; type = str;

View file

@ -11,7 +11,7 @@ in
v2rayEndpoint = mkOption { v2rayEndpoint = mkOption {
type = types.str; type = types.str;
default = "127.0.0.1:54321"; default = "127.0.0.1:54321";
description = '' description = lib.mdDoc ''
v2ray grpc api endpoint v2ray grpc api endpoint
''; '';
}; };

View file

@ -396,12 +396,12 @@ in
}; };
precomputation.elgamal = mkEnableTrueOption "Precomputed ElGamal tables" // { precomputation.elgamal = mkEnableTrueOption "Precomputed ElGamal tables" // {
description = '' description = lib.mdDoc ''
Whenever to use precomputated tables for ElGamal. Whenever to use precomputated tables for ElGamal.
<command>i2pd</command> defaults to <literal>false</literal> {command}`i2pd` defaults to `false`
to save 64M of memory (and looses some performance). to save 64M of memory (and looses some performance).
We default to <literal>true</literal> as that is what most We default to `true` as that is what most
users want anyway. users want anyway.
''; '';
}; };

View file

@ -268,11 +268,11 @@ in
type = types.nullOr types.path; type = types.nullOr types.path;
default = null; default = null;
example = "/run/keys/keepalived.env"; example = "/run/keys/keepalived.env";
description = '' description = lib.mdDoc ''
Environment variables from this file will be interpolated into the Environment variables from this file will be interpolated into the
final config file using envsubst with this syntax: <literal>$ENVIRONMENT</literal> final config file using envsubst with this syntax: `$ENVIRONMENT`
or <literal>''${VARIABLE}</literal>. or `''${VARIABLE}`.
The file should contain lines formatted as <literal>SECRET_VAR=SECRET_VALUE</literal>. The file should contain lines formatted as `SECRET_VAR=SECRET_VALUE`.
This is useful to avoid putting secrets into the nix store. This is useful to avoid putting secrets into the nix store.
''; '';
}; };

View file

@ -152,7 +152,7 @@ rec {
option = mkOption { option = mkOption {
type = types.attrsOf (types.submodule {options = paramsToOptions params;}); type = types.attrsOf (types.submodule {options = paramsToOptions params;});
default = {}; default = {};
inherit description; description = lib.mdDoc description;
}; };
render = postfix: attrs: render = postfix: attrs:
let postfixedAttrs = mapAttrs' (name: nameValuePair "${name}-${postfix}") attrs; let postfixedAttrs = mapAttrs' (name: nameValuePair "${name}-${postfix}") attrs;

View file

@ -325,11 +325,12 @@ in {
}; };
type = mkOption { type = mkOption {
type = types.enum [ "sendreceive" "sendonly" "receiveonly" ]; type = types.enum [ "sendreceive" "sendonly" "receiveonly" "receiveencrypted" ];
default = "sendreceive"; default = "sendreceive";
description = lib.mdDoc '' description = lib.mdDoc ''
Whether to only send changes for this folder, only receive them Whether to only send changes for this folder, only receive them
or both. or both. `receiveencrypted` can be used for untrusted devices. See
<https://docs.syncthing.net/users/untrusted.html> for reference.
''; '';
}; };
@ -528,6 +529,8 @@ in {
}; };
systemd.services = { systemd.services = {
# upstream reference:
# https://github.com/syncthing/syncthing/blob/main/etc/linux-systemd/system/syncthing%40.service
syncthing = mkIf cfg.systemService { syncthing = mkIf cfg.systemService {
description = "Syncthing service"; description = "Syncthing service";
after = [ "network.target" ]; after = [ "network.target" ];
@ -539,7 +542,7 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
Restart = "on-failure"; Restart = "on-failure";
SuccessExitStatus = "2 3 4"; SuccessExitStatus = "3 4";
RestartForceExitStatus="3 4"; RestartForceExitStatus="3 4";
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;

View file

@ -187,12 +187,12 @@ in {
}; };
allowAuxiliaryImperativeNetworks = mkEnableOption (lib.mdDoc "support for imperative & declarative networks") // { allowAuxiliaryImperativeNetworks = mkEnableOption (lib.mdDoc "support for imperative & declarative networks") // {
description = '' description = lib.mdDoc ''
Whether to allow configuring networks "imperatively" (e.g. via Whether to allow configuring networks "imperatively" (e.g. via
<literal>wpa_supplicant_gui</literal>) and declaratively via `wpa_supplicant_gui`) and declaratively via
<xref linkend="opt-networking.wireless.networks"/>. [](#opt-networking.wireless.networks).
Please note that this adds a custom patch to <literal>wpa_supplicant</literal>. Please note that this adds a custom patch to `wpa_supplicant`.
''; '';
}; };

View file

@ -63,7 +63,7 @@ in {
KillMode = "process"; KillMode = "process";
Restart = "on-failure"; Restart = "on-failure";
EnvironmentFile = cfg.credentialsFile; EnvironmentFile = cfg.credentialsFile;
ExecStart = "${cfg.package}/bin/cachix ${lib.optionalString cfg.verbose "--verbose"} deploy agent ${cfg.name} ${if cfg.profile != null then profile else ""}"; ExecStart = "${cfg.package}/bin/cachix ${lib.optionalString cfg.verbose "--verbose"} deploy agent ${cfg.name} ${if cfg.profile != null then cfg.profile else ""}";
}; };
}; };
}; };

View file

@ -48,12 +48,12 @@ in
{ {
# interface # interface
options.services.dolibarr = { options.services.dolibarr = {
enable = mkEnableOption "dolibarr"; enable = mkEnableOption (lib.mdDoc "dolibarr");
domain = mkOption { domain = mkOption {
type = types.str; type = types.str;
default = "localhost"; default = "localhost";
description = '' description = lib.mdDoc ''
Domain name of your server. Domain name of your server.
''; '';
}; };
@ -61,35 +61,35 @@ in
user = mkOption { user = mkOption {
type = types.str; type = types.str;
default = "dolibarr"; default = "dolibarr";
description = '' description = lib.mdDoc ''
User account under which dolibarr runs. User account under which dolibarr runs.
<note><para> ::: {.note}
If left as the default value this user will automatically be created If left as the default value this user will automatically be created
on system activation, otherwise you are responsible for on system activation, otherwise you are responsible for
ensuring the user exists before the dolibarr application starts. ensuring the user exists before the dolibarr application starts.
</para></note> :::
''; '';
}; };
group = mkOption { group = mkOption {
type = types.str; type = types.str;
default = "dolibarr"; default = "dolibarr";
description = '' description = lib.mdDoc ''
Group account under which dolibarr runs. Group account under which dolibarr runs.
<note><para> ::: {.note}
If left as the default value this group will automatically be created If left as the default value this group will automatically be created
on system activation, otherwise you are responsible for on system activation, otherwise you are responsible for
ensuring the group exists before the dolibarr application starts. ensuring the group exists before the dolibarr application starts.
</para></note> :::
''; '';
}; };
stateDir = mkOption { stateDir = mkOption {
type = types.str; type = types.str;
default = "/var/lib/dolibarr"; default = "/var/lib/dolibarr";
description = '' description = lib.mdDoc ''
State and configuration directory dolibarr will use. State and configuration directory dolibarr will use.
''; '';
}; };
@ -98,33 +98,33 @@ in
host = mkOption { host = mkOption {
type = types.str; type = types.str;
default = "localhost"; default = "localhost";
description = "Database host address."; description = lib.mdDoc "Database host address.";
}; };
port = mkOption { port = mkOption {
type = types.port; type = types.port;
default = 3306; default = 3306;
description = "Database host port."; description = lib.mdDoc "Database host port.";
}; };
name = mkOption { name = mkOption {
type = types.str; type = types.str;
default = "dolibarr"; default = "dolibarr";
description = "Database name."; description = lib.mdDoc "Database name.";
}; };
user = mkOption { user = mkOption {
type = types.str; type = types.str;
default = "dolibarr"; default = "dolibarr";
description = "Database username."; description = lib.mdDoc "Database username.";
}; };
passwordFile = mkOption { passwordFile = mkOption {
type = with types; nullOr path; type = with types; nullOr path;
default = null; default = null;
example = "/run/keys/dolibarr-dbpassword"; example = "/run/keys/dolibarr-dbpassword";
description = "Database password file."; description = lib.mdDoc "Database password file.";
}; };
createLocally = mkOption { createLocally = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
description = "Create the database and database user locally."; description = lib.mdDoc "Create the database and database user locally.";
}; };
}; };

View file

@ -133,45 +133,45 @@ let
in { in {
options.services.writefreely = { options.services.writefreely = {
enable = enable =
lib.mkEnableOption "Writefreely, build a digital writing community"; lib.mkEnableOption (lib.mdDoc "Writefreely, build a digital writing community");
package = lib.mkOption { package = lib.mkOption {
type = lib.types.package; type = lib.types.package;
default = pkgs.writefreely; default = pkgs.writefreely;
defaultText = lib.literalExpression "pkgs.writefreely"; defaultText = lib.literalExpression "pkgs.writefreely";
description = "Writefreely package to use."; description = lib.mdDoc "Writefreely package to use.";
}; };
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "/var/lib/writefreely"; default = "/var/lib/writefreely";
description = "The state directory where keys and data are stored."; description = lib.mdDoc "The state directory where keys and data are stored.";
}; };
user = mkOption { user = mkOption {
type = types.str; type = types.str;
default = "writefreely"; default = "writefreely";
description = "User under which Writefreely is ran."; description = lib.mdDoc "User under which Writefreely is ran.";
}; };
group = mkOption { group = mkOption {
type = types.str; type = types.str;
default = "writefreely"; default = "writefreely";
description = "Group under which Writefreely is ran."; description = lib.mdDoc "Group under which Writefreely is ran.";
}; };
host = mkOption { host = mkOption {
type = types.str; type = types.str;
default = ""; default = "";
description = "The public host name to serve."; description = lib.mdDoc "The public host name to serve.";
example = "example.com"; example = "example.com";
}; };
settings = mkOption { settings = mkOption {
default = { }; default = { };
description = '' description = lib.mdDoc ''
Writefreely configuration (<filename>config.ini</filename>). Refer to Writefreely configuration ({file}`config.ini`). Refer to
<link xlink:href="https://writefreely.org/docs/latest/admin/config" /> <https://writefreely.org/docs/latest/admin/config>
for details. for details.
''; '';
@ -183,7 +183,7 @@ in {
theme = mkOption { theme = mkOption {
type = types.str; type = types.str;
default = "write"; default = "write";
description = "The theme to apply."; description = lib.mdDoc "The theme to apply.";
}; };
}; };
@ -192,7 +192,7 @@ in {
type = types.port; type = types.port;
default = if cfg.nginx.enable then 18080 else 80; default = if cfg.nginx.enable then 18080 else 80;
defaultText = "80"; defaultText = "80";
description = "The port WriteFreely should listen on."; description = lib.mdDoc "The port WriteFreely should listen on.";
}; };
}; };
}; };
@ -203,60 +203,60 @@ in {
type = mkOption { type = mkOption {
type = types.enum [ "sqlite3" "mysql" ]; type = types.enum [ "sqlite3" "mysql" ];
default = "sqlite3"; default = "sqlite3";
description = "The database provider to use."; description = lib.mdDoc "The database provider to use.";
}; };
name = mkOption { name = mkOption {
type = types.str; type = types.str;
default = "writefreely"; default = "writefreely";
description = "The name of the database to store data in."; description = lib.mdDoc "The name of the database to store data in.";
}; };
user = mkOption { user = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = if cfg.database.type == "mysql" then "writefreely" else null; default = if cfg.database.type == "mysql" then "writefreely" else null;
defaultText = "writefreely"; defaultText = "writefreely";
description = "The database user to connect as."; description = lib.mdDoc "The database user to connect as.";
}; };
passwordFile = mkOption { passwordFile = mkOption {
type = types.nullOr types.path; type = types.nullOr types.path;
default = null; default = null;
description = "The file to load the database password from."; description = lib.mdDoc "The file to load the database password from.";
}; };
host = mkOption { host = mkOption {
type = types.str; type = types.str;
default = "localhost"; default = "localhost";
description = "The database host to connect to."; description = lib.mdDoc "The database host to connect to.";
}; };
port = mkOption { port = mkOption {
type = types.port; type = types.port;
default = 3306; default = 3306;
description = "The port used when connecting to the database host."; description = lib.mdDoc "The port used when connecting to the database host.";
}; };
tls = mkOption { tls = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = description =
"Whether or not TLS should be used for the database connection."; lib.mdDoc "Whether or not TLS should be used for the database connection.";
}; };
migrate = mkOption { migrate = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
description = description =
"Whether or not to automatically run migrations on startup."; lib.mdDoc "Whether or not to automatically run migrations on startup.";
}; };
createLocally = mkOption { createLocally = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = lib.mdDoc ''
When <option>services.writefreely.database.type</option> is set to When {option}`services.writefreely.database.type` is set to
<code>"mysql"</code>, this option will enable the MySQL service locally. `"mysql"`, this option will enable the MySQL service locally.
''; '';
}; };
}; };
@ -264,15 +264,15 @@ in {
admin = { admin = {
name = mkOption { name = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
description = "The name of the first admin user."; description = lib.mdDoc "The name of the first admin user.";
default = null; default = null;
}; };
initialPasswordFile = mkOption { initialPasswordFile = mkOption {
type = types.path; type = types.path;
description = '' description = lib.mdDoc ''
Path to a file containing the initial password for the admin user. Path to a file containing the initial password for the admin user.
If not provided, the default password will be set to <code>nixos</code>. If not provided, the default password will be set to `nixos`.
''; '';
default = pkgs.writeText "default-admin-pass" "nixos"; default = pkgs.writeText "default-admin-pass" "nixos";
defaultText = "/nix/store/xxx-default-admin-pass"; defaultText = "/nix/store/xxx-default-admin-pass";
@ -284,13 +284,13 @@ in {
type = types.bool; type = types.bool;
default = false; default = false;
description = description =
"Whether or not to enable and configure nginx as a proxy for WriteFreely."; lib.mdDoc "Whether or not to enable and configure nginx as a proxy for WriteFreely.";
}; };
forceSSL = mkOption { forceSSL = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = "Whether or not to force the use of SSL."; description = lib.mdDoc "Whether or not to force the use of SSL.";
}; };
}; };
@ -299,7 +299,7 @@ in {
type = types.bool; type = types.bool;
default = false; default = false;
description = description =
"Whether or not to automatically fetch and configure SSL certs."; lib.mdDoc "Whether or not to automatically fetch and configure SSL certs.";
}; };
}; };
}; };

View file

@ -11,15 +11,6 @@ let
addCheck (listOf x) (y: length y == 2) addCheck (listOf x) (y: length y == 2)
// { description = "pair of ${x.description}"; }; // { description = "pair of ${x.description}"; };
floatBetween = a: b: with types;
let
# toString prints floats with hardcoded high precision
floatToString = f: builtins.toJSON f;
in
addCheck float (x: x <= b && x >= a)
// { description = "a floating point number in " +
"range [${floatToString a}, ${floatToString b}]"; };
mkDefaultAttrs = mapAttrs (n: v: mkDefault v); mkDefaultAttrs = mapAttrs (n: v: mkDefault v);
# Basically a tinkered lib.generators.mkKeyValueDefault # Basically a tinkered lib.generators.mkKeyValueDefault
@ -93,7 +84,7 @@ in {
}; };
fadeSteps = mkOption { fadeSteps = mkOption {
type = pairOf (floatBetween 0.01 1); type = pairOf (types.numbers.between 0.01 1);
default = [ 0.028 0.03 ]; default = [ 0.028 0.03 ];
example = [ 0.04 0.04 ]; example = [ 0.04 0.04 ];
description = lib.mdDoc '' description = lib.mdDoc ''
@ -133,7 +124,7 @@ in {
}; };
shadowOpacity = mkOption { shadowOpacity = mkOption {
type = floatBetween 0 1; type = types.numbers.between 0 1;
default = 0.75; default = 0.75;
example = 0.8; example = 0.8;
description = lib.mdDoc '' description = lib.mdDoc ''
@ -156,7 +147,7 @@ in {
}; };
activeOpacity = mkOption { activeOpacity = mkOption {
type = floatBetween 0 1; type = types.numbers.between 0 1;
default = 1.0; default = 1.0;
example = 0.8; example = 0.8;
description = lib.mdDoc '' description = lib.mdDoc ''
@ -165,7 +156,7 @@ in {
}; };
inactiveOpacity = mkOption { inactiveOpacity = mkOption {
type = floatBetween 0.1 1; type = types.numbers.between 0.1 1;
default = 1.0; default = 1.0;
example = 0.8; example = 0.8;
description = lib.mdDoc '' description = lib.mdDoc ''
@ -174,7 +165,7 @@ in {
}; };
menuOpacity = mkOption { menuOpacity = mkOption {
type = floatBetween 0 1; type = types.numbers.between 0 1;
default = 1.0; default = 1.0;
example = 0.8; example = 0.8;
description = lib.mdDoc '' description = lib.mdDoc ''

View file

@ -148,6 +148,7 @@ let
+ optionalString dev.bypassWorkqueues " --perf-no_read_workqueue --perf-no_write_workqueue" + optionalString dev.bypassWorkqueues " --perf-no_read_workqueue --perf-no_write_workqueue"
+ optionalString (dev.header != null) " --header=${dev.header}"; + optionalString (dev.header != null) " --header=${dev.header}";
cschange = "cryptsetup luksChangeKey ${dev.device} ${optionalString (dev.header != null) "--header=${dev.header}"}"; cschange = "cryptsetup luksChangeKey ${dev.device} ${optionalString (dev.header != null) "--header=${dev.header}"}";
fido2luksCredentials = dev.fido2.credentials ++ optional (dev.fido2.credential != null) dev.fido2.credential;
in '' in ''
# Wait for luksRoot (and optionally keyFile and/or header) to appear, e.g. # Wait for luksRoot (and optionally keyFile and/or header) to appear, e.g.
# if on a USB drive. # if on a USB drive.
@ -417,7 +418,7 @@ let
} }
''} ''}
${optionalString (luks.fido2Support && (dev.fido2.credential != null)) '' ${optionalString (luks.fido2Support && fido2luksCredentials != []) ''
open_with_hardware() { open_with_hardware() {
local passsphrase local passsphrase
@ -433,7 +434,7 @@ let
echo "Please move your mouse to create needed randomness." echo "Please move your mouse to create needed randomness."
''} ''}
echo "Waiting for your FIDO2 device..." echo "Waiting for your FIDO2 device..."
fido2luks open${optionalString dev.allowDiscards " --allow-discards"} ${dev.device} ${dev.name} ${dev.fido2.credential} --await-dev ${toString dev.fido2.gracePeriod} --salt string:$passphrase fido2luks open${optionalString dev.allowDiscards " --allow-discards"} ${dev.device} ${dev.name} "${builtins.concatStringsSep "," fido2luksCredentials}" --await-dev ${toString dev.fido2.gracePeriod} --salt string:$passphrase
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "No FIDO2 key found, falling back to normal open procedure" echo "No FIDO2 key found, falling back to normal open procedure"
open_normally open_normally
@ -444,7 +445,7 @@ let
# commands to run right before we mount our device # commands to run right before we mount our device
${dev.preOpenCommands} ${dev.preOpenCommands}
${if (luks.yubikeySupport && (dev.yubikey != null)) || (luks.gpgSupport && (dev.gpgCard != null)) || (luks.fido2Support && (dev.fido2.credential != null)) then '' ${if (luks.yubikeySupport && (dev.yubikey != null)) || (luks.gpgSupport && (dev.gpgCard != null)) || (luks.fido2Support && fido2luksCredentials != []) then ''
open_with_hardware open_with_hardware
'' else '' '' else ''
open_normally open_normally
@ -695,6 +696,17 @@ in
description = lib.mdDoc "The FIDO2 credential ID."; description = lib.mdDoc "The FIDO2 credential ID.";
}; };
credentials = mkOption {
default = [];
example = [ "f1d00200d8dc783f7fb1e10ace8da27f8312d72692abfca2f7e4960a73f48e82e1f7571f6ebfcee9fb434f9886ccc8fcc52a6614d8d2" ];
type = types.listOf types.str;
description = lib.mdDoc ''
List of FIDO2 credential IDs.
Use this if you have multiple FIDO2 keys you want to use for the same luks device.
'';
};
gracePeriod = mkOption { gracePeriod = mkOption {
default = 10; default = 10;
type = types.int; type = types.int;

View file

@ -1257,11 +1257,10 @@ let
default = {}; default = {};
example = { Route = "fd00::/64"; }; example = { Route = "fd00::/64"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6RoutePrefix; type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6RoutePrefix;
description = '' description = lib.mdDoc ''
Each attribute in this set specifies an option in the Each attribute in this set specifies an option in the
<literal>[IPv6RoutePrefix]</literal> section of the unit. See `[IPv6RoutePrefix]` section of the unit. See
<citerefentry><refentrytitle>systemd.network</refentrytitle> {manpage}`systemd.network(5)` for details.
<manvolnum>5</manvolnum></citerefentry> for details.
''; '';
}; };
}; };
@ -1411,12 +1410,11 @@ let
ipv6RoutePrefixes = mkOption { ipv6RoutePrefixes = mkOption {
default = []; default = [];
example = [ { Route = "fd00::/64"; LifetimeSec = 3600; } ]; example = [ { ipv6RoutePrefixConfig = { Route = "fd00::/64"; LifetimeSec = 3600; }; } ];
type = with types; listOf (submodule ipv6RoutePrefixOptions); type = with types; listOf (submodule ipv6RoutePrefixOptions);
description = '' description = lib.mdDoc ''
A list of ipv6RoutePrefix sections to be added to the unit. See A list of ipv6RoutePrefix sections to be added to the unit. See
<citerefentry><refentrytitle>systemd.network</refentrytitle> {manpage}`systemd.network(5)` for details.
<manvolnum>5</manvolnum></citerefentry> for details.
''; '';
}; };

View file

@ -584,7 +584,7 @@ in
example = literalExpression '' example = literalExpression ''
import pkgs.path { system = "x86_64-darwin"; } import pkgs.path { system = "x86_64-darwin"; }
''; '';
description = '' description = lib.mdDoc ''
pkgs set to use for the host-specific packages of the vm runner. pkgs set to use for the host-specific packages of the vm runner.
Changing this to e.g. a Darwin package set allows running NixOS VMs on Darwin. Changing this to e.g. a Darwin package set allows running NixOS VMs on Darwin.
''; '';

View file

@ -189,6 +189,7 @@ in {
gobgpd = handleTest ./gobgpd.nix {}; gobgpd = handleTest ./gobgpd.nix {};
gocd-agent = handleTest ./gocd-agent.nix {}; gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {}; gocd-server = handleTest ./gocd-server.nix {};
gollum = handleTest ./gollum.nix {};
google-oslogin = handleTest ./google-oslogin {}; google-oslogin = handleTest ./google-oslogin {};
gotify-server = handleTest ./gotify-server.nix {}; gotify-server = handleTest ./gotify-server.nix {};
grafana = handleTest ./grafana.nix {}; grafana = handleTest ./grafana.nix {};

View file

@ -18,7 +18,7 @@ let
services.gitea = { services.gitea = {
enable = true; enable = true;
database = { inherit type; }; database = { inherit type; };
disableRegistration = true; settings.service.DISABLE_REGISTRATION = true;
}; };
environment.systemPackages = [ pkgs.gitea pkgs.jq ]; environment.systemPackages = [ pkgs.gitea pkgs.jq ];
services.openssh.enable = true; services.openssh.enable = true;

View file

@ -0,0 +1,14 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "gollum";
nodes = {
webserver = { pkgs, lib, ... }: {
services.gollum.enable = true;
};
};
testScript = { nodes, ... }: ''
webserver.wait_for_unit("gollum")
webserver.wait_for_open_port(${toString nodes.webserver.config.services.gollum.port})
'';
})

View file

@ -47,9 +47,8 @@ in {
}; };
}; };
services.redis = { services.redis.servers."nextcloud".enable = true;
enable = true; services.redis.servers."nextcloud".port = 6379;
};
systemd.services.nextcloud-setup= { systemd.services.nextcloud-setup= {
requires = ["postgresql.service"]; requires = ["postgresql.service"];

View file

@ -37,9 +37,8 @@ in {
}; };
}; };
services.redis = { services.redis.servers."nextcloud".enable = true;
enable = true; services.redis.servers."nextcloud".port = 6379;
};
systemd.services.nextcloud-setup= { systemd.services.nextcloud-setup= {
requires = ["postgresql.service"]; requires = ["postgresql.service"];

View file

@ -0,0 +1,35 @@
{ lib
, python3Packages
}:
with python3Packages;
buildPythonApplication rec {
pname = "miniplayer";
version = "1.7.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-JUlUFj/5DOTLa1XCZX/9Nj3Z9W+k4gnpJONiS4qNBIU=";
};
propagatedBuildInputs = [
colorthief
ffmpeg-python
mpd2
pillow
pixcat
requests
ueberzug
];
# pythonImportsCheck is disabled because this package doesn't expose any modules.
meta = with lib; {
description = "A curses-based MPD client with basic functionality that can also display an album art";
homepage = "https://github.com/GuardKenzie/miniplayer";
license = licenses.mit;
maintainers = with maintainers; [ azahi ];
};
}

View file

@ -1,66 +1,168 @@
{ lib, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome, gtk3, gdk-pixbuf, librsvg, { lib
tag ? "", xvfb-run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme, , fetchFromGitHub
gst_all_1, withGstPlugins ? true, , fetchpatch
xineBackend ? false, xine-lib, , tag ? ""
withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false,
webkitgtk ? null, # build time
keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }: , gettext
, gobject-introspection
, wrapGAppsHook
# runtime
, adwaita-icon-theme
, gdk-pixbuf
, glib
, glib-networking
, gtk3
, gtksourceview
, kakasi
, keybinder3
, libappindicator-gtk3
, libmodplug
, librsvg
, libsoup
, webkitgtk
# optional features
, withDbusPython ? false
, withPypresence ? false
, withPyInotify ? false
, withMusicBrainzNgs ? false
, withPahoMqtt ? false
, withSoco ? false
# backends
, withGstreamerBackend ? true, gst_all_1
, withGstPlugins ? withGstreamerBackend
, withXineBackend ? true, xine-lib
# tests
, dbus
, glibcLocales
, hicolor-icon-theme
, python3
, xvfb-run
}:
let optionals = lib.optionals; in
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "quodlibet${tag}"; pname = "quodlibet${tag}";
version = "4.5.0"; version = "4.5.0";
format = "pyproject";
src = fetchurl { src = fetchFromGitHub {
url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz"; owner = "quodlibet";
sha256 = "sha256-MBYVgp9lLLr+2zVTkjcWKli8HucaVn0kn3eJ2SaCRbw="; repo = "quodlibet";
rev = "refs/tags/release-${version}";
hash = "sha256-G6zcdnHkevbVCrMoseWoSia5ajEor8nZhee6NeZIs8Q=";
}; };
nativeBuildInputs = [ wrapGAppsHook gettext ]; patches = [
(fetchpatch {
# Fixes cover globbing under python 3.10.5+
url = "https://github.com/quodlibet/quodlibet/commit/5eb7c30766e1dcb30663907664855ee94a3accc0.patch";
hash = "sha256-bDyEOE7Vs4df4BeN4QMvt6niisVEpvc1onmX5rtoAWc=";
})
];
checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest-xdist polib xvfb-run dbus.daemon glibcLocales ]); outputs = [
"out"
"doc"
];
buildInputs = [ gnome.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ] nativeBuildInputs = [
++ (if xineBackend then [ xine-lib ] else with gst_all_1; gettext
[ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]); gobject-introspection
wrapGAppsHook
] ++ (with python3.pkgs; [
sphinxHook
sphinx-rtd-theme
]);
propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo mutagen gst-python feedparser ] buildInputs = [
++ optionals withDbusPython [ dbus-python ] adwaita-icon-theme
++ optionals withPyInotify [ pyinotify ] gdk-pixbuf
++ optionals withMusicBrainzNgs [ musicbrainzngs ] glib
++ optionals withPahoMqtt [ paho-mqtt ]; glib-networking
gtk3
gtksourceview
kakasi
keybinder3
libappindicator-gtk3
libmodplug
libsoup
webkitgtk
] ++ lib.optionals (withXineBackend) [
xine-lib
] ++ lib.optionals (withGstreamerBackend) (with gst_all_1; [
gst-plugins-base
gstreamer
] ++ lib.optionals (withGstPlugins) [
gst-plugins-bad
gst-plugins-good
gst-plugins-ugly
]);
propagatedBuildInputs = with python3.pkgs; [
feedparser
gst-python
mutagen
pycairo
pygobject3
]
++ lib.optionals withDbusPython [ dbus-python ]
++ lib.optionals withPypresence [ pypresence ]
++ lib.optionals withPyInotify [ pyinotify ]
++ lib.optionals withMusicBrainzNgs [ musicbrainzngs ]
++ lib.optionals withPahoMqtt [ paho-mqtt ]
++ lib.optionals withSoco [ soco ];
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";
pytestFlags = lib.optionals (xineBackend || !withGstPlugins) [ checkInputs = [
"--ignore=tests/plugin/test_replaygain.py" dbus.daemon
] ++ [ gdk-pixbuf
glibcLocales
hicolor-icon-theme
xvfb-run
] ++ (with python3.pkgs; [
polib
pytest
pytest-xdist
]);
pytestFlags = [
# requires networking # requires networking
"--ignore=tests/test_browsers_iradio.py" "--deselect=tests/test_browsers_iradio.py::TIRFile::test_download_tags"
# the default theme doesn't have the required icons # missing translation strings in potfiles
"--ignore=tests/plugin/test_trayicon.py" "--deselect=tests/test_po.py::TPOTFILESIN::test_missing"
# upstream does actually not enforce source code linting # upstream does actually not enforce source code linting
"--ignore=tests/quality" "--ignore=tests/quality"
# build failure on Arch Linux # build failure on Arch Linux
# https://github.com/NixOS/nixpkgs/pull/77796#issuecomment-575841355 # https://github.com/NixOS/nixpkgs/pull/77796#issuecomment-575841355
"--ignore=tests/test_operon.py" "--ignore=tests/test_operon.py"
] ++ lib.optionals (withXineBackend || !withGstPlugins) [
"--ignore=tests/plugin/test_replaygain.py"
]; ];
preCheck = ''
export XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS"
export GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
export HOME=$(mktemp -d)
'';
checkPhase = '' checkPhase = ''
runHook preCheck runHook preCheck
# otherwise tests can't find the app icons; instead of creating index.theme from scratch
# I re-used the one from hicolor-icon-theme which seems to work xvfb-run -s '-screen 0 1920x1080x24' \
cp "${hicolor-icon-theme}/share/icons/hicolor/index.theme" quodlibet/images/hicolor dbus-run-session --config-file=${dbus.daemon}/share/dbus-1/session.conf \
env XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS" \ pytest $pytestFlags
GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
HOME=$(mktemp -d) \
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
py.test $pytestFlags
runHook postCheck runHook postCheck
''; '';
preFixup = lib.optionalString (kakasi != null) "gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)"; preFixup = lib.optionalString (kakasi != null) ''
gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)
'';
meta = with lib; { meta = with lib; {
description = "GTK-based audio player written in Python, using the Mutagen tagging library"; description = "GTK-based audio player written in Python, using the Mutagen tagging library";

View file

@ -1,9 +1,8 @@
{ stdenv { stdenv
, pkgs , lib
, fetchFromGitHub , fetchFromGitHub
, pkg-config , pkg-config
, cmake , cmake
, cpp-utilities , cpp-utilities
, qtutilities , qtutilities
, mp4v2 , mp4v2
@ -18,13 +17,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tageditor"; pname = "tageditor";
version = "3.3.10"; version = "3.7.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "martchus"; owner = "martchus";
repo = "tageditor"; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "16cmq7dyalcwc8gx1y9acngw5imjh8ydp4prxy7qpzk4fj3kpsak"; hash = "sha256-/0zzzOEkzNr1aIpPFdflFaM/0HTs3TlIRxau3Yt+Hog=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -32,10 +31,10 @@ stdenv.mkDerivation rec {
cmake cmake
wrapQtAppsHook wrapQtAppsHook
]; ];
buildInputs = [ buildInputs = [
mp4v2 mp4v2
libid3tag libid3tag
pkg-config
qtbase qtbase
qttools qttools
qtx11extras qtx11extras
@ -45,7 +44,7 @@ stdenv.mkDerivation rec {
tagparser tagparser
]; ];
meta = with pkgs.lib; { meta = with lib; {
homepage = "https://github.com/Martchus/tageditor"; homepage = "https://github.com/Martchus/tageditor";
description = "A tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska"; description = "A tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska";
license = licenses.gpl2; license = licenses.gpl2;
@ -53,4 +52,3 @@ stdenv.mkDerivation rec {
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -34,11 +34,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bisq-desktop"; pname = "bisq-desktop";
version = "1.9.4"; version = "1.9.5";
src = fetchurl { src = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb"; url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
sha256 = "sha256-8CgbJ5gfzIEh5ppwvQxYz1IES7Dd4MZCac0uVLh/YaY="; sha256 = "1jmhngxyn2yf7k1dn98yr9d20jlvkmskbpzz5kbzci36v2wfmjrp";
}; };
nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg zip xz ]; nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg zip xz ];

View file

@ -2,11 +2,11 @@
let let
pname = "ledger-live-desktop"; pname = "ledger-live-desktop";
version = "2.46.0"; version = "2.46.2";
src = fetchurl { src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage"; url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-QbCiOzASqicd0Tns1sV9ZVoc/GmuoohB9wB/g0Z6uFA="; hash = "sha256-fSfES+6+LCRTLdOy3RJaHzv0zRXkqT+0Rsdt2kSeU18=";
}; };
appimageContents = appimageTools.extractType2 { appimageContents = appimageTools.extractType2 {

View file

@ -159,10 +159,10 @@
elpaBuild { elpaBuild {
pname = "aircon-theme"; pname = "aircon-theme";
ename = "aircon-theme"; ename = "aircon-theme";
version = "0.0.5"; version = "0.0.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/aircon-theme-0.0.5.tar"; url = "https://elpa.gnu.org/packages/aircon-theme-0.0.6.tar";
sha256 = "0k9nsm64szi2hvngx9ciyjn8ic9qprfm3gmwp33f0kakq05ykpd1"; sha256 = "09yjjx9gy1x2i8xk7jlblzk6gkx7cgglb0pwxbl8n6aj19ba40nd";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -234,10 +234,10 @@
elpaBuild { elpaBuild {
pname = "async"; pname = "async";
ename = "async"; ename = "async";
version = "1.9.5"; version = "1.9.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/async-1.9.5.tar"; url = "https://elpa.gnu.org/packages/async-1.9.6.tar";
sha256 = "02f43vqlggy4qkqdggkl9mcg3rvagjysj45xgrx41jjx6cnjnm19"; sha256 = "0qyf1niqjhzaphb50q1znkwqzpdvqw3drivkzrqxrs747k7pm3my";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -249,10 +249,10 @@
elpaBuild { elpaBuild {
pname = "auctex"; pname = "auctex";
ename = "auctex"; ename = "auctex";
version = "13.1.3"; version = "13.1.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/auctex-13.1.3.tar"; url = "https://elpa.gnu.org/packages/auctex-13.1.4.tar";
sha256 = "0v9rxwz6ngnwrgvzgdki861s136gq30lqhy2gcd9q0a36gb6zhwk"; sha256 = "1r9qysnfdbiblq3c95rgsh7vgy3k4qabnj0vicqhdkca0cl2b2bj";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -354,10 +354,10 @@
elpaBuild { elpaBuild {
pname = "blist"; pname = "blist";
ename = "blist"; ename = "blist";
version = "0.1"; version = "0.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/blist-0.1.tar"; url = "https://elpa.gnu.org/packages/blist-0.2.tar";
sha256 = "0p9jx7m05ynfi3bnd91jghw7101ym8qzm5r42rb1vy85pcf9lbad"; sha256 = "1gsrj6clsfw36i7pdayfip615r80543j3iph6zm93p88wgwqigrq";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -493,10 +493,10 @@
elpaBuild { elpaBuild {
pname = "cape"; pname = "cape";
ename = "cape"; ename = "cape";
version = "0.8"; version = "0.9";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/cape-0.8.tar"; url = "https://elpa.gnu.org/packages/cape-0.9.tar";
sha256 = "03zc1c2r8h3p9aqk2y8pwysiawbx0f5vgz7582d9qnixdygni117"; sha256 = "0bjzm1jf3554q83mbmyj584v29cgb0s5wpj74y4p9iyy40g739rw";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -628,10 +628,10 @@
elpaBuild { elpaBuild {
pname = "cobol-mode"; pname = "cobol-mode";
ename = "cobol-mode"; ename = "cobol-mode";
version = "1.0.0"; version = "1.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/cobol-mode-1.0.0.el"; url = "https://elpa.gnu.org/packages/cobol-mode-1.1.tar";
sha256 = "1zmcfpl7v787yacc7gxm8mkp53fmrznp5mnad628phf3vj4kwnxi"; sha256 = "1ivp0pghrkflhr2md34a6a86gwns867bnl30nqzwq8m4qc5xqjra";
}; };
packageRequires = [ cl-lib ]; packageRequires = [ cl-lib ];
meta = { meta = {
@ -771,10 +771,10 @@
elpaBuild { elpaBuild {
pname = "compat"; pname = "compat";
ename = "compat"; ename = "compat";
version = "28.1.2.0"; version = "28.1.2.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/compat-28.1.2.0.tar"; url = "https://elpa.gnu.org/packages/compat-28.1.2.2.tar";
sha256 = "0gm2drvxdlmc3fjlapb5z8k1ymr6q7mrj9z7mb686jfy931b9mwr"; sha256 = "1jymfbadvnbjfyml6lri7hc7gz4f97nadn7a7ifpcncm9mhi13bp";
}; };
packageRequires = [ emacs nadvice ]; packageRequires = [ emacs nadvice ];
meta = { meta = {
@ -786,10 +786,10 @@
elpaBuild { elpaBuild {
pname = "consult"; pname = "consult";
ename = "consult"; ename = "consult";
version = "0.18"; version = "0.19";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/consult-0.18.tar"; url = "https://elpa.gnu.org/packages/consult-0.19.tar";
sha256 = "0nvi8f0jrji26sjmji8f7rvc8gr1zq49kliq39z7h970d8p10cx2"; sha256 = "11dac6cl40xyg05wzxanxsc74f1kgnnkqlgf5gqlkq24gwmlgvyk";
}; };
packageRequires = [ compat emacs ]; packageRequires = [ compat emacs ];
meta = { meta = {
@ -801,10 +801,10 @@
elpaBuild { elpaBuild {
pname = "consult-recoll"; pname = "consult-recoll";
ename = "consult-recoll"; ename = "consult-recoll";
version = "0.6.2"; version = "0.7";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/consult-recoll-0.6.2.tar"; url = "https://elpa.gnu.org/packages/consult-recoll-0.7.tar";
sha256 = "0ngisaxdsfmjcincxdjrpgj6q6vh4dav7b2bpfls9a7107rb2ycp"; sha256 = "12a1qhp7yz6r5pblm68wp1zis0xnvsn2rm12rz9fircq8p3ff3j7";
}; };
packageRequires = [ consult emacs ]; packageRequires = [ consult emacs ];
meta = { meta = {
@ -831,10 +831,10 @@
elpaBuild { elpaBuild {
pname = "corfu"; pname = "corfu";
ename = "corfu"; ename = "corfu";
version = "0.26"; version = "0.27";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/corfu-0.26.tar"; url = "https://elpa.gnu.org/packages/corfu-0.27.tar";
sha256 = "13wsb0llrnmk65m27drnyaqzv9qicnxbpvqcanj0k90iv411kw21"; sha256 = "1i8nl94aaa5p4bp0idsmph3z61lccg9a7plbsnpicy0klsaj69r2";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -842,16 +842,16 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
coterm = callPackage ({ elpaBuild, emacs, fetchurl, lib }: coterm = callPackage ({ compat, elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "coterm"; pname = "coterm";
ename = "coterm"; ename = "coterm";
version = "1.5"; version = "1.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/coterm-1.5.tar"; url = "https://elpa.gnu.org/packages/coterm-1.6.tar";
sha256 = "1v8cl3bw5z0f36iw8x3gcgiizml74m1kfxfrasyfx8k01nbxcfs8"; sha256 = "0ikfm1acdsckflv1hcy9lmssyac2099x2yybhvb6vkghcgy99p00";
}; };
packageRequires = [ emacs ]; packageRequires = [ compat emacs ];
meta = { meta = {
homepage = "https://elpa.gnu.org/packages/coterm.html"; homepage = "https://elpa.gnu.org/packages/coterm.html";
license = lib.licenses.free; license = lib.licenses.free;
@ -906,10 +906,10 @@
elpaBuild { elpaBuild {
pname = "crdt"; pname = "crdt";
ename = "crdt"; ename = "crdt";
version = "0.3.0"; version = "0.3.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/crdt-0.3.0.tar"; url = "https://elpa.gnu.org/packages/crdt-0.3.3.tar";
sha256 = "0fmrmpjqyzxcmx38kwl6mifq412qfgm9ak7j4f54j33kbp10hjj7"; sha256 = "12xdqdp4zwd163wc19cjakabgjyzm4l4xg4bns6q1p60zgynbkx8";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -966,10 +966,10 @@
elpaBuild { elpaBuild {
pname = "cursory"; pname = "cursory";
ename = "cursory"; ename = "cursory";
version = "0.2.1"; version = "0.3.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/cursory-0.2.1.tar"; url = "https://elpa.gnu.org/packages/cursory-0.3.0.tar";
sha256 = "12q1icz1npan9fjn0sy2zfs3d0iz6b34hqsfggm187igq4zj3rrb"; sha256 = "1mgvdncqgf0ll2mn5zp47lvvbzrzgdga9dbbjwqaapzy6llfg51x";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1041,10 +1041,10 @@
elpaBuild { elpaBuild {
pname = "debbugs"; pname = "debbugs";
ename = "debbugs"; ename = "debbugs";
version = "0.32"; version = "0.33";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/debbugs-0.32.tar"; url = "https://elpa.gnu.org/packages/debbugs-0.33.tar";
sha256 = "1xp3mj3ndaljma0g7x9abziphgi2a6j8k1v52sb8xwgn4p5gdvby"; sha256 = "1s4p3jf9yrm8pn5pljpkrw05n2p9v6fpl141rh1df7f7l0w80qbk";
}; };
packageRequires = [ emacs soap-client ]; packageRequires = [ emacs soap-client ];
meta = { meta = {
@ -1071,10 +1071,10 @@
elpaBuild { elpaBuild {
pname = "denote"; pname = "denote";
ename = "denote"; ename = "denote";
version = "0.4.0"; version = "0.6.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/denote-0.4.0.tar"; url = "https://elpa.gnu.org/packages/denote-0.6.1.tar";
sha256 = "031ia1k5fqzq154jhi4icvivhdg8yn7zfkwy81yf0ivcsivri54s"; sha256 = "1yxfnwq2b32xrl52g61a9g3i53m94iybx0n8hh6nbmcv5x4y43ya";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1086,10 +1086,10 @@
elpaBuild { elpaBuild {
pname = "detached"; pname = "detached";
ename = "detached"; ename = "detached";
version = "0.7"; version = "0.8.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/detached-0.7.tar"; url = "https://elpa.gnu.org/packages/detached-0.8.1.tar";
sha256 = "1a2w6cmzy7c861rih9k2qbnmizyybrs1kwqp6lbz3wfs2h0zisrw"; sha256 = "03riybjk2yls8wjkp1sqd30p0jpvrlz3qlj8r04cx7s1nn1kn9g3";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1131,10 +1131,10 @@
elpaBuild { elpaBuild {
pname = "diff-hl"; pname = "diff-hl";
ename = "diff-hl"; ename = "diff-hl";
version = "1.8.8"; version = "1.9.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/diff-hl-1.8.8.tar"; url = "https://elpa.gnu.org/packages/diff-hl-1.9.0.tar";
sha256 = "10g1333xvki8aw5vhyijkpjn62jh9k3n4a5sh1z69hsfvxih5lqk"; sha256 = "00mqknqyibbqyfcvdvk1m7nwipfpsw3afbvipqmghh5zm2n7wjr4";
}; };
packageRequires = [ cl-lib emacs ]; packageRequires = [ cl-lib emacs ];
meta = { meta = {
@ -1386,10 +1386,10 @@
elpaBuild { elpaBuild {
pname = "eev"; pname = "eev";
ename = "eev"; ename = "eev";
version = "20220626"; version = "20220828";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/eev-20220626.tar"; url = "https://elpa.gnu.org/packages/eev-20220828.tar";
sha256 = "0n09dws1qy23a31s5iv75dzl6xy8m5m7qy9gf7sk1b3133ly4sf5"; sha256 = "0znsimjq61p67c2q3qbia5qrimy847xy6gjpl1jgyrdlpgm9hv6r";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1397,6 +1397,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
ef-themes = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "ef-themes";
ename = "ef-themes";
version = "0.4.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ef-themes-0.4.2.tar";
sha256 = "0ik9kzdv5r1q7hw81nh3raiychpmwi61034y12pqvbq24njp0y72";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/ef-themes.html";
license = lib.licenses.free;
};
}) {};
eglot = callPackage ({ eldoc eglot = callPackage ({ eldoc
, elpaBuild , elpaBuild
, emacs , emacs
@ -1535,6 +1550,38 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
ement = callPackage ({ elpaBuild
, emacs
, fetchurl
, lib
, map
, plz
, svg-lib
, taxy
, taxy-magit-section
, transient }:
elpaBuild {
pname = "ement";
ename = "ement";
version = "0.1.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ement-0.1.2.tar";
sha256 = "1n5k3rcgdq625b9fjhl53nl5zbis4dw0d00h4dk16m61nk98ra2l";
};
packageRequires = [
emacs
map
plz
svg-lib
taxy
taxy-magit-section
transient
];
meta = {
homepage = "https://elpa.gnu.org/packages/ement.html";
license = lib.licenses.free;
};
}) {};
emms = callPackage ({ cl-lib ? null emms = callPackage ({ cl-lib ? null
, elpaBuild , elpaBuild
, fetchurl , fetchurl
@ -1774,10 +1821,10 @@
elpaBuild { elpaBuild {
pname = "fontaine"; pname = "fontaine";
ename = "fontaine"; ename = "fontaine";
version = "0.3.0"; version = "0.4.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/fontaine-0.3.0.tar"; url = "https://elpa.gnu.org/packages/fontaine-0.4.0.tar";
sha256 = "0ixi48w3d0yvmw1103gj7iq2acj90p0qlyhna4hpfhnwa247lp2k"; sha256 = "1phbni32zgwml5mwldbqmqmkbhbdj4vf4bs98wj0my6d902x6lbw";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2208,10 +2255,10 @@
elpaBuild { elpaBuild {
pname = "inspector"; pname = "inspector";
ename = "inspector"; ename = "inspector";
version = "0.5"; version = "0.7";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/inspector-0.5.tar"; url = "https://elpa.gnu.org/packages/inspector-0.7.tar";
sha256 = "19f2a0fw0zcrfirjhq7my910jiqxqkishyjprj87cahpksdp4cp9"; sha256 = "0cwfbg7bx4ni0xadba9v5jbkivz2slqwxcy7q8s3zipb4m578xbk";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2438,10 +2485,10 @@
elpaBuild { elpaBuild {
pname = "kind-icon"; pname = "kind-icon";
ename = "kind-icon"; ename = "kind-icon";
version = "0.1.6"; version = "0.1.7";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/kind-icon-0.1.6.tar"; url = "https://elpa.gnu.org/packages/kind-icon-0.1.7.tar";
sha256 = "0ac53qrz217b054z51244r7whvjmyrq4941ld0bgl9crssrhb588"; sha256 = "02imi2qj329yrqvs23d4z7fv8bbaz0fvya6zdswb38blpdri4cn1";
}; };
packageRequires = [ emacs svg-lib ]; packageRequires = [ emacs svg-lib ];
meta = { meta = {
@ -2543,10 +2590,10 @@
elpaBuild { elpaBuild {
pname = "lin"; pname = "lin";
ename = "lin"; ename = "lin";
version = "0.4.0"; version = "1.0.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/lin-0.4.0.tar"; url = "https://elpa.gnu.org/packages/lin-1.0.0.tar";
sha256 = "1fynn3fpf3c2yamlpp9j6rakgd21ivyvqrx0hmsgcyr115q5afm4"; sha256 = "0b090g2l8mvm3b6k7s31v9lw48qjcvcif2p201wlqgipddm6s180";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2633,10 +2680,10 @@
elpaBuild { elpaBuild {
pname = "logos"; pname = "logos";
ename = "logos"; ename = "logos";
version = "0.4.0"; version = "0.5.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/logos-0.4.0.tar"; url = "https://elpa.gnu.org/packages/logos-0.5.0.tar";
sha256 = "12yypzfd6lf71qyix0a1088vkamh9ilq8inpmv2882w3r5dii345"; sha256 = "026nzkgkfs96m9qxpng7h0kqvhxfah883pv4i08fz0950lrsxynd";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2663,10 +2710,10 @@
elpaBuild { elpaBuild {
pname = "marginalia"; pname = "marginalia";
ename = "marginalia"; ename = "marginalia";
version = "0.13"; version = "0.14";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/marginalia-0.13.tar"; url = "https://elpa.gnu.org/packages/marginalia-0.14.tar";
sha256 = "1d5y3d2plkxnmm4458l0gfpim6q3vzps3bsfakvnzf86hh5nm77j"; sha256 = "0y1mz9688h56knyly7by3gl6v37q437c3lp5bsx6jajysb8v69xw";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2693,10 +2740,10 @@
elpaBuild { elpaBuild {
pname = "math-symbol-lists"; pname = "math-symbol-lists";
ename = "math-symbol-lists"; ename = "math-symbol-lists";
version = "1.2.1"; version = "1.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/math-symbol-lists-1.2.1.el"; url = "https://elpa.gnu.org/packages/math-symbol-lists-1.3.tar";
sha256 = "015q44qg9snrpz04syz89f9f79pzg5h7w88nh84p38klynkx2f86"; sha256 = "0h330j7vxmb56z66xgynqlxkr5bnp5id25j0w4ikyms407sdyrbs";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -2862,10 +2909,10 @@
elpaBuild { elpaBuild {
pname = "modus-themes"; pname = "modus-themes";
ename = "modus-themes"; ename = "modus-themes";
version = "2.5.0"; version = "2.6.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/modus-themes-2.5.0.tar"; url = "https://elpa.gnu.org/packages/modus-themes-2.6.0.tar";
sha256 = "0j2mx47fpbqvpwhkdskgrnyj5nzg25sqgxwsdvrvw22c7gxhirxn"; sha256 = "0i4y69rrdcm64mvqs5z7dmgx1xk0x7g5978q5gjblczlfka444k4";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -3130,10 +3177,10 @@
elpaBuild { elpaBuild {
pname = "num3-mode"; pname = "num3-mode";
ename = "num3-mode"; ename = "num3-mode";
version = "1.4"; version = "1.5";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/num3-mode-1.4.tar"; url = "https://elpa.gnu.org/packages/num3-mode-1.5.tar";
sha256 = "01cl5wc5xzf4milq6r5ps2f4ikpkdbdidk880svby9mhiw6agydh"; sha256 = "0i01v0sl0wi98xvc3wkk2lwc3nxmnhhpyrhr9gn88x5ygc0p4rdw";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -3235,10 +3282,10 @@
elpaBuild { elpaBuild {
pname = "org"; pname = "org";
ename = "org"; ename = "org";
version = "9.5.4"; version = "9.5.5";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/org-9.5.4.tar"; url = "https://elpa.gnu.org/packages/org-9.5.5.tar";
sha256 = "1rcr1kyvd2l5h1i22z40x998jm4b6vk47i77y376blcrcx2dp26m"; sha256 = "13sykrkhb192vnmj5nlws5jc5a4fr7ynmyxpzanqlzx1gbdxv32p";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -3655,10 +3702,10 @@
elpaBuild { elpaBuild {
pname = "pulsar"; pname = "pulsar";
ename = "pulsar"; ename = "pulsar";
version = "0.4.0"; version = "0.5.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/pulsar-0.4.0.tar"; url = "https://elpa.gnu.org/packages/pulsar-0.5.0.tar";
sha256 = "027kpywdjfd1xm1fxkprbc04iq96lnyzw2f3499wyrfj4vxk2dn2"; sha256 = "1bs6f8j1a7vypwm087zsrccv5kbahxyg3nhc65ffgpwrnxfp4v96";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -3670,10 +3717,10 @@
elpaBuild { elpaBuild {
pname = "pyim"; pname = "pyim";
ename = "pyim"; ename = "pyim";
version = "5.2.3"; version = "5.2.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/pyim-5.2.3.tar"; url = "https://elpa.gnu.org/packages/pyim-5.2.4.tar";
sha256 = "189r0qkd8nv5zjg2ljbzbj086jb8xbl4yd1jliz4azaprv8fhqv0"; sha256 = "1dzl4xaf31nyjb5hnwwf29i75x0i8dakpmmagbn4ks5hi3jl2ig0";
}; };
packageRequires = [ async emacs xr ]; packageRequires = [ async emacs xr ];
meta = { meta = {
@ -4181,10 +4228,10 @@
elpaBuild { elpaBuild {
pname = "shell-command-plus"; pname = "shell-command-plus";
ename = "shell-command+"; ename = "shell-command+";
version = "2.3.2"; version = "2.4.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/shell-command+-2.3.2.tar"; url = "https://elpa.gnu.org/packages/shell-command+-2.4.1.tar";
sha256 = "03hmk4gr9kjy3238n0ys9na00py035j9s0y8d87c45f5af6c6g2c"; sha256 = "1pbv5g58647gq83vn5pg8c6kjhvjn3lj0wggz3iz3695yvl8aw4i";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4730,14 +4777,29 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
topspace = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "topspace";
ename = "topspace";
version = "0.3.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/topspace-0.3.1.tar";
sha256 = "1c2raqmbyv5bd48gimh6dazfb6dmipjmf1j0w53vyrs48dx6kskq";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/topspace.html";
license = lib.licenses.free;
};
}) {};
tramp = callPackage ({ elpaBuild, emacs, fetchurl, lib }: tramp = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "tramp"; pname = "tramp";
ename = "tramp"; ename = "tramp";
version = "2.5.3.1"; version = "2.5.3.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/tramp-2.5.3.1.tar"; url = "https://elpa.gnu.org/packages/tramp-2.5.3.2.tar";
sha256 = "0dqc5gmp20isrlanccvj6nhalmmsfg7bmm690gxfgrbqcc2vj69a"; sha256 = "1jcicb9f7c1nmaqg20yy2j4wd0qfch4llc26ga7q3ckhx41pvbiw";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -5045,10 +5107,10 @@
elpaBuild { elpaBuild {
pname = "vertico"; pname = "vertico";
ename = "vertico"; ename = "vertico";
version = "0.25"; version = "0.26";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/vertico-0.25.tar"; url = "https://elpa.gnu.org/packages/vertico-0.26.tar";
sha256 = "1v0icwqp4ppa2j1k1fk4fc5zdzqb4hcdc7khjc1c31q0gad6l3xy"; sha256 = "070dkw7ii5lfg4m0bwl9blbyq3rgqs212my142ri69ig1fz9x5ad";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -5462,4 +5524,19 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
zuul = callPackage ({ elpaBuild, emacs, fetchurl, lib, project }:
elpaBuild {
pname = "zuul";
ename = "zuul";
version = "0.4.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/zuul-0.4.0.tar";
sha256 = "1bm91g001q3n5m9ihxc719siiiy23pkpfkhplwi9p1i4i9zrpx5g";
};
packageRequires = [ emacs project ];
meta = {
homepage = "https://elpa.gnu.org/packages/zuul.html";
license = lib.licenses.free;
};
}) {};
} }

View file

@ -232,6 +232,8 @@
tree-sitter-langs = callPackage ./tree-sitter-langs { final = self; }; tree-sitter-langs = callPackage ./tree-sitter-langs { final = self; };
tsc = callPackage ./tsc { }; tsc = callPackage ./tsc { };
yes-no = callPackage ./yes-no { };
youtube-dl = callPackage ./youtube-dl { }; youtube-dl = callPackage ./youtube-dl { };
# From old emacsPackages (pre emacsPackagesNg) # From old emacsPackages (pre emacsPackagesNg)

View file

@ -135,21 +135,16 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
autothemer = callPackage ({ cl-lib ? null autothemer = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }:
, dash
, elpaBuild
, emacs
, fetchurl
, lib }:
elpaBuild { elpaBuild {
pname = "autothemer"; pname = "autothemer";
ename = "autothemer"; ename = "autothemer";
version = "0.2.5"; version = "0.2.14";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/autothemer-0.2.5.tar"; url = "https://elpa.nongnu.org/nongnu/autothemer-0.2.14.tar";
sha256 = "1g07j8fmyqhhas0ci2f9l7i5l238cpb02vr93gyn2a3r3lq6wn4d"; sha256 = "14y8b807d75qym1qviiqy1s85495z9g7jvvfqqz42ngdnk87l3qb";
}; };
packageRequires = [ cl-lib dash emacs ]; packageRequires = [ dash emacs ];
meta = { meta = {
homepage = "https://elpa.gnu.org/packages/autothemer.html"; homepage = "https://elpa.gnu.org/packages/autothemer.html";
license = lib.licenses.free; license = lib.licenses.free;
@ -219,10 +214,10 @@
elpaBuild { elpaBuild {
pname = "buttercup"; pname = "buttercup";
ename = "buttercup"; ename = "buttercup";
version = "1.25"; version = "1.26";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/buttercup-1.25.tar"; url = "https://elpa.nongnu.org/nongnu/buttercup-1.26.tar";
sha256 = "1iadgn56sfakv927g9bk7fq7yjg0f3r10ygrmjpy46vgvfz0fqs6"; sha256 = "1ddzk6h4cxrl7mn8vr2qp4xjj2al3h5s3kwqxpdwd3zn6wqgyqm4";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -245,16 +240,16 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
cdlatex = callPackage ({ auctex, elpaBuild, fetchurl, lib }: cdlatex = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "cdlatex"; pname = "cdlatex";
ename = "cdlatex"; ename = "cdlatex";
version = "4.12"; version = "4.14";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/cdlatex-4.12.tar"; url = "https://elpa.nongnu.org/nongnu/cdlatex-4.14.tar";
sha256 = "1m8liqxz76r8f3b8hvyyn7kqgq0fkk5pv4pqgdscbgw36vpcbkry"; sha256 = "114g2afnq86c6662ychd0v64aam7nhk3hacbwx1cavhg1k2l7kci";
}; };
packageRequires = [ auctex ]; packageRequires = [];
meta = { meta = {
homepage = "https://elpa.gnu.org/packages/cdlatex.html"; homepage = "https://elpa.gnu.org/packages/cdlatex.html";
license = lib.licenses.free; license = lib.licenses.free;
@ -273,10 +268,10 @@
elpaBuild { elpaBuild {
pname = "cider"; pname = "cider";
ename = "cider"; ename = "cider";
version = "1.4.1"; version = "1.5.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/cider-1.4.1.tar"; url = "https://elpa.nongnu.org/nongnu/cider-1.5.0.tar";
sha256 = "0l36pqmjqzv6ykmw593h6qd24pygq7171qfinvlp2fh8897ac2nj"; sha256 = "0vggh2l92m8hm2wqzcyka439fs0kzbbfknfgyn79hf2f2f405534";
}; };
packageRequires = [ packageRequires = [
clojure-mode clojure-mode
@ -793,6 +788,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
focus = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "focus";
ename = "focus";
version = "1.0.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/focus-1.0.0.tar";
sha256 = "0gicqiw7npcf18rfb99hm1s054m9l4izzcqzij2kpnc544aqgf9y";
};
packageRequires = [ cl-lib emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/focus.html";
license = lib.licenses.free;
};
}) {};
forth-mode = callPackage ({ elpaBuild, fetchurl, lib }: forth-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "forth-mode"; pname = "forth-mode";
@ -832,10 +842,10 @@
elpaBuild { elpaBuild {
pname = "geiser"; pname = "geiser";
ename = "geiser"; ename = "geiser";
version = "0.24"; version = "0.26.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/geiser-0.24.tar"; url = "https://elpa.nongnu.org/nongnu/geiser-0.26.1.tar";
sha256 = "14qnni8ridrg3afh1wy9nvchbk0drn0h7ww5xgc6s03ivvmy7a71"; sha256 = "1fq68gvyyrplxw8i0yma4q0yqmrzp00v1v7izlc5r7h58wryy39a";
}; };
packageRequires = [ emacs project transient ]; packageRequires = [ emacs project transient ];
meta = { meta = {
@ -922,10 +932,10 @@
elpaBuild { elpaBuild {
pname = "geiser-guile"; pname = "geiser-guile";
ename = "geiser-guile"; ename = "geiser-guile";
version = "0.23.2"; version = "0.26.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.23.2.tar"; url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.26.1.tar";
sha256 = "1z2khagg425y5cfja694zxrj3lyw3awsmqd86b2hpqhrylrb8jaa"; sha256 = "1ay7v2qsl0kr9zvf6j1sss3gxniwrqp8xgxhxf7nhlkmkgcfp1wk";
}; };
packageRequires = [ emacs geiser ]; packageRequires = [ emacs geiser ];
meta = { meta = {
@ -1123,10 +1133,10 @@
elpaBuild { elpaBuild {
pname = "gruvbox-theme"; pname = "gruvbox-theme";
ename = "gruvbox-theme"; ename = "gruvbox-theme";
version = "1.27.0"; version = "1.30.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/gruvbox-theme-1.27.0.tar"; url = "https://elpa.nongnu.org/nongnu/gruvbox-theme-1.30.1.tar";
sha256 = "0p36b2rrhizfrj8i86zm810bh0w7qikb5cwpyn106yfvgcv39jl8"; sha256 = "19r3ffkyq779jjz0jvyxdf2zhm1yd1lax9sh0qsj1r5xrcmb15l7";
}; };
packageRequires = [ autothemer ]; packageRequires = [ autothemer ];
meta = { meta = {
@ -1345,10 +1355,10 @@
elpaBuild { elpaBuild {
pname = "inf-ruby"; pname = "inf-ruby";
ename = "inf-ruby"; ename = "inf-ruby";
version = "2.6.1"; version = "2.6.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/inf-ruby-2.6.1.tar"; url = "https://elpa.nongnu.org/nongnu/inf-ruby-2.6.2.tar";
sha256 = "0z57wwpm7wh04yp7za8fmv4ib56np629kmk4djs8qaz5bv494znr"; sha256 = "09p9pny4p0bfw6lw5pf17spyd77jb0pliapp3mfn7r3w8l8wi8xc";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1723,10 +1733,10 @@
elpaBuild { elpaBuild {
pname = "org-auto-tangle"; pname = "org-auto-tangle";
ename = "org-auto-tangle"; ename = "org-auto-tangle";
version = "0.5.1"; version = "0.6.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/org-auto-tangle-0.5.1.tar"; url = "https://elpa.nongnu.org/nongnu/org-auto-tangle-0.6.0.tar";
sha256 = "12sy30yr8r3g7gmvcdsrrmy62lhvajg3gp62gj7p836kh9xllpsl"; sha256 = "07g1cwsr8j1sd8whshi9y2b69qx10g9vd77pmwki9ba4sy0m7b0p";
}; };
packageRequires = [ async emacs ]; packageRequires = [ async emacs ];
meta = { meta = {
@ -1944,10 +1954,10 @@
elpaBuild { elpaBuild {
pname = "php-mode"; pname = "php-mode";
ename = "php-mode"; ename = "php-mode";
version = "1.24.0"; version = "1.24.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/php-mode-1.24.0.tar"; url = "https://elpa.nongnu.org/nongnu/php-mode-1.24.1.tar";
sha256 = "158850zdmz5irjy6cjai1i8j7qs1vwp95a2dli9f341lbpv2jvzp"; sha256 = "0ixm7z2bq4aacbwyzx53alfnqwbdn36i5ixdi3qjhr8rh5k48vg1";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2338,10 +2348,10 @@
elpaBuild { elpaBuild {
pname = "subed"; pname = "subed";
ename = "subed"; ename = "subed";
version = "1.0.7"; version = "1.0.8";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/subed-1.0.7.tar"; url = "https://elpa.nongnu.org/nongnu/subed-1.0.8.tar";
sha256 = "0js48yar8xgj3wjmlkv3k5208q1zvv74sg4lhk6asiy4cq3pqjia"; sha256 = "05dx4ywma7n73d0cihf4v8ayihm7gmfqpzvdycq4yk0zkxb958z1";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2614,10 +2624,10 @@
elpaBuild { elpaBuild {
pname = "web-mode"; pname = "web-mode";
ename = "web-mode"; ename = "web-mode";
version = "17.2.3"; version = "17.3.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/web-mode-17.2.3.tar"; url = "https://elpa.nongnu.org/nongnu/web-mode-17.3.1.tar";
sha256 = "1fvkr3yvhx67wkcynid7xppaci3m1d5ggdaii3d4dfp57wwz5c13"; sha256 = "0xlpxk9qscxip93lqyl1l5bzv6nxgq5yb8r05s4jslcipbbfil1d";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2712,10 +2722,10 @@
elpaBuild { elpaBuild {
pname = "xah-fly-keys"; pname = "xah-fly-keys";
ename = "xah-fly-keys"; ename = "xah-fly-keys";
version = "17.19.20220806194323"; version = "17.22.20220909110152";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-17.19.20220806194323.tar"; url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-17.22.20220909110152.tar";
sha256 = "1cflsvp1cpyr3zsj2dij3mc36lprwjdhrvxx2k8ilavhzi4dn64v"; sha256 = "1d8xkwcyd6dcxp926mwb8kgcpdqrcpmdv62ybdhx7izx0abia95y";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {

View file

@ -1,17 +1,37 @@
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#! nix-shell -i bash -p curl nix #! nix-shell -i bash -p curl nix coreutils
set -euxo pipefail set -euxo pipefail
export NIXPKGS_ALLOW_BROKEN=1
# This script piggybacks on the automatic code generation done by the nix-community emacs overlay # This script piggybacks on the automatic code generation done by the nix-community emacs overlay
# You can use this to avoid running lengthy code generation jobs locally # You can use this to avoid running lengthy code generation jobs locally
curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/elpa/elpa-generated.nix export NIXPKGS_ALLOW_BROKEN=1
nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages --show-trace
git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacs.pkgs.elpa-packages: $(date --iso)" -- elpa-generated.nix
curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json download_change() {
local FILE_LOCATION="$1"
local BASEURL="https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos"
curl -s -O "${BASEURL}/${FILE_LOCATION}"
}
commit_change() {
local MESSAGE="$1"
local FILENAME="$2"
git diff --exit-code "${FILENAME}" > /dev/null || \
git commit -m "${MESSAGE}: updated $(date --iso) (from overlay)" -- "${FILENAME}"
}
download_change "elpa/elpa-generated.nix"
nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages --show-trace
commit_change "elpa-packages" "elpa-generated.nix"
download_change "melpa/recipes-archive-melpa.json"
nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
git diff --exit-code recipes-archive-melpa.json > /dev/null || git commit -m "emacs.pkgs.melpa-packages: $(date --iso)" -- recipes-archive-melpa.json commit_change "melpa-packages" "recipes-archive-melpa.json"
download_change "nongnu/nongnu-generated.nix"
nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.nongnuPackages
commit_change "nongnu-packages" "nongnu-generated.nix"

View file

@ -0,0 +1,19 @@
{ lib, fetchurl, trivialBuild }:
trivialBuild {
pname = "yes-no";
version = "2017-10-01";
src = fetchurl {
url = "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/143bcaeb679a8fa8a548e92a5a9d5c2baff50d9c/yes-no.el";
sha256 = "03w4wfx885y89ckyd5d95n2571nmmzrll6kr0yan3ip2aw28xq3i";
};
meta = with lib; {
description = "Specify use of `y-or-n-p' or `yes-or-no-p' on a case-by-case basis";
homepage = "https://www.emacswiki.org/emacs/yes-no.el";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jcs090218 ];
platforms = platforms.all;
};
}

View file

@ -2609,6 +2609,30 @@ let
ms-vsliveshare.vsliveshare = callPackage ./ms-vsliveshare-vsliveshare { }; ms-vsliveshare.vsliveshare = callPackage ./ms-vsliveshare-vsliveshare { };
vscjava.vscode-java-debug = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-java-debug";
publisher = "vscjava";
version = "0.44.0";
sha256 = "sha256-8/H7rihSKAvXp8QxK949txgMKwt6aYVN4EQdwhphIiQ=";
};
meta = {
license = lib.licenses.mit;
};
};
vscjava.vscode-java-test = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-java-test";
publisher = "vscjava";
version = "0.37.1";
sha256 = "sha256-QpDMG+0RbiRY9YQYXQhA6ESBoIjBeUxq+bEZ1Y71oSM=";
};
meta = {
license = lib.licenses.mit;
};
};
vscodevim.vim = buildVscodeMarketplaceExtension { vscodevim.vim = buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "vim"; name = "vim";

View file

@ -33,6 +33,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pcsx2"; pname = "pcsx2";
version = "1.7.3165"; version = "1.7.3165";
# nixpkgs-update: no auto update
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "PCSX2"; owner = "PCSX2";

View file

@ -9,10 +9,10 @@
let let
# Keep these separate so the update script can regex them # Keep these separate so the update script can regex them
rpcs3GitVersion = "13907-cdef752a9"; rpcs3GitVersion = "14141-d686b48f6";
rpcs3Version = "0.0.23-13907-cdef752a9"; rpcs3Version = "0.0.24-14141-d686b48f6";
rpcs3Revision = "cdef752a9c2004010279cd4a6d77b451b42cc6ab"; rpcs3Revision = "d686b48f6549c736661e14d1e0990b043c32e3c2";
rpcs3Sha256 = "1mw6k097rsiljaw34harhvr32dvrh4xv22ryinylijnsjlm3hcan"; rpcs3Sha256 = "1jzpb189isy9kc6l5cy1nfx0wq5cri753sh32b1xq259lkqihdp5";
ittapi = fetchFromGitHub { ittapi = fetchFromGitHub {
owner = "intel"; owner = "intel";

View file

@ -27,13 +27,13 @@
buildDotnetModule rec { buildDotnetModule rec {
pname = "ryujinx"; pname = "ryujinx";
version = "1.1.248"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml version = "1.1.257"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Ryujinx"; owner = "Ryujinx";
repo = "Ryujinx"; repo = "Ryujinx";
rev = "5ff5fe47bad947a95545390865c597bec6c62070"; rev = "81f1a4dc3161882b0385c9d4752fbba84b9eca96";
sha256 = "0nfzf7q58mhdyszwv3mbz3wqf4w0m1p3fmf3cpga1pf9mfq65nqz"; sha256 = "1p4c8k8pc47hl32bml050fvxyhdjcd002xx60rwvzlgvdgw6b3xq";
}; };
nugetDeps = ./deps.nix; nugetDeps = ./deps.nix;

View file

@ -46,9 +46,9 @@ in rec {
unstable = fetchurl rec { unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well. # NOTE: Don't forget to change the SHA256 for staging as well.
version = "7.15"; version = "7.17";
url = "https://dl.winehq.org/wine/source/7.x/wine-${version}.tar.xz"; url = "https://dl.winehq.org/wine/source/7.x/wine-${version}.tar.xz";
sha256 = "sha256-0auKGarm/mwIM8PYgqMkSKv6SihZDxRulUUOufWPuRw="; sha256 = "sha256-JDa4rFDWKPTKOsUwDBgmY9/PpIuhulVIp3KOtmH7T0E=";
inherit (stable) gecko32 gecko64 patches; inherit (stable) gecko32 gecko64 patches;
mono = fetchurl rec { mono = fetchurl rec {
@ -61,7 +61,7 @@ in rec {
staging = fetchFromGitHub rec { staging = fetchFromGitHub rec {
# https://github.com/wine-staging/wine-staging/releases # https://github.com/wine-staging/wine-staging/releases
inherit (unstable) version; inherit (unstable) version;
sha256 = "sha256-JMig0EUgxdRwpeaxZcNQi+6xWHUg43bXB7jkm5skKC8="; sha256 = "sha256-eC5nYX6Cjutd30rrAn6SavWlQtF8swMHDzsESN4SUmo=";
owner = "wine-staging"; owner = "wine-staging";
repo = "wine-staging"; repo = "wine-staging";
rev = "v${version}"; rev = "v${version}";

View file

@ -1,6 +1,5 @@
{ lib { lib
, fetchFromGitHub , fetchFromGitHub
, fetchpatch
, meson , meson
, ninja , ninja
, pkg-config , pkg-config
@ -19,7 +18,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "drawing"; pname = "drawing";
version = "1.0.0"; version = "1.0.1";
format = "other"; format = "other";
@ -27,19 +26,9 @@ python3.pkgs.buildPythonApplication rec {
owner = "maoschanz"; owner = "maoschanz";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-qNaljtuA5E/QaLJ9QILPRQCqOvKmX4ZGq/0z5unA8KA="; sha256 = "sha256-9nosriI3Kdf1M5/TYFWn1jtQTqNKhBcFh7q3E4Uoq4s=";
}; };
patches = [
# Fix build with meson 0.61, can be removed on next update.
# https://github.com/NixOS/nixpkgs/issues/167584
(fetchpatch {
url = "https://github.com/maoschanz/drawing/commit/6dd271089af76b69322500778e3ad6615a117dcc.patch";
sha256 = "sha256-4pKWm3LYstVxZ4+gGsZDfM4K+7WBY8EYjylzc/CQZmo=";
includes = [ "data/meson.build" "help/meson.build" ];
})
];
nativeBuildInputs = [ nativeBuildInputs = [
appstream-glib appstream-glib
desktop-file-utils desktop-file-utils

View file

@ -11,11 +11,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "drawio"; pname = "drawio";
version = "20.2.3"; version = "20.3.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm"; url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
sha256 = "sha256-O/gzXAzvaYJXpexjBSc6jNW1wX0ukwQcpFU8fq4qM4k="; sha256 = "bfcd363f549ce8dc13ae2287cec5099e4bf1d0d4b6f8deef40a81279f78817e1";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -0,0 +1,59 @@
{ lib
, stdenv
, fetchFromGitHub
, rustPlatform
, pkg-config
, meson
, ninja
, glib
, gtk4
, libadwaita
, wrapGAppsHook4
, appstream-glib
, desktop-file-utils
}:
stdenv.mkDerivation rec {
pname = "eyedropper";
version = "0.2.0";
src = fetchFromGitHub {
owner = "FineFindus";
repo = pname;
rev = "v${version}";
hash = "sha256-xyvnnWts+VuUFlV/o1cGOM7482ReiHVsn+AfdExYBTM=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-8G1fJ5YiUAzMqDoIjWGDTvtPw8chkxPrOz/c9WZRbhM=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
appstream-glib
desktop-file-utils
] ++ (with rustPlatform; [
rust.cargo
rust.rustc
cargoSetupHook
]);
buildInputs = [
glib
gtk4
libadwaita
];
meta = with lib; {
description = "An easy-to-use color picker and editor";
homepage = "https://github.com/FineFindus/eyedropper";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ zendo ];
};
}

View file

@ -128,6 +128,7 @@ stdenv.mkDerivation rec {
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.sheepforce ]; maintainers = [ maintainers.sheepforce ];
hydraPlatforms = [];
mainProgram = "PixInsight"; mainProgram = "PixInsight";
}; };
} }

View file

@ -0,0 +1,49 @@
{ lib
, fetchFromGitLab
, rustPlatform
, cargo
, pkg-config
, binutils-unwrapped
, gtk3-x11
, atk
, glib
, librsvg
, gdk-pixbuf
, wrapGAppsHook
}:
rustPlatform.buildRustPackage rec {
pname = "pizarra";
version = "1.7.3";
src = fetchFromGitLab {
owner = "categulario";
repo = "pizarra-gtk";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "sha256-XP+P2w6s47JQV4spKeMKe/Ktxid7uokGYH4IEJ5VHSc=";
};
cargoSha256 = "sha256-JQZ/95tRlmsrb0EJaPlE8G0fMSeEgLnDi3pkLjcJz/o=";
nativeBuildInputs = [ wrapGAppsHook pkg-config gdk-pixbuf ];
buildInputs = [ gtk3-x11 atk glib librsvg ];
meta = with lib; {
description = "A simple blackboard written in GTK";
longDescription = ''
A simple endless blackboard.
Contains various features, such as:
- Pencil
- Rectangle
- Ellipse
- Line
- Text
- Grids
'';
homepage = "https://pizarra.categulario.tk/en/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ mglolenstine ];
};
}

View file

@ -24,6 +24,6 @@ mkDerivation {
qca-qt5 qtkeychain qtnetworkauth qtspeech qtxmlpatterns qca-qt5 qtkeychain qtnetworkauth qtspeech qtxmlpatterns
]; ];
qtWrapperArgs = [ qtWrapperArgs = [
"--prefix SASL_PATH : ${lib.makeSearchPath "lib/sasl2" [ cyrus_sasl libkgapi ]}" "--prefix SASL_PATH : ${lib.makeSearchPath "lib/sasl2" [ cyrus_sasl.out libkgapi ]}"
]; ];
} }

View file

@ -1,7 +1,7 @@
{ {
stdenv, mkDerivation, lib, stdenv, mkDerivation, lib,
extra-cmake-modules, kdoctools, extra-cmake-modules, kdoctools,
breeze-icons, chmlib ? null, discount, djvulibre, ebook_tools, kactivities, breeze-icons, chmlib, discount, djvulibre, ebook_tools, kactivities,
karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
kdbusaddons, kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts, kdbusaddons, kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts,
kpty, kpurpose, kwallet, kwindowsystem, libkexiv2, libspectre, libzip, phonon, poppler, kpty, kpurpose, kwallet, kwindowsystem, libkexiv2, libspectre, libzip, phonon, poppler,
@ -16,8 +16,8 @@ mkDerivation {
kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
kdegraphics-mobipocket kiconthemes kjs khtml kio kparts kpty kpurpose kwallet kdegraphics-mobipocket kiconthemes kjs khtml kio kparts kpty kpurpose kwallet
kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5 kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5
qtdeclarative qtsvg threadweaver kcrash qtspeech qtdeclarative qtsvg threadweaver kcrash qtspeech chmlib
] ++ lib.optional (!stdenv.isAarch64) chmlib; ];
# InitialPreference values are too high and end up making okular # InitialPreference values are too high and end up making okular
# default for anything considered text/plain. Resetting to 1, which # default for anything considered text/plain. Resetting to 1, which

View file

@ -3,13 +3,13 @@
mkDerivation rec { mkDerivation rec {
pname = "AusweisApp2"; pname = "AusweisApp2";
version = "1.24.1"; version = "1.24.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Governikus"; owner = "Governikus";
repo = "AusweisApp2"; repo = "AusweisApp2";
rev = version; rev = version;
sha256 = "sha256-Uoi12odfJGyNc8Ap7E/zm4xklYdPPQvCGNxjb9AWJOI="; sha256 = "sha256-p38zcTFbCyImiGVCr5o/QQ6BT8U2SMiHeYE3aTNYpJs=";
}; };
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ];

View file

@ -1,21 +1,22 @@
{ fetchFromGitHub, lib, rustPlatform }: { lib, rustPlatform, fetchFromGitHub }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "genact"; pname = "genact";
version = "1.0.0"; version = "1.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "svenstaro"; owner = "svenstaro";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-sKFI7r0mwmzKiHy9HmskS10M5v/jZj/VeO4F9ZQl2g0="; sha256 = "sha256-lZNVXBIYl9niqdwNcSzQwQTdxlA4kKQ/WrEt93cQDJU=";
}; };
cargoSha256 = "sha256-79IC51xdkelgsRJF+rz9UOTfrJ/HS6PbkyxySe0Qk4Q="; cargoSha256 = "sha256-9IiA7KAaj9bLJ7QSB/ojLEiUVv0FGYsu9by4NSfMtiE=";
meta = with lib; { meta = with lib; {
description = "A nonsense activity generator"; description = "A nonsense activity generator";
homepage = "https://github.com/svenstaro/genact"; homepage = "https://github.com/svenstaro/genact";
changelog = "https://github.com/svenstaro/genact/blob/v${version}/CHANGELOG.md";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ figsoda ]; maintainers = with maintainers; [ figsoda ];
}; };

View file

@ -1,4 +1,4 @@
{ lib, bundlerApp, bundlerUpdateScript, ruby, makeWrapper, git, docutils }: { lib, bundlerApp, bundlerUpdateScript, ruby, makeWrapper, git, docutils, nixosTests }:
bundlerApp rec { bundlerApp rec {
pname = "gollum"; pname = "gollum";
@ -10,6 +10,7 @@ bundlerApp rec {
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
passthru.updateScript = bundlerUpdateScript "gollum"; passthru.updateScript = bundlerUpdateScript "gollum";
passthru.tests.gollum = nixosTests.gollum;
meta = with lib; { meta = with lib; {
description = "A simple, Git-powered wiki with a sweet API and local frontend"; description = "A simple, Git-powered wiki with a sweet API and local frontend";

View file

@ -4,9 +4,9 @@
, curl, writeShellScript, common-updater-scripts }: , curl, writeShellScript, common-updater-scripts }:
let let
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.6-61e2338c/Hubstaff-1.6.6-61e2338c.sh"; url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.7-5c6fee47/Hubstaff-1.6.7-5c6fee47.sh";
version = "1.6.6-61e2338c"; version = "1.6.7-5c6fee47";
sha256 = "0i5wxwnrgabirk1x9aii7m428dkr745sfm1lcql4yhlqx4mw6qn1"; sha256 = "0i0xlabdi4xhjkfwb6s4bwjnl4k3dj15k7aqjilmq5wb4rhhfpws";
rpath = lib.makeLibraryPath rpath = lib.makeLibraryPath
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft [ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft

View file

@ -2,7 +2,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "nerd-font-patcher"; pname = "nerd-font-patcher";
version = "2.1.0"; version = "2.2.2";
# This uses a sparse checkout because the repo is >2GB without it # This uses a sparse checkout because the repo is >2GB without it
src = fetchFromGitHub { src = fetchFromGitHub {
@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec {
font-patcher font-patcher
/src/glyphs /src/glyphs
''; '';
sha256 = "sha256-06dn6M2wCFO/uBHDR7VZHNHIybT4h/VGD9nHc4G0EKA="; sha256 = "sha256-boZUd1PM8puc9BTgOwCJpkfk6VMdXLsIyp+fQmW/ZqI=";
}; };
propagatedBuildInputs = with python3Packages; [ fontforge ]; propagatedBuildInputs = with python3Packages; [ fontforge ];
@ -22,15 +22,15 @@ python3Packages.buildPythonApplication rec {
postPatch = '' postPatch = ''
sed -i font-patcher \ sed -i font-patcher \
-e 's,__dir__ + "/src,"'$out'/share/${pname},' -e 's,__dir__ + "/src,"'$out'/share/nerd-font-patcher,'
''; '';
dontBuild = true; dontBuild = true;
installPhase = '' installPhase = ''
mkdir -p $out/bin $out/share/${pname} mkdir -p $out/bin $out/share/nerd-font-patcher
install -Dm755 font-patcher $out/bin/${pname} install -Dm755 font-patcher $out/bin/nerd-font-patcher
cp -ra src/glyphs $out/share/${pname} cp -ra src/glyphs $out/share/nerd-font-patcher
''; '';
meta = with lib; { meta = with lib; {

View file

@ -0,0 +1,14 @@
diff --git a/types/wlr_output_layout.c b/types/wlr_output_layout.c
index eb672f06..f0f546da 100644
--- a/types/wlr_output_layout.c
+++ b/types/wlr_output_layout.c
@@ -242,6 +242,9 @@ bool wlr_output_layout_contains_point(struct wlr_output_layout *layout,
if (reference) {
struct wlr_output_layout_output *l_output =
wlr_output_layout_get(layout, reference);
+ if (!l_output) {
+ return false;
+ }
struct wlr_box *box = output_layout_output_get_box(l_output);
return wlr_box_contains_point(box, lx, ly);
} else {

View file

@ -21,36 +21,38 @@
let let
phocWlroots = wlroots.overrideAttrs (old: { phocWlroots = wlroots.overrideAttrs (old: {
patches = (old.patches or []) ++ [ patches = (old.patches or []) ++ [
# Temporary fix. Upstream report: https://source.puri.sm/Librem5/phosh/-/issues/422 # Revert "layer-shell: error on 0 dimension without anchors"
# https://source.puri.sm/Librem5/phosh/-/issues/422
(fetchpatch { (fetchpatch {
name = "0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; name = "0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch";
url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/78fde4aaf1a74eb13a3f083cb6dfb29f578c3265/community/wlroots/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; url = "https://source.puri.sm/Librem5/wlroots/-/commit/4f66b0931aaaee65367102e9c4ccb736097412c7.patch";
sha256 = "1zjn7mwdj21z0jsc2mz90cnrzk97yqkiq58qqgpjav4h4dgpfb38"; hash = "sha256-2Vy5a4lWh8FP2PN6xRIZv6IlUuLZibT0MYW+EyvVULs=";
}) })
# xwayland: Allow to retrieve _NET_STARTUP_ID # xdg-activation: Deduplicate token creation code
(fetchpatch { (fetchpatch {
name = "allow-to-retrieve-net-startup-id.patch"; name = "xdg-activation-deduplicate-token-creation-code.patch";
url = "https://github.com/swaywm/wlroots/commit/66593071bc90a1cccaeedc636eb6f33c973f5362.patch"; url = "https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/dd03d839ab56c3e5d7c607a8d76e58e0b75edb85.patch";
sha256 = "sha256-yKf/twdUzrII5IakH7AH6LGyPDo9Nl/gIB0pTThSTfY="; sha256 = "sha256-mxt68MISC24xpaBtVSc1F2W4cyNs5wQowtbUQH9Eqr8=";
}) })
# xdg-activation: Allow to submit tokens
# seat: Allow to cancel touches
(fetchpatch { (fetchpatch {
name = "allow-to-submit-tokens.patch"; name = "seat-Allow-to-cancel-touches.patch";
url = "https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/4c59f7d46a949548caa55805b00922f846d58525.patch"; url = "https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/17b2b06633729f1826715c1d0b84614aa3cedb3a.patch";
sha256 = "sha256-1kUIt6lV3HXN2BBBER8sjYVLTvgqELdSeFullJjNGo8="; sha256 = "sha256-BAeXa3ZB5TXnlq0ZP2+rZlVXEPWpLP4Wi4TLwoXjkz4=";
})
# xwayland: Allow to retrieve startup-id via _NET_STARTUP_INFO
(fetchpatch {
name = "allow-to-retrieve-startup-id-via-net-startup-info.patch";
url = "https://github.com/swaywm/wlroots/commit/235bb6f2fcb8ee4174215ba74b5bc2f191c5960a.patch";
sha256 = "sha256-7AWBq12tF/781CmgvTaOvTIiiJMywxRn6eWp+jacdak=";
}) })
# From
# https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/13fcdba75cf5f21cfd49c1a05f4fa62f77619b40
# which has been merged upstream, but doesn't cleanly apply on to the
# latest released version.
./0001-handle-outputs-that-arent-in-the-layout.patch
]; ];
}); });
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "phoc"; pname = "phoc";
version = "0.13.0"; version = "0.21.1";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org";
@ -58,7 +60,7 @@ in stdenv.mkDerivation rec {
owner = "Phosh"; owner = "Phosh";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-65u59S6ntvkoQUO5BvkHZVcbj6cHIU4CgHWjzFo6s94="; sha256 = "sha256-HPqhro6TE/Ukh4txBPrDoIuDaxSxd/ZkDVZU3+m3GFg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -22,6 +22,7 @@
, libpng , libpng
, mpfr , mpfr
, nlopt , nlopt
, opencascade-occt
, openvdb , openvdb
, pcre , pcre
, qhull , qhull
@ -48,7 +49,7 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "prusa-slicer"; pname = "prusa-slicer";
version = "2.4.2"; version = "2.5.0";
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
@ -74,6 +75,7 @@ stdenv.mkDerivation rec {
libpng libpng
mpfr mpfr
nlopt nlopt
opencascade-occt
openvdb openvdb
pcre pcre
systemd systemd
@ -133,7 +135,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "prusa3d"; owner = "prusa3d";
repo = "PrusaSlicer"; repo = "PrusaSlicer";
sha256 = "17p56f0zmiryy8k4da02in1l6yxniz286gf9yz8s1gaz5ksqj4af"; sha256 = "sha256-wLe+5TFdkgQ1mlGYgp8HBzugeONSne17dsBbwblILJ4=";
rev = "version_${version}"; rev = "version_${version}";
}; };

View file

@ -0,0 +1,41 @@
{ lib
, stdenv
, fetchFromGitHub
, makeWrapper
, rofi-unwrapped
, bluez
}:
stdenv.mkDerivation rec {
pname = "rofi-bluetooth";
version = "unstable-2021-03-05";
src = fetchFromGitHub {
owner = "nickclyde";
repo = "rofi-bluetooth";
# https://github.com/nickclyde/rofi-bluetooth/issues/19
rev = "893db1f2b549e7bc0e9c62e7670314349a29cdf2";
sha256 = "sha256-3oROJKEQCuSnLfbJ+JSSc9hcmJTPrLHRQJsrUcaOMss=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
install -D --target-directory=$out/bin/ ./rofi-bluetooth
wrapProgram $out/bin/rofi-bluetooth \
--prefix PATH ":" ${lib.makeBinPath [ rofi-unwrapped bluez ] }
runHook postInstall
'';
meta = with lib; {
description = "Rofi-based interface to connect to bluetooth devices and display status info";
homepage = "https://github.com/nickclyde/rofi-bluetooth";
license = licenses.gpl3Only;
maintainers = with maintainers; [ MoritzBoehme ];
platforms = platforms.linux;
};
}

View file

@ -7,6 +7,7 @@
, gspell , gspell
, gtk3 , gtk3
, gobject-introspection , gobject-introspection
, gitUpdater
}: }:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
@ -73,6 +74,13 @@ python3.pkgs.buildPythonApplication rec {
makeWrapperArgs+=("''${gappsWrapperArgs[@]}") makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
''; '';
passthru = {
updateScript = gitUpdater {
inherit pname version;
ignoredVersions = ''master.*'';
};
};
meta = with lib; { meta = with lib; {
description = "A sticky notes app for the linux desktop"; description = "A sticky notes app for the linux desktop";
homepage = "https://github.com/linuxmint/sticky"; homepage = "https://github.com/linuxmint/sticky";

View file

@ -37,6 +37,5 @@ stdenv.mkDerivation rec {
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.thehedgeh0g ]; maintainers = [ maintainers.thehedgeh0g ];
mainProgram = "${pname}";
}; };
} }

View file

@ -12,13 +12,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "xdgmenumaker"; pname = "xdgmenumaker";
version = "1.6"; version = "2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gapan"; owner = "gapan";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "Q38m8YrvkkTCY2dByvPj+Ee1DMSUbWvwSDI0kW182bU="; sha256 = "CLFFsc/F6I8UOY/XbViWCAlnnu32E5gtEXg9+KSJqI0=";
}; };
format = "other"; format = "other";

View file

@ -32,15 +32,15 @@
} }
}, },
"dev": { "dev": {
"version": "106.0.5249.21", "version": "107.0.5286.2",
"sha256": "0d3ha2r54sjx1rhaas0mrgk2dl4xvgb83r5pbq9qzh52z43ynmlv", "sha256": "111dk9qdxbad2agvnh8ijb18ip9vw32gdfxajqkrlqgcmmj61vsz",
"sha256bin64": "0bawgqjkpllqif0jaah43vys57c9y8w7a5rjn35bxlmjrfmfwhwc", "sha256bin64": "0l19ylpcrnzqj2imlhl13h0f5773znwx6h4xjzrac2z2lxkzmkmk",
"deps": { "deps": {
"gn": { "gn": {
"version": "2022-08-11", "version": "2022-08-31",
"url": "https://gn.googlesource.com/gn", "url": "https://gn.googlesource.com/gn",
"rev": "0bcd37bd2b83f1a9ee17088037ebdfe6eab6d31a", "rev": "00b741b1568d56cf4e117dcb9f70cd42653b4c78",
"sha256": "13zks2z65kg7fzzsysq4mswd4bhhy3h7ycdrpxfilcvixx2n2gac" "sha256": "0vi9gigzdyji8fql8k8sv1v5z0icjph8awz49xidn26bvly6526g"
} }
} }
}, },

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "glooctl"; pname = "glooctl";
version = "1.12.11"; version = "1.12.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "solo-io"; owner = "solo-io";
repo = "gloo"; repo = "gloo";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-vG1FSBHXaJBJk9dC61yZK1Vkr8PyQ7Q4TVZWRIsDY3E="; hash = "sha256-aQUN1T6AH1TRj2pPkNFoS5Fmo3NPmmiEXFZfFeXtN1w=";
}; };
subPackages = [ "projects/gloo/cli/cmd" ]; subPackages = [ "projects/gloo/cli/cmd" ];

View file

@ -13,15 +13,18 @@ buildGoModule rec {
vendorSha256 = "sha256-HmMh5jrRGs4rtN9GLddS9IwITyvVmOrL5TShhQeyxKU="; vendorSha256 = "sha256-HmMh5jrRGs4rtN9GLddS9IwITyvVmOrL5TShhQeyxKU=";
nativeBuildInputs = [ installShellFiles ];
doCheck = false; doCheck = false;
# TODO: enable after https://github.com/pulumi/kubespy/issues/72 is addressed. ldflags = [ "-X" "github.com/pulumi/kubespy/version.Version=${version}" ];
# postInstall = ''
# for shell in bash zsh; do postInstall = ''
# $out/bin/kubespy completion $shell > kubespy.$shell for shell in bash fish zsh; do
# installShellCompletion kubespy.$shell $out/bin/kubespy completion $shell > kubespy.$shell
# done installShellCompletion kubespy.$shell
# ''; done
'';
meta = with lib; { meta = with lib; {
description = "A tool to observe Kubernetes resources in real time"; description = "A tool to observe Kubernetes resources in real time";

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "node-problem-detector"; pname = "node-problem-detector";
version = "0.8.11"; version = "0.8.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubernetes"; owner = "kubernetes";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-dkOkHsQ1ZfB5rSFuFRlrKf605EIo/7IkyyYz3ZhMggQ="; sha256 = "sha256-FLOkGeGl2tpLCyJxiGubzo+d2fieF/aNfhNJ2nzOtfw=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -0,0 +1,24 @@
{ lib, fetchFromGitHub, buildGoModule }:
buildGoModule rec{
pname = "pinniped";
version = "0.17.0";
src = fetchFromGitHub {
owner = "vmware-tanzu";
repo = "pinniped";
rev = "v${version}";
sha256 = "sha256-0h7zyKe2gmC1n9EB5FRVI/io7Yj+91ZAtLy+1u3gyO0=";
};
subPackages = "cmd/pinniped";
vendorSha256 = "sha256-8ohyyciL1ORYOxPu64W0jXASTv+vVZR8StutzbF9N4Y=";
meta = with lib; {
description = "Tool to securely log in to your Kubernetes clusters";
homepage = "https://pinniped.dev/";
license = licenses.asl20;
maintainers = with maintainers; [ bpaulin ];
};
}

View file

@ -5,14 +5,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "flexget"; pname = "flexget";
version = "3.3.25"; version = "3.3.26";
# Fetch from GitHub in order to use `requirements.in` # Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "flexget"; owner = "flexget";
repo = "flexget"; repo = "flexget";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-kfpri6AFNb9GcAIDVhFV1uSDSNNSopReWRKuvWifcTU="; hash = "sha256-5THgUOQv9gPUh9emWiBs/tSNsOX4ZVh+jvKEpWsy05w=";
}; };
postPatch = '' postPatch = ''

View file

@ -3,7 +3,7 @@
buildGoPackage rec { buildGoPackage rec {
pname = "coyim"; pname = "coyim";
version = "0.3.11"; version = "0.4";
goPackagePath = "github.com/coyim/coyim"; goPackagePath = "github.com/coyim/coyim";
@ -11,7 +11,7 @@ buildGoPackage rec {
owner = "coyim"; owner = "coyim";
repo = "coyim"; repo = "coyim";
rev = "v${version}"; rev = "v${version}";
sha256 = "1g8nf56j17rdhhj7pv3ha1rb2mfc0mdvyzl35pgcki08w7iw08j3"; sha256 = "sha256-dpTU5Tx1pfUGZMt9QNEYDytgArhhvEvh1Yvj6IAjgeI=";
}; };
nativeBuildInputs = [ pkg-config wrapGAppsHook ]; nativeBuildInputs = [ pkg-config wrapGAppsHook ];
@ -23,6 +23,5 @@ buildGoPackage rec {
homepage = "https://coy.im/"; homepage = "https://coy.im/";
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;
broken = true; #fails to build with go >= 1.16
}; };
} }

View file

@ -3,7 +3,7 @@ let
versions = if stdenv.isLinux then { versions = if stdenv.isLinux then {
stable = "0.0.19"; stable = "0.0.19";
ptb = "0.0.29"; ptb = "0.0.29";
canary = "0.0.138"; canary = "0.0.139";
} else { } else {
stable = "0.0.264"; stable = "0.0.264";
ptb = "0.0.59"; ptb = "0.0.59";
@ -22,7 +22,7 @@ let
}; };
canary = fetchurl { canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "sha256-NojoHrrgdvLiMgWYPClXzWjWXuvHz7urhyHzMnZwvBY="; sha256 = "sha256-/PfO0TWRxMrK+V1XkYmdaXQ6SfyJNBFETaR9oV90itI=";
}; };
}; };
aarch64-darwin = { aarch64-darwin = {
@ -53,7 +53,7 @@ let
downloadPage = "https://discordapp.com/download"; downloadPage = "https://discordapp.com/download";
sourceProvenance = with sourceTypes; [ binaryNativeCode ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree; license = licenses.unfree;
maintainers = with maintainers; [ MP2E devins2518 ]; maintainers = with maintainers; [ MP2E devins2518 artturin infinidoge ];
platforms = [ "x86_64-linux" "x86_64-darwin" ] platforms = [ "x86_64-linux" "x86_64-darwin" ]
++ lib.optionals (branch != "stable") [ "aarch64-darwin" ]; ++ lib.optionals (branch != "stable") [ "aarch64-darwin" ];
}; };

View file

@ -23,14 +23,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fractal-next"; pname = "fractal-next";
version = "unstable-2022-07-21"; version = "unstable-2022-09-09";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org";
owner = "GNOME"; owner = "GNOME";
repo = "fractal"; repo = "fractal";
rev = "d076bd24419ac6172c2c1a7cc023a5dca938ef07"; rev = "5f0a4b48a745ccce202d14e7d02e14f51598fb42";
hash = "sha256-2bS6PZuMbR/VgSpMD31sQR4ZkhWNu1CLSl6MX0f/m5A="; hash = "sha256-7s2ytHpM5pZ0dhnVMA8KDWIBaSWds7t9GB6Wav+0dQA=";
}; };
cargoDeps = rustPlatform.fetchCargoTarball { cargoDeps = rustPlatform.fetchCargoTarball {

View file

@ -1,665 +1,665 @@
{ {
version = "102.2.1"; version = "102.2.2";
sources = [ sources = [
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/af/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/af/thunderbird-102.2.2.tar.bz2";
locale = "af"; locale = "af";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "d38c09e55cf1438269d80461672a615c155e975d65c8c35f5879f4236702c9eb"; sha256 = "81f0274a9358a25a70589923a114d92452f2f693490e93ebdf65efa955c6e36a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ar/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ar/thunderbird-102.2.2.tar.bz2";
locale = "ar"; locale = "ar";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "881eb9bafcea2646ab0830cc5a7d3ed2979b0e745ddb7a018336ed7b8382e491"; sha256 = "27ebc77615606d1b7c3c2a2d5f9a3b1cf5343c7f17fa127467a410c02336780e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ast/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ast/thunderbird-102.2.2.tar.bz2";
locale = "ast"; locale = "ast";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "17cba24fa82d4b3a16be5d44ea9be4b7bb1aff4b206841d5eb169815951a9f7f"; sha256 = "05cf9d371640de3421c42ea464f6de6bdb1bc4eaff6ee43bbcff82513d034776";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/be/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/be/thunderbird-102.2.2.tar.bz2";
locale = "be"; locale = "be";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "271b5d606fc489918cec8d8d316f0b8cf295a296b95a1dd458dd0b7f68fe148b"; sha256 = "9c85da8f62f1300462c2bad9d19988c17ef7cc1bf093703b3c8d695c1049b832";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/bg/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/bg/thunderbird-102.2.2.tar.bz2";
locale = "bg"; locale = "bg";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1e68a8cd66f72712f74bc3735af6c0016256ebfe1c7c2e820624268ed8837350"; sha256 = "3235edcae2382d6198fa66ac2c03f4e01fbf0890c7dc944921abfadb38e8303d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/br/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/br/thunderbird-102.2.2.tar.bz2";
locale = "br"; locale = "br";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "82ab077f9a5f43875c6c82ad7d0e17f9c0b893e0bf307574fa8506e3220c8604"; sha256 = "0c690d54d04b585f106d2ebf47aec2643ef730dff513ee3ef20d7d5ce884bfce";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ca/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ca/thunderbird-102.2.2.tar.bz2";
locale = "ca"; locale = "ca";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "2ed8291572dbfaee211f5b9fdb97d4faa591f853815d9eaa43b704270551b02e"; sha256 = "814820aada02f77ac7f7bbf46488269b12f4112bd0d27820ec4cfbe9b07195e7";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/cak/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/cak/thunderbird-102.2.2.tar.bz2";
locale = "cak"; locale = "cak";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a5e472616951c799e6dbbdfedc3e8ba497812b027ab22c909166c3e452a29d74"; sha256 = "12bfe570291becd5aa074be7dacba8f6b01068d9046e0c35aa0016cd7487b198";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/cs/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/cs/thunderbird-102.2.2.tar.bz2";
locale = "cs"; locale = "cs";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1d3d1e0355275152050a0c5d32fc0b0f6b53f336d02837ca7653416888e271b5"; sha256 = "dbabd84e1380447fdd7435362fcdc0daf60af718693381336195d31790cd2331";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/cy/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/cy/thunderbird-102.2.2.tar.bz2";
locale = "cy"; locale = "cy";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "4b2f3cc7e1e81abdc52969cd08cd3586e14ea2ff574c8c3b334109dab00ccd64"; sha256 = "2817bb295ea0f6d180dcdaed2e5152b1e89e25eb9d12eaebae6f5d74b7e9c06a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/da/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/da/thunderbird-102.2.2.tar.bz2";
locale = "da"; locale = "da";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "89613187e078a6f341ad8799cb4980cca770b2a0ccb0969740f53e5e7073f00b"; sha256 = "de91ba53ab1a416c5326611930c4b8031e9f7038791164e08ec9079ae49a6111";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/de/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/de/thunderbird-102.2.2.tar.bz2";
locale = "de"; locale = "de";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "4b7a030cb532a94a6eb3cc1343144bb90abcb7b2fcd3df81dc126b831d0a2740"; sha256 = "547576de35e0e7950d0d1150167e4bba6d7802abe498c97324fd3856a0d0eb51";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/dsb/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/dsb/thunderbird-102.2.2.tar.bz2";
locale = "dsb"; locale = "dsb";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e1d05cac1f513ba573239dd677da6edb94cda9badef57b168f498b5bc218a3ee"; sha256 = "e64baa142d019eacf84ed9a30ca9490a7aa34cc647774f4b4be4eb9e852875da";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/el/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/el/thunderbird-102.2.2.tar.bz2";
locale = "el"; locale = "el";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "d63891c05b56970021fdc455fe67d2d6f27233670e436b52522cfd012c503c74"; sha256 = "e04c18427b47eda0583e62ec88a07bcba8b625d47762e355bbba0b5dd81807fe";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/en-CA/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/en-CA/thunderbird-102.2.2.tar.bz2";
locale = "en-CA"; locale = "en-CA";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "34c81ec572000433e356ec5f13dbe461ca788b19ca0af9fc34ab50d7feda9cd1"; sha256 = "cbb9ab2c74fa24e70be67defd94ea4777f7d4f45ba4e6f6074915dcb72756c43";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/en-GB/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/en-GB/thunderbird-102.2.2.tar.bz2";
locale = "en-GB"; locale = "en-GB";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "2e9aeef97495ebe462a62cfd0d9966b66cdf0a0464a8d5d012cf3d430b4a28cb"; sha256 = "8b86fa495e54a99ef5bba2d6f1b507138ac85a5425e88f2e568e82501337b679";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/en-US/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/en-US/thunderbird-102.2.2.tar.bz2";
locale = "en-US"; locale = "en-US";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "92883c21319411096c355569c43b6cae2cbe7770c1814a9997ea7b9746431271"; sha256 = "a406c23d5e7cc372d68cd5d08f3c86c611fcb63a9b78a944e3e1a048fcb6dbec";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/es-AR/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/es-AR/thunderbird-102.2.2.tar.bz2";
locale = "es-AR"; locale = "es-AR";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "51730734c71b67ffc865646453fec802e92852fd9ab7eb371d31d9c3e843f810"; sha256 = "831b31ce85bb7668befc8eed476befad689805c1ca5b2393ff433a391e2069bb";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/es-ES/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/es-ES/thunderbird-102.2.2.tar.bz2";
locale = "es-ES"; locale = "es-ES";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "c61667e937b15fdb22e03b7875a474e422069800780df73529b6811cdb384824"; sha256 = "5e942c3308489d73f3c2f3a923d5fd4e8712e0b10f5a9d4e785b743afb92ffdf";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/es-MX/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/es-MX/thunderbird-102.2.2.tar.bz2";
locale = "es-MX"; locale = "es-MX";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "7c5a404101f20fd9624c5402e8ba2c0699986739302de5739ad3304e2ea234f6"; sha256 = "eb0ba009a05c402c215ca04bc32ca85e130fb26feb16d8f484dd5a6780f2d0ad";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/et/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/et/thunderbird-102.2.2.tar.bz2";
locale = "et"; locale = "et";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "5fb2498c2a7e1a76512ace5421bfff47a1ef336cf95f671e85188dce7c8fea78"; sha256 = "1020c72f7316ee97510b7f6d8cceea49753f3f00d33cf33f6246abb492eca0ca";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/eu/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/eu/thunderbird-102.2.2.tar.bz2";
locale = "eu"; locale = "eu";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "0eb3f3ca7e23e950ebafbdb6d4f4200279cc8e18a042a91ad163eb83c939c704"; sha256 = "2c95c74fdb3115d2ac41b5ddf5fba8da63fb0946b87d1bc77740298ca55c0b40";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/fi/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/fi/thunderbird-102.2.2.tar.bz2";
locale = "fi"; locale = "fi";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "ae76c531ac5b826593310b2b4b2e01d877dd246379a7ae8427f6039eb5dd581f"; sha256 = "0407e22920c7830d9f4214a6e42cd85fbbeff2c2422c3c9c10d5ec7330f4795f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/fr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/fr/thunderbird-102.2.2.tar.bz2";
locale = "fr"; locale = "fr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "3b344b3348487c393ea72012eb6fd82dd647e31cb1dd0c305dbe6aafa8438c53"; sha256 = "8a3da1833d1088d87ef9a73e1dcdd875b0db5aa57bba659c7423e6a9052beb9d";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/fy-NL/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/fy-NL/thunderbird-102.2.2.tar.bz2";
locale = "fy-NL"; locale = "fy-NL";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "3143c39b7e3aac2d90e6d68e2d1f782a306fdabd69641a4aa31afd02b6cd172f"; sha256 = "880e2585652b91265030345cb4bcf8aebbc5361a49d31edbe0a193b954df5214";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ga-IE/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ga-IE/thunderbird-102.2.2.tar.bz2";
locale = "ga-IE"; locale = "ga-IE";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "db877b69e105c8d14b6ff420448712eafbaf6580a13fd415eb5112930a8633b8"; sha256 = "e19acf7c7e3013cb39114615ad19dbc28d62b9b538d0cdffda44f50c4e105781";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/gd/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/gd/thunderbird-102.2.2.tar.bz2";
locale = "gd"; locale = "gd";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "3025fcddde35315267b3f0cc9d57696c5462bbe6705fb26b7a1be1eb670ca984"; sha256 = "c4ac7117cad296e84aece7868d8747f7d70b9a5a94f2a7b2c7eb4711790dc5c5";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/gl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/gl/thunderbird-102.2.2.tar.bz2";
locale = "gl"; locale = "gl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "39469544764d5607d73d3ffc0eafbcd2117072b2af6dba1a4a7ab43c3af2eb75"; sha256 = "b8a73f3349113154a2b330b44570138e0a715c0452058034ac33cdde1cd1d896";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/he/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/he/thunderbird-102.2.2.tar.bz2";
locale = "he"; locale = "he";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "52c67f10bda950e12822207d41c6b425079d29f0d1d5654bb10b6e1d88751828"; sha256 = "6a26ca35bec64b24d71d50e5c2bdf2139e442768a89153169d33ce8ba6b31d2c";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/hr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/hr/thunderbird-102.2.2.tar.bz2";
locale = "hr"; locale = "hr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e584a8f724d8e337743f9ad22e637089c5771c082091e221aad55b97541e0c16"; sha256 = "3c2010dd691155bd1f3184870905994a58f70e7911b5ab51496cfe6ae89597e6";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/hsb/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/hsb/thunderbird-102.2.2.tar.bz2";
locale = "hsb"; locale = "hsb";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "0304b06dd0f23ca59f85e34e3068cd9ac3275c815e2e2004358540b38cf058c9"; sha256 = "6adb0e04a8a3c9104f343ad6365acd2889499fbca192b80ff86652636d09a3b7";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/hu/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/hu/thunderbird-102.2.2.tar.bz2";
locale = "hu"; locale = "hu";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "ef155776003ddccfe863e920f31b45f673ef445c01556d69b6ed086561a74768"; sha256 = "a46951b9a21b804685024ada9f386b6d81393bc66516affe2abf996d88835f40";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/hy-AM/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/hy-AM/thunderbird-102.2.2.tar.bz2";
locale = "hy-AM"; locale = "hy-AM";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "c65a335777b3cd9ab95b14007a9b6f10304b17c267388889a7f299ea61c44fbf"; sha256 = "37f04ccbe1a0ab6a2e25118aaf50186e2555f186f0d8a1b3352caa9b6158ee18";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/id/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/id/thunderbird-102.2.2.tar.bz2";
locale = "id"; locale = "id";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a407cd50ed7b4fce63b2607632a82c4e9b853b76ba522a564aae219afd0034ed"; sha256 = "9e754ea12d18fb9257712a95a93883685bc0afc3be1ebaec03d3aee5c2960efc";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/is/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/is/thunderbird-102.2.2.tar.bz2";
locale = "is"; locale = "is";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "6035248bcfde9fea269fa10ff3a87f035e3552b8cf76c10dfc86dd889cc7e958"; sha256 = "c046d691e9a11b59ec8dcb325ed072a47e7e447e2abe06a8e52e280879d38386";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/it/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/it/thunderbird-102.2.2.tar.bz2";
locale = "it"; locale = "it";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "afeef80077a18120cff1854d54067ccbc92b30f9c0e75b41067ec1e398340eb9"; sha256 = "6d3e7bd4eaec2b8a88bebf883ade76be411a073f9c12ec0a9bb3c66cc9981e8b";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ja/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ja/thunderbird-102.2.2.tar.bz2";
locale = "ja"; locale = "ja";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "1d98a3c50d1aff70bec9ae9335708a85cf4458fbe0ff49db45a57f4d29614de4"; sha256 = "5400f7453a76a5c761b8c22b4f50d444bd8112c3afe3a43b0e6338cfda4fe56e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ka/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ka/thunderbird-102.2.2.tar.bz2";
locale = "ka"; locale = "ka";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "5c749efe25f328be5f17ba2b2eeda41af0ce69f0f3e9cbc8bb55d58a3990d99a"; sha256 = "840cc16f368ebc3e6aa357ce3b41bacbafdccb510729fae8f1b76fc1c5bfb621";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/kab/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/kab/thunderbird-102.2.2.tar.bz2";
locale = "kab"; locale = "kab";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "93b93383e4bad3b4f930bcbc35d178639a50fd7a30eaac573bc74b895955ec5a"; sha256 = "c67e24314357d8f2d1e857339c234dbb1813e1ba4df0e107d25f3aefefebcac2";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/kk/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/kk/thunderbird-102.2.2.tar.bz2";
locale = "kk"; locale = "kk";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "298e2c42888f29b90fdc6589b6336c5c2261a5331f5d52db89ee5b6618ec120f"; sha256 = "5b23cacf902762ec8f90536e3f1cb951077d674495fbfa3764707197dc413d89";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ko/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ko/thunderbird-102.2.2.tar.bz2";
locale = "ko"; locale = "ko";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "75625d041a0193cfd8015174a1eaddd7315f3030258e58828df4b3521863bba8"; sha256 = "1c236ec1fe62e2e7969a4821aaad80a143347a5b775ea8ebb75b51c08c2acc80";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/lt/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/lt/thunderbird-102.2.2.tar.bz2";
locale = "lt"; locale = "lt";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "c5705caf0c71efb566a0d1828ec36e940940eeee23d37b9d66246abbb28114bc"; sha256 = "ec59fae4f57313a4bb4ea9009369af1f12ad82e24f9013c8b34a73fc41762713";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/lv/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/lv/thunderbird-102.2.2.tar.bz2";
locale = "lv"; locale = "lv";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "d26ea9198e8d5e9ae5f51fa2456181bd979694d7bc9bcab8f3a82c01233760d6"; sha256 = "99828bf55cf13781efbaac4e0e99d42b669bd9be0f78302fd69efb6270dd225f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ms/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ms/thunderbird-102.2.2.tar.bz2";
locale = "ms"; locale = "ms";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "6dca09cd5f9306d102bca42d01607b63e1219324d1107447a728bab8693aeb8b"; sha256 = "f8f6c88e562650d9c19988ad9bb878fec1c79af5a163beff1693a203f79341c9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/nb-NO/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/nb-NO/thunderbird-102.2.2.tar.bz2";
locale = "nb-NO"; locale = "nb-NO";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "8d2a62dd4ccade7544ecfc6a4f88bd354f70089cf161f2fe92aeb9886e6f6411"; sha256 = "cbdab2fcf1bfd0dcac3c1e0e988bce513d789f6bba8e1b7cc65db1cf997b36d2";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/nl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/nl/thunderbird-102.2.2.tar.bz2";
locale = "nl"; locale = "nl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "b82895cfc2058be4b7818ea17521deb014a17659ddb57c093cbdc26ab3e7f7cb"; sha256 = "d8b3e422b7aa8baf63f4f8b057c57aa824e5e0b9cf9588f0076567cc2ef70559";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/nn-NO/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/nn-NO/thunderbird-102.2.2.tar.bz2";
locale = "nn-NO"; locale = "nn-NO";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "aea319db70387a2f075776fcf07b29e433ca16f898af70689d9cd4ed9d98d52f"; sha256 = "7b5eff29d874d33f07ea5e38b51fe1d0c2451b9d07ee9eea164ace136e6c86c3";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/pa-IN/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/pa-IN/thunderbird-102.2.2.tar.bz2";
locale = "pa-IN"; locale = "pa-IN";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "02c366563dd39f64ae11f9377c62434291aaedd951cea43e867a236dcd99dc2d"; sha256 = "ddee5093d6caccfe6f8666efc4978194302beea23396c7884c18144b077934c5";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/pl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/pl/thunderbird-102.2.2.tar.bz2";
locale = "pl"; locale = "pl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "5e2b8d486eacda9a8913e0ab60e2c4079d3fb89e827ca1fba871f2b6295c6cbc"; sha256 = "ca14c3d7061aa0c0cc65651b21d10a83f375b730ca9d372095408e729d8e31dd";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/pt-BR/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/pt-BR/thunderbird-102.2.2.tar.bz2";
locale = "pt-BR"; locale = "pt-BR";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "83339737a6ff360f1036a5b11b56f6d6648011f0c206a13da2b557aa85f4e2a0"; sha256 = "0d4801320dd611ef12a858e0f1da9ba1077634d73c510c7660aebcfbec423ce7";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/pt-PT/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/pt-PT/thunderbird-102.2.2.tar.bz2";
locale = "pt-PT"; locale = "pt-PT";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "4950899b2da0a706f39767199ec412e9da2b670bf15c29153244c5eb3a317731"; sha256 = "a54938d91562d0fcab6875395b58f18dcc51f22727a289ecdf402f1cdc48639e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/rm/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/rm/thunderbird-102.2.2.tar.bz2";
locale = "rm"; locale = "rm";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "d9030e30196b03c341b1fd9078447d9baf7542a119617494ea73d11192f194e0"; sha256 = "b9df55f6fb6268bc534e0a82636af2fbbb7e046b46c6134bd50abf37254671f5";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ro/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ro/thunderbird-102.2.2.tar.bz2";
locale = "ro"; locale = "ro";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "d3be25f071698102abc71b50d71253326a9201ff9db3e7935afdd27d728985e1"; sha256 = "6c2ce54a34d5a1a6e3e29431998955793dd49157db74679951f537f61fcbac74";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/ru/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/ru/thunderbird-102.2.2.tar.bz2";
locale = "ru"; locale = "ru";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "f9a520adaca32180b01f18fb9b8280145075248378a4a1fd273c9687733cbf42"; sha256 = "fac401762dd4cd9ca5870064212fbf928d63751827446a6e5ea870fdbdde4aae";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/sk/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/sk/thunderbird-102.2.2.tar.bz2";
locale = "sk"; locale = "sk";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "4045843feb9303bc65612d1060f874d21fdf39c0abadc84c84af0017b1fcee32"; sha256 = "928958768474f0fe3d081be979891ca54a162fc24d7e8e27930d9035d330ffaa";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/sl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/sl/thunderbird-102.2.2.tar.bz2";
locale = "sl"; locale = "sl";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "d914ee5a953b4ec651e634d7c2b971987ccb2ebdd130dd3ee4ab3d0cae274f59"; sha256 = "a34dddb780a858e61a665661d1e2384cf853b431229689d860fef3622c9d0e0f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/sq/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/sq/thunderbird-102.2.2.tar.bz2";
locale = "sq"; locale = "sq";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "2fd3128af2a55cae9a8adc248afcc9497d602f0d36cb2cd7ff51aaca1b064487"; sha256 = "fcae87e539cfa1b73ee78de3ca3d23a81d6b6cdaa81e22e819b07355b7112a2b";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/sr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/sr/thunderbird-102.2.2.tar.bz2";
locale = "sr"; locale = "sr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "2c5ffe0a8f4d431c37cb7f39fbd145937839425232aa72e173b88fa49628ded6"; sha256 = "524da643994d056e0ecc1eb5d241eb4cc906e71fe0c821cec5eef78cadf695c3";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/sv-SE/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/sv-SE/thunderbird-102.2.2.tar.bz2";
locale = "sv-SE"; locale = "sv-SE";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e98429f73e6379ebfb2bf98f9396f86025e158543e664b2b219875964dae6e1c"; sha256 = "40ad15ecddd5d936da810f470faba93157c0b453503a48a83f7e69d2f6f742c9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/th/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/th/thunderbird-102.2.2.tar.bz2";
locale = "th"; locale = "th";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "605a86e6be2eabd0ade653f93fe62e6ae47eb80951fa9c7ab9035d13bc22e52f"; sha256 = "b08db7a7a5f15aa7d0257858942f861457941b27e2ae2d73f0c65876c8fa2b11";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/tr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/tr/thunderbird-102.2.2.tar.bz2";
locale = "tr"; locale = "tr";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "51dfa4db80dd7596c24e6a0b67e1196d59b9083de63550862fccb6672535825a"; sha256 = "126defec4dbab1cb25f23899542166628201ecc1d80ed566b99e427f1ce6e6cb";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/uk/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/uk/thunderbird-102.2.2.tar.bz2";
locale = "uk"; locale = "uk";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "a6fcd5719501d801ed0e9f39ac100309945e567d535e6972791ca97c509131fd"; sha256 = "5b9af3defc3547caba361e3ebd460a3682a09a1207bac5abee08b67cb530d710";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/uz/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/uz/thunderbird-102.2.2.tar.bz2";
locale = "uz"; locale = "uz";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e4666827e963fd2180babba2a117425cadff2bf47674e30225ec4f046cde1adf"; sha256 = "af88cbbd45ae2c168c52d0d2f19d4940a4d448e4c3b68125eb359a2c6dbffb36";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/vi/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/vi/thunderbird-102.2.2.tar.bz2";
locale = "vi"; locale = "vi";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "67cfdc9bb1753852250aeb523f2f91ec2fdfcab910ca1e38ac61e3922f281ee9"; sha256 = "dd6071e000258aae9406e7750238c96101a5280989a68b955b4ad3129a62768a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/zh-CN/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/zh-CN/thunderbird-102.2.2.tar.bz2";
locale = "zh-CN"; locale = "zh-CN";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "f2bcca607b71c567f0ba3414e668e033633f05fff7404a1cd321d165172a36b6"; sha256 = "da9f27ff43aa88c9e394b75b246a27639ef51f95203e955d16d3075872b43c0e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-x86_64/zh-TW/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-x86_64/zh-TW/thunderbird-102.2.2.tar.bz2";
locale = "zh-TW"; locale = "zh-TW";
arch = "linux-x86_64"; arch = "linux-x86_64";
sha256 = "e827be51e3af98fd484bb82d387754e5375cb7a5749bd1b8d0401632172165ed"; sha256 = "57006f7eb829e7a2e8f6323bd01276e065b98da51a5b40e9d52c5fe057afe224";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/af/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/af/thunderbird-102.2.2.tar.bz2";
locale = "af"; locale = "af";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "42e10d674f9bc1220a1ae08f5c20551ceb9030700991681b32df137fb1fbbda6"; sha256 = "45b8a62bfa3a1c4c0d33a9c6332c3db769d6262740fdf63523cdac6a73c877f1";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ar/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ar/thunderbird-102.2.2.tar.bz2";
locale = "ar"; locale = "ar";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "d5a6370d2e20fea976165cc0d84c13832b8ded075fefdc98f21e1ab530dc8624"; sha256 = "aa0c2fa1e459e3c7089fc0ca35c0abd259deca9f1a2dbea9a788f41e9bb9d927";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ast/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ast/thunderbird-102.2.2.tar.bz2";
locale = "ast"; locale = "ast";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "19f2ac39f04b47fb2789b0c0df8b9e0634062bcd3f117cf2cf776a39d701ec7e"; sha256 = "7c6d00d2d4bc270159fe383001070192612c360b19307d3f30564b251740e8e8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/be/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/be/thunderbird-102.2.2.tar.bz2";
locale = "be"; locale = "be";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4e007951f445b5c9daf36523535db459e869b50b732a8e82f64b3c0d898c512f"; sha256 = "1834f3bff9a9e59a350c4da3fc9accc06e7948db4be13a888b5ffbf41bd3665f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/bg/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/bg/thunderbird-102.2.2.tar.bz2";
locale = "bg"; locale = "bg";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6430c82f5ebc4daa2fc099d54f0aacc1d680a4c603fe69fe117490d58d9c7af3"; sha256 = "77e09e97aa320c88c952a99ccf1f81b64374ed96dc124268baf138e0c41b9f1a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/br/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/br/thunderbird-102.2.2.tar.bz2";
locale = "br"; locale = "br";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "84568e1ec4284d1f81cf5f5627de0e19db7a32f57cb621210df27f61178961ea"; sha256 = "256d12149eae5a9cd171f45b8fca86c69ab2161058921019d1decbb1c4931e60";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ca/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ca/thunderbird-102.2.2.tar.bz2";
locale = "ca"; locale = "ca";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "496bd038e349d2480c7ca8c05f8ec9ccd93d0e17210cf1ffe8f65c470a2db5ad"; sha256 = "e1311c92360ed218361341f61529b2c4abd6c90a8458fd95c9401db9d4103011";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/cak/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/cak/thunderbird-102.2.2.tar.bz2";
locale = "cak"; locale = "cak";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "f1e811a5f1e821ecffb6d4d110f19fe55ef153992cbcf53980fd56c16552f663"; sha256 = "34e6a9743bfbb88d6ddb00fc8343c4da5a7849dcc913ac1e9a17e44b35666da4";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/cs/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/cs/thunderbird-102.2.2.tar.bz2";
locale = "cs"; locale = "cs";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6ff1add590d03bb49fab16ead5b549eb32c5767998ecc955c394163ef36d8554"; sha256 = "c650dd57f13520963f59eb67931c6fa12c862515c31a505d026df0d5aef78342";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/cy/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/cy/thunderbird-102.2.2.tar.bz2";
locale = "cy"; locale = "cy";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6605ab434753eda8d9f67eb57d470616e9c3b202978d655738bdd4f478cbfd42"; sha256 = "56511f4b9dfe2c4525c960a2031031881049adc8b4ef3daed9f8d12cf8dd81bf";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/da/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/da/thunderbird-102.2.2.tar.bz2";
locale = "da"; locale = "da";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "7f60ac0c21c4894dbaacc43e74753e5dd29a768a31167eb3b0ad86c0333c247e"; sha256 = "fde094d4ea03acafc9804964d14c4ffe091467f4bbc0871552344aadde758345";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/de/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/de/thunderbird-102.2.2.tar.bz2";
locale = "de"; locale = "de";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "9d9ee8d7d92cbfa94732d915cfd4fd86278ff08225c4099d421f48527c5b279a"; sha256 = "3ab1e257a58e01a107989a62854a407f9faf5ee4d1f6223221ad6fc9bd8a08ca";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/dsb/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/dsb/thunderbird-102.2.2.tar.bz2";
locale = "dsb"; locale = "dsb";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "37c2ea9d16be51d4cbd9eff62d0a146681d52caa63e2407e1f0d8d422b7c62de"; sha256 = "28fe086cad5e27a9baa68b28d9556914a385796d2420c2238f83f08c61efc982";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/el/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/el/thunderbird-102.2.2.tar.bz2";
locale = "el"; locale = "el";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "e3804af2c4a34c8ec6679e7a06449d00416641d17f2d58d15e745b25cac4fb82"; sha256 = "94eaf766fae60a5204a8fef9306db32a32ccd670bc77fecf8f062b6f6c12096a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/en-CA/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/en-CA/thunderbird-102.2.2.tar.bz2";
locale = "en-CA"; locale = "en-CA";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6d2dc53467776fc068935a1181c3ec7f6c2ab9c6387ff8c12b4f689b904e9430"; sha256 = "01652e32486efe2a610a3649d93128ecbb4d83c2b88a9f635775e95600255d56";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/en-GB/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/en-GB/thunderbird-102.2.2.tar.bz2";
locale = "en-GB"; locale = "en-GB";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "f0a2db3262832de3cf5edf4721327538af261a8eaae831337a1f1f732045f1a2"; sha256 = "444a6814a90f982a9b515ae34831b0a421dc3543f50492219553d3c918f03913";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/en-US/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/en-US/thunderbird-102.2.2.tar.bz2";
locale = "en-US"; locale = "en-US";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "04754457bbcd3b037c27cf5c1186ab1224fc01d3b1106c76ca21d26770ff28a1"; sha256 = "66c7f533483337423fec636873278dc9d7af72acbee25cd4696b055006faae34";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/es-AR/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/es-AR/thunderbird-102.2.2.tar.bz2";
locale = "es-AR"; locale = "es-AR";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "9fd407ef93b7c613709312350b5ba520f06c5b0d664e315ef671f85e5af50ac0"; sha256 = "74b59f5777a884b281f64872ce268f5a096a571e5b37158f26757725f569f4e9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/es-ES/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/es-ES/thunderbird-102.2.2.tar.bz2";
locale = "es-ES"; locale = "es-ES";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "a3975e3489c8c67374a7ade117a45c85aa42c5379670204571dce0118f7aaf8f"; sha256 = "feea88b74e5b3576a333b4a9b867afaf4412540ba45103ade194af28013a1259";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/es-MX/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/es-MX/thunderbird-102.2.2.tar.bz2";
locale = "es-MX"; locale = "es-MX";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "857d1f4073ffbfa81a1ad17d219ccde4f8a8b18adc6e3e2f844020be32e1c5a8"; sha256 = "fbf4a44defa20ee88152ad45ed2368bbf97f4d1979e7ac731ba08e7d0caf1be9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/et/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/et/thunderbird-102.2.2.tar.bz2";
locale = "et"; locale = "et";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "37b5f428f5f16dc80736de0c2f23ca24003de5d4639e1500f303b1f4aa664460"; sha256 = "abd03a775f1295e16dbbb2c4116f5193fc73b99e39b3a0f9e7a5de9eced240c9";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/eu/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/eu/thunderbird-102.2.2.tar.bz2";
locale = "eu"; locale = "eu";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "0e4a8abe3b956d304d79218d63f64b01ef566122d00d025ef69c07f73aa87fec"; sha256 = "90f90a640af343f87279af424da423d927dfaf3a08d9155a9469d42a734e7bfa";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/fi/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/fi/thunderbird-102.2.2.tar.bz2";
locale = "fi"; locale = "fi";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "0a3242f6d791ab5f1be52b67d8f95ac8245bc7cf556f9dda814c2827d8f60e40"; sha256 = "d8fbcad40e09ad5d193d3a520ee9fec023df89e545e9aae75bface677d2b2c8a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/fr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/fr/thunderbird-102.2.2.tar.bz2";
locale = "fr"; locale = "fr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "32c67c444bbe3d920aa4c30226fdbf469d5caba7a066b3d84270d0f9e0daabe5"; sha256 = "a78e8962cd4121e5a4a2ceb573d7b69a61ed3706163ff47c6d1c960847cb7ded";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/fy-NL/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/fy-NL/thunderbird-102.2.2.tar.bz2";
locale = "fy-NL"; locale = "fy-NL";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "0405585c63321c44f3f459356db4bbd0cf73cccf7ae6c8684b13152e3aa3b7f3"; sha256 = "39f416be5d19d31c84fd8c02805a1d5fdadb665aabccaeee78ab1e53fffaa9ad";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ga-IE/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ga-IE/thunderbird-102.2.2.tar.bz2";
locale = "ga-IE"; locale = "ga-IE";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "54e4e55b3339d6436591d8967de6c1cffab94da38d064df6fc0d8b85c4475d84"; sha256 = "d270e50e6c79f37401c080567caec4e852a3138a3f3fe095a759d1d6e118b691";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/gd/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/gd/thunderbird-102.2.2.tar.bz2";
locale = "gd"; locale = "gd";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "46130971e0b49bb45c6895d7cf9ec890d7f95fda6479bba38cf180d36e4c4eb7"; sha256 = "62723dd4145b2aab4d91e3d7be6763474c23eb969407b532eb21e8e95d00c497";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/gl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/gl/thunderbird-102.2.2.tar.bz2";
locale = "gl"; locale = "gl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6e0ae14bb163b5a10c58cbdd49793e69d9d5042b0045f40be4c595781ad84c92"; sha256 = "933795b2c0d3ab6b56d943470f3c0b5df3b4907acbdccb9f7f70ea300e094a50";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/he/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/he/thunderbird-102.2.2.tar.bz2";
locale = "he"; locale = "he";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6d353e9ec5a72366b991854aea9163385ab902c812690c0161790c882343e5a4"; sha256 = "265d98ccba83b5eff448318d2208e11cbac484d0eec01f796bfee590d4473657";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/hr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/hr/thunderbird-102.2.2.tar.bz2";
locale = "hr"; locale = "hr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "a05a828b434cb2677b1d3c9f317d5448db003c1373edbb84d1822182a93d3e7c"; sha256 = "bc120009485b1d3b91cbd87018b6e4af229d1beabb2f6aed18d498ec58cb6fdb";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/hsb/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/hsb/thunderbird-102.2.2.tar.bz2";
locale = "hsb"; locale = "hsb";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4573f6938c41160f1d4c79be035f24426bc83d9440b36ca269004b729a5564e2"; sha256 = "8d1cf043172256f022d6ead46545b36cc366570838d6d45814b78b8484d504e7";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/hu/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/hu/thunderbird-102.2.2.tar.bz2";
locale = "hu"; locale = "hu";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "727246ee523554d64ff72611d353aead8c8b79e8f55cf187b3fb3d9f442a947e"; sha256 = "93c1ab56e082c2e9d579031570e496175f7fa701840a5a8c25604ecb0b333c78";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/hy-AM/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/hy-AM/thunderbird-102.2.2.tar.bz2";
locale = "hy-AM"; locale = "hy-AM";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "467c8af9d3cfdbd18ea04214369b9d262c9d925a171a2f56548af00ec85a3611"; sha256 = "f141fdd4521ad0bd2c7133f8a7b87bfea09f2c82be7c72271370555f80426c8a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/id/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/id/thunderbird-102.2.2.tar.bz2";
locale = "id"; locale = "id";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "4177b047863412c9ef91d8552440b7fa1f848b8675cc55b881a4cc5fdb157303"; sha256 = "708aa8829a18291d7e2cced2be4f161cdd2752cf6b642200159d7e4f20b496ff";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/is/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/is/thunderbird-102.2.2.tar.bz2";
locale = "is"; locale = "is";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "cb8cc7838fe3c4182d887c711c636b66d017b1854a2fadbb0f6e862a54a66d40"; sha256 = "de55318223875e4a43a35159a1c9ee795367d8ad447f29e4bb285fcb450f3e05";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/it/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/it/thunderbird-102.2.2.tar.bz2";
locale = "it"; locale = "it";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "9e9214820e407c0067cf60a3b360e8f5a608225a41708a0fd25d00fb91e46d00"; sha256 = "722b270098611484878e2a6cb912aababe665e781a469bbdb46818ff18e077e0";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ja/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ja/thunderbird-102.2.2.tar.bz2";
locale = "ja"; locale = "ja";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "ffa126f9b4a25165163df6eca65299c553b087fc2313f6dd1c7b266d41a1769f"; sha256 = "96f27b3877f0b23d8fd09efc5ceb6a5162d0c704abcc84ae34493e120da69cea";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ka/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ka/thunderbird-102.2.2.tar.bz2";
locale = "ka"; locale = "ka";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "563eb58790172bf3a037f5828786dfb7624e3f03b81c1a57a4126f102e9572f8"; sha256 = "75e43501045da981ce21f3b52391379f03de3f4df731ff85bd83e2881b2adc71";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/kab/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/kab/thunderbird-102.2.2.tar.bz2";
locale = "kab"; locale = "kab";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "c79ff5505434a23ef88c2b1aadd9e70562ad9ea77fdb379169e3495725cad1a3"; sha256 = "5a2861bc768fededbcf7d3fd0e9bc565be2fd5badfb18524edf762425e8da933";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/kk/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/kk/thunderbird-102.2.2.tar.bz2";
locale = "kk"; locale = "kk";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "bfc4037fa631727d454c5b22af1e8861b436c40aa2bafda007221e5d5a813dd7"; sha256 = "1014bcbb12c623164871e3416bde2218326d887d527c1f76d8579b451a673d81";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ko/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ko/thunderbird-102.2.2.tar.bz2";
locale = "ko"; locale = "ko";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "386921200c4b6544407994c5d1d73a3671a383f1e5b69d5f34b7a8ec727bc646"; sha256 = "03ed9709c1bfa2066f8ab596faf5f4b9a37174bde7da3d32448770021d1bf48f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/lt/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/lt/thunderbird-102.2.2.tar.bz2";
locale = "lt"; locale = "lt";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "2027b59fc1a8f11dbc8ce693296a26604e9ba579e34df02e9f0c8243eda38e94"; sha256 = "cc06df43b59a768415d6d07051eb67892e8e849ef0ff1799ad094dbe1671a954";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/lv/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/lv/thunderbird-102.2.2.tar.bz2";
locale = "lv"; locale = "lv";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "a5179ee6caa6847b36e9494e09d3c233beb9bb8651c586b11ce160b054e12d73"; sha256 = "362877abf9d52b936fdde5913655ad3e88097503415cdd38bffc35032094bd92";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ms/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ms/thunderbird-102.2.2.tar.bz2";
locale = "ms"; locale = "ms";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6d1f11d137da476fe7dbe04e7d5692c5dc81931d30e116217083ad187fdc37cc"; sha256 = "64224aa3c1032528e9a233e992c95be4f8fa72c27a95e8ca38803265c2dd9c41";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/nb-NO/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/nb-NO/thunderbird-102.2.2.tar.bz2";
locale = "nb-NO"; locale = "nb-NO";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "d7a50f3f8734d249e565cbf1078627fb0e3cfa42f293574127bd2fa549652be9"; sha256 = "389f8bdfdbe6b6f05a6bc4154b2381aa4810787d18bb22a4f4dafd3f2f7f4e17";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/nl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/nl/thunderbird-102.2.2.tar.bz2";
locale = "nl"; locale = "nl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "8962f690d105d4589df0279770b63f0b90485cb499f86e953393dd4116a87b2c"; sha256 = "409729a161f278ff03c5505aca4ea4894c4fb973a3ab34bad9375a8aeea898c6";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/nn-NO/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/nn-NO/thunderbird-102.2.2.tar.bz2";
locale = "nn-NO"; locale = "nn-NO";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "d0b940decdc8d77a0a6371ded16c551d8ce081134c4bb7d795adde39c5844254"; sha256 = "bd3712769496d416f4c3a5df2ccca46cfdfbd1ffd55346af5abb9fa7c50410ea";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/pa-IN/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/pa-IN/thunderbird-102.2.2.tar.bz2";
locale = "pa-IN"; locale = "pa-IN";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "dd5a2d9b78085786039ca20ef88f991285ff7b59ce47857b7d81bc74faa6ec54"; sha256 = "47ffb31c017241cfb6cfbd9a205b159adfd21be9b079f996a5d4ba05b0cc20d2";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/pl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/pl/thunderbird-102.2.2.tar.bz2";
locale = "pl"; locale = "pl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "9da17d31bbacc006c2a9530d42d864ea56c9cf5b84a73d03add270bc275543b0"; sha256 = "ca50e4489e3a949f37b2310e7fb1d24bf24c26e7000bacd051ab77968397a882";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/pt-BR/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/pt-BR/thunderbird-102.2.2.tar.bz2";
locale = "pt-BR"; locale = "pt-BR";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "81fee2a7ba6a2b0b8607e412324b2eebd1dc3f28194dc7de1efa5af9f1fa23a6"; sha256 = "3a411aa23669d0c2b9146cd64986d7e9bfda6832e3b86a8f17f08a4fcbc05ab4";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/pt-PT/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/pt-PT/thunderbird-102.2.2.tar.bz2";
locale = "pt-PT"; locale = "pt-PT";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "82e354e1642b8018c0a6f2ccc3d3d38f3a7aa39333a30d9a6ea7c6c52df6d6f5"; sha256 = "10613a544aff584af3da980ecf511f180b1d3cf7fe01828e2a37f593487bca6f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/rm/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/rm/thunderbird-102.2.2.tar.bz2";
locale = "rm"; locale = "rm";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "d7fa26de70531e74931892a78a5148f95df92d29a94e7ce5aeef11168c1069ce"; sha256 = "60797ab2c9393806bd5ab3b4b9fb9048775fb30c58ccc436f4b21a0a39ceaf97";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ro/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ro/thunderbird-102.2.2.tar.bz2";
locale = "ro"; locale = "ro";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "c4392159cabd3cf19b575d8a0598b0d52a1f9fb993234d1170240c6c6a5e4fa6"; sha256 = "40f11c3afad15a07f506b5b8d7dd74317b37720a398e890dd73911882ab9354e";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/ru/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/ru/thunderbird-102.2.2.tar.bz2";
locale = "ru"; locale = "ru";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "ac3d6fc7b555298ae05cb3b0fef2b6264ff11a5961f5e044664022e80bb9ae34"; sha256 = "10935eb98bc6d83fe9b8e5e567a9f30a00abff8b5b3e4c527ecebd7ee56ec122";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/sk/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/sk/thunderbird-102.2.2.tar.bz2";
locale = "sk"; locale = "sk";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "41cc5938d5b64508bcc095ddfbe3eef3cde3dd88a8f145ed279bf825785fde50"; sha256 = "07e6c734108896e827e97671afe30aa709e701b2e64f1d1b692aee7155479cb4";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/sl/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/sl/thunderbird-102.2.2.tar.bz2";
locale = "sl"; locale = "sl";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "f8fb013b2705ce34749d1470e799d47c09b5ba94a9580a5e2d12be8b660c58c7"; sha256 = "b862cd06ba4a1c8a16269d2c7fda76c7b97aebf0d60ac6828cc7b3dbb51b6468";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/sq/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/sq/thunderbird-102.2.2.tar.bz2";
locale = "sq"; locale = "sq";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "dc7407c4cb28070693b7862bc29b465a4d96c473b5b4f553d238390c694804a1"; sha256 = "28792eca6aa976a712c4f2c619e22c70263f7941c2c99a3aa9d83e5eb6cf00b8";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/sr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/sr/thunderbird-102.2.2.tar.bz2";
locale = "sr"; locale = "sr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "640731bbc689acb4874bc0f439f34213e30812bafae3ef94471945b13ae27243"; sha256 = "69460ea89828e4db9a93f2a005a146a503f5fd5c022665cedfbf9ee62bd826e6";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/sv-SE/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/sv-SE/thunderbird-102.2.2.tar.bz2";
locale = "sv-SE"; locale = "sv-SE";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "6d71d4ffa6393bc997566dc604992c093c24bd3a978b947704f82f03893fccfd"; sha256 = "08cf31fe3ad5d214278c9c79ad84defa2166d2b84917a6e7b11b7abfe113df09";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/th/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/th/thunderbird-102.2.2.tar.bz2";
locale = "th"; locale = "th";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "faecaf65b8737dc63d2ea469ba1181c1e0a71c334baf29c8677730faecffb57c"; sha256 = "ef0c353c78ead98ffdf929912631dc3bee4087acd070dec878ce3bf9709a8f23";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/tr/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/tr/thunderbird-102.2.2.tar.bz2";
locale = "tr"; locale = "tr";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "c6401dfca452996547b3f33dead4690f9e376313920ef7880774c8a3e556b213"; sha256 = "fe9e77c1739e33c5e226253a79070dd6e15d813d81cfbadca187cbeaa6fada9a";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/uk/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/uk/thunderbird-102.2.2.tar.bz2";
locale = "uk"; locale = "uk";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "05fc335e16ad0c28a59a6ba51566161f92c0053b12b0ec56409e62eaf77fa2b2"; sha256 = "3e12f9228479fb2361186eeee6174f4256990c829b369b4f762e75e89a7cfd12";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/uz/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/uz/thunderbird-102.2.2.tar.bz2";
locale = "uz"; locale = "uz";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "5690ad8156e70dba56ed7664f99ac335409e88f5fc0d05be530774fdeedd20ee"; sha256 = "ad59e3da2b1b3f20f910e979d85e60253b07f11410dca635399681cb50d372ad";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/vi/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/vi/thunderbird-102.2.2.tar.bz2";
locale = "vi"; locale = "vi";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "41cb6da3b59cfa31ebf28e67f93349977dcd640df5491fa451f19bc0670aa2d9"; sha256 = "a0342a62cd34cb6879e38717c05e272d2f45990078d0b920906ce400db3cc206";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/zh-CN/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/zh-CN/thunderbird-102.2.2.tar.bz2";
locale = "zh-CN"; locale = "zh-CN";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "79f9f7e1620efa56ab2a8f3a1d1aea91cf82a0c12b6f0bbac01bbd5fdc6b3c63"; sha256 = "6506ef24bcf862da6860a166a1a14c95187518e72bbb560b114eceb9d77a7c8f";
} }
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.1/linux-i686/zh-TW/thunderbird-102.2.1.tar.bz2"; { url = "http://archive.mozilla.org/pub/thunderbird/releases/102.2.2/linux-i686/zh-TW/thunderbird-102.2.2.tar.bz2";
locale = "zh-TW"; locale = "zh-TW";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "763790430eff0c8689cb045e30920b1c0fe239a324ce739b153f8a16ccb07b25"; sha256 = "479d149ec221ddead41c6e6b8f3f854487ea833ff80fe6efa31061600938299e";
} }
]; ];
} }

View file

@ -39,13 +39,13 @@ rec {
}; };
thunderbird-102 = (buildMozillaMach rec { thunderbird-102 = (buildMozillaMach rec {
pname = "thunderbird"; pname = "thunderbird";
version = "102.2.1"; version = "102.2.2";
application = "comm/mail"; application = "comm/mail";
applicationName = "Mozilla Thunderbird"; applicationName = "Mozilla Thunderbird";
binaryName = pname; binaryName = pname;
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "7b69cfffb5de56690cbbd97f6b627733072dee498a15adfece990f9019df8df948762ce8eb2ca2d91ef12ff56262fb1905476d8a477aed70bc71cd2f9f986ea4"; sha512 = "fe72ddb81d35d4a85b25a6d955a0b0f705aeda2dca0f572efca7ce94041c4ddcead6c690bda8d4bded4c43e12a15669f9608db6debec38d8b5157a914e280db5";
}; };
extraPatches = [ extraPatches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`. # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.

View file

@ -26,7 +26,7 @@
mkDerivation rec { mkDerivation rec {
pname = "nextcloud-client"; pname = "nextcloud-client";
version = "3.5.4"; version = "3.6.0";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -34,7 +34,7 @@ mkDerivation rec {
owner = "nextcloud"; owner = "nextcloud";
repo = "desktop"; repo = "desktop";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-ennKNUuoyhpVfG1XPzJKrop0i77BAB3C2MNqZPOXNkc="; sha256 = "sha256-wAxq5xFlofn2xEguvewMvGcel9O+CN/1AycR3tv/xMA=";
}; };
patches = [ patches = [
@ -77,8 +77,6 @@ mkDerivation rec {
qtWrapperArgs = [ qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}" "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
# See also: https://bugreports.qt.io/browse/QTBUG-85967
"--set QML_DISABLE_DISK_CACHE 1"
# make xdg-open overrideable at runtime # make xdg-open overrideable at runtime
"--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}" "--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}"
]; ];

View file

@ -2,12 +2,12 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "fava"; pname = "fava";
version = "1.22.2"; version = "1.22.3";
format = "pyproject"; format = "pyproject";
src = python3.pkgs.fetchPypi { src = python3.pkgs.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-Oarh0a0q+PYFojsYmdX763vFRSQhtm09z4ruSxXDpSA="; sha256 = "sha256-e8/VOn0WmrUO69x/4hKGtgKuj11U1Qv7OUhfOL/p5Ds=";
}; };
nativeBuildInputs = with python3.pkgs; [ setuptools-scm ]; nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];

Some files were not shown because too many files have changed in this diff Show more