Project import generated by Copybara.

GitOrigin-RevId: 16105403bdd843540cbef9c63fc0f16c1c6eaa70
This commit is contained in:
Default email 2021-07-21 09:28:18 +02:00
parent d87170d3f2
commit 5b567aa208
630 changed files with 5609 additions and 3853 deletions

View file

@ -0,0 +1,21 @@
name: "No channel PR"
on:
pull_request:
branches:
- 'nixos-**'
- 'nixpkgs-**'
jobs:
fail:
name: "This PR is is targeting a channel branch"
runs-on: ubuntu-latest
steps:
- run: |
cat <<EOF
The nixos-* and nixpkgs-* branches are pushed to by the channel
release script and should not be merged into directly.
Please target the equivalent release-* branch or master instead.
EOF
exit 1

View file

@ -8,7 +8,7 @@
Several versions of the Python interpreter are available on Nix, as well as a Several versions of the Python interpreter are available on Nix, as well as a
high amount of packages. The attribute `python3` refers to the default high amount of packages. The attribute `python3` refers to the default
interpreter, which is currently CPython 3.8. The attribute `python` refers to interpreter, which is currently CPython 3.9. The attribute `python` refers to
CPython 2.7 for backwards-compatibility. It is also possible to refer to CPython 2.7 for backwards-compatibility. It is also possible to refer to
specific versions, e.g. `python38` refers to CPython 3.8, and `pypy` refers to specific versions, e.g. `python38` refers to CPython 3.8, and `pypy` refers to
the default PyPy interpreter. the default PyPy interpreter.
@ -839,7 +839,7 @@ sets are
and the aliases and the aliases
* `pkgs.python2Packages` pointing to `pkgs.python27Packages` * `pkgs.python2Packages` pointing to `pkgs.python27Packages`
* `pkgs.python3Packages` pointing to `pkgs.python38Packages` * `pkgs.python3Packages` pointing to `pkgs.python39Packages`
* `pkgs.pythonPackages` pointing to `pkgs.python2Packages` * `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
#### `buildPythonPackage` function {#buildpythonpackage-function} #### `buildPythonPackage` function {#buildpythonpackage-function}

View file

@ -120,7 +120,7 @@ After that you can install your special grafted `myVim` or `myNeovim` packages.
If one of your favourite plugins isn't packaged, you can package it yourself: If one of your favourite plugins isn't packaged, you can package it yourself:
``` ```nix
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
@ -154,6 +154,33 @@ in
} }
``` ```
### Specificities for some plugins
#### Tree sitter
By default `nvim-treesitter` encourages you to download, compile and install
the required tree-sitter grammars at run time with `:TSInstall`. This works
poorly on NixOS. Instead, to install the `nvim-treesitter` plugins with a set
of precompiled grammars, you can use `nvim-treesitter.withPlugins` function:
```nix
(pkgs.neovim.override {
configure = {
packages.myPlugins = with pkgs.vimPlugins; {
start = [
(nvim-treesitter.withPlugins (
plugins: with plugins; [
tree-sitter-nix
tree-sitter-python
]
))
];
};
};
})
```
To enable all grammars packaged in nixpkgs, use `(pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: pkgs.tree-sitter.allGrammars))`.
## Managing plugins with vim-plug {#managing-plugins-with-vim-plug} ## Managing plugins with vim-plug {#managing-plugins-with-vim-plug}
To use [vim-plug](https://github.com/junegunn/vim-plug) to manage your Vim To use [vim-plug](https://github.com/junegunn/vim-plug) to manage your Vim

View file

@ -49,12 +49,18 @@
})).config; })).config;
moduleDeclarationFile = moduleDeclarationFile =
(builtins.unsafeGetAttrPos "modules" args).file; let
# Even though `modules` is a mandatory argument for `nixosSystem`, it doesn't
# mean that the evaluator always keeps track of its position. If there
# are too many levels of indirection, the position gets lost at some point.
intermediatePos = builtins.unsafeGetAttrPos "modules" args;
in
if intermediatePos == null then null else intermediatePos.file;
# Add the invoking file as error message location for modules # Add the invoking file as error message location for modules
# that don't have their own locations; presumably inline modules. # that don't have their own locations; presumably inline modules.
addModuleDeclarationFile = addModuleDeclarationFile =
m: { m: if moduleDeclarationFile == null then m else {
_file = moduleDeclarationFile; _file = moduleDeclarationFile;
imports = [ m ]; imports = [ m ];
}; };

View file

@ -2469,6 +2469,12 @@
githubId = 452652; githubId = 452652;
name = "Kosyrev Serge"; name = "Kosyrev Serge";
}; };
DeeUnderscore = {
email = "d.anzorge@gmail.com";
github = "DeeUnderscore";
githubId = 156239;
name = "D Anzorge";
};
delan = { delan = {
name = "Delan Azabani"; name = "Delan Azabani";
email = "delan@azabani.com"; email = "delan@azabani.com";
@ -4213,6 +4219,12 @@
githubId = 6430643; githubId = 6430643;
name = "Henry Till"; name = "Henry Till";
}; };
heph2 = {
email = "srht@mrkeebs.eu";
github = "heph2";
githubId = 87579883;
name = "Marco";
};
herberteuler = { herberteuler = {
email = "herberteuler@gmail.com"; email = "herberteuler@gmail.com";
github = "herberteuler"; github = "herberteuler";
@ -5490,6 +5502,12 @@
githubId = 25607; githubId = 25607;
name = "Raimon Grau"; name = "Raimon Grau";
}; };
kidonng = {
email = "hi@xuann.wang";
github = "kidonng";
githubId = 44045911;
name = "Kid";
};
kierdavis = { kierdavis = {
email = "kierdavis@gmail.com"; email = "kierdavis@gmail.com";
github = "kierdavis"; github = "kierdavis";
@ -7582,6 +7600,12 @@
githubId = 26231126; githubId = 26231126;
name = "Nils ANDRÉ-CHANG"; name = "Nils ANDRÉ-CHANG";
}; };
nils-degroot = {
email = "nils@peeko.nl";
github = "nils-degroot";
githubId = 53556985;
name = "Nils de Groot";
};
ninjatrappeur = { ninjatrappeur = {
email = "felix@alternativebit.fr"; email = "felix@alternativebit.fr";
github = "ninjatrappeur"; github = "ninjatrappeur";
@ -11326,6 +11350,12 @@
githubId = 19174984; githubId = 19174984;
name = "Alex Whitt"; name = "Alex Whitt";
}; };
whonore = {
email = "wolfhonore@gmail.com";
github = "whonore";
githubId = 7121530;
name = "Wolf Honoré";
};
wildsebastian = { wildsebastian = {
name = "Sebastian Wild"; name = "Sebastian Wild";
email = "sebastian@wild-siena.com"; email = "sebastian@wild-siena.com";

View file

@ -165,6 +165,20 @@ elsif (defined $expr) {
my $hash = $fetch->{hash}; my $hash = $fetch->{hash};
my $name = $fetch->{name}; my $name = $fetch->{name};
if ($hash =~ /^([a-z0-9]+)-([A-Za-z0-9+\/=]+)$/) {
$algo = $1;
$hash = `nix hash to-base16 $hash` or die;
chomp $hash;
}
next unless $algo =~ /^[a-z0-9]+$/;
# Convert non-SRI base-64 to base-16.
if ($hash =~ /^[A-Za-z0-9+\/=]+$/) {
$hash = `nix hash to-base16 --type '$algo' $hash` or die;
chomp $hash;
}
if (defined $ENV{DEBUG}) { if (defined $ENV{DEBUG}) {
print "$url $algo $hash\n"; print "$url $algo $hash\n";
next; next;
@ -184,7 +198,7 @@ elsif (defined $expr) {
my $storePath = makeFixedOutputPath(0, $algo, $hash, $name); my $storePath = makeFixedOutputPath(0, $algo, $hash, $name);
print STDERR "mirroring $url ($storePath)...\n"; print STDERR "mirroring $url ($storePath, $algo, $hash)...\n";
if ($dryRun) { if ($dryRun) {
$mirrored++; $mirrored++;

View file

@ -14,7 +14,7 @@
</itemizedlist> </itemizedlist>
<section xml:id="sec-release-21.11-highlights"> <section xml:id="sec-release-21.11-highlights">
<title>Highlights</title> <title>Highlights</title>
<itemizedlist spacing="compact"> <itemizedlist>
<listitem> <listitem>
<para> <para>
PHP now defaults to PHP 8.0, updated from 7.4. PHP now defaults to PHP 8.0, updated from 7.4.
@ -26,6 +26,12 @@
default runtime. default runtime.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>python3</literal> now defaults to Python 3.9, updated
from Python 3.8.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section xml:id="sec-release-21.11-new-services"> <section xml:id="sec-release-21.11-new-services">
@ -40,6 +46,13 @@
<link xlink:href="options.html#opt-services.brtbk.instances">services.btrbk</link>. <link xlink:href="options.html#opt-services.brtbk.instances">services.btrbk</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<link xlink:href="https://github.com/xrelkd/clipcat/">clipcat</link>,
an X11 clipboard manager written in Rust. Available at
[services.clipcat](options.html#o pt-services.clipcat.enable).
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>, <link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
@ -92,6 +105,21 @@
<link linkend="opt-snapraid.enable">snapraid</link>. <link linkend="opt-snapraid.enable">snapraid</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<link xlink:href="https://github.com/hockeypuck/hockeypuck">Hockeypuck</link>,
a OpenPGP Key Server. Available as
<link linkend="opt-services.hockeypuck.enable">services.hockeypuck</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/buildkite/buildkite-agent-metrics">buildkite-agent-metrics</link>,
a command-line tool for collecting Buildkite agent metrics,
now has a Prometheus exporter available as
<link linkend="opt-services.prometheus.exporters.buildkite-agent.enable">services.prometheus.exporters.buildkite-agent</link>.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section xml:id="sec-release-21.11-incompatibilities"> <section xml:id="sec-release-21.11-incompatibilities">
@ -510,6 +538,12 @@
changelog</link>. changelog</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The <literal>isabelle</literal> package has been upgraded from
2020 to 2021
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section xml:id="sec-release-21.11-notable-changes"> <section xml:id="sec-release-21.11-notable-changes">
@ -545,6 +579,14 @@
<literal>rxvt-unicode</literal> explicitly. <literal>rxvt-unicode</literal> explicitly.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>python3</literal> now defaults to Python 3.9. Python
3.9 introduces many deprecation warnings, please look at the
<link xlink:href="https://docs.python.org/3/whatsnew/3.9.html">Whats
New In Python 3.9 post</link> for more information.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
The <literal>claws-mail</literal> package now references the The <literal>claws-mail</literal> package now references the

View file

@ -9,10 +9,15 @@ In addition to numerous new and upgraded packages, this release has the followin
- PHP now defaults to PHP 8.0, updated from 7.4. - PHP now defaults to PHP 8.0, updated from 7.4.
- kOps now defaults to 1.21.0, which uses containerd as the default runtime. - kOps now defaults to 1.21.0, which uses containerd as the default runtime.
- `python3` now defaults to Python 3.9, updated from Python 3.8.
## New Services {#sec-release-21.11-new-services} ## New Services {#sec-release-21.11-new-services}
- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances). - [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
- [clipcat](https://github.com/xrelkd/clipcat/), an X11 clipboard manager written in Rust. Available at [services.clipcat](options.html#o
pt-services.clipcat.enable).
- [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable). - [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
- [Kea](https://www.isc.org/kea/), ISCs 2nd generation DHCP and DDNS server suite. Available at [services.kea](options.html#opt-services.kea). - [Kea](https://www.isc.org/kea/), ISCs 2nd generation DHCP and DDNS server suite. Available at [services.kea](options.html#opt-services.kea).
@ -28,6 +33,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- [snapraid](https://www.snapraid.it/), a backup program for disk arrays. - [snapraid](https://www.snapraid.it/), a backup program for disk arrays.
Available as [snapraid](#opt-snapraid.enable). Available as [snapraid](#opt-snapraid.enable).
- [Hockeypuck](https://github.com/hockeypuck/hockeypuck), a OpenPGP Key Server. Available as [services.hockeypuck](#opt-services.hockeypuck.enable).
- [buildkite-agent-metrics](https://github.com/buildkite/buildkite-agent-metrics), a command-line tool for collecting Buildkite agent metrics, now has a Prometheus exporter available as [services.prometheus.exporters.buildkite-agent](#opt-services.prometheus.exporters.buildkite-agent.enable).
## Backward Incompatibilities {#sec-release-21.11-incompatibilities} ## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
@ -128,6 +136,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- `icingaweb2` was upgraded to a new release which requires a manual database upgrade, see [upstream changelog](https://github.com/Icinga/icingaweb2/releases/tag/v2.9.0). - `icingaweb2` was upgraded to a new release which requires a manual database upgrade, see [upstream changelog](https://github.com/Icinga/icingaweb2/releases/tag/v2.9.0).
- The `isabelle` package has been upgraded from 2020 to 2021
## Other Notable Changes {#sec-release-21.11-notable-changes} ## Other Notable Changes {#sec-release-21.11-notable-changes}
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets. - The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
@ -136,6 +146,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- Sway: The terminal emulator `rxvt-unicode` is no longer installed by default via `programs.sway.extraPackages`. The current default configuration uses `alacritty` (and soon `foot`) so this is only an issue when using a customized configuration and not installing `rxvt-unicode` explicitly. - Sway: The terminal emulator `rxvt-unicode` is no longer installed by default via `programs.sway.extraPackages`. The current default configuration uses `alacritty` (and soon `foot`) so this is only an issue when using a customized configuration and not installing `rxvt-unicode` explicitly.
- `python3` now defaults to Python 3.9. Python 3.9 introduces many deprecation warnings, please look at the [What's New In Python 3.9 post](https://docs.python.org/3/whatsnew/3.9.html) for more information.
- The `claws-mail` package now references the new GTK+ 3 release branch, major version 4. To use the GTK+ 2 releases, one can install the `claws-mail-gtk2` package. - The `claws-mail` package now references the new GTK+ 3 release branch, major version 4. To use the GTK+ 2 releases, one can install the `claws-mail-gtk2` package.
- The wordpress module provides a new interface which allows to use different webservers with the new option [`services.wordpress.webserver`](options.html#opt-services.wordpress.webserver). Currently `httpd` and `nginx` are supported. The definitions of wordpress sites should now be set in [`services.wordpress.sites`](options.html#opt-services.wordpress.sites). - The wordpress module provides a new interface which allows to use different webservers with the new option [`services.wordpress.webserver`](options.html#opt-services.wordpress.webserver). Currently `httpd` and `nginx` are supported. The definitions of wordpress sites should now be set in [`services.wordpress.sites`](options.html#opt-services.wordpress.sites).

View file

@ -499,7 +499,7 @@ class Machine:
output += out output += out
return output return output
def wait_until_succeeds(self, command: str) -> str: def wait_until_succeeds(self, command: str, timeout: int = 900) -> str:
"""Wait until a command returns success and return its output. """Wait until a command returns success and return its output.
Throws an exception on timeout. Throws an exception on timeout.
""" """
@ -511,7 +511,7 @@ class Machine:
return status == 0 return status == 0
with self.nested("waiting for success: {}".format(command)): with self.nested("waiting for success: {}".format(command)):
retry(check_success) retry(check_success, timeout)
return output return output
def wait_until_fails(self, command: str) -> str: def wait_until_fails(self, command: str) -> str:

View file

@ -1,6 +1,7 @@
{ {
x86_64-linux = "/nix/store/d1ppfhjhdwcsb4npfzyifv5z8i00fzsk-nix-2.3.11"; x86_64-linux = "/nix/store/qsgz2hhn6mzlzp53a7pwf9z2pq3l5z6h-nix-2.3.14";
i686-linux = "/nix/store/c6ikndcrzwpfn2sb5b9xb1f17p9b8iga-nix-2.3.11"; i686-linux = "/nix/store/1yw40bj04lykisw2jilq06lir3k9ga4a-nix-2.3.14";
aarch64-linux = "/nix/store/fb0lfrn0m8s197d264jzd64vhz9c8zbx-nix-2.3.11"; aarch64-linux = "/nix/store/32yzwmynmjxfrkb6y6l55liaqdrgkj4a-nix-2.3.14";
x86_64-darwin = "/nix/store/qvb86ffv08q3r66qbd6nqifz425lyyhf-nix-2.3.11"; x86_64-darwin = "/nix/store/06j0vi2d13w4l0p3jsigq7lk4x6gkycj-nix-2.3.14";
aarch64-darwin = "/nix/store/77wi7vpbrghw5rgws25w30bwb8yggnk9-nix-2.3.14";
} }

View file

@ -475,6 +475,7 @@
./services/misc/calibre-server.nix ./services/misc/calibre-server.nix
./services/misc/cfdyndns.nix ./services/misc/cfdyndns.nix
./services/misc/clipmenu.nix ./services/misc/clipmenu.nix
./services/misc/clipcat.nix
./services/misc/cpuminer-cryptonight.nix ./services/misc/cpuminer-cryptonight.nix
./services/misc/cgminer.nix ./services/misc/cgminer.nix
./services/misc/confd.nix ./services/misc/confd.nix
@ -886,6 +887,7 @@
./services/security/fprot.nix ./services/security/fprot.nix
./services/security/haka.nix ./services/security/haka.nix
./services/security/haveged.nix ./services/security/haveged.nix
./services/security/hockeypuck.nix
./services/security/hologram-server.nix ./services/security/hologram-server.nix
./services/security/hologram-agent.nix ./services/security/hologram-agent.nix
./services/security/munge.nix ./services/security/munge.nix

View file

@ -108,8 +108,8 @@ in {
type = types.attrsOf (types.submodule ({config, options, ...}: { type = types.attrsOf (types.submodule ({config, options, ...}: {
freeformType = datasetSettingsType; freeformType = datasetSettingsType;
options = commonOptions // datasetOptions; options = commonOptions // datasetOptions;
config.use_template = mkAliasDefinitions (options.useTemplate or {}); config.use_template = mkAliasDefinitions (mkDefault options.useTemplate or {});
config.process_children_only = mkAliasDefinitions (options.processChildrenOnly or {}); config.process_children_only = mkAliasDefinitions (mkDefault options.processChildrenOnly or {});
})); }));
default = {}; default = {};
description = "Datasets to snapshot."; description = "Datasets to snapshot.";

View file

@ -67,6 +67,12 @@ in
default = false; default = false;
description = "Only run the server. This option only makes sense for a server."; description = "Only run the server. This option only makes sense for a server.";
}; };
configPath = mkOption {
type = types.nullOr types.path;
default = null;
description = "File path containing the k3s YAML config. This is useful when the config is generated (for example on boot).";
};
}; };
# implementation # implementation
@ -74,12 +80,12 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = [ assertions = [
{ {
assertion = cfg.role == "agent" -> cfg.serverAddr != ""; assertion = cfg.role == "agent" -> (cfg.configPath != null || cfg.serverAddr != "");
message = "serverAddr should be set if role is 'agent'"; message = "serverAddr or configPath (with 'server' key) should be set if role is 'agent'";
} }
{ {
assertion = cfg.role == "agent" -> cfg.token != "" || cfg.tokenFile != null; assertion = cfg.role == "agent" -> cfg.configPath != null || cfg.tokenFile != null || cfg.token != "";
message = "token or tokenFile should be set if role is 'agent'"; message = "token or tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'";
} }
]; ];
@ -115,12 +121,10 @@ in
"${cfg.package}/bin/k3s ${cfg.role}" "${cfg.package}/bin/k3s ${cfg.role}"
] ++ (optional cfg.docker "--docker") ] ++ (optional cfg.docker "--docker")
++ (optional cfg.disableAgent "--disable-agent") ++ (optional cfg.disableAgent "--disable-agent")
++ (optional (cfg.role == "agent") "--server ${cfg.serverAddr} ${ ++ (optional (cfg.serverAddr != "") "--server ${cfg.serverAddr}")
if cfg.tokenFile != null then ++ (optional (cfg.token != "") "--token ${cfg.token}")
"--token-file ${cfg.tokenFile}" ++ (optional (cfg.tokenFile != null) "--token-file ${cfg.tokenFile}")
else ++ (optional (cfg.configPath != null) "--config ${cfg.configPath}")
"--token ${cfg.token}"
}")
++ [ cfg.extraFlags ] ++ [ cfg.extraFlags ]
); );
}; };

View file

@ -105,7 +105,7 @@ let
pkgs.stdenv.mkDerivation { pkgs.stdenv.mkDerivation {
name = "hercules-ci-check-system-nix-src"; name = "hercules-ci-check-system-nix-src";
inherit (config.nix.package) src patches; inherit (config.nix.package) src patches;
configurePhase = ":"; dontConfigure = true;
buildPhase = '' buildPhase = ''
echo "Checking in-memory pathInfoCache expiry" echo "Checking in-memory pathInfoCache expiry"
if ! grep 'PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then if ! grep 'PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then

View file

@ -54,8 +54,7 @@ stdenv.mkDerivation {
${addAllNetDev netDevices} ${addAllNetDev netDevices}
''; '';
installPhase = ":"; dontInstall = true;
dontStrip = true; dontStrip = true;
dontPatchELF = true; dontPatchELF = true;

View file

@ -0,0 +1,31 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.clipcat;
in {
options.services.clipcat= {
enable = mkEnableOption "Clipcat clipboard daemon";
package = mkOption {
type = types.package;
default = pkgs.clipcat;
defaultText = "pkgs.clipcat";
description = "clipcat derivation to use.";
};
};
config = mkIf cfg.enable {
systemd.user.services.clipcat = {
enable = true;
description = "clipcat daemon";
wantedBy = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig.ExecStart = "${cfg.package}/bin/clipcatd --no-daemon";
};
environment.systemPackages = [ cfg.package ];
};
}

View file

@ -2,7 +2,6 @@
with lib; with lib;
let let
cfg = config.services.klipper; cfg = config.services.klipper;
package = pkgs.klipper;
format = pkgs.formats.ini { mkKeyValue = generators.mkKeyValueDefault {} ":"; }; format = pkgs.formats.ini { mkKeyValue = generators.mkKeyValueDefault {} ":"; };
in in
{ {
@ -11,12 +10,51 @@ in
services.klipper = { services.klipper = {
enable = mkEnableOption "Klipper, the 3D printer firmware"; enable = mkEnableOption "Klipper, the 3D printer firmware";
package = mkOption {
type = types.package;
default = pkgs.klipper;
description = "The Klipper package.";
};
inputTTY = mkOption {
type = types.path;
default = "/run/klipper/tty";
description = "Path of the virtual printer symlink to create.";
};
apiSocket = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/klipper/api";
description = "Path of the API socket to create.";
};
octoprintIntegration = mkOption { octoprintIntegration = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = "Allows Octoprint to control Klipper."; description = "Allows Octoprint to control Klipper.";
}; };
user = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
User account under which Klipper runs.
If null is specified (default), a temporary user will be created by systemd.
'';
};
group = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Group account under which Klipper runs.
If null is specified (default), a temporary user will be created by systemd.
'';
};
settings = mkOption { settings = mkOption {
type = format.type; type = format.type;
default = { }; default = { };
@ -30,26 +68,40 @@ in
##### implementation ##### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = [{ assertions = [
assertion = cfg.octoprintIntegration -> config.services.octoprint.enable; {
message = "Option klipper.octoprintIntegration requires Octoprint to be enabled on this system. Please enable services.octoprint to use it."; assertion = cfg.octoprintIntegration -> config.services.octoprint.enable;
}]; message = "Option klipper.octoprintIntegration requires Octoprint to be enabled on this system. Please enable services.octoprint to use it.";
}
{
assertion = cfg.user != null -> cfg.group != null;
message = "Option klipper.group is not set when a user is specified.";
}
];
environment.etc."klipper.cfg".source = format.generate "klipper.cfg" cfg.settings; environment.etc."klipper.cfg".source = format.generate "klipper.cfg" cfg.settings;
systemd.services.klipper = { services.klipper = mkIf cfg.octoprintIntegration {
user = config.services.octoprint.user;
group = config.services.octoprint.group;
};
systemd.services.klipper = let
klippyArgs = "--input-tty=${cfg.inputTTY}"
+ optionalString (cfg.apiSocket != null) " --api-server=${cfg.apiSocket}";
in {
description = "Klipper 3D Printer Firmware"; description = "Klipper 3D Printer Firmware";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
ExecStart = "${package}/lib/klipper/klippy.py --input-tty=/run/klipper/tty /etc/klipper.cfg"; ExecStart = "${cfg.package}/lib/klipper/klippy.py ${klippyArgs} /etc/klipper.cfg";
RuntimeDirectory = "klipper"; RuntimeDirectory = "klipper";
SupplementaryGroups = [ "dialout" ]; SupplementaryGroups = [ "dialout" ];
WorkingDirectory = "${package}/lib"; WorkingDirectory = "${cfg.package}/lib";
} // (if cfg.octoprintIntegration then { } // (if cfg.user != null then {
Group = config.services.octoprint.group; Group = cfg.group;
User = config.services.octoprint.user; User = cfg.user;
} else { } else {
DynamicUser = true; DynamicUser = true;
User = "klipper"; User = "klipper";

View file

@ -27,6 +27,7 @@ let
"bird" "bird"
"bitcoin" "bitcoin"
"blackbox" "blackbox"
"buildkite-agent"
"collectd" "collectd"
"dnsmasq" "dnsmasq"
"domain" "domain"

View file

@ -0,0 +1,64 @@
{ config, lib, pkgs, options }:
with lib;
let
cfg = config.services.prometheus.exporters.buildkite-agent;
in
{
port = 9876;
extraOpts = {
tokenPath = mkOption {
type = types.nullOr types.path;
apply = final: if final == null then null else toString final;
description = ''
The token from your Buildkite "Agents" page.
A run-time path to the token file, which is supposed to be provisioned
outside of Nix store.
'';
};
interval = mkOption {
type = types.str;
default = "30s";
example = "1min";
description = ''
How often to update metrics.
'';
};
endpoint = mkOption {
type = types.str;
default = "https://agent.buildkite.com/v3";
description = ''
The Buildkite Agent API endpoint.
'';
};
queues = mkOption {
type = with types; nullOr (listOf str);
default = null;
example = literalExample ''[ "my-queue1" "my-queue2" ]'';
description = ''
Which specific queues to process.
'';
};
};
serviceOpts = {
script =
let
queues = concatStringsSep " " (map (q: "-queue ${q}") cfg.queues);
in
''
export BUILDKITE_AGENT_TOKEN="$(cat ${toString cfg.tokenPath})"
exec ${pkgs.buildkite-agent-metrics}/bin/buildkite-agent-metrics \
-backend prometheus \
-interval ${cfg.interval} \
-endpoint ${cfg.endpoint} \
${optionalString (cfg.queues != null) queues} \
-prometheus-addr "${cfg.listenAddress}:${toString cfg.port}" ${concatStringsSep " " cfg.extraFlags}
'';
serviceConfig = {
DynamicUser = false;
RuntimeDirectory = "buildkite-agent-metrics";
};
};
}

View file

@ -0,0 +1,104 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.hockeypuck;
settingsFormat = pkgs.formats.toml { };
in {
meta.maintainers = with lib.maintainers; [ etu ];
options.services.hockeypuck = {
enable = lib.mkEnableOption "Hockeypuck OpenPGP Key Server";
port = lib.mkOption {
default = 11371;
type = lib.types.port;
description = "HKP port to listen on.";
};
settings = lib.mkOption {
type = settingsFormat.type;
default = { };
example = lib.literalExample ''
{
hockeypuck = {
loglevel = "INFO";
logfile = "/var/log/hockeypuck/hockeypuck.log";
indexTemplate = "''${pkgs.hockeypuck-web}/share/templates/index.html.tmpl";
vindexTemplate = "''${pkgs.hockeypuck-web}/share/templates/index.html.tmpl";
statsTemplate = "''${pkgs.hockeypuck-web}/share/templates/stats.html.tmpl";
webroot = "''${pkgs.hockeypuck-web}/share/webroot";
hkp.bind = ":''${toString cfg.port}";
openpgp.db = {
driver = "postgres-jsonb";
dsn = "database=hockeypuck host=/var/run/postgresql sslmode=disable";
};
};
}
'';
description = ''
Configuration file for hockeypuck, here you can override
certain settings (<literal>loglevel</literal> and
<literal>openpgp.db.dsn</literal>) by just setting those values.
For other settings you need to use lib.mkForce to override them.
This service doesn't provision or enable postgres on your
system, it rather assumes that you enable postgres and create
the database yourself.
Example:
<literal>
services.postgresql = {
enable = true;
ensureDatabases = [ "hockeypuck" ];
ensureUsers = [{
name = "hockeypuck";
ensurePermissions."DATABASE hockeypuck" = "ALL PRIVILEGES";
}];
};
</literal>
'';
};
};
config = lib.mkIf cfg.enable {
services.hockeypuck.settings.hockeypuck = {
loglevel = lib.mkDefault "INFO";
logfile = "/var/log/hockeypuck/hockeypuck.log";
indexTemplate = "${pkgs.hockeypuck-web}/share/templates/index.html.tmpl";
vindexTemplate = "${pkgs.hockeypuck-web}/share/templates/index.html.tmpl";
statsTemplate = "${pkgs.hockeypuck-web}/share/templates/stats.html.tmpl";
webroot = "${pkgs.hockeypuck-web}/share/webroot";
hkp.bind = ":${toString cfg.port}";
openpgp.db = {
driver = "postgres-jsonb";
dsn = lib.mkDefault "database=hockeypuck host=/var/run/postgresql sslmode=disable";
};
};
users.users.hockeypuck = {
isSystemUser = true;
description = "Hockeypuck user";
};
systemd.services.hockeypuck = {
description = "Hockeypuck OpenPGP Key Server";
after = [ "network.target" "postgresql.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
WorkingDirectory = "/var/lib/hockeypuck";
User = "hockeypuck";
ExecStart = "${pkgs.hockeypuck}/bin/hockeypuck -config ${settingsFormat.generate "config.toml" cfg.settings}";
Restart = "always";
RestartSec = "5s";
LogsDirectory = "hockeypuck";
LogsDirectoryMode = "0755";
StateDirectory = "hockeypuck";
};
};
};
}

View file

@ -6,7 +6,7 @@ let
cfg = config.services.getty; cfg = config.services.getty;
baseArgs = [ baseArgs = [
"--login-program" "${pkgs.shadow}/bin/login" "--login-program" "${cfg.loginProgram}"
] ++ optionals (cfg.autologinUser != null) [ ] ++ optionals (cfg.autologinUser != null) [
"--autologin" cfg.autologinUser "--autologin" cfg.autologinUser
] ++ optionals (cfg.loginOptions != null) [ ] ++ optionals (cfg.loginOptions != null) [
@ -39,6 +39,14 @@ in
''; '';
}; };
loginProgram = mkOption {
type = types.path;
default = "${pkgs.shadow}/bin/login";
description = ''
Path to the login binary executed by agetty.
'';
};
loginOptions = mkOption { loginOptions = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;

View file

@ -6,6 +6,9 @@ let
crioPackage = (pkgs.cri-o.override { inherit (cfg) extraPackages; }); crioPackage = (pkgs.cri-o.override { inherit (cfg) extraPackages; });
format = pkgs.formats.toml { };
cfgFile = format.generate "00-default.conf" cfg.settings;
in in
{ {
imports = [ imports = [
@ -13,7 +16,7 @@ in
]; ];
meta = { meta = {
maintainers = lib.teams.podman.members; maintainers = teams.podman.members;
}; };
options.virtualisation.cri-o = { options.virtualisation.cri-o = {
@ -55,7 +58,7 @@ in
extraPackages = mkOption { extraPackages = mkOption {
type = with types; listOf package; type = with types; listOf package;
default = [ ]; default = [ ];
example = lib.literalExample '' example = literalExample ''
[ [
pkgs.gvisor pkgs.gvisor
] ]
@ -65,7 +68,7 @@ in
''; '';
}; };
package = lib.mkOption { package = mkOption {
type = types.package; type = types.package;
default = crioPackage; default = crioPackage;
internal = true; internal = true;
@ -80,6 +83,15 @@ in
description = "Override the network_dir option."; description = "Override the network_dir option.";
internal = true; internal = true;
}; };
settings = mkOption {
type = format.type;
default = { };
description = ''
Configuration for cri-o, see
<link xlink:href="https://github.com/cri-o/cri-o/blob/master/docs/crio.conf.5.md"/>.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -87,36 +99,38 @@ in
environment.etc."crictl.yaml".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/crictl.yaml"; environment.etc."crictl.yaml".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/crictl.yaml";
environment.etc."crio/crio.conf.d/00-default.conf".text = '' virtualisation.cri-o.settings.crio = {
[crio] storage_driver = cfg.storageDriver;
storage_driver = "${cfg.storageDriver}"
[crio.image] image = {
${optionalString (cfg.pauseImage != null) ''pause_image = "${cfg.pauseImage}"''} pause_image = mkIf (cfg.pauseImage != null) cfg.pauseImage;
${optionalString (cfg.pauseCommand != null) ''pause_command = "${cfg.pauseCommand}"''} pause_command = mkIf (cfg.pauseCommand != null) cfg.pauseCommand;
};
[crio.network] network = {
plugin_dirs = ["${pkgs.cni-plugins}/bin/"] plugin_dirs = [ "${pkgs.cni-plugins}/bin" ];
${optionalString (cfg.networkDir != null) ''network_dir = "${cfg.networkDir}"''} network_dir = mkIf (cfg.networkDir != null) cfg.networkDir;
};
[crio.runtime] runtime = {
cgroup_manager = "systemd" cgroup_manager = "systemd";
log_level = "${cfg.logLevel}" log_level = cfg.logLevel;
pinns_path = "${cfg.package}/bin/pinns" manage_ns_lifecycle = true;
hooks_dir = [ pinns_path = "${cfg.package}/bin/pinns";
${lib.optionalString config.virtualisation.containers.ociSeccompBpfHook.enable hooks_dir =
''"${config.boot.kernelPackages.oci-seccomp-bpf-hook}",''} optional (config.virtualisation.containers.ociSeccompBpfHook.enable)
] config.boot.kernelPackages.oci-seccomp-bpf-hook;
${optionalString (cfg.runtime != null) '' default_runtime = mkIf (cfg.runtime != null) cfg.runtime;
default_runtime = "${cfg.runtime}" runtimes = mkIf (cfg.runtime != null) {
[crio.runtime.runtimes] "${cfg.runtime}" = { };
[crio.runtime.runtimes.${cfg.runtime}] };
''} };
''; };
environment.etc."cni/net.d/10-crio-bridge.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/10-crio-bridge.conf"; environment.etc."cni/net.d/10-crio-bridge.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/10-crio-bridge.conf";
environment.etc."cni/net.d/99-loopback.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/99-loopback.conf"; environment.etc."cni/net.d/99-loopback.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/99-loopback.conf";
environment.etc."crio/crio.conf.d/00-default.conf".source = cfgFile;
# Enable common /etc/containers configuration # Enable common /etc/containers configuration
virtualisation.containers.enable = true; virtualisation.containers.enable = true;
@ -139,6 +153,7 @@ in
TimeoutStartSec = "0"; TimeoutStartSec = "0";
Restart = "on-abnormal"; Restart = "on-abnormal";
}; };
restartTriggers = [ cfgFile ];
}; };
}; };
} }

View file

@ -174,6 +174,7 @@ in
hitch = handleTest ./hitch {}; hitch = handleTest ./hitch {};
hledger-web = handleTest ./hledger-web.nix {}; hledger-web = handleTest ./hledger-web.nix {};
hocker-fetchdocker = handleTest ./hocker-fetchdocker {}; hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
hockeypuck = handleTest ./hockeypuck.nix { };
home-assistant = handleTest ./home-assistant.nix {}; home-assistant = handleTest ./home-assistant.nix {};
hostname = handleTest ./hostname.nix {}; hostname = handleTest ./hostname.nix {};
hound = handleTest ./hound.nix {}; hound = handleTest ./hound.nix {};
@ -423,6 +424,7 @@ in
taskserver = handleTest ./taskserver.nix {}; taskserver = handleTest ./taskserver.nix {};
telegraf = handleTest ./telegraf.nix {}; telegraf = handleTest ./telegraf.nix {};
tiddlywiki = handleTest ./tiddlywiki.nix {}; tiddlywiki = handleTest ./tiddlywiki.nix {};
tigervnc = handleTest ./tigervnc.nix {};
timezone = handleTest ./timezone.nix {}; timezone = handleTest ./timezone.nix {};
tinc = handleTest ./tinc {}; tinc = handleTest ./tinc {};
tinydns = handleTest ./tinydns.nix {}; tinydns = handleTest ./tinydns.nix {};

View file

@ -0,0 +1,63 @@
import ./make-test-python.nix ({ lib, pkgs, ... }:
let
gpgKeyring = (pkgs.runCommandNoCC "gpg-keyring" { buildInputs = [ pkgs.gnupg ]; } ''
mkdir -p $out
export GNUPGHOME=$out
cat > foo <<EOF
%echo Generating a basic OpenPGP key
%no-protection
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: Foo Example
Name-Email: foo@example.org
Expire-Date: 0
# Do a commit here, so that we can later print "done"
%commit
%echo done
EOF
gpg --batch --generate-key foo
rm $out/S.gpg-agent $out/S.gpg-agent.*
'');
in {
name = "hockeypuck";
meta.maintainers = with lib.maintainers; [ etu ];
machine = { ... }: {
# Used for test
environment.systemPackages = [ pkgs.gnupg ];
services.hockeypuck.enable = true;
services.postgresql = {
enable = true;
ensureDatabases = [ "hockeypuck" ];
ensureUsers = [{
name = "hockeypuck";
ensurePermissions."DATABASE hockeypuck" = "ALL PRIVILEGES";
}];
};
};
testScript = ''
machine.wait_for_unit("hockeypuck.service")
machine.wait_for_open_port(11371)
response = machine.succeed("curl -vvv -s http://127.0.0.1:11371/")
assert "<title>OpenPGP Keyserver</title>" in response, "HTML title not found"
# Copy the keyring
machine.succeed("cp -R ${gpgKeyring} /tmp/GNUPGHOME")
# Extract our GPG key id
keyId = machine.succeed("GNUPGHOME=/tmp/GNUPGHOME gpg --list-keys | grep dsa1024 --after-context=1 | grep -v dsa1024").strip()
# Send the key to our local keyserver
machine.succeed("GNUPGHOME=/tmp/GNUPGHOME gpg --keyserver hkp://127.0.0.1:11371 --send-keys " + keyId)
# Recieve the key from our local keyserver to a separate directory
machine.succeed("GNUPGHOME=$(mktemp -d) gpg --keyserver hkp://127.0.0.1:11371 --recv-keys " + keyId)
'';
})

View file

@ -0,0 +1,53 @@
{ system ? builtins.currentSystem
, config ? {}
, pkgs ? import ../.. { inherit system config; }
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
makeTest {
name = "tigervnc";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lheckemann ];
};
nodes = {
server = { pkgs, ...}: {
environment.systemPackages = with pkgs; [
tigervnc # for Xvnc
xorg.xwininfo
imagemagickBig # for display with working label: support
];
networking.firewall.allowedTCPPorts = [ 5901 ];
};
client = { pkgs, ... }: {
imports = [ ./common/x11.nix ];
# for vncviewer
environment.systemPackages = [ pkgs.tigervnc ];
};
};
enableOCR = true;
testScript = ''
start_all()
for host in [server, client]:
host.succeed("echo foobar | vncpasswd -f > vncpasswd")
server.succeed("Xvnc -geometry 720x576 :1 -PasswordFile vncpasswd &")
server.wait_until_succeeds("nc -z localhost 5901", timeout=10)
server.succeed("DISPLAY=:1 xwininfo -root | grep 720x576")
server.execute("DISPLAY=:1 display -size 360x200 -font sans -gravity south label:'HELLO VNC WORLD' &")
client.wait_for_x()
client.execute("vncviewer server:1 -PasswordFile vncpasswd &")
client.wait_for_window(r"VNC")
client.screenshot("screenshot")
text = client.get_screen_text()
# Displayed text
assert 'HELLO VNC WORLD' in text
# Client window title
assert 'TigerVNC' in text
'';
}

View file

@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitLab, fetchpatch }: { lib, stdenv, fetchFromGitLab, fetchpatch }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "aacgain-1.9.0"; pname = "aacgain";
version = "1.9.0";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "mulx"; owner = "mulx";

View file

@ -6,11 +6,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bitwig-studio"; pname = "bitwig-studio";
version = "4.0"; version = "4.0.1";
src = fetchurl { src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb"; url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
sha256 = "38381c1a382abd9543931f34d5ae1789c31ec1217a1c852b5c5c442ccaf97063"; sha256 = "sha256-yhCAKlbLjyBywkSYY1aqbUGFlAHBLR8g8xPDIqoUIZk=";
}; };
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ]; nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];

View file

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, gnu-config, IOKit, Carbon }: { lib, stdenv, fetchurl, gnu-config, IOKit, Carbon }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cdparanoia-III-10.2"; pname = "cdparanoia-III";
version = "10.2";
src = fetchurl { src = fetchurl {
url = "http://downloads.xiph.org/releases/cdparanoia/${name}.src.tgz"; url = "https://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${version}.src.tgz";
sha256 = "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"; sha256 = "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80";
}; };

View file

@ -19,9 +19,10 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "crip-3.9"; pname = "crip";
version = "3.9";
src = fetchurl { src = fetchurl {
url = "http://bach.dynet.com/crip/src/${name}.tar.gz"; url = "http://bach.dynet.com/${pname}/src/${pname}-${version}.tar.gz";
sha256 = "0pk9152wll6fmkj1pki3fz3ijlf06jyk32v31yarwvdkwrk7s9xz"; sha256 = "0pk9152wll6fmkj1pki3fz3ijlf06jyk32v31yarwvdkwrk7s9xz";
}; };

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
# When updating, please check if https://github.com/csound/csound/issues/1078 # When updating, please check if https://github.com/csound/csound/issues/1078
# has been fixed in the new version so we can use the normal fluidsynth # has been fixed in the new version so we can use the normal fluidsynth
# version and remove fluidsynth 1.x from nixpkgs again. # version and remove fluidsynth 1.x from nixpkgs again.
version = "6.15.0"; version = "6.16.2";
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
owner = "csound"; owner = "csound";
repo = "csound"; repo = "csound";
rev = version; rev = version;
sha256 = "1vld6v55jxvv3ddr21kh41s4cdkhnm5wpffvd097zqrqh1aq08r0"; sha256 = "sha256-1rcS3kOspU9ACx45yB8betph4G0hso1OSJQRiabX6tE=";
}; };
cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp

View file

@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, libsndfile, libsamplerate, liblo, libjack2 }: { lib, stdenv, fetchFromGitHub, libsndfile, libsamplerate, liblo, libjack2 }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "dirt-2018-01-01"; pname = "dirt";
version = "unstable-2018-01-01";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "Dirt"; repo = "Dirt";
owner = "tidalcycles"; owner = "tidalcycles";

View file

@ -5,10 +5,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gmu-0.10.1"; pname = "gmu";
version = "0.10.1";
src = fetchurl { src = fetchurl {
url = "http://wejp.k.vu/files/${name}.tar.gz"; url = "https://wej.k.vu/files/${pname}-${version}.tar.gz";
sha256 = "03x0mc0xw2if0bpf0a15yprcyx1xccki039zvl2099dagwk6xskv"; sha256 = "03x0mc0xw2if0bpf0a15yprcyx1xccki039zvl2099dagwk6xskv";
}; };

View file

@ -1,8 +1,9 @@
{ lib, stdenv, fetchurl, pkg-config, libjack2, ladspaH, gtk2, alsa-lib, libxml2, lrdf }: { lib, stdenv, fetchurl, pkg-config, libjack2, ladspaH, gtk2, alsa-lib, libxml2, lrdf }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jack-rack-1.4.7"; pname = "jack-rack";
version = "1.4.7";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/jack-rack/${name}.tar.bz2"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045"; sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libjack2, pkg-config }: { lib, stdenv, fetchurl, libjack2, pkg-config }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jackmeter-0.4"; pname = "jackmeter";
version = "0.4";
src = fetchurl { src = fetchurl {
url = "https://www.aelius.com/njh/jackmeter/${name}.tar.gz"; url = "https://www.aelius.com/njh/${pname}/${pname}-${version}.tar.gz";
sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r"; sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r";
}; };

View file

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libmikmod, ncurses }: { lib, stdenv, fetchurl, libmikmod, ncurses }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mikmod-3.2.8"; pname = "mikmod";
version = "3.2.8";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/mikmod/${name}.tar.gz"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "1k54p8pn3jinha0f2i23ad15pf1pamibzcxjrbzjbklpcz1ipc6v"; sha256 = "1k54p8pn3jinha0f2i23ad15pf1pamibzcxjrbzjbklpcz1ipc6v";
}; };

View file

@ -1,9 +1,10 @@
{ lib, stdenv, fetchurl, fetchpatch, unzip, mpg123 }: { lib, stdenv, fetchurl, fetchpatch, unzip, mpg123 }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "mp3gain-1.6.2"; pname = "mp3gain";
version = "1.6.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/mp3gain/mp3gain-1_6_2-src.zip"; url = "mirror://sourceforge/${pname}/${pname}-${lib.replaceStrings ["."] ["_"] version}-src.zip";
sha256 = "0varr6y7k8zarr56b42r0ad9g3brhn5vv3xjg1c0v19jxwr4gh2w"; sha256 = "0varr6y7k8zarr56b42r0ad9g3brhn5vv3xjg1c0v19jxwr4gh2w";
}; };

View file

@ -1,10 +1,11 @@
{ fetchurl, lib, stdenv, ncurses, pkg-config, gtk2 }: { fetchurl, lib, stdenv, ncurses, pkg-config, gtk2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mp3info-0.8.5a"; pname = "mp3info";
version = "0.8.5a";
src = fetchurl { src = fetchurl {
url = "ftp://ftp.ibiblio.org/pub/linux/apps/sound/mp3-utils/mp3info/${name}.tgz"; url = "ftp://ftp.ibiblio.org/pub/linux/apps/sound/mp3-utils/${pname}/${pname}-${version}.tgz";
sha256 = "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04"; sha256 = "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04";
}; };

View file

@ -7,10 +7,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mpg123-1.26.5"; pname = "mpg123";
version = "1.26.5";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/mpg123/${name}.tar.bz2"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
sha256 = "sha256-UCqX4Nk1vn432YczgCHY8wG641wohPKoPVnEtSRm7wY="; sha256 = "sha256-UCqX4Nk1vn432YczgCHY8wG641wohPKoPVnEtSRm7wY=";
}; };

View file

@ -3,10 +3,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nootka-1.4.7"; pname = "nootka";
version = "1.4.7";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/nootka/${name}-source.tar.bz2"; url = "mirror://sourceforge/nootka/${pname}-${version}-source.tar.bz2";
sha256 = "1y9wlwri74v2z9dwbcfjs7xri54yra24vpwq19xi2lfv1nbs518x"; sha256 = "1y9wlwri74v2z9dwbcfjs7xri54yra24vpwq19xi2lfv1nbs518x";
}; };

View file

@ -1,9 +1,11 @@
{lib, stdenv, fetchurl, libogg, libao, pkg-config, flac, opusfile, libopusenc}: {lib, stdenv, fetchurl, libogg, libao, pkg-config, flac, opusfile, libopusenc}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "opus-tools-0.2"; pname = "opus-tools";
version = "0.2";
src = fetchurl { src = fetchurl {
url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz"; url = "https://downloads.xiph.org/releases/opus/${pname}-${version}.tar.gz";
sha256 = "11pzl27s4vcz4m18ch72nivbhww2zmzn56wspb7rll1y1nq6rrdl"; sha256 = "11pzl27s4vcz4m18ch72nivbhww2zmzn56wspb7rll1y1nq6rrdl";
}; };

View file

@ -29,10 +29,11 @@
# handle that. # handle that.
mkDerivation rec { mkDerivation rec {
name = "qmmp-1.4.4"; pname = "qmmp";
version = "1.4.4";
src = fetchurl { src = fetchurl {
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2"; url = "https://qmmp.ylsoftware.com/files/${pname}-${version}.tar.bz2";
sha256 = "sha256-sZRZVhCf2ceETuV4AULA0kVkuIMn3C+aYdKThqvPnVQ="; sha256 = "sha256-sZRZVhCf2ceETuV4AULA0kVkuIMn3C+aYdKThqvPnVQ=";
}; };

View file

@ -35,13 +35,13 @@
mkDerivation rec { mkDerivation rec {
pname = "strawberry"; pname = "strawberry";
version = "0.9.2"; version = "0.9.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jonaski"; owner = "jonaski";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256:0d9asg21j9ai23sb35cimws8bd8fsnpha777rgscraa7i09q0rx2"; sha256 = "sha256-OOdHsii6O4okVHDhrqCNJ7WVB0VKPs8q0AhEY+IvflE=";
}; };
buildInputs = [ buildInputs = [
@ -77,7 +77,10 @@ mkDerivation rec {
++ lib.optional withVlc libvlc; ++ lib.optional withVlc libvlc;
nativeBuildInputs = [ nativeBuildInputs = [
cmake ninja pkg-config qttools cmake
ninja
pkg-config
qttools
] ++ lib.optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
util-linux util-linux
]; ];

View file

@ -5,10 +5,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tony-2.1.1"; pname = "tony";
version = "2.1.1";
src = fetchurl { src = fetchurl {
url = "https://code.soundsoftware.ac.uk/attachments/download/2616/${name}.tar.gz"; url = "https://code.soundsoftware.ac.uk/attachments/download/2616/${pname}-${version}.tar.gz";
sha256 = "03g2bmlj08lmgvh54dyd635xccjn730g4wwlhpvsw04bffz8b7fp"; sha256 = "03g2bmlj08lmgvh54dyd635xccjn730g4wwlhpvsw04bffz8b7fp";
}; };

View file

@ -2,9 +2,10 @@
, lzo, libdvdread, pkg-config, x264, libmpeg2, xvidcore }: , lzo, libdvdread, pkg-config, x264, libmpeg2, xvidcore }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "transcode-1.1.7"; pname = "transcode";
version = "1.1.7";
src = fetchurl { src = fetchurl {
url = "https://bitbucket.org/france/transcode-tcforge/downloads/${name}.tar.bz2"; url = "https://bitbucket.org/france/transcode-tcforge/downloads/${pname}-${version}.tar.bz2";
sha256 = "1e4e72d8e0dd62a80b8dd90699f5ca64c9b0cb37a5c9325c184166a9654f0a92"; sha256 = "1e4e72d8e0dd62a80b8dd90699f5ca64c9b0cb37a5c9325c184166a9654f0a92";
}; };

View file

@ -1,7 +1,8 @@
{ lib, stdenv, fetchurl, pkg-config, alsa-lib, libxmp }: { lib, stdenv, fetchurl, pkg-config, alsa-lib, libxmp }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xmp-4.1.0"; pname = "xmp";
version = "4.1.0";
meta = with lib; { meta = with lib; {
description = "Extended module player"; description = "Extended module player";
@ -11,7 +12,7 @@ stdenv.mkDerivation rec {
}; };
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/xmp/xmp/${name}.tar.gz"; url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tar.gz";
sha256 = "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x"; sha256 = "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x";
}; };

View file

@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, alsa-lib, libjack2, zita-alsa-pcmi, zita-resampler }: { lib, stdenv, fetchurl, alsa-lib, libjack2, zita-alsa-pcmi, zita-resampler }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "zita-ajbridge-0.8.4"; pname = "zita-ajbridge";
version = "0.8.4";
src = fetchurl { src = fetchurl {
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2"; url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "0g5v0l0zmqh049mhv62n8s5bpm0yrlby7mkxxhs5qwadp8v4w9mw"; sha256 = "0g5v0l0zmqh049mhv62n8s5bpm0yrlby7mkxxhs5qwadp8v4w9mw";
}; };

View file

@ -4,10 +4,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "zita-at1-0.6.2"; pname = "zita-at1";
version = "0.6.2";
src = fetchurl { src = fetchurl {
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2"; url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "0mxfn61zvhlq3r1mqipyqzjbanrfdkk8x4nxbz8nlbdk0bf3vfqr"; sha256 = "0mxfn61zvhlq3r1mqipyqzjbanrfdkk8x4nxbz8nlbdk0bf3vfqr";
}; };

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper, { lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
dotnetPackages, dotnetCorePackages dotnetPackages, dotnetCorePackages, altcoinSupport ? false
}: }:
let let
@ -34,8 +34,8 @@ stdenv.mkDerivation rec {
nuget sources Add -Name tmpsrc -Source $TMP/nuget nuget sources Add -Name tmpsrc -Source $TMP/nuget
nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
dotnet restore --source $TMP/nuget BTCPayServer/BTCPayServer.csproj dotnet restore --source $TMP/nuget ${lib.optionalString altcoinSupport ''/p:Configuration="Altcoins-Release"''} BTCPayServer/BTCPayServer.csproj
dotnet publish --no-restore --output $out/share/$pname -c Release BTCPayServer/BTCPayServer.csproj dotnet publish --no-restore --output $out/share/$pname ${lib.optionalString altcoinSupport "-c Altcoins-Release"} BTCPayServer/BTCPayServer.csproj
''; '';
# btcpayserver requires the publish directory as its working dir # btcpayserver requires the publish directory as its working dir

View file

@ -84,6 +84,11 @@
version = "3.2.435"; version = "3.2.435";
sha256 = "0ksmby0lzgsxkv0xfzr840262kcqra9vds91mcx0rf20blksfvsk"; sha256 = "0ksmby0lzgsxkv0xfzr840262kcqra9vds91mcx0rf20blksfvsk";
}) })
(fetchNuGet {
name = "Common.Logging.Core";
version = "3.4.1";
sha256 = "06h80c7l12nh6gnkzskcs4w8741xhprv72vf88f33ilzfy37h5jy";
})
(fetchNuGet { (fetchNuGet {
name = "CsvHelper"; name = "CsvHelper";
version = "15.0.5"; version = "15.0.5";
@ -759,6 +764,11 @@
version = "2.0.31"; version = "2.0.31";
sha256 = "13gcfsxpfq8slmsvgzf6iv581x7n535zq0p9c88bqs5p88r6lygm"; sha256 = "13gcfsxpfq8slmsvgzf6iv581x7n535zq0p9c88bqs5p88r6lygm";
}) })
(fetchNuGet {
name = "NBitcoin";
version = "5.0.33";
sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
})
(fetchNuGet { (fetchNuGet {
name = "NBitcoin"; name = "NBitcoin";
version = "5.0.4"; version = "5.0.4";
@ -794,6 +804,86 @@
version = "3.0.21"; version = "3.0.21";
sha256 = "1asri2wsjq3ljf2p4r4x52ba9cirh8ccc5ysxpnv4cvladkdazbi"; sha256 = "1asri2wsjq3ljf2p4r4x52ba9cirh8ccc5ysxpnv4cvladkdazbi";
}) })
(fetchNuGet {
name = "Nethereum.ABI";
version = "3.8.0";
sha256 = "10saq2qsqqgsf9d5cjji4lay74ydwkvkqgnns6gxikqicci8yx5c";
})
(fetchNuGet {
name = "Nethereum.Accounts";
version = "3.8.0";
sha256 = "03dq4l1gsd6r2hah5flas8d8pfys7hh5srd279kiidaaxrp8fv2m";
})
(fetchNuGet {
name = "Nethereum.BlockchainProcessing";
version = "3.8.0";
sha256 = "0sz6710a3rvzbj1ghx8dx9adfpsaydw8129c5nj2bqvvh6shi4ax";
})
(fetchNuGet {
name = "Nethereum.Contracts";
version = "3.8.0";
sha256 = "0989as81dqz4j0h8b5a9f5hnd4lrjdj851cfc4j5h6hd633a13f8";
})
(fetchNuGet {
name = "Nethereum.HdWallet";
version = "3.8.0";
sha256 = "0dy1bcm0gsp137286q3bx5q9gyd8lymrdmnh1ip3sszs5j31l9k2";
})
(fetchNuGet {
name = "Nethereum.Hex";
version = "3.8.0";
sha256 = "0sbi982jnfs39sp7w85wf8lb51mijpwr9mpsmws08zrm90n93kb6";
})
(fetchNuGet {
name = "Nethereum.JsonRpc.Client";
version = "3.8.0";
sha256 = "0gmdvsxhs398cj14f16r3dl8yv52iaxr9c9214k2ra28r14gfd1l";
})
(fetchNuGet {
name = "Nethereum.JsonRpc.RpcClient";
version = "3.8.0";
sha256 = "05k5f0dfcx4afbkc1w7cfnz514i7840j2haxyzsxkp8818yvfg0a";
})
(fetchNuGet {
name = "Nethereum.KeyStore";
version = "3.8.0";
sha256 = "05pj95vcfznlk4saq9dw19377gd1sqgmjcg5h92b5rzpgm9v811s";
})
(fetchNuGet {
name = "Nethereum.Model";
version = "3.8.0";
sha256 = "1qfhzqirj9bi49zb6rdcy7w5bm9jyv3a79q7crmgpq3qx4lmz5yh";
})
(fetchNuGet {
name = "Nethereum.RLP";
version = "3.8.0";
sha256 = "16142ag09h95394ip0ffkci09hchxh2i5xaw2rq46qcr8xd3kiym";
})
(fetchNuGet {
name = "Nethereum.RPC";
version = "3.8.0";
sha256 = "1m2p10dds1k0r3gci25lh6cxl9z7ciw18g6wwa4yqi1hsw7n59vb";
})
(fetchNuGet {
name = "Nethereum.Signer";
version = "3.8.0";
sha256 = "175acfqjqacc5zwh2kmrfnwd15jm3fjpv0xlgpyqry52mqxd9khf";
})
(fetchNuGet {
name = "Nethereum.StandardTokenEIP20";
version = "3.8.0";
sha256 = "0xqb32x5b9y9r380frhj52i1lxsfs92nfgcpmys3shjxz6fnwf6g";
})
(fetchNuGet {
name = "Nethereum.Util";
version = "3.8.0";
sha256 = "1ig1zkzpglq2q465n4c0ckv8w9gca9cfxz1qnrdhap0f1z90jyg8";
})
(fetchNuGet {
name = "Nethereum.Web3";
version = "3.8.0";
sha256 = "0n18chc9h1cxqp01kncik9lqfgiqrzl2zr8jgzbb05drlf6k0f3i";
})
(fetchNuGet { (fetchNuGet {
name = "NETStandard.Library"; name = "NETStandard.Library";
version = "1.6.1"; version = "1.6.1";
@ -914,6 +1004,11 @@
version = "2.2.1"; version = "2.2.1";
sha256 = "1w6s9wjbsyvq8cnqknkdzm9chnv0g5gcsrq5i94zp6br9vg7c627"; sha256 = "1w6s9wjbsyvq8cnqknkdzm9chnv0g5gcsrq5i94zp6br9vg7c627";
}) })
(fetchNuGet {
name = "Portable.BouncyCastle";
version = "1.8.2";
sha256 = "0xqc8q40lr4r7ahsmzpa1q0jagp12abb6rsj80p37q34hsv5284q";
})
(fetchNuGet { (fetchNuGet {
name = "QRCoder"; name = "QRCoder";
version = "1.4.1"; version = "1.4.1";

View file

@ -8,4 +8,5 @@ echo "Updating nbxplorer"
../nbxplorer/update.sh ../nbxplorer/update.sh
echo echo
echo "Updating btcpayserver" echo "Updating btcpayserver"
../nbxplorer/util/update-common.sh btcpayserver deps.nix # Include Razor SDK packages in deps.nix
../nbxplorer/util/update-common.sh btcpayserver deps.nix '"/p:Configuration="Altcoins-Release" /p:RazorCompileOnBuild=false'

View file

@ -7,13 +7,13 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version; name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
version = "1.14.2"; version = "1.14.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dogecoin"; owner = "dogecoin";
repo = "dogecoin"; repo = "dogecoin";
rev = "v${version}"; rev = "v${version}";
sha256 = "1gw46q63mjzwvb17ck6p1bap2xpdrap08szw2kjhasa3yvd5swyy"; sha256 = "sha256-kozUnIislQDtgjeesYHKu4sB1j9juqaWvyax+Lb/0pc=";
}; };
nativeBuildInputs = [ pkg-config autoreconfHook ]; nativeBuildInputs = [ pkg-config autoreconfHook ];

View file

@ -0,0 +1,38 @@
{ lib
, stdenv
, fetchzip
, jq
, openjdk11
}:
stdenv.mkDerivation rec {
pname = "eclair";
version = "0.6.1";
revision = "d3ae323";
src = fetchzip {
url = "https://github.com/ACINQ/eclair/releases/download/v${version}/eclair-node-${version}-${revision}-bin.zip";
sha256 = "0hmdssj6pxhvadrgr1svb2lh7hfbd2axr5wsl7glizv1a21g0l2c";
};
propagatedBuildInputs = [ jq openjdk11 ];
installPhase = ''
runHook preInstall
mkdir $out
cp -a * $out
mv $out/bin/eclair-node.sh $out/bin/eclair-node
rm $out/bin/eclair-node.bat
runHook postInstall
'';
meta = with lib; {
description = "A scala implementation of the Lightning Network";
homepage = "https://github.com/ACINQ/eclair";
license = licenses.asl20;
maintainers = with maintainers; [ prusnak ];
platforms = [ "x86_64-linux" "x86_64-darwin" ];
};
}

View file

@ -9,17 +9,17 @@ let
in buildGoModule rec { in buildGoModule rec {
pname = "go-ethereum"; pname = "go-ethereum";
version = "1.10.4"; version = "1.10.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ethereum"; owner = "ethereum";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-DRlIiO3iXUsQnmOf5T9uk3560tVbS+Hrs8QtVkmllAI="; sha256 = "sha256:1226picbgnph71fk2y0n1hyfrh6m8sh54kgn3pmikydnw176k9j1";
}; };
runVend = true; runVend = true;
vendorSha256 = "sha256-a/vY9iyqSM9QPs7lGFF6E7e2cMjIerVkNf5KwiWdyr0="; vendorSha256 = "sha256:1nf2gamamlgr2sl5ibib5wai1pipj66xhbhnb4s4480j5pbv9a76";
doCheck = false; doCheck = false;

View file

@ -1,21 +1,21 @@
{ buildGoModule { buildGoModule
, fetchFromGitHub , fetchFromGitHub
, lib , lib
, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" "routerrpc" ] , tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" "routerrpc" "monitoring" ]
}: }:
buildGoModule rec { buildGoModule rec {
pname = "lnd"; pname = "lnd";
version = "0.13.0-beta"; version = "0.13.1-beta";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lightningnetwork"; owner = "lightningnetwork";
repo = "lnd"; repo = "lnd";
rev = "v${version}"; rev = "v${version}";
sha256 = "0fwidjkfzzd7k891x5z7jrx2arl0kwj6vm9z2acsyy7riv4zfjbq"; sha256 = "07cs9yq83laajmfwfv42xfkfai3q873wg4qg7bfzw18w5fllivkg";
}; };
vendorSha256 = "19myr9f5zh05y6lagd9pra60y8df7pz837310cbpq9a6zzwpdxk2"; vendorSha256 = "1hk67x8nlc0wm1pg8k8hywih623p4c0klfhfyy26b7mqq62lazia";
subPackages = ["cmd/lncli" "cmd/lnd"]; subPackages = ["cmd/lncli" "cmd/lnd"];

View file

@ -3,4 +3,4 @@ set -euo pipefail
scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd) scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
getVersionFromTags=1 "$scriptDir"/util/update-common.sh nbxplorer "$scriptDir"/deps.nix getVersionFromTags=1 "$scriptDir"/util/update-common.sh nbxplorer "$scriptDir"/deps.nix ''

View file

@ -7,6 +7,7 @@ set -euo pipefail
pkgSrc=$1 pkgSrc=$1
depsFile=$(realpath "$2") depsFile=$(realpath "$2")
customFlags=$3
sln=$(cd "$pkgSrc"; find * -maxdepth 0 -name '*.sln' | head -1) sln=$(cd "$pkgSrc"; find * -maxdepth 0 -name '*.sln' | head -1)
[[ $sln ]] || { echo "No .sln file in $pkgSrc" ; exit 1; } [[ $sln ]] || { echo "No .sln file in $pkgSrc" ; exit 1; }
@ -20,7 +21,7 @@ pushd "$tmpdir" > /dev/null
mkdir home mkdir home
echo "Running dotnet restore for $sln" echo "Running dotnet restore for $sln"
HOME=home DOTNET_CLI_TELEMETRY_OPTOUT=1 \ HOME=home DOTNET_CLI_TELEMETRY_OPTOUT=1 \
dotnet restore -v normal --no-cache "$sln" > restore_log dotnet restore $customFlags -v normal --no-cache "$sln" > restore_log
echo "{ fetchNuGet }: [" > "$depsFile" echo "{ fetchNuGet }: [" > "$depsFile"
while read pkgSpec; do while read pkgSpec; do

View file

@ -8,6 +8,7 @@ set -euo pipefail
pkgName=$1 pkgName=$1
depsFile=$2 depsFile=$2
customFlags=$3
: ${getVersionFromTags:=} : ${getVersionFromTags:=}
: ${refetch:=} : ${refetch:=}
@ -71,4 +72,4 @@ echo
# Create deps file # Create deps file
storeSrc="$(nix-build "$nixpkgs" -A $pkgName.src --no-out-link)" storeSrc="$(nix-build "$nixpkgs" -A $pkgName.src --no-out-link)"
. "$scriptDir"/create-deps.sh "$storeSrc" "$depsFile" . "$scriptDir"/create-deps.sh "$storeSrc" "$depsFile" "$customFlags"

View file

@ -8,7 +8,7 @@ stdenv.mkDerivation {
buildInputs = [ emacs ]; buildInputs = [ emacs ];
buildPhase = ":"; dontBuild = true;
installPhase = '' installPhase = ''
install -d $out/share/emacs/site-lisp install -d $out/share/emacs/site-lisp

View file

@ -27,7 +27,7 @@ rec {
}); });
buildKakounePluginFrom2Nix = attrs: buildKakounePlugin ({ buildKakounePluginFrom2Nix = attrs: buildKakounePlugin ({
buildPhase = ":"; dontBuild = true;
configurePhase = ":"; dontConfigure = true;
} // attrs); } // attrs);
} }

View file

@ -1,32 +1,68 @@
{ lib, mkDerivation, fetchFromGitHub, cmake { lib
, qtbase, qtscript, qtwebkit, libXfixes, libXtst, qtx11extras, git , mkDerivation
, webkitSupport ? true , fetchFromGitHub
, cmake
, extra-cmake-modules
, qtbase
, qtscript
, libXfixes
, libXtst
, qtx11extras
, git
, knotifications
, qtwayland
, wayland
, fetchpatch
}: }:
mkDerivation rec { mkDerivation rec {
pname = "CopyQ"; pname = "CopyQ";
version = "3.13.0"; version = "4.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hluk"; owner = "hluk";
repo = "CopyQ"; repo = "CopyQ";
rev = "v${version}"; rev = "v${version}";
sha256 = "0qssyavx0dkgsyj2myqg8n7sih8niy960nyb1yknsbjm37iqraah"; sha256 = "1iacnd9dn0mrajff80r2g5nlks5sch9lmpl633mnyqmih9dwx2li";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [
cmake
extra-cmake-modules
];
buildInputs = [ buildInputs = [
git qtbase qtscript libXfixes libXtst qtx11extras qtbase
] ++ lib.optional webkitSupport qtwebkit; qtscript
libXfixes
libXtst
qtx11extras
knotifications
qtwayland
wayland
];
patches = [
# Install the bash completion script correctly
# Remove once 4.1.1 is released
(fetchpatch {
url = "https://github.com/hluk/CopyQ/commit/aca7222ec28589af0b08f63686104b992d63ee42.patch";
sha256 = "0d440d0zsdzm9cd0b6c42y9qbrvxg7gdam0qmif62mr8qa0ylidl";
})
];
postPatch = ''
substituteInPlace shared/com.github.hluk.copyq.desktop.in \
--replace copyq "$out/bin/copyq"
'';
meta = with lib; { meta = with lib; {
homepage = "https://hluk.github.io/CopyQ"; homepage = "https://hluk.github.io/CopyQ";
description = "Clipboard Manager with Advanced Features"; description = "Clipboard Manager with Advanced Features";
license = licenses.gpl3; license = licenses.gpl3Only;
maintainers = [ maintainers.willtim ]; maintainers = with maintainers; [ willtim artturin ];
# NOTE: CopyQ supports windows and osx, but I cannot test these. # NOTE: CopyQ supports windows and osx, but I cannot test these.
# OSX build requires QT5. # OSX build requires QT5.
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -2,13 +2,13 @@
mkDerivation rec { mkDerivation rec {
pname = "heimer"; pname = "heimer";
version = "2.5.0"; version = "2.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "juzzlin"; owner = "juzzlin";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-CY7n9eq/FtQ6srZ9L31nJi0b9rOQq60kNOY3iTFws/E="; sha256 = "sha256-VSj6bSb92XMsfvDH+cey2GXLnJajUBaCqLMgkv2fnSo=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View file

@ -2,6 +2,7 @@
, python3Packages , python3Packages
, fetchFromGitHub , fetchFromGitHub
, wrapQtAppsHook , wrapQtAppsHook
, cups
}: }:
with python3Packages; with python3Packages;
@ -17,6 +18,11 @@ buildPythonApplication rec {
sha256 = "0px0xdv6kyzkkpmvryrdfavv1qy2xrqdxkpmhvx1gj649xcabv32"; sha256 = "0px0xdv6kyzkkpmvryrdfavv1qy2xrqdxkpmhvx1gj649xcabv32";
}; };
postPatch = ''
substituteInPlace inkcut/device/transports/printer/plugin.py \
--replace ", 'lpr', " ", '${cups}/bin/lpr', "
'';
nativeBuildInputs = [ wrapQtAppsHook ]; nativeBuildInputs = [ wrapQtAppsHook ];
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -2,7 +2,7 @@
let let
pname = "joplin-desktop"; pname = "joplin-desktop";
version = "1.8.5"; version = "2.1.9";
name = "${pname}-${version}"; name = "${pname}-${version}";
inherit (stdenv.hostPlatform) system; inherit (stdenv.hostPlatform) system;
@ -16,8 +16,8 @@ let
src = fetchurl { src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}"; url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
sha256 = { sha256 = {
x86_64-linux = "11csbr72i5kac2bk7wpa877lay2z1n58s0yildkfnjy552ihdxny"; x86_64-linux = "1s7zydi90yzafii42m3aaf3niqlmdy2m494j2b3yrz2j26njj4q9";
x86_64-darwin = "1n0ni3ixml99ag83bcn5wg6f0kldjhwkkddd9km37ykr8vxxl952"; x86_64-darwin = "1pvl08yhcrnrvdybfmkigaidhfrrg42bb6rzv96zyq9w4k0l0lm8";
}.${system} or throwSystem; }.${system} or throwSystem;
}; };

View file

@ -0,0 +1,24 @@
{ fetchFromGitHub, rustPlatform, lib }:
with lib;
rustPlatform.buildRustPackage rec {
pname = "rm-improved";
version = "0.13.0";
cargoSha256 = "0wgpr6gx9dpvf02xgvrdbyiqfz1k9vipnvriz3jg0cz7n1afqisj";
src = fetchFromGitHub {
owner = "nivekuil";
repo = "rip";
rev = "0.13.0";
sha256 = "0d065xia4mwdhxkiqfg7pic6scfzipzmsvvx7l6l97w62lzpiqx3";
};
meta = {
description = "Replacement for rm with focus on safety, ergonomics and performance";
homepage = "https://github.com/nivekuil/rip";
maintainers = with maintainers; [ nils-degroot ];
license = licenses.gpl3Plus;
};
}

View file

@ -21,7 +21,6 @@ python3Packages.buildPythonApplication rec {
blinker blinker
natsort natsort
# extras_require # extras_require
boto
brotli brotli
feedgenerator feedgenerator
zopfli zopfli

View file

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "skytemple"; pname = "skytemple";
version = "1.2.3"; version = "1.2.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SkyTemple"; owner = "SkyTemple";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0l2c4qngv58j6zkp0va6m96zksx8gqn3mjc3isqybfnhjr6nd3v9"; sha256 = "0780517gjc97wb2g67pwdv3fz3sqxm2ica1hdbrhqm4rfbnb28xr";
}; };
buildInputs = [ buildInputs = [

View file

@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
srcs = [ srcs = [
(fetchurl { (fetchurl {
url = " https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/${sourceRoot}.tar.gz"; url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/${sourceRoot}.tar.gz";
sha256 = "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj"; sha256 = "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj";
}) })
(fetchurl { (fetchurl {

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
chmod +x $out/bin/thinkingrock chmod +x $out/bin/thinkingrock
''; '';
installPhase = ":"; dontInstall = true;
meta = with lib; { meta = with lib; {
description = "Task management system"; description = "Task management system";

View file

@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "0yfzr80pw632lkayg4qfmwzrqk02y30yz8br7isyhmgkswyp5rnx"; sha256 = "0yfzr80pw632lkayg4qfmwzrqk02y30yz8br7isyhmgkswyp5rnx";
}; };
phases = "installPhase"; dontUnpack = true;
installPhase = '' installPhase = ''
mkdir -p "$out"/{share/vue,bin} mkdir -p "$out"/{share/vue,bin}

View file

@ -88,7 +88,7 @@ mkChromiumDerivation (base: rec {
license = if enableWideVine then licenses.unfree else licenses.bsd3; license = if enableWideVine then licenses.unfree else licenses.bsd3;
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "chromium"; mainProgram = "chromium";
hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium") hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium" || channel == "beta")
then ["aarch64-linux" "x86_64-linux"] then ["aarch64-linux" "x86_64-linux"]
else []; else [];
timeout = 172800; # 48 hours (increased from the Hydra default of 10h) timeout = 172800; # 48 hours (increased from the Hydra default of 10h)

View file

@ -18,9 +18,9 @@
} }
}, },
"beta": { "beta": {
"version": "92.0.4515.101", "version": "92.0.4515.107",
"sha256": "1jcas265hhlqd9f63h4zw4n4xsl26c5zmjlmbf1px5icvcjfb2xd", "sha256": "04khamgxwzgbm2rn7is53j5g55vm5qfyz7zwxqc51sd429jsqlbf",
"sha256bin64": "0sb5l5nzfzisvrnhcfwhdh9rn6z6pkzqz4p92c40q2mlhmjrfhj0", "sha256bin64": "179i18lckd85i6cc60mqpvv2jqdshc338m686yackdgz9qjrrlwd",
"deps": { "deps": {
"gn": { "gn": {
"version": "2021-05-07", "version": "2021-05-07",

View file

@ -7,10 +7,10 @@ in
rec { rec {
firefox = common rec { firefox = common rec {
pname = "firefox"; pname = "firefox";
ffversion = "90.0"; ffversion = "90.0.1";
src = fetchurl { src = fetchurl {
url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
sha512 = "233ad59e4ab2f08d2253b49235b51b26fa32fb7c285928110573ccbe67c79965d9401a6c58a3af2ad22b8a58ca5d9b3154e3e8c9d29b153acd16152d9b75442c"; sha512 = "9f87c3f3dad33e42a7a9d2161d7f23ff2e7184b2274f9081511c7982957ae9954784bd844a2348ff4744231415aac195d1f12971392db90be0375b4738acb590";
}; };
meta = { meta = {

View file

@ -52,14 +52,14 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "palemoon"; pname = "palemoon";
version = "29.2.1"; version = "29.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
githubBase = "repo.palemoon.org"; githubBase = "repo.palemoon.org";
owner = "MoonchildProductions"; owner = "MoonchildProductions";
repo = "Pale-Moon"; repo = "Pale-Moon";
rev = "${version}_Release"; rev = "${version}_Release";
sha256 = "0djjl79jrnny16p32db5w7pwwv0a24dc8mg1s1bnavhlvmmk52vq"; sha256 = "1q0w1ffmdfk22df4p2ks4n55zmz44ir8fbcdn5a5h4ihy73nf6xp";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -0,0 +1,38 @@
{ stdenv
, lib
, fetchurl
, pkg-config
, bison
, libevent
, libressl
, ncurses
}:
stdenv.mkDerivation rec {
pname = "telescope";
version = "0.3.1";
src = fetchurl {
url = "https://github.com/omar-polo/telescope/releases/download/${version}/telescope-${version}.tar.gz";
sha256 = "11xrsh064ph1idhygh52y4mqapgwn1cqr0l3naj5n2a2p7lcsvvw";
};
nativeBuildInputs = [
pkg-config
bison
];
buildInputs = [
libevent
libressl
ncurses
];
meta = with lib; {
description = "Telescope is a w3m-like browser for Gemini";
homepage = "https://telescope.omarpolo.com/";
license = licenses.isc;
maintainers = with maintainers; [ heph2 ];
platforms = platforms.unix;
};
}

View file

@ -88,19 +88,19 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source # Upstream source
version = "10.0.18"; version = "10.5.2";
lang = "en-US"; lang = "en-US";
srcs = { srcs = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
sha256 = "15ni33mkg3awfmk3ynr0vi4max1h2k0s10xw3dpmdx6chzv4ll14"; sha256 = "16zk7d0sxm2j00vb002mjj38wxcxxlahnfdb9lmkmkfms9p9xfkb";
}; };
i686-linux = fetchurl { i686-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
sha256 = "16lx8wkxli1fzq5f6gcw3im4p8k3xdmnmf6w0p7n8hd8681b1w5s"; sha256 = "0xc3ac2y9xf7ff3pqrp5n6l9j8i5hk3y2y3zwykwhnycnfi6dfv4";
}; };
}; };
in in
@ -311,6 +311,13 @@ stdenv.mkDerivation rec {
# chance that TBB would continue using old font files. # chance that TBB would continue using old font files.
rm -rf "\$HOME/.cache/fontconfig" rm -rf "\$HOME/.cache/fontconfig"
# Manually specify data paths (by default TB attempts to create these in the store)
{
echo "user_pref(\"extensions.torlauncher.toronionauthdir_path\", \"\$HOME/TorBrowser/Data/Tor/onion-auth\");"
echo "user_pref(\"extensions.torlauncher.torrc_path\", \"\$HOME/TorBrowser/Data/Tor/torrc\");"
echo "user_pref(\"extensions.torlauncher.tordatadir_path\", \"\$HOME/TorBrowser/Data/Tor\");"
} >> "\$HOME/TorBrowser/Data/Browser/profile.default/prefs.js"
# Lift-off # Lift-off
# #
# XAUTHORITY and DISPLAY are required for TBB to work at all. # XAUTHORITY and DISPLAY are required for TBB to work at all.

View file

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "istioctl"; pname = "istioctl";
version = "1.10.2"; version = "1.10.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "istio"; owner = "istio";
repo = "istio"; repo = "istio";
rev = version; rev = version;
sha256 = "sha256-jzLffTAGlNeglzoJ3AG4d0pwrkXmT5ttJxr2z4MwP90="; sha256 = "sha256-MHERRJ9t7EG4sd4gevUnZLA25UnRqZprCXFWkp5roms=";
}; };
vendorSha256 = "sha256-q/m1H6gcnn35ULi+e8fVuJg8eIXhzizGwXJmyf1Hfy4="; vendorSha256 = "sha256-lzRIXZXrNQOwgl774B9r6OW/O8QwykSk3Mv5oGmvDuY=";
doCheck = false; doCheck = false;

View file

@ -20,13 +20,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "kubernetes"; pname = "kubernetes";
version = "1.21.2"; version = "1.21.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubernetes"; owner = "kubernetes";
repo = "kubernetes"; repo = "kubernetes";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-GAX8ODjGj5LM44KgJC0N5uuOH4z33lDWoQgImOl8/xo="; sha256 = "sha256-GMigdVuqJN6eIN0nhY5PVUEnCqjAYUzitetk2QmX5wQ=";
}; };
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ]; nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];

View file

@ -10,16 +10,16 @@
buildGoModule rec { buildGoModule rec {
pname = "nerdctl"; pname = "nerdctl";
version = "0.10.0"; version = "0.11.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containerd"; owner = "containerd";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-cqIIpdkQ6DF7DKXvwCoJBQKG0+lL8iP/Vx0q7rL8prg="; sha256 = "sha256-uYiGerxZb5GW1dOcflERF3wvgJ8VOtRmQkyzC/ztwjk=";
}; };
vendorSha256 = "sha256-0+k1e7Sn+NYGAJDVUbUm0oedc1t2blezUhsjDIuIKvA="; vendorSha256 = "sha256-kGSibuXutyOvDkmajIQ0AqrwR3VUiWoM1Y2zk3MwwyU=";
nativeBuildInputs = [ makeWrapper installShellFiles ]; nativeBuildInputs = [ makeWrapper installShellFiles ];

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "temporal"; pname = "temporal";
version = "1.10.5"; version = "1.11.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "temporalio"; owner = "temporalio";
repo = "temporal"; repo = "temporal";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-+rU/Tn3k/VmAgZl169tVZsRf5SL4bI9r3p1svVfKN2E="; sha256 = "sha256-upoWftm82QBdax0lbeu+Nmwscsj/fsOzGUPI+fzcKUM=";
}; };
vendorSha256 = "sha256-jbQPhGfZPPxjYTSJ9wMLzQIOhAwxJZypRzqwL421RfM="; vendorSha256 = "sha256-eO/23MQpdXQNPCIzMC9nxvrgUFuEPABJ7vkBZKv+XZI";
# Errors: # Errors:
# > === RUN TestNamespaceHandlerGlobalNamespaceDisabledSuite # > === RUN TestNamespaceHandlerGlobalNamespaceDisabledSuite

View file

@ -21,13 +21,13 @@ with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "profanity"; pname = "profanity";
version = "0.10.0"; version = "0.11.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "profanity-im"; owner = "profanity-im";
repo = "profanity"; repo = "profanity";
rev = version; rev = version;
sha256 = "0a9rzhnivxcr8v02xxzrbck7pvvv4c66ap2zy0gzxhri5p8ac03r"; sha256 = "0xmzsh0szm8x3hgw65j0cd2bp8cmrnq5pjz49lqajircyzflsngm";
}; };
patches = [ patches = [

View file

@ -1,8 +1,8 @@
{ mkDerivation, lib, fetchFromGitHub, callPackage { mkDerivation, lib, fetchFromGitHub, callPackage, fetchpatch
, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash , qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3 , ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
, tl-expected, hunspell, glibmm, webkitgtk , tl-expected, hunspell, glibmm, webkitgtk, jemalloc
, libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules , libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules
# Transitive dependencies: # Transitive dependencies:
, pcre, xorg, util-linux, libselinux, libsepol, epoxy , pcre, xorg, util-linux, libselinux, libsepol, epoxy
@ -23,7 +23,7 @@ let
tg_owt = callPackage ./tg_owt.nix {}; tg_owt = callPackage ./tg_owt.nix {};
in mkDerivation rec { in mkDerivation rec {
pname = "telegram-desktop"; pname = "telegram-desktop";
version = "2.8.4"; version = "2.8.11";
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
# Telegram-Desktop with submodules # Telegram-Desktop with submodules
@ -32,9 +32,17 @@ in mkDerivation rec {
repo = "tdesktop"; repo = "tdesktop";
rev = "v${version}"; rev = "v${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "sha256-IN3GQgdNM66/GxKa5EGKB/LIkgBxS8Y4mkPBaSEphmw="; sha256 = "020ycgb77vx7rza590i3csrvq1zgm15rvpxqqcp0xkb4yh71i3hb";
}; };
patches = [(fetchpatch {
# ref: https://github.com/desktop-app/lib_webview/pull/9
url = "https://github.com/desktop-app/lib_webview/commit/75e924934eee8624020befbef1f3cb5b865d3b86.patch";
sha256 = "sha256-rN4FVK4KT+xNf9IVdcpbxMqT0+t3SINJPRRQPyMiDP0=";
stripLen = 1;
extraPrefix = "Telegram/lib_webview/";
})];
postPatch = '' postPatch = ''
substituteInPlace Telegram/CMakeLists.txt \ substituteInPlace Telegram/CMakeLists.txt \
--replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"' --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
@ -49,7 +57,7 @@ in mkDerivation rec {
buildInputs = [ buildInputs = [
qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash
ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3 ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
tl-expected hunspell glibmm webkitgtk tl-expected hunspell glibmm webkitgtk jemalloc
libtgvoip rnnoise abseil-cpp extra-cmake-modules libtgvoip rnnoise abseil-cpp extra-cmake-modules
tg_owt tg_owt
# Transitive dependencies: # Transitive dependencies:

View file

@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
src = notmuch.src; src = notmuch.src;
phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; dontConfigure = true;
dontBuild = true;
installPhase = '' installPhase = ''
${coreutils}/bin/install -Dm755 \ ${coreutils}/bin/install -Dm755 \
@ -36,7 +37,6 @@ stdenv.mkDerivation rec {
''; '';
meta = with lib; { meta = with lib; {
inherit version;
description = "Mutt support for notmuch"; description = "Mutt support for notmuch";
homepage = "https://notmuchmail.org/"; homepage = "https://notmuchmail.org/";
license = with licenses; gpl3; license = with licenses; gpl3;

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, meson, pkg-config, ninja, scdoc { lib, stdenv, fetchFromGitHub, meson, pkg-config, ninja, scdoc, wayland-scanner
, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml, pam , pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml, pam
}: }:
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
sha256 = "0q48fgh6gf3jicy4bk3kq18h9lhqfq9qz32ri6j9ffvbb8mcw64s"; sha256 = "0q48fgh6gf3jicy4bk3kq18h9lhqfq9qz32ri6j9ffvbb8mcw64s";
}; };
nativeBuildInputs = [ meson pkg-config ninja scdoc wayland ]; nativeBuildInputs = [ meson pkg-config ninja scdoc wayland-scanner ];
buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml pam ]; buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml pam ];
meta = with lib; { meta = with lib; {

View file

@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
dontUnpack = true;
dontBuild = true; dontBuild = true;
unpackPhase = ":";
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall

View file

@ -1,26 +1,18 @@
{ stdenv, fetchFromGitHub, fetchpatch, lib, python3 { stdenv, fetchFromGitHub, lib, python3
, cmake, lingeling, btor2tools, gtest, gmp , cmake, lingeling, btor2tools, gtest, gmp
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "boolector"; pname = "boolector";
version = "3.2.1"; version = "3.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "boolector"; owner = "boolector";
repo = "boolector"; repo = "boolector";
rev = "refs/tags/${version}"; rev = version;
sha256 = "0jkmaw678njqgkflzj9g374yk1mci8yqvsxkrqzlifn6bwhwb7ci"; sha256 = "1smcy6yp8wvnw2brgnv5bf40v87k4v4fbdbrhi7987vja632k50z";
}; };
# excludes development artifacts from install, will be included in next release
patches = [
(fetchpatch {
url = "https://github.com/Boolector/boolector/commit/4d240436e34e65096671099766344dd9126145b1.patch";
sha256 = "1girsbvlhkkl1hldl2gsjynwc3m92jskn798qhx0ydg6whrfgcgw";
})
];
postPatch = '' postPatch = ''
sed s@REPLACEME@file://${gtest.src}@ ${./cmake-gtest.patch} | patch -p1 sed s@REPLACEME@file://${gtest.src}@ ${./cmake-gtest.patch} | patch -p1
''; '';

View file

@ -1,20 +1,20 @@
{ lib, stdenv, fetchurl, perl, perlPackages, makeWrapper, nettools, java, polyml, z3, rlwrap }: { lib, stdenv, fetchurl, perl, perlPackages, makeWrapper, nettools, java, polyml, z3, rlwrap, makeDesktopItem }:
# nettools needed for hostname # nettools needed for hostname
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "isabelle"; pname = "isabelle";
version = "2020"; version = "2021";
dirname = "Isabelle${version}"; dirname = "Isabelle${version}";
src = if stdenv.isDarwin src = if stdenv.isDarwin
then fetchurl { then fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz"; url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
sha256 = "1sfr5filsaqj93g5y4p9n8g5652dhr4whj25x4lifdxr2pp560xx"; sha256 = "1c2qm2ksmpyxyccyyn4lyj2wqj5m74nz2i0c5abrd1hj45zcnh1m";
} }
else fetchurl { else fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz"; url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3"; sha256 = "1isgc9w4q95638dcag9gxz1kmf97pkin3jz1dm2lhd64b2k12y2x";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
@ -48,6 +48,8 @@ stdenv.mkDerivation rec {
ISABELLE_JDK_HOME=${java} ISABELLE_JDK_HOME=${java}
EOF EOF
sed -i -e 's/naproche_server : bool = true/naproche_server : bool = false/' contrib/naproche-*/etc/options
echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings
for comp in contrib/jdk* contrib/polyml-* contrib/z3-*; do for comp in contrib/jdk* contrib/polyml-* contrib/z3-*; do
@ -66,9 +68,26 @@ stdenv.mkDerivation rec {
cd $out/$dirname cd $out/$dirname
bin/isabelle install $out/bin bin/isabelle install $out/bin
# icon
mkdir -p "$out/share/icons/hicolor/isabelle/apps"
cp "$out/Isabelle${version}/lib/icons/isabelle.xpm" "$out/share/icons/hicolor/isabelle/apps/"
# desktop item
mkdir -p "$out/share"
cp -r "${desktopItem}/share/applications" "$out/share/applications"
wrapProgram $out/$dirname/src/HOL/Tools/ATP/scripts/remote_atp --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.LWP ]} wrapProgram $out/$dirname/src/HOL/Tools/ATP/scripts/remote_atp --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.LWP ]}
''; '';
desktopItem = makeDesktopItem {
name = "isabelle";
exec = "isabelle jedit";
icon = "isabelle";
desktopName = "Isabelle";
comment = meta.description;
categories = "Education;Science;Math;";
};
meta = with lib; { meta = with lib; {
description = "A generic proof assistant"; description = "A generic proof assistant";

View file

@ -1,29 +1,28 @@
{ lib, stdenv, fetchurl, jre, makeWrapper }: { lib, stdenv, fetchurl, jre, makeWrapper }:
let version = "2.7.1"; in stdenv.mkDerivation rec {
stdenv.mkDerivation {
pname = "logisim"; pname = "logisim";
inherit version; version = "2.7.1";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/project/circuit/2.7.x/${version}/logisim-generic-${version}.jar"; url = "mirror://sourceforge/project/circuit/${lib.versions.majorMinor version}.x/${version}/logisim-generic-${version}.jar";
sha256 = "1hkvc9zc7qmvjbl9579p84hw3n8wl3275246xlzj136i5b0phain"; sha256 = "1hkvc9zc7qmvjbl9579p84hw3n8wl3275246xlzj136i5b0phain";
}; };
phases = [ "installPhase" ]; dontUnpack = true;
nativeBuildInputs = [makeWrapper]; nativeBuildInputs = [ makeWrapper ];
installPhase = '' installPhase = ''
mkdir -pv $out/bin mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/logisim --add-flags "-jar $src" makeWrapper ${jre}/bin/java $out/bin/logisim --add-flags "-jar $src"
''; '';
meta = { meta = with lib; {
homepage = "http://ozark.hendrix.edu/~burch/logisim"; homepage = "http://ozark.hendrix.edu/~burch/logisim";
description = "Educational tool for designing and simulating digital logic circuits"; description = "Educational tool for designing and simulating digital logic circuits";
license = lib.licenses.gpl2Plus; maintainers = with maintainers; [ ];
platforms = lib.platforms.unix; license = licenses.gpl2Plus;
platforms = platforms.unix;
}; };
} }

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitLab, cmake, perl, python3, boost, valgrind { lib, stdenv, fetchFromGitLab, fetchpatch, cmake, perl, python3, boost, valgrind
# Optional requirements # Optional requirements
# Lua 5.3 needed and not available now # Lua 5.3 needed and not available now
#, luaSupport ? false, lua5 #, luaSupport ? false, lua5
@ -18,17 +18,26 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "simgrid"; pname = "simgrid";
version = "3.27"; version = "3.28";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "framagit.org"; domain = "framagit.org";
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "13nwsyk030fhl3srhpc28j5s6594z0m38606f4ygc4qhv9wxw011"; sha256 = "0vylwgd4i89bvhbgfay0wq953324dwfmmr8jp9b4vvlc9m0017r9";
}; };
nativeBuildInputs = [ cmake perl python3 boost valgrind ] patches = [
(fetchpatch {
name = "fix-smpi-dirs-absolute.patch";
url = "https://framagit.org/simgrid/simgrid/-/commit/71f01e667577be1076646eb841e0a57bd5388545.patch";
sha256 = "0x3y324b6269687zfy43ilc48bwrs4nb7svh2mpg88lrz53rky15";
})
];
propagatedBuildInputs = [ boost ];
nativeBuildInputs = [ cmake perl python3 valgrind ]
++ optionals fortranSupport [ gfortran ] ++ optionals fortranSupport [ gfortran ]
++ optionals buildJavaBindings [ openjdk ] ++ optionals buildJavaBindings [ openjdk ]
++ optionals buildDocumentation [ transfig ghostscript doxygen ] ++ optionals buildDocumentation [ transfig ghostscript doxygen ]
@ -90,6 +99,9 @@ stdenv.mkDerivation rec {
cat <<EOW >CTestCustom.cmake cat <<EOW >CTestCustom.cmake
SET(CTEST_CUSTOM_TESTS_IGNORE smpi-replay-multiple) SET(CTEST_CUSTOM_TESTS_IGNORE smpi-replay-multiple)
EOW EOW
# make sure tests are built in parallel (this can be long otherwise)
make tests -j $NIX_BUILD_CORES
''; '';
meta = { meta = {

View file

@ -2,7 +2,7 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "snakemake"; pname = "snakemake";
version = "6.5.3"; version = "6.6.1";
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
appdirs appdirs
@ -12,10 +12,13 @@ python3Packages.buildPythonApplication rec {
docutils docutils
filelock filelock
GitPython GitPython
jinja2
jsonschema jsonschema
nbformat nbformat
networkx
psutil psutil
pulp pulp
pygraphviz
pyyaml pyyaml
ratelimiter ratelimiter
requests requests
@ -28,7 +31,7 @@ python3Packages.buildPythonApplication rec {
src = python3Packages.fetchPypi { src = python3Packages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "a06839346425c74542e6e2e6047db3133cd747ef89e1ebd87dad1fbba041f62d"; sha256 = "91637a801342f3bc349c033b284fef7c0201b4e5e29d5650cb6c7f69096d4184";
}; };
doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json

View file

@ -27,7 +27,7 @@
}: }:
let let
version = "1.8.1"; version = "1.8.2";
# build stimuli file for PGO build and the script to generate it # build stimuli file for PGO build and the script to generate it
# independently of the foot's build, so we can cache the result # independently of the foot's build, so we can cache the result
@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
src = fetchzip { src = fetchzip {
url = "https://codeberg.org/dnkl/${pname}/archive/${version}.tar.gz"; url = "https://codeberg.org/dnkl/${pname}/archive/${version}.tar.gz";
sha256 = "0yrz7n0wls8g8w7ja934icwxmng3sxh70x87qmzc9c9cb1wyd989"; sha256 = "1k0alz991cslls4926c5gq02pdq0vfw9jfpprh2a1vb59xgikv7h";
}; };
depsBuildBuild = [ depsBuildBuild = [

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "gh"; pname = "gh";
version = "1.12.1"; version = "1.13.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cli"; owner = "cli";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-P9fbkJSXRYZdVD1EKWWs0FKs8aQdPqHWESUqjsGgyPU="; sha256 = "sha256-6ur1ZIJRghkZk5tLMJUmKn+XfjVGFE0MRSQ/Uz+Eans=";
}; };
vendorSha256 = "sha256-ndsjmY/UCFyegm8yP7BopYMh5eZ8/fftWfxW4r5los0="; vendorSha256 = "sha256-JJNyzMYAQT/pS1+eGYQsUpxDiwa6DP7JWhIBuTtnOiE=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -4,13 +4,13 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ccextractor"; pname = "ccextractor";
version = "0.89"; version = "0.90";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "CCExtractor"; owner = "CCExtractor";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-847yt6pUTsDnVbrMQQPJ0pqu6UnKmYmr8UtR8+TP11A="; sha256 = "sha256-NVFCwUZZVt8GrWXWyvoF8UrUZ/ix+GWubKtc3218k7o=";
}; };
sourceRoot = "source/src"; sourceRoot = "source/src";

View file

@ -2,13 +2,13 @@
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "inputstream-adaptive"; pname = "inputstream-adaptive";
namespace = "inputstream.adaptive"; namespace = "inputstream.adaptive";
version = "2.6.17"; version = "2.6.20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "inputstream.adaptive"; repo = "inputstream.adaptive";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "sha256-MHwLTSyMF7vYiVTof3xePW2eOySCr4/xYlPvWSzBZUg="; sha256 = "0g0pvfdmnd3frsd5sdckv3llwyjiw809rqy1slq3xj6i08xhcmd5";
}; };
extraNativeBuildInputs = [ gtest ]; extraNativeBuildInputs = [ gtest ];

View file

@ -3,13 +3,13 @@
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "inputstream-ffmpegdirect"; pname = "inputstream-ffmpegdirect";
namespace = "inputstream.ffmpegdirect"; namespace = "inputstream.ffmpegdirect";
version = "1.21.3"; version = "1.21.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
repo = "inputstream.ffmpegdirect"; repo = "inputstream.ffmpegdirect";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "sha256-OShd6sPGXXu0rlSwuQFMWqrLscE6Y0I2eV2YJYyZNMs="; sha256 = "0iq89vfb3p3b5qhivxs95xk122vgmbpixdvqpmkxp19rlyn3z9j6";
}; };
extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ]; extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];

View file

@ -3,13 +3,13 @@
buildKodiAddon rec { buildKodiAddon rec {
pname = "netflix"; pname = "netflix";
namespace = "plugin.video.netflix"; namespace = "plugin.video.netflix";
version = "1.16.0"; version = "1.16.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "CastagnaIT"; owner = "CastagnaIT";
repo = namespace; repo = namespace;
rev = "v${version}"; rev = "v${version}";
sha256 = "0k5jz6zjsazf0z2xv7gk848p4hvkzd79d0kl71a5d20f96g3938k"; sha256 = "0yycwm8vrpkr4fsbf713mhpnaxfd849nhzp5r1898sb9vldab4xk";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -2,13 +2,13 @@
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "pvr-hts"; pname = "pvr-hts";
namespace = "pvr.hts"; namespace = "pvr.hts";
version = "8.3.0"; version = "8.3.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-pvr"; owner = "kodi-pvr";
repo = "pvr.hts"; repo = "pvr.hts";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "1lqd0kkfv06n8ax8ywsi1rx9glvx3pwi9yj9yb3fdf39xmd3hz7y"; sha256 = "15gv499r6jf89chp7xpv0z4v0nia907czs83lz57lxydqcbmmjnn";
}; };
meta = with lib; { meta = with lib; {

View file

@ -6,13 +6,13 @@
buildKodiBinaryAddon rec { buildKodiBinaryAddon rec {
pname = "pvr-iptvsimple"; pname = "pvr-iptvsimple";
namespace = "pvr.iptvsimple"; namespace = "pvr.iptvsimple";
version = "7.6.5"; version = "7.6.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-pvr"; owner = "kodi-pvr";
repo = "pvr.iptvsimple"; repo = "pvr.iptvsimple";
rev = "${version}-${rel}"; rev = "${version}-${rel}";
sha256 = "sha256-Z4H+5dUYJ3vAgodPxWmttVhPVdPVYTJbmYxo1lzLHNA="; sha256 = "1nj4qgr35cw5ly16w2fdgscz5245d7mgvm4sxgxy19jkyv7jmzn3";
}; };
extraBuildInputs = [ extraBuildInputs = [

View file

@ -7,13 +7,13 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "streamlink"; pname = "streamlink";
version = "2.1.1"; version = "2.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "streamlink"; owner = "streamlink";
repo = "streamlink"; repo = "streamlink";
rev = version; rev = version;
sha256 = "14vqh4pck3q766qln7c57n9bz8zrlgfqrpkdn8x0ac9zhlhfn1zm"; sha256 = "1323v1pavmbb2vk3djdkxd8j6i3yrcgrkyl2d7xwkb7nwlla1x1v";
}; };
checkInputs = with python3.pkgs; [ checkInputs = with python3.pkgs; [
@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
homepage = "https://github.com/streamlink/streamlink"; homepage = "https://github.com/streamlink/streamlink";
description = "CLI for extracting streams from various websites to video player of your choosing"; description = "CLI for extracting streams from various websites to video player of your choosing";
longDescription = '' longDescription = ''
Streamlink is a CLI utility that pipes flash videos from online Streamlink is a CLI utility that pipes videos from online
streaming services to a variety of video players such as VLC, or streaming services to a variety of video players such as VLC, or
alternatively, a browser. alternatively, a browser.
@ -51,6 +51,6 @@ python3.pkgs.buildPythonApplication rec {
''; '';
license = licenses.bsd2; license = licenses.bsd2;
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ dezgeg zraexy ]; maintainers = with maintainers; [ dezgeg zraexy DeeUnderscore ];
}; };
} }

View file

@ -225,7 +225,7 @@ in {
mkdir -p $out/lib/vdr mkdir -p $out/lib/vdr
''; '';
installPhase = ":"; dontInstall = true;
meta = with lib; { meta = with lib; {
homepage = "https://projects.vdr-developer.org/projects/plg-text2skin"; homepage = "https://projects.vdr-developer.org/projects/plg-text2skin";

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