Merge staging-next into staging
This commit is contained in:
commit
d426366b62
|
@ -15,7 +15,7 @@ assignees: ''
|
|||
|
||||
<!-- 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 pull requests] for possible solutions
|
||||
|
||||
|
|
|
@ -174,6 +174,11 @@ in mkLicense lset) ({
|
|||
free = false;
|
||||
};
|
||||
|
||||
cal10 = {
|
||||
fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)";
|
||||
url = "https://opensource.org/licenses/CAL-1.0";
|
||||
};
|
||||
|
||||
capec = {
|
||||
fullName = "Common Attack Pattern Enumeration and Classification";
|
||||
url = "https://capec.mitre.org/about/termsofuse.html";
|
||||
|
|
|
@ -4833,6 +4833,15 @@
|
|||
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 = {
|
||||
email = "georgerw@gmail.com";
|
||||
github = "georgewhewell";
|
||||
|
@ -9534,6 +9543,12 @@
|
|||
github = "nessdoor";
|
||||
githubId = 25993494;
|
||||
};
|
||||
net-mist = {
|
||||
email = "archimist.linux@gmail.com";
|
||||
github = "Net-Mist";
|
||||
githubId = 13920346;
|
||||
name = "Sébastien Iooss";
|
||||
};
|
||||
netali = {
|
||||
name = "Jennifer Graul";
|
||||
email = "me@netali.de";
|
||||
|
@ -12848,13 +12863,6 @@
|
|||
githubId = 2666479;
|
||||
name = "Y Nguyen";
|
||||
};
|
||||
superherointj = {
|
||||
name = "Sérgio G.";
|
||||
email = "5861043+superherointj@users.noreply.github.com";
|
||||
matrix = "@superherointj:matrix.org";
|
||||
github = "superherointj";
|
||||
githubId = 5861043;
|
||||
};
|
||||
SuperSandro2000 = {
|
||||
email = "sandro.jaeckel@gmail.com";
|
||||
matrix = "@sandro:supersandro.de";
|
||||
|
@ -15396,6 +15404,12 @@
|
|||
github = "jali-clarke";
|
||||
githubId = 17733984;
|
||||
};
|
||||
wesleyjrz = {
|
||||
email = "wesleyjr2002@gmail.com";
|
||||
name = "Wesley V. Santos Jr.";
|
||||
github = "wesleyjrz";
|
||||
githubId = 60184588;
|
||||
};
|
||||
npatsakula = {
|
||||
email = "nikita.patsakula@gmail.com";
|
||||
name = "Patsakula Nikita";
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
- `scope` describes the scope of the group.
|
||||
- `shortName` short human-readable name
|
||||
- `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
|
||||
|
||||
More fields may be added in the future.
|
||||
|
@ -38,6 +40,7 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain ACME-related packages and modules.";
|
||||
shortName = "ACME";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
bazel = {
|
||||
|
@ -90,7 +93,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain Blockchain packages and modules.";
|
||||
shortName = "Blockchains";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
c = {
|
||||
|
@ -111,7 +113,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain packages used in the C3D2 hackspace";
|
||||
shortName = "c3d2";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
cinnamon = {
|
||||
|
@ -202,7 +203,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain Docker and related tools.";
|
||||
shortName = "DockerTools";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
docs = {
|
||||
|
@ -220,7 +220,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain the Emacs editor and packages.";
|
||||
shortName = "Emacs";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
enlightenment = {
|
||||
|
@ -385,6 +384,15 @@ with lib.maintainers; {
|
|||
shortName = "Lumiguide employees";
|
||||
};
|
||||
|
||||
lua = {
|
||||
githubTeams = [
|
||||
"lua"
|
||||
];
|
||||
scope = "Maintain the lua ecosystem.";
|
||||
shortName = "lua";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
lumina = {
|
||||
members = [
|
||||
romildo
|
||||
|
@ -426,6 +434,7 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain Mate desktop environment and related packages.";
|
||||
shortName = "MATE";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
matrix = {
|
||||
|
@ -448,7 +457,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain Mobile NixOS.";
|
||||
shortName = "Mobile";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
nix = {
|
||||
|
@ -483,7 +491,6 @@ with lib.maintainers; {
|
|||
tazjin
|
||||
zimbatm
|
||||
];
|
||||
enableFeatureFreezePing = true;
|
||||
scope = "Group registration for Numtide team members who collectively maintain packages.";
|
||||
shortName = "Numtide team";
|
||||
};
|
||||
|
@ -548,7 +555,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain Podman and CRI-O related packages and modules.";
|
||||
shortName = "Podman";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
postgres = {
|
||||
|
@ -557,7 +563,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain the PostgreSQL package and plugins along with the NixOS module.";
|
||||
shortName = "PostgreSQL";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
python = {
|
||||
|
@ -610,7 +615,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Manage the current nixpkgs/NixOS release.";
|
||||
shortName = "Release";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
ruby = {
|
||||
|
@ -699,7 +703,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain the vim and neovim text editors and related packages.";
|
||||
shortName = "Vim/Neovim";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
xfce = {
|
||||
|
@ -708,5 +711,6 @@ with lib.maintainers; {
|
|||
];
|
||||
scope = "Maintain Xfce desktop environment and related packages.";
|
||||
shortName = "Xfce";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ let
|
|||
};
|
||||
documentType = "none";
|
||||
variablelistId = "test-options-list";
|
||||
optionIdPrefix = "test-opt-";
|
||||
};
|
||||
|
||||
sources = lib.sourceFilesBySuffices ./. [".xml"];
|
||||
|
|
|
@ -39,11 +39,11 @@ directory.
|
|||
## Interactive-only test configuration {#sec-nixos-test-interactive-configuration}
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
instead, and call it with the flag `result/bin/nixos-test-driver --interactive`.
|
||||
|
|
|
@ -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
|
||||
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
|
||||
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
|
||||
[`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.
|
||||
|
||||
::: {.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`
|
||||
|
@ -180,7 +180,7 @@ The following methods are available on machine objects:
|
|||
machine\'s screen using optical character recognition.
|
||||
|
||||
::: {.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`
|
||||
|
@ -291,7 +291,7 @@ The following methods are available on machine objects:
|
|||
`get_screen_text` and `get_screen_text_variants`).
|
||||
|
||||
::: {.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`
|
||||
|
|
|
@ -44,14 +44,14 @@ $ ./result/bin/nixos-test-driver --keep-vm-state
|
|||
<para>
|
||||
The <literal>.driverInteractive</literal> attribute combines 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
|
||||
slightly different configuration.
|
||||
</para>
|
||||
<para>
|
||||
You can add your own interactive-only test configuration by adding
|
||||
extra configuration to the
|
||||
<link linkend="opt-interactive"><literal>interactive</literal>
|
||||
<link linkend="test-opt-interactive"><literal>interactive</literal>
|
||||
submodule</link>.
|
||||
</para>
|
||||
<para>
|
||||
|
|
|
@ -24,16 +24,16 @@
|
|||
<para>
|
||||
We refer to the whole test above as a test module, whereas the
|
||||
values in
|
||||
<link linkend="opt-nodes"><literal>nodes.<name></literal></link>
|
||||
<link linkend="test-opt-nodes"><literal>nodes.<name></literal></link>
|
||||
are NixOS modules themselves.
|
||||
</para>
|
||||
<para>
|
||||
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).
|
||||
During the test, it will start one or more virtual machines, the
|
||||
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>
|
||||
An example of a single-node test is
|
||||
|
@ -263,7 +263,7 @@ start_all()
|
|||
<note>
|
||||
<para>
|
||||
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>.
|
||||
</para>
|
||||
</note>
|
||||
|
@ -281,7 +281,7 @@ start_all()
|
|||
<note>
|
||||
<para>
|
||||
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>.
|
||||
</para>
|
||||
</note>
|
||||
|
@ -522,7 +522,7 @@ start_all()
|
|||
<note>
|
||||
<para>
|
||||
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>.
|
||||
</para>
|
||||
</note>
|
||||
|
|
|
@ -194,6 +194,13 @@
|
|||
<link linkend="opt-services.komga.enable">services.komga</link>.
|
||||
</para>
|
||||
</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>
|
||||
<para>
|
||||
<link xlink:href="https://hbase.apache.org/">HBase
|
||||
|
|
|
@ -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).
|
||||
|
||||
- [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).
|
||||
|
||||
- [Sachet](https://github.com/messagebird/sachet/), an SMS alerting tool for the Prometheus Alertmanager. Available as [services.prometheus.sachet](#opt-services.prometheus.sachet.enable).
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
# If you include more than one option list into a document, you need to
|
||||
# provide different ids.
|
||||
, variablelistId ? "configuration-variable-list"
|
||||
# Strig to prefix to the option XML/HTML id attributes.
|
||||
, optionIdPrefix ? "opt-"
|
||||
, revision ? "" # Specify revision for the options
|
||||
# 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
|
||||
|
@ -183,6 +185,7 @@ in rec {
|
|||
--stringparam documentType '${documentType}' \
|
||||
--stringparam revision '${revision}' \
|
||||
--stringparam variablelistId '${variablelistId}' \
|
||||
--stringparam optionIdPrefix '${optionIdPrefix}' \
|
||||
-o intermediate.xml ${./options-to-docbook.xsl} sorted.xml
|
||||
${pkgs.libxslt.bin}/bin/xsltproc \
|
||||
-o "$out" ${./postprocess-option-descriptions.xsl} intermediate.xml
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
<xsl:param name="documentType" />
|
||||
<xsl:param name="program" />
|
||||
<xsl:param name="variablelistId" />
|
||||
<xsl:param name="optionIdPrefix" />
|
||||
|
||||
|
||||
<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:for-each select="attrs">
|
||||
<xsl:variable name="id" select="
|
||||
concat('opt-',
|
||||
concat($optionIdPrefix,
|
||||
translate(
|
||||
attr[@name = 'name']/string/@value,
|
||||
'*< >[]:',
|
||||
|
|
|
@ -19,7 +19,7 @@ rec {
|
|||
];
|
||||
|
||||
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 throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@ in
|
|||
};
|
||||
|
||||
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;
|
||||
default = hostPkgs.qemu_test;
|
||||
defaultText = "hostPkgs.qemu_test";
|
||||
|
@ -152,7 +152,7 @@ in
|
|||
description = mdDoc ''
|
||||
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;
|
||||
default = [];
|
||||
|
@ -172,7 +172,7 @@ in
|
|||
description = mdDoc ''
|
||||
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).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
@ -24,14 +24,14 @@ in
|
|||
type = types.nullOr types.int;
|
||||
default = null; # NOTE: null values are filtered out by `meta`.
|
||||
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 {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
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.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@ in
|
|||
description = mdDoc ''
|
||||
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;
|
||||
};
|
||||
|
|
|
@ -44,7 +44,7 @@ in
|
|||
description = mdDoc ''
|
||||
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.
|
||||
|
||||
|
@ -54,7 +54,7 @@ in
|
|||
|
||||
defaults = mkOption {
|
||||
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;
|
||||
default = { };
|
||||
|
@ -62,7 +62,7 @@ in
|
|||
|
||||
extraBaseModules = mkOption {
|
||||
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;
|
||||
default = { };
|
||||
|
@ -82,7 +82,7 @@ in
|
|||
type = types.bool;
|
||||
default = false;
|
||||
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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -48,6 +48,6 @@ in
|
|||
};
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ superherointj ];
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -653,6 +653,7 @@
|
|||
./services/misc/svnserve.nix
|
||||
./services/misc/synergy.nix
|
||||
./services/misc/sysprof.nix
|
||||
./services/misc/tandoor-recipes.nix
|
||||
./services/misc/taskserver
|
||||
./services/misc/tiddlywiki.nix
|
||||
./services/misc/tp-auto-kbbl.nix
|
||||
|
@ -721,7 +722,7 @@
|
|||
./services/network-filesystems/drbd.nix
|
||||
./services/network-filesystems/glusterfs.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/netatalk.nix
|
||||
./services/network-filesystems/nfsd.nix
|
||||
|
|
144
nixos/modules/services/misc/tandoor-recipes.nix
Normal file
144
nixos/modules/services/misc/tandoor-recipes.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
{ config, lib, pkgs, utils, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.ipfs;
|
||||
cfg = config.services.kubo;
|
||||
|
||||
ipfsFlags = utils.escapeSystemdExecArgs (
|
||||
kuboFlags = utils.escapeSystemdExecArgs (
|
||||
optional cfg.autoMount "--mount" ++
|
||||
optional cfg.enableGC "--enable-gc" ++
|
||||
optional (cfg.serviceFdlimit != null) "--manage-fdlimit=false" ++
|
||||
|
@ -50,27 +50,27 @@ in
|
|||
|
||||
options = {
|
||||
|
||||
services.ipfs = {
|
||||
services.kubo = {
|
||||
|
||||
enable = mkEnableOption (lib.mdDoc "Interplanetary File System (WARNING: may cause severe network degredation)");
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.ipfs;
|
||||
defaultText = literalExpression "pkgs.ipfs";
|
||||
description = lib.mdDoc "Which IPFS package to use.";
|
||||
default = pkgs.kubo;
|
||||
defaultText = literalExpression "pkgs.kubo";
|
||||
description = lib.mdDoc "Which Kubo package to use.";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "ipfs";
|
||||
description = lib.mdDoc "User under which the IPFS daemon runs";
|
||||
description = lib.mdDoc "User under which the Kubo daemon runs";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "ipfs";
|
||||
description = lib.mdDoc "Group under which the IPFS daemon runs";
|
||||
description = lib.mdDoc "Group under which the Kubo daemon runs";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
|
@ -84,7 +84,7 @@ in
|
|||
then "/var/lib/ipfs"
|
||||
else "/var/lib/ipfs/.ipfs"
|
||||
'';
|
||||
description = lib.mdDoc "The data dir for IPFS";
|
||||
description = lib.mdDoc "The data dir for Kubo";
|
||||
};
|
||||
|
||||
defaultMode = mkOption {
|
||||
|
@ -96,13 +96,13 @@ in
|
|||
autoMount = mkOption {
|
||||
type = types.bool;
|
||||
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 {
|
||||
type = types.bool;
|
||||
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 {
|
||||
|
@ -126,7 +126,7 @@ in
|
|||
apiAddress = mkOption {
|
||||
type = types.str;
|
||||
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 {
|
||||
|
@ -137,7 +137,7 @@ in
|
|||
"/ip4/0.0.0.0/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 {
|
||||
|
@ -174,14 +174,14 @@ in
|
|||
|
||||
extraFlags = mkOption {
|
||||
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 = [ ];
|
||||
};
|
||||
|
||||
localDiscovery = mkOption {
|
||||
type = types.bool;
|
||||
description = lib.mdDoc ''Whether to enable local discovery for the ipfs daemon.
|
||||
This will allow ipfs to scan ports on your local network. Some hosting services will ban you if you do this.
|
||||
description = lib.mdDoc ''Whether to enable local discovery for the Kubo daemon.
|
||||
This will allow Kubo to scan ports on your local network. Some hosting services will ban you if you do this.
|
||||
'';
|
||||
default = false;
|
||||
};
|
||||
|
@ -189,14 +189,14 @@ in
|
|||
serviceFdlimit = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
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;
|
||||
};
|
||||
|
||||
startWhenNeeded = mkOption {
|
||||
type = types.bool;
|
||||
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;
|
||||
description = "IPFS daemon user";
|
||||
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.
|
||||
rm -vf "$IPFS_PATH/api"
|
||||
'' + 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
|
||||
fi
|
||||
|
@ -279,7 +279,7 @@ in
|
|||
| ipfs --offline config replace -
|
||||
'';
|
||||
serviceConfig = {
|
||||
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}" ];
|
||||
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${kuboFlags}" ];
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "";
|
||||
|
@ -320,4 +320,27 @@ in
|
|||
meta = {
|
||||
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" ])
|
||||
];
|
||||
}
|
|
@ -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' ]
|
||||
'';
|
||||
|
||||
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-gsettings-desktop-schemas = let
|
||||
defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ];
|
||||
in
|
||||
pkgs.runCommand "nixos-gsettings-desktop-schemas" { preferLocalBuild = true; }
|
||||
''
|
||||
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/
|
||||
'';
|
||||
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
|
||||
nixos-gsettings-desktop-schemas = pkgs.gnome.nixos-gsettings-overrides.override {
|
||||
inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages favoriteAppsOverride;
|
||||
inherit flashbackEnabled nixos-background-dark nixos-background-light;
|
||||
};
|
||||
|
||||
nixos-background-info = pkgs.writeTextFile rec {
|
||||
name = "nixos-background-info";
|
||||
|
@ -67,7 +39,7 @@ let
|
|||
<wallpapers>
|
||||
<wallpaper deleted="false">
|
||||
<name>Blobs</name>
|
||||
<filename>${nixos-background-ligtht.gnomeFilePath}</filename>
|
||||
<filename>${nixos-background-light.gnomeFilePath}</filename>
|
||||
<filename-dark>${nixos-background-dark.gnomeFilePath}</filename-dark>
|
||||
<options>zoom</options>
|
||||
<shade_type>solid</shade_type>
|
||||
|
|
|
@ -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 {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
@ -220,6 +228,7 @@ let cfg = config.services.xserver.libinput;
|
|||
Option "HorizontalScrolling" "${xorgBool cfg.${deviceType}.horizontalScrolling}"
|
||||
Option "SendEventsMode" "${cfg.${deviceType}.sendEventsMode}"
|
||||
Option "Tapping" "${xorgBool cfg.${deviceType}.tapping}"
|
||||
${optionalString (cfg.${deviceType}.tappingButtonMap != null) ''Option "TappingButtonMap" "${cfg.${deviceType}.tappingButtonMap}"''}
|
||||
Option "TappingDragLock" "${xorgBool cfg.${deviceType}.tappingDragLock}"
|
||||
Option "DisableWhileTyping" "${xorgBool cfg.${deviceType}.disableWhileTyping}"
|
||||
${cfg.${deviceType}.additionalOptions}
|
||||
|
@ -241,6 +250,7 @@ in {
|
|||
"horizontalScrolling"
|
||||
"sendEventsMode"
|
||||
"tapping"
|
||||
"tappingButtonMap"
|
||||
"tappingDragLock"
|
||||
"transformationMatrix"
|
||||
"disableWhileTyping"
|
||||
|
|
|
@ -328,8 +328,8 @@ in
|
|||
type = types.lines;
|
||||
example = "DefaultLimitCORE=infinity";
|
||||
description = lib.mdDoc ''
|
||||
Extra config options for systemd. See man systemd-system.conf for
|
||||
available options.
|
||||
Extra config options for systemd. See systemd-system.conf(5) man page
|
||||
for available options.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -284,7 +284,6 @@ in {
|
|||
installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
|
||||
invoiceplane = handleTest ./invoiceplane.nix {};
|
||||
iodine = handleTest ./iodine.nix {};
|
||||
ipfs = handleTest ./ipfs.nix {};
|
||||
ipv6 = handleTest ./ipv6.nix {};
|
||||
iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
|
||||
iscsi-root = handleTest ./iscsi-root.nix {};
|
||||
|
@ -317,6 +316,7 @@ in {
|
|||
ksm = handleTest ./ksm.nix {};
|
||||
kthxbye = handleTest ./kthxbye.nix {};
|
||||
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
|
||||
kubo = handleTest ./kubo.nix {};
|
||||
ladybird = handleTest ./ladybird.nix {};
|
||||
languagetool = handleTest ./languagetool.nix {};
|
||||
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
|
||||
|
@ -614,6 +614,7 @@ in {
|
|||
systemd-shutdown = handleTest ./systemd-shutdown.nix {};
|
||||
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
|
||||
systemd-misc = handleTest ./systemd-misc.nix {};
|
||||
tandoor-recipes = handleTest ./tandoor-recipes.nix {};
|
||||
taskserver = handleTest ./taskserver.nix {};
|
||||
teeworlds = handleTest ./teeworlds.nix {};
|
||||
telegraf = handleTest ./telegraf.nix {};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import ../make-test-python.nix ({ pkgs, ... }:
|
||||
import ../make-test-python.nix ({ pkgs, lib, ... }:
|
||||
let
|
||||
imageEnv = pkgs.buildEnv {
|
||||
name = "k3s-pause-image-env";
|
||||
|
@ -54,7 +54,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
|
|||
role = "server";
|
||||
package = pkgs.k3s;
|
||||
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.allowedUDPPorts = [ 8472 ];
|
||||
|
@ -76,7 +84,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
|
|||
enable = true;
|
||||
serverAddr = "https://192.168.1.1:6443";
|
||||
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.allowedUDPPorts = [ 8472 ];
|
||||
|
@ -123,7 +139,8 @@ import ../make-test-python.nix ({ pkgs, ... }:
|
|||
server.wait_until_succeeds("k3s kubectl get node agent")
|
||||
|
||||
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(
|
||||
"${pauseImage} | k3s ctr image import -"
|
||||
)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import ../make-test-python.nix ({ pkgs, ... }:
|
||||
import ../make-test-python.nix ({ pkgs, lib, ... }:
|
||||
let
|
||||
imageEnv = pkgs.buildEnv {
|
||||
name = "k3s-pause-image-env";
|
||||
|
@ -40,7 +40,15 @@ import ../make-test-python.nix ({ pkgs, ... }:
|
|||
services.k3s.role = "server";
|
||||
services.k3s.package = pkgs.k3s;
|
||||
# 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 = {
|
||||
noprivs = {
|
||||
|
@ -57,7 +65,8 @@ import ../make-test-python.nix ({ pkgs, ... }:
|
|||
machine.wait_for_unit("k3s")
|
||||
machine.succeed("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(
|
||||
"${pauseImage} | k3s ctr image import -"
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||
name = "ipfs";
|
||||
name = "kubo";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ mguentner ];
|
||||
};
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
services.ipfs = {
|
||||
services.kubo = {
|
||||
enable = true;
|
||||
# Also will add a unix domain socket socket API address, see module.
|
||||
startWhenNeeded = true;
|
||||
|
@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
|
|||
};
|
||||
|
||||
nodes.fuse = { ... }: {
|
||||
services.ipfs = {
|
||||
services.kubo = {
|
||||
enable = true;
|
||||
apiAddress = "/ip4/127.0.0.1/tcp/2324";
|
||||
autoMount = true;
|
43
nixos/tests/tandoor-recipes.nix
Normal file
43
nixos/tests/tandoor-recipes.nix
Normal 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")
|
||||
'';
|
||||
})
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ft2-clone";
|
||||
version = "1.58";
|
||||
version = "1.59";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "8bitbubsy";
|
||||
repo = "ft2-clone";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-FHhASs1PKTz6G1sAKNUeft0BHbWgl44l7eiOnyQXZb8=";
|
||||
sha256 = "sha256-TQJCkvPV6vbhURLcuH41i8obHnfHkrCTJG0+IuSVDos=";
|
||||
};
|
||||
|
||||
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
, libid3tag, liblo, libmad, liboggz, libpulseaudio, libsamplerate
|
||||
, libsndfile, lrdf, opusfile, portaudio, rubberband, serd, sord, capnproto
|
||||
, wrapQtAppsHook, pkg-config
|
||||
, libjack2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -17,6 +18,7 @@ stdenv.mkDerivation rec {
|
|||
[ alsa-lib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo
|
||||
libmad liboggz libpulseaudio libsamplerate libsndfile lrdf opusfile
|
||||
portaudio rubberband serd sord capnproto
|
||||
libjack2
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
|
||||
|
@ -34,5 +36,7 @@ stdenv.mkDerivation rec {
|
|||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.vandenoever ];
|
||||
platforms = platforms.linux;
|
||||
# undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
|
||||
broken = true; # at 2022-09-30
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "20220714";
|
||||
version = "20220923";
|
||||
pname = "x42-plugins";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-myrHOfgpCwuW8YX0jZ3RutoqtXysU0ejBNcuxN3stXU=";
|
||||
sha256 = "sha256-9Y9up5Ziipm6ums1wESfcADKgMwas2SESgGPn74RTt4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
|
|
@ -96,7 +96,7 @@ self: let
|
|||
./build.sh -j$NIX_BUILD_CORES
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
postInstall = (old.postInstall or "") + "\n" + ''
|
||||
./install.sh --prefix=$out
|
||||
'';
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ let
|
|||
cd -
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
postInstall = (old.postInstall or "") + "\n" + ''
|
||||
install -m=755 -D source/sqlite/emacsql-sqlite \
|
||||
$out/share/emacs/site-lisp/elpa/emacsql-sqlite-${old.version}/sqlite/emacsql-sqlite
|
||||
'';
|
||||
|
@ -301,7 +301,7 @@ let
|
|||
make
|
||||
popd
|
||||
'';
|
||||
postInstall = ''
|
||||
postInstall = (attrs.postInstall or "") + "\n" + ''
|
||||
outd=$(echo $out/share/emacs/site-lisp/elpa/libgit-**)
|
||||
mkdir $outd/build
|
||||
install -m444 -t $outd/build ./source/src/libegit2.so
|
||||
|
@ -426,7 +426,7 @@ let
|
|||
cd -
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
postInstall = (old.postInstall or "") + "\n" + ''
|
||||
mkdir -p $out/bin
|
||||
install -m755 -Dt $out/bin ./source/server/telega-server
|
||||
'';
|
||||
|
@ -456,7 +456,7 @@ let
|
|||
pkgs.libtool
|
||||
(pkgs.zeromq.override { enableDrafts = true; })
|
||||
];
|
||||
postInstall = ''
|
||||
postInstall = (old.postInstall or "") + "\n" + ''
|
||||
mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-*
|
||||
rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
|
||||
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
|
||||
# postInstall instead of postBuild
|
||||
postInstall = ''
|
||||
postInstall = (old.postInstall or "") + "\n" + ''
|
||||
pushd source/build >/dev/null
|
||||
make
|
||||
install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
, fetchFromGitHub
|
||||
, python3
|
||||
, neovim
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
with python3.pkgs; buildPythonApplication rec {
|
||||
|
@ -15,6 +16,14 @@ with python3.pkgs; buildPythonApplication rec {
|
|||
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 = [
|
||||
pynvim
|
||||
psutil
|
||||
|
@ -26,15 +35,12 @@ with python3.pkgs; buildPythonApplication rec {
|
|||
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;
|
||||
|
||||
preCheck = ''
|
||||
export HOME="$(mktemp -d)"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tool that helps controlling nvim processes from a terminal";
|
||||
homepage = "https://github.com/mhinz/neovim-remote/";
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -53,6 +53,7 @@
|
|||
, zsh
|
||||
|
||||
# command-t dependencies
|
||||
, getconf
|
||||
, ruby
|
||||
|
||||
# cpsm dependencies
|
||||
|
@ -239,10 +240,11 @@ self: super: {
|
|||
};
|
||||
|
||||
command-t = super.command-t.overrideAttrs (old: {
|
||||
buildInputs = [ ruby ];
|
||||
nativeBuildInputs = [ getconf ruby ];
|
||||
buildPhase = ''
|
||||
substituteInPlace lua/wincent/commandt/lib/Makefile \
|
||||
--replace '/bin/bash' 'bash'
|
||||
--replace '/bin/bash' 'bash' \
|
||||
--replace xcrun ""
|
||||
make build
|
||||
rm ruby/command-t/ext/command-t/*.o
|
||||
'';
|
||||
|
@ -983,7 +985,7 @@ self: super: {
|
|||
libiconv
|
||||
];
|
||||
|
||||
cargoSha256 = "sha256-g5yNqDCN1O9x7/HcM8NsZlMwLudDTuPLE5gSpScNQnY=";
|
||||
cargoSha256 = "sha256-AY14YEdMpHXmiHwEA9hwSwwwJ8hYIomAuIuCJv1OUDw=";
|
||||
};
|
||||
in
|
||||
''
|
||||
|
|
|
@ -60,6 +60,7 @@ https://github.com/vmchale/ats-vim/,,
|
|||
https://github.com/ray-x/aurora/,,
|
||||
https://github.com/hotwatermorning/auto-git-diff/,,
|
||||
https://github.com/jiangmiao/auto-pairs/,,
|
||||
https://github.com/pocco81/auto-save.nvim/,HEAD,
|
||||
https://github.com/rmagatti/auto-session/,,
|
||||
https://github.com/vim-scripts/autoload_cscope.vim/,,
|
||||
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/sakhnik/nvim-gdb/,,
|
||||
https://github.com/smiteshp/nvim-gps/,,
|
||||
https://github.com/brenoprata10/nvim-highlight-colors/,HEAD,
|
||||
https://github.com/Iron-E/nvim-highlite/,,
|
||||
https://github.com/kevinhwang91/nvim-hlslens/,,
|
||||
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/rcarriga/nvim-notify/,,
|
||||
https://github.com/gennaro-tedesco/nvim-peekup/,,
|
||||
https://github.com/olrtg/nvim-rename-state/,HEAD,
|
||||
https://github.com/dstein64/nvim-scrollview/,,
|
||||
https://github.com/dcampos/nvim-snippy/,HEAD,
|
||||
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/jvgrootveld/telescope-zoxide/,,
|
||||
https://github.com/nvim-telescope/telescope.nvim/,,
|
||||
https://github.com/axelvc/template-string.nvim/,HEAD,
|
||||
https://github.com/jacoborus/tender.vim/,,
|
||||
https://github.com/wincent/terminus/,,
|
||||
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/gelguy/wilder.nvim/,,
|
||||
https://github.com/gcmt/wildfire.vim/,,
|
||||
https://github.com/anuvyklack/windows.nvim/,,
|
||||
https://github.com/sindrets/winshift.nvim/,,
|
||||
https://github.com/wannesm/wmgraphviz.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/troydm/zoomwintab.vim/,,
|
||||
https://github.com/nanotee/zoxide.vim/,,
|
||||
https://github.com/anuvyklack/windows.nvim/,,
|
||||
|
|
|
@ -326,7 +326,7 @@ let
|
|||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=attilabuti.brainfuck-syntax";
|
||||
homepage = "https://github.com/attilabuti/brainfuck-syntax";
|
||||
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";
|
||||
homepage = "https://github.com/badochov/ocamlformatter-vscode";
|
||||
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";
|
||||
homepage = "https://github.com/ChristianKohler/PathIntellisense";
|
||||
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";
|
||||
homepage = "https://github.com/prettier/prettier-vscode";
|
||||
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";
|
||||
homepage = "https://github.com/gencer/SCSS-Everywhere";
|
||||
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";
|
||||
homepage = "https://gitlab.com/gitlab-org/gitlab-vscode-extension#readme";
|
||||
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";
|
||||
homepage = "https://github.com/IronGeek/vscode-env.git";
|
||||
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";
|
||||
homepage = "https://github.com/jnoortheen/vscode-nix-ide";
|
||||
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";
|
||||
homepage = "https://github.com/phoenixframework/vscode-phoenix";
|
||||
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";
|
||||
homepage = "https://github.com/ocamllabs/vscode-ocaml-platform";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ ratsclub superherointj ];
|
||||
maintainers = with maintainers; [ ratsclub ];
|
||||
};
|
||||
mktplcRef = {
|
||||
name = "ocaml-platform";
|
||||
|
@ -2090,7 +2090,7 @@ let
|
|||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=Prisma.prisma";
|
||||
homepage = "https://github.com/prisma/language-tools";
|
||||
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";
|
||||
homepage = "https://github.com/stefanjarina/vscode-eex-snippets";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ superherointj ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2374,8 +2374,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "code-spell-checker";
|
||||
publisher = "streetsidesoftware";
|
||||
version = "2.3.1";
|
||||
sha256 = "0pm9i3zw4aa4qrcqnzb9bz166rl7p6nwb81m9rqzisdc85mx4s3x";
|
||||
version = "2.10.1";
|
||||
sha256 = "sha256-FeYkSML6QYtuIHIbAovOqlPwkKfNkHr7IdMCWwkynQ0=";
|
||||
};
|
||||
meta = with lib; {
|
||||
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";
|
||||
homepage = "https://github.com/ALANVF/vscode-pascal-magic";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ superherointj ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
50
pkgs/applications/graphics/artem/default.nix
Normal file
50
pkgs/applications/graphics/artem/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -120,8 +120,8 @@ in stdenv.mkDerivation rec {
|
|||
cp -a resources/icons $out/share
|
||||
|
||||
interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
|
||||
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
|
||||
patchelf --set-rpath ${rpath}:$out/share/1password $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,op-ssh-sign}
|
||||
for file in $(find $out -type f -name \*.so\* ); do
|
||||
patchelf --set-rpath ${rpath}:$out/share/1password $file
|
||||
done
|
||||
|
|
|
@ -120,8 +120,8 @@ in stdenv.mkDerivation rec {
|
|||
cp -a resources/icons $out/share
|
||||
|
||||
interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
|
||||
patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
|
||||
patchelf --set-rpath ${rpath}:$out/share/1password $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,op-ssh-sign}
|
||||
for file in $(find $out -type f -name \*.so\* ); do
|
||||
patchelf --set-rpath ${rpath}:$out/share/1password $file
|
||||
done
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cubiomes-viewer";
|
||||
version = "2.4.1";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Cubitect";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-vneX3Wo1DUK1WIwBP3nMUDV26EN2A7XIqMcTZQ4UI4A=";
|
||||
sha256 = "sha256-VZsq2HMvhFB6DR+Z3bVtyIJ2O984QaryYWCcP/a7paw=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -89,7 +89,13 @@ python3.pkgs.buildPythonApplication {
|
|||
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 \
|
||||
--replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}
|
||||
'' + (if enableQt then ''
|
||||
|
|
163
pkgs/applications/misc/gtkradiant/default.nix
Normal file
163
pkgs/applications/misc/gtkradiant/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gum";
|
||||
version = "0.6.0";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "charmbracelet";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-pEULArQDwKZzpD0GVH21L1v9xVZiBz91kL/jPJjJav4=";
|
||||
sha256 = "sha256-T8dIk99qUMyeZvfM+rLA13HAmITQ8SMsQ9uIXtMM+MM=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-vvNoO5eABGVwvAzK33uPelmo3BKxfqiYgEXZI7kgeSo=";
|
||||
vendorSha256 = "sha256-sht9e4pam4aJCylUZPeVGwk9TYttumJSniNVxI0LfNM=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
|
52
pkgs/applications/misc/holochain-launcher/default.nix
Normal file
52
pkgs/applications/misc/holochain-launcher/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -41,7 +41,7 @@ buildGoModule rec {
|
|||
'';
|
||||
license = licenses.mit;
|
||||
homepage = "https://github.com/mschneider82/keylight-control";
|
||||
maintainers = with maintainers; [ superherointj ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -33,16 +33,3 @@ index c6c31cbf5..c51b59ce6 100644
|
|||
}
|
||||
|
||||
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
|
||||
|
|
19
pkgs/applications/misc/tandoor-recipes/common.nix
Normal file
19
pkgs/applications/misc/tandoor-recipes/common.nix
Normal 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 ];
|
||||
};
|
||||
}
|
140
pkgs/applications/misc/tandoor-recipes/default.nix
Normal file
140
pkgs/applications/misc/tandoor-recipes/default.nix
Normal 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!
|
||||
'';
|
||||
};
|
||||
}
|
57
pkgs/applications/misc/tandoor-recipes/frontend.nix
Normal file
57
pkgs/applications/misc/tandoor-recipes/frontend.nix
Normal 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";
|
||||
};
|
||||
}
|
17
pkgs/applications/misc/tandoor-recipes/media-root.patch
Normal file
17
pkgs/applications/misc/tandoor-recipes/media-root.patch
Normal 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'
|
42
pkgs/applications/misc/tandoor-recipes/update.sh
Executable file
42
pkgs/applications/misc/tandoor-recipes/update.sh
Executable 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
|
File diff suppressed because it is too large
Load diff
|
@ -144,14 +144,15 @@ stdenv.mkDerivation {
|
|||
|
||||
inherit gtk3;
|
||||
|
||||
buildInputs = [ wrapGAppsHook gtk3 adwaita-icon-theme ];
|
||||
nativeBuildInputs = [ wrapGAppsHook ];
|
||||
buildInputs = [ gtk3 adwaita-icon-theme ];
|
||||
|
||||
# "strip" after "patchelf" may break binaries.
|
||||
# See: https://github.com/NixOS/patchelf/issues/10
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
|
||||
patchPhase = ''
|
||||
postPatch = ''
|
||||
# Don't download updates from Mozilla directly
|
||||
echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js
|
||||
'';
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
{ 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
|
||||
, ffmpeg_5, xorg, alsa-lib, libpulseaudio, libcanberra-gtk3, libglvnd, libnotify, opensc
|
||||
|
|
41
pkgs/applications/networking/browsers/polypane/default.nix
Normal file
41
pkgs/applications/networking/browsers/polypane/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -48,6 +48,6 @@ buildGoModule rec {
|
|||
downloadPage = "https://github.com/cert-manager/cert-manager";
|
||||
license = licenses.asl20;
|
||||
homepage = "https://cert-manager.io/";
|
||||
maintainers = with maintainers; [ joshvanl superherointj ];
|
||||
maintainers = with maintainers; [ joshvanl ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ in buildGoModule rec {
|
|||
'';
|
||||
homepage = "https://fluxcd.io";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ bryanasdev000 jlesquembre superherointj ];
|
||||
maintainers = with maintainers; [ bryanasdev000 jlesquembre ];
|
||||
mainProgram = "flux";
|
||||
};
|
||||
}
|
||||
|
|
25
pkgs/applications/networking/cluster/hashi-up/default.nix
Normal file
25
pkgs/applications/networking/cluster/hashi-up/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -42,7 +42,7 @@ buildGoModule rec {
|
|||
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";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ superherointj bryanasdev000 veehaitch ];
|
||||
maintainers = with maintainers; [ bryanasdev000 veehaitch ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -47,10 +47,10 @@ with lib;
|
|||
# Those pieces of software we entirely ignore upstream's handling of, and just
|
||||
# make sure they're in the path if desired.
|
||||
let
|
||||
k3sVersion = "1.25.0+k3s1"; # k3s git tag
|
||||
k3sCommit = "26e9405767263a2915723cb72b1ffd7f50687a8f"; # k3s git commit at the above version
|
||||
k3sRepoSha256 = "0rk0svqx26rn6qlvvyj5rsqb87195h1qcf84qmmvf874qwszwpgh";
|
||||
k3sVendorSha256 = "sha256-YX/yLOLtDxGhRB4tic6oTli/qeeSnpP+f+S+sVXXDSs=";
|
||||
k3sVersion = "1.25.2+k3s1"; # k3s git tag
|
||||
k3sCommit = "53c268d8eb90ceea5e1c7865f89db5c7fb8763bc"; # k3s git commit at the above version
|
||||
k3sRepoSha256 = "1w040bsrf981k19rwaaxjsv52pgzc0k77x083fkhysmrca565z0y";
|
||||
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
|
||||
# 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";
|
||||
license = licenses.asl20;
|
||||
homepage = "https://k3s.io";
|
||||
maintainers = with maintainers; [ euank mic92 superherointj ];
|
||||
maintainers = with maintainers; [ euank mic92 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@ WORKDIR=$(mktemp -d)
|
|||
trap "rm -rf ${WORKDIR}" EXIT
|
||||
|
||||
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/
|
||||
NIXPKGS_K3S_FOLDER=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
|
||||
cd ${NIXPKGS_K3S_FOLDER}
|
||||
NIXPKGS_K3S_PATH=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
|
||||
cd ${NIXPKGS_K3S_PATH}
|
||||
|
||||
LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
|
||||
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//')
|
||||
|
||||
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}
|
||||
|
@ -91,3 +91,11 @@ else
|
|||
echo "Update failed. K3S_VENDOR_SHA256 is empty."
|
||||
exit 1
|
||||
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
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "k3sup";
|
||||
version = "0.12.3";
|
||||
version = "0.12.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alexellis";
|
||||
repo = "k3sup";
|
||||
rev = version;
|
||||
sha256 = "sha256-2S/VnxVb056aPxFd5LxtUdaNlosHLlu7Tl/RQbY/zpA=";
|
||||
sha256 = "sha256-EOGYOxRhpPHOSo9ccCSvat9kq2SlujPqno8v7/zmuto=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
|
|
|
@ -53,6 +53,6 @@ buildGoModule rec {
|
|||
downloadPage = "https://github.com/linkerd/linkerd2/";
|
||||
homepage = "https://linkerd.io/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ bryanasdev000 Gonzih superherointj ];
|
||||
maintainers = with maintainers; [ bryanasdev000 Gonzih ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
|
||||
buildGoModule rec{
|
||||
pname = "pinniped";
|
||||
version = "0.19.0";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vmware-tanzu";
|
||||
repo = "pinniped";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-VGvT0jj2f4+jiaPQkebL0GE+W4U8+RfSEsGr2sNBu2Q=";
|
||||
sha256 = "sha256-JKZij9f6zlBzbYolxz03R5j95zKELVmEhX+QRTxF/cc=";
|
||||
};
|
||||
|
||||
subPackages = "cmd/pinniped";
|
||||
|
||||
vendorSha256 = "sha256-7jQRUYJiRdYuAy3x+VPK4Nh5GF6ME7juloagm85oOVg=";
|
||||
vendorSha256 = "sha256-szv/B7LG/In0j6MT6KCnuUfaCnK7RsJOLeuOtJ/ig9w=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "signal-cli";
|
||||
version = "0.10.11";
|
||||
version = "0.11.0";
|
||||
|
||||
# Building from source would be preferred, but is much more involved.
|
||||
src = fetchurl {
|
||||
url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}-Linux.tar.gz";
|
||||
sha256 = "sha256-tBgtSYKSoyze9qFWpy6IUdwMU9KCLZGEIpOkjLdHsHM=";
|
||||
sha256 = "sha256-BIVeY4H5pn8hdjUkSDrlVMTXy5wuMskkSlccfgCWc6Q=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -20,13 +20,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "srain";
|
||||
version = "1.4.1";
|
||||
version = "1.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SrainApp";
|
||||
repo = "srain";
|
||||
rev = version;
|
||||
sha256 = "sha256-zkSePzmbi/QnUYJO/henkxfhuN+BXTXtKGPW7M2QyBY=";
|
||||
sha256 = "sha256-AJ02S5+A/n8kO6lic8EbPYqNDmHL/tKbXhIkHTrcXOM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,23 +2,23 @@
|
|||
, stdenv
|
||||
, symlinkJoin
|
||||
, buildGoModule
|
||||
, ipfs-migrator-unwrapped
|
||||
, kubo-migrator-unwrapped
|
||||
}:
|
||||
|
||||
# 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
|
||||
|
||||
let
|
||||
fs-repo-common = pname: version: buildGoModule {
|
||||
inherit pname version;
|
||||
inherit (ipfs-migrator-unwrapped) src;
|
||||
inherit (kubo-migrator-unwrapped) src;
|
||||
sourceRoot = "source/${pname}";
|
||||
vendorSha256 = null;
|
||||
doCheck = false;
|
||||
meta = ipfs-migrator-unwrapped.meta // {
|
||||
meta = kubo-migrator-unwrapped.meta // {
|
||||
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
|
||||
|
||||
symlinkJoin {
|
||||
name = "ipfs-migrator-all-fs-repo-migrations-${version}";
|
||||
name = "kubo-migrator-all-fs-repo-migrations-${version}";
|
||||
paths = all-migrations;
|
||||
}
|
23
pkgs/applications/networking/kubo-migrator/default.nix
Normal file
23
pkgs/applications/networking/kubo-migrator/default.nix
Normal 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;
|
||||
}
|
|
@ -4,7 +4,7 @@
|
|||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ipfs-migrator";
|
||||
pname = "kubo-migrator";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
@ -26,7 +26,7 @@ buildGoModule rec {
|
|||
doCheck = false;
|
||||
|
||||
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";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ Luflosi elitak ];
|
|
@ -1,13 +1,13 @@
|
|||
{ lib, buildGoModule, fetchurl, nixosTests, openssl, pkg-config }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ipfs";
|
||||
pname = "kubo";
|
||||
version = "0.15.0"; # When updating, also check if the repo version changed and adjust repoVersion below
|
||||
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 {
|
||||
url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz";
|
||||
hash = "sha256-GkOY1G2CKXbMbHXkw5v27HmfkJIl2nZOmjjZbzuaRWs=";
|
||||
|
@ -15,10 +15,10 @@ buildGoModule rec {
|
|||
|
||||
# tarball contains multiple files/directories
|
||||
postUnpack = ''
|
||||
mkdir ipfs-src
|
||||
mkdir kubo-src
|
||||
shopt -s extglob
|
||||
mv !(ipfs-src) ipfs-src || true
|
||||
cd ipfs-src
|
||||
mv !(kubo-src) kubo-src || true
|
||||
cd kubo-src
|
||||
'';
|
||||
|
||||
sourceRoot = ".";
|
||||
|
@ -29,7 +29,7 @@ buildGoModule rec {
|
|||
nativeBuildInputs = [ pkg-config ];
|
||||
tags = [ "openssl" ];
|
||||
|
||||
passthru.tests.ipfs = nixosTests.ipfs;
|
||||
passthru.tests.kubo = nixosTests.kubo;
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
|
@ -57,6 +57,7 @@ buildGoModule rec {
|
|||
homepage = "https://ipfs.io/";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
mainProgram = "ipfs";
|
||||
maintainers = with maintainers; [ fpletz ];
|
||||
};
|
||||
}
|
|
@ -27,13 +27,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "beamerpresenter";
|
||||
version = "0.2.3";
|
||||
version = "0.2.3-1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stiglers-eponym";
|
||||
repo = "BeamerPresenter";
|
||||
rev = "v${version}";
|
||||
sha256 = "1n9d0i0j67ymnghn8zkqf52c88zby6rqin8aicbw8cpn35fqf5a6";
|
||||
rev = "dd41a00b3c6c8b881fa62945165c965634df66f0";
|
||||
sha256 = "11yj1zl8hdnqbynkbyzg8kwyx1jl8c87x8f8qyllpk0s6cg304d0";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -12,13 +12,13 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "avogadro2";
|
||||
version = "1.95.1";
|
||||
version = "1.97.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenChemistry";
|
||||
repo = "avogadroapp";
|
||||
rev = version;
|
||||
sha256 = "9GnsxQsMuik6CPDmJbJPF0/+LXbZHf/JLevpSsMEoP0=";
|
||||
hash = "sha256-gZpMgFSPz70QNfd8gH5Jb9RTxQfQalWx33LkgXLEqOQ=";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
|
|
|
@ -11,13 +11,13 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "cp2k";
|
||||
version = "9.1.0";
|
||||
version = "2022.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cp2k";
|
||||
repo = "cp2k";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-P9RwZmrE1E0UTQVasQxWAqa3LBLyJNGeJo8T6u5WWcw=";
|
||||
hash = "sha256-zDIsgPcLnA0ATJEN1vQClpkToqvIyW7KuXhyGiXJXDw=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -7,12 +7,11 @@
|
|||
, netcdf
|
||||
, glew
|
||||
, glm
|
||||
, freeglut
|
||||
, libpng
|
||||
, libxml2
|
||||
, tk
|
||||
, freetype
|
||||
, msgpack
|
||||
, qt5
|
||||
}:
|
||||
let
|
||||
pname = "pymol";
|
||||
|
@ -47,12 +46,11 @@ python3Packages.buildPythonApplication rec {
|
|||
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";
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
setupPyBuildFlags = [ "--glut" ];
|
||||
|
||||
installPhase = ''
|
||||
python setup.py install --home="$out"
|
||||
runHook postInstall
|
||||
|
@ -60,13 +58,17 @@ python3Packages.buildPythonApplication rec {
|
|||
|
||||
postInstall = with python3Packages; ''
|
||||
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/"
|
||||
ln -s ../../lib/python/pymol/pymol_path/data/pymol/icons/icon2.svg "$out/share/icons/pymol.svg"
|
||||
cp -r "${desktopItem}/share/applications/" "$out/share/"
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
wrapQtApp "$out/bin/pymol"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
inherit description;
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "librepcb";
|
||||
version = "0.1.6";
|
||||
version = "0.1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0gzf3asdgdicpikb412134ybqnbbark948yrfhvba2w4i9cwbk2r";
|
||||
sha256 = "sha256-zqvvc3CHqdRWVUFt4BkH5Vq50/FKNvMNW2NvGyfWwFM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "verilator";
|
||||
version = "4.224";
|
||||
version = "4.226";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Kn44yWkNcOLkc79HLDTxx5zQn/vqft+hhbvsoUAKR7I=";
|
||||
sha256 = "sha256-X6Kwpcm+ugu+4gVkWfsqdCPFTESHzJ1jjCPnGqE3/vo=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
22
pkgs/applications/science/math/readstat/default.nix
Normal file
22
pkgs/applications/science/math/readstat/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -166,7 +166,7 @@ stdenv.mkDerivation rec {
|
|||
url = "https://www.desy.de/~twhite/${pname}/${pname}-${version}.tar.gz";
|
||||
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 ];
|
||||
buildInputs = [
|
||||
hdf5
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
, libxkbcommon, libXi, libXext, wayland-protocols, wayland
|
||||
, lcms2
|
||||
, librsync
|
||||
, openssl
|
||||
, installShellFiles
|
||||
, dbus
|
||||
, darwin
|
||||
|
@ -27,14 +28,14 @@
|
|||
with python3Packages;
|
||||
buildPythonApplication rec {
|
||||
pname = "kitty";
|
||||
version = "0.25.2";
|
||||
version = "0.26.2";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kovidgoyal";
|
||||
repo = "kitty";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-o/vVz1lPfsgkzbYjYhIrScCAROmVdiPsNwjW/m5n7Us=";
|
||||
sha256 = "sha256-IqXRkKzOfqWolH/534nmM2R/69olhFOk6wbbF4ifRd0=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -42,6 +43,7 @@ buildPythonApplication rec {
|
|||
ncurses
|
||||
lcms2
|
||||
librsync
|
||||
openssl.dev
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
Cocoa
|
||||
CoreGraphics
|
||||
|
@ -77,6 +79,9 @@ buildPythonApplication rec {
|
|||
outputs = [ "out" "terminfo" "shell_integration" ];
|
||||
|
||||
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
|
||||
|
||||
# Gets `test_ssh_shell_integration` to pass for `zsh` when `compinit` complains about
|
||||
|
@ -98,14 +103,18 @@ buildPythonApplication rec {
|
|||
--update-check-interval=0 \
|
||||
--shell-integration=enabled\ no-rc
|
||||
'';
|
||||
darwinOptions = ''
|
||||
--disable-link-time-optimization \
|
||||
${commonOptions}
|
||||
'';
|
||||
in ''
|
||||
runHook preBuild
|
||||
${if stdenv.isDarwin then ''
|
||||
${python.interpreter} setup.py kitty.app \
|
||||
--disable-link-time-optimization \
|
||||
${commonOptions}
|
||||
make man
|
||||
${python.interpreter} setup.py build ${darwinOptions}
|
||||
make docs
|
||||
${python.interpreter} setup.py kitty.app ${darwinOptions}
|
||||
'' else ''
|
||||
${python.interpreter} setup.py build-launcher
|
||||
${python.interpreter} setup.py linux-package \
|
||||
--egl-library='${lib.getLib libGL}/lib/libEGL.so.1' \
|
||||
--startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
|
||||
|
@ -126,7 +135,7 @@ buildPythonApplication rec {
|
|||
];
|
||||
|
||||
# skip failing tests due to darwin sandbox
|
||||
preCheck = if stdenv.isDarwin then ''
|
||||
preCheck = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace kitty_tests/file_transmission.py \
|
||||
--replace test_file_get dont_test_file_get \
|
||||
--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
|
||||
substituteInPlace kitty_tests/fonts.py \
|
||||
--replace 'class Rendering(BaseTest)' 'class Rendering'
|
||||
'' else "";
|
||||
'';
|
||||
|
||||
checkPhase =
|
||||
let buildBinPath =
|
||||
if stdenv.isDarwin
|
||||
then "kitty.app/Contents/MacOS"
|
||||
else "linux-package/bin";
|
||||
in
|
||||
''
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
# 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.
|
||||
export TERM=kitty
|
||||
|
||||
env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py
|
||||
make test
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -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')))
|
33
pkgs/applications/terminal-emulators/tym/default.nix
Normal file
33
pkgs/applications/terminal-emulators/tym/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gh";
|
||||
version = "2.16.1";
|
||||
version = "2.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cli";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-I8/vO7SfZr4JVbFNBgIaP7CwHn7q6CMIZMjLBsTLY2Q=";
|
||||
sha256 = "sha256-2GDhDmk7AVb2DGxibIQM0b7hj2iGvjeLJ4+vAZggxtk=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-TVMFOit2pi+ZVcppzs0iKNXluDW9ZQDH2d7cPSzg+ak=";
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -4,8 +4,8 @@
|
|||
, appstream-glib
|
||||
, desktop-file-utils
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gst_all_1
|
||||
, pipewire
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, libpulseaudio
|
||||
|
@ -13,27 +13,26 @@
|
|||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, rustPlatform
|
||||
, wayland
|
||||
, wrapGAppsHook
|
||||
, wrapGAppsHook4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kooha";
|
||||
version = "2.0.1";
|
||||
version = "2.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SeaDve";
|
||||
repo = "Kooha";
|
||||
rev = "v${version}";
|
||||
sha256 = "05ynpwjdpl7zp9f17zhhvb59rbz3gd7hc0amla1g85ldgfxbgl00";
|
||||
hash = "sha256-HgouIMbwpmR/K1hPU7QDzeEtyi5hC66huvInkJFLS2w=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256:16zf6vb001z7xdv2g4kpmb2vqsmaql2cpsx1rl9zrfhpl2z6frs9";
|
||||
hash = "sha256-rdxD9pys11QcUtufcZ/zCrviytyc8hIXJfsXg2JoaKE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -41,18 +40,15 @@ stdenv.mkDerivation rec {
|
|||
desktop-file-utils
|
||||
meson
|
||||
ninja
|
||||
python3
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
rustPlatform.rust.cargo
|
||||
rustPlatform.rust.rustc
|
||||
wayland
|
||||
wrapGAppsHook
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gobject-introspection
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-ugly
|
||||
|
@ -60,18 +56,10 @@ stdenv.mkDerivation rec {
|
|||
libadwaita
|
||||
libpulseaudio
|
||||
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 = ''
|
||||
$out/bin/kooha --help
|
||||
'';
|
||||
|
|
|
@ -6,11 +6,12 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "streamlink";
|
||||
version = "3.2.0";
|
||||
version = "5.0.1";
|
||||
format = "pyproject";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-l3DS2DhExTeKc+FBMNy3YKvIVlZsqgpB/FuXoN7V2SY=";
|
||||
hash = "sha256-PKRioPBhTV6i3ckQgcKuhQFmpBvUQE4o3FLej8qx4mM=";
|
||||
};
|
||||
|
||||
checkInputs = with python3Packages; [
|
||||
|
@ -20,6 +21,10 @@ python3Packages.buildPythonApplication rec {
|
|||
freezegun
|
||||
];
|
||||
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
versioningit
|
||||
];
|
||||
|
||||
propagatedBuildInputs = (with python3Packages; [
|
||||
isodate
|
||||
lxml
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
homepage = "http://www.tvdr.de/";
|
||||
description = "Video Disc Recorder";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -32,9 +32,11 @@ in {
|
|||
|
||||
buildInputs = [ vdr ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/${pname}-${version}.tgz";
|
||||
sha256 = "1hra1xslj8s68zbyr8zdqp8yap0aj1p6rxyc6cwy1j122kwcnapp";
|
||||
src = fetchFromGitHub {
|
||||
repo = "vdr-plugin-femon";
|
||||
owner = "rofafor";
|
||||
sha256 = "sha256-0qBMYgNKk7N9Bj8fAoOokUo+G9gfj16N5e7dhoKRBqs=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
postPatch = "substituteInPlace Makefile --replace /bin/true true";
|
||||
|
@ -42,23 +44,23 @@ in {
|
|||
makeFlags = [ "DESTDIR=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/";
|
||||
inherit (src.meta) homepage;
|
||||
description = "DVB Frontend Status Monitor plugin for VDR";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
markad = stdenv.mkDerivation rec {
|
||||
pname = "vdr-markad";
|
||||
version = "3.0.25";
|
||||
version = "3.0.26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "vdr-plugin-markad";
|
||||
owner = "kfb77";
|
||||
sha256 = "sha256-m7cUAxwXj62spelHYH6uTIoViSavSR0d4psr7+KLJg8=";
|
||||
sha256 = "sha256-0J6XeLgr9IZSWsheQZWVNRLIxp8iyCvR9Y0z/yrbTnI=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
|
@ -88,11 +90,11 @@ in {
|
|||
installFlags = buildFlags;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kfb77/vdr-plugin-markad";
|
||||
inherit (src.meta) homepage;
|
||||
description = "MarkAd marks advertisements in VDR recordings.";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -101,8 +103,9 @@ in {
|
|||
pname = "vdr-epgsearch";
|
||||
version = "2.4.1";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://projects.vdr-developer.org/vdr-plugin-epgsearch.git";
|
||||
src = fetchFromGitHub {
|
||||
repo = "vdr-plugin-epgsearch";
|
||||
owner = "vdr-projects";
|
||||
sha256 = "sha256-UlbPCkUFN0Gyxjw9xq2STFTDZRVcPPNjadSQd4o2o9U=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
@ -136,18 +139,18 @@ in {
|
|||
outputs = [ "out" "man" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://winni.vdr-developer.org/epgsearch";
|
||||
inherit (src.meta) homepage;
|
||||
description = "Searchtimer and replacement of the VDR program menu";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
vnsiserver = stdenv.mkDerivation rec {
|
||||
pname = "vdr-vnsiserver";
|
||||
version = "1.8.0";
|
||||
version = "1.8.1";
|
||||
|
||||
buildInputs = [ vdr ];
|
||||
|
||||
|
@ -155,17 +158,17 @@ in {
|
|||
|
||||
src = fetchFromGitHub {
|
||||
repo = "vdr-plugin-vnsiserver";
|
||||
owner = "FernetMenta";
|
||||
rev = "v${version}";
|
||||
sha256 = "0n7idpxqx7ayd63scl6xwdx828ik4kb2mwz0c30cfjnmnxxd45lw";
|
||||
owner = "vdr-projects";
|
||||
rev = version;
|
||||
sha256 = "sha256-1C0Z7NoU+FNch4BhrAcbJdzVvGuH1YDaxJ+9PflR78E=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/FernetMenta/vdr-plugin-vnsiserver";
|
||||
inherit (src.meta) homepage;
|
||||
description = "VDR plugin to handle KODI clients.";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -201,7 +204,7 @@ in {
|
|||
description = "VDR Text2Skin Plugin";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -222,11 +225,11 @@ in {
|
|||
installFlags = [ "DESTDIR=$(out)" ];
|
||||
|
||||
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";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -12,12 +12,12 @@
|
|||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdr-softhddevice";
|
||||
version = "1.9.0";
|
||||
version = "1.9.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ua0lnj";
|
||||
repo = "vdr-plugin-softhddevice";
|
||||
sha256 = "sha256-IqG1Jr+fV4MMyTTOUGY34HNqS8qvAH+CSi2IEyVGVFo=";
|
||||
sha256 = "sha256-2kh8qMxaAjekvgjMVRmm1nPzlN2wjY/6qYjFyo6CLlg=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
|
@ -40,11 +40,11 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ua0lnj/vdr-plugin-softhddevice";
|
||||
inherit (src.meta) homepage;
|
||||
description = "VDR SoftHDDevice Plug-in";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
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.";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
|
|
|
@ -15,19 +15,19 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pods";
|
||||
version = "1.0.0-beta.4";
|
||||
version = "1.0.0-beta.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "marhkb";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1j5rz43860n17qcxmc5dj8sll3y593jj9zz1sfvnx4g0694sp0cl";
|
||||
sha256 = "sha256-Bp/ILQY5Xa8wrq7v9O9QohWzlevdN3MwMjjnlimt6HM=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "sha256-tj0ROO8HmFWyQLYDrdywOneHz6X43dRZJFTB+aw+m7o=";
|
||||
sha256 = "sha256-iToznqaNXArVrSdDXGPJol3OeFdM3J8VgYSs+mjM0SE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
35
pkgs/applications/virtualization/qemu/canokey-qemu.nix
Normal file
35
pkgs/applications/virtualization/qemu/canokey-qemu.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -26,6 +26,7 @@
|
|||
, smbdSupport ? false, samba
|
||||
, tpmSupport ? true
|
||||
, uringSupport ? stdenv.isLinux, liburing
|
||||
, canokeySupport ? false, canokey-qemu
|
||||
, hostCpuOnly ? false
|
||||
, hostCpuTargets ? (if hostCpuOnly
|
||||
then (lib.optional stdenv.isx86_64 "i386-softmmu"
|
||||
|
@ -79,7 +80,8 @@ stdenv.mkDerivation rec {
|
|||
++ lib.optionals virglSupport [ virglrenderer ]
|
||||
++ lib.optionals libiscsiSupport [ libiscsi ]
|
||||
++ 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
|
||||
|
||||
|
@ -161,7 +163,8 @@ stdenv.mkDerivation rec {
|
|||
++ lib.optional tpmSupport "--enable-tpm"
|
||||
++ lib.optional libiscsiSupport "--enable-libiscsi"
|
||||
++ 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;
|
||||
|
||||
|
|
19
pkgs/common-updater/directory-listing-updater.nix
Normal file
19
pkgs/common-updater/directory-listing-updater.nix
Normal 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}"}";
|
||||
}
|
|
@ -62,7 +62,7 @@ let
|
|||
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
|
||||
for tag in $tags; do
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue