3
0
Fork 0
forked from mirrors/nixpkgs

Merge remote-tracking branch 'origin/master' into staging-next

This commit is contained in:
Martin Weinelt 2022-10-05 00:44:16 +02:00
commit 253ca4957d
311 changed files with 5152 additions and 2210 deletions

View file

@ -15,7 +15,7 @@ assignees: ''
<!-- make sure this issue is not redundant or obsolete --> <!-- make sure this issue is not redundant or obsolete -->
- [ ] checked [latest Nixpkgs manual] \([source][nixpkgs-source]) and [latest NixOS manual]] \([source][nixos-source]) - [ ] checked [latest Nixpkgs manual] \([source][nixpkgs-source]) and [latest NixOS manual] \([source][nixos-source])
- [ ] checked [open documentation issues] for possible duplicates - [ ] checked [open documentation issues] for possible duplicates
- [ ] checked [open documentation pull requests] for possible solutions - [ ] checked [open documentation pull requests] for possible solutions

View file

@ -174,6 +174,11 @@ in mkLicense lset) ({
free = false; free = false;
}; };
cal10 = {
fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)";
url = "https://opensource.org/licenses/CAL-1.0";
};
capec = { capec = {
fullName = "Common Attack Pattern Enumeration and Classification"; fullName = "Common Attack Pattern Enumeration and Classification";
url = "https://capec.mitre.org/about/termsofuse.html"; url = "https://capec.mitre.org/about/termsofuse.html";

View file

@ -4833,6 +4833,15 @@
fingerprint = "386E D1BF 848A BB4A 6B4A 3C45 FC83 907C 125B C2BC"; fingerprint = "386E D1BF 848A BB4A 6B4A 3C45 FC83 907C 125B C2BC";
}]; }];
}; };
georgesalkhouri = {
name = "Georges Alkhouri";
email = "incense.stitch_0w@icloud.com";
github = "GeorgesAlkhouri";
githubId = 6077574;
keys = [{
fingerprint = "1608 9E8D 7C59 54F2 6A7A 7BD0 8BD2 09DC C54F D339";
}];
};
georgewhewell = { georgewhewell = {
email = "georgerw@gmail.com"; email = "georgerw@gmail.com";
github = "georgewhewell"; github = "georgewhewell";
@ -9534,6 +9543,12 @@
github = "nessdoor"; github = "nessdoor";
githubId = 25993494; githubId = 25993494;
}; };
net-mist = {
email = "archimist.linux@gmail.com";
github = "Net-Mist";
githubId = 13920346;
name = "Sébastien Iooss";
};
netali = { netali = {
name = "Jennifer Graul"; name = "Jennifer Graul";
email = "me@netali.de"; email = "me@netali.de";
@ -12848,13 +12863,6 @@
githubId = 2666479; githubId = 2666479;
name = "Y Nguyen"; name = "Y Nguyen";
}; };
superherointj = {
name = "Sérgio G.";
email = "5861043+superherointj@users.noreply.github.com";
matrix = "@superherointj:matrix.org";
github = "superherointj";
githubId = 5861043;
};
SuperSandro2000 = { SuperSandro2000 = {
email = "sandro.jaeckel@gmail.com"; email = "sandro.jaeckel@gmail.com";
matrix = "@sandro:supersandro.de"; matrix = "@sandro:supersandro.de";
@ -15396,6 +15404,12 @@
github = "jali-clarke"; github = "jali-clarke";
githubId = 17733984; githubId = 17733984;
}; };
wesleyjrz = {
email = "wesleyjr2002@gmail.com";
name = "Wesley V. Santos Jr.";
github = "wesleyjrz";
githubId = 60184588;
};
npatsakula = { npatsakula = {
email = "nikita.patsakula@gmail.com"; email = "nikita.patsakula@gmail.com";
name = "Patsakula Nikita"; name = "Patsakula Nikita";

View file

@ -15,6 +15,8 @@
- `scope` describes the scope of the group. - `scope` describes the scope of the group.
- `shortName` short human-readable name - `shortName` short human-readable name
- `enableFeatureFreezePing` will ping this team during the Feature Freeze announcements on releases - `enableFeatureFreezePing` will ping this team during the Feature Freeze announcements on releases
- There is limited mention capacity in a single post, so this should be reserved for critical components
or larger ecosystems within nixpkgs.
- `githubTeams` will ping specified GitHub teams as well - `githubTeams` will ping specified GitHub teams as well
More fields may be added in the future. More fields may be added in the future.
@ -38,6 +40,7 @@ with lib.maintainers; {
]; ];
scope = "Maintain ACME-related packages and modules."; scope = "Maintain ACME-related packages and modules.";
shortName = "ACME"; shortName = "ACME";
enableFeatureFreezePing = true;
}; };
bazel = { bazel = {
@ -90,7 +93,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain Blockchain packages and modules."; scope = "Maintain Blockchain packages and modules.";
shortName = "Blockchains"; shortName = "Blockchains";
enableFeatureFreezePing = true;
}; };
c = { c = {
@ -111,7 +113,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain packages used in the C3D2 hackspace"; scope = "Maintain packages used in the C3D2 hackspace";
shortName = "c3d2"; shortName = "c3d2";
enableFeatureFreezePing = true;
}; };
cinnamon = { cinnamon = {
@ -202,7 +203,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain Docker and related tools."; scope = "Maintain Docker and related tools.";
shortName = "DockerTools"; shortName = "DockerTools";
enableFeatureFreezePing = true;
}; };
docs = { docs = {
@ -220,7 +220,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain the Emacs editor and packages."; scope = "Maintain the Emacs editor and packages.";
shortName = "Emacs"; shortName = "Emacs";
enableFeatureFreezePing = true;
}; };
enlightenment = { enlightenment = {
@ -385,6 +384,15 @@ with lib.maintainers; {
shortName = "Lumiguide employees"; shortName = "Lumiguide employees";
}; };
lua = {
githubTeams = [
"lua"
];
scope = "Maintain the lua ecosystem.";
shortName = "lua";
enableFeatureFreezePing = true;
};
lumina = { lumina = {
members = [ members = [
romildo romildo
@ -426,6 +434,7 @@ with lib.maintainers; {
]; ];
scope = "Maintain Mate desktop environment and related packages."; scope = "Maintain Mate desktop environment and related packages.";
shortName = "MATE"; shortName = "MATE";
enableFeatureFreezePing = true;
}; };
matrix = { matrix = {
@ -448,7 +457,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain Mobile NixOS."; scope = "Maintain Mobile NixOS.";
shortName = "Mobile"; shortName = "Mobile";
enableFeatureFreezePing = true;
}; };
nix = { nix = {
@ -483,7 +491,6 @@ with lib.maintainers; {
tazjin tazjin
zimbatm zimbatm
]; ];
enableFeatureFreezePing = true;
scope = "Group registration for Numtide team members who collectively maintain packages."; scope = "Group registration for Numtide team members who collectively maintain packages.";
shortName = "Numtide team"; shortName = "Numtide team";
}; };
@ -548,7 +555,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain Podman and CRI-O related packages and modules."; scope = "Maintain Podman and CRI-O related packages and modules.";
shortName = "Podman"; shortName = "Podman";
enableFeatureFreezePing = true;
}; };
postgres = { postgres = {
@ -557,7 +563,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain the PostgreSQL package and plugins along with the NixOS module."; scope = "Maintain the PostgreSQL package and plugins along with the NixOS module.";
shortName = "PostgreSQL"; shortName = "PostgreSQL";
enableFeatureFreezePing = true;
}; };
python = { python = {
@ -610,7 +615,6 @@ with lib.maintainers; {
]; ];
scope = "Manage the current nixpkgs/NixOS release."; scope = "Manage the current nixpkgs/NixOS release.";
shortName = "Release"; shortName = "Release";
enableFeatureFreezePing = true;
}; };
ruby = { ruby = {
@ -699,7 +703,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain the vim and neovim text editors and related packages."; scope = "Maintain the vim and neovim text editors and related packages.";
shortName = "Vim/Neovim"; shortName = "Vim/Neovim";
enableFeatureFreezePing = true;
}; };
xfce = { xfce = {
@ -708,5 +711,6 @@ with lib.maintainers; {
]; ];
scope = "Maintain Xfce desktop environment and related packages."; scope = "Maintain Xfce desktop environment and related packages.";
shortName = "Xfce"; shortName = "Xfce";
enableFeatureFreezePing = true;
}; };
} }

View file

@ -63,6 +63,7 @@ let
}; };
documentType = "none"; documentType = "none";
variablelistId = "test-options-list"; variablelistId = "test-options-list";
optionIdPrefix = "test-opt-";
}; };
sources = lib.sourceFilesBySuffices ./. [".xml"]; sources = lib.sourceFilesBySuffices ./. [".xml"];

View file

@ -39,11 +39,11 @@ directory.
## Interactive-only test configuration {#sec-nixos-test-interactive-configuration} ## Interactive-only test configuration {#sec-nixos-test-interactive-configuration}
The `.driverInteractive` attribute combines the regular test configuration with The `.driverInteractive` attribute combines the regular test configuration with
definitions from the [`interactive` submodule](#opt-interactive). This gives you definitions from the [`interactive` submodule](#test-opt-interactive). This gives you
a more usable, graphical, but slightly different configuration. a more usable, graphical, but slightly different configuration.
You can add your own interactive-only test configuration by adding extra You can add your own interactive-only test configuration by adding extra
configuration to the [`interactive` submodule](#opt-interactive). configuration to the [`interactive` submodule](#test-opt-interactive).
To interactively run only the regular configuration, build the `<test>.driver` attribute To interactively run only the regular configuration, build the `<test>.driver` attribute
instead, and call it with the flag `result/bin/nixos-test-driver --interactive`. instead, and call it with the flag `result/bin/nixos-test-driver --interactive`.

View file

@ -22,12 +22,12 @@ A NixOS test is a module that has the following structure:
``` ```
We refer to the whole test above as a test module, whereas the values We refer to the whole test above as a test module, whereas the values
in [`nodes.<name>`](#opt-nodes) are NixOS modules themselves. in [`nodes.<name>`](#test-opt-nodes) are NixOS modules themselves.
The option [`testScript`](#opt-testScript) is a piece of Python code that executes the The option [`testScript`](#test-opt-testScript) is a piece of Python code that executes the
test (described below). During the test, it will start one or more test (described below). During the test, it will start one or more
virtual machines, the configuration of which is described by virtual machines, the configuration of which is described by
the option [`nodes`](#opt-nodes). the option [`nodes`](#test-opt-nodes).
An example of a single-node test is An example of a single-node test is
[`login.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix). [`login.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix).
@ -171,7 +171,7 @@ The following methods are available on machine objects:
least one will be returned. least one will be returned.
::: {.note} ::: {.note}
This requires [`enableOCR`](#opt-enableOCR) to be set to `true`. This requires [`enableOCR`](#test-opt-enableOCR) to be set to `true`.
::: :::
`get_screen_text` `get_screen_text`
@ -180,7 +180,7 @@ The following methods are available on machine objects:
machine\'s screen using optical character recognition. machine\'s screen using optical character recognition.
::: {.note} ::: {.note}
This requires [`enableOCR`](#opt-enableOCR) to be set to `true`. This requires [`enableOCR`](#test-opt-enableOCR) to be set to `true`.
::: :::
`send_monitor_command` `send_monitor_command`
@ -291,7 +291,7 @@ The following methods are available on machine objects:
`get_screen_text` and `get_screen_text_variants`). `get_screen_text` and `get_screen_text_variants`).
::: {.note} ::: {.note}
This requires [`enableOCR`](#opt-enableOCR) to be set to `true`. This requires [`enableOCR`](#test-opt-enableOCR) to be set to `true`.
::: :::
`wait_for_console_text` `wait_for_console_text`

View file

@ -44,14 +44,14 @@ $ ./result/bin/nixos-test-driver --keep-vm-state
<para> <para>
The <literal>.driverInteractive</literal> attribute combines the The <literal>.driverInteractive</literal> attribute combines the
regular test configuration with definitions from the regular test configuration with definitions from the
<link linkend="opt-interactive"><literal>interactive</literal> <link linkend="test-opt-interactive"><literal>interactive</literal>
submodule</link>. This gives you a more usable, graphical, but submodule</link>. This gives you a more usable, graphical, but
slightly different configuration. slightly different configuration.
</para> </para>
<para> <para>
You can add your own interactive-only test configuration by adding You can add your own interactive-only test configuration by adding
extra configuration to the extra configuration to the
<link linkend="opt-interactive"><literal>interactive</literal> <link linkend="test-opt-interactive"><literal>interactive</literal>
submodule</link>. submodule</link>.
</para> </para>
<para> <para>

View file

@ -24,16 +24,16 @@
<para> <para>
We refer to the whole test above as a test module, whereas the We refer to the whole test above as a test module, whereas the
values in values in
<link linkend="opt-nodes"><literal>nodes.&lt;name&gt;</literal></link> <link linkend="test-opt-nodes"><literal>nodes.&lt;name&gt;</literal></link>
are NixOS modules themselves. are NixOS modules themselves.
</para> </para>
<para> <para>
The option The option
<link linkend="opt-testScript"><literal>testScript</literal></link> <link linkend="test-opt-testScript"><literal>testScript</literal></link>
is a piece of Python code that executes the test (described below). is a piece of Python code that executes the test (described below).
During the test, it will start one or more virtual machines, the During the test, it will start one or more virtual machines, the
configuration of which is described by the option configuration of which is described by the option
<link linkend="opt-nodes"><literal>nodes</literal></link>. <link linkend="test-opt-nodes"><literal>nodes</literal></link>.
</para> </para>
<para> <para>
An example of a single-node test is An example of a single-node test is
@ -263,7 +263,7 @@ start_all()
<note> <note>
<para> <para>
This requires This requires
<link linkend="opt-enableOCR"><literal>enableOCR</literal></link> <link linkend="test-opt-enableOCR"><literal>enableOCR</literal></link>
to be set to <literal>true</literal>. to be set to <literal>true</literal>.
</para> </para>
</note> </note>
@ -281,7 +281,7 @@ start_all()
<note> <note>
<para> <para>
This requires This requires
<link linkend="opt-enableOCR"><literal>enableOCR</literal></link> <link linkend="test-opt-enableOCR"><literal>enableOCR</literal></link>
to be set to <literal>true</literal>. to be set to <literal>true</literal>.
</para> </para>
</note> </note>
@ -522,7 +522,7 @@ start_all()
<note> <note>
<para> <para>
This requires This requires
<link linkend="opt-enableOCR"><literal>enableOCR</literal></link> <link linkend="test-opt-enableOCR"><literal>enableOCR</literal></link>
to be set to <literal>true</literal>. to be set to <literal>true</literal>.
</para> </para>
</note> </note>

View file

@ -194,6 +194,13 @@
<link linkend="opt-services.komga.enable">services.komga</link>. <link linkend="opt-services.komga.enable">services.komga</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<link xlink:href="https://tandoor.dev">Tandoor Recipes</link>,
a self-hosted multi-tenant recipe collection. Available as
<link xlink:href="options.html#opt-services.tandoor-recipes.enable">services.tandoor-recipes</link>.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<link xlink:href="https://hbase.apache.org/">HBase <link xlink:href="https://hbase.apache.org/">HBase

View file

@ -72,6 +72,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [Komga](https://komga.org/), a free and open source comics/mangas media server. Available as [services.komga](#opt-services.komga.enable). - [Komga](https://komga.org/), a free and open source comics/mangas media server. Available as [services.komga](#opt-services.komga.enable).
- [Tandoor Recipes](https://tandoor.dev), a self-hosted multi-tenant recipe collection. Available as [services.tandoor-recipes](options.html#opt-services.tandoor-recipes.enable).
- [HBase cluster](https://hbase.apache.org/), a distributed, scalable, big data store. Available as [services.hadoop.hbase](options.html#opt-services.hadoop.hbase.enable). - [HBase cluster](https://hbase.apache.org/), a distributed, scalable, big data store. Available as [services.hadoop.hbase](options.html#opt-services.hadoop.hbase.enable).
- [Sachet](https://github.com/messagebird/sachet/), an SMS alerting tool for the Prometheus Alertmanager. Available as [services.prometheus.sachet](#opt-services.prometheus.sachet.enable). - [Sachet](https://github.com/messagebird/sachet/), an SMS alerting tool for the Prometheus Alertmanager. Available as [services.prometheus.sachet](#opt-services.prometheus.sachet.enable).

View file

@ -26,6 +26,8 @@
# If you include more than one option list into a document, you need to # If you include more than one option list into a document, you need to
# provide different ids. # provide different ids.
, variablelistId ? "configuration-variable-list" , variablelistId ? "configuration-variable-list"
# Strig to prefix to the option XML/HTML id attributes.
, optionIdPrefix ? "opt-"
, revision ? "" # Specify revision for the options , revision ? "" # Specify revision for the options
# a set of options the docs we are generating will be merged into, as if by recursiveUpdate. # a set of options the docs we are generating will be merged into, as if by recursiveUpdate.
# used to split the options doc build into a static part (nixos/modules) and a dynamic part # used to split the options doc build into a static part (nixos/modules) and a dynamic part
@ -183,6 +185,7 @@ in rec {
--stringparam documentType '${documentType}' \ --stringparam documentType '${documentType}' \
--stringparam revision '${revision}' \ --stringparam revision '${revision}' \
--stringparam variablelistId '${variablelistId}' \ --stringparam variablelistId '${variablelistId}' \
--stringparam optionIdPrefix '${optionIdPrefix}' \
-o intermediate.xml ${./options-to-docbook.xsl} sorted.xml -o intermediate.xml ${./options-to-docbook.xsl} sorted.xml
${pkgs.libxslt.bin}/bin/xsltproc \ ${pkgs.libxslt.bin}/bin/xsltproc \
-o "$out" ${./postprocess-option-descriptions.xsl} intermediate.xml -o "$out" ${./postprocess-option-descriptions.xsl} intermediate.xml

View file

@ -15,6 +15,7 @@
<xsl:param name="documentType" /> <xsl:param name="documentType" />
<xsl:param name="program" /> <xsl:param name="program" />
<xsl:param name="variablelistId" /> <xsl:param name="variablelistId" />
<xsl:param name="optionIdPrefix" />
<xsl:template match="/expr/list"> <xsl:template match="/expr/list">
@ -36,7 +37,7 @@
<xsl:attribute name="id" namespace="http://www.w3.org/XML/1998/namespace"><xsl:value-of select="$variablelistId"/></xsl:attribute> <xsl:attribute name="id" namespace="http://www.w3.org/XML/1998/namespace"><xsl:value-of select="$variablelistId"/></xsl:attribute>
<xsl:for-each select="attrs"> <xsl:for-each select="attrs">
<xsl:variable name="id" select=" <xsl:variable name="id" select="
concat('opt-', concat($optionIdPrefix,
translate( translate(
attr[@name = 'name']/string/@value, attr[@name = 'name']/string/@value,
'*&lt; >[]:', '*&lt; >[]:',

View file

@ -19,7 +19,7 @@ rec {
]; ];
qemuSerialDevice = qemuSerialDevice =
if pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isRiscV then "ttyS0" if with pkgs.stdenv.hostPlatform; isx86 || isMips64 || isRiscV then "ttyS0"
else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0" else if (with pkgs.stdenv.hostPlatform; isAarch || isPower) then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'"; else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";

View file

@ -120,7 +120,7 @@ in
}; };
qemu.package = mkOption { qemu.package = mkOption {
description = mdDoc "Which qemu package to use for the virtualisation of [{option}`nodes`](#opt-nodes)."; description = mdDoc "Which qemu package to use for the virtualisation of [{option}`nodes`](#test-opt-nodes).";
type = types.package; type = types.package;
default = hostPkgs.qemu_test; default = hostPkgs.qemu_test;
defaultText = "hostPkgs.qemu_test"; defaultText = "hostPkgs.qemu_test";
@ -152,7 +152,7 @@ in
description = mdDoc '' description = mdDoc ''
Extra arguments to pass to the test driver. Extra arguments to pass to the test driver.
They become part of [{option}`driver`](#opt-driver) via `wrapProgram`. They become part of [{option}`driver`](#test-opt-driver) via `wrapProgram`.
''; '';
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
@ -172,7 +172,7 @@ in
description = mdDoc '' description = mdDoc ''
Disable type checking. This must not be enabled for new NixOS tests. Disable type checking. This must not be enabled for new NixOS tests.
This may speed up your iteration cycle, unless you're working on the [{option}`testScript`](#opt-testScript). This may speed up your iteration cycle, unless you're working on the [{option}`testScript`](#test-opt-testScript).
''; '';
}; };
}; };

View file

@ -24,14 +24,14 @@ in
type = types.nullOr types.int; type = types.nullOr types.int;
default = null; # NOTE: null values are filtered out by `meta`. default = null; # NOTE: null values are filtered out by `meta`.
description = mdDoc '' description = mdDoc ''
The [{option}`test`](#opt-test)'s [`meta.timeout`](https://nixos.org/manual/nixpkgs/stable/#var-meta-timeout) in seconds. The [{option}`test`](#test-opt-test)'s [`meta.timeout`](https://nixos.org/manual/nixpkgs/stable/#var-meta-timeout) in seconds.
''; '';
}; };
broken = lib.mkOption { broken = lib.mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = mdDoc '' description = mdDoc ''
Sets the [`meta.broken`](https://nixos.org/manual/nixpkgs/stable/#var-meta-broken) attribute on the [{option}`test`](#opt-test) derivation. Sets the [`meta.broken`](https://nixos.org/manual/nixpkgs/stable/#var-meta-broken) attribute on the [{option}`test`](#test-opt-test) derivation.
''; '';
}; };
}; };

View file

@ -7,7 +7,7 @@ in
description = mdDoc '' description = mdDoc ''
The name of the test. The name of the test.
This is used in the derivation names of the [{option}`driver`](#opt-driver) and [{option}`test`](#opt-test) runner. This is used in the derivation names of the [{option}`driver`](#test-opt-driver) and [{option}`test`](#test-opt-test) runner.
''; '';
type = types.str; type = types.str;
}; };

View file

@ -44,7 +44,7 @@ in
description = mdDoc '' description = mdDoc ''
An attribute set of NixOS configuration modules. An attribute set of NixOS configuration modules.
The configurations are augmented by the [`defaults`](#opt-defaults) option. The configurations are augmented by the [`defaults`](#test-opt-defaults) option.
They are assigned network addresses according to the `nixos/lib/testing/network.nix` module. They are assigned network addresses according to the `nixos/lib/testing/network.nix` module.
@ -54,7 +54,7 @@ in
defaults = mkOption { defaults = mkOption {
description = mdDoc '' description = mdDoc ''
NixOS configuration that is applied to all [{option}`nodes`](#opt-nodes). NixOS configuration that is applied to all [{option}`nodes`](#test-opt-nodes).
''; '';
type = types.deferredModule; type = types.deferredModule;
default = { }; default = { };
@ -62,7 +62,7 @@ in
extraBaseModules = mkOption { extraBaseModules = mkOption {
description = mdDoc '' description = mdDoc ''
NixOS configuration that, like [{option}`defaults`](#opt-defaults), is applied to all [{option}`nodes`](#opt-nodes) and can not be undone with [`specialisation.<name>.inheritParentConfig`](https://search.nixos.org/options?show=specialisation.%3Cname%3E.inheritParentConfig&from=0&size=50&sort=relevance&type=packages&query=specialisation). NixOS configuration that, like [{option}`defaults`](#test-opt-defaults), is applied to all [{option}`nodes`](#test-opt-nodes) and can not be undone with [`specialisation.<name>.inheritParentConfig`](https://search.nixos.org/options?show=specialisation.%3Cname%3E.inheritParentConfig&from=0&size=50&sort=relevance&type=packages&query=specialisation).
''; '';
type = types.deferredModule; type = types.deferredModule;
default = { }; default = { };
@ -82,7 +82,7 @@ in
type = types.bool; type = types.bool;
default = false; default = false;
description = mdDoc '' description = mdDoc ''
Enable to configure all [{option}`nodes`](#opt-nodes) to run with a minimal kernel. Enable to configure all [{option}`nodes`](#test-opt-nodes) to run with a minimal kernel.
''; '';
}; };

View file

@ -48,6 +48,6 @@ in
}; };
meta = { meta = {
maintainers = with lib.maintainers; [ superherointj ]; maintainers = with lib.maintainers; [ ];
}; };
} }

View file

@ -653,6 +653,7 @@
./services/misc/svnserve.nix ./services/misc/svnserve.nix
./services/misc/synergy.nix ./services/misc/synergy.nix
./services/misc/sysprof.nix ./services/misc/sysprof.nix
./services/misc/tandoor-recipes.nix
./services/misc/taskserver ./services/misc/taskserver
./services/misc/tiddlywiki.nix ./services/misc/tiddlywiki.nix
./services/misc/tp-auto-kbbl.nix ./services/misc/tp-auto-kbbl.nix
@ -721,7 +722,7 @@
./services/network-filesystems/drbd.nix ./services/network-filesystems/drbd.nix
./services/network-filesystems/glusterfs.nix ./services/network-filesystems/glusterfs.nix
./services/network-filesystems/kbfs.nix ./services/network-filesystems/kbfs.nix
./services/network-filesystems/ipfs.nix ./services/network-filesystems/kubo.nix
./services/network-filesystems/litestream/default.nix ./services/network-filesystems/litestream/default.nix
./services/network-filesystems/netatalk.nix ./services/network-filesystems/netatalk.nix
./services/network-filesystems/nfsd.nix ./services/network-filesystems/nfsd.nix

View file

@ -0,0 +1,144 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.tandoor-recipes;
pkg = cfg.package;
# SECRET_KEY through an env file
env = {
GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
DEBUG = "0";
MEDIA_ROOT = "/var/lib/tandoor-recipes";
} // optionalAttrs (config.time.timeZone != null) {
TIMEZONE = config.time.timeZone;
} // (
lib.mapAttrs (_: toString) cfg.extraConfig
);
manage =
let
setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
in
pkgs.writeShellScript "manage" ''
${setupEnv}
exec ${pkg}/bin/tandoor-recipes "$@"
'';
in
{
meta.maintainers = with maintainers; [ ambroisie ];
options.services.tandoor-recipes = {
enable = mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Enable Tandoor Recipes.
When started, the Tandoor Recipes database is automatically created if
it doesn't exist and updated if the package has changed. Both tasks are
achieved by running a Django migration.
A script to manage the instance (by wrapping Django's manage.py) is linked to
`/var/lib/tandoor-recipes/tandoor-recipes-manage`.
'';
};
address = mkOption {
type = types.str;
default = "localhost";
description = lib.mdDoc "Web interface address.";
};
port = mkOption {
type = types.port;
default = 8080;
description = lib.mdDoc "Web interface port.";
};
extraConfig = mkOption {
type = types.attrs;
default = { };
description = lib.mdDoc ''
Extra tandoor recipes config options.
See [the example dot-env file](https://raw.githubusercontent.com/vabene1111/recipes/master/.env.template)
for available options.
'';
example = {
ENABLE_SIGNUP = "1";
};
};
package = mkOption {
type = types.package;
default = pkgs.tandoor-recipes;
defaultText = literalExpression "pkgs.tandoor-recipes";
description = lib.mdDoc "The Tandoor Recipes package to use.";
};
};
config = mkIf cfg.enable {
systemd.services.tandoor-recipes = {
description = "Tandoor Recipes server";
serviceConfig = {
ExecStart = ''
${pkg.python.pkgs.gunicorn}/bin/gunicorn recipes.wsgi
'';
Restart = "on-failure";
User = "tandoor_recipes";
DynamicUser = true;
StateDirectory = "tandoor-recipes";
WorkingDirectory = "/var/lib/tandoor-recipes";
RuntimeDirectory = "tandoor-recipes";
BindReadOnlyPaths = [
"${config.environment.etc."ssl/certs/ca-certificates.crt".source}:/etc/ssl/certs/ca-certificates.crt"
builtins.storeDir
"-/etc/resolv.conf"
"-/etc/nsswitch.conf"
"-/etc/hosts"
"-/etc/localtime"
"-/run/postgresql"
];
CapabilityBoundingSet = "";
LockPersonality = true;
MemoryDenyWriteExecute = true;
PrivateDevices = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
SystemCallArchitectures = "native";
# gunicorn needs setuid
SystemCallFilter = [ "@system-service" "~@privileged" "@resources" "@setuid" "@keyring" ];
UMask = "0066";
} // lib.optionalAttrs (cfg.port < 1024) {
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
};
wantedBy = [ "multi-user.target" ];
preStart = ''
ln -sf ${manage} tandoor-recipes-manage
# Let django migrate the DB as needed
${pkg}/bin/tandoor-recipes migrate
'';
environment = env // {
PYTHONPATH = "${pkg.python.pkgs.makePythonPath pkg.propagatedBuildInputs}:${pkg}/lib/tandoor-recipes";
};
};
};
}

View file

@ -1,9 +1,9 @@
{ config, lib, pkgs, utils, ... }: { config, lib, pkgs, utils, ... }:
with lib; with lib;
let let
cfg = config.services.ipfs; cfg = config.services.kubo;
ipfsFlags = utils.escapeSystemdExecArgs ( kuboFlags = utils.escapeSystemdExecArgs (
optional cfg.autoMount "--mount" ++ optional cfg.autoMount "--mount" ++
optional cfg.enableGC "--enable-gc" ++ optional cfg.enableGC "--enable-gc" ++
optional (cfg.serviceFdlimit != null) "--manage-fdlimit=false" ++ optional (cfg.serviceFdlimit != null) "--manage-fdlimit=false" ++
@ -50,27 +50,27 @@ in
options = { options = {
services.ipfs = { services.kubo = {
enable = mkEnableOption (lib.mdDoc "Interplanetary File System (WARNING: may cause severe network degredation)"); enable = mkEnableOption (lib.mdDoc "Interplanetary File System (WARNING: may cause severe network degredation)");
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = pkgs.ipfs; default = pkgs.kubo;
defaultText = literalExpression "pkgs.ipfs"; defaultText = literalExpression "pkgs.kubo";
description = lib.mdDoc "Which IPFS package to use."; description = lib.mdDoc "Which Kubo package to use.";
}; };
user = mkOption { user = mkOption {
type = types.str; type = types.str;
default = "ipfs"; default = "ipfs";
description = lib.mdDoc "User under which the IPFS daemon runs"; description = lib.mdDoc "User under which the Kubo daemon runs";
}; };
group = mkOption { group = mkOption {
type = types.str; type = types.str;
default = "ipfs"; default = "ipfs";
description = lib.mdDoc "Group under which the IPFS daemon runs"; description = lib.mdDoc "Group under which the Kubo daemon runs";
}; };
dataDir = mkOption { dataDir = mkOption {
@ -84,7 +84,7 @@ in
then "/var/lib/ipfs" then "/var/lib/ipfs"
else "/var/lib/ipfs/.ipfs" else "/var/lib/ipfs/.ipfs"
''; '';
description = lib.mdDoc "The data dir for IPFS"; description = lib.mdDoc "The data dir for Kubo";
}; };
defaultMode = mkOption { defaultMode = mkOption {
@ -96,13 +96,13 @@ in
autoMount = mkOption { autoMount = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = lib.mdDoc "Whether IPFS should try to mount /ipfs and /ipns at startup."; description = lib.mdDoc "Whether Kubo should try to mount /ipfs and /ipns at startup.";
}; };
autoMigrate = mkOption { autoMigrate = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
description = lib.mdDoc "Whether IPFS should try to run the fs-repo-migration at startup."; description = lib.mdDoc "Whether Kubo should try to run the fs-repo-migration at startup.";
}; };
ipfsMountDir = mkOption { ipfsMountDir = mkOption {
@ -126,7 +126,7 @@ in
apiAddress = mkOption { apiAddress = mkOption {
type = types.str; type = types.str;
default = "/ip4/127.0.0.1/tcp/5001"; default = "/ip4/127.0.0.1/tcp/5001";
description = lib.mdDoc "Where IPFS exposes its API to"; description = lib.mdDoc "Where Kubo exposes its API to";
}; };
swarmAddress = mkOption { swarmAddress = mkOption {
@ -137,7 +137,7 @@ in
"/ip4/0.0.0.0/udp/4001/quic" "/ip4/0.0.0.0/udp/4001/quic"
"/ip6/::/udp/4001/quic" "/ip6/::/udp/4001/quic"
]; ];
description = lib.mdDoc "Where IPFS listens for incoming p2p connections"; description = lib.mdDoc "Where Kubo listens for incoming p2p connections";
}; };
enableGC = mkOption { enableGC = mkOption {
@ -174,14 +174,14 @@ in
extraFlags = mkOption { extraFlags = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
description = lib.mdDoc "Extra flags passed to the IPFS daemon"; description = lib.mdDoc "Extra flags passed to the Kubo daemon";
default = [ ]; default = [ ];
}; };
localDiscovery = mkOption { localDiscovery = mkOption {
type = types.bool; type = types.bool;
description = lib.mdDoc ''Whether to enable local discovery for the ipfs daemon. description = lib.mdDoc ''Whether to enable local discovery for the Kubo daemon.
This will allow ipfs to scan ports on your local network. Some hosting services will ban you if you do this. This will allow Kubo to scan ports on your local network. Some hosting services will ban you if you do this.
''; '';
default = false; default = false;
}; };
@ -189,14 +189,14 @@ in
serviceFdlimit = mkOption { serviceFdlimit = mkOption {
type = types.nullOr types.int; type = types.nullOr types.int;
default = null; default = null;
description = lib.mdDoc "The fdlimit for the IPFS systemd unit or `null` to have the daemon attempt to manage it"; description = lib.mdDoc "The fdlimit for the Kubo systemd unit or `null` to have the daemon attempt to manage it";
example = 64 * 1024; example = 64 * 1024;
}; };
startWhenNeeded = mkOption { startWhenNeeded = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = lib.mdDoc "Whether to use socket activation to start IPFS when needed."; description = lib.mdDoc "Whether to use socket activation to start Kubo when needed.";
}; };
}; };
@ -223,7 +223,7 @@ in
uid = config.ids.uids.ipfs; uid = config.ids.uids.ipfs;
description = "IPFS daemon user"; description = "IPFS daemon user";
packages = [ packages = [
pkgs.ipfs-migrator pkgs.kubo-migrator
]; ];
}; };
}; };
@ -255,7 +255,7 @@ in
# After an unclean shutdown this file may exist which will cause the config command to attempt to talk to the daemon. This will hang forever if systemd is holding our sockets open. # After an unclean shutdown this file may exist which will cause the config command to attempt to talk to the daemon. This will hang forever if systemd is holding our sockets open.
rm -vf "$IPFS_PATH/api" rm -vf "$IPFS_PATH/api"
'' + optionalString cfg.autoMigrate '' '' + optionalString cfg.autoMigrate ''
${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y ${pkgs.kubo-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
'' + '' '' + ''
ipfs --offline config profile apply ${profile} >/dev/null ipfs --offline config profile apply ${profile} >/dev/null
fi fi
@ -279,7 +279,7 @@ in
| ipfs --offline config replace - | ipfs --offline config replace -
''; '';
serviceConfig = { serviceConfig = {
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}" ]; ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${kuboFlags}" ];
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;
StateDirectory = ""; StateDirectory = "";
@ -320,4 +320,27 @@ in
meta = { meta = {
maintainers = with lib.maintainers; [ Luflosi ]; maintainers = with lib.maintainers; [ Luflosi ];
}; };
imports = [
(mkRenamedOptionModule [ "services" "ipfs" "enable" ] [ "services" "kubo" "enable" ])
(mkRenamedOptionModule [ "services" "ipfs" "package" ] [ "services" "kubo" "package" ])
(mkRenamedOptionModule [ "services" "ipfs" "user" ] [ "services" "kubo" "user" ])
(mkRenamedOptionModule [ "services" "ipfs" "group" ] [ "services" "kubo" "group" ])
(mkRenamedOptionModule [ "services" "ipfs" "dataDir" ] [ "services" "kubo" "dataDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "defaultMode" ] [ "services" "kubo" "defaultMode" ])
(mkRenamedOptionModule [ "services" "ipfs" "autoMount" ] [ "services" "kubo" "autoMount" ])
(mkRenamedOptionModule [ "services" "ipfs" "autoMigrate" ] [ "services" "kubo" "autoMigrate" ])
(mkRenamedOptionModule [ "services" "ipfs" "ipfsMountDir" ] [ "services" "kubo" "ipfsMountDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "ipnsMountDir" ] [ "services" "kubo" "ipnsMountDir" ])
(mkRenamedOptionModule [ "services" "ipfs" "gatewayAddress" ] [ "services" "kubo" "gatewayAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "apiAddress" ] [ "services" "kubo" "apiAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "swarmAddress" ] [ "services" "kubo" "swarmAddress" ])
(mkRenamedOptionModule [ "services" "ipfs" "enableGC" ] [ "services" "kubo" "enableGC" ])
(mkRenamedOptionModule [ "services" "ipfs" "emptyRepo" ] [ "services" "kubo" "emptyRepo" ])
(mkRenamedOptionModule [ "services" "ipfs" "extraConfig" ] [ "services" "kubo" "extraConfig" ])
(mkRenamedOptionModule [ "services" "ipfs" "extraFlags" ] [ "services" "kubo" "extraFlags" ])
(mkRenamedOptionModule [ "services" "ipfs" "localDiscovery" ] [ "services" "kubo" "localDiscovery" ])
(mkRenamedOptionModule [ "services" "ipfs" "serviceFdlimit" ] [ "services" "kubo" "serviceFdlimit" ])
(mkRenamedOptionModule [ "services" "ipfs" "startWhenNeeded" ] [ "services" "kubo" "startWhenNeeded" ])
];
} }

View file

@ -22,42 +22,14 @@ let
favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop' ] favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop' ]
''; '';
nixos-background-ligtht = pkgs.nixos-artwork.wallpapers.simple-blue; nixos-background-light = pkgs.nixos-artwork.wallpapers.simple-blue;
nixos-background-dark = pkgs.nixos-artwork.wallpapers.simple-dark-gray; nixos-background-dark = pkgs.nixos-artwork.wallpapers.simple-dark-gray;
nixos-gsettings-desktop-schemas = let # TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ]; nixos-gsettings-desktop-schemas = pkgs.gnome.nixos-gsettings-overrides.override {
in inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages favoriteAppsOverride;
pkgs.runCommand "nixos-gsettings-desktop-schemas" { preferLocalBuild = true; } inherit flashbackEnabled nixos-background-dark nixos-background-light;
'' };
mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
${concatMapStrings
(pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n")
(defaultPackages ++ cfg.extraGSettingsOverridePackages)}
cp -f ${pkgs.gnome.gnome-shell}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
${optionalString flashbackEnabled ''
cp -f ${pkgs.gnome.gnome-flashback}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
''}
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
[org.gnome.desktop.background]
picture-uri='file://${nixos-background-ligtht.gnomeFilePath}'
picture-uri-dark='file://${nixos-background-dark.gnomeFilePath}'
[org.gnome.desktop.screensaver]
picture-uri='file://${nixos-background-dark.gnomeFilePath}'
${cfg.favoriteAppsOverride}
${cfg.extraGSettingsOverrides}
EOF
${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
'';
nixos-background-info = pkgs.writeTextFile rec { nixos-background-info = pkgs.writeTextFile rec {
name = "nixos-background-info"; name = "nixos-background-info";
@ -67,7 +39,7 @@ let
<wallpapers> <wallpapers>
<wallpaper deleted="false"> <wallpaper deleted="false">
<name>Blobs</name> <name>Blobs</name>
<filename>${nixos-background-ligtht.gnomeFilePath}</filename> <filename>${nixos-background-light.gnomeFilePath}</filename>
<filename-dark>${nixos-background-dark.gnomeFilePath}</filename-dark> <filename-dark>${nixos-background-dark.gnomeFilePath}</filename-dark>
<options>zoom</options> <options>zoom</options>
<shade_type>solid</shade_type> <shade_type>solid</shade_type>

View file

@ -156,6 +156,14 @@ let cfg = config.services.xserver.libinput;
''; '';
}; };
tappingButtonMap = mkOption {
type = types.nullOr (types.enum [ "lrm" "lmr" ]);
default = null;
description = lib.mdDoc ''
Set the button mapping for 1/2/3-finger taps to left/right/middle or left/middle/right, respectively.
'';
};
tappingDragLock = mkOption { tappingDragLock = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
@ -220,6 +228,7 @@ let cfg = config.services.xserver.libinput;
Option "HorizontalScrolling" "${xorgBool cfg.${deviceType}.horizontalScrolling}" Option "HorizontalScrolling" "${xorgBool cfg.${deviceType}.horizontalScrolling}"
Option "SendEventsMode" "${cfg.${deviceType}.sendEventsMode}" Option "SendEventsMode" "${cfg.${deviceType}.sendEventsMode}"
Option "Tapping" "${xorgBool cfg.${deviceType}.tapping}" Option "Tapping" "${xorgBool cfg.${deviceType}.tapping}"
${optionalString (cfg.${deviceType}.tappingButtonMap != null) ''Option "TappingButtonMap" "${cfg.${deviceType}.tappingButtonMap}"''}
Option "TappingDragLock" "${xorgBool cfg.${deviceType}.tappingDragLock}" Option "TappingDragLock" "${xorgBool cfg.${deviceType}.tappingDragLock}"
Option "DisableWhileTyping" "${xorgBool cfg.${deviceType}.disableWhileTyping}" Option "DisableWhileTyping" "${xorgBool cfg.${deviceType}.disableWhileTyping}"
${cfg.${deviceType}.additionalOptions} ${cfg.${deviceType}.additionalOptions}
@ -241,6 +250,7 @@ in {
"horizontalScrolling" "horizontalScrolling"
"sendEventsMode" "sendEventsMode"
"tapping" "tapping"
"tappingButtonMap"
"tappingDragLock" "tappingDragLock"
"transformationMatrix" "transformationMatrix"
"disableWhileTyping" "disableWhileTyping"

View file

@ -325,8 +325,8 @@ in
type = types.lines; type = types.lines;
example = "DefaultLimitCORE=infinity"; example = "DefaultLimitCORE=infinity";
description = lib.mdDoc '' description = lib.mdDoc ''
Extra config options for systemd. See man systemd-system.conf for Extra config options for systemd. See systemd-system.conf(5) man page
available options. for available options.
''; '';
}; };

View file

@ -284,7 +284,6 @@ in {
installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {}; installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
invoiceplane = handleTest ./invoiceplane.nix {}; invoiceplane = handleTest ./invoiceplane.nix {};
iodine = handleTest ./iodine.nix {}; iodine = handleTest ./iodine.nix {};
ipfs = handleTest ./ipfs.nix {};
ipv6 = handleTest ./ipv6.nix {}; ipv6 = handleTest ./ipv6.nix {};
iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {}; iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
iscsi-root = handleTest ./iscsi-root.nix {}; iscsi-root = handleTest ./iscsi-root.nix {};
@ -317,6 +316,7 @@ in {
ksm = handleTest ./ksm.nix {}; ksm = handleTest ./ksm.nix {};
kthxbye = handleTest ./kthxbye.nix {}; kthxbye = handleTest ./kthxbye.nix {};
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {}; kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
kubo = handleTest ./kubo.nix {};
ladybird = handleTest ./ladybird.nix {}; ladybird = handleTest ./ladybird.nix {};
languagetool = handleTest ./languagetool.nix {}; languagetool = handleTest ./languagetool.nix {};
latestKernel.login = handleTest ./login.nix { latestKernel = true; }; latestKernel.login = handleTest ./login.nix { latestKernel = true; };
@ -612,6 +612,7 @@ in {
systemd-shutdown = handleTest ./systemd-shutdown.nix {}; systemd-shutdown = handleTest ./systemd-shutdown.nix {};
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {}; systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
systemd-misc = handleTest ./systemd-misc.nix {}; systemd-misc = handleTest ./systemd-misc.nix {};
tandoor-recipes = handleTest ./tandoor-recipes.nix {};
taskserver = handleTest ./taskserver.nix {}; taskserver = handleTest ./taskserver.nix {};
teeworlds = handleTest ./teeworlds.nix {}; teeworlds = handleTest ./teeworlds.nix {};
telegraf = handleTest ./telegraf.nix {}; telegraf = handleTest ./telegraf.nix {};

View file

@ -1,4 +1,4 @@
import ../make-test-python.nix ({ pkgs, ... }: import ../make-test-python.nix ({ pkgs, lib, ... }:
let let
imageEnv = pkgs.buildEnv { imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env"; name = "k3s-pause-image-env";
@ -54,7 +54,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
role = "server"; role = "server";
package = pkgs.k3s; package = pkgs.k3s;
clusterInit = true; clusterInit = true;
extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local --node-ip 192.168.1.1"; extraFlags = ''
--disable coredns \
--disable local-storage \
--disable metrics-server \
--disable servicelb \
--disable traefik \
--node-ip 192.168.1.1 \
--pause-image test.local/pause:local
'';
}; };
networking.firewall.allowedTCPPorts = [ 2379 2380 6443 ]; networking.firewall.allowedTCPPorts = [ 2379 2380 6443 ];
networking.firewall.allowedUDPPorts = [ 8472 ]; networking.firewall.allowedUDPPorts = [ 8472 ];
@ -76,7 +84,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
enable = true; enable = true;
serverAddr = "https://192.168.1.1:6443"; serverAddr = "https://192.168.1.1:6443";
clusterInit = false; clusterInit = false;
extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local --node-ip 192.168.1.3"; extraFlags = ''
--disable coredns \
--disable local-storage \
--disable metrics-server \
--disable servicelb \
--disable traefik \
--node-ip 192.168.1.3 \
--pause-image test.local/pause:local
'';
}; };
networking.firewall.allowedTCPPorts = [ 2379 2380 6443 ]; networking.firewall.allowedTCPPorts = [ 2379 2380 6443 ];
networking.firewall.allowedUDPPorts = [ 8472 ]; networking.firewall.allowedUDPPorts = [ 8472 ];
@ -123,7 +139,8 @@ import ../make-test-python.nix ({ pkgs, ... }:
server.wait_until_succeeds("k3s kubectl get node agent") server.wait_until_succeeds("k3s kubectl get node agent")
for m in machines: for m in machines:
m.succeed("k3s check-config") '' # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
+ lib.optionalString (!pkgs.stdenv.isAarch64) ''m.succeed("k3s check-config")'' + ''
m.succeed( m.succeed(
"${pauseImage} | k3s ctr image import -" "${pauseImage} | k3s ctr image import -"
) )

View file

@ -1,4 +1,4 @@
import ../make-test-python.nix ({ pkgs, ... }: import ../make-test-python.nix ({ pkgs, lib, ... }:
let let
imageEnv = pkgs.buildEnv { imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env"; name = "k3s-pause-image-env";
@ -40,7 +40,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
services.k3s.role = "server"; services.k3s.role = "server";
services.k3s.package = pkgs.k3s; services.k3s.package = pkgs.k3s;
# Slightly reduce resource usage # Slightly reduce resource usage
services.k3s.extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local"; services.k3s.extraFlags = ''
--disable coredns \
--disable local-storage \
--disable metrics-server \
--disable servicelb \
--disable traefik \
--pause-image \
test.local/pause:local
'';
users.users = { users.users = {
noprivs = { noprivs = {
@ -57,7 +65,8 @@ import ../make-test-python.nix ({ pkgs, ... }:
machine.wait_for_unit("k3s") machine.wait_for_unit("k3s")
machine.succeed("k3s kubectl cluster-info") machine.succeed("k3s kubectl cluster-info")
machine.fail("sudo -u noprivs k3s kubectl cluster-info") machine.fail("sudo -u noprivs k3s kubectl cluster-info")
machine.succeed("k3s check-config") '' # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
+ lib.optionalString (!pkgs.stdenv.isAarch64) ''machine.succeed("k3s check-config")'' + ''
machine.succeed( machine.succeed(
"${pauseImage} | k3s ctr image import -" "${pauseImage} | k3s ctr image import -"

View file

@ -1,11 +1,11 @@
import ./make-test-python.nix ({ pkgs, ...} : { import ./make-test-python.nix ({ pkgs, ...} : {
name = "ipfs"; name = "kubo";
meta = with pkgs.lib.maintainers; { meta = with pkgs.lib.maintainers; {
maintainers = [ mguentner ]; maintainers = [ mguentner ];
}; };
nodes.machine = { ... }: { nodes.machine = { ... }: {
services.ipfs = { services.kubo = {
enable = true; enable = true;
# Also will add a unix domain socket socket API address, see module. # Also will add a unix domain socket socket API address, see module.
startWhenNeeded = true; startWhenNeeded = true;
@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
}; };
nodes.fuse = { ... }: { nodes.fuse = { ... }: {
services.ipfs = { services.kubo = {
enable = true; enable = true;
apiAddress = "/ip4/127.0.0.1/tcp/2324"; apiAddress = "/ip4/127.0.0.1/tcp/2324";
autoMount = true; autoMount = true;

View file

@ -0,0 +1,43 @@
import ./make-test-python.nix ({ lib, ... }: {
name = "tandoor-recipes";
meta.maintainers = with lib.maintainers; [ ambroisie ];
nodes.machine = { pkgs, ... }: {
# Setup using Postgres
services.tandoor-recipes = {
enable = true;
extraConfig = {
DB_ENGINE = "django.db.backends.postgresql";
POSTGRES_HOST = "/run/postgresql";
POSTGRES_USER = "tandoor_recipes";
POSTGRES_DB = "tandoor_recipes";
};
};
services.postgresql = {
enable = true;
ensureDatabases = [ "tandoor_recipes" ];
ensureUsers = [
{
name = "tandoor_recipes";
ensurePermissions."DATABASE tandoor_recipes" = "ALL PRIVILEGES";
}
];
};
systemd.services = {
tandoor-recipes = {
after = [ "postgresql.service" ];
};
};
};
testScript = ''
machine.wait_for_unit("tandoor-recipes.service")
with subtest("Web interface gets ready"):
# Wait until server accepts connections
machine.wait_until_succeeds("curl -fs localhost:8080")
'';
})

View file

@ -13,13 +13,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ft2-clone"; pname = "ft2-clone";
version = "1.58"; version = "1.59";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "8bitbubsy"; owner = "8bitbubsy";
repo = "ft2-clone"; repo = "ft2-clone";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-FHhASs1PKTz6G1sAKNUeft0BHbWgl44l7eiOnyQXZb8="; sha256 = "sha256-TQJCkvPV6vbhURLcuH41i8obHnfHkrCTJG0+IuSVDos=";
}; };
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh) # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)

View file

@ -2,6 +2,7 @@
, libid3tag, liblo, libmad, liboggz, libpulseaudio, libsamplerate , libid3tag, liblo, libmad, liboggz, libpulseaudio, libsamplerate
, libsndfile, lrdf, opusfile, portaudio, rubberband, serd, sord, capnproto , libsndfile, lrdf, opusfile, portaudio, rubberband, serd, sord, capnproto
, wrapQtAppsHook, pkg-config , wrapQtAppsHook, pkg-config
, libjack2
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -17,6 +18,7 @@ stdenv.mkDerivation rec {
[ alsa-lib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo [ alsa-lib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo
libmad liboggz libpulseaudio libsamplerate libsndfile lrdf opusfile libmad liboggz libpulseaudio libsamplerate libsndfile lrdf opusfile
portaudio rubberband serd sord capnproto portaudio rubberband serd sord capnproto
libjack2
]; ];
nativeBuildInputs = [ pkg-config wrapQtAppsHook ]; nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
@ -34,5 +36,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = [ maintainers.vandenoever ]; maintainers = [ maintainers.vandenoever ];
platforms = platforms.linux; platforms = platforms.linux;
# undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
broken = true; # at 2022-09-30
}; };
} }

View file

@ -3,12 +3,12 @@
, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }: , libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "20220714"; version = "20220923";
pname = "x42-plugins"; pname = "x42-plugins";
src = fetchurl { src = fetchurl {
url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz"; url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
sha256 = "sha256-myrHOfgpCwuW8YX0jZ3RutoqtXysU0ejBNcuxN3stXU="; sha256 = "sha256-9Y9up5Ziipm6ums1wESfcADKgMwas2SESgGPn74RTt4=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -96,7 +96,7 @@ self: let
./build.sh -j$NIX_BUILD_CORES ./build.sh -j$NIX_BUILD_CORES
''; '';
postInstall = '' postInstall = (old.postInstall or "") + "\n" + ''
./install.sh --prefix=$out ./install.sh --prefix=$out
''; '';

View file

@ -186,7 +186,7 @@ let
cd - cd -
''; '';
postInstall = '' postInstall = (old.postInstall or "") + "\n" + ''
install -m=755 -D source/sqlite/emacsql-sqlite \ install -m=755 -D source/sqlite/emacsql-sqlite \
$out/share/emacs/site-lisp/elpa/emacsql-sqlite-${old.version}/sqlite/emacsql-sqlite $out/share/emacs/site-lisp/elpa/emacsql-sqlite-${old.version}/sqlite/emacsql-sqlite
''; '';
@ -301,7 +301,7 @@ let
make make
popd popd
''; '';
postInstall = '' postInstall = (attrs.postInstall or "") + "\n" + ''
outd=$(echo $out/share/emacs/site-lisp/elpa/libgit-**) outd=$(echo $out/share/emacs/site-lisp/elpa/libgit-**)
mkdir $outd/build mkdir $outd/build
install -m444 -t $outd/build ./source/src/libegit2.so install -m444 -t $outd/build ./source/src/libegit2.so
@ -426,7 +426,7 @@ let
cd - cd -
''; '';
postInstall = '' postInstall = (old.postInstall or "") + "\n" + ''
mkdir -p $out/bin mkdir -p $out/bin
install -m755 -Dt $out/bin ./source/server/telega-server install -m755 -Dt $out/bin ./source/server/telega-server
''; '';
@ -456,7 +456,7 @@ let
pkgs.libtool pkgs.libtool
(pkgs.zeromq.override { enableDrafts = true; }) (pkgs.zeromq.override { enableDrafts = true; })
]; ];
postInstall = '' postInstall = (old.postInstall or "") + "\n" + ''
mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-* mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-*
rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
@ -533,7 +533,7 @@ let
]; ];
# we need the proper out directory to exist, so we do this in the # we need the proper out directory to exist, so we do this in the
# postInstall instead of postBuild # postInstall instead of postBuild
postInstall = '' postInstall = (old.postInstall or "") + "\n" + ''
pushd source/build >/dev/null pushd source/build >/dev/null
make make
install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so

View file

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, python3 , python3
, neovim , neovim
, fetchpatch
}: }:
with python3.pkgs; buildPythonApplication rec { with python3.pkgs; buildPythonApplication rec {
@ -15,6 +16,14 @@ with python3.pkgs; buildPythonApplication rec {
sha256 = "0lbz4w8hgxsw4k1pxafrl3rhydrvi5jc6vnsmkvnhh6l6rxlmvmq"; sha256 = "0lbz4w8hgxsw4k1pxafrl3rhydrvi5jc6vnsmkvnhh6l6rxlmvmq";
}; };
patches = [
# Fix a compatibility issue with neovim 0.8.0
(fetchpatch {
url = "https://github.com/mhinz/neovim-remote/commit/56d2a4097f4b639a16902390d9bdd8d1350f948c.patch";
hash = "sha256-/PjE+9yfHtOUEp3xBaobzRM8Eo2wqOhnF1Es7SIdxvM=";
})
];
propagatedBuildInputs = [ propagatedBuildInputs = [
pynvim pynvim
psutil psutil
@ -26,15 +35,12 @@ with python3.pkgs; buildPythonApplication rec {
pytestCheckHook pytestCheckHook
]; ];
disabledTests = [
# these tests get stuck and never return
"test_escape_filenames_properly"
"test_escape_single_quotes_in_filenames"
"test_escape_double_quotes_in_filenames"
];
doCheck = !stdenv.isDarwin; doCheck = !stdenv.isDarwin;
preCheck = ''
export HOME="$(mktemp -d)"
'';
meta = with lib; { meta = with lib; {
description = "A tool that helps controlling nvim processes from a terminal"; description = "A tool that helps controlling nvim processes from a terminal";
homepage = "https://github.com/mhinz/neovim-remote/"; homepage = "https://github.com/mhinz/neovim-remote/";

File diff suppressed because it is too large Load diff

View file

@ -53,6 +53,7 @@
, zsh , zsh
# command-t dependencies # command-t dependencies
, getconf
, ruby , ruby
# cpsm dependencies # cpsm dependencies
@ -239,10 +240,11 @@ self: super: {
}; };
command-t = super.command-t.overrideAttrs (old: { command-t = super.command-t.overrideAttrs (old: {
buildInputs = [ ruby ]; nativeBuildInputs = [ getconf ruby ];
buildPhase = '' buildPhase = ''
substituteInPlace lua/wincent/commandt/lib/Makefile \ substituteInPlace lua/wincent/commandt/lib/Makefile \
--replace '/bin/bash' 'bash' --replace '/bin/bash' 'bash' \
--replace xcrun ""
make build make build
rm ruby/command-t/ext/command-t/*.o rm ruby/command-t/ext/command-t/*.o
''; '';
@ -983,7 +985,7 @@ self: super: {
libiconv libiconv
]; ];
cargoSha256 = "sha256-g5yNqDCN1O9x7/HcM8NsZlMwLudDTuPLE5gSpScNQnY="; cargoSha256 = "sha256-AY14YEdMpHXmiHwEA9hwSwwwJ8hYIomAuIuCJv1OUDw=";
}; };
in in
'' ''

View file

@ -60,6 +60,7 @@ https://github.com/vmchale/ats-vim/,,
https://github.com/ray-x/aurora/,, https://github.com/ray-x/aurora/,,
https://github.com/hotwatermorning/auto-git-diff/,, https://github.com/hotwatermorning/auto-git-diff/,,
https://github.com/jiangmiao/auto-pairs/,, https://github.com/jiangmiao/auto-pairs/,,
https://github.com/pocco81/auto-save.nvim/,HEAD,
https://github.com/rmagatti/auto-session/,, https://github.com/rmagatti/auto-session/,,
https://github.com/vim-scripts/autoload_cscope.vim/,, https://github.com/vim-scripts/autoload_cscope.vim/,,
https://github.com/rafi/awesome-vim-colorschemes/,, https://github.com/rafi/awesome-vim-colorschemes/,,
@ -460,6 +461,7 @@ https://github.com/vijaymarupudi/nvim-fzf/,,
https://github.com/vijaymarupudi/nvim-fzf-commands/,, https://github.com/vijaymarupudi/nvim-fzf-commands/,,
https://github.com/sakhnik/nvim-gdb/,, https://github.com/sakhnik/nvim-gdb/,,
https://github.com/smiteshp/nvim-gps/,, https://github.com/smiteshp/nvim-gps/,,
https://github.com/brenoprata10/nvim-highlight-colors/,HEAD,
https://github.com/Iron-E/nvim-highlite/,, https://github.com/Iron-E/nvim-highlite/,,
https://github.com/kevinhwang91/nvim-hlslens/,, https://github.com/kevinhwang91/nvim-hlslens/,,
https://github.com/neovimhaskell/nvim-hs.vim/,, https://github.com/neovimhaskell/nvim-hs.vim/,,
@ -479,6 +481,7 @@ https://github.com/AckslD/nvim-neoclip.lua/,,
https://github.com/yamatsum/nvim-nonicons/,, https://github.com/yamatsum/nvim-nonicons/,,
https://github.com/rcarriga/nvim-notify/,, https://github.com/rcarriga/nvim-notify/,,
https://github.com/gennaro-tedesco/nvim-peekup/,, https://github.com/gennaro-tedesco/nvim-peekup/,,
https://github.com/olrtg/nvim-rename-state/,HEAD,
https://github.com/dstein64/nvim-scrollview/,, https://github.com/dstein64/nvim-scrollview/,,
https://github.com/dcampos/nvim-snippy/,HEAD, https://github.com/dcampos/nvim-snippy/,HEAD,
https://github.com/ishan9299/nvim-solarized-lua/,, https://github.com/ishan9299/nvim-solarized-lua/,,
@ -636,6 +639,7 @@ https://github.com/tom-anders/telescope-vim-bookmarks.nvim/,,
https://github.com/nvim-telescope/telescope-z.nvim/,, https://github.com/nvim-telescope/telescope-z.nvim/,,
https://github.com/jvgrootveld/telescope-zoxide/,, https://github.com/jvgrootveld/telescope-zoxide/,,
https://github.com/nvim-telescope/telescope.nvim/,, https://github.com/nvim-telescope/telescope.nvim/,,
https://github.com/axelvc/template-string.nvim/,HEAD,
https://github.com/jacoborus/tender.vim/,, https://github.com/jacoborus/tender.vim/,,
https://github.com/wincent/terminus/,, https://github.com/wincent/terminus/,,
https://github.com/oberblastmeister/termwrapper.nvim/,, https://github.com/oberblastmeister/termwrapper.nvim/,,
@ -1071,6 +1075,7 @@ https://github.com/mattn/webapi-vim/,,
https://github.com/folke/which-key.nvim/,, https://github.com/folke/which-key.nvim/,,
https://github.com/gelguy/wilder.nvim/,, https://github.com/gelguy/wilder.nvim/,,
https://github.com/gcmt/wildfire.vim/,, https://github.com/gcmt/wildfire.vim/,,
https://github.com/anuvyklack/windows.nvim/,,
https://github.com/sindrets/winshift.nvim/,, https://github.com/sindrets/winshift.nvim/,,
https://github.com/wannesm/wmgraphviz.vim/,, https://github.com/wannesm/wmgraphviz.vim/,,
https://github.com/vim-scripts/wombat256.vim/,, https://github.com/vim-scripts/wombat256.vim/,,
@ -1087,4 +1092,3 @@ https://github.com/ziglang/zig.vim/,,
https://github.com/mickael-menu/zk-nvim/,HEAD, https://github.com/mickael-menu/zk-nvim/,HEAD,
https://github.com/troydm/zoomwintab.vim/,, https://github.com/troydm/zoomwintab.vim/,,
https://github.com/nanotee/zoxide.vim/,, https://github.com/nanotee/zoxide.vim/,,
https://github.com/anuvyklack/windows.nvim/,,

View file

@ -326,7 +326,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=attilabuti.brainfuck-syntax"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=attilabuti.brainfuck-syntax";
homepage = "https://github.com/attilabuti/brainfuck-syntax"; homepage = "https://github.com/attilabuti/brainfuck-syntax";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -410,7 +410,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=badochov.ocaml-formatter"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=badochov.ocaml-formatter";
homepage = "https://github.com/badochov/ocamlformatter-vscode"; homepage = "https://github.com/badochov/ocamlformatter-vscode";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -585,7 +585,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense";
homepage = "https://github.com/ChristianKohler/PathIntellisense"; homepage = "https://github.com/ChristianKohler/PathIntellisense";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ imgabe superherointj ]; maintainers = with maintainers; [ imgabe ];
}; };
}; };
@ -943,7 +943,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode";
homepage = "https://github.com/prettier/prettier-vscode"; homepage = "https://github.com/prettier/prettier-vscode";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ datafoo superherointj ]; maintainers = with maintainers; [ datafoo ];
}; };
}; };
@ -1134,7 +1134,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=gencer.html-slim-scss-css-class-completion"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=gencer.html-slim-scss-css-class-completion";
homepage = "https://github.com/gencer/SCSS-Everywhere"; homepage = "https://github.com/gencer/SCSS-Everywhere";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -1150,7 +1150,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=gitlab.gitlab-workflow"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=gitlab.gitlab-workflow";
homepage = "https://gitlab.com/gitlab-org/gitlab-vscode-extension#readme"; homepage = "https://gitlab.com/gitlab-org/gitlab-vscode-extension#readme";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -1400,7 +1400,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=IronGeek.vscode-env"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=IronGeek.vscode-env";
homepage = "https://github.com/IronGeek/vscode-env.git"; homepage = "https://github.com/IronGeek/vscode-env.git";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -1468,7 +1468,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=jnoortheen.nix-ide"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=jnoortheen.nix-ide";
homepage = "https://github.com/jnoortheen/vscode-nix-ide"; homepage = "https://github.com/jnoortheen/vscode-nix-ide";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj SuperSandro2000 ]; maintainers = with maintainers; [ SuperSandro2000 ];
}; };
}; };
@ -1963,7 +1963,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=phoenixframework.phoenix"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=phoenixframework.phoenix";
homepage = "https://github.com/phoenixframework/vscode-phoenix"; homepage = "https://github.com/phoenixframework/vscode-phoenix";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -2027,7 +2027,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ocamllabs.ocaml-platform"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=ocamllabs.ocaml-platform";
homepage = "https://github.com/ocamllabs/vscode-ocaml-platform"; homepage = "https://github.com/ocamllabs/vscode-ocaml-platform";
license = licenses.isc; license = licenses.isc;
maintainers = with maintainers; [ ratsclub superherointj ]; maintainers = with maintainers; [ ratsclub ];
}; };
mktplcRef = { mktplcRef = {
name = "ocaml-platform"; name = "ocaml-platform";
@ -2090,7 +2090,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=Prisma.prisma"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=Prisma.prisma";
homepage = "https://github.com/prisma/language-tools"; homepage = "https://github.com/prisma/language-tools";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -2332,7 +2332,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=stefanjarina.vscode-eex-snippets"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=stefanjarina.vscode-eex-snippets";
homepage = "https://github.com/stefanjarina/vscode-eex-snippets"; homepage = "https://github.com/stefanjarina/vscode-eex-snippets";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };
@ -2374,8 +2374,8 @@ let
mktplcRef = { mktplcRef = {
name = "code-spell-checker"; name = "code-spell-checker";
publisher = "streetsidesoftware"; publisher = "streetsidesoftware";
version = "2.3.1"; version = "2.10.1";
sha256 = "0pm9i3zw4aa4qrcqnzb9bz166rl7p6nwb81m9rqzisdc85mx4s3x"; sha256 = "sha256-FeYkSML6QYtuIHIbAovOqlPwkKfNkHr7IdMCWwkynQ0=";
}; };
meta = with lib; { meta = with lib; {
changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog"; changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
@ -2469,7 +2469,7 @@ let
downloadPage = "https://marketplace.visualstudio.com/items?itemName=theangryepicbanana.language-pascal"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=theangryepicbanana.language-pascal";
homepage = "https://github.com/ALANVF/vscode-pascal-magic"; homepage = "https://github.com/ALANVF/vscode-pascal-magic";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
}; };

View file

@ -0,0 +1,50 @@
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, pkg-config
, openssl
}:
rustPlatform.buildRustPackage rec {
pname = "artem";
version = "1.1.5";
src = fetchFromGitHub {
owner = "finefindus";
repo = pname;
rev = "v${version}";
sha256 = "1jax39gizlcbqnkjckxwm5h0wdk5dk8dasaj9wxv7yidbcbgj4zh";
};
cargoSha256 = "sha256-n2NOWrgcMVHpNCHL7r8+Kl1e01XYadaNM7UdE8fQo1U=";
nativeBuildInputs = [ installShellFiles pkg-config ];
buildInputs = [ openssl ];
OPENSSL_NO_VENDOR = 1;
checkFlags = [
# require internet access
"--skip=arguments::input::url_input"
"--skip=full_file_compare_url"
# flaky
"--skip=full_file_compare_html"
];
postInstall = ''
installManPage $releaseDir/build/artem-*/out/artem.1
installShellCompletion $releaseDir/build/artem-*/out/artem.{bash,fish} \
--zsh $releaseDir/build/artem-*/out/_artem
'';
meta = with lib; {
description = "A small CLI program to convert images to ASCII art";
homepage = "https://github.com/finefindus/artem";
changelog = "https://github.com/finefindus/artem/blob/v${version}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ figsoda ];
};
}

View file

@ -120,8 +120,8 @@ in stdenv.mkDerivation rec {
cp -a resources/icons $out/share cp -a resources/icons $out/share
interp="$(cat $NIX_CC/nix-support/dynamic-linker)" interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper} patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper} patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
for file in $(find $out -type f -name \*.so\* ); do for file in $(find $out -type f -name \*.so\* ); do
patchelf --set-rpath ${rpath}:$out/share/1password $file patchelf --set-rpath ${rpath}:$out/share/1password $file
done done

View file

@ -120,8 +120,8 @@ in stdenv.mkDerivation rec {
cp -a resources/icons $out/share cp -a resources/icons $out/share
interp="$(cat $NIX_CC/nix-support/dynamic-linker)" interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper} patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper} patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,op-ssh-sign}
for file in $(find $out -type f -name \*.so\* ); do for file in $(find $out -type f -name \*.so\* ); do
patchelf --set-rpath ${rpath}:$out/share/1password $file patchelf --set-rpath ${rpath}:$out/share/1password $file
done done

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cubiomes-viewer"; pname = "cubiomes-viewer";
version = "2.4.1"; version = "2.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Cubitect"; owner = "Cubitect";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-vneX3Wo1DUK1WIwBP3nMUDV26EN2A7XIqMcTZQ4UI4A="; sha256 = "sha256-VZsq2HMvhFB6DR+Z3bVtyIJ2O984QaryYWCcP/a7paw=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -89,7 +89,13 @@ python3.pkgs.buildPythonApplication {
qdarkstyle qdarkstyle
]; ];
preBuild = '' postPatch = ''
# make compatible with protobuf4 by easing dependencies ...
substituteInPlace ./contrib/requirements/requirements.txt \
--replace "protobuf>=3.12,<4" "protobuf>=3.12"
# ... and regenerating the paymentrequest_pb2.py file
protoc --python_out=. electrum/paymentrequest.proto
substituteInPlace ./electrum/ecc_fast.py \ substituteInPlace ./electrum/ecc_fast.py \
--replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary} --replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}
'' + (if enableQt then '' '' + (if enableQt then ''

View file

@ -0,0 +1,163 @@
{ lib, stdenv, fetchFromGitHub, fetchsvn
, scons, pkg-config, python3
, glib, libxml2, gtk2, libGLU, gnome2
, runCommand, writeScriptBin, runtimeShell
, makeDesktopItem, copyDesktopItems
}:
let
q3Pack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk";
rev = 144;
sha256 = "sha256-U1GtMv775JEOAJ1W2kSaRNPDCnW39W+KqVDTTG2yISY=";
};
urtPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/UrTPack/trunk";
rev = 144;
sha256 = "sha256-DQjENyQa1kEieU3ZWyMt2e4oEN0X2K3lxP79sBI91iI=";
};
etPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/ETPack/trunk";
rev = 144;
sha256 = "sha256-mqaWOYfF/F6ABh7nKA36YvsywZIdwJ9IitFi2Xp5rgk=";
};
qlPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/QLPack/trunk";
rev = 144;
sha256 = "sha256-lrn4nu3JI7j+t9jYd+UFE55GOCbc6+Sh2fZfVlEr1WM=";
};
q2Pack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/Q2Pack/trunk";
rev = 144;
sha256 = "sha256-ad8dRV+28Zz5yQsJU7hvteSIn9wWpehuqxMspw3yvvU=";
};
quetooPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/QuetooPack/trunk";
rev = 144;
sha256 = "sha256-SOblPJgdVEZrTYtvDlcF7paIm3UitSVFQ9+RahXkO64=";
};
jaPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/JAPack/trunk";
rev = 144;
sha256 = "sha256-P6lI+nNrPwoWJl5ThUHIA3Iw1nWVo2djaaWHAF5HuDo=";
};
stvefPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/STVEFPack/trunk";
rev = 144;
sha256 = "sha256-quNyVC6fg1FIBsLWx0LzRK2JfxKMNJeUEIkWGhGJHhI=";
};
wolfPack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/WolfPack/trunk";
rev = 144;
sha256 = "sha256-693k6KiIchQddVGBhRJf7ikv6ut5L9rcLt0FTZ7pSvw=";
};
unvanquishedPack = fetchsvn {
url = "https://github.com/Unvanquished/unvanquished-mapeditor-support.git/trunk/build/gtkradiant/";
rev = 212;
sha256 = "sha256-weBlnSBezPppbhsMOT66vubioTxpDC+AcKIOC2Xitdo=";
};
q1Pack = fetchsvn {
url = "svn://svn.icculus.org/gtkradiant-gamepacks/Q1Pack/trunk";
rev = 144;
sha256 = "sha256-JfmDIUoDY7dYdMgwwUMgcwNhWxuxsdkv1taw8DXhPY4=";
};
packs = runCommand "gtkradiant-packs" {} ''
mkdir -p $out
ln -s ${q3Pack} $out/Q3Pack
ln -s ${urtPack} $out/UrTPack
ln -s ${etPack} $out/ETPack
ln -s ${qlPack} $out/QLPack
ln -s ${q2Pack} $out/Q2Pack
ln -s ${quetooPack} $out/QuetooPack
ln -s ${jaPack} $out/JAPack
ln -s ${stvefPack} $out/STVEFPack
ln -s ${wolfPack} $out/WolfPack
ln -s ${unvanquishedPack} $out/UnvanquishedPack
ln -s ${q1Pack} $out/Q1Pack
'';
in
stdenv.mkDerivation rec {
pname = "gtkradiant";
version = "unstable-2022-07-31";
src = fetchFromGitHub {
owner = "TTimo";
repo = "GtkRadiant";
rev = "5b498bfa01bde6c2c9eb60fb94cf04666e52d22d";
sha256 = "sha256-407faeQnhxqbWgOUunQKj2JhHeqIzPPgrhz2K5O4CaM=";
};
# patch paths so that .game settings are put into the user's home instead of the read-only /nix/store
postPatch = ''
substituteInPlace radiant/preferences.cpp \
--replace 'gameFilePath += "games/";' 'gameFilePath = g_get_home_dir(); gameFilePath += "/.cache/radiant/games/";printf("gameFilePath: %s\\n", gameFilePath);' \
--replace 'radCreateDirectory( gameFilePath );' 'if (g_mkdir_with_parents( gameFilePath, 0777 ) == -1) {radCreateDirectory( gameFilePath );};' \
--replace 'strGamesPath = g_strAppPath.GetBuffer();' 'strGamesPath = g_get_home_dir();' \
--replace 'strGamesPath += "games";' 'strGamesPath += "/.cache/radiant/games";'
'';
nativeBuildInputs =
let
python = python3.withPackages (ps: with ps; [
urllib3
]);
svn = writeScriptBin "svn" ''
#!${runtimeShell} -e
if [ "$1" = checkout ]; then
# link predownloaded pack to destination
mkdir -p $(dirname $3)
ln -s ${packs}/$(basename $3) $3
# verify existence
test -e $(readlink $3)
elif [ "$1" = update ]; then
# verify existence
test -e $(readlink $3)
else
echo "$@"
exit 1
fi
'';
in [
scons
pkg-config
python
svn
copyDesktopItems
];
buildInputs = [ glib libxml2 gtk2 libGLU gnome2.gtkglext ];
enableParallelBuilding = true;
desktopItems = [ (makeDesktopItem {
name = "gtkradiant";
exec = "gtkradiant";
desktopName = "GtkRadiant";
comment = meta.description;
categories = [ "Development" ];
icon = "gtkradiant";
# includes its own splash screen
startupNotify = false;
}) ];
postInstall = ''
mkdir -p $out/{bin,lib}
cp -ar install $out/lib/gtkradiant
ln -s ../lib/gtkradiant/radiant.bin $out/bin/gtkradiant
ln -s ../lib/gtkradiant/{q3map2,q3map2_urt,q3data} $out/bin/
mkdir -p $out/share/pixmaps
ln -s ../../lib/gtkradiant/bitmaps/icon.png $out/share/pixmaps/gtkradiant.png
'';
meta = with lib; {
description = "Level editor for idTech games";
homepage = "https://icculus.org/gtkradiant/";
license = with licenses; [ gpl2Only bsdOriginal lgpl21Only ];
maintainers = with maintainers; [ astro ];
platforms = platforms.unix;
};
}

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "gum"; pname = "gum";
version = "0.6.0"; version = "0.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "charmbracelet"; owner = "charmbracelet";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-pEULArQDwKZzpD0GVH21L1v9xVZiBz91kL/jPJjJav4="; sha256 = "sha256-T8dIk99qUMyeZvfM+rLA13HAmITQ8SMsQ9uIXtMM+MM=";
}; };
vendorSha256 = "sha256-vvNoO5eABGVwvAzK33uPelmo3BKxfqiYgEXZI7kgeSo="; vendorSha256 = "sha256-sht9e4pam4aJCylUZPeVGwk9TYttumJSniNVxI0LfNM=";
nativeBuildInputs = [ nativeBuildInputs = [
installShellFiles installShellFiles

View file

@ -0,0 +1,52 @@
{ stdenv
, lib
, fetchurl
, autoPatchelfHook
, pkg-config
, dpkg
, openssl
, webkitgtk
, libappindicator
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
name = "holochain-launcher";
version = "0.6.0";
src = fetchurl {
url = "https://github.com/holochain/launcher/releases/download/v${version}/holochain-launcher_${version}_amd64.deb";
sha256 = "sha256-o9cUFtq5XUkbC3yFRFiV2k4uWjb+szlE8qV+G9Gve5E=";
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
wrapGAppsHook # required for FileChooser
];
buildInputs = [
openssl
webkitgtk
libappindicator
];
unpackCmd = "dpkg-deb -x $curSrc source";
installPhase = ''
mv usr $out
'';
preFixup = ''
patchelf --add-needed "libappindicator3.so" "$out/bin/holochain-launcher"
'';
meta = with lib; {
description = "A cross-platform executable that launches a local Holochain conductor, and installs and opens apps";
homepage = "https://github.com/holochain/launcher";
maintainers = [ maintainers.steveej ];
license = licenses.cal10;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
platforms = platforms.linux;
};
}

View file

@ -41,7 +41,7 @@ buildGoModule rec {
''; '';
license = licenses.mit; license = licenses.mit;
homepage = "https://github.com/mschneider82/keylight-control"; homepage = "https://github.com/mschneider82/keylight-control";
maintainers = with maintainers; [ superherointj ]; maintainers = with maintainers; [ ];
}; };
} }

View file

@ -33,16 +33,3 @@ index c6c31cbf5..c51b59ce6 100644
} }
int RSettings::getSnapRange() { int RSettings::getSnapRange() {
diff --git a/qcad.desktop b/qcad.desktop
index 93c5e9720..2d0e6bf32 100644
--- a/qcad.desktop
+++ b/qcad.desktop
@@ -48,7 +48,7 @@ Comment[sv]=2D CAD-system
Comment[sl]=Sistem 2D CAD
Comment[uk]=2D САПР
Comment[tr]=2D CAD Sistemi
-Exec=qcad %F
+Exec=qcad-bin %F
X-MultipleArgs=true
Icon=qcad_icon
Terminal=false

View file

@ -0,0 +1,19 @@
{ lib, fetchFromGitHub }:
rec {
version = "1.4.1";
src = fetchFromGitHub {
owner = "TandoorRecipes";
repo = "recipes";
rev = version;
sha256 = "sha256-Q/IwjSByCUXVYxhk3U7oWvlMxrJxyajhpsRyq67PVHY=";
};
yarnSha256 = "sha256-gH0q3pJ2BC5pAU9KSo3C9DDRUnpypoyLOEqKSrkxYrk=";
meta = with lib; {
homepage = "https://tandoor.dev/";
license = licenses.agpl3Only;
maintainers = with maintainers; [ ambroisie ];
};
}

View file

@ -0,0 +1,140 @@
{ callPackage
, nixosTests
, python3
}:
let
python = python3.override {
packageOverrides = self: super: {
django = super.django_4;
# Tests are incompatible with Django 4
django-js-reverse = super.django-js-reverse.overridePythonAttrs (_: {
doCheck = false;
});
};
};
common = callPackage ./common.nix { };
frontend = callPackage ./frontend.nix { };
in
python.pkgs.pythonPackages.buildPythonPackage rec {
pname = "tandoor-recipes";
inherit (common) version src;
format = "other";
patches = [
# Allow setting MEDIA_ROOT through environment variable
./media-root.patch
];
propagatedBuildInputs = with python.pkgs; [
beautifulsoup4
bleach
bleach-allowlist
boto3
cryptography
django
django-allauth
django-annoying
django-auth-ldap
django-autocomplete-light
django-cleanup
django-cors-headers
django-crispy-forms
django-hcaptcha
django-js-reverse
django-oauth-toolkit
django-prometheus
django-scopes
django-storages
django-tables2
django-webpack-loader
django_treebeard
djangorestframework
drf-writable-nested
gunicorn
icalendar
jinja2
lxml
markdown
microdata
pillow
psycopg2
pyppeteer
python-dotenv
pytube
pyyaml
recipe-scrapers
requests
six
uritemplate
validators
webdavclient3
whitenoise
];
configurePhase = ''
runHook preConfigure
ln -sf ${frontend}/ cookbook/static/vue
cp ${frontend}/webpack-stats.json vue/
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
# Avoid dependency on django debug toolbar
export DEBUG=0
# See https://github.com/TandoorRecipes/recipes/issues/2043
mkdir cookbook/static/themes/maps/
touch cookbook/static/themes/maps/style.min.css.map
touch cookbook/static/themes/bootstrap.min.css.map
touch cookbook/static/css/bootstrap-vue.min.css.map
${python.pythonForBuild.interpreter} manage.py collectstatic_js_reverse
${python.pythonForBuild.interpreter} manage.py collectstatic
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp -r . $out/lib/tandoor-recipes
chmod +x $out/lib/tandoor-recipes/manage.py
makeWrapper $out/lib/tandoor-recipes/manage.py $out/bin/tandoor-recipes \
--prefix PYTHONPATH : "$PYTHONPATH"
runHook postInstall
'';
checkInputs = with python.pkgs; [
pytestCheckHook
pytest-django
pytest-factoryboy
];
passthru = {
inherit frontend python;
updateScript = ./update.sh;
tests = {
inherit (nixosTests) tandoor-recipes;
};
};
meta = common.meta // {
description = ''
Application for managing recipes, planning meals, building shopping lists
and much much more!
'';
};
}

View file

@ -0,0 +1,57 @@
{ stdenv, fetchYarnDeps, fixup_yarn_lock, callPackage, nodejs-16_x }:
let
common = callPackage ./common.nix { };
in
stdenv.mkDerivation {
pname = "tandoor-recipes-frontend";
inherit (common) version;
src = "${common.src}/vue";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${common.src}/vue/yarn.lock";
sha256 = common.yarnSha256;
};
nativeBuildInputs = [
fixup_yarn_lock
# Use Node JS 16 because of @achrinza/node-ipc@9.2.2
nodejs-16_x
nodejs-16_x.pkgs.yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$yarnOfflineCache"
fixup_yarn_lock yarn.lock
command -v yarn
yarn install --frozen-lockfile --offline --no-progress --non-interactive
patchShebangs node_modules/
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -R ../cookbook/static/vue/ $out
cp webpack-stats.json $out
echo "${common.version}" > "$out/version"
runHook postInstall
'';
meta = common.meta // {
description = "Tandoor Recipes frontend";
};
}

View file

@ -0,0 +1,17 @@
diff --git a/recipes/settings.py b/recipes/settings.py
index 5676fe0a..6c6f1747 100644
--- a/recipes/settings.py
+++ b/recipes/settings.py
@@ -426,10 +426,10 @@ if os.getenv('S3_ACCESS_KEY', ''):
AWS_S3_CUSTOM_DOMAIN = os.getenv('S3_CUSTOM_DOMAIN', '')
MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
- MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
+ MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(BASE_DIR, "mediafiles"))
else:
MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
- MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
+ MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(BASE_DIR, "mediafiles"))
# Serve static files with gzip
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

View file

@ -0,0 +1,42 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=../../../../ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq
# shellcheck shell=bash
if [ -n "$GITHUB_TOKEN" ]; then
TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
fi
if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
echo "Regenerates packaging data for the tandoor-recipes package."
echo "Usage: $0 [git release tag]"
exit 1
fi
version="$1"
set -euo pipefail
if [ -z "$version" ]; then
version="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/TandoorRecipes/recipes/releases?per_page=1" | jq -r '.[0].tag_name')"
fi
package_src="https://raw.githubusercontent.com/TandoorRecipes/recipes/$version"
src_hash=$(nix-prefetch-github TandoorRecipes recipes --rev "${version}" | jq -r .sha256)
tmpdir=$(mktemp -d)
trap 'rm -rf "$tmpdir"' EXIT
pushd "$tmpdir"
wget "${TOKEN_ARGS[@]}" "$package_src/vue/yarn.lock"
yarn_hash=$(prefetch-yarn-deps yarn.lock)
popd
# Use friendlier hashes
src_hash=$(nix hash to-sri --type sha256 "$src_hash")
yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash")
sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
sed -i -E -e "s#sha256 = \".*\"#sha256 = \"$src_hash\"#" common.nix
sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$yarn_hash\"#" common.nix

View file

@ -144,14 +144,15 @@ stdenv.mkDerivation {
inherit gtk3; inherit gtk3;
buildInputs = [ wrapGAppsHook gtk3 adwaita-icon-theme ]; nativeBuildInputs = [ wrapGAppsHook ];
buildInputs = [ gtk3 adwaita-icon-theme ];
# "strip" after "patchelf" may break binaries. # "strip" after "patchelf" may break binaries.
# See: https://github.com/NixOS/patchelf/issues/10 # See: https://github.com/NixOS/patchelf/issues/10
dontStrip = true; dontStrip = true;
dontPatchELF = true; dontPatchELF = true;
patchPhase = '' postPatch = ''
# Don't download updates from Mozilla directly # Don't download updates from Mozilla directly
echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js
''; '';

View file

@ -1,5 +1,5 @@
{ stdenv, lib, makeDesktopItem, makeWrapper, makeBinaryWrapper, lndir, config { stdenv, lib, makeDesktopItem, makeWrapper, makeBinaryWrapper, lndir, config
, fetchurl, zip, unzip, jq, xdg-utils, writeText , jq, xdg-utils, writeText
## various stuff that can be plugged in ## various stuff that can be plugged in
, ffmpeg_5, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc , ffmpeg_5, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc

View file

@ -0,0 +1,41 @@
{ lib, fetchurl, appimageTools }:
let
pname = "polypane";
version = "10.0.1";
src = fetchurl {
url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
name = "${pname}-${version}.AppImage";
sha256 = "eujv99L5svMhDIKHFOfm7sOwNZ4xiUaIsimfOf4BBik=";
};
appimageContents = appimageTools.extractType2 {
inherit pname src version;
};
in appimageTools.wrapType2 {
inherit pname src version;
multiPkgs = null;
extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
extraInstallCommands = ''
ln -s $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
install -m 444 -D ${appimageContents}/${pname}.png \
$out/share/icons/hicolor/512x512/apps/${pname}.png
'';
meta = with lib; {
description = "Browser with unified devtools targeting responsability and acessibility";
longDescription = ''
The stand-alone browser for ambitious developers that want to build responsive,
accessible and performant websites in a fraction of the time it takes with other browsers.
'';
homepage = "https://polypane.app/";
maintainers = with maintainers; [ zoedsoupe ];
platforms = [ "x86_64-linux" ];
changelog = "https://polypane.app/docs/changelog/";
license = licenses.unfree;
};
}

View file

@ -48,6 +48,6 @@ buildGoModule rec {
downloadPage = "https://github.com/cert-manager/cert-manager"; downloadPage = "https://github.com/cert-manager/cert-manager";
license = licenses.asl20; license = licenses.asl20;
homepage = "https://cert-manager.io/"; homepage = "https://cert-manager.io/";
maintainers = with maintainers; [ joshvanl superherointj ]; maintainers = with maintainers; [ joshvanl ];
}; };
} }

View file

@ -65,7 +65,7 @@ in buildGoModule rec {
''; '';
homepage = "https://fluxcd.io"; homepage = "https://fluxcd.io";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ bryanasdev000 jlesquembre superherointj ]; maintainers = with maintainers; [ bryanasdev000 jlesquembre ];
mainProgram = "flux"; mainProgram = "flux";
}; };
} }

View file

@ -0,0 +1,25 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "hashi-up";
version = "0.16.0";
src = fetchFromGitHub {
owner = "jsiebens";
repo = pname;
rev = "v${version}";
sha256 = "sha256-PdZ8X2pJ5TfT0bJ4/P/XbMTv+yyL5/1AxIFHnL/qNcg=";
};
vendorSha256 = "sha256-dircE3WlDPsPnF+0wT5RG/c4hC8qPs8NaSGM5wpvVlM=";
meta = with lib; {
description = "A lightweight utility to install HashiCorp Consul, Nomad, or Vault on any remote Linux host";
homepage = "https://github.com/jsiebens/hashi-up";
license = licenses.mit;
maintainers = with maintainers; [ lucperkins ];
};
}

View file

@ -42,7 +42,7 @@ buildGoModule rec {
description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh"; description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
homepage = "https://istio.io/latest/docs/reference/commands/istioctl"; homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ superherointj bryanasdev000 veehaitch ]; maintainers = with maintainers; [ bryanasdev000 veehaitch ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View file

@ -47,10 +47,10 @@ with lib;
# Those pieces of software we entirely ignore upstream's handling of, and just # Those pieces of software we entirely ignore upstream's handling of, and just
# make sure they're in the path if desired. # make sure they're in the path if desired.
let let
k3sVersion = "1.25.0+k3s1"; # k3s git tag k3sVersion = "1.25.2+k3s1"; # k3s git tag
k3sCommit = "26e9405767263a2915723cb72b1ffd7f50687a8f"; # k3s git commit at the above version k3sCommit = "53c268d8eb90ceea5e1c7865f89db5c7fb8763bc"; # k3s git commit at the above version
k3sRepoSha256 = "0rk0svqx26rn6qlvvyj5rsqb87195h1qcf84qmmvf874qwszwpgh"; k3sRepoSha256 = "1w040bsrf981k19rwaaxjsv52pgzc0k77x083fkhysmrca565z0y";
k3sVendorSha256 = "sha256-YX/yLOLtDxGhRB4tic6oTli/qeeSnpP+f+S+sVXXDSs="; k3sVendorSha256 = "sha256-8Xti08sjFk1WKimH/GEb99oqBdFO79WVCvYyXIWMpgo=";
# taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9 # taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
# The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know. # The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
@ -77,7 +77,7 @@ let
description = "A lightweight Kubernetes distribution"; description = "A lightweight Kubernetes distribution";
license = licenses.asl20; license = licenses.asl20;
homepage = "https://k3s.io"; homepage = "https://k3s.io";
maintainers = with maintainers; [ euank mic92 superherointj ]; maintainers = with maintainers; [ euank mic92 ];
platforms = platforms.linux; platforms = platforms.linux;
}; };

View file

@ -7,8 +7,8 @@ WORKDIR=$(mktemp -d)
trap "rm -rf ${WORKDIR}" EXIT trap "rm -rf ${WORKDIR}" EXIT
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/ NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/
NIXPKGS_K3S_FOLDER=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/ NIXPKGS_K3S_PATH=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
cd ${NIXPKGS_K3S_FOLDER} cd ${NIXPKGS_K3S_PATH}
LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ curl --silent ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
@ -60,7 +60,7 @@ CRI_CTL_VERSION=$(grep github.com/kubernetes-sigs/cri-tools ${FILE_GO_MOD} \
| head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//') | head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//')
setKV () { setKV () {
sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_FOLDER}default.nix sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_PATH}default.nix
} }
setKV k3sVersion ${K3S_VERSION} setKV k3sVersion ${K3S_VERSION}
@ -91,3 +91,11 @@ else
echo "Update failed. K3S_VENDOR_SHA256 is empty." echo "Update failed. K3S_VENDOR_SHA256 is empty."
exit 1 exit 1
fi fi
# `git` flag here is to be used by local maintainers to speed up the bump process
if [ $# -eq 1 ] && [ "$1" = "git" ]; then
OLD_VERSION="$(nix-instantiate --eval -E "with import $NIXPKGS_ROOT. {}; k3s.version or (builtins.parseDrvName k3s.name).version" | tr -d '"')"
git switch -c "package-k3s-${K3S_VERSION}"
git add "$NIXPKGS_K3S_PATH"/default.nix
git commit -m "k3s: ${OLD_VERSION} -> ${K3S_VERSION}"
fi

View file

@ -9,13 +9,13 @@
buildGoModule rec { buildGoModule rec {
pname = "k3sup"; pname = "k3sup";
version = "0.12.3"; version = "0.12.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "alexellis"; owner = "alexellis";
repo = "k3sup"; repo = "k3sup";
rev = version; rev = version;
sha256 = "sha256-2S/VnxVb056aPxFd5LxtUdaNlosHLlu7Tl/RQbY/zpA="; sha256 = "sha256-EOGYOxRhpPHOSo9ccCSvat9kq2SlujPqno8v7/zmuto=";
}; };
nativeBuildInputs = [ makeWrapper installShellFiles ]; nativeBuildInputs = [ makeWrapper installShellFiles ];

View file

@ -53,6 +53,6 @@ buildGoModule rec {
downloadPage = "https://github.com/linkerd/linkerd2/"; downloadPage = "https://github.com/linkerd/linkerd2/";
homepage = "https://linkerd.io/"; homepage = "https://linkerd.io/";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ bryanasdev000 Gonzih superherointj ]; maintainers = with maintainers; [ bryanasdev000 Gonzih ];
}; };
} }

View file

@ -2,18 +2,18 @@
buildGoModule rec{ buildGoModule rec{
pname = "pinniped"; pname = "pinniped";
version = "0.19.0"; version = "0.20.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vmware-tanzu"; owner = "vmware-tanzu";
repo = "pinniped"; repo = "pinniped";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-VGvT0jj2f4+jiaPQkebL0GE+W4U8+RfSEsGr2sNBu2Q="; sha256 = "sha256-JKZij9f6zlBzbYolxz03R5j95zKELVmEhX+QRTxF/cc=";
}; };
subPackages = "cmd/pinniped"; subPackages = "cmd/pinniped";
vendorSha256 = "sha256-7jQRUYJiRdYuAy3x+VPK4Nh5GF6ME7juloagm85oOVg="; vendorSha256 = "sha256-szv/B7LG/In0j6MT6KCnuUfaCnK7RsJOLeuOtJ/ig9w=";
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" ];

View file

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "signal-cli"; pname = "signal-cli";
version = "0.10.11"; version = "0.11.0";
# Building from source would be preferred, but is much more involved. # Building from source would be preferred, but is much more involved.
src = fetchurl { src = fetchurl {
url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}-Linux.tar.gz"; url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}-Linux.tar.gz";
sha256 = "sha256-tBgtSYKSoyze9qFWpy6IUdwMU9KCLZGEIpOkjLdHsHM="; sha256 = "sha256-BIVeY4H5pn8hdjUkSDrlVMTXy5wuMskkSlccfgCWc6Q=";
}; };
buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ]; buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];

View file

@ -1,23 +0,0 @@
{ lib
, buildEnv
, makeWrapper
, ipfs-migrator-unwrapped
, ipfs-migrator-all-fs-repo-migrations
}:
buildEnv {
name = "ipfs-migrator-${ipfs-migrator-unwrapped.version}";
nativeBuildInputs = [ makeWrapper ];
paths = [ ipfs-migrator-unwrapped ];
pathsToLink = [ "/bin" ];
postBuild = ''
wrapProgram "$out/bin/fs-repo-migrations" \
--prefix PATH ':' '${lib.makeBinPath [ ipfs-migrator-all-fs-repo-migrations ]}'
'';
inherit (ipfs-migrator-unwrapped) meta;
}

View file

@ -20,13 +20,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "srain"; pname = "srain";
version = "1.4.1"; version = "1.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SrainApp"; owner = "SrainApp";
repo = "srain"; repo = "srain";
rev = version; rev = version;
sha256 = "sha256-zkSePzmbi/QnUYJO/henkxfhuN+BXTXtKGPW7M2QyBY="; sha256 = "sha256-AJ02S5+A/n8kO6lic8EbPYqNDmHL/tKbXhIkHTrcXOM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,23 +2,23 @@
, stdenv , stdenv
, symlinkJoin , symlinkJoin
, buildGoModule , buildGoModule
, ipfs-migrator-unwrapped , kubo-migrator-unwrapped
}: }:
# This package contains all the individual migrations in the bin directory. # This package contains all the individual migrations in the bin directory.
# This is used by fs-repo-migrations and could also be used by IPFS itself # This is used by fs-repo-migrations and could also be used by Kubo itself
# when starting it like this: ipfs daemon --migrate # when starting it like this: ipfs daemon --migrate
let let
fs-repo-common = pname: version: buildGoModule { fs-repo-common = pname: version: buildGoModule {
inherit pname version; inherit pname version;
inherit (ipfs-migrator-unwrapped) src; inherit (kubo-migrator-unwrapped) src;
sourceRoot = "source/${pname}"; sourceRoot = "source/${pname}";
vendorSha256 = null; vendorSha256 = null;
doCheck = false; doCheck = false;
meta = ipfs-migrator-unwrapped.meta // { meta = kubo-migrator-unwrapped.meta // {
mainProgram = pname; mainProgram = pname;
description = "Individual migration for the filesystem repository of ipfs clients"; description = "Individual migration for the filesystem repository of Kubo clients";
}; };
}; };
@ -58,6 +58,6 @@ let
in in
symlinkJoin { symlinkJoin {
name = "ipfs-migrator-all-fs-repo-migrations-${version}"; name = "kubo-migrator-all-fs-repo-migrations-${version}";
paths = all-migrations; paths = all-migrations;
} }

View file

@ -0,0 +1,23 @@
{ lib
, buildEnv
, makeWrapper
, kubo-migrator-unwrapped
, kubo-migrator-all-fs-repo-migrations
}:
buildEnv {
name = "kubo-migrator-${kubo-migrator-unwrapped.version}";
nativeBuildInputs = [ makeWrapper ];
paths = [ kubo-migrator-unwrapped ];
pathsToLink = [ "/bin" ];
postBuild = ''
wrapProgram "$out/bin/fs-repo-migrations" \
--prefix PATH ':' '${lib.makeBinPath [ kubo-migrator-all-fs-repo-migrations ]}'
'';
inherit (kubo-migrator-unwrapped) meta;
}

View file

@ -4,7 +4,7 @@
}: }:
buildGoModule rec { buildGoModule rec {
pname = "ipfs-migrator"; pname = "kubo-migrator";
version = "2.0.2"; version = "2.0.2";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -26,7 +26,7 @@ buildGoModule rec {
doCheck = false; doCheck = false;
meta = with lib; { meta = with lib; {
description = "Migrations for the filesystem repository of ipfs clients"; description = "Migrations for the filesystem repository of Kubo clients";
homepage = "https://github.com/ipfs/fs-repo-migrations"; homepage = "https://github.com/ipfs/fs-repo-migrations";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ Luflosi elitak ]; maintainers = with maintainers; [ Luflosi elitak ];

View file

@ -1,13 +1,13 @@
{ lib, buildGoModule, fetchurl, nixosTests, openssl, pkg-config }: { lib, buildGoModule, fetchurl, nixosTests, openssl, pkg-config }:
buildGoModule rec { buildGoModule rec {
pname = "ipfs"; pname = "kubo";
version = "0.15.0"; # When updating, also check if the repo version changed and adjust repoVersion below version = "0.15.0"; # When updating, also check if the repo version changed and adjust repoVersion below
rev = "v${version}"; rev = "v${version}";
passthru.repoVersion = "12"; # Also update ipfs-migrator when changing the repo version passthru.repoVersion = "12"; # Also update kubo-migrator when changing the repo version
# go-ipfs makes changes to it's source tarball that don't match the git source. # Kubo makes changes to it's source tarball that don't match the git source.
src = fetchurl { src = fetchurl {
url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz"; url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz";
hash = "sha256-GkOY1G2CKXbMbHXkw5v27HmfkJIl2nZOmjjZbzuaRWs="; hash = "sha256-GkOY1G2CKXbMbHXkw5v27HmfkJIl2nZOmjjZbzuaRWs=";
@ -15,10 +15,10 @@ buildGoModule rec {
# tarball contains multiple files/directories # tarball contains multiple files/directories
postUnpack = '' postUnpack = ''
mkdir ipfs-src mkdir kubo-src
shopt -s extglob shopt -s extglob
mv !(ipfs-src) ipfs-src || true mv !(kubo-src) kubo-src || true
cd ipfs-src cd kubo-src
''; '';
sourceRoot = "."; sourceRoot = ".";
@ -29,7 +29,7 @@ buildGoModule rec {
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
tags = [ "openssl" ]; tags = [ "openssl" ];
passthru.tests.ipfs = nixosTests.ipfs; passthru.tests.kubo = nixosTests.kubo;
vendorSha256 = null; vendorSha256 = null;
@ -57,6 +57,7 @@ buildGoModule rec {
homepage = "https://ipfs.io/"; homepage = "https://ipfs.io/";
license = licenses.mit; license = licenses.mit;
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "ipfs";
maintainers = with maintainers; [ fpletz ]; maintainers = with maintainers; [ fpletz ];
}; };
} }

View file

@ -27,13 +27,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "beamerpresenter"; pname = "beamerpresenter";
version = "0.2.3"; version = "0.2.3-1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stiglers-eponym"; owner = "stiglers-eponym";
repo = "BeamerPresenter"; repo = "BeamerPresenter";
rev = "v${version}"; rev = "dd41a00b3c6c8b881fa62945165c965634df66f0";
sha256 = "1n9d0i0j67ymnghn8zkqf52c88zby6rqin8aicbw8cpn35fqf5a6"; sha256 = "11yj1zl8hdnqbynkbyzg8kwyx1jl8c87x8f8qyllpk0s6cg304d0";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -12,13 +12,13 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "avogadro2"; pname = "avogadro2";
version = "1.95.1"; version = "1.97.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OpenChemistry"; owner = "OpenChemistry";
repo = "avogadroapp"; repo = "avogadroapp";
rev = version; rev = version;
sha256 = "9GnsxQsMuik6CPDmJbJPF0/+LXbZHf/JLevpSsMEoP0="; hash = "sha256-gZpMgFSPz70QNfd8gH5Jb9RTxQfQalWx33LkgXLEqOQ=";
}; };
postUnpack = '' postUnpack = ''

View file

@ -11,13 +11,13 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "cp2k"; pname = "cp2k";
version = "9.1.0"; version = "2022.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cp2k"; owner = "cp2k";
repo = "cp2k"; repo = "cp2k";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-P9RwZmrE1E0UTQVasQxWAqa3LBLyJNGeJo8T6u5WWcw="; hash = "sha256-zDIsgPcLnA0ATJEN1vQClpkToqvIyW7KuXhyGiXJXDw=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -7,12 +7,11 @@
, netcdf , netcdf
, glew , glew
, glm , glm
, freeglut
, libpng , libpng
, libxml2 , libxml2
, tk
, freetype , freetype
, msgpack , msgpack
, qt5
}: }:
let let
pname = "pymol"; pname = "pymol";
@ -47,12 +46,11 @@ python3Packages.buildPythonApplication rec {
sha256 = "sha256-JdsgcVF1w1xFPZxVcyS+GcWg4a1Bd4SvxFOuSdlz9SM="; sha256 = "sha256-JdsgcVF1w1xFPZxVcyS+GcWg4a1Bd4SvxFOuSdlz9SM=";
}; };
buildInputs = [ python3Packages.numpy glew glm freeglut libpng libxml2 tk freetype msgpack netcdf ]; nativeBuildInputs = [ qt5.wrapQtAppsHook ];
buildInputs = [ python3Packages.numpy python3Packages.pyqt5 glew glm libpng libxml2 freetype msgpack netcdf ];
NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2"; NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2";
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
setupPyBuildFlags = [ "--glut" ];
installPhase = '' installPhase = ''
python setup.py install --home="$out" python setup.py install --home="$out"
runHook postInstall runHook postInstall
@ -60,13 +58,17 @@ python3Packages.buildPythonApplication rec {
postInstall = with python3Packages; '' postInstall = with python3Packages; ''
wrapProgram $out/bin/pymol \ wrapProgram $out/bin/pymol \
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ Pmw tkinter ]} --prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages [ pyqt5 pyqt5.pyqt5_sip ]}
mkdir -p "$out/share/icons/" mkdir -p "$out/share/icons/"
ln -s ../../lib/python/pymol/pymol_path/data/pymol/icons/icon2.svg "$out/share/icons/pymol.svg" ln -s ../../lib/python/pymol/pymol_path/data/pymol/icons/icon2.svg "$out/share/icons/pymol.svg"
cp -r "${desktopItem}/share/applications/" "$out/share/" cp -r "${desktopItem}/share/applications/" "$out/share/"
''; '';
preFixup = ''
wrapQtApp "$out/bin/pymol"
'';
meta = with lib; { meta = with lib; {
broken = stdenv.isDarwin; broken = stdenv.isDarwin;
inherit description; inherit description;

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "librepcb"; pname = "librepcb";
version = "0.1.6"; version = "0.1.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0gzf3asdgdicpikb412134ybqnbbark948yrfhvba2w4i9cwbk2r"; sha256 = "sha256-zqvvc3CHqdRWVUFt4BkH5Vq50/FKNvMNW2NvGyfWwFM=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "verilator"; pname = "verilator";
version = "4.224"; version = "4.226";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Kn44yWkNcOLkc79HLDTxx5zQn/vqft+hhbvsoUAKR7I="; sha256 = "sha256-X6Kwpcm+ugu+4gVkWfsqdCPFTESHzJ1jjCPnGqE3/vo=";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -0,0 +1,22 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }:
stdenv.mkDerivation rec {
name = "readstat";
version = "1.1.8";
src = fetchFromGitHub {
owner = "WizardMac";
repo = "ReadStat";
rev = "v${version}";
sha256 = "1r04lq45h1yn34v1mgfiqjfzyaqv4axqlby0nkandamcsqyhc7y4";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
meta = {
homepage = "https://github.com/WizardMac/ReadStat";
description = "Command-line tool (+ C library) for converting SAS, Stata, and SPSS files";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ swflint ];
};
}

View file

@ -166,7 +166,7 @@ stdenv.mkDerivation rec {
url = "https://www.desy.de/~twhite/${pname}/${pname}-${version}.tar.gz"; url = "https://www.desy.de/~twhite/${pname}/${pname}-${version}.tar.gz";
sha256 = "0i9d5ggalic7alj97dxjdys7010kxhm2cb4lwakvigl023j8ms79"; sha256 = "0i9d5ggalic7alj97dxjdys7010kxhm2cb4lwakvigl023j8ms79";
}; };
nativeBuildInputs = [ meson pkg-config ninja flex bison doxygen opencl-headers ] nativeBuildInputs = [ meson pkg-config ninja flex bison doxygen opencl-headers makeWrapper ]
++ lib.optionals withGui [ wrapGAppsHook ]; ++ lib.optionals withGui [ wrapGAppsHook ];
buildInputs = [ buildInputs = [
hdf5 hdf5

View file

@ -4,6 +4,7 @@
, libxkbcommon, libXi, libXext, wayland-protocols, wayland , libxkbcommon, libXi, libXext, wayland-protocols, wayland
, lcms2 , lcms2
, librsync , librsync
, openssl
, installShellFiles , installShellFiles
, dbus , dbus
, darwin , darwin
@ -27,14 +28,14 @@
with python3Packages; with python3Packages;
buildPythonApplication rec { buildPythonApplication rec {
pname = "kitty"; pname = "kitty";
version = "0.25.2"; version = "0.26.2";
format = "other"; format = "other";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kovidgoyal"; owner = "kovidgoyal";
repo = "kitty"; repo = "kitty";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-o/vVz1lPfsgkzbYjYhIrScCAROmVdiPsNwjW/m5n7Us="; sha256 = "sha256-IqXRkKzOfqWolH/534nmM2R/69olhFOk6wbbF4ifRd0=";
}; };
buildInputs = [ buildInputs = [
@ -42,6 +43,7 @@ buildPythonApplication rec {
ncurses ncurses
lcms2 lcms2
librsync librsync
openssl.dev
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
Cocoa Cocoa
CoreGraphics CoreGraphics
@ -77,6 +79,9 @@ buildPythonApplication rec {
outputs = [ "out" "terminfo" "shell_integration" ]; outputs = [ "out" "terminfo" "shell_integration" ];
patches = [ patches = [
# Gets `test_ssh_env_vars` to pass when `bzip2` is in the output of `env`.
./fix-test_ssh_env_vars.patch
# Needed on darwin # Needed on darwin
# Gets `test_ssh_shell_integration` to pass for `zsh` when `compinit` complains about # Gets `test_ssh_shell_integration` to pass for `zsh` when `compinit` complains about
@ -98,14 +103,18 @@ buildPythonApplication rec {
--update-check-interval=0 \ --update-check-interval=0 \
--shell-integration=enabled\ no-rc --shell-integration=enabled\ no-rc
''; '';
darwinOptions = ''
--disable-link-time-optimization \
${commonOptions}
'';
in '' in ''
runHook preBuild runHook preBuild
${if stdenv.isDarwin then '' ${if stdenv.isDarwin then ''
${python.interpreter} setup.py kitty.app \ ${python.interpreter} setup.py build ${darwinOptions}
--disable-link-time-optimization \ make docs
${commonOptions} ${python.interpreter} setup.py kitty.app ${darwinOptions}
make man
'' else '' '' else ''
${python.interpreter} setup.py build-launcher
${python.interpreter} setup.py linux-package \ ${python.interpreter} setup.py linux-package \
--egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \ --egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \
--startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \ --startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
@ -126,7 +135,7 @@ buildPythonApplication rec {
]; ];
# skip failing tests due to darwin sandbox # skip failing tests due to darwin sandbox
preCheck = if stdenv.isDarwin then '' preCheck = lib.optionalString stdenv.isDarwin ''
substituteInPlace kitty_tests/file_transmission.py \ substituteInPlace kitty_tests/file_transmission.py \
--replace test_file_get dont_test_file_get \ --replace test_file_get dont_test_file_get \
--replace test_path_mapping_receive dont_test_path_mapping_receive --replace test_path_mapping_receive dont_test_path_mapping_receive
@ -138,15 +147,9 @@ buildPythonApplication rec {
--replace test_ssh_connection_data dont_test_ssh_connection_data --replace test_ssh_connection_data dont_test_ssh_connection_data
substituteInPlace kitty_tests/fonts.py \ substituteInPlace kitty_tests/fonts.py \
--replace 'class Rendering(BaseTest)' 'class Rendering' --replace 'class Rendering(BaseTest)' 'class Rendering'
'' else ""; '';
checkPhase = checkPhase = ''
let buildBinPath =
if stdenv.isDarwin
then "kitty.app/Contents/MacOS"
else "linux-package/bin";
in
''
runHook preCheck runHook preCheck
# Fontconfig error: Cannot load default config file: No such file: (null) # Fontconfig error: Cannot load default config file: No such file: (null)
@ -155,7 +158,8 @@ buildPythonApplication rec {
# Required for `test_ssh_shell_integration` to pass. # Required for `test_ssh_shell_integration` to pass.
export TERM=kitty export TERM=kitty
env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py make test
runHook postCheck
''; '';
installPhase = '' installPhase = ''

View file

@ -0,0 +1,13 @@
diff --git a/kitty_tests/ssh.py b/kitty_tests/ssh.py
index 7b3bdbeb..710aeceb 100644
--- a/kitty_tests/ssh.py
+++ b/kitty_tests/ssh.py
@@ -272,8 +272,6 @@ def check_bootstrap(self, sh, home_dir, login_shell='', SHELL_INTEGRATION_VALUE=
def check_untar_or_fail():
q = pty.screen_contents()
- if 'bzip2' in q:
- raise ValueError('Untarring failed with screen contents:\n' + q)
return 'UNTAR_DONE' in q
pty.wait_till(check_untar_or_fail)
self.assertTrue(os.path.exists(os.path.join(home_dir, '.terminfo/kitty.terminfo')))

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, gtk3, vte, lua5_3, pcre2 }:
stdenv.mkDerivation rec {
pname = "tym";
version = "3.3.0";
src = fetchFromGitHub {
owner = "endaaman";
repo = "${pname}";
rev = "${version}";
sha256 = "sha256-ufIYJgbHmSJJbnx4hyDx0DmIjaGCxKXtiekcXcyka14=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = [
gtk3
vte
lua5_3
pcre2
];
meta = with lib; {
description = "Lua-configurable terminal emulator";
homepage = "https://github.com/endaaman/tym";
license = licenses.mit;
maintainers = [ maintainers.wesleyjrz ];
platforms = platforms.linux;
};
}

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "gh"; pname = "gh";
version = "2.16.1"; version = "2.17.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cli"; owner = "cli";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-I8/vO7SfZr4JVbFNBgIaP7CwHn7q6CMIZMjLBsTLY2Q="; sha256 = "sha256-2GDhDmk7AVb2DGxibIQM0b7hj2iGvjeLJ4+vAZggxtk=";
}; };
vendorSha256 = "sha256-TVMFOit2pi+ZVcppzs0iKNXluDW9ZQDH2d7cPSzg+ak="; vendorSha256 = "sha256-TVMFOit2pi+ZVcppzs0iKNXluDW9ZQDH2d7cPSzg+ak=";

View file

@ -0,0 +1,25 @@
{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, pkg-config, glm, libGL }:
buildKodiBinaryAddon rec {
pname = "visualization-waveform";
namespace = "visualization.waveform";
version = "19.0.2";
src = fetchFromGitHub {
owner = "xbmc";
repo = namespace;
rev = "${version}-${rel}";
hash = "sha256-IQLW4CDNtt/ptE679hnoXbharq61Ru9S2m7QbJLtNSI=";
};
extraBuildInputs = [ pkg-config libGL ];
propagatedBuildInputs = [ glm ];
meta = with lib; {
homepage = "https://github.com/xbmc/visualization.waveform";
description = "Waveform visualization for kodi";
platforms = platforms.all;
license = licenses.gpl2Only;
maintainers = teams.kodi.members;
};
}

View file

@ -4,8 +4,8 @@
, appstream-glib , appstream-glib
, desktop-file-utils , desktop-file-utils
, glib , glib
, gobject-introspection
, gst_all_1 , gst_all_1
, pipewire
, gtk4 , gtk4
, libadwaita , libadwaita
, libpulseaudio , libpulseaudio
@ -13,27 +13,26 @@
, meson , meson
, ninja , ninja
, pkg-config , pkg-config
, python3
, rustPlatform , rustPlatform
, wayland , wayland
, wrapGAppsHook , wrapGAppsHook4
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "kooha"; pname = "kooha";
version = "2.0.1"; version = "2.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SeaDve"; owner = "SeaDve";
repo = "Kooha"; repo = "Kooha";
rev = "v${version}"; rev = "v${version}";
sha256 = "05ynpwjdpl7zp9f17zhhvb59rbz3gd7hc0amla1g85ldgfxbgl00"; hash = "sha256-HgouIMbwpmR/K1hPU7QDzeEtyi5hC66huvInkJFLS2w=";
}; };
cargoDeps = rustPlatform.fetchCargoTarball { cargoDeps = rustPlatform.fetchCargoTarball {
inherit src; inherit src;
name = "${pname}-${version}"; name = "${pname}-${version}";
hash = "sha256:16zf6vb001z7xdv2g4kpmb2vqsmaql2cpsx1rl9zrfhpl2z6frs9"; hash = "sha256-rdxD9pys11QcUtufcZ/zCrviytyc8hIXJfsXg2JoaKE=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -41,18 +40,15 @@ stdenv.mkDerivation rec {
desktop-file-utils desktop-file-utils
meson meson
ninja ninja
python3
pkg-config pkg-config
rustPlatform.cargoSetupHook rustPlatform.cargoSetupHook
rustPlatform.rust.cargo rustPlatform.rust.cargo
rustPlatform.rust.rustc rustPlatform.rust.rustc
wayland wrapGAppsHook4
wrapGAppsHook
]; ];
buildInputs = [ buildInputs = [
glib glib
gobject-introspection
gst_all_1.gstreamer gst_all_1.gstreamer
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-ugly gst_all_1.gst-plugins-ugly
@ -60,18 +56,10 @@ stdenv.mkDerivation rec {
libadwaita libadwaita
libpulseaudio libpulseaudio
librsvg librsvg
wayland
pipewire
]; ];
propagatedBuildInputs = [ python3.pkgs.pygobject3 ];
strictDeps = false;
# Fixes https://github.com/NixOS/nixpkgs/issues/31168
postPatch = ''
patchShebangs build-aux/meson_post_install.py
substituteInPlace meson.build --replace '>= 1.0.0-alpha.1' '>= 1.0.0'
'';
installCheckPhase = '' installCheckPhase = ''
$out/bin/kooha --help $out/bin/kooha --help
''; '';

View file

@ -6,11 +6,12 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "streamlink"; pname = "streamlink";
version = "3.2.0"; version = "5.0.1";
format = "pyproject";
src = python3Packages.fetchPypi { src = python3Packages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-l3DS2DhExTeKc+FBMNy3YKvIVlZsqgpB/FuXoN7V2SY="; hash = "sha256-PKRioPBhTV6i3ckQgcKuhQFmpBvUQE4o3FLej8qx4mM=";
}; };
checkInputs = with python3Packages; [ checkInputs = with python3Packages; [
@ -20,6 +21,10 @@ python3Packages.buildPythonApplication rec {
freezegun freezegun
]; ];
nativeBuildInputs = with python3Packages; [
versioningit
];
propagatedBuildInputs = (with python3Packages; [ propagatedBuildInputs = (with python3Packages; [
isodate isodate
lxml lxml

View file

@ -50,7 +50,7 @@
homepage = "http://www.tvdr.de/"; homepage = "http://www.tvdr.de/";
description = "Video Disc Recorder"; description = "Video Disc Recorder";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = platforms.linux;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
}; };
} }

View file

@ -32,9 +32,11 @@ in {
buildInputs = [ vdr ]; buildInputs = [ vdr ];
src = fetchurl { src = fetchFromGitHub {
url = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/${pname}-${version}.tgz"; repo = "vdr-plugin-femon";
sha256 = "1hra1xslj8s68zbyr8zdqp8yap0aj1p6rxyc6cwy1j122kwcnapp"; owner = "rofafor";
sha256 = "sha256-0qBMYgNKk7N9Bj8fAoOokUo+G9gfj16N5e7dhoKRBqs=";
rev = "v${version}";
}; };
postPatch = "substituteInPlace Makefile --replace /bin/true true"; postPatch = "substituteInPlace Makefile --replace /bin/true true";
@ -42,23 +44,23 @@ in {
makeFlags = [ "DESTDIR=$(out)" ]; makeFlags = [ "DESTDIR=$(out)" ];
meta = with lib; { meta = with lib; {
homepage = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/"; inherit (src.meta) homepage;
description = "DVB Frontend Status Monitor plugin for VDR"; description = "DVB Frontend Status Monitor plugin for VDR";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; inherit (vdr.meta) platforms;
}; };
}; };
markad = stdenv.mkDerivation rec { markad = stdenv.mkDerivation rec {
pname = "vdr-markad"; pname = "vdr-markad";
version = "3.0.25"; version = "3.0.26";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "vdr-plugin-markad"; repo = "vdr-plugin-markad";
owner = "kfb77"; owner = "kfb77";
sha256 = "sha256-m7cUAxwXj62spelHYH6uTIoViSavSR0d4psr7+KLJg8="; sha256 = "sha256-0J6XeLgr9IZSWsheQZWVNRLIxp8iyCvR9Y0z/yrbTnI=";
rev = "v${version}"; rev = "v${version}";
}; };
@ -88,11 +90,11 @@ in {
installFlags = buildFlags; installFlags = buildFlags;
meta = with lib; { meta = with lib; {
homepage = "https://github.com/kfb77/vdr-plugin-markad"; inherit (src.meta) homepage;
description = "MarkAd marks advertisements in VDR recordings."; description = "MarkAd marks advertisements in VDR recordings.";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; inherit (vdr.meta) platforms;
}; };
}; };
@ -101,8 +103,9 @@ in {
pname = "vdr-epgsearch"; pname = "vdr-epgsearch";
version = "2.4.1"; version = "2.4.1";
src = fetchgit { src = fetchFromGitHub {
url = "git://projects.vdr-developer.org/vdr-plugin-epgsearch.git"; repo = "vdr-plugin-epgsearch";
owner = "vdr-projects";
sha256 = "sha256-UlbPCkUFN0Gyxjw9xq2STFTDZRVcPPNjadSQd4o2o9U="; sha256 = "sha256-UlbPCkUFN0Gyxjw9xq2STFTDZRVcPPNjadSQd4o2o9U=";
rev = "v${version}"; rev = "v${version}";
}; };
@ -136,18 +139,18 @@ in {
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];
meta = with lib; { meta = with lib; {
homepage = "http://winni.vdr-developer.org/epgsearch"; inherit (src.meta) homepage;
description = "Searchtimer and replacement of the VDR program menu"; description = "Searchtimer and replacement of the VDR program menu";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; inherit (vdr.meta) platforms;
}; };
}; };
vnsiserver = stdenv.mkDerivation rec { vnsiserver = stdenv.mkDerivation rec {
pname = "vdr-vnsiserver"; pname = "vdr-vnsiserver";
version = "1.8.0"; version = "1.8.1";
buildInputs = [ vdr ]; buildInputs = [ vdr ];
@ -155,17 +158,17 @@ in {
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "vdr-plugin-vnsiserver"; repo = "vdr-plugin-vnsiserver";
owner = "FernetMenta"; owner = "vdr-projects";
rev = "v${version}"; rev = version;
sha256 = "0n7idpxqx7ayd63scl6xwdx828ik4kb2mwz0c30cfjnmnxxd45lw"; sha256 = "sha256-1C0Z7NoU+FNch4BhrAcbJdzVvGuH1YDaxJ+9PflR78E=";
}; };
meta = with lib; { meta = with lib; {
homepage = "https://github.com/FernetMenta/vdr-plugin-vnsiserver"; inherit (src.meta) homepage;
description = "VDR plugin to handle KODI clients."; description = "VDR plugin to handle KODI clients.";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; inherit (vdr.meta) platforms;
}; };
}; };
@ -201,7 +204,7 @@ in {
description = "VDR Text2Skin Plugin"; description = "VDR Text2Skin Plugin";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; inherit (vdr.meta) platforms;
}; };
}; };
@ -222,11 +225,11 @@ in {
installFlags = [ "DESTDIR=$(out)" ]; installFlags = [ "DESTDIR=$(out)" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/jowi24/vdr-fritz"; inherit (src.meta) homepage;
description = "A plugin for VDR to access AVMs Fritz Box routers"; description = "A plugin for VDR to access AVMs Fritz Box routers";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; inherit (vdr.meta) platforms;
}; };
}; };
} }

View file

@ -12,12 +12,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "vdr-softhddevice"; pname = "vdr-softhddevice";
version = "1.9.0"; version = "1.9.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ua0lnj"; owner = "ua0lnj";
repo = "vdr-plugin-softhddevice"; repo = "vdr-plugin-softhddevice";
sha256 = "sha256-IqG1Jr+fV4MMyTTOUGY34HNqS8qvAH+CSi2IEyVGVFo="; sha256 = "sha256-2kh8qMxaAjekvgjMVRmm1nPzlN2wjY/6qYjFyo6CLlg=";
rev = "v${version}"; rev = "v${version}";
}; };
@ -40,11 +40,11 @@ stdenv.mkDerivation rec {
''; '';
meta = with lib; { meta = with lib; {
homepage = "https://github.com/ua0lnj/vdr-plugin-softhddevice"; inherit (src.meta) homepage;
description = "VDR SoftHDDevice Plug-in"; description = "VDR SoftHDDevice Plug-in";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ]; inherit (vdr.meta) platforms;
}; };
} }

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
]; ];
meta = with lib;{ meta = with lib;{
homepage = "https://github.com/vdr-projects/vdr-plugin-streamdev"; inherit (src.meta) homepage;
description = "This PlugIn is a VDR implementation of the VTP (Video Transfer Protocol) Version 0.0.3 (see file PROTOCOL) and a basic HTTP Streaming Protocol."; description = "This PlugIn is a VDR implementation of the VTP (Video Transfer Protocol) Version 0.0.3 (see file PROTOCOL) and a basic HTTP Streaming Protocol.";
maintainers = [ maintainers.ck3d ]; maintainers = [ maintainers.ck3d ];
license = licenses.gpl2; license = licenses.gpl2;

View file

@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "canokey-qemu";
version = "unstable-2022-06-23";
rev = "b70af31229f1858089c3366f71b8d771de4a1e84";
src = fetchFromGitHub {
owner = "canokeys";
repo = "canokey-qemu";
inherit rev;
fetchSubmodules = true;
hash = "sha256-VJb59K/skx+DhoJs5qGUu070hAjQZC2Z6hAMXuX0bMw=";
};
postPatch = ''
substituteInPlace canokey-core/CMakeLists.txt \
--replace "COMMAND git describe --always --tags --long --abbrev=8 --dirty >>" "COMMAND echo '$rev' >>"
'';
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake ];
meta = with lib; {
homepage = "https://github.com/canokeys/canokey-qemu";
description = "CanoKey QEMU Virt Card";
license = licenses.asl20;
maintainers = with maintainers; [ oxalica ];
};
}

View file

@ -26,6 +26,7 @@
, smbdSupport ? false, samba , smbdSupport ? false, samba
, tpmSupport ? true , tpmSupport ? true
, uringSupport ? stdenv.isLinux, liburing , uringSupport ? stdenv.isLinux, liburing
, canokeySupport ? false, canokey-qemu
, hostCpuOnly ? false , hostCpuOnly ? false
, hostCpuTargets ? (if hostCpuOnly , hostCpuTargets ? (if hostCpuOnly
then (lib.optional stdenv.isx86_64 "i386-softmmu" then (lib.optional stdenv.isx86_64 "i386-softmmu"
@ -79,7 +80,8 @@ stdenv.mkDerivation rec {
++ lib.optionals virglSupport [ virglrenderer ] ++ lib.optionals virglSupport [ virglrenderer ]
++ lib.optionals libiscsiSupport [ libiscsi ] ++ lib.optionals libiscsiSupport [ libiscsi ]
++ lib.optionals smbdSupport [ samba ] ++ lib.optionals smbdSupport [ samba ]
++ lib.optionals uringSupport [ liburing ]; ++ lib.optionals uringSupport [ liburing ]
++ lib.optionals canokeySupport [ canokey-qemu ];
dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
@ -161,7 +163,8 @@ stdenv.mkDerivation rec {
++ lib.optional tpmSupport "--enable-tpm" ++ lib.optional tpmSupport "--enable-tpm"
++ lib.optional libiscsiSupport "--enable-libiscsi" ++ lib.optional libiscsiSupport "--enable-libiscsi"
++ lib.optional smbdSupport "--smbd=${samba}/bin/smbd" ++ lib.optional smbdSupport "--smbd=${samba}/bin/smbd"
++ lib.optional uringSupport "--enable-linux-io-uring"; ++ lib.optional uringSupport "--enable-linux-io-uring"
++ lib.optional canokeySupport "--enable-canokey";
dontWrapGApps = true; dontWrapGApps = true;

View file

@ -0,0 +1,19 @@
{ lib
, genericUpdater
, common-updater-scripts
}:
{ pname ? null
, version ? null
, attrPath ? null
, ignoredVersions ? ""
, rev-prefix ? ""
, odd-unstable ? false
, patchlevel-unstable ? false
, url ? null
}:
genericUpdater {
inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
versionLister = "${common-updater-scripts}/bin/list-directory-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}";
}

View file

@ -62,7 +62,7 @@ let
return 1 return 1
} }
tags=$($version_lister --pname=$pname --attr-path=$attr_path --file="${fileForGitCommands}") || exit 1 tags=$(sh -c "$version_lister --pname=$pname --attr-path=$attr_path --file=\"${fileForGitCommands}\"") || exit 1
# print available tags # print available tags
for tag in $tags; do for tag in $tags; do

View file

@ -15,5 +15,5 @@
genericUpdater { genericUpdater {
inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable; inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable;
versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${lib.optionalString (url != null) "--url=${url}"}"; versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}";
} }

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