Project import generated by Copybara.
GitOrigin-RevId: c07b471b52be8fbc49a7dc194e9b37a6e19ee04d
This commit is contained in:
parent
e6b3dab777
commit
0eeabdeb66
503 changed files with 11411 additions and 7107 deletions
6
third_party/nixpkgs/.github/CODEOWNERS
vendored
6
third_party/nixpkgs/.github/CODEOWNERS
vendored
|
@ -280,6 +280,12 @@
|
|||
# terraform providers
|
||||
/pkgs/applications/networking/cluster/terraform-providers @zowoq
|
||||
|
||||
# kubernetes
|
||||
/nixos/doc/manual/configuration/kubernetes.chapter.md @zowoq
|
||||
/nixos/modules/services/cluster/kubernetes @zowoq
|
||||
/nixos/tests/kubernetes @zowoq
|
||||
/pkgs/applications/networking/cluster/kubernetes @zowoq
|
||||
|
||||
# Matrix
|
||||
/pkgs/servers/heisenbridge @piegamesde
|
||||
/pkgs/servers/matrix-conduit @piegamesde @pstn
|
||||
|
|
5
third_party/nixpkgs/lib/licenses.nix
vendored
5
third_party/nixpkgs/lib/licenses.nix
vendored
|
@ -67,6 +67,11 @@ in mkLicense lset) ({
|
|||
free = false;
|
||||
};
|
||||
|
||||
aom = {
|
||||
fullName = "Alliance for Open Media Patent License 1.0";
|
||||
url = "https://aomedia.org/license/patent-license/";
|
||||
};
|
||||
|
||||
apsl20 = {
|
||||
spdxId = "APSL-2.0";
|
||||
fullName = "Apple Public Source License 2.0";
|
||||
|
|
2
third_party/nixpkgs/lib/meta.nix
vendored
2
third_party/nixpkgs/lib/meta.nix
vendored
|
@ -78,7 +78,7 @@ rec {
|
|||
|
||||
2. (modern) a pattern for the platform `parsed` field.
|
||||
|
||||
We can inject these into a patten for the whole of a structured platform,
|
||||
We can inject these into a pattern for the whole of a structured platform,
|
||||
and then match that.
|
||||
*/
|
||||
platformMatch = platform: elem: let
|
||||
|
|
44
third_party/nixpkgs/lib/options.nix
vendored
44
third_party/nixpkgs/lib/options.nix
vendored
|
@ -26,6 +26,7 @@ let
|
|||
take
|
||||
;
|
||||
inherit (lib.attrsets)
|
||||
attrByPath
|
||||
optionalAttrs
|
||||
;
|
||||
inherit (lib.strings)
|
||||
|
@ -99,6 +100,49 @@ rec {
|
|||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
/* Creates an Option attribute set for an option that specifies the
|
||||
package a module should use for some purpose.
|
||||
|
||||
Type: mkPackageOption :: pkgs -> string -> { default :: [string], example :: null | string | [string] } -> option
|
||||
|
||||
The package is specified as a list of strings representing its attribute path in nixpkgs.
|
||||
|
||||
Because of this, you need to pass nixpkgs itself as the first argument.
|
||||
|
||||
The second argument is the name of the option, used in the description "The <name> package to use.".
|
||||
|
||||
You can also pass an example value, either a literal string or a package's attribute path.
|
||||
|
||||
You can omit the default path if the name of the option is also attribute path in nixpkgs.
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs "hello" { }
|
||||
=> { _type = "option"; default = «derivation /nix/store/3r2vg51hlxj3cx5vscp0vkv60bqxkaq0-hello-2.10.drv»; defaultText = { ... }; description = "The hello package to use."; type = { ... }; }
|
||||
|
||||
Example:
|
||||
mkPackageOption pkgs "GHC" {
|
||||
default = [ "ghc" ];
|
||||
example = "pkgs.haskell.package.ghc921.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
}
|
||||
=> { _type = "option"; default = «derivation /nix/store/jxx55cxsjrf8kyh3fp2ya17q99w7541r-ghc-8.10.7.drv»; defaultText = { ... }; description = "The GHC package to use."; example = { ... }; type = { ... }; }
|
||||
*/
|
||||
mkPackageOption =
|
||||
# Package set (a specific version of nixpkgs)
|
||||
pkgs:
|
||||
# Name for the package, shown in option description
|
||||
name:
|
||||
{ default ? [ name ], example ? null }:
|
||||
let default' = if !isList default then [ default ] else default;
|
||||
in mkOption {
|
||||
type = lib.types.package;
|
||||
description = "The ${name} package to use.";
|
||||
default = attrByPath default'
|
||||
(throw "${concatStringsSep "." default'} cannot be found in pkgs") pkgs;
|
||||
defaultText = literalExpression ("pkgs." + concatStringsSep "." default');
|
||||
${if example != null then "example" else null} = literalExpression
|
||||
(if isList example then "pkgs." + concatStringsSep "." example else example);
|
||||
};
|
||||
|
||||
/* This option accepts anything, but it does not produce any result.
|
||||
|
||||
This is useful for sharing a module across different module sets
|
||||
|
|
|
@ -1918,12 +1918,10 @@
|
|||
github = "cburstedde";
|
||||
githubId = 109908;
|
||||
name = "Carsten Burstedde";
|
||||
keys = [
|
||||
{
|
||||
keys = [{
|
||||
longkeyid = "rsa2048/0x0704CD9E550A6BCD";
|
||||
fingerprint = "1127 A432 6524 BF02 737B 544E 0704 CD9E 550A 6BCD";
|
||||
}
|
||||
];
|
||||
}];
|
||||
};
|
||||
cdepillabout = {
|
||||
email = "cdep.illabout@gmail.com";
|
||||
|
@ -4571,6 +4569,12 @@
|
|||
githubId = 343415;
|
||||
name = "Greg Roodt";
|
||||
};
|
||||
gruve-p = {
|
||||
email = "groestlcoin@gmail.com";
|
||||
github = "gruve-p";
|
||||
githubId = 11212268;
|
||||
name = "gruve-p";
|
||||
};
|
||||
gschwartz = {
|
||||
email = "gsch@pennmedicine.upenn.edu";
|
||||
github = "GregorySchwartz";
|
||||
|
@ -5709,6 +5713,24 @@
|
|||
githubId = 8900;
|
||||
name = "Johan Magnus Jonsson";
|
||||
};
|
||||
jmc-figueira = {
|
||||
email = "business+nixos@jmc-figueira.dev";
|
||||
github = "jmc-figueira";
|
||||
githubId = 6634716;
|
||||
name = "João Figueira";
|
||||
keys = [
|
||||
# GitHub signing key
|
||||
{
|
||||
longkeyid = "rsa4096/0xDC7AE56AE98E02D7";
|
||||
fingerprint = "EC08 7AA3 DEAD A972 F015 6371 DC7A E56A E98E 02D7";
|
||||
}
|
||||
# Email encryption
|
||||
{
|
||||
longkeyid = "ed25519/0x197F9A632D139E30";
|
||||
fingerprint = "816D 23F5 E672 EC58 7674 4A73 197F 9A63 2D13 9E30";
|
||||
}
|
||||
];
|
||||
};
|
||||
jmettes = {
|
||||
email = "jonathan@jmettes.com";
|
||||
github = "jmettes";
|
||||
|
@ -7002,7 +7024,7 @@
|
|||
email = "nullarequest@vivlaid.net";
|
||||
github = "Lunarequest";
|
||||
githubId = 30698906;
|
||||
name = "Advaith Madhukar"; #this is my legal name, I prefer Luna; please keep that in mind!
|
||||
name = "Advaith Madhukar"; # this is my legal name, I prefer Luna; please keep that in mind!
|
||||
};
|
||||
lionello = {
|
||||
email = "lio@lunesu.com";
|
||||
|
@ -10600,14 +10622,20 @@
|
|||
name = "Samuel Dionne-Riel";
|
||||
};
|
||||
samuelgrf = {
|
||||
email = "git@samuelgrf.com";
|
||||
email = "s@muel.gr";
|
||||
github = "samuelgrf";
|
||||
githubId = 67663538;
|
||||
name = "Samuel Gräfenstein";
|
||||
keys = [{
|
||||
keys = [
|
||||
{
|
||||
longkeyid = "rsa4096/0xDE75F92E318123F0";
|
||||
fingerprint = "6F2E 2A90 423C 8111 BFF2 895E DE75 F92E 3181 23F0";
|
||||
}
|
||||
{
|
||||
longkeyid = "rsa4096/0xEF76A063F15C63C8";
|
||||
fingerprint = "FF24 5832 8FAF 4660 18C6 186E EF76 A063 F15C 63C8";
|
||||
}];
|
||||
}
|
||||
];
|
||||
};
|
||||
samuelrivas = {
|
||||
email = "samuelrivas@gmail.com";
|
||||
|
@ -11016,7 +11044,7 @@
|
|||
name = "Yann Hodique";
|
||||
};
|
||||
sikmir = {
|
||||
email = "sikmir@gmail.com";
|
||||
email = "sikmir@disroot.org";
|
||||
github = "sikmir";
|
||||
githubId = 688044;
|
||||
name = "Nikolay Korotkiy";
|
||||
|
@ -11848,6 +11876,12 @@
|
|||
githubId = 378734;
|
||||
name = "TG ⊗ Θ";
|
||||
};
|
||||
tgunnoe = {
|
||||
email = "t@gvno.net";
|
||||
github = "tgunnoe";
|
||||
githubId = 7254833;
|
||||
name = "Taylor Gunnoe";
|
||||
};
|
||||
th0rgal = {
|
||||
email = "thomas.marchand@tuta.io";
|
||||
github = "Th0rgal";
|
||||
|
|
12
third_party/nixpkgs/maintainers/team-list.nix
vendored
12
third_party/nixpkgs/maintainers/team-list.nix
vendored
|
@ -166,6 +166,17 @@ with lib.maintainers; {
|
|||
scope = "Maintain Jitsi.";
|
||||
};
|
||||
|
||||
kubernetes = {
|
||||
members = [
|
||||
johanot
|
||||
offline
|
||||
saschagrunert
|
||||
srhb
|
||||
zowoq
|
||||
];
|
||||
scope = "Maintain the Kubernetes package and module";
|
||||
};
|
||||
|
||||
kodi = {
|
||||
members = [
|
||||
aanderse
|
||||
|
@ -229,6 +240,7 @@ with lib.maintainers; {
|
|||
php = {
|
||||
members = [
|
||||
aanderse
|
||||
drupol
|
||||
etu
|
||||
globin
|
||||
ma27
|
||||
|
|
|
@ -57,6 +57,80 @@ The function `mkOption` accepts the following arguments.
|
|||
: A textual description of the option, in DocBook format, that will be
|
||||
included in the NixOS manual.
|
||||
|
||||
## Utility functions for common option patterns {#sec-option-declarations-util}
|
||||
|
||||
### `mkEnableOption` {#sec-option-declarations-util-mkEnableOption}
|
||||
|
||||
Creates an Option attribute set for a boolean value option i.e an
|
||||
option to be toggled on or off.
|
||||
|
||||
This function takes a single string argument, the name of the thing to be toggled.
|
||||
|
||||
The option's description is "Whether to enable \<name\>.".
|
||||
|
||||
For example:
|
||||
|
||||
::: {#ex-options-declarations-util-mkEnableOption-magic .example}
|
||||
```nix
|
||||
lib.mkEnableOption "magic"
|
||||
# is like
|
||||
lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether to enable magic.";
|
||||
}
|
||||
```
|
||||
|
||||
### `mkPackageOption` {#sec-option-declarations-util-mkPackageOption}
|
||||
|
||||
Usage:
|
||||
|
||||
```nix
|
||||
mkPackageOption pkgs "name" { default = [ "path" "in" "pkgs" ]; example = "literal example"; }
|
||||
```
|
||||
|
||||
Creates an Option attribute set for an option that specifies the package a module should use for some purpose.
|
||||
|
||||
**Note**: You shouldn’t necessarily make package options for all of your modules. You can always overwrite a specific package throughout nixpkgs by using [nixpkgs overlays](https://nixos.org/manual/nixpkgs/stable/#chap-overlays).
|
||||
|
||||
The default package is specified as a list of strings representing its attribute path in nixpkgs. Because of this, you need to pass nixpkgs itself as the first argument.
|
||||
|
||||
The second argument is the name of the option, used in the description "The \<name\> package to use.". You can also pass an example value, either a literal string or a package's attribute path.
|
||||
|
||||
You can omit the default path if the name of the option is also attribute path in nixpkgs.
|
||||
|
||||
::: {#ex-options-declarations-util-mkPackageOption .title}
|
||||
Examples:
|
||||
|
||||
::: {#ex-options-declarations-util-mkPackageOption-hello .example}
|
||||
```nix
|
||||
lib.mkPackageOption pkgs "hello" { }
|
||||
# is like
|
||||
lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.hello;
|
||||
defaultText = lib.literalExpression "pkgs.hello";
|
||||
description = "The hello package to use.";
|
||||
}
|
||||
```
|
||||
|
||||
::: {#ex-options-declarations-util-mkPackageOption-ghc .example}
|
||||
```nix
|
||||
lib.mkPackageOption pkgs "GHC" {
|
||||
default = [ "ghc" ];
|
||||
example = "pkgs.haskell.package.ghc921.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
}
|
||||
# is like
|
||||
lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.ghc;
|
||||
defaultText = lib.literalExpression "pkgs.ghc";
|
||||
example = lib.literalExpression "pkgs.haskell.package.ghc921.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
description = "The GHC package to use.";
|
||||
}
|
||||
```
|
||||
|
||||
## Extensible Option Types {#sec-option-declarations-eot}
|
||||
|
||||
Extensible option types is a feature that allow to extend certain types
|
||||
|
|
|
@ -97,25 +97,122 @@ options = {
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<section xml:id="sec-option-declarations-util">
|
||||
<title>Utility functions for common option patterns</title>
|
||||
<section xml:id="sec-option-declarations-util-mkEnableOption">
|
||||
<title><literal>mkEnableOption</literal></title>
|
||||
<para>
|
||||
Creates an Option attribute set for a boolean value option i.e
|
||||
an option to be toggled on or off.
|
||||
</para>
|
||||
<para>
|
||||
This function takes a single string argument, the name of the
|
||||
thing to be toggled.
|
||||
</para>
|
||||
<para>
|
||||
The option’s description is <quote>Whether to enable
|
||||
<name>.</quote>.
|
||||
</para>
|
||||
<para>
|
||||
For example:
|
||||
</para>
|
||||
<anchor xml:id="ex-options-declarations-util-mkEnableOption-magic" />
|
||||
<programlisting language="bash">
|
||||
lib.mkEnableOption "magic"
|
||||
# is like
|
||||
lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
description = "Whether to enable magic.";
|
||||
}
|
||||
</programlisting>
|
||||
<section xml:id="sec-option-declarations-util-mkPackageOption">
|
||||
<title><literal>mkPackageOption</literal></title>
|
||||
<para>
|
||||
Usage:
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
mkPackageOption pkgs "name" { default = [ "path" "in" "pkgs" ]; example = "literal example"; }
|
||||
</programlisting>
|
||||
<para>
|
||||
Creates an Option attribute set for an option that specifies
|
||||
the package a module should use for some purpose.
|
||||
</para>
|
||||
<para>
|
||||
<emphasis role="strong">Note</emphasis>: You shouldn’t
|
||||
necessarily make package options for all of your modules. You
|
||||
can always overwrite a specific package throughout nixpkgs by
|
||||
using
|
||||
<link xlink:href="https://nixos.org/manual/nixpkgs/stable/#chap-overlays">nixpkgs
|
||||
overlays</link>.
|
||||
</para>
|
||||
<para>
|
||||
The default package is specified as a list of strings
|
||||
representing its attribute path in nixpkgs. Because of this,
|
||||
you need to pass nixpkgs itself as the first argument.
|
||||
</para>
|
||||
<para>
|
||||
The second argument is the name of the option, used in the
|
||||
description <quote>The <name> package to use.</quote>.
|
||||
You can also pass an example value, either a literal string or
|
||||
a package’s attribute path.
|
||||
</para>
|
||||
<para>
|
||||
You can omit the default path if the name of the option is
|
||||
also attribute path in nixpkgs.
|
||||
</para>
|
||||
<anchor xml:id="ex-options-declarations-util-mkPackageOption" />
|
||||
<para>
|
||||
Examples:
|
||||
</para>
|
||||
<anchor xml:id="ex-options-declarations-util-mkPackageOption-hello" />
|
||||
<programlisting language="bash">
|
||||
lib.mkPackageOption pkgs "hello" { }
|
||||
# is like
|
||||
lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.hello;
|
||||
defaultText = lib.literalExpression "pkgs.hello";
|
||||
description = "The hello package to use.";
|
||||
}
|
||||
</programlisting>
|
||||
<anchor xml:id="ex-options-declarations-util-mkPackageOption-ghc" />
|
||||
<programlisting language="bash">
|
||||
lib.mkPackageOption pkgs "GHC" {
|
||||
default = [ "ghc" ];
|
||||
example = "pkgs.haskell.package.ghc921.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
}
|
||||
# is like
|
||||
lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.ghc;
|
||||
defaultText = lib.literalExpression "pkgs.ghc";
|
||||
example = lib.literalExpression "pkgs.haskell.package.ghc921.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
description = "The GHC package to use.";
|
||||
}
|
||||
</programlisting>
|
||||
<section xml:id="sec-option-declarations-eot">
|
||||
<title>Extensible Option Types</title>
|
||||
<para>
|
||||
Extensible option types is a feature that allow to extend certain
|
||||
types declaration through multiple module files. This feature only
|
||||
work with a restricted set of types, namely
|
||||
<literal>enum</literal> and <literal>submodules</literal> and any
|
||||
composed forms of them.
|
||||
Extensible option types is a feature that allow to extend
|
||||
certain types declaration through multiple module files.
|
||||
This feature only work with a restricted set of types,
|
||||
namely <literal>enum</literal> and
|
||||
<literal>submodules</literal> and any composed forms of
|
||||
them.
|
||||
</para>
|
||||
<para>
|
||||
Extensible option types can be used for <literal>enum</literal>
|
||||
options that affects multiple modules, or as an alternative to
|
||||
related <literal>enable</literal> options.
|
||||
Extensible option types can be used for
|
||||
<literal>enum</literal> options that affects multiple
|
||||
modules, or as an alternative to related
|
||||
<literal>enable</literal> options.
|
||||
</para>
|
||||
<para>
|
||||
As an example, we will take the case of display managers. There is
|
||||
a central display manager module for generic display manager
|
||||
options and a module file per display manager backend (sddm, gdm
|
||||
...).
|
||||
As an example, we will take the case of display managers.
|
||||
There is a central display manager module for generic
|
||||
display manager options and a module file per display
|
||||
manager backend (sddm, gdm ...).
|
||||
</para>
|
||||
<para>
|
||||
There are two approach to this module structure:
|
||||
|
@ -124,13 +221,15 @@ options = {
|
|||
<listitem>
|
||||
<para>
|
||||
Managing the display managers independently by adding an
|
||||
enable option to every display manager module backend. (NixOS)
|
||||
enable option to every display manager module backend.
|
||||
(NixOS)
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Managing the display managers in the central module by adding
|
||||
an option to select which display manager backend to use.
|
||||
Managing the display managers in the central module by
|
||||
adding an option to select which display manager backend
|
||||
to use.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -138,43 +237,44 @@ options = {
|
|||
Both approaches have problems.
|
||||
</para>
|
||||
<para>
|
||||
Making backends independent can quickly become hard to manage. For
|
||||
display managers, there can be only one enabled at a time, but the
|
||||
type system can not enforce this restriction as there is no
|
||||
relation between each backend <literal>enable</literal> option. As
|
||||
a result, this restriction has to be done explicitely by adding
|
||||
assertions in each display manager backend module.
|
||||
Making backends independent can quickly become hard to
|
||||
manage. For display managers, there can be only one enabled
|
||||
at a time, but the type system can not enforce this
|
||||
restriction as there is no relation between each backend
|
||||
<literal>enable</literal> option. As a result, this
|
||||
restriction has to be done explicitely by adding assertions
|
||||
in each display manager backend module.
|
||||
</para>
|
||||
<para>
|
||||
On the other hand, managing the display managers backends in the
|
||||
central module will require to change the central module option
|
||||
every time a new backend is added or removed.
|
||||
On the other hand, managing the display managers backends in
|
||||
the central module will require to change the central module
|
||||
option every time a new backend is added or removed.
|
||||
</para>
|
||||
<para>
|
||||
By using extensible option types, it is possible to create a
|
||||
placeholder option in the central module
|
||||
(<link linkend="ex-option-declaration-eot-service">Example:
|
||||
Extensible type placeholder in the service module</link>), and to
|
||||
extend it in each backend module
|
||||
Extensible type placeholder in the service module</link>),
|
||||
and to extend it in each backend module
|
||||
(<link linkend="ex-option-declaration-eot-backend-gdm">Example:
|
||||
Extending
|
||||
<literal>services.xserver.displayManager.enable</literal> in the
|
||||
<literal>gdm</literal> module</link>,
|
||||
<literal>services.xserver.displayManager.enable</literal> in
|
||||
the <literal>gdm</literal> module</link>,
|
||||
<link linkend="ex-option-declaration-eot-backend-sddm">Example:
|
||||
Extending
|
||||
<literal>services.xserver.displayManager.enable</literal> in the
|
||||
<literal>sddm</literal> module</link>).
|
||||
<literal>services.xserver.displayManager.enable</literal> in
|
||||
the <literal>sddm</literal> module</link>).
|
||||
</para>
|
||||
<para>
|
||||
As a result, <literal>displayManager.enable</literal> option
|
||||
values can be added without changing the main service module file
|
||||
and the type system automatically enforce that there can only be a
|
||||
single display manager enabled.
|
||||
values can be added without changing the main service module
|
||||
file and the type system automatically enforce that there
|
||||
can only be a single display manager enabled.
|
||||
</para>
|
||||
<anchor xml:id="ex-option-declaration-eot-service" />
|
||||
<para>
|
||||
<emphasis role="strong">Example: Extensible type placeholder in
|
||||
the service module</emphasis>
|
||||
<emphasis role="strong">Example: Extensible type placeholder
|
||||
in the service module</emphasis>
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
services.xserver.displayManager.enable = mkOption {
|
||||
|
@ -185,8 +285,8 @@ services.xserver.displayManager.enable = mkOption {
|
|||
<anchor xml:id="ex-option-declaration-eot-backend-gdm" />
|
||||
<para>
|
||||
<emphasis role="strong">Example: Extending
|
||||
<literal>services.xserver.displayManager.enable</literal> in the
|
||||
<literal>gdm</literal> module</emphasis>
|
||||
<literal>services.xserver.displayManager.enable</literal> in
|
||||
the <literal>gdm</literal> module</emphasis>
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
services.xserver.displayManager.enable = mkOption {
|
||||
|
@ -196,8 +296,8 @@ services.xserver.displayManager.enable = mkOption {
|
|||
<anchor xml:id="ex-option-declaration-eot-backend-sddm" />
|
||||
<para>
|
||||
<emphasis role="strong">Example: Extending
|
||||
<literal>services.xserver.displayManager.enable</literal> in the
|
||||
<literal>sddm</literal> module</emphasis>
|
||||
<literal>services.xserver.displayManager.enable</literal> in
|
||||
the <literal>sddm</literal> module</emphasis>
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
services.xserver.displayManager.enable = mkOption {
|
||||
|
@ -206,16 +306,19 @@ services.xserver.displayManager.enable = mkOption {
|
|||
</programlisting>
|
||||
<para>
|
||||
The placeholder declaration is a standard
|
||||
<literal>mkOption</literal> declaration, but it is important that
|
||||
extensible option declarations only use the
|
||||
<literal>mkOption</literal> declaration, but it is important
|
||||
that extensible option declarations only use the
|
||||
<literal>type</literal> argument.
|
||||
</para>
|
||||
<para>
|
||||
Extensible option types work with any of the composed variants of
|
||||
<literal>enum</literal> such as
|
||||
Extensible option types work with any of the composed
|
||||
variants of <literal>enum</literal> such as
|
||||
<literal>with types; nullOr (enum [ "foo" "bar" ])</literal>
|
||||
or
|
||||
<literal>with types; listOf (enum [ "foo" "bar" ])</literal>.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -279,6 +279,14 @@
|
|||
<literal>virtualisation.docker.daemon.settings</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The backward compatibility in
|
||||
<literal>services.wordpress</literal> to configure sites with
|
||||
the old interface has been removed. Please use
|
||||
<literal>services.wordpress.sites</literal> instead.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The backward compatibility in
|
||||
|
@ -389,6 +397,24 @@
|
|||
<literal>~/.local/share/polymc/polymc.cfg</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The terraform 0.12 compatibility has been removed and the
|
||||
<literal>terraform.withPlugins</literal> and
|
||||
<literal>terraform-providers.mkProvider</literal>
|
||||
implementations simplified. Providers now need to be stored
|
||||
under
|
||||
<literal>$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version></literal>
|
||||
(which mkProvider does).
|
||||
</para>
|
||||
<para>
|
||||
This breaks back-compat so it’s not possible to mix-and-match
|
||||
with previous versions of nixpkgs. In exchange, it now becomes
|
||||
possible to use the providers from
|
||||
<link xlink:href="https://github.com/numtide/nixpkgs-terraform-providers-bin">nixpkgs-terraform-providers-bin</link>
|
||||
directly.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.noto-fonts-cjk</literal> is now deprecated in
|
||||
|
@ -581,6 +607,14 @@
|
|||
files.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
A new option
|
||||
<literal>boot.initrd.extraModprobeConfig</literal> has been
|
||||
added which can be used to configure kernel modules that are
|
||||
loaded in the initrd.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>fetchFromSourcehut</literal> now allows fetching
|
||||
|
|
|
@ -92,6 +92,10 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemon.settings`.
|
||||
|
||||
- The backward compatibility in `services.wordpress` to configure sites with
|
||||
the old interface has been removed. Please use `services.wordpress.sites`
|
||||
instead.
|
||||
|
||||
- The backward compatibility in `services.dokuwiki` to configure sites with the
|
||||
old interface has been removed. Please use `services.dokuwiki.sites` instead.
|
||||
|
||||
|
@ -120,6 +124,11 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- MultiMC has been replaced with the fork PolyMC due to upstream developers being hostile to 3rd party package maintainers. PolyMC removes all MultiMC branding and is aimed at providing proper 3rd party packages like the one contained in Nixpkgs. This change affects the data folder where game instances and other save and configuration files are stored. Users with existing installations should rename `~/.local/share/multimc` to `~/.local/share/polymc`. The main config file's path has also moved from `~/.local/share/multimc/multimc.cfg` to `~/.local/share/polymc/polymc.cfg`.
|
||||
|
||||
- The terraform 0.12 compatibility has been removed and the `terraform.withPlugins` and `terraform-providers.mkProvider` implementations simplified. Providers now need to be stored under
|
||||
`$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version>` (which mkProvider does).
|
||||
|
||||
This breaks back-compat so it's not possible to mix-and-match with previous versions of nixpkgs. In exchange, it now becomes possible to use the providers from [nixpkgs-terraform-providers-bin](https://github.com/numtide/nixpkgs-terraform-providers-bin) directly.
|
||||
|
||||
- `pkgs.noto-fonts-cjk` is now deprecated in favor of `pkgs.noto-fonts-cjk-sans`
|
||||
and `pkgs.noto-fonts-cjk-serif` because they each have different release
|
||||
schedules. To maintain compatibility with prior releases of Nixpkgs,
|
||||
|
@ -202,6 +211,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The option `services.duplicati.dataDir` has been added to allow changing the location of duplicati's files.
|
||||
|
||||
- A new option `boot.initrd.extraModprobeConfig` has been added which can be used to configure kernel modules that are loaded in the initrd.
|
||||
|
||||
- `fetchFromSourcehut` now allows fetching repositories recursively
|
||||
using `fetchgit` or `fetchhg` if the argument `fetchSubmodules`
|
||||
is set to `true`.
|
||||
|
|
|
@ -105,6 +105,7 @@ mkdir -p $out/iso
|
|||
# version-5 UUID's work)
|
||||
xorriso="xorriso
|
||||
-boot_image any gpt_disk_guid=$(uuid -v 5 daed2280-b91e-42c0-aed6-82c825ca41f3 $out | tr -d -)
|
||||
-volume_date all_file_dates =$SOURCE_DATE_EPOCH
|
||||
-as mkisofs
|
||||
-iso-level 3
|
||||
-volid ${volumeID}
|
||||
|
|
|
@ -734,13 +734,13 @@ in
|
|||
{ source = config.system.build.squashfsStore;
|
||||
target = "/nix-store.squashfs";
|
||||
}
|
||||
{ source = config.isoImage.splashImage;
|
||||
target = "/isolinux/background.png";
|
||||
}
|
||||
{ source = pkgs.writeText "version" config.system.nixos.label;
|
||||
target = "/version.txt";
|
||||
}
|
||||
] ++ optionals canx86BiosBoot [
|
||||
{ source = config.isoImage.splashImage;
|
||||
target = "/isolinux/background.png";
|
||||
}
|
||||
{ source = pkgs.substituteAll {
|
||||
name = "isolinux.cfg";
|
||||
src = pkgs.writeText "isolinux.cfg-in" isolinuxCfg;
|
||||
|
@ -761,6 +761,9 @@ in
|
|||
{ source = (pkgs.writeTextDir "grub/loopback.cfg" "source /EFI/boot/grub.cfg") + "/grub";
|
||||
target = "/boot/grub";
|
||||
}
|
||||
{ source = config.isoImage.efiSplashImage;
|
||||
target = "/EFI/boot/efi-background.png";
|
||||
}
|
||||
] ++ optionals (config.boot.loader.grub.memtest86.enable && canx86BiosBoot) [
|
||||
{ source = "${pkgs.memtest86plus}/memtest.bin";
|
||||
target = "/boot/memtest.bin";
|
||||
|
@ -769,10 +772,6 @@ in
|
|||
{ source = config.isoImage.grubTheme;
|
||||
target = "/EFI/boot/grub-theme";
|
||||
}
|
||||
] ++ [
|
||||
{ source = config.isoImage.efiSplashImage;
|
||||
target = "/EFI/boot/efi-background.png";
|
||||
}
|
||||
];
|
||||
|
||||
boot.loader.timeout = 10;
|
||||
|
|
10
third_party/nixpkgs/nixos/modules/installer/sd-card/sd-image-riscv64-qemu-installer.nix
vendored
Normal file
10
third_party/nixpkgs/nixos/modules/installer/sd-card/sd-image-riscv64-qemu-installer.nix
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
imports = [
|
||||
../../profiles/installation-device.nix
|
||||
./sd-image-riscv64-qemu.nix
|
||||
];
|
||||
|
||||
# the installation media is also the installation target,
|
||||
# so we don't want to provide the installation configuration.nix.
|
||||
installer.cloneConfig = false;
|
||||
}
|
|
@ -5,11 +5,14 @@ with lib;
|
|||
let
|
||||
cfg = config.services.locate;
|
||||
isMLocate = hasPrefix "mlocate" cfg.locate.name;
|
||||
isPLocate = hasPrefix "plocate" cfg.locate.name;
|
||||
isMorPLocate = (isMLocate || isPLocate);
|
||||
isFindutils = hasPrefix "findutils" cfg.locate.name;
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "locate" "period" ] [ "services" "locate" "interval" ])
|
||||
(mkRemovedOptionModule [ "services" "locate" "includeStore" ] "Use services.locate.prunePaths" )
|
||||
(mkRemovedOptionModule [ "services" "locate" "includeStore" ] "Use services.locate.prunePaths")
|
||||
];
|
||||
|
||||
options.services.locate = with types; {
|
||||
|
@ -163,7 +166,16 @@ in {
|
|||
|
||||
prunePaths = mkOption {
|
||||
type = listOf path;
|
||||
default = [ "/tmp" "/var/tmp" "/var/cache" "/var/lock" "/var/run" "/var/spool" "/nix/store" "/nix/var/log/nix" ];
|
||||
default = [
|
||||
"/tmp"
|
||||
"/var/tmp"
|
||||
"/var/cache"
|
||||
"/var/lock"
|
||||
"/var/run"
|
||||
"/var/spool"
|
||||
"/nix/store"
|
||||
"/nix/var/log/nix"
|
||||
];
|
||||
description = ''
|
||||
Which paths to exclude from indexing
|
||||
'';
|
||||
|
@ -188,26 +200,38 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.groups = mkIf isMLocate { mlocate = {}; };
|
||||
users.groups = mkMerge [
|
||||
(mkIf isMLocate { mlocate = { }; })
|
||||
(mkIf isPLocate { plocate = { }; })
|
||||
];
|
||||
|
||||
security.wrappers = mkIf isMLocate {
|
||||
locate = {
|
||||
group = "mlocate";
|
||||
security.wrappers =
|
||||
let
|
||||
common = {
|
||||
owner = "root";
|
||||
permissions = "u+rx,g+x,o+x";
|
||||
setgid = true;
|
||||
setuid = false;
|
||||
source = "${cfg.locate}/bin/locate";
|
||||
};
|
||||
mlocate = (mkIf isMLocate {
|
||||
group = "mlocate";
|
||||
source = "${cfg.locate}/bin/locate";
|
||||
});
|
||||
plocate = (mkIf isPLocate {
|
||||
group = "plocate";
|
||||
source = "${cfg.locate}/bin/plocate";
|
||||
});
|
||||
in
|
||||
mkIf isMorPLocate {
|
||||
locate = mkMerge [ common mlocate plocate ];
|
||||
plocate = (mkIf isPLocate (mkMerge [ common plocate ]));
|
||||
};
|
||||
|
||||
nixpkgs.config = { locate.dbfile = cfg.output; };
|
||||
|
||||
environment.systemPackages = [ cfg.locate ];
|
||||
|
||||
environment.variables = mkIf (!isMLocate)
|
||||
{ LOCATE_PATH = cfg.output;
|
||||
};
|
||||
environment.variables = mkIf (!isMorPLocate) { LOCATE_PATH = cfg.output; };
|
||||
|
||||
environment.etc = {
|
||||
# write /etc/updatedb.conf for manual calls to `updatedb`
|
||||
|
@ -221,22 +245,28 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
|
||||
++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component"
|
||||
++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
|
||||
warnings = optional (isMorPLocate && cfg.localuser != null)
|
||||
"mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
|
||||
++ optional (isFindutils && cfg.pruneNames != [ ])
|
||||
"findutils locate does not support pruning by directory component"
|
||||
++ optional (isFindutils && cfg.pruneBindMounts)
|
||||
"findutils locate does not support skipping bind mounts";
|
||||
|
||||
systemd.services.update-locatedb =
|
||||
{ description = "Update Locate Database";
|
||||
path = mkIf (!isMLocate) [ pkgs.su ];
|
||||
systemd.services.update-locatedb = {
|
||||
description = "Update Locate Database";
|
||||
path = mkIf (!isMorPLocate) [ pkgs.su ];
|
||||
|
||||
# mlocate's updatedb takes flags via a configuration file or
|
||||
# on the command line, but not by environment variable.
|
||||
script =
|
||||
if isMLocate
|
||||
then let toFlags = x: optional (cfg.${x} != [])
|
||||
if isMorPLocate then
|
||||
let
|
||||
toFlags = x:
|
||||
optional (cfg.${x} != [ ])
|
||||
"--${lib.toLower x} '${concatStringsSep " " cfg.${x}}'";
|
||||
args = concatLists (map toFlags ["pruneFS" "pruneNames" "prunePaths"]);
|
||||
in ''
|
||||
args = concatLists (map toFlags [ "pruneFS" "pruneNames" "prunePaths" ]);
|
||||
in
|
||||
''
|
||||
exec ${cfg.locate}/bin/updatedb \
|
||||
--output ${toString cfg.output} ${concatStringsSep " " args} \
|
||||
--prune-bind-mounts ${if cfg.pruneBindMounts then "yes" else "no"} \
|
||||
|
@ -244,10 +274,10 @@ in {
|
|||
''
|
||||
else ''
|
||||
exec ${cfg.locate}/bin/updatedb \
|
||||
${optionalString (cfg.localuser != null && ! isMLocate) "--localuser=${cfg.localuser}"} \
|
||||
${optionalString (cfg.localuser != null && !isMorPLocate) "--localuser=${cfg.localuser}"} \
|
||||
--output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}
|
||||
'';
|
||||
environment = optionalAttrs (!isMLocate) {
|
||||
environment = optionalAttrs (!isMorPLocate) {
|
||||
PRUNEFS = concatStringsSep " " cfg.pruneFS;
|
||||
PRUNEPATHS = concatStringsSep " " cfg.prunePaths;
|
||||
PRUNENAMES = concatStringsSep " " cfg.pruneNames;
|
||||
|
@ -267,11 +297,13 @@ in {
|
|||
serviceConfig.ReadWritePaths = dirOf cfg.output;
|
||||
};
|
||||
|
||||
systemd.timers.update-locatedb = mkIf (cfg.interval != "never")
|
||||
{ description = "Update timer for locate database";
|
||||
systemd.timers.update-locatedb = mkIf (cfg.interval != "never") {
|
||||
description = "Update timer for locate database";
|
||||
partOf = [ "update-locatedb.service" ];
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig.OnCalendar = cfg.interval;
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ SuperSandro2000 ];
|
||||
}
|
||||
|
|
|
@ -90,10 +90,10 @@ in {
|
|||
extraPackages = mkOption {
|
||||
type = with types; listOf package;
|
||||
default = with pkgs; [
|
||||
swaylock swayidle alacritty dmenu
|
||||
swaylock swayidle foot dmenu
|
||||
];
|
||||
defaultText = literalExpression ''
|
||||
with pkgs; [ swaylock swayidle alacritty dmenu ];
|
||||
with pkgs; [ swaylock swayidle foot dmenu ];
|
||||
'';
|
||||
example = literalExpression ''
|
||||
with pkgs; [
|
||||
|
|
|
@ -51,7 +51,10 @@ in {
|
|||
};
|
||||
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPortRanges = [{ from = 9100; to = 9200; }];
|
||||
allowedTCPPortRanges = [
|
||||
{ from = 9100; to = 9200; }
|
||||
{ from = 9330; to = 9332; }
|
||||
];
|
||||
allowedUDPPorts = [ 9003 ];
|
||||
extraCommands = ''
|
||||
iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT
|
||||
|
|
|
@ -43,6 +43,7 @@ in
|
|||
# This folder must be writeable as the application is storing
|
||||
# its data in it, so the StateDirectory is a good choice
|
||||
N8N_USER_FOLDER = "/var/lib/n8n";
|
||||
HOME = "/var/lib/n8n";
|
||||
N8N_CONFIG_FILES = "${configFile}";
|
||||
};
|
||||
serviceConfig = {
|
||||
|
|
|
@ -249,16 +249,15 @@ in
|
|||
{
|
||||
# interface
|
||||
options = {
|
||||
services.dokuwiki = mkOption {
|
||||
type = types.submodule {
|
||||
services.dokuwiki = {
|
||||
|
||||
options.sites = mkOption {
|
||||
sites = mkOption {
|
||||
type = types.attrsOf (types.submodule siteOpts);
|
||||
default = {};
|
||||
description = "Specification of one or more DokuWiki sites to serve";
|
||||
};
|
||||
|
||||
options.webserver = mkOption {
|
||||
webserver = mkOption {
|
||||
type = types.enum [ "nginx" "caddy" ];
|
||||
default = "nginx";
|
||||
description = ''
|
||||
|
@ -271,12 +270,9 @@ in
|
|||
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
|
||||
'';
|
||||
};
|
||||
};
|
||||
default = {};
|
||||
description = "DokuWiki configuration";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
# implementation
|
||||
config = mkIf (eachSite != {}) (mkMerge [{
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
|
||||
inherit (lib) any attrValues concatMapStringsSep flatten literalExpression;
|
||||
inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
|
||||
with lib;
|
||||
|
||||
cfg = migrateOldAttrs config.services.wordpress;
|
||||
let
|
||||
cfg = config.services.wordpress;
|
||||
eachSite = cfg.sites;
|
||||
user = "wordpress";
|
||||
webserver = config.services.${cfg.webserver};
|
||||
stateDir = hostName: "/var/lib/wordpress/${hostName}";
|
||||
|
||||
# Migrate config.services.wordpress.<hostName> to config.services.wordpress.sites.<hostName>
|
||||
oldSites = filterAttrs (o: _: o != "sites" && o != "webserver");
|
||||
migrateOldAttrs = cfg: cfg // { sites = cfg.sites // oldSites cfg; };
|
||||
|
||||
pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
|
||||
pname = "wordpress-${hostName}";
|
||||
version = src.version;
|
||||
|
@ -266,19 +260,15 @@ in
|
|||
{
|
||||
# interface
|
||||
options = {
|
||||
services.wordpress = mkOption {
|
||||
type = types.submodule {
|
||||
# Used to support old interface
|
||||
freeformType = types.attrsOf (types.submodule siteOpts);
|
||||
services.wordpress = {
|
||||
|
||||
# New interface
|
||||
options.sites = mkOption {
|
||||
sites = mkOption {
|
||||
type = types.attrsOf (types.submodule siteOpts);
|
||||
default = {};
|
||||
description = "Specification of one or more WordPress sites to serve";
|
||||
};
|
||||
|
||||
options.webserver = mkOption {
|
||||
webserver = mkOption {
|
||||
type = types.enum [ "httpd" "nginx" "caddy" ];
|
||||
default = "httpd";
|
||||
description = ''
|
||||
|
@ -291,12 +281,9 @@ in
|
|||
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
|
||||
'';
|
||||
};
|
||||
};
|
||||
default = {};
|
||||
description = "Wordpress configuration";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
# implementation
|
||||
config = mkIf (eachSite != {}) (mkMerge [{
|
||||
|
@ -312,8 +299,6 @@ in
|
|||
}) eachSite);
|
||||
|
||||
|
||||
warnings = mapAttrsToList (hostName: _: ''services.wordpress."${hostName}" is deprecated use services.wordpress.sites."${hostName}"'') (oldSites cfg);
|
||||
|
||||
services.mysql = mkIf (any (v: v.database.createLocally) (attrValues eachSite)) {
|
||||
enable = true;
|
||||
package = mkDefault pkgs.mariadb;
|
||||
|
|
|
@ -245,11 +245,8 @@ let
|
|||
defaultListen =
|
||||
if vhost.listen != [] then vhost.listen
|
||||
else
|
||||
let addrs = if vhost.listenAddresses != [] then vhost.listenAddresses else (
|
||||
[ "0.0.0.0" ] ++ optional enableIPv6 "[::0]"
|
||||
);
|
||||
in
|
||||
optionals (hasSSL || vhost.rejectSSL) (map (addr: { inherit addr; port = 443; ssl = true; }) addrs)
|
||||
let addrs = if vhost.listenAddresses != [] then vhost.listenAddresses else cfg.defaultListenAddresses;
|
||||
in optionals (hasSSL || vhost.rejectSSL) (map (addr: { inherit addr; port = 443; ssl = true; }) addrs)
|
||||
++ optionals (!onlySSL) (map (addr: { inherit addr; port = 80; ssl = false; }) addrs);
|
||||
|
||||
hostListen =
|
||||
|
@ -432,6 +429,16 @@ in
|
|||
";
|
||||
};
|
||||
|
||||
defaultListenAddresses = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "0.0.0.0" ] ++ optional enableIPv6 "[::0]";
|
||||
defaultText = literalExpression ''[ "0.0.0.0" ] ++ lib.optional config.networking.enableIPv6 "[::0]"'';
|
||||
example = literalExpression ''[ "10.0.0.12" "[2002:a00:1::]" ]'';
|
||||
description = "
|
||||
If vhosts do not specify listenAddresses, use these addresses by default.
|
||||
";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
default = pkgs.nginxStable;
|
||||
defaultText = literalExpression "pkgs.nginxStable";
|
||||
|
|
|
@ -271,7 +271,7 @@ def main() -> None:
|
|||
if os.readlink(system_dir(*gen)) == args.default_config:
|
||||
write_loader_conf(*gen)
|
||||
except OSError as e:
|
||||
print("ignoring profile '{}' in the list of boot entries because of the following error:\n{}".format(profile, e), file=sys.stderr)
|
||||
print("ignoring generation '{}' in the list of boot entries because of the following error:\n{}".format(*gen, e), file=sys.stderr)
|
||||
|
||||
for root, _, files in os.walk('@efiSysMountPoint@/efi/nixos/.extra-files', topdown=False):
|
||||
relative_root = root.removeprefix("@efiSysMountPoint@/efi/nixos/.extra-files").removeprefix("/")
|
||||
|
|
|
@ -34,6 +34,23 @@ with lib;
|
|||
type = types.lines;
|
||||
};
|
||||
|
||||
boot.initrd.extraModprobeConfig = mkOption {
|
||||
default = "";
|
||||
example =
|
||||
''
|
||||
options zfs zfs_arc_max=1073741824
|
||||
'';
|
||||
description = ''
|
||||
Does exactly the same thing as
|
||||
<option>boot.extraModprobeConfig</option>, except
|
||||
that the generated <filename>modprobe.conf</filename>
|
||||
file is also included in the initrd.
|
||||
This is useful for setting module options for kernel
|
||||
modules that are loaded during early boot in the initrd.
|
||||
'';
|
||||
type = types.lines;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -50,6 +67,9 @@ with lib;
|
|||
'')}
|
||||
${config.boot.extraModprobeConfig}
|
||||
'';
|
||||
environment.etc."modprobe.d/nixos-initrd.conf".text = ''
|
||||
${config.boot.initrd.extraModprobeConfig}
|
||||
'';
|
||||
environment.etc."modprobe.d/debian.conf".source = pkgs.kmod-debian-aliases;
|
||||
|
||||
environment.systemPackages = [ pkgs.kmod ];
|
||||
|
|
|
@ -338,6 +338,9 @@ let
|
|||
{ object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf;
|
||||
symlink = "/etc/mdadm.conf";
|
||||
}
|
||||
{ object = config.environment.etc."modprobe.d/nixos-initrd.conf".source;
|
||||
symlink = "/etc/modprobe.d/nixos-initrd.conf";
|
||||
}
|
||||
{ object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" {
|
||||
src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf";
|
||||
preferLocalBuild = true;
|
||||
|
|
22
third_party/nixpkgs/nixos/tests/all-tests.nix
vendored
22
third_party/nixpkgs/nixos/tests/all-tests.nix
vendored
|
@ -54,6 +54,7 @@ in
|
|||
borgbackup = handleTest ./borgbackup.nix {};
|
||||
botamusique = handleTest ./botamusique.nix {};
|
||||
bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {};
|
||||
brscan5 = handleTest ./brscan5.nix {};
|
||||
btrbk = handleTest ./btrbk.nix {};
|
||||
buildbot = handleTest ./buildbot.nix {};
|
||||
buildkite-agents = handleTest ./buildkite-agents.nix {};
|
||||
|
@ -121,6 +122,7 @@ in
|
|||
docker-tools-cross = handleTestOn ["x86_64-linux" "aarch64-linux"] ./docker-tools-cross.nix {};
|
||||
docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
|
||||
documize = handleTest ./documize.nix {};
|
||||
doh-proxy-rust = handleTest ./doh-proxy-rust.nix {};
|
||||
dokuwiki = handleTest ./dokuwiki.nix {};
|
||||
domination = handleTest ./domination.nix {};
|
||||
dovecot = handleTest ./dovecot.nix {};
|
||||
|
@ -130,6 +132,7 @@ in
|
|||
ecryptfs = handleTest ./ecryptfs.nix {};
|
||||
ejabberd = handleTest ./xmpp/ejabberd.nix {};
|
||||
elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
|
||||
emacs-daemon = handleTest ./emacs-daemon.nix {};
|
||||
engelsystem = handleTest ./engelsystem.nix {};
|
||||
enlightenment = handleTest ./enlightenment.nix {};
|
||||
env = handleTest ./env.nix {};
|
||||
|
@ -141,6 +144,7 @@ in
|
|||
etesync-dav = handleTest ./etesync-dav.nix {};
|
||||
fancontrol = handleTest ./fancontrol.nix {};
|
||||
fcitx = handleTest ./fcitx {};
|
||||
fenics = handleTest ./fenics.nix {};
|
||||
ferm = handleTest ./ferm.nix {};
|
||||
firefox = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox; };
|
||||
firefox-esr = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr; }; # used in `tested` job
|
||||
|
@ -157,6 +161,7 @@ in
|
|||
fsck = handleTest ./fsck.nix {};
|
||||
ft2-clone = handleTest ./ft2-clone.nix {};
|
||||
gerrit = handleTest ./gerrit.nix {};
|
||||
geth = handleTest ./geth.nix {};
|
||||
ghostunnel = handleTest ./ghostunnel.nix {};
|
||||
gitdaemon = handleTest ./gitdaemon.nix {};
|
||||
gitea = handleTest ./gitea.nix {};
|
||||
|
@ -181,7 +186,7 @@ in
|
|||
hadoop.all = handleTestOn [ "x86_64-linux" ] ./hadoop/hadoop.nix {};
|
||||
hadoop.hdfs = handleTestOn [ "x86_64-linux" ] ./hadoop/hdfs.nix {};
|
||||
hadoop.yarn = handleTestOn [ "x86_64-linux" ] ./hadoop/yarn.nix {};
|
||||
handbrake = handleTestOn ["x86_64-linux"] ./handbrake.nix {};
|
||||
haka = handleTest ./haka.nix {};
|
||||
haproxy = handleTest ./haproxy.nix {};
|
||||
hardened = handleTest ./hardened.nix {};
|
||||
hedgedoc = handleTest ./hedgedoc.nix {};
|
||||
|
@ -219,14 +224,19 @@ in
|
|||
iodine = handleTest ./iodine.nix {};
|
||||
ipfs = handleTest ./ipfs.nix {};
|
||||
ipv6 = handleTest ./ipv6.nix {};
|
||||
iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
|
||||
iscsi-root = handleTest ./iscsi-root.nix {};
|
||||
isso = handleTest ./isso.nix {};
|
||||
jackett = handleTest ./jackett.nix {};
|
||||
jellyfin = handleTest ./jellyfin.nix {};
|
||||
jenkins = handleTest ./jenkins.nix {};
|
||||
jenkins-cli = handleTest ./jenkins-cli.nix {};
|
||||
jibri = handleTest ./jibri.nix {};
|
||||
jirafeau = handleTest ./jirafeau.nix {};
|
||||
jitsi-meet = handleTest ./jitsi-meet.nix {};
|
||||
k3s = handleTest ./k3s.nix {};
|
||||
k3s-single-node = handleTest ./k3s-single-node.nix {};
|
||||
k3s-single-node-docker = handleTest ./k3s-single-node-docker.nix {};
|
||||
kafka = handleTest ./kafka.nix {};
|
||||
kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
|
||||
kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {};
|
||||
|
@ -274,6 +284,7 @@ in
|
|||
matrix-conduit = handleTest ./matrix-conduit.nix {};
|
||||
matrix-synapse = handleTest ./matrix-synapse.nix {};
|
||||
mattermost = handleTest ./mattermost.nix {};
|
||||
mediatomb = handleTest ./mediatomb.nix {};
|
||||
mediawiki = handleTest ./mediawiki.nix {};
|
||||
meilisearch = handleTest ./meilisearch.nix {};
|
||||
memcached = handleTest ./memcached.nix {};
|
||||
|
@ -286,6 +297,7 @@ in
|
|||
misc = handleTest ./misc.nix {};
|
||||
mjolnir = handleTest ./matrix/mjolnir.nix {};
|
||||
mod_perl = handleTest ./mod_perl.nix {};
|
||||
molly-brown = handleTest ./molly-brown.nix {};
|
||||
mongodb = handleTest ./mongodb.nix {};
|
||||
moodle = handleTest ./moodle.nix {};
|
||||
morty = handleTest ./morty.nix {};
|
||||
|
@ -379,6 +391,7 @@ in
|
|||
php74 = handleTest ./php { php = pkgs.php74; };
|
||||
php80 = handleTest ./php { php = pkgs.php80; };
|
||||
php81 = handleTest ./php { php = pkgs.php81; };
|
||||
pict-rs = handleTest ./pict-rs.nix {};
|
||||
pinnwand = handleTest ./pinnwand.nix {};
|
||||
plasma5 = handleTest ./plasma5.nix {};
|
||||
plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
|
||||
|
@ -420,12 +433,16 @@ in
|
|||
rasdaemon = handleTest ./rasdaemon.nix {};
|
||||
redis = handleTest ./redis.nix {};
|
||||
redmine = handleTest ./redmine.nix {};
|
||||
resolv = handleTest ./resolv.nix {};
|
||||
restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
|
||||
restic = handleTest ./restic.nix {};
|
||||
riak = handleTest ./riak.nix {};
|
||||
robustirc-bridge = handleTest ./robustirc-bridge.nix {};
|
||||
roundcube = handleTest ./roundcube.nix {};
|
||||
rspamd = handleTest ./rspamd.nix {};
|
||||
rss2email = handleTest ./rss2email.nix {};
|
||||
rstudio-server = handleTest ./rstudio-server.nix {};
|
||||
rsyncd = handleTest ./rsyncd.nix {};
|
||||
rsyslogd = handleTest ./rsyslogd.nix {};
|
||||
rxe = handleTest ./rxe.nix {};
|
||||
sabnzbd = handleTest ./sabnzbd.nix {};
|
||||
|
@ -446,6 +463,7 @@ in
|
|||
smokeping = handleTest ./smokeping.nix {};
|
||||
snapcast = handleTest ./snapcast.nix {};
|
||||
snapper = handleTest ./snapper.nix {};
|
||||
soapui = handleTest ./soapui.nix {};
|
||||
sogo = handleTest ./sogo.nix {};
|
||||
solanum = handleTest ./solanum.nix {};
|
||||
solr = handleTest ./solr.nix {};
|
||||
|
@ -482,6 +500,7 @@ in
|
|||
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
|
||||
systemd-unit-path = handleTest ./systemd-unit-path.nix {};
|
||||
taskserver = handleTest ./taskserver.nix {};
|
||||
teeworlds = handleTest ./teeworlds.nix {};
|
||||
telegraf = handleTest ./telegraf.nix {};
|
||||
teleport = handleTest ./teleport.nix {};
|
||||
thelounge = handleTest ./thelounge.nix {};
|
||||
|
@ -525,6 +544,7 @@ in
|
|||
vscodium = discoverTests (import ./vscodium.nix);
|
||||
wasabibackend = handleTest ./wasabibackend.nix {};
|
||||
wiki-js = handleTest ./wiki-js.nix {};
|
||||
wine = handleTest ./wine.nix {};
|
||||
wireguard = handleTest ./wireguard {};
|
||||
without-nix = handleTest ./without-nix.nix {};
|
||||
wmderland = handleTest ./wmderland.nix {};
|
||||
|
|
33
third_party/nixpkgs/nixos/tests/handbrake.nix
vendored
33
third_party/nixpkgs/nixos/tests/handbrake.nix
vendored
|
@ -1,33 +0,0 @@
|
|||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
|
||||
let
|
||||
# Download Big Buck Bunny example, licensed under CC Attribution 3.0.
|
||||
testMkv = pkgs.fetchurl {
|
||||
url = "https://github.com/Matroska-Org/matroska-test-files/blob/cf0792be144ac470c4b8052cfe19bb691993e3a2/test_files/test1.mkv?raw=true";
|
||||
sha256 = "1hfxbbgxwfkzv85pvpvx55a72qsd0hxjbm9hkl5r3590zw4s75h9";
|
||||
name = "test1.mkv";
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
name = "handbrake";
|
||||
|
||||
meta = {
|
||||
maintainers = with pkgs.lib.maintainers; [ ];
|
||||
};
|
||||
|
||||
machine = { pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [ handbrake ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# Test MP4 and MKV transcoding. Since this is a short clip, transcoding typically
|
||||
# only takes a few seconds.
|
||||
start_all()
|
||||
|
||||
machine.succeed("HandBrakeCLI -i ${testMkv} -o test.mp4 -e x264 -q 20 -B 160")
|
||||
machine.succeed("test -e test.mp4")
|
||||
machine.succeed("HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160")
|
||||
machine.succeed("test -e test.mkv")
|
||||
'';
|
||||
})
|
|
@ -671,8 +671,6 @@ in {
|
|||
"modprobe bcache",
|
||||
"udevadm settle",
|
||||
"make-bcache -B /dev/vda4 -C /dev/vda3",
|
||||
"echo /dev/vda3 > /sys/fs/bcache/register",
|
||||
"echo /dev/vda4 > /sys/fs/bcache/register",
|
||||
"udevadm settle",
|
||||
"mkfs.ext3 -L nixos /dev/bcache0",
|
||||
"mount LABEL=nixos /mnt",
|
||||
|
|
2
third_party/nixpkgs/nixos/tests/jibri.nix
vendored
2
third_party/nixpkgs/nixos/tests/jibri.nix
vendored
|
@ -63,7 +63,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
|||
"""sleep 15 && curl -H "Content-Type: application/json" -X POST http://localhost:2222/jibri/api/v1.0/stopService -d '{"sessionId": "RecordTest","callParams":{"callUrlInfo":{"baseUrl": "https://machine","callName": "TestCall"}},"callLoginParams":{"domain": "recorder.machine", "username": "recorder", "password": "'"$(cat /var/lib/jitsi-meet/jibri-recorder-secret)"'" },"sinkType": "file"}'"""
|
||||
)
|
||||
machine.wait_until_succeeds(
|
||||
"cat /var/log/jitsi/jibri/log.0.txt | grep -q 'Recording finalize script finished with exit value 0'", timeout=36
|
||||
"cat /var/log/jitsi/jibri/log.0.txt | grep -q 'Finalize script finished with exit value 0'", timeout=36
|
||||
)
|
||||
'';
|
||||
})
|
||||
|
|
41
third_party/nixpkgs/nixos/tests/quorum.nix
vendored
41
third_party/nixpkgs/nixos/tests/quorum.nix
vendored
|
@ -1,4 +1,29 @@
|
|||
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
let
|
||||
keystore = {
|
||||
address = "9377bc3936de934c497e22917b81aa8774ac3bb0";
|
||||
crypto = {
|
||||
cipher = "aes-128-ctr";
|
||||
ciphertext = "ad8341d8ef225650403fd366c955f41095e438dd966a3c84b3d406818c1e366c";
|
||||
cipherparams = {
|
||||
iv = "2a09f7a72fd6dff7c43150ff437e6ac2";
|
||||
};
|
||||
kdf = "scrypt";
|
||||
kdfparams = {
|
||||
dklen = 32;
|
||||
n = 262144;
|
||||
p = 1;
|
||||
r = 8;
|
||||
salt = "d1a153845bb80cd6274c87c5bac8ac09fdfac5ff131a6f41b5ed319667f12027";
|
||||
};
|
||||
mac = "a9621ad88fa1d042acca6fc2fcd711f7e05bfbadea3f30f379235570c8e270d3";
|
||||
};
|
||||
id = "89e847a3-1527-42f6-a321-77de0a14ce02";
|
||||
version = 3;
|
||||
};
|
||||
keystore-file = pkgs.writeText "keystore-file" (builtins.toJSON keystore);
|
||||
in
|
||||
{
|
||||
name = "quorum";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ mmahut ];
|
||||
|
@ -62,18 +87,16 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
|||
|
||||
testScript = ''
|
||||
start_all()
|
||||
machine.wait_until_succeeds("mkdir -p /var/lib/quorum/keystore")
|
||||
machine.wait_until_succeeds(
|
||||
'echo \{\\"address\\":\\"9377bc3936de934c497e22917b81aa8774ac3bb0\\",\\"crypto\\":\{\\"cipher\\":\\"aes-128-ctr\\",\\"ciphertext\\":\\"ad8341d8ef225650403fd366c955f41095e438dd966a3c84b3d406818c1e366c\\",\\"cipherparams\\":\{\\"iv\\":\\"2a09f7a72fd6dff7c43150ff437e6ac2\\"\},\\"kdf\\":\\"scrypt\\",\\"kdfparams\\":\{\\"dklen\\":32,\\"n\\":262144,\\"p\\":1,\\"r\\":8,\\"salt\\":\\"d1a153845bb80cd6274c87c5bac8ac09fdfac5ff131a6f41b5ed319667f12027\\"\},\\"mac\\":\\"a9621ad88fa1d042acca6fc2fcd711f7e05bfbadea3f30f379235570c8e270d3\\"\},\\"id\\":\\"89e847a3-1527-42f6-a321-77de0a14ce02\\",\\"version\\":3\}\\" > /var/lib/quorum/keystore/UTC--2020-03-23T11-08-34.144812212Z--9377bc3936de934c497e22917b81aa8774ac3bb0'
|
||||
machine.succeed("mkdir -p /var/lib/quorum/keystore")
|
||||
machine.succeed(
|
||||
'cp ${keystore-file} /var/lib/quorum/keystore/UTC--2020-03-23T11-08-34.144812212Z--${keystore.address}'
|
||||
)
|
||||
machine.wait_until_succeeds(
|
||||
machine.succeed(
|
||||
"echo fe2725c4e8f7617764b845e8d939a65c664e7956eb47ed7d934573f16488efc1 > /var/lib/quorum/nodekey"
|
||||
)
|
||||
machine.wait_until_succeeds("systemctl restart quorum")
|
||||
machine.succeed("systemctl restart quorum")
|
||||
machine.wait_for_unit("quorum.service")
|
||||
machine.sleep(15)
|
||||
machine.wait_until_succeeds(
|
||||
'geth attach /var/lib/quorum/geth.ipc --exec "eth.accounts" | grep 0x9377bc3936de934c497e22917b81aa8774ac3bb0'
|
||||
)
|
||||
machine.succeed('geth attach /var/lib/quorum/geth.ipc --exec "eth.accounts" | grep ${keystore.address}')
|
||||
'';
|
||||
})
|
||||
|
|
47
third_party/nixpkgs/nixos/tests/sway.nix
vendored
47
third_party/nixpkgs/nixos/tests/sway.nix
vendored
|
@ -1,4 +1,4 @@
|
|||
import ./make-test-python.nix ({ pkgs, lib, ...} :
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
name = "sway";
|
||||
|
@ -13,18 +13,37 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|||
|
||||
environment = {
|
||||
# For glinfo and wayland-info:
|
||||
systemPackages = with pkgs; [ mesa-demos wayland-utils ];
|
||||
systemPackages = with pkgs; [ mesa-demos wayland-utils alacritty ];
|
||||
# Use a fixed SWAYSOCK path (for swaymsg):
|
||||
variables = {
|
||||
"SWAYSOCK" = "/tmp/sway-ipc.sock";
|
||||
"WLR_RENDERER_ALLOW_SOFTWARE" = "1";
|
||||
# TODO: Investigate if we can get hardware acceleration to work (via
|
||||
# virtio-gpu and Virgil). We currently have to use the Pixman software
|
||||
# renderer since the GLES2 renderer doesn't work inside the VM (even
|
||||
# with WLR_RENDERER_ALLOW_SOFTWARE):
|
||||
# "WLR_RENDERER_ALLOW_SOFTWARE" = "1";
|
||||
"WLR_RENDERER" = "pixman";
|
||||
};
|
||||
# For convenience:
|
||||
shellAliases = {
|
||||
test-x11 = "glinfo | head -n 3 | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok";
|
||||
test-x11 = "glinfo | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok";
|
||||
test-wayland = "wayland-info | tee /tmp/test-wayland.out && touch /tmp/test-wayland-exit-ok";
|
||||
};
|
||||
|
||||
# To help with OCR:
|
||||
etc."xdg/foot/foot.ini".text = lib.generators.toINI { } {
|
||||
main = {
|
||||
font = "inconsolata:size=14";
|
||||
};
|
||||
colors = rec {
|
||||
foreground = "000000";
|
||||
background = "ffffff";
|
||||
regular2 = foreground;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fonts = [ pkgs.inconsolata ];
|
||||
|
||||
# Automatically configure and start Sway when logging in on tty1:
|
||||
programs.bash.loginShellInit = ''
|
||||
|
@ -61,7 +80,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|||
machine.wait_for_file("/run/user/1000/wayland-1")
|
||||
machine.wait_for_file("/tmp/sway-ipc.sock")
|
||||
|
||||
# Test XWayland:
|
||||
# Test XWayland (foot does not support X):
|
||||
machine.succeed(
|
||||
"su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty'"
|
||||
)
|
||||
|
@ -69,21 +88,22 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|||
machine.send_chars("test-x11\n")
|
||||
machine.wait_for_file("/tmp/test-x11-exit-ok")
|
||||
print(machine.succeed("cat /tmp/test-x11.out"))
|
||||
machine.copy_from_vm("/tmp/test-x11.out")
|
||||
machine.screenshot("alacritty_glinfo")
|
||||
machine.succeed("pkill alacritty")
|
||||
|
||||
# Start a terminal (Alacritty) on workspace 3:
|
||||
# Start a terminal (foot) on workspace 3:
|
||||
machine.send_key("alt-3")
|
||||
machine.succeed(
|
||||
"su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=wayland DISPLAY=invalid alacritty'"
|
||||
)
|
||||
machine.sleep(3)
|
||||
machine.send_key("alt-ret")
|
||||
machine.wait_for_text("alice@machine")
|
||||
machine.send_chars("test-wayland\n")
|
||||
machine.wait_for_file("/tmp/test-wayland-exit-ok")
|
||||
print(machine.succeed("cat /tmp/test-wayland.out"))
|
||||
machine.screenshot("alacritty_wayland_info")
|
||||
machine.copy_from_vm("/tmp/test-wayland.out")
|
||||
machine.screenshot("foot_wayland_info")
|
||||
machine.send_key("alt-shift-q")
|
||||
machine.wait_until_fails("pgrep alacritty")
|
||||
machine.wait_until_fails("pgrep foot")
|
||||
|
||||
# Test gpg-agent starting pinentry-gnome3 via D-Bus (tests if
|
||||
# $WAYLAND_DISPLAY is correctly imported into the D-Bus user env):
|
||||
|
@ -104,9 +124,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} :
|
|||
# Exit Sway and verify process exit status 0:
|
||||
machine.succeed("su - alice -c 'swaymsg exit || true'")
|
||||
machine.wait_until_fails("pgrep -x sway")
|
||||
|
||||
# TODO: Sway currently segfaults after "swaymsg exit" but only in this VM test:
|
||||
# machine # [ 104.090032] sway[921]: segfault at 3f800008 ip 00007f7dbdc25f10 sp 00007ffe282182f8 error 4 in libwayland-server.so.0.1.0[7f7dbdc1f000+8000]
|
||||
# machine.wait_for_file("/tmp/sway-exit-ok")
|
||||
machine.wait_for_file("/tmp/sway-exit-ok")
|
||||
'';
|
||||
})
|
||||
|
|
2
third_party/nixpkgs/nixos/tests/wine.nix
vendored
2
third_party/nixpkgs/nixos/tests/wine.nix
vendored
|
@ -35,7 +35,7 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
variants = [ "base" "full" "minimal" "staging" "unstable" ];
|
||||
variants = [ "base" "full" "minimal" "staging" "unstable" "wayland" ];
|
||||
|
||||
in listToAttrs (map (makeWineTest "winePackages" [ hello32 ]) variants
|
||||
++ map (makeWineTest "wineWowPackages" [ hello32 hello64 ]) variants)
|
||||
|
|
|
@ -15,17 +15,14 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
|||
services.httpd.adminAddr = "webmaster@site.local";
|
||||
services.httpd.logPerVirtualHost = true;
|
||||
|
||||
services.wordpress = {
|
||||
# Test support for old interface
|
||||
services.wordpress.sites = {
|
||||
"site1.local" = {
|
||||
database.tablePrefix = "site1_";
|
||||
};
|
||||
sites = {
|
||||
"site2.local" = {
|
||||
database.tablePrefix = "site2_";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
|
||||
|
|
62
third_party/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix
vendored
Normal file
62
third_party/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix
vendored
Normal file
|
@ -0,0 +1,62 @@
|
|||
{ python3Packages
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, perlPackages
|
||||
, gettext
|
||||
, gtk3
|
||||
, gobject-introspection
|
||||
, intltool, wrapGAppsHook, glib
|
||||
, librsvg
|
||||
, libayatana-appindicator-gtk3
|
||||
, libpulseaudio
|
||||
, keybinder3
|
||||
, gdk-pixbuf
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "indicator-sound-switcher";
|
||||
version = "2.3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yktoo";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "APU8Y0xUhRd9RbMSG9TD0TBvFLu/VlLGauf56z8gZDw=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace lib/indicator_sound_switcher/lib_pulseaudio.py \
|
||||
--replace "CDLL('libpulse.so.0')" "CDLL('${libpulseaudio}/lib/libpulse.so')"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
intltool
|
||||
wrapGAppsHook
|
||||
glib
|
||||
gdk-pixbuf
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
librsvg
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python3Packages.setuptools
|
||||
python3Packages.pygobject3
|
||||
gtk3
|
||||
gobject-introspection
|
||||
librsvg
|
||||
libayatana-appindicator-gtk3
|
||||
libpulseaudio
|
||||
keybinder3
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Sound input/output selector indicator for Linux";
|
||||
homepage = "https://yktoo.com/en/software/sound-switcher-indicator/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ alexnortung ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
|
@ -1,22 +1,26 @@
|
|||
{ stdenv, lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl, libiconv
|
||||
, withALSA ? true, alsa-lib ? null
|
||||
, withPulseAudio ? false, libpulseaudio ? null
|
||||
, withPortAudio ? false, portaudio ? null
|
||||
, withMPRIS ? false, dbus ? null
|
||||
, withALSA ? true, alsa-lib
|
||||
, withPulseAudio ? false, libpulseaudio
|
||||
, withPortAudio ? false, portaudio
|
||||
, withMPRIS ? false, dbus
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ncspot";
|
||||
version = "0.9.3";
|
||||
version = "0.9.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrkfdn";
|
||||
repo = "ncspot";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-k4EGyQjjJCvUhp56OjYl63n+giI05GiIS2++I1SVhCg=";
|
||||
sha256 = "sha256-HnP0dXKkMssDAhrsA99bTCVGdov9t5+1y8fJ+BWTM80=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-YsjInqmkPnAwqgRBDiwcLH0DDqCF0NElrn+WO2v+ATM=";
|
||||
# Upstream now only supports rust 1.58+, but this version is not yet available in nixpkgs.
|
||||
# See https://github.com/hrkfdn/ncspot/issues/714
|
||||
patches = [ ./rust_1_57_support.patch ];
|
||||
|
||||
cargoSha256 = "sha256-g6UMwirsSV+/NtFIfEZrz5h/OitPQcDeSawh7wq4TLI=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
21
third_party/nixpkgs/pkgs/applications/audio/ncspot/rust_1_57_support.patch
vendored
Normal file
21
third_party/nixpkgs/pkgs/applications/audio/ncspot/rust_1_57_support.patch
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
diff --git a/src/ui/listview.rs b/src/ui/listview.rs
|
||||
index 17fead7..e6c72b6 100644
|
||||
--- a/src/ui/listview.rs
|
||||
+++ b/src/ui/listview.rs
|
||||
@@ -85,7 +85,7 @@ impl<I: ListItem> ListView<I> {
|
||||
|
||||
pub fn content_height_with_paginator(&self) -> usize {
|
||||
let content_len = self.content.read().unwrap().len();
|
||||
- log::info!("content len: {content_len}");
|
||||
+ log::info!("content len: {}", content_len);
|
||||
|
||||
// add 1 more row for paginator if we can paginate
|
||||
if self.can_paginate() {
|
||||
@@ -97,7 +97,7 @@ impl<I: ListItem> ListView<I> {
|
||||
|
||||
fn can_paginate(&self) -> bool {
|
||||
let loaded = self.get_pagination().loaded_content();
|
||||
- log::info!("can paginate: {loaded}");
|
||||
+ log::info!("can paginate: {}", loaded);
|
||||
self.get_pagination().max_content().unwrap_or(0) > self.get_pagination().loaded_content()
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit }:
|
||||
{ lib, stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit, nixosTests }:
|
||||
|
||||
let
|
||||
# A list of binaries to put into separate outputs
|
||||
|
@ -50,6 +50,8 @@ in buildGoModule rec {
|
|||
propagatedBuildInputs =
|
||||
lib.optionals stdenv.isDarwin [ libobjc IOKit ];
|
||||
|
||||
passthru.tests = { inherit (nixosTests) geth; };
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://geth.ethereum.org/";
|
||||
description = "Official golang implementation of the Ethereum protocol";
|
||||
|
|
93
third_party/nixpkgs/pkgs/applications/blockchains/groestlcoin/default.nix
vendored
Normal file
93
third_party/nixpkgs/pkgs/applications/blockchains/groestlcoin/default.nix
vendored
Normal file
|
@ -0,0 +1,93 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, util-linux
|
||||
, hexdump
|
||||
, autoSignDarwinBinariesHook
|
||||
, wrapQtAppsHook ? null
|
||||
, boost
|
||||
, libevent
|
||||
, miniupnpc_2
|
||||
, zeromq
|
||||
, zlib
|
||||
, db53
|
||||
, sqlite
|
||||
, qrencode
|
||||
, qtbase ? null
|
||||
, qttools ? null
|
||||
, python3
|
||||
, withGui ? false
|
||||
, withWallet ? true
|
||||
}:
|
||||
|
||||
let
|
||||
version = "22.0";
|
||||
desktop = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/Groestlcoin/packaging/${version}/debian/groestlcoin-qt.desktop";
|
||||
sha256 = "0mxwq4jvcip44a796iwz7n1ljkhl3a4p47z7qlsxcfxw3zmm0k0k";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = if withGui then "groestlcoin" else "groestlcoind";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Groestlcoin";
|
||||
repo = "groestlcoin";
|
||||
rev = "v${version}";
|
||||
sha256 = "104zzcigpk976iqyinjn6mw3l36zb1if7249iz44ds1zaxv3g1v1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ]
|
||||
++ lib.optionals stdenv.isLinux [ util-linux ]
|
||||
++ lib.optionals stdenv.isDarwin [ hexdump ]
|
||||
++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ]
|
||||
++ lib.optionals withGui [ wrapQtAppsHook ];
|
||||
|
||||
buildInputs = [ boost libevent miniupnpc_2 zeromq zlib ]
|
||||
++ lib.optionals withWallet [ db53 sqlite ]
|
||||
++ lib.optionals withGui [ qrencode qtbase qttools ];
|
||||
|
||||
postInstall = lib.optionalString withGui ''
|
||||
install -Dm644 ${desktop} $out/share/applications/groestlcoin-qt.desktop
|
||||
substituteInPlace $out/share/applications/groestlcoin-qt.desktop --replace "Icon=groestlcoin128" "Icon=groestlcoin"
|
||||
install -Dm644 share/pixmaps/groestlcoin256.png $out/share/pixmaps/groestlcoin.png
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost-libdir=${boost.out}/lib"
|
||||
"--disable-bench"
|
||||
] ++ lib.optionals (!withWallet) [
|
||||
"--disable-wallet"
|
||||
] ++ lib.optionals withGui [
|
||||
"--with-gui=qt5"
|
||||
"--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
|
||||
];
|
||||
|
||||
checkInputs = [ python3 ];
|
||||
|
||||
checkFlags = [ "LC_ALL=en_US.UTF-8" ]
|
||||
# QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Groestlcoin's GUI.
|
||||
# See also https://github.com/NixOS/nixpkgs/issues/24256
|
||||
++ lib.optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Peer-to-peer electronic cash system";
|
||||
longDescription = ''
|
||||
Groestlcoin is a free open source peer-to-peer electronic cash system that is
|
||||
completely decentralized, without the need for a central server or trusted
|
||||
parties. Users hold the crypto keys to their own money and transact directly
|
||||
with each other, with the help of a P2P network to check for double-spending.
|
||||
'';
|
||||
homepage = "https://groestlcoin.org/";
|
||||
downloadPage = "https://github.com/Groestlcoin/groestlcoin/releases/tag/v{version}/";
|
||||
maintainers = with maintainers; [ gruve-p ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
61
third_party/nixpkgs/pkgs/applications/blockchains/snarkos/default.nix
vendored
Normal file
61
third_party/nixpkgs/pkgs/applications/blockchains/snarkos/default.nix
vendored
Normal file
|
@ -0,0 +1,61 @@
|
|||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, rustPlatform
|
||||
, Security
|
||||
, curl
|
||||
, pkg-config
|
||||
, openssl
|
||||
, llvmPackages
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "snarkos";
|
||||
version = "unstable-2021-01-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AleoHQ";
|
||||
repo = "snarkOS";
|
||||
rev = "7068dc0394139c887f5187288ca2af54bc729614";
|
||||
sha256 = "sha256-fgdIJX/Ep3amPAjo00BtNGSXhaItw41S1XliDXk6b7k=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-bax7cnqVY49rdcWs73+KqW+dzPebKLlsbPvOM1d25zA=";
|
||||
|
||||
# buildAndTestSubdir = "cli";
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config llvmPackages.clang ];
|
||||
|
||||
# Needed to get openssl-sys to use pkg-config.
|
||||
OPENSSL_NO_VENDOR = 1;
|
||||
OPENSSL_LIB_DIR = "${openssl.out}/lib";
|
||||
OPENSSL_DIR="${lib.getDev openssl}";
|
||||
|
||||
LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib";
|
||||
|
||||
# TODO check why rust compilation fails by including the rocksdb from nixpkgs
|
||||
# Used by build.rs in the rocksdb-sys crate. If we don't set these, it would
|
||||
# try to build RocksDB from source.
|
||||
# ROCKSDB_INCLUDE_DIR="${rocksdb}/include";
|
||||
# ROCKSDB_LIB_DIR="${rocksdb}/lib";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Security curl ];
|
||||
|
||||
# some tests are flaky and some need network access
|
||||
# TODO finish filtering the tests to enable them
|
||||
doCheck = !stdenv.isLinux;
|
||||
# checkFlags = [
|
||||
# # tries to make a network access
|
||||
# "--skip=rpc::rpc::tests::test_send_transaction_large"
|
||||
# # flaky test
|
||||
# "--skip=helpers::block_requests::tests::test_block_requests_case_2ca"
|
||||
# ];
|
||||
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Decentralized Operating System for Zero-Knowledge Applications";
|
||||
homepage = "https://snarkos.org";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ happysalada ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -10,7 +10,7 @@
|
|||
, Xaw3d, libXcursor, pkg-config, gettext, libXft, dbus, libpng, libjpeg, giflib
|
||||
, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
|
||||
, alsa-lib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
|
||||
, sigtool, jansson, harfbuzz, sqlite
|
||||
, sigtool, jansson, harfbuzz, sqlite, nixosTests
|
||||
, dontRecurseIntoAttrs ,emacsPackagesFor
|
||||
, libgccjit, targetPlatform, makeWrapper # native-comp params
|
||||
, systemd ? null
|
||||
|
@ -208,6 +208,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
|
|||
passthru = {
|
||||
inherit nativeComp;
|
||||
pkgs = dontRecurseIntoAttrs (emacsPackagesFor emacs);
|
||||
tests = { inherit (nixosTests) emacs-daemon; };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -113,6 +113,9 @@ in
|
|||
substituteInPlace src/nvim/CMakeLists.txt --replace " util" ""
|
||||
'';
|
||||
|
||||
# For treesitter plugins, libstdc++.so.6 will be needed
|
||||
NIX_LDFLAGS = [ "-lstdc++"];
|
||||
|
||||
# export PATH=$PWD/build/bin:${PATH}
|
||||
shellHook=''
|
||||
export VIMRUNTIME=$PWD/runtime
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, which
|
||||
, capstone
|
||||
, jansson
|
||||
, libunistring
|
||||
, lua5_3
|
||||
, wxGTK31
|
||||
, Carbon
|
||||
|
@ -15,30 +17,33 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rehex";
|
||||
version = "0.3.92";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solemnwarning";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-yZvJlomUpJwDJOBVSl49lU+JE1YMMs/BSzHepXoFlIY=";
|
||||
hash = "sha256-NuWWaYABQDaS9wkwmXkBJWHzLFJbUUCiePNQNo4yZrk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile.osx --replace 'iconutil -c icns -o $@ $(ICONSET)' \
|
||||
'png2icns $@ $(ICONSET)/icon_16x16.png $(ICONSET)/icon_32x32.png $(ICONSET)/icon_128x128.png $(ICONSET)/icon_256x256.png $(ICONSET)/icon_512x512.png'
|
||||
# See https://github.com/solemnwarning/rehex/pull/148
|
||||
substituteInPlace Makefile.osx \
|
||||
--replace '$(filter-out %@2x.png,$(wildcard $(ICONSET)/*.png))' 'res/icon{16,32,128,256,512}.png'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkg-config ]
|
||||
nativeBuildInputs = [ pkg-config which ]
|
||||
++ lib.optionals stdenv.isDarwin [ libicns ];
|
||||
|
||||
buildInputs = [ capstone jansson lua5_3 ]
|
||||
buildInputs = [ capstone jansson libunistring lua5_3 ]
|
||||
++ lib.optionals (!stdenv.isDarwin) [ wxGTK31 ]
|
||||
++ lib.optionals stdenv.isDarwin [ Carbon Cocoa IOKit wxmac ];
|
||||
|
||||
makeFlags = [ "prefix=$(out)" ]
|
||||
makeFlags = [ "prefix=${placeholder "out"}" ]
|
||||
++ lib.optionals stdenv.isDarwin [ "-f Makefile.osx" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Reverse Engineers' Hex Editor";
|
||||
longDescription = ''
|
||||
|
@ -46,7 +51,8 @@ stdenv.mkDerivation rec {
|
|||
engineering, and everything else.
|
||||
'';
|
||||
homepage = "https://github.com/solemnwarning/rehex";
|
||||
license = licenses.gpl2;
|
||||
changelog = "https://github.com/solemnwarning/rehex/raw/${version}/CHANGES.txt";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ markus1189 SuperSandro2000 ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
, server ? false # build server version
|
||||
, sqlite
|
||||
, pam
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -209,7 +210,10 @@ in
|
|||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
passthru = { inherit server; };
|
||||
passthru = {
|
||||
inherit server;
|
||||
tests = { inherit (nixosTests) rstudio-server; };
|
||||
};
|
||||
} // lib.optionalAttrs (!server) {
|
||||
qtWrapperArgs = [
|
||||
"--suffix PATH : ${lib.makeBinPath [ gnumake ]}"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, libtool
|
||||
{ lib, stdenv, fetchFromGitHub, pkg-config, libtool
|
||||
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
|
||||
, lcms2, openexr, libjxl, libpng, liblqr1, libraw, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif
|
||||
, ApplicationServices
|
||||
|
@ -18,11 +18,13 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "imagemagick";
|
||||
version = "7.1.0-19";
|
||||
version = "7.1.0-20";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.imagemagick.org/ImageMagick/download/releases/ImageMagick-${version}.tar.xz";
|
||||
hash = "sha256-P9eRdKsPMLwWQ68+ZU8dL/zDqVVCY5gRVWiLT0n3/Xc=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ImageMagick";
|
||||
repo = "ImageMagick";
|
||||
rev = version;
|
||||
sha256 = "0r8zmk2cfmf09l94hqzfz4aspnzn178ggdbgm7w4hr0p864cbvc3";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, lib, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb1, avahi-compat, glib, libredirect }:
|
||||
{ stdenv, lib, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb1, avahi-compat, glib, libredirect, nixosTests }:
|
||||
let
|
||||
myPatchElf = file: with lib; ''
|
||||
patchelf --set-interpreter \
|
||||
|
@ -88,6 +88,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
dontPatchELF = true;
|
||||
|
||||
passthru.tests = { inherit (nixosTests) brscan5; };
|
||||
|
||||
meta = {
|
||||
description = "Brother brscan5 sane backend driver";
|
||||
homepage = "https://www.brother.com";
|
||||
|
|
|
@ -1,21 +1,17 @@
|
|||
{ lib, stdenv, autoreconfHook, fetchurl, dbus-glib, gtk2, pkg-config, wordnet }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "artha";
|
||||
version = "1.0.3";
|
||||
version = "1.0.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/artha/1.0.3/artha-1.0.3.tar.bz2";
|
||||
sha256 = "0qr4ihl7ma3cq82xi1fpzvf74mm9vsg0j035xvmcp3r6rmw2fycx";
|
||||
url = "mirror://sourceforge/artha/${version}/artha-${version}.tar.bz2";
|
||||
sha256 = "034r7vfk5y7705k068cdlq52ikp6ip10w6047a5zjdakbn55c3as";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ dbus-glib gtk2 wordnet ];
|
||||
|
||||
patches = [
|
||||
./gio-underlink.patch
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An offline thesaurus based on WordNet";
|
||||
homepage = "http://artha.sourceforge.net";
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 0236d72..bcc1182 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -38,7 +38,7 @@ artha_LDADD = libwni.a $(WORDNET_LIB)
|
||||
|
||||
if POSIX
|
||||
AM_CFLAGS += @libdbus_CFLAGS@
|
||||
-artha_LDADD += -lX11 -ldbus-1 -ldbus-glib-1 -lgtk-x11-2.0 \
|
||||
+artha_LDADD += -lX11 -ldbus-1 -ldbus-glib-1 -lgio-2.0 -lgtk-x11-2.0 \
|
||||
-lgdk-x11-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0
|
||||
else
|
||||
artha_LDADD += @GTK_LIBS@
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "AusweisApp2";
|
||||
version = "1.22.2";
|
||||
version = "1.22.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Governikus";
|
||||
repo = "AusweisApp2";
|
||||
rev = version;
|
||||
sha256 = "sha256-Oci1y6//45Gep4IS6Ym+v9MPCP5mOswAiWPkXqd+zR0=";
|
||||
sha256 = "sha256-Zh1rWMdRXPj/+80Sqvp9cbV5sDrNVBebPRGTTWM1DLk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "binance";
|
||||
version = "1.29.0";
|
||||
version = "1.30.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/binance/desktop/releases/download/v${version}/${pname}-${version}-amd64-linux.deb";
|
||||
sha256 = "sha256-LQX5RUTVm6lBdRzCFMBq1NLGGiLBVyykJ1LY9FqINnY=";
|
||||
sha256 = "sha256-Su8pVf5GSBK770D778MmrgYr0ov/JBTNcnL8EZzoG3U=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, python3, fetchFromGitHub }:
|
||||
{ lib, python3, fetchFromGitHub, withServer ? false }:
|
||||
|
||||
let
|
||||
python3' = python3.override {
|
||||
|
@ -19,6 +19,21 @@ let
|
|||
});
|
||||
};
|
||||
};
|
||||
serverRequire = with python3'.pkgs; [
|
||||
requests
|
||||
flask
|
||||
flask-admin
|
||||
flask-api
|
||||
flask-bootstrap
|
||||
flask-paginate
|
||||
flask-reverse-proxy-fix
|
||||
flask_wtf
|
||||
arrow
|
||||
werkzeug
|
||||
click
|
||||
vcrpy
|
||||
toml
|
||||
];
|
||||
in
|
||||
with python3'.pkgs; buildPythonApplication rec {
|
||||
version = "4.6";
|
||||
|
@ -32,40 +47,29 @@ with python3'.pkgs; buildPythonApplication rec {
|
|||
};
|
||||
|
||||
checkInputs = [
|
||||
pytest-cov
|
||||
hypothesis
|
||||
pytest
|
||||
pytest-vcr
|
||||
pylint
|
||||
flake8
|
||||
pyyaml
|
||||
mypy-extensions
|
||||
click
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cryptography
|
||||
beautifulsoup4
|
||||
requests
|
||||
certifi
|
||||
urllib3
|
||||
flask
|
||||
flask-admin
|
||||
flask-api
|
||||
flask-bootstrap
|
||||
flask-paginate
|
||||
flask-reverse-proxy-fix
|
||||
flask_wtf
|
||||
arrow
|
||||
werkzeug
|
||||
click
|
||||
html5lib
|
||||
vcrpy
|
||||
toml
|
||||
];
|
||||
] ++ lib.optionals withServer serverRequire;
|
||||
|
||||
postPatch = ''
|
||||
# Jailbreak problematic dependencies
|
||||
sed -i \
|
||||
-e "s,'PyYAML.*','PyYAML',g" \
|
||||
-e "/'pytest-cov/d" \
|
||||
-e "/'pylint/d" \
|
||||
-e "/'flake8/d" \
|
||||
setup.py
|
||||
'';
|
||||
|
||||
|
@ -80,6 +84,8 @@ with python3'.pkgs; buildPythonApplication rec {
|
|||
--replace "self.assertEqual(url, \"https://www.google.com\")" ""
|
||||
substituteInPlace setup.py \
|
||||
--replace mypy-extensions==0.4.1 mypy-extensions>=0.4.1
|
||||
'' + lib.optionalString (!withServer) ''
|
||||
rm tests/test_{server,views}.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
@ -89,6 +95,8 @@ with python3'.pkgs; buildPythonApplication rec {
|
|||
cp auto-completion/zsh/* $out/share/zsh/site-functions
|
||||
cp auto-completion/bash/* $out/share/bash-completion/completions
|
||||
cp auto-completion/fish/* $out/share/fish/vendor_completions.d
|
||||
'' + lib.optionalString (!withServer) ''
|
||||
rm $out/bin/bukuserver
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -99,4 +107,3 @@ with python3'.pkgs; buildPythonApplication rec {
|
|||
maintainers = with maintainers; [ matthiasbeyer infinisil ma27 ];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clifm";
|
||||
version = "1.3";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leo-arch";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-nYBGM3gUj1NGrxNLt0xpNl00cgS2Ecs3kYjZapiJT48=";
|
||||
sha256 = "sha256-62WxvJsXkzvDqFGFpid9VDB1mARgllkKnb6mFC5pdl8=";
|
||||
};
|
||||
|
||||
buildInputs = [ libcap acl file readline ];
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clight";
|
||||
version = "4.7";
|
||||
version = "4.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FedeDP";
|
||||
repo = "Clight";
|
||||
rev = version;
|
||||
sha256 = "sha256-+u50XorUyeDsn4FaKdD0wEtQHkwtiyVDY0IAi0vehEQ=";
|
||||
sha256 = "sha256-nDI5Rq1iPVkj25HRpxmS9zxNDUy+9YsSwbZnEwYt86E=";
|
||||
};
|
||||
|
||||
# dbus-1.pc has datadir=/etc
|
||||
|
|
|
@ -1,32 +1,41 @@
|
|||
{ lib
|
||||
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, sqlite
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "expenses";
|
||||
version = "0.2.2";
|
||||
version = "0.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "manojkarthick";
|
||||
repo = "expenses";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-CaIbLtP7ziv9UBQE+QsNnqX65OV+6GIvkLwKm1G++iY=";
|
||||
sha256 = "sha256-sqsogF2swMvYZL7Kj+ealrB1AAgIe7ZXXDLRdHL6Q+0=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-NWTFxF4QCH1q1xx+hmVmpvDeOlqH5Ai2+0ParE5px9M=";
|
||||
vendorSha256 = "sha256-Ac3f17Ws3Ne8Zo0vT+qlaMm/rhak9ua2jh5jlT6jF2Y=";
|
||||
|
||||
# package does not contain any tests as of v0.2.2
|
||||
# package does not contain any tests as of v0.2.3
|
||||
doCheck = false;
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
buildInputs = [ sqlite ];
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X github.com/manojkarthick/expenses/cmd.Version=${version}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd expenses \
|
||||
--bash <($out/bin/expenses completion bash) \
|
||||
--zsh <($out/bin/expenses completion zsh) \
|
||||
--fish <($out/bin/expenses completion fish)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "An interactive command line expense logger";
|
||||
license = licenses.mit;
|
||||
|
|
34
third_party/nixpkgs/pkgs/applications/misc/firefly-desktop/default.nix
vendored
Normal file
34
third_party/nixpkgs/pkgs/applications/misc/firefly-desktop/default.nix
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ lib, fetchurl, appimageTools }:
|
||||
|
||||
let
|
||||
pname = "firefly-desktop";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/iotaledger/firefly/releases/download/desktop-${version}/${pname}-${version}.AppImage";
|
||||
sha256 = "f3162efcf0407614fd1351af50e95ef180400b747a5cc6b82bc840828a15548d";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
|
||||
in appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
|
||||
extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ];
|
||||
|
||||
extraInstallCommands = ''
|
||||
mkdir -p $out/share/applications $out/share/pixmaps
|
||||
mv $out/bin/${pname}-${version} $out/bin/firefly-desktop
|
||||
cp ${appimageContents}/desktop.desktop $out/share/applications/firefly-desktop.desktop
|
||||
substituteInPlace $out/share/applications/firefly-desktop.desktop \
|
||||
--replace 'Exec=AppRun' 'Exec=firefly-desktop' \
|
||||
--replace 'Icon=desktop' 'Icon=firefly-desktop'
|
||||
cp ${appimageContents}/desktop.png $out/share/pixmaps/firefly-desktop.png
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "IOTA's New Wallet";
|
||||
homepage = "https://firefly.iota.org";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ wolfangaukang ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "heimer";
|
||||
version = "3.1.0";
|
||||
version = "3.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "juzzlin";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-F0Pl6Wk+sGfOegy7iljQH63kAMYlRYv7G9nBAAtDEkg=";
|
||||
sha256 = "sha256-aAFhShsC3FLGgtF/8XJbWIMBEO3/gcGeDZei69Luz+s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "koreader";
|
||||
version = "2021.12.1";
|
||||
version = "2022.01";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
"https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
|
||||
sha256 = "sha256-Ia0oCSGs6UYcvZVEhNpiOh3D08FgXqjqpgsQJojd3dk=";
|
||||
sha256 = "sha256-XuIYNvGhzJ649LxVPit2AOmb+YOHtZA4AhDyxjaB5OE=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
|
98
third_party/nixpkgs/pkgs/applications/misc/pdfstudio/common.nix
vendored
Normal file
98
third_party/nixpkgs/pkgs/applications/misc/pdfstudio/common.nix
vendored
Normal file
|
@ -0,0 +1,98 @@
|
|||
{ pname
|
||||
, src
|
||||
, year
|
||||
, version
|
||||
, desktopName
|
||||
, longDescription
|
||||
, buildFHSUserEnv
|
||||
, extraBuildInputs ? []
|
||||
, stdenv
|
||||
, lib
|
||||
, dpkg
|
||||
, makeDesktopItem
|
||||
, copyDesktopItems
|
||||
, autoPatchelfHook
|
||||
, sane-backends
|
||||
, cups
|
||||
, jdk11
|
||||
}:
|
||||
let
|
||||
thisPackage = stdenv.mkDerivation rec {
|
||||
inherit pname src version;
|
||||
strictDeps = true;
|
||||
|
||||
buildInputs = [
|
||||
sane-backends #for libsane.so.1
|
||||
jdk11
|
||||
] ++ extraBuildInputs;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
dpkg
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "${pname}${year}";
|
||||
desktopName = desktopName;
|
||||
genericName = "View and edit PDF files";
|
||||
exec = "${pname} %f";
|
||||
icon = "${pname}${year}";
|
||||
comment = "Views and edits PDF files";
|
||||
mimeType = "application/pdf";
|
||||
categories = "Office";
|
||||
type = "Application";
|
||||
terminal = false;
|
||||
})
|
||||
];
|
||||
|
||||
unpackCmd = "dpkg-deb -x $src ./${pname}-${version}";
|
||||
dontBuild = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace opt/${pname}${year}/${pname}${year} --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
|
||||
substituteInPlace opt/${pname}${year}/updater --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,share/pixmaps}
|
||||
rm -rf opt/${pname}${year}/jre
|
||||
cp -r opt/${pname}${year} $out/share/
|
||||
ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/
|
||||
ln -s $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
# Package with cups in FHS sandbox, because JAVA bin expects "/usr/bin/lpr" for printing.
|
||||
buildFHSUserEnv {
|
||||
name = pname;
|
||||
targetPkgs = pkgs: [
|
||||
cups
|
||||
thisPackage
|
||||
];
|
||||
runScript = pname;
|
||||
|
||||
# link desktop item and icon into FHS user environment
|
||||
extraInstallCommands = ''
|
||||
mkdir -p "$out/share/applications"
|
||||
mkdir -p "$out/share/pixmaps"
|
||||
ln -s ${thisPackage}/share/applications/*.desktop "$out/share/applications/"
|
||||
ln -s ${thisPackage}/share/pixmaps/*.png "$out/share/pixmaps/"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.qoppa.com/${pname}/";
|
||||
description = "An easy to use, full-featured PDF editing software";
|
||||
longDescription = longDescription;
|
||||
license = licenses.unfree;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = pname;
|
||||
maintainers = [ maintainers.pwoelfel ];
|
||||
};
|
||||
}
|
|
@ -1,87 +1,42 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
{ program ? "pdfstudioviewer"
|
||||
, fetchurl
|
||||
, libgccjit
|
||||
, dpkg
|
||||
, makeDesktopItem
|
||||
, copyDesktopItems
|
||||
, autoPatchelfHook
|
||||
, sane-backends
|
||||
, jdk11
|
||||
, callPackage
|
||||
}:
|
||||
|
||||
# See also package 'pdfstudioviewer'
|
||||
# Differences are ${pname}, Download directory name (PDFStudio / PDFStudioViewer),
|
||||
# sha256, and libgccjit (not needed for PDFStudioViewer)
|
||||
let year = "2021";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pdfstudio";
|
||||
{
|
||||
pdfstudio = callPackage ./common.nix rec {
|
||||
pname = program;
|
||||
year = "2021";
|
||||
version = "${year}.1.2";
|
||||
strictDeps = true;
|
||||
|
||||
desktopName = "PDF Studio";
|
||||
longDescription = ''
|
||||
PDF Studio is an easy to use, full-featured PDF editing software. This is the standard/pro edition, which requires a license. For the free PDF Studio Viewer see the package pdfstudioviewer.
|
||||
'';
|
||||
extraBuildInputs = [
|
||||
libgccjit #for libstdc++.so.6 and libgomp.so.1
|
||||
];
|
||||
src = fetchurl {
|
||||
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${
|
||||
builtins.replaceStrings [ "." ] [ "_" ] version
|
||||
}_linux64.deb";
|
||||
sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
libgccjit #for libstdc++.so.6 and libgomp.so.1
|
||||
sane-backends #for libsane.so.1
|
||||
jdk11
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
dpkg
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "${pname}${year}";
|
||||
desktopName = "PDF Studio";
|
||||
genericName = "View and edit PDF files";
|
||||
exec = "${pname} %f";
|
||||
icon = "${pname}${year}";
|
||||
comment = "Views and edits PDF files";
|
||||
mimeType = "application/pdf";
|
||||
categories = "Office";
|
||||
type = "Application";
|
||||
terminal = false;
|
||||
})
|
||||
];
|
||||
|
||||
unpackPhase = "dpkg-deb -x $src .";
|
||||
dontBuild = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace opt/${pname}${year}/${pname}${year} --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
|
||||
substituteInPlace opt/${pname}${year}/updater --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share
|
||||
mkdir -p $out/share/pixmaps
|
||||
cp -r opt/${pname}${year} $out/share/
|
||||
rm -rf $out/share/${pname}${year}/jre
|
||||
ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/
|
||||
ln -s $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.qoppa.com/pdfstudio/";
|
||||
description = "An easy to use, full-featured PDF editing software";
|
||||
license = licenses.unfree;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = pname;
|
||||
maintainers = [ maintainers.pwoelfel ];
|
||||
};
|
||||
}
|
||||
|
||||
pdfstudioviewer = callPackage ./common.nix rec {
|
||||
pname = program;
|
||||
year = "2021";
|
||||
version = "${year}.1.2";
|
||||
desktopName = "PDF Studio Viewer";
|
||||
longDescription = ''
|
||||
PDF Studio Viewer is an easy to use, full-featured PDF editing software. This is the free edition. For the standard/pro edition, see the package pdfstudio.
|
||||
'';
|
||||
src = fetchurl {
|
||||
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudioViewer_v${
|
||||
builtins.replaceStrings [ "." ] [ "_" ] version
|
||||
}_linux64.deb";
|
||||
sha256 = "128k3fm8m8zdykx4s30g5m2zl7cgmvs4qinf1w525zh84v56agz6";
|
||||
};
|
||||
};
|
||||
}.${program}
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, dpkg
|
||||
, makeDesktopItem
|
||||
, copyDesktopItems
|
||||
, autoPatchelfHook
|
||||
, sane-backends
|
||||
, jdk11
|
||||
}:
|
||||
|
||||
let year = "2021";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "pdfstudioviewer";
|
||||
version = "${year}.1.2";
|
||||
autoPatchelfIgnoreMissingDeps = false;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudioViewer_v${
|
||||
builtins.replaceStrings [ "." ] [ "_" ] version
|
||||
}_linux64.deb";
|
||||
sha256 = "128k3fm8m8zdykx4s30g5m2zl7cgmvs4qinf1w525zh84v56agz6";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
sane-backends
|
||||
jdk11
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
dpkg
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "${pname}${year}";
|
||||
desktopName = "PDF Studio";
|
||||
genericName = "View and edit PDF files";
|
||||
exec = "${pname} %f";
|
||||
icon = "${pname}${year}";
|
||||
comment = "Views and edits PDF files";
|
||||
mimeType = "application/pdf";
|
||||
categories = "Office";
|
||||
type = "Application";
|
||||
terminal = false;
|
||||
})
|
||||
];
|
||||
|
||||
unpackPhase = "dpkg-deb -x $src .";
|
||||
dontBuild = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace opt/${pname}${year}/${pname}${year} --replace "# INSTALL4J_JAVA_HOME_OVERRIDE=" "INSTALL4J_JAVA_HOME_OVERRIDE=${jdk11.out}"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share
|
||||
mkdir -p $out/share/pixmaps
|
||||
cp -r opt/${pname}${year} $out/share/
|
||||
rm -rf $out/share/${pname}${year}/jre
|
||||
ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png $out/share/pixmaps/
|
||||
ln -s $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.qoppa.com/pdfstudio/";
|
||||
description = "An easy to use, full-featured PDF editing software";
|
||||
license = licenses.unfree;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = pname;
|
||||
maintainers = [ maintainers.pwoelfel ];
|
||||
};
|
||||
}
|
|
@ -18,13 +18,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "qcad";
|
||||
version = "3.27.1.0";
|
||||
version = "3.27.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qcad";
|
||||
repo = "qcad";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-tydgSfS1MF322sgWULMEZ8P6YIaN1QoeJiia0wbsgjo=";
|
||||
sha256 = "sha256-DHDfDwGrYMRd5gxFaPL06B/wssQho9420MxUg8fI2r0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
51
third_party/nixpkgs/pkgs/applications/misc/rivercarro/default.nix
vendored
Normal file
51
third_party/nixpkgs/pkgs/applications/misc/rivercarro/default.nix
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromSourcehut
|
||||
, zig
|
||||
, river
|
||||
, wayland
|
||||
, pkg-config
|
||||
, scdoc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rivercarro";
|
||||
version = "0.1.1";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~novakane";
|
||||
repo = pname;
|
||||
fetchSubmodules = true;
|
||||
rev = "v${version}";
|
||||
sha256 = "0h1wvl6rlrpr67zl51x71hy7nwkfd5kfv5p2mql6w5fybxxyqnpm";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
river
|
||||
scdoc
|
||||
wayland
|
||||
zig
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
preBuild = ''
|
||||
export HOME=$TMPDIR
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
zig build -Drelease-safe -Dcpu=baseline -Dman-pages --prefix $out install
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://git.sr.ht/~novakane/rivercarro";
|
||||
description = "A layout generator for river Wayland compositor, fork of rivertile";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ kraem ];
|
||||
};
|
||||
}
|
||||
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rofi-file-browser-extended";
|
||||
version = "1.2.0";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "marvinkreis";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1grcal8ga4gpaj3p1dvx4zmqai93jjz2izpj91lxwj0dbz1gmbdm";
|
||||
sha256 = "sha256-TNAAImQaIJRgvD8kFf2oHNj4bQiq1NhD8KkCgW5dSK8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -4,13 +4,13 @@ with python3Packages;
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "topydo";
|
||||
version = "0.13";
|
||||
version = "0.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bram85";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0b3dz137lpbvpjvfy42ibqvj3yk526x4bpn819fd11lagn77w69r";
|
||||
sha256 = "1lpfdai0pf90ffrzgmmkadbd86rb7250i3mglpkc82aj6prjm6yb";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ttyper";
|
||||
version = "0.4.0";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "max-niederman";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-UptjgFGp4QNG8eLuqBzg/Kd5p5Rms3yT172hbf/2hi4=";
|
||||
sha256 = "sha256-e001uftwIwnCpjf4OH89QWaYyT99aMZhCPqDxyAsHyU=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-N10X5eJlpDKmCEffEXpkAejS32Lz183Lup0mmLMwOSU=";
|
||||
cargoSha256 = "sha256-RvqktyPZtdKC8RVtLWpT1YYsdgyfHaL7W3+vO8RgG/8=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Terminal-based typing test";
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
|
||||
let
|
||||
pname = "zettlr";
|
||||
version = "2.0.2";
|
||||
version = "2.1.2";
|
||||
name = "${pname}-${version}";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
|
||||
sha256 = "sha256-AUGfD7FFB5+pfKyIqvychD4mvFU+GTRneQTRI+8bwBM=";
|
||||
sha256 = "sha256-gfq5eXSoEfOb3FVAv/iDDSGeEeZxFRp4BFtwf87WQGE=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit name src;
|
||||
|
|
|
@ -15,16 +15,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "zola";
|
||||
version = "0.15.2";
|
||||
version = "0.15.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getzola";
|
||||
repo = "zola";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-X4J3T/ob0NfCFxddadBtsPsDhfvesg6/sBJybWeubMM=";
|
||||
sha256 = "sha256-LK8twqWaS+SQ3oqvMGE7oP/IJNLvQ45Pu92pkbSKzDs=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-0tynm/DTX2oiqZOdWjRBGPk8IPIN07x2+FCXQmQ4Fzo=";
|
||||
cargoSha256 = "sha256-7W0vjbAWZl/eKBZvUWWWolEOh8aQeKegt823EebcKMQ=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
|
|
@ -93,11 +93,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.34.80";
|
||||
version = "1.34.81";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "2N+dXQGVfm3GsaKKo3EBxLu+cu08OjlrqkgXX9knFys=";
|
||||
sha256 = "bMNk1l3MguQho0vck78U1e3A+/571DyoWSKKerQVE7s=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
|
|
@ -288,7 +288,7 @@ let
|
|||
google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
|
||||
|
||||
# Optional features:
|
||||
use_gio = gnomeSupport;
|
||||
use_gio = gnomeSupport || chromiumVersionAtLeast "99";
|
||||
use_gnome_keyring = gnomeKeyringSupport;
|
||||
use_cups = cupsSupport;
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ for entry in feed.entries:
|
|||
print('chromium: TODO -> ' + version + '\n')
|
||||
print(url)
|
||||
if fixes := re.search(r'This update includes .+ security fixes\.', content).group(0):
|
||||
zero_days = re.search(r'Google is aware( of reports)? that .+ in the wild\.', content)
|
||||
zero_days = re.search(r'Google is aware( of reports)? th(e|at) .+ in the wild\.', content)
|
||||
if zero_days:
|
||||
fixes += " " + zero_days.group(0)
|
||||
print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
, fetchzip
|
||||
, fetchgit
|
||||
, zstd
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
@ -289,5 +290,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
passthru.tests = { inherit (nixosTests) k3s-single-node k3s-single-node-docker; };
|
||||
|
||||
meta = baseMeta;
|
||||
}
|
||||
|
|
|
@ -1,41 +1,42 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.1.4.1)
|
||||
activesupport (7.0.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
zeitwerk (~> 2.3)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
cgi (0.3.1)
|
||||
colorize (0.8.1)
|
||||
concurrent-ruby (1.1.9)
|
||||
date (3.2.2)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
ejson (1.3.0)
|
||||
faraday (1.8.0)
|
||||
ejson (1.3.1)
|
||||
faraday (1.9.3)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0.1)
|
||||
faraday-httpclient (~> 1.0)
|
||||
faraday-multipart (~> 1.0)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.1)
|
||||
faraday-net_http_persistent (~> 1.0)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-retry (~> 1.0)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.3)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
ffi (1.15.4)
|
||||
faraday-retry (1.0.3)
|
||||
ffi (1.15.5)
|
||||
ffi-compiler (1.0.1)
|
||||
ffi (>= 1.0.0)
|
||||
rake
|
||||
|
@ -59,36 +60,34 @@ GEM
|
|||
ffi-compiler (>= 1.0, < 2.0)
|
||||
i18n (1.8.11)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jsonpath (0.9.9)
|
||||
jsonpath (1.1.0)
|
||||
multi_json
|
||||
to_regexp (~> 0.2.1)
|
||||
jwt (2.3.0)
|
||||
krane (2.3.4)
|
||||
krane (2.4.0)
|
||||
activesupport (>= 5.0)
|
||||
cgi
|
||||
colorize (~> 0.8)
|
||||
concurrent-ruby (~> 1.1)
|
||||
date
|
||||
ejson (~> 1.0)
|
||||
googleauth (~> 0.8)
|
||||
jsonpath (~> 0.9.6)
|
||||
kubeclient (~> 4.3)
|
||||
jsonpath (~> 1.0)
|
||||
kubeclient (~> 4.9)
|
||||
oj (~> 3.0)
|
||||
statsd-instrument (>= 2.8, < 4)
|
||||
thor (>= 1.0, < 2.0)
|
||||
kubeclient (4.7.0)
|
||||
kubeclient (4.9.2)
|
||||
http (>= 3.0, < 5.0)
|
||||
jsonpath (~> 1.0)
|
||||
recursive-open-struct (~> 1.1, >= 1.1.1)
|
||||
rest-client (~> 2.0)
|
||||
memoist (0.16.2)
|
||||
mime-types (3.4.1)
|
||||
mime-types-data (~> 3.2015)
|
||||
mime-types-data (3.2021.1115)
|
||||
minitest (5.14.4)
|
||||
mime-types-data (3.2022.0105)
|
||||
minitest (5.15.0)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.1.1)
|
||||
netrc (0.11.0)
|
||||
oj (3.13.9)
|
||||
oj (3.13.11)
|
||||
os (1.1.4)
|
||||
public_suffix (4.0.6)
|
||||
rake (13.0.6)
|
||||
|
@ -105,14 +104,12 @@ GEM
|
|||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
statsd-instrument (3.1.2)
|
||||
thor (1.1.0)
|
||||
to_regexp (0.2.1)
|
||||
thor (1.2.1)
|
||||
tzinfo (2.0.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8)
|
||||
zeitwerk (2.5.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
activesupport = {
|
||||
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
|
||||
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
|
||||
sha256 = "02lys9pnb99hsczs551iqzjn008i8k7c728xxba7acfi9rdw9pa6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.1.4.1";
|
||||
version = "7.0.1";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = ["public_suffix"];
|
||||
|
@ -21,16 +21,6 @@
|
|||
};
|
||||
version = "2.8.0";
|
||||
};
|
||||
cgi = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vy8g58ns18x3dl566wg5rp4hymlx9584ddf75isdyig0yxjl0sn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.1";
|
||||
};
|
||||
colorize = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
|
@ -51,16 +41,6 @@
|
|||
};
|
||||
version = "1.1.9";
|
||||
};
|
||||
date = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0j1ghv5lqpn8jdvvci2fqvl30j4x31hhgzzc0mj54cga1sgh97n7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.2";
|
||||
};
|
||||
domain_name = {
|
||||
dependencies = ["unf"];
|
||||
groups = ["default"];
|
||||
|
@ -77,21 +57,21 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "09584dhklhnxvgrf1b1lvb1illhzg79rsd9sgbpzrawiir789ksy";
|
||||
sha256 = "0gmfyyzzvb9k5nm1a5x83d7krajfghghfsakhxmdpvncyj2vnrpa";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
};
|
||||
faraday = {
|
||||
dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"];
|
||||
dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi";
|
||||
sha256 = "0y32gj994ll3zlcqjmwp78r7s03iiwayij6fz2pjpkfywgvp71s6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
version = "1.9.3";
|
||||
};
|
||||
faraday-em_http = {
|
||||
groups = ["default"];
|
||||
|
@ -133,6 +113,17 @@
|
|||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday-multipart = {
|
||||
dependencies = ["multipart-post"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "03qfi9020ynf7hkdiaq01sd2mllvw7fg4qiin3pk028b4wv23j3j";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.3";
|
||||
};
|
||||
faraday-net_http = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
|
@ -173,15 +164,25 @@
|
|||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
faraday-retry = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.3";
|
||||
};
|
||||
ffi = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
|
||||
sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.15.4";
|
||||
version = "1.15.5";
|
||||
};
|
||||
ffi-compiler = {
|
||||
dependencies = ["ffi" "rake"];
|
||||
|
@ -270,15 +271,15 @@
|
|||
version = "1.8.11";
|
||||
};
|
||||
jsonpath = {
|
||||
dependencies = ["multi_json" "to_regexp"];
|
||||
dependencies = ["multi_json"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1zim5bl7zsbccd502iy63f7c3b6dw0a820z7q8kpv66hncavb7gp";
|
||||
sha256 = "12hjsr0plnx6v0bh1rhhimfi7z3rqm19xb47ybdkc1h9yhynnmdq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.9.9";
|
||||
version = "1.1.0";
|
||||
};
|
||||
jwt = {
|
||||
groups = ["default"];
|
||||
|
@ -291,26 +292,26 @@
|
|||
version = "2.3.0";
|
||||
};
|
||||
krane = {
|
||||
dependencies = ["activesupport" "cgi" "colorize" "concurrent-ruby" "date" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
|
||||
dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "07pij3z7kz7n0nvf8xwcaackck8wyjwldjva7215k2dm8csdzaih";
|
||||
sha256 = "1xnf0cw5i1i8l5nm1c9z02h184ad6hvy7fydr4bdzckjkyinamv9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.4";
|
||||
version = "2.4.0";
|
||||
};
|
||||
kubeclient = {
|
||||
dependencies = ["http" "recursive-open-struct" "rest-client"];
|
||||
dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1k4w7h6fywhccv7fskwks9p71fvbh00qyvcx8cc4bnvwjn43680w";
|
||||
sha256 = "0kld1w4706dfd6jx3snsi4h2pvqfazz1fni5al2ln60s3b8sybq4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.7.0";
|
||||
version = "4.9.2";
|
||||
};
|
||||
memoist = {
|
||||
groups = ["default"];
|
||||
|
@ -338,20 +339,20 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "03m3fkix2haah20kvh1jgv262yg9jlzn6wq0y31kafxk8fysfy27";
|
||||
sha256 = "003gd7mcay800k2q4pb2zn8lwwgci4bhi42v2jvlidm8ksx03i6q";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2021.1115";
|
||||
version = "3.2022.0105";
|
||||
};
|
||||
minitest = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
|
||||
sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.14.4";
|
||||
version = "5.15.0";
|
||||
};
|
||||
multi_json = {
|
||||
groups = ["default"];
|
||||
|
@ -388,10 +389,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1hcmczbp9afxijzg0gvp9milyzk15phfmbpmmsj5ppmziwkdls16";
|
||||
sha256 = "0bm8sdh7vz7ss3y21v961rd8nww23w5g4yhgvnd7jk331kdjyyzl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.13.9";
|
||||
version = "3.13.11";
|
||||
};
|
||||
os = {
|
||||
groups = ["default"];
|
||||
|
@ -480,20 +481,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
|
||||
sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
};
|
||||
to_regexp = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1rgabfhnql6l4fx09mmj5d0vza924iczqf2blmn82l782b6qqi9v";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.1";
|
||||
version = "1.2.1";
|
||||
};
|
||||
tzinfo = {
|
||||
dependencies = ["concurrent-ruby"];
|
||||
|
@ -527,14 +518,4 @@
|
|||
};
|
||||
version = "0.0.8";
|
||||
};
|
||||
zeitwerk = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.5.1";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,13 +21,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kubernetes";
|
||||
version = "1.22.4";
|
||||
version = "1.22.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-6ivBecOttzbX85+WCttaU5nXjaiEiKU8xRhnCPkjLXg=";
|
||||
sha256 = "sha256-NL00GOdkVLVHTlj1RK1+stssioy+0xbtiKn4FZnCuzs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
|
||||
|
@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Production-Grade Container Scheduling and Management";
|
||||
license = licenses.asl20;
|
||||
homepage = "https://kubernetes.io";
|
||||
maintainers = with maintainers; [ johanot offline saschagrunert ];
|
||||
maintainers = with maintainers; [ ] ++ teams.kubernetes.members;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
||||
|
|
|
@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ autoPatchelfHook ] ++ (if stdenv.isDarwin then [ unzip ] else [ dpkg ]);
|
||||
|
||||
buildInputs = [ awscli ];
|
||||
|
||||
unpackPhase = if stdenv.isDarwin then "unzip $src" else "dpkg-deb -x $src .";
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -1,20 +1,32 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "starboard";
|
||||
version = "0.12.0";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aquasecurity";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-6QIQsxqTKERo5x2Knv4IBeNt5KjvfoW0ryFJLlALqrA=";
|
||||
sha256 = "sha256-/k9lQS3oPOYxhaaXuaDwPnai7byDkge4yBu7/9g4RUE=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
cd "$out"
|
||||
commit="$(git rev-parse HEAD)"
|
||||
source_date_epoch=$(git log --date=format:'%Y-%m-%dT%H:%M:%SZ' -1 --pretty=%ad)
|
||||
substituteInPlace "$out/cmd/starboard/main.go" \
|
||||
--replace 'commit = "none"' "commit = \"$commit\"" \
|
||||
--replace 'date = "unknown"' "date = \"$source_date_epoch\""
|
||||
find "$out" -name .git -print0 | xargs -0 rm -rf
|
||||
'';
|
||||
};
|
||||
vendorSha256 = "sha256-7SVEyyJRE7oYIhuENraZy0aieIAoFFWtq4mrSXxURlQ=";
|
||||
|
||||
vendorSha256 = "sha256-r6wMSeW5Et6hYwoEKufmcOmucuHlYuBDOMuXXMT4W2Y=";
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
# Don't build and check the integration tests
|
||||
excludedPackages = "itest";
|
||||
subPackages = [ "cmd/starboard" ];
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X main.version=v${version}"
|
||||
|
@ -23,6 +35,20 @@ buildGoModule rec {
|
|||
preCheck = ''
|
||||
# Remove test that requires networking
|
||||
rm pkg/plugin/aqua/client/client_integration_test.go
|
||||
|
||||
# Feed in all but the integration tests for testing
|
||||
# This is because subPackages above limits what is built to just what we
|
||||
# want but also limits the tests
|
||||
getGoDirs() {
|
||||
go list ./... | grep -v itest
|
||||
}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd starboard \
|
||||
--bash <($out/bin/starboard completion bash) \
|
||||
--fish <($out/bin/starboard completion fish) \
|
||||
--zsh <($out/bin/starboard completion zsh)
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
|
|
|
@ -19,7 +19,8 @@ let
|
|||
, vendorSha256 ? throw "vendorSha256 missing: please use `buildGoModule`" /* added 2022/01 */
|
||||
, deleteVendor ? false
|
||||
, proxyVendor ? false
|
||||
, provider-source-address
|
||||
, # Looks like "registry.terraform.io/vancluever/acme"
|
||||
provider-source-address
|
||||
}@attrs:
|
||||
buildGoModule {
|
||||
pname = repo;
|
||||
|
@ -34,9 +35,15 @@ let
|
|||
inherit owner repo rev sha256;
|
||||
};
|
||||
|
||||
# Terraform allow checking the provider versions, but this breaks
|
||||
# if the versions are not provided via file paths.
|
||||
postBuild = "mv $NIX_BUILD_TOP/go/bin/${repo}{,_v${version}}";
|
||||
# Move the provider to libexec
|
||||
postInstall = ''
|
||||
dir=$out/libexec/terraform-providers/${provider-source-address}/${version}/''${GOOS}_''${GOARCH}
|
||||
mkdir -p "$dir"
|
||||
mv $out/bin/* "$dir/terraform-provider-$(basename ${provider-source-address})_${version}"
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
# Keep the attributes around for later consumption
|
||||
passthru = attrs;
|
||||
};
|
||||
|
||||
|
|
|
@ -40,10 +40,10 @@
|
|||
"owner": "aliyun",
|
||||
"provider-source-address": "registry.terraform.io/aliyun/alicloud",
|
||||
"repo": "terraform-provider-alicloud",
|
||||
"rev": "v1.152.0",
|
||||
"sha256": "1childp3dkdi6raya1865inkky2qx1jav95yq9c57gz20zs27x8a",
|
||||
"rev": "v1.153.0",
|
||||
"sha256": "1h37sxzkngmikvmyj9isx45vcpd31ml47f4r6ii1h2l69182hsqs",
|
||||
"vendorSha256": "18chs2723i2cxhhm649mz52pp6wrfqzxgk12zxq9idrhicchqnzg",
|
||||
"version": "1.152.0"
|
||||
"version": "1.153.0"
|
||||
},
|
||||
"ansible": {
|
||||
"owner": "nbering",
|
||||
|
@ -67,10 +67,10 @@
|
|||
"owner": "alexkappa",
|
||||
"provider-source-address": "registry.terraform.io/alexkappa/auth0",
|
||||
"repo": "terraform-provider-auth0",
|
||||
"rev": "v0.25.0",
|
||||
"sha256": "0ibscxhwj92k8p43apnxyl9sly7pldv0lgcikjfjj352084q4k62",
|
||||
"rev": "v0.26.1",
|
||||
"sha256": "03nzwsda6n1nycpk2w87b8fj6aqzid8i2fa29qd9skwplm7hyjfk",
|
||||
"vendorSha256": "0k6lylkcdvm0piaic8hdbhg1jf1vzc897w1sq7v57brx7586h3sc",
|
||||
"version": "0.25.0"
|
||||
"version": "0.26.1"
|
||||
},
|
||||
"avi": {
|
||||
"owner": "vmware",
|
||||
|
@ -94,10 +94,10 @@
|
|||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/aws",
|
||||
"repo": "terraform-provider-aws",
|
||||
"rev": "v3.72.0",
|
||||
"sha256": "0xkwqh7akc7rf047w6by4368n2bpn4lijk9j6j3wsgbaffw0xjlb",
|
||||
"vendorSha256": "0apvp3vb3qx2l6698x4ai3spz40l6mb3z8gn45ms2vlxcwp2wf7y",
|
||||
"version": "3.72.0"
|
||||
"rev": "v3.73.0",
|
||||
"sha256": "0la188dljw15l09j2farlhgri0vhrlbmsay7q1ar2y4ralqlsgl8",
|
||||
"vendorSha256": "1h2x1318ax4qdy261wm8pqxq21ra50hymcykhw6mhj5lqxcb5r5z",
|
||||
"version": "3.73.0"
|
||||
},
|
||||
"azuread": {
|
||||
"owner": "hashicorp",
|
||||
|
@ -112,10 +112,10 @@
|
|||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/azurerm",
|
||||
"repo": "terraform-provider-azurerm",
|
||||
"rev": "v2.92.0",
|
||||
"sha256": "0p4vxda4n7895xp7aqg4zqddynjn7hnzsc8am83y8hf9hbfaji8q",
|
||||
"rev": "v2.93.0",
|
||||
"sha256": "0akacaih0smdjxh9ssdir1j248m5bpcc4wpwhykb7922yvj581ds",
|
||||
"vendorSha256": null,
|
||||
"version": "2.92.0"
|
||||
"version": "2.93.0"
|
||||
},
|
||||
"azurestack": {
|
||||
"owner": "hashicorp",
|
||||
|
@ -139,10 +139,10 @@
|
|||
"owner": "F5Networks",
|
||||
"provider-source-address": "registry.terraform.io/F5Networks/bigip",
|
||||
"repo": "terraform-provider-bigip",
|
||||
"rev": "v1.12.1",
|
||||
"sha256": "0dpgxcdcpv6y25ffs0gp2pvq8z9yfh7hdqll25d0b09z0pqgb61q",
|
||||
"rev": "v1.12.2",
|
||||
"sha256": "08qs8psr4wy5f9qiv7chkmmsls19dwj2p2k6fqxdrd6pj2154rcg",
|
||||
"vendorSha256": null,
|
||||
"version": "1.12.1"
|
||||
"version": "1.12.2"
|
||||
},
|
||||
"brightbox": {
|
||||
"owner": "brightbox",
|
||||
|
@ -248,10 +248,10 @@
|
|||
"owner": "DataDog",
|
||||
"provider-source-address": "registry.terraform.io/DataDog/datadog",
|
||||
"repo": "terraform-provider-datadog",
|
||||
"rev": "v3.7.0",
|
||||
"sha256": "0fynbn0zbplslbvqz0jij4gm8q6ydg697x7nh5rzw89dy26l2f8g",
|
||||
"vendorSha256": "0ngvbc9h3csl811g40q707flf4dl1hal95hpkxsvz7p71s3371q8",
|
||||
"version": "3.7.0"
|
||||
"rev": "v3.8.1",
|
||||
"sha256": "0mvl80dsqzab1r3p5n446737dadzfbsyfbdy2w2xvmz4fgx6aklh",
|
||||
"vendorSha256": "0p8czqb4hn5z9bfgsfajdpx46hwil0ax75j8xljlh1ccvpp2rvyz",
|
||||
"version": "3.8.1"
|
||||
},
|
||||
"dhall": {
|
||||
"owner": "awakesecurity",
|
||||
|
@ -347,10 +347,10 @@
|
|||
"owner": "fastly",
|
||||
"provider-source-address": "registry.terraform.io/fastly/fastly",
|
||||
"repo": "terraform-provider-fastly",
|
||||
"rev": "v0.40.0",
|
||||
"sha256": "11gf1xmj0qgn3hfw4hviqnfc23rrfd3qxz82idff4f1i7c5kym1i",
|
||||
"rev": "v0.41.0",
|
||||
"sha256": "096dwysa1awyb4a1fay9sw1i784cki8q4x141f9gan5w1qwns89y",
|
||||
"vendorSha256": null,
|
||||
"version": "0.40.0"
|
||||
"version": "0.41.0"
|
||||
},
|
||||
"flexibleengine": {
|
||||
"owner": "FlexibleEngineCloud",
|
||||
|
@ -383,10 +383,10 @@
|
|||
"owner": "integrations",
|
||||
"provider-source-address": "registry.terraform.io/integrations/github",
|
||||
"repo": "terraform-provider-github",
|
||||
"rev": "v4.19.1",
|
||||
"sha256": "0dixdw0215ksa76871mac60k7y0vm111f3jay9njsa1ljz8rwhnd",
|
||||
"rev": "v4.19.2",
|
||||
"sha256": "0k6w1wxx9a67wkgh4j4aswbpcnlnjcvqnfi0gy2rw9kqbyxb9j0m",
|
||||
"vendorSha256": null,
|
||||
"version": "4.19.1"
|
||||
"version": "4.19.2"
|
||||
},
|
||||
"gitlab": {
|
||||
"owner": "gitlabhq",
|
||||
|
@ -402,20 +402,20 @@
|
|||
"provider-source-address": "registry.terraform.io/hashicorp/google",
|
||||
"proxyVendor": true,
|
||||
"repo": "terraform-provider-google",
|
||||
"rev": "v4.6.0",
|
||||
"sha256": "0vi0crc4i5myzw17knvb3zz0yjpg7v1qvp9rjrb0q6v89nafr30c",
|
||||
"vendorSha256": "17rlq86zl83cav8pinr8am3wkmva4slab2izmxddhiw3na60a4la",
|
||||
"version": "4.6.0"
|
||||
"rev": "v4.7.0",
|
||||
"sha256": "15w69dyr0s818as7v8pwzdbfs82l23qn846a7xlihw2g49xk0cah",
|
||||
"vendorSha256": "144kv885w2gfsljj8vx7q9pgrpyshpn392162ljzpjb6qx3qzzxj",
|
||||
"version": "4.7.0"
|
||||
},
|
||||
"google-beta": {
|
||||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/google-beta",
|
||||
"proxyVendor": true,
|
||||
"repo": "terraform-provider-google-beta",
|
||||
"rev": "v4.6.0",
|
||||
"sha256": "0kbdpyln8yy3128g43y134v5li9k5a6mb2fwa0jl8zffmhfc209k",
|
||||
"vendorSha256": "17rlq86zl83cav8pinr8am3wkmva4slab2izmxddhiw3na60a4la",
|
||||
"version": "4.6.0"
|
||||
"rev": "v4.7.0",
|
||||
"sha256": "0jnz05yvhlawgc188xazv1fvqsqvpm867xf3i93xpl248pr1vqlf",
|
||||
"vendorSha256": "144kv885w2gfsljj8vx7q9pgrpyshpn392162ljzpjb6qx3qzzxj",
|
||||
"version": "4.7.0"
|
||||
},
|
||||
"grafana": {
|
||||
"owner": "grafana",
|
||||
|
@ -430,10 +430,10 @@
|
|||
"owner": "gridscale",
|
||||
"provider-source-address": "registry.terraform.io/gridscale/gridscale",
|
||||
"repo": "terraform-provider-gridscale",
|
||||
"rev": "v1.13.0",
|
||||
"sha256": "0m4n1ih7fzwxrnd3b70i4xl0nrwbpw8f6hh1fpa02jv7znpdp7l8",
|
||||
"rev": "v1.14.0",
|
||||
"sha256": "1syi3hvmff8dkbh538r4acbr5r72nmd073fvr52zcn0a9bc3q9np",
|
||||
"vendorSha256": null,
|
||||
"version": "1.13.0"
|
||||
"version": "1.14.0"
|
||||
},
|
||||
"hcloud": {
|
||||
"owner": "hetznercloud",
|
||||
|
@ -583,19 +583,19 @@
|
|||
"owner": "launchdarkly",
|
||||
"provider-source-address": "registry.terraform.io/launchdarkly/launchdarkly",
|
||||
"repo": "terraform-provider-launchdarkly",
|
||||
"rev": "v2.3.0",
|
||||
"sha256": "1yvxzhwx5nm53gjaqxzsfkc8khgyi2va1a9kjwmkhzqghzl4w5nw",
|
||||
"vendorSha256": "0pmnhlfmi9i6xblz62ysnw02p4i8iz6naqpna99gbgyllnj5asdg",
|
||||
"version": "2.3.0"
|
||||
"rev": "v2.4.1",
|
||||
"sha256": "1smrdhg6fn9lzrlh0mz822zibnvd1487w5qn38l71ark9dadahqv",
|
||||
"vendorSha256": "13vcxvw56bn7mdz917lvdryd2d7mcvi83ykbzjfbpxr4lzrrm9qw",
|
||||
"version": "2.4.1"
|
||||
},
|
||||
"libvirt": {
|
||||
"owner": "dmacvicar",
|
||||
"provider-source-address": "registry.terraform.io/dmacvicar/libvirt",
|
||||
"repo": "terraform-provider-libvirt",
|
||||
"rev": "v0.6.12",
|
||||
"sha256": "1kqpy1cr7vg4iclxwd7wa4fmhw63l3z5gn07knfx9in7nm380pyn",
|
||||
"vendorSha256": "0l9wr4g77chmshcfibdbl23rs8y8bxgiar4n152gkr0z12jvr5iq",
|
||||
"version": "0.6.12"
|
||||
"rev": "v0.6.13",
|
||||
"sha256": "1fvxvijl5vjx7gb4w19pf4gcq97pisiznr2n72ybpma46c2clx2h",
|
||||
"vendorSha256": "0rck411b4dh2zh4m4m6h2d03zlv5wm94li9dq5ggr0lspfx6nv1i",
|
||||
"version": "0.6.13"
|
||||
},
|
||||
"linode": {
|
||||
"owner": "linode",
|
||||
|
@ -638,10 +638,10 @@
|
|||
"owner": "terraform-lxd",
|
||||
"provider-source-address": "registry.terraform.io/terraform-lxd/lxd",
|
||||
"repo": "terraform-provider-lxd",
|
||||
"rev": "v1.6.0",
|
||||
"sha256": "07h159mjbddkf3ishhdknqn10pyb2wh9yavjps5mwmdbiii6qpvy",
|
||||
"rev": "v1.7.0",
|
||||
"sha256": "1fg9ad6zmkkg8j4sqfan3ibjjb73digg10k5h8xaii778r9bh311",
|
||||
"vendorSha256": "11x12jxh4q99hinpljqfchysgkhch93sgv0mz065ws20y0dxzfvs",
|
||||
"version": "1.6.0"
|
||||
"version": "1.7.0"
|
||||
},
|
||||
"mailgun": {
|
||||
"owner": "wgebis",
|
||||
|
@ -766,10 +766,10 @@
|
|||
"owner": "terraform-providers",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/oci",
|
||||
"repo": "terraform-provider-oci",
|
||||
"rev": "v4.59.0",
|
||||
"sha256": "12i4j95g08c887xxplc90hcxwsrpwcn5qjyy5inazr21vqscjx2h",
|
||||
"rev": "v4.60.0",
|
||||
"sha256": "02wxisy2c9g6kkg6wrgv99qfrds26xwqfj2m3v97y0ldpi2fhbpa",
|
||||
"vendorSha256": null,
|
||||
"version": "4.59.0"
|
||||
"version": "4.60.0"
|
||||
},
|
||||
"okta": {
|
||||
"owner": "okta",
|
||||
|
@ -803,10 +803,10 @@
|
|||
"owner": "OpenNebula",
|
||||
"provider-source-address": "registry.terraform.io/OpenNebula/opennebula",
|
||||
"repo": "terraform-provider-opennebula",
|
||||
"rev": "v0.3.0",
|
||||
"sha256": "110mzxr2mk9hzw7nfisyl4in7r7q4m280szzgc3bzlp9sjvqgg3y",
|
||||
"vendorSha256": "1wp9dk5kcrkmcx7mh5inbq3zd7qwp8sbl9hc0svaf44mf1p9446w",
|
||||
"version": "0.3.0"
|
||||
"rev": "v0.4.0",
|
||||
"sha256": "1r6v1ksis0h9mairvn9mwk49dkn6s6ixi8j0jaz9w173lx5si917",
|
||||
"vendorSha256": "0qyzavig8wnnjzm63pny5azywqyrnjm978yg5y0sr6zw8wghjd15",
|
||||
"version": "0.4.0"
|
||||
},
|
||||
"openstack": {
|
||||
"owner": "terraform-provider-openstack",
|
||||
|
@ -821,10 +821,10 @@
|
|||
"owner": "opentelekomcloud",
|
||||
"provider-source-address": "registry.terraform.io/opentelekomcloud/opentelekomcloud",
|
||||
"repo": "terraform-provider-opentelekomcloud",
|
||||
"rev": "v1.27.2",
|
||||
"sha256": "1icfsjpch6plp9qbx0snn55kvkba0kvnd0skwdhzxi66xcdw0s9b",
|
||||
"vendorSha256": "0dc4l5swfw666mpm5q67gm45abkm9zsvibqrja910h6rrp387576",
|
||||
"version": "1.27.2"
|
||||
"rev": "v1.27.3",
|
||||
"sha256": "17n1vy9h2blw9k3p82sbcz9zbj4hilg33qga5n09nq2ngafagazg",
|
||||
"vendorSha256": "12ahdbb83gxb9dcax635ngr54cqvnydr7l65h5dvv7b2gfldb1ki",
|
||||
"version": "1.27.3"
|
||||
},
|
||||
"opsgenie": {
|
||||
"owner": "opsgenie",
|
||||
|
@ -1055,10 +1055,10 @@
|
|||
"owner": "tencentcloudstack",
|
||||
"provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
|
||||
"repo": "terraform-provider-tencentcloud",
|
||||
"rev": "v1.61.1",
|
||||
"sha256": "1v6b8ldg6pkphqy5aphdhig1q3iizzfrj611k39lyk1q3q914yf4",
|
||||
"rev": "v1.61.2",
|
||||
"sha256": "1i9jyz4r344swdvnnpgz2s1ds5b5s2hif3bjr82mmfd7gshyagnq",
|
||||
"vendorSha256": null,
|
||||
"version": "1.61.1"
|
||||
"version": "1.61.2"
|
||||
},
|
||||
"tfe": {
|
||||
"owner": "hashicorp",
|
||||
|
@ -1128,10 +1128,10 @@
|
|||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/vault",
|
||||
"repo": "terraform-provider-vault",
|
||||
"rev": "v3.1.1",
|
||||
"sha256": "15fwc0sfdpcl85194gq6r97y18ggh61wbyh6lq7nrprwn2xvjch9",
|
||||
"vendorSha256": "1q2yfmg6g3bl6h0vzanz7874xc4g7ggmysh2dqryijvr4kccnari",
|
||||
"version": "3.1.1"
|
||||
"rev": "v3.2.1",
|
||||
"sha256": "0y8vvc5mckzjs24x36rihl1vdvh9k2kazn5lsqvq6apv36kg5vw4",
|
||||
"vendorSha256": "0j5kz5jvyds701gq89v8dcsvm67kbfxxgzjvmn74ms3nrkx8hr84",
|
||||
"version": "3.2.1"
|
||||
},
|
||||
"vcd": {
|
||||
"owner": "vmware",
|
||||
|
@ -1192,10 +1192,10 @@
|
|||
"owner": "vultr",
|
||||
"provider-source-address": "registry.terraform.io/vultr/vultr",
|
||||
"repo": "terraform-provider-vultr",
|
||||
"rev": "v2.8.1",
|
||||
"sha256": "1dhfxr6a4kj1llalfw76w36iw6vcdk1p0nb90kfkpg2sh58a6rid",
|
||||
"rev": "v2.9.0",
|
||||
"sha256": "0hx1n1wcjx40s94bysr14j0w4bc1xzkrrmkpjcwwbqywn75p6ggw",
|
||||
"vendorSha256": null,
|
||||
"version": "2.8.1"
|
||||
"version": "2.9.0"
|
||||
},
|
||||
"wavefront": {
|
||||
"owner": "vmware",
|
||||
|
@ -1210,9 +1210,9 @@
|
|||
"owner": "yandex-cloud",
|
||||
"provider-source-address": "registry.terraform.io/yandex-cloud/yandex",
|
||||
"repo": "terraform-provider-yandex",
|
||||
"rev": "v0.69.0",
|
||||
"sha256": "0k4py0asibcpfl9w8q0bn3rfjxhxf6cs3g53j35qij3gakqf1w2i",
|
||||
"rev": "v0.70.0",
|
||||
"sha256": "0dmhzjwcd0j7rfczxahami23yjcc0pr10m12iig3z4hj9kgikzvy",
|
||||
"vendorSha256": "0zx2lq9va0llrjlf3lk8pnx6f5knmi4jjxrnll89kp01imydjqv8",
|
||||
"version": "0.69.0"
|
||||
"version": "0.70.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, buildEnv
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
|
@ -62,9 +63,9 @@ let
|
|||
babariviere
|
||||
kalbasit
|
||||
marsam
|
||||
maxeaubrey
|
||||
timstott
|
||||
zimbatm
|
||||
maxeaubrey
|
||||
zowoq
|
||||
];
|
||||
};
|
||||
|
@ -76,39 +77,6 @@ let
|
|||
let
|
||||
actualPlugins = plugins terraform.plugins;
|
||||
|
||||
# Make providers available in Terraform 0.13 and 0.12 search paths.
|
||||
pluginDir = lib.concatMapStrings
|
||||
(pl:
|
||||
let
|
||||
inherit (pl) version GOOS GOARCH;
|
||||
|
||||
pname = pl.pname or (throw "${pl.name} is missing a pname attribute");
|
||||
|
||||
# This is just the name, without the terraform-provider- prefix
|
||||
plugin_name = lib.removePrefix "terraform-provider-" pname;
|
||||
|
||||
slug = pl.passthru.provider-source-address or "registry.terraform.io/nixpkgs/${plugin_name}";
|
||||
|
||||
shim = writeText "shim" ''
|
||||
#!${runtimeShell}
|
||||
exec ${pl}/bin/${pname}_v${version} "$@"
|
||||
'';
|
||||
in
|
||||
''
|
||||
TF_0_13_PROVIDER_PATH=$out/plugins/${slug}/${version}/${GOOS}_${GOARCH}/${pname}_v${version}
|
||||
mkdir -p "$(dirname $TF_0_13_PROVIDER_PATH)"
|
||||
|
||||
cp ${shim} "$TF_0_13_PROVIDER_PATH"
|
||||
chmod +x "$TF_0_13_PROVIDER_PATH"
|
||||
|
||||
TF_0_12_PROVIDER_PATH=$out/plugins/${pname}_v${version}
|
||||
|
||||
cp ${shim} "$TF_0_12_PROVIDER_PATH"
|
||||
chmod +x "$TF_0_12_PROVIDER_PATH"
|
||||
''
|
||||
)
|
||||
actualPlugins;
|
||||
|
||||
# Wrap PATH of plugins propagatedBuildInputs, plugins may have runtime dependencies on external binaries
|
||||
wrapperInputs = lib.unique (lib.flatten
|
||||
(lib.catAttrs "propagatedBuildInputs"
|
||||
|
@ -134,18 +102,16 @@ let
|
|||
terraform.overrideAttrs
|
||||
(orig: { passthru = orig.passthru // passthru; })
|
||||
else
|
||||
lib.appendToName "with-plugins" (stdenv.mkDerivation {
|
||||
lib.appendToName "with-plugins" (buildEnv {
|
||||
inherit (terraform) name meta;
|
||||
paths = actualPlugins;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildCommand = pluginDir + ''
|
||||
mkdir -p $out/bin/
|
||||
postBuild = ''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper "${terraform}/bin/terraform" "$out/bin/terraform" \
|
||||
--set NIX_TERRAFORM_PLUGIN_DIR $out/plugins \
|
||||
--set NIX_TERRAFORM_PLUGIN_DIR $out/libexec/terraform-providers \
|
||||
--prefix PATH : "${lib.makeBinPath wrapperInputs}"
|
||||
'';
|
||||
|
||||
inherit passthru;
|
||||
});
|
||||
in
|
||||
withPlugins (_: [ ]);
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "terragrunt";
|
||||
version = "0.35.20";
|
||||
version = "0.36.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gruntwork-io";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-iSD036rDZvvMUGMHnjKh69eVUVQakI8muSCCq2ytODM=";
|
||||
sha256 = "sha256-HUhV6FcLd75ZOPKw9Fl+7KUsSVG7HpQ6X2JZo9C9eeA=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-tNgEepKqwiqXhmoRCIEg7VJw7Y0TGt+R+6dZzd8aECg=";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rssguard";
|
||||
version = "4.0.4";
|
||||
version = "4.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "martinrotter";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-c6+SlZx3ACG0nJRW+zcDDzVd/oSLAdSaq2fHrPpt6zw=";
|
||||
sha256 = "sha256-aG7Wkn2CHe7Dumskd0+DMja95lzvBWnFXACSqfU7Ow0=";
|
||||
};
|
||||
|
||||
buildInputs = [ qtwebengine qttools ];
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "flexget";
|
||||
version = "3.2.11";
|
||||
version = "3.2.15";
|
||||
|
||||
# Fetch from GitHub in order to use `requirements.in`
|
||||
src = fetchFromGitHub {
|
||||
owner = "flexget";
|
||||
repo = "flexget";
|
||||
rev = "v${version}";
|
||||
sha256 = "1l9xy8k0imfdg4r03k659f85z945bksx672gqhkchf2svi2vnvql";
|
||||
sha256 = "0ygkygd0gcldwdx6wl1kbvzi93k75m0v05m614cahh0jc7j27xy7";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
{ lib
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, meson
|
||||
, gobject-introspection
|
||||
, pkg-config
|
||||
, ninja
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, gtk3
|
||||
, wrapGAppsHook4
|
||||
, gtk4
|
||||
, gdk-pixbuf
|
||||
, webkitgtk
|
||||
, gtksourceview4
|
||||
, libhandy
|
||||
, gtksourceview5
|
||||
, glib-networking
|
||||
, libadwaita
|
||||
, appstream
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "giara";
|
||||
version = "0.3";
|
||||
version = "1.0";
|
||||
|
||||
format = "other";
|
||||
|
||||
|
@ -25,24 +27,25 @@ python3.pkgs.buildPythonApplication rec {
|
|||
owner = "World";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "004qmkfrgd37axv0b6hfh6v7nx4pvy987k5yv4bmlmkj9sbqm6f9";
|
||||
hash = "sha256-xDIzgr8zYal0r0sASWqiSZANCMC52LrVmLjlnGAd2Mg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream
|
||||
meson
|
||||
gobject-introspection
|
||||
pkg-config
|
||||
ninja
|
||||
wrapGAppsHook
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
gtk4
|
||||
gdk-pixbuf
|
||||
webkitgtk
|
||||
gtksourceview4
|
||||
libhandy
|
||||
gtksourceview5
|
||||
glib-networking
|
||||
libadwaita
|
||||
];
|
||||
|
||||
pythonPath = with python3.pkgs; [
|
||||
|
@ -55,6 +58,21 @@ python3.pkgs.buildPythonApplication rec {
|
|||
beautifulsoup4
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Proper support for gtk4 and libadwaita
|
||||
# @TODO: Remove when bumping the version.
|
||||
(fetchpatch {
|
||||
name = "giara-gtk4-libadwaita.patch";
|
||||
url = "https://gitlab.gnome.org/World/giara/-/commit/6204427f8b8e3d8c72b669717a3f129ffae401d9.patch";
|
||||
sha256 = "sha256-E8kbVsACPD2gkfNrzYUy0+1U7+/pIkUu4rCkX+xY0us=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson_post_install.py \
|
||||
--replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
|
||||
'';
|
||||
|
||||
# Fix setup-hooks https://github.com/NixOS/nixpkgs/issues/56943
|
||||
strictDeps = false;
|
||||
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "deltachat-cursed";
|
||||
version = "0.3.0";
|
||||
version = "0.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "adbenitez";
|
||||
repo = "deltachat-cursed";
|
||||
rev = "v${version}";
|
||||
sha256 = "0zzzrzc8yxw6ffwfirbrr5ahbidbvlwdvgdg82zjsdjjbarxph8c";
|
||||
hash = "sha256-IZrTPnj6eX1qgEPnEiD9qmVkwn1SMK38gVKAJFgZNfw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "signal-cli";
|
||||
version = "0.10.1";
|
||||
version = "0.10.2";
|
||||
|
||||
# Building from source would be preferred, but is much more involved.
|
||||
src = fetchurl {
|
||||
url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
|
||||
sha256 = "sha256-xj/fR/scfzOPxkWB79OhA129V7QG7QUkAbw1bNgzVas=";
|
||||
sha256 = "sha256-etCO7sy48A7aL3mnXWitClNiw/E122G4eD6YfVmXEPw=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
|
||||
|
|
|
@ -7,7 +7,7 @@ let
|
|||
|
||||
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
|
||||
# source of the latter disappears much faster.
|
||||
version = "8.79.0.95";
|
||||
version = "8.80.0.143";
|
||||
|
||||
rpath = lib.makeLibraryPath [
|
||||
alsa-lib
|
||||
|
@ -69,7 +69,7 @@ let
|
|||
"https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||
"https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||
];
|
||||
sha256 = "sha256-a6ZtgA0cMAuNVQWAeiIDJ2noPhXjV8KPE8ibkGR7Dns=";
|
||||
sha256 = "sha256-SLypP+ZRHMWeB3KuvmmYb0Y1T3ipSpWNiYYQIzMCDDY=";
|
||||
}
|
||||
else
|
||||
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "catgirl";
|
||||
version = "2.0";
|
||||
version = "2.0a";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-rk6nvfyaFxJ/7JN92L5tDraTngffVb6u/U7dbNjK9jI=";
|
||||
sha256 = "sha256-AbzzTqaulPDplntwRYw4fVxZXUIJ2L0MKZvyWq4lvro=";
|
||||
};
|
||||
|
||||
# catgirl's configure script uses pkg-config --variable exec_prefix openssl
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "evolution-ews";
|
||||
version = "3.42.1";
|
||||
version = "3.42.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "nCvGMSfDS0GUQfF8zomVq+gKf9H72X896zptRy9/Xy0=";
|
||||
sha256 = "qgi2ycWlzY4PaiEMHu0Rd3bN2aqFcLtxkII1MzZXls4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake gettext intltool pkg-config ];
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{ pkgs, nodejs, stdenv, lib, ... }:
|
||||
{ pkgs, nodejs-14_x, stdenv, lib }:
|
||||
|
||||
let
|
||||
nodePackages = import ./node-composition.nix {
|
||||
inherit pkgs nodejs;
|
||||
inherit pkgs;
|
||||
nodejs = nodejs-14_x;
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
};
|
||||
in
|
||||
|
@ -10,9 +11,10 @@ nodePackages.n8n.override {
|
|||
nativeBuildInputs = with pkgs.nodePackages; [
|
||||
node-pre-gyp
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Free and open fair-code licensed node based Workflow Automation Tool";
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
maintainers = with maintainers; [ freezeboy k900 ];
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,19 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nodePackages.node2nix
|
||||
|
||||
# --strip-optional-dependencies to get rid of deprecated build deps:
|
||||
#
|
||||
# n8n
|
||||
# -> n8n-nodes-base
|
||||
# -> ssh2-sftp-client
|
||||
# -> ssh2
|
||||
# -> cpu-features
|
||||
# -> node-gyp@3.8.0 -> python2
|
||||
# -> cmake
|
||||
|
||||
node2nix \
|
||||
--14 \
|
||||
--strip-optional-dependencies \
|
||||
--node-env node-env.nix \
|
||||
--input package.json \
|
||||
--output node-packages.nix \
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
let
|
||||
nodeEnv = import ./node-env.nix {
|
||||
inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
|
||||
inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
|
||||
inherit pkgs nodejs;
|
||||
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# This file originates from node2nix
|
||||
|
||||
{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}:
|
||||
{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}:
|
||||
|
||||
let
|
||||
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
|
||||
|
@ -40,36 +40,22 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
includeDependencies = {dependencies}:
|
||||
lib.optionalString (dependencies != [])
|
||||
(lib.concatMapStrings (dependency:
|
||||
''
|
||||
# Bundle the dependencies of the package
|
||||
mkdir -p node_modules
|
||||
cd node_modules
|
||||
# Common shell logic
|
||||
installPackage = writeShellScript "install-package" ''
|
||||
installPackage() {
|
||||
local packageName=$1 src=$2
|
||||
|
||||
# Only include dependencies if they don't exist. They may also be bundled in the package.
|
||||
if [ ! -e "${dependency.name}" ]
|
||||
then
|
||||
${composePackage dependency}
|
||||
fi
|
||||
local strippedName
|
||||
|
||||
cd ..
|
||||
''
|
||||
) dependencies);
|
||||
|
||||
# Recursively composes the dependencies of a package
|
||||
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
|
||||
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
|
||||
DIR=$(pwd)
|
||||
local DIR=$PWD
|
||||
cd $TMPDIR
|
||||
|
||||
unpackFile ${src}
|
||||
unpackFile $src
|
||||
|
||||
# Make the base dir in which the target dependency resides first
|
||||
mkdir -p "$(dirname "$DIR/${packageName}")"
|
||||
mkdir -p "$(dirname "$DIR/$packageName")"
|
||||
|
||||
if [ -f "${src}" ]
|
||||
if [ -f "$src" ]
|
||||
then
|
||||
# Figure out what directory has been unpacked
|
||||
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
|
||||
|
@ -79,28 +65,53 @@ let
|
|||
chmod -R u+w "$packageDir"
|
||||
|
||||
# Move the extracted tarball into the output folder
|
||||
mv "$packageDir" "$DIR/${packageName}"
|
||||
elif [ -d "${src}" ]
|
||||
mv "$packageDir" "$DIR/$packageName"
|
||||
elif [ -d "$src" ]
|
||||
then
|
||||
# Get a stripped name (without hash) of the source directory.
|
||||
# On old nixpkgs it's already set internally.
|
||||
if [ -z "$strippedName" ]
|
||||
then
|
||||
strippedName="$(stripHash ${src})"
|
||||
strippedName="$(stripHash $src)"
|
||||
fi
|
||||
|
||||
# Restore write permissions to make building work
|
||||
chmod -R u+w "$strippedName"
|
||||
|
||||
# Move the extracted directory into the output folder
|
||||
mv "$strippedName" "$DIR/${packageName}"
|
||||
mv "$strippedName" "$DIR/$packageName"
|
||||
fi
|
||||
|
||||
# Unset the stripped name to not confuse the next unpack step
|
||||
unset strippedName
|
||||
# Change to the package directory to install dependencies
|
||||
cd "$DIR/$packageName"
|
||||
}
|
||||
'';
|
||||
|
||||
# Include the dependencies of the package
|
||||
cd "$DIR/${packageName}"
|
||||
# Bundle the dependencies of the package
|
||||
#
|
||||
# Only include dependencies if they don't exist. They may also be bundled in the package.
|
||||
includeDependencies = {dependencies}:
|
||||
lib.optionalString (dependencies != []) (
|
||||
''
|
||||
mkdir -p node_modules
|
||||
cd node_modules
|
||||
''
|
||||
+ (lib.concatMapStrings (dependency:
|
||||
''
|
||||
if [ ! -e "${dependency.name}" ]; then
|
||||
${composePackage dependency}
|
||||
fi
|
||||
''
|
||||
) dependencies)
|
||||
+ ''
|
||||
cd ..
|
||||
''
|
||||
);
|
||||
|
||||
# Recursively composes the dependencies of a package
|
||||
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
|
||||
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
|
||||
installPackage "${packageName}" "${src}"
|
||||
${includeDependencies { inherit dependencies; }}
|
||||
cd ..
|
||||
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
|
||||
|
@ -391,13 +402,14 @@ let
|
|||
, dontStrip ? true
|
||||
, unpackPhase ? "true"
|
||||
, buildPhase ? "true"
|
||||
, meta ? {}
|
||||
, ... }@args:
|
||||
|
||||
let
|
||||
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
|
||||
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
|
||||
in
|
||||
stdenv.mkDerivation ({
|
||||
name = "node_${name}-${version}";
|
||||
name = "${name}-${version}";
|
||||
buildInputs = [ tarWrapper python nodejs ]
|
||||
++ lib.optional (stdenv.isLinux) utillinux
|
||||
++ lib.optional (stdenv.isDarwin) libtool
|
||||
|
@ -414,6 +426,8 @@ let
|
|||
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
|
||||
|
||||
installPhase = ''
|
||||
source ${installPackage}
|
||||
|
||||
# Create and enter a root node_modules/ folder
|
||||
mkdir -p $out/lib/node_modules
|
||||
cd $out/lib/node_modules
|
||||
|
@ -446,6 +460,11 @@ let
|
|||
# Run post install hook, if provided
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
# default to Node.js' platforms
|
||||
platforms = nodejs.meta.platforms;
|
||||
} // meta;
|
||||
} // extraArgs);
|
||||
|
||||
# Builds a node environment (a node_modules folder and a set of binaries)
|
||||
|
@ -486,6 +505,8 @@ let
|
|||
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
|
||||
|
||||
installPhase = ''
|
||||
source ${installPackage}
|
||||
|
||||
mkdir -p $out/${packageName}
|
||||
cd $out/${packageName}
|
||||
|
||||
|
|
4746
third_party/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix
generated
vendored
4746
third_party/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix
generated
vendored
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,7 @@
|
|||
, flask
|
||||
, flask-httpauth
|
||||
, flask-socketio
|
||||
, stem
|
||||
, cepa
|
||||
, psutil
|
||||
, pyqt5
|
||||
, pycrypto
|
||||
|
@ -21,15 +21,16 @@
|
|||
, unidecode
|
||||
, tor
|
||||
, obfs4
|
||||
, snowflake
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.4";
|
||||
version = "2.5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "onionshare";
|
||||
repo = "onionshare";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Lclm7mIkaAkQpWcNILTRJtLA43dpiyHtWAeHS2r3+ZQ=";
|
||||
sha256 = "xCAM+tjjyDg/gqAXr4YNPhM8R3n9r895jktisAGlpZo=";
|
||||
};
|
||||
meta = with lib; {
|
||||
description = "Securely and anonymously send and receive files";
|
||||
|
@ -55,16 +56,9 @@ let
|
|||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ lourkeur ];
|
||||
};
|
||||
stem' = stem.overridePythonAttrs (_: rec {
|
||||
version = "1.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "onionshare";
|
||||
repo = "stem";
|
||||
rev = version;
|
||||
sha256 = "Dzpvx7CgAr5OtGmfubWAYDLqq5LkGqcwjr3bxpfL/3A=";
|
||||
};
|
||||
});
|
||||
# TODO: package meek https://support.torproject.org/glossary/meek/
|
||||
meek = "/meek-not-available";
|
||||
|
||||
in
|
||||
rec {
|
||||
|
@ -76,7 +70,7 @@ rec {
|
|||
# hardcode store paths of dependencies
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit tor obfs4;
|
||||
inherit tor meek obfs4 snowflake;
|
||||
inherit (tor) geoip;
|
||||
})
|
||||
];
|
||||
|
@ -86,7 +80,7 @@ rec {
|
|||
flask
|
||||
flask-httpauth
|
||||
flask-socketio
|
||||
stem'
|
||||
cepa
|
||||
psutil
|
||||
pycrypto
|
||||
pynacl
|
||||
|
@ -109,8 +103,6 @@ rec {
|
|||
'';
|
||||
|
||||
disabledTests = [
|
||||
"test_firefox_like_behavior"
|
||||
"test_if_unmodified_since"
|
||||
"test_get_tor_paths_linux" # expects /usr instead of /nix/store
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# on darwin (and only on darwin) onionshare attempts to discover
|
||||
|
@ -123,12 +115,12 @@ rec {
|
|||
onionshare-gui = buildPythonApplication {
|
||||
pname = "onionshare";
|
||||
inherit version meta;
|
||||
src = "${src}/desktop/src";
|
||||
src = "${src}/desktop";
|
||||
patches = [
|
||||
# hardcode store paths of dependencies
|
||||
(substituteAll {
|
||||
src = ./fix-paths-gui.patch;
|
||||
inherit tor obfs4;
|
||||
inherit tor meek obfs4 snowflake;
|
||||
inherit (tor) geoip;
|
||||
})
|
||||
];
|
||||
|
|
|
@ -1,25 +1,46 @@
|
|||
--- a/onionshare/gui_common.py
|
||||
+++ b/onionshare/gui_common.py
|
||||
@@ -391,29 +391,10 @@ class GuiCommon:
|
||||
@@ -410,52 +410,12 @@ class GuiCommon:
|
||||
}
|
||||
|
||||
def get_tor_paths(self):
|
||||
- if self.common.platform == "Linux":
|
||||
- base_path = self.get_resource_path("tor")
|
||||
- if base_path and os.path.isdir(base_path):
|
||||
- self.common.log(
|
||||
- "GuiCommon", "get_tor_paths", "using paths in resources"
|
||||
- )
|
||||
- tor_path = os.path.join(base_path, "tor")
|
||||
- tor_geo_ip_file_path = os.path.join(base_path, "geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
|
||||
- obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy")
|
||||
- snowflake_file_path = os.path.join(base_path, "snowflake-client")
|
||||
- meek_client_file_path = os.path.join(base_path, "meek-client")
|
||||
- else:
|
||||
- # Fallback to looking in the path
|
||||
- self.common.log("GuiCommon", "get_tor_paths", "using paths from PATH")
|
||||
- tor_path = shutil.which("tor")
|
||||
- obfs4proxy_file_path = shutil.which("obfs4proxy")
|
||||
- snowflake_file_path = shutil.which("snowflake-client")
|
||||
- meek_client_file_path = shutil.which("meek-client")
|
||||
- prefix = os.path.dirname(os.path.dirname(tor_path))
|
||||
- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
|
||||
- elif self.common.platform == "Windows":
|
||||
-
|
||||
- if self.common.platform == "Windows":
|
||||
- base_path = self.get_resource_path("tor")
|
||||
- tor_path = os.path.join(base_path, "Tor", "tor.exe")
|
||||
- obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
|
||||
- snowflake_file_path = os.path.join(base_path, "Tor", "snowflake-client.exe")
|
||||
- meek_client_file_path = os.path.join(base_path, "Tor", "meek-client.exe")
|
||||
- tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
|
||||
- elif self.common.platform == "Darwin":
|
||||
- base_path = self.get_resource_path("tor")
|
||||
- tor_path = os.path.join(base_path, "tor")
|
||||
- obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy")
|
||||
- snowflake_file_path = os.path.join(base_path, "snowflake-client")
|
||||
- meek_client_file_path = os.path.join(base_path, "meek-client")
|
||||
- tor_geo_ip_file_path = os.path.join(base_path, "geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
|
||||
- elif self.common.platform == "BSD":
|
||||
|
@ -27,10 +48,14 @@
|
|||
- tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
|
||||
- tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6"
|
||||
- obfs4proxy_file_path = "/usr/local/bin/obfs4proxy"
|
||||
- meek_client_file_path = "/usr/local/bin/meek-client"
|
||||
- snowflake_file_path = "/usr/local/bin/snowflake-client"
|
||||
+ tor_path = "@tor@/bin/tor"
|
||||
+ tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
|
||||
+ tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
|
||||
+ obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
|
||||
+ meek_client_file_path = "@meek@/bin/meek-client"
|
||||
+ snowflake_file_path = "@snowflake@/bin/snowflake-client"
|
||||
|
||||
return (
|
||||
tor_path,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/onionshare_cli/common.py
|
||||
+++ b/onionshare_cli/common.py
|
||||
@@ -308,33 +308,10 @@ class Common:
|
||||
@@ -318,67 +318,12 @@ class Common:
|
||||
return path
|
||||
|
||||
def get_tor_paths(self):
|
||||
|
@ -9,33 +9,68 @@
|
|||
- if not tor_path:
|
||||
- raise CannotFindTor()
|
||||
- obfs4proxy_file_path = shutil.which("obfs4proxy")
|
||||
- snowflake_file_path = shutil.which("snowflake-client")
|
||||
- meek_client_file_path = shutil.which("meek-client")
|
||||
- prefix = os.path.dirname(os.path.dirname(tor_path))
|
||||
- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
|
||||
- elif self.platform == "Windows":
|
||||
- # In Windows, the Tor binaries are in the onionshare package, not the onionshare_cli package
|
||||
- base_path = self.get_resource_path("tor")
|
||||
- base_path = base_path.replace("onionshare_cli", "onionshare")
|
||||
- tor_path = os.path.join(base_path, "Tor", "tor.exe")
|
||||
-
|
||||
- # If tor.exe isn't there, mayber we're running from the source tree
|
||||
- if not os.path.exists(tor_path):
|
||||
- base_path = os.path.join(os.getcwd(), "onionshare", "resources", "tor")
|
||||
-
|
||||
- tor_path = os.path.join(base_path, "Tor", "tor.exe")
|
||||
- if not os.path.exists(tor_path):
|
||||
- raise CannotFindTor()
|
||||
-
|
||||
- obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
|
||||
- snowflake_file_path = os.path.join(base_path, "Tor", "snowflake-client.exe")
|
||||
- meek_client_file_path = os.path.join(base_path, "Tor", "meek-client.exe")
|
||||
- tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
|
||||
-
|
||||
- elif self.platform == "Darwin":
|
||||
- # Let's see if we have tor binaries in the onionshare GUI package
|
||||
- base_path = self.get_resource_path("tor")
|
||||
- base_path = base_path.replace("onionshare_cli", "onionshare")
|
||||
- tor_path = os.path.join(base_path, "tor")
|
||||
- if os.path.exists(tor_path):
|
||||
- obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy")
|
||||
- snowflake_file_path = os.path.join(base_path, "snowflake-client")
|
||||
- meek_client_file_path = os.path.join(base_path, "meek-client")
|
||||
- tor_geo_ip_file_path = os.path.join(base_path, "geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
|
||||
- else:
|
||||
- # Fallback to looking in the path
|
||||
- tor_path = shutil.which("tor")
|
||||
- if not tor_path:
|
||||
- if not os.path.exists(tor_path):
|
||||
- raise CannotFindTor()
|
||||
-
|
||||
- obfs4proxy_file_path = shutil.which("obfs4proxy")
|
||||
- snowflake_file_path = shutil.which("snowflake-client")
|
||||
- meek_client_file_path = shutil.which("meek-client")
|
||||
- prefix = os.path.dirname(os.path.dirname(tor_path))
|
||||
- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
|
||||
- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
|
||||
-
|
||||
- elif self.platform == "BSD":
|
||||
- tor_path = "/usr/local/bin/tor"
|
||||
- tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
|
||||
- tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6"
|
||||
- obfs4proxy_file_path = "/usr/local/bin/obfs4proxy"
|
||||
- snowflake_file_path = "/usr/local/bin/snowflake-client"
|
||||
- meek_client_file_path = "/usr/local/bin/meek-client"
|
||||
+ tor_path = "@tor@/bin/tor"
|
||||
+ tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
|
||||
+ tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
|
||||
+ obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
|
||||
+ snowflake_file_path = "@snowflake@/bin/snowflake-client"
|
||||
+ meek_client_file_path = "@meek@/bin/meek-client"
|
||||
|
||||
return (
|
||||
tor_path,
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "owncloud-client";
|
||||
version = "2.9.2.6206";
|
||||
version = "2.10.0.6519";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.owncloud.com/desktop/ownCloud/stable/${version}/source/ownCloud-${version}.tar.xz";
|
||||
sha256 = "sha256-i6TmJFEuH4A1jTyoKiJoVU7yC+AXZIH4miYSk3XzVEo=";
|
||||
sha256 = "sha256-HDH8s/VPeOAbkyrfE7hbhePhtWcx1IUdlhDCnodomh8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config cmake extra-cmake-modules ];
|
||||
|
|
|
@ -1,9 +1,42 @@
|
|||
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, alsa-lib, ffmpeg, glib, openssl
|
||||
, pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama
|
||||
, libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland
|
||||
, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt, cairo
|
||||
, libusb1, libpulseaudio, cups, pcsclite, systemd, libjpeg_turbo
|
||||
, buildServer ? true, nocaps ? false
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, pkg-config
|
||||
, alsa-lib
|
||||
, ffmpeg
|
||||
, glib
|
||||
, openssl
|
||||
, pcre
|
||||
, zlib
|
||||
, libX11
|
||||
, libXcursor
|
||||
, libXdamage
|
||||
, libXext
|
||||
, libXi
|
||||
, libXinerama
|
||||
, libXrandr
|
||||
, libXrender
|
||||
, libXv
|
||||
, libXtst
|
||||
, libxkbcommon
|
||||
, libxkbfile
|
||||
, wayland
|
||||
, gstreamer
|
||||
, gst-plugins-base
|
||||
, gst-plugins-good
|
||||
, libunwind
|
||||
, orc
|
||||
, libxslt
|
||||
, cairo
|
||||
, libusb1
|
||||
, libpulseaudio
|
||||
, cups
|
||||
, pcsclite
|
||||
, systemd
|
||||
, libjpeg_turbo
|
||||
, buildServer ? true
|
||||
, nocaps ? false
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -16,15 +49,16 @@ let
|
|||
}
|
||||
];
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "freerdp";
|
||||
version = "2.4.1";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeRDP";
|
||||
repo = "FreeRDP";
|
||||
rev = version;
|
||||
sha256 = "sha256-0wwIuE6Gv8khhLAbWSHOBfHGrTUjR4f/C5bzYJpvWIQ=";
|
||||
sha256 = "sha256-OLz/f4E+Haumw5Jaw+F1hiHz0jfcywhfK3fEUgLorao=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -47,8 +81,7 @@ in stdenv.mkDerivation rec {
|
|||
--replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL"
|
||||
'';
|
||||
|
||||
buildInputs = with lib;
|
||||
[
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
cairo
|
||||
cups
|
||||
|
@ -80,7 +113,7 @@ in stdenv.mkDerivation rec {
|
|||
pcsclite
|
||||
wayland
|
||||
zlib
|
||||
] ++ optional stdenv.isLinux systemd;
|
||||
] ++ lib.optional stdenv.isLinux systemd;
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ fetchurl, lib, stdenv, writeText, jdk, makeWrapper }:
|
||||
{ fetchurl, lib, stdenv, writeText, jdk, makeWrapper, nixosTests }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "soapui";
|
||||
|
@ -46,6 +46,8 @@ stdenv.mkDerivation rec {
|
|||
'')
|
||||
];
|
||||
|
||||
passthru.tests = { inherit (nixosTests) soapui; };
|
||||
|
||||
meta = with lib; {
|
||||
description = "The Most Advanced REST & SOAP Testing Tool in the World";
|
||||
homepage = "https://www.soapui.org/";
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "qownnotes";
|
||||
version = "22.1.7";
|
||||
version = "22.1.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
|
||||
# Fetch the checksum of current version with curl:
|
||||
# curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
|
||||
sha256 = "7ac13816e47e23e8469f47b6d48a29f7e98416de0fa9ef77eb3da63b191829f3";
|
||||
sha256 = "sha256-vUYfZpqOe7cZJxrNPXN2gCyNRNqC2/NA83+UCL9+mq0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake qttools ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "super-productivity";
|
||||
version = "7.9.2";
|
||||
version = "7.10.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
|
||||
sha256 = "sha256-qeHFFG1Y8qZwFvo3CFIs1+BKQo287HJfOnKKguUOlu8=";
|
||||
sha256 = "sha256-Aa0orJpsin7XntUVpW6VLcbGiTSeyySDCGNFOERtgvg=";
|
||||
name = "${pname}-${version}.AppImage";
|
||||
};
|
||||
|
||||
|
|
|
@ -24,13 +24,13 @@ assert !(pulseaudioSupport && portaudioSupport);
|
|||
|
||||
gnuradio3_8Minimal.pkgs.mkDerivation rec {
|
||||
pname = "gqrx";
|
||||
version = "2.15.4";
|
||||
version = "2.15.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gqrx-sdr";
|
||||
repo = "gqrx";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-iQlrnkc1EMR8sUUAHh+7RfS/05unrcDm/kJ/Q4Vst2Q=";
|
||||
sha256 = "sha256-4tXWwBkVmNZ4s3d6/n6XBdbh9Fv7821L3vkYmjgv1ds=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -68,11 +68,6 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
|
|||
"-DLINUX_AUDIO_BACKEND=${audioBackend}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -vD $src/gqrx.desktop -t "$out/share/applications/"
|
||||
install -vD $src/resources/icons/gqrx.svg -t "$out/share/pixmaps/"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Software defined radio (SDR) receiver";
|
||||
longDescription = ''
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue