Merge branch 'master' into staging-next

Conflicts:
	pkgs/development/python-modules/pdftotext/default.nix
This commit is contained in:
Dmitry Kalinkin 2021-12-16 16:55:25 -05:00
commit 889227a048
No known key found for this signature in database
GPG key ID: 5157B3EC8B2CA333
70 changed files with 916 additions and 480 deletions

View file

@ -4,7 +4,9 @@
{ lib }: { lib }:
rec { rec {
# List of systems that are built by Hydra. # List of systems that are built by Hydra.
hydra = tier1 ++ tier2 ++ tier3; hydra = tier1 ++ tier2 ++ tier3 ++ [
"aarch64-darwin"
];
tier1 = [ tier1 = [
"x86_64-linux" "x86_64-linux"
@ -16,7 +18,6 @@ rec {
]; ];
tier3 = [ tier3 = [
"aarch64-darwin"
"armv6l-linux" "armv6l-linux"
"armv7l-linux" "armv7l-linux"
"i686-linux" "i686-linux"

View file

@ -29,6 +29,20 @@ with lib.maintainers; {
scope = "Maintain ACME-related packages and modules."; scope = "Maintain ACME-related packages and modules.";
}; };
bazel = {
members = [
mboes
marsam
uri-canva
cbley
olebedev
groodt
aherrmann
ylecornec
];
scope = "Bazel build tool & related tools https://bazel.build/";
};
beam = { beam = {
members = [ members = [
ankhers ankhers

View file

@ -19,7 +19,7 @@
</section> </section>
<section xml:id="sec-release-22.05-new-services"> <section xml:id="sec-release-22.05-new-services">
<title>New Services</title> <title>New Services</title>
<itemizedlist spacing="compact"> <itemizedlist>
<listitem> <listitem>
<para> <para>
<link xlink:href="https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw">aesmd</link>, <link xlink:href="https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw">aesmd</link>,
@ -28,6 +28,14 @@
<link linkend="opt-services.aesmd.enable">services.aesmd</link>. <link linkend="opt-services.aesmd.enable">services.aesmd</link>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>,
a lightweight shipper for forwarding and centralizing log
data. Available as
<link linkend="opt-services.filebeat.enable">services.filebeat</link>.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section xml:id="sec-release-22.05-incompatibilities"> <section xml:id="sec-release-22.05-incompatibilities">

View file

@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable). - [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable).
- [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html), a lightweight shipper for forwarding and centralizing log data. Available as [services.filebeat](#opt-services.filebeat.enable).
## Backward Incompatibilities {#sec-release-22.05-incompatibilities} ## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
- `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`. - `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`.

View file

@ -448,6 +448,7 @@
./services/hardware/xow.nix ./services/hardware/xow.nix
./services/logging/SystemdJournal2Gelf.nix ./services/logging/SystemdJournal2Gelf.nix
./services/logging/awstats.nix ./services/logging/awstats.nix
./services/logging/filebeat.nix
./services/logging/fluentd.nix ./services/logging/fluentd.nix
./services/logging/graylog.nix ./services/logging/graylog.nix
./services/logging/heartbeat.nix ./services/logging/heartbeat.nix

View file

@ -320,21 +320,22 @@ in
${optionalString cfg.explicitSymlinks "-H"} \ ${optionalString cfg.explicitSymlinks "-H"} \
${optionalString cfg.followSymlinks "-L"} \ ${optionalString cfg.followSymlinks "-L"} \
${concatStringsSep " " cfg.directories}''; ${concatStringsSep " " cfg.directories}'';
cachedir = escapeShellArg cfg.cachedir;
in if (cfg.cachedir != null) then '' in if (cfg.cachedir != null) then ''
mkdir -p ${cfg.cachedir} mkdir -p ${cachedir}
chmod 0700 ${cfg.cachedir} chmod 0700 ${cachedir}
( flock 9 ( flock 9
if [ ! -e ${cfg.cachedir}/firstrun ]; then if [ ! -e ${cachedir}/firstrun ]; then
( flock 10 ( flock 10
flock -u 9 flock -u 9
${tarsnap} --fsck ${tarsnap} --fsck
flock 9 flock 9
) 10>${cfg.cachedir}/firstrun ) 10>${cachedir}/firstrun
fi fi
) 9>${cfg.cachedir}/lockf ) 9>${cachedir}/lockf
exec flock ${cfg.cachedir}/firstrun ${run} exec flock ${cachedir}/firstrun ${run}
'' else "exec ${run}"; '' else "exec ${run}";
serviceConfig = { serviceConfig = {
@ -356,22 +357,23 @@ in
tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"''; tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"'';
lastArchive = "$(${tarsnap} --list-archives | sort | tail -1)"; lastArchive = "$(${tarsnap} --list-archives | sort | tail -1)";
run = ''${tarsnap} -x -f "${lastArchive}" ${optionalString cfg.verbose "-v"}''; run = ''${tarsnap} -x -f "${lastArchive}" ${optionalString cfg.verbose "-v"}'';
cachedir = escapeShellArg cfg.cachedir;
in if (cfg.cachedir != null) then '' in if (cfg.cachedir != null) then ''
mkdir -p ${cfg.cachedir} mkdir -p ${cachedir}
chmod 0700 ${cfg.cachedir} chmod 0700 ${cachedir}
( flock 9 ( flock 9
if [ ! -e ${cfg.cachedir}/firstrun ]; then if [ ! -e ${cachedir}/firstrun ]; then
( flock 10 ( flock 10
flock -u 9 flock -u 9
${tarsnap} --fsck ${tarsnap} --fsck
flock 9 flock 9
) 10>${cfg.cachedir}/firstrun ) 10>${cachedir}/firstrun
fi fi
) 9>${cfg.cachedir}/lockf ) 9>${cachedir}/lockf
exec flock ${cfg.cachedir}/firstrun ${run} exec flock ${cachedir}/firstrun ${run}
'' else "exec ${run}"; '' else "exec ${run}";
serviceConfig = { serviceConfig = {

View file

@ -0,0 +1,253 @@
{ config, lib, utils, pkgs, ... }:
let
inherit (lib)
attrValues
literalExpression
mkEnableOption
mkIf
mkOption
types;
cfg = config.services.filebeat;
json = pkgs.formats.json {};
in
{
options = {
services.filebeat = {
enable = mkEnableOption "filebeat";
package = mkOption {
type = types.package;
default = pkgs.filebeat;
defaultText = literalExpression "pkgs.filebeat";
example = literalExpression "pkgs.filebeat7";
description = ''
The filebeat package to use.
'';
};
inputs = mkOption {
description = ''
Inputs specify how Filebeat locates and processes input data.
This is like <literal>services.filebeat.settings.filebeat.inputs</literal>,
but structured as an attribute set. This has the benefit
that multiple NixOS modules can contribute settings to a
single filebeat input.
An input type can be specified multiple times by choosing a
different <literal>&lt;name></literal> for each, but setting
<xref linkend="opt-services.filebeat.inputs._name_.type"/>
to the same value.
See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
'';
default = {};
type = types.attrsOf (types.submodule ({ name, ... }: {
freeformType = json.type;
options = {
type = mkOption {
type = types.str;
default = name;
description = ''
The input type.
Look for the value after <literal>type:</literal> on
the individual input pages linked from
<link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
'';
};
};
}));
example = literalExpression ''
{
journald.id = "everything"; # Only for filebeat7
log = {
enabled = true;
paths = [
"/var/log/*.log"
];
};
};
'';
};
modules = mkOption {
description = ''
Filebeat modules provide a quick way to get started
processing common log formats. They contain default
configurations, Elasticsearch ingest pipeline definitions,
and Kibana dashboards to help you implement and deploy a log
monitoring solution.
This is like <literal>services.filebeat.settings.filebeat.modules</literal>,
but structured as an attribute set. This has the benefit
that multiple NixOS modules can contribute settings to a
single filebeat module.
A module can be specified multiple times by choosing a
different <literal>&lt;name></literal> for each, but setting
<xref linkend="opt-services.filebeat.modules._name_.module"/>
to the same value.
See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
'';
default = {};
type = types.attrsOf (types.submodule ({ name, ... }: {
freeformType = json.type;
options = {
module = mkOption {
type = types.str;
default = name;
description = ''
The name of the module.
Look for the value after <literal>module:</literal> on
the individual input pages linked from
<link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
'';
};
};
}));
example = literalExpression ''
{
nginx = {
access = {
enabled = true;
var.paths = [ "/path/to/log/nginx/access.log*" ];
};
error = {
enabled = true;
var.paths = [ "/path/to/log/nginx/error.log*" ];
};
};
};
'';
};
settings = mkOption {
type = types.submodule {
freeformType = json.type;
options = {
output.elasticsearch.hosts = mkOption {
type = with types; listOf str;
default = [ "127.0.0.1:9200" ];
example = [ "myEShost:9200" ];
description = ''
The list of Elasticsearch nodes to connect to.
The events are distributed to these nodes in round
robin order. If one node becomes unreachable, the
event is automatically sent to another node. Each
Elasticsearch node can be defined as a URL or
IP:PORT. For example:
<literal>http://192.15.3.2</literal>,
<literal>https://es.found.io:9230</literal> or
<literal>192.24.3.2:9300</literal>. If no port is
specified, <literal>9200</literal> is used.
'';
};
filebeat = {
inputs = mkOption {
type = types.listOf json.type;
default = [];
internal = true;
description = ''
Inputs specify how Filebeat locates and processes
input data. Use <xref
linkend="opt-services.filebeat.inputs"/> instead.
See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
'';
};
modules = mkOption {
type = types.listOf json.type;
default = [];
internal = true;
description = ''
Filebeat modules provide a quick way to get started
processing common log formats. They contain default
configurations, Elasticsearch ingest pipeline
definitions, and Kibana dashboards to help you
implement and deploy a log monitoring solution.
Use <xref linkend="opt-services.filebeat.modules"/> instead.
See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
'';
};
};
};
};
default = {};
example = literalExpression ''
{
settings = {
output.elasticsearch = {
hosts = [ "myEShost:9200" ];
username = "filebeat_internal";
password = { _secret = "/var/keys/elasticsearch_password"; };
};
logging.level = "info";
};
};
'';
description = ''
Configuration for filebeat. See
<link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-reference-yml.html"/>
for supported values.
Options containing secret data should be set to an attribute
set containing the attribute <literal>_secret</literal> - a
string pointing to a file containing the value the option
should be set to. See the example to get a better picture of
this: in the resulting
<filename>filebeat.yml</filename> file, the
<literal>output.elasticsearch.password</literal>
key will be set to the contents of the
<filename>/var/keys/elasticsearch_password</filename> file.
'';
};
};
};
config = mkIf cfg.enable {
services.filebeat.settings.filebeat.inputs = attrValues cfg.inputs;
services.filebeat.settings.filebeat.modules = attrValues cfg.modules;
systemd.services.filebeat = {
description = "Filebeat log shipper";
wantedBy = [ "multi-user.target" ];
wants = [ "elasticsearch.service" ];
after = [ "elasticsearch.service" ];
serviceConfig = {
ExecStartPre = pkgs.writeShellScript "filebeat-exec-pre" ''
set -euo pipefail
umask u=rwx,g=,o=
${utils.genJqSecretsReplacementSnippet
cfg.settings
"/var/lib/filebeat/filebeat.yml"
}
'';
ExecStart = ''
${cfg.package}/bin/filebeat -e \
-c "/var/lib/filebeat/filebeat.yml" \
--path.data "/var/lib/filebeat"
'';
Restart = "always";
StateDirectory = "filebeat";
};
};
};
}

View file

@ -28,7 +28,6 @@ in
type = types.package; type = types.package;
default = pkgs.journalbeat; default = pkgs.journalbeat;
defaultText = literalExpression "pkgs.journalbeat"; defaultText = literalExpression "pkgs.journalbeat";
example = literalExpression "pkgs.journalbeat7";
description = '' description = ''
The journalbeat package to use The journalbeat package to use
''; '';
@ -89,6 +88,8 @@ in
systemd.services.journalbeat = { systemd.services.journalbeat = {
description = "Journalbeat log shipper"; description = "Journalbeat log shipper";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
wants = [ "elasticsearch.service" ];
after = [ "elasticsearch.service" ];
preStart = '' preStart = ''
mkdir -p ${cfg.stateDir}/data mkdir -p ${cfg.stateDir}/data
mkdir -p ${cfg.stateDir}/logs mkdir -p ${cfg.stateDir}/logs

View file

@ -40,9 +40,8 @@ let
services = { services = {
journalbeat = let lt6 = builtins.compareVersions journalbeat = {
elk.journalbeat.version "6" < 0; in { enable = elk ? journalbeat;
enable = true;
package = elk.journalbeat; package = elk.journalbeat;
extraConfig = pkgs.lib.mkOptionDefault ('' extraConfig = pkgs.lib.mkOptionDefault (''
logging: logging:
@ -51,14 +50,29 @@ let
metrics.enabled: false metrics.enabled: false
output.elasticsearch: output.elasticsearch:
hosts: [ "127.0.0.1:9200" ] hosts: [ "127.0.0.1:9200" ]
${pkgs.lib.optionalString lt6 "template.enabled: false"}
'' + pkgs.lib.optionalString (!lt6) ''
journalbeat.inputs: journalbeat.inputs:
- paths: [] - paths: []
seek: cursor seek: cursor
''); '');
}; };
filebeat = {
enable = elk ? filebeat;
package = elk.filebeat;
inputs.journald.id = "everything";
inputs.log = {
enabled = true;
paths = [
"/var/lib/filebeat/test"
];
};
settings = {
logging.level = "info";
};
};
metricbeat = { metricbeat = {
enable = true; enable = true;
package = elk.metricbeat; package = elk.metricbeat;
@ -142,27 +156,43 @@ let
}; };
passthru.elkPackages = elk; passthru.elkPackages = elk;
testScript = '' testScript =
let
valueObject = lib.optionalString (lib.versionAtLeast elk.elasticsearch.version "7") ".value";
in ''
import json import json
def total_hits(message): def expect_hits(message):
dictionary = {"query": {"match": {"message": message}}} dictionary = {"query": {"match": {"message": message}}}
return ( return (
"curl --silent --show-error '${esUrl}/_search' " "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
+ "-H 'Content-Type: application/json' " + "-H 'Content-Type: application/json' "
+ "-d '{}' ".format(json.dumps(dictionary)) + "-d '{}' ".format(json.dumps(dictionary))
+ "| jq .hits.total" + " | tee /dev/console"
+ " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
)
def expect_no_hits(message):
dictionary = {"query": {"match": {"message": message}}}
return (
"curl --silent --show-error --fail-with-body '${esUrl}/_search' "
+ "-H 'Content-Type: application/json' "
+ "-d '{}' ".format(json.dumps(dictionary))
+ " | tee /dev/console"
+ " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} == 0 end'"
) )
def has_metricbeat(): def has_metricbeat():
dictionary = {"query": {"match": {"event.dataset": {"query": "system.cpu"}}}} dictionary = {"query": {"match": {"event.dataset": {"query": "system.cpu"}}}}
return ( return (
"curl --silent --show-error '${esUrl}/_search' " "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
+ "-H 'Content-Type: application/json' " + "-H 'Content-Type: application/json' "
+ "-d '{}' ".format(json.dumps(dictionary)) + "-d '{}' ".format(json.dumps(dictionary))
+ "| jq '.hits.total > 0'" + " | tee /dev/console"
+ " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
) )
@ -178,7 +208,8 @@ let
# TODO: extend this test with multiple elasticsearch nodes # TODO: extend this test with multiple elasticsearch nodes
# and see if the status turns "green". # and see if the status turns "green".
one.wait_until_succeeds( one.wait_until_succeeds(
"curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red" "curl --silent --show-error --fail-with-body '${esUrl}/_cluster/health'"
+ " | jq -es 'if . == [] then null else .[] | .status != \"red\" end'"
) )
with subtest("Perform some simple logstash tests"): with subtest("Perform some simple logstash tests"):
@ -189,33 +220,50 @@ let
with subtest("Kibana is healthy"): with subtest("Kibana is healthy"):
one.wait_for_unit("kibana.service") one.wait_for_unit("kibana.service")
one.wait_until_succeeds( one.wait_until_succeeds(
"curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green" "curl --silent --show-error --fail-with-body 'http://localhost:5601/api/status'"
+ " | jq -es 'if . == [] then null else .[] | .status.overall.state == \"green\" end'"
) )
with subtest("Metricbeat is running"): with subtest("Metricbeat is running"):
one.wait_for_unit("metricbeat.service") one.wait_for_unit("metricbeat.service")
with subtest("Metricbeat metrics arrive in elasticsearch"): with subtest("Metricbeat metrics arrive in elasticsearch"):
one.wait_until_succeeds(has_metricbeat() + " | tee /dev/console | grep 'true'") one.wait_until_succeeds(has_metricbeat())
with subtest("Logstash messages arive in elasticsearch"): with subtest("Logstash messages arive in elasticsearch"):
one.wait_until_succeeds(total_hits("flowers") + " | grep -v 0") one.wait_until_succeeds(expect_hits("flowers"))
one.wait_until_succeeds(total_hits("dragons") + " | grep 0") one.wait_until_succeeds(expect_no_hits("dragons"))
'' + lib.optionalString (elk ? journalbeat) ''
with subtest( with subtest(
"A message logged to the journal is ingested by elasticsearch via journalbeat" "A message logged to the journal is ingested by elasticsearch via journalbeat"
): ):
one.wait_for_unit("journalbeat.service") one.wait_for_unit("journalbeat.service")
one.execute("echo 'Supercalifragilisticexpialidocious' | systemd-cat") one.execute("echo 'Supercalifragilisticexpialidocious' | systemd-cat")
one.wait_until_succeeds( one.wait_until_succeeds(
total_hits("Supercalifragilisticexpialidocious") + " | grep -v 0" expect_hits("Supercalifragilisticexpialidocious")
) )
'' + lib.optionalString (elk ? filebeat) ''
with subtest(
"A message logged to the journal is ingested by elasticsearch via filebeat"
):
one.wait_for_unit("filebeat.service")
one.execute("echo 'Superdupercalifragilisticexpialidocious' | systemd-cat")
one.wait_until_succeeds(
expect_hits("Superdupercalifragilisticexpialidocious")
)
one.execute(
"echo 'SuperdupercalifragilisticexpialidociousIndeed' >> /var/lib/filebeat/test"
)
one.wait_until_succeeds(
expect_hits("SuperdupercalifragilisticexpialidociousIndeed")
)
'' + ''
with subtest("Elasticsearch-curator works"): with subtest("Elasticsearch-curator works"):
one.systemctl("stop logstash") one.systemctl("stop logstash")
one.systemctl("start elasticsearch-curator") one.systemctl("start elasticsearch-curator")
one.wait_until_succeeds( one.wait_until_succeeds(
'! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep ^' '! curl --silent --show-error --fail-with-body "${esUrl}/_cat/indices" | grep logstash | grep ^'
) )
''; '';
}) { inherit pkgs system; }; }) { inherit pkgs system; };
@ -235,7 +283,7 @@ in {
# elasticsearch = pkgs.elasticsearch7-oss; # elasticsearch = pkgs.elasticsearch7-oss;
# logstash = pkgs.logstash7-oss; # logstash = pkgs.logstash7-oss;
# kibana = pkgs.kibana7-oss; # kibana = pkgs.kibana7-oss;
# journalbeat = pkgs.journalbeat7; # filebeat = pkgs.filebeat7;
# metricbeat = pkgs.metricbeat7; # metricbeat = pkgs.metricbeat7;
# }; # };
unfree = lib.dontRecurseIntoAttrs { unfree = lib.dontRecurseIntoAttrs {
@ -250,7 +298,7 @@ in {
elasticsearch = pkgs.elasticsearch7; elasticsearch = pkgs.elasticsearch7;
logstash = pkgs.logstash7; logstash = pkgs.logstash7;
kibana = pkgs.kibana7; kibana = pkgs.kibana7;
journalbeat = pkgs.journalbeat7; filebeat = pkgs.filebeat7;
metricbeat = pkgs.metricbeat7; metricbeat = pkgs.metricbeat7;
}; };
}; };

View file

@ -4,6 +4,7 @@
{ pkgs, ... }@args: { pkgs, ... }@args:
let let
inherit (import ../../lib/testing-python.nix args) makeTest; inherit (import ../../lib/testing-python.nix args) makeTest;
inherit (pkgs) lib;
dmarcTestReport = builtins.fetchurl { dmarcTestReport = builtins.fetchurl {
name = "dmarc-test-report"; name = "dmarc-test-report";
@ -54,7 +55,7 @@ in
localMail = makeTest localMail = makeTest
{ {
name = "parsedmarc-local-mail"; name = "parsedmarc-local-mail";
meta = with pkgs.lib.maintainers; { meta = with lib.maintainers; {
maintainers = [ talyz ]; maintainers = [ talyz ];
}; };
@ -83,7 +84,7 @@ in
}; };
}; };
services.elasticsearch.package = pkgs.elasticsearch7-oss; services.elasticsearch.package = pkgs.elasticsearch-oss;
environment.systemPackages = [ environment.systemPackages = [
(sendEmail "dmarc@localhost") (sendEmail "dmarc@localhost")
@ -94,6 +95,7 @@ in
testScript = { nodes }: testScript = { nodes }:
let let
esPort = toString nodes.parsedmarc.config.services.elasticsearch.port; esPort = toString nodes.parsedmarc.config.services.elasticsearch.port;
valueObject = lib.optionalString (lib.versionAtLeast nodes.parsedmarc.config.services.elasticsearch.package.version "7") ".value";
in '' in ''
parsedmarc.start() parsedmarc.start()
parsedmarc.wait_for_unit("postfix.service") parsedmarc.wait_for_unit("postfix.service")
@ -104,11 +106,15 @@ in
) )
parsedmarc.fail( parsedmarc.fail(
"curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'" "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+ " | tee /dev/console"
+ " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
) )
parsedmarc.succeed("send-email") parsedmarc.succeed("send-email")
parsedmarc.wait_until_succeeds( parsedmarc.wait_until_succeeds(
"curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'" "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+ " | tee /dev/console"
+ " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
) )
''; '';
}; };
@ -121,7 +127,7 @@ in
in in
makeTest { makeTest {
name = "parsedmarc-external-mail"; name = "parsedmarc-external-mail";
meta = with pkgs.lib.maintainers; { meta = with lib.maintainers; {
maintainers = [ talyz ]; maintainers = [ talyz ];
}; };
@ -153,7 +159,7 @@ in
}; };
}; };
services.elasticsearch.package = pkgs.elasticsearch7-oss; services.elasticsearch.package = pkgs.elasticsearch-oss;
environment.systemPackages = [ environment.systemPackages = [
pkgs.jq pkgs.jq
@ -201,6 +207,7 @@ in
testScript = { nodes }: testScript = { nodes }:
let let
esPort = toString nodes.parsedmarc.config.services.elasticsearch.port; esPort = toString nodes.parsedmarc.config.services.elasticsearch.port;
valueObject = lib.optionalString (lib.versionAtLeast nodes.parsedmarc.config.services.elasticsearch.package.version "7") ".value";
in '' in ''
mail.start() mail.start()
mail.wait_for_unit("postfix.service") mail.wait_for_unit("postfix.service")
@ -213,11 +220,15 @@ in
) )
parsedmarc.fail( parsedmarc.fail(
"curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'" "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+ " | tee /dev/console"
+ " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
) )
mail.succeed("send-email") mail.succeed("send-email")
parsedmarc.wait_until_succeeds( parsedmarc.wait_until_succeeds(
"curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'" "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+ " | tee /dev/console"
+ " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
) )
''; '';
}; };

View file

@ -3,7 +3,7 @@
, vmopts ? null , vmopts ? null
}: }:
{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [] }@args: { name, product, version, src, wmClass, jdk, meta, extraLdPath ? [], extraWrapperArgs ? [] }@args:
with lib; with lib;
@ -81,6 +81,7 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
stdenv.cc.cc.lib libsecret e2fsprogs stdenv.cc.cc.lib libsecret e2fsprogs
libnotify libnotify
] ++ extraLdPath)}" \ ] ++ extraLdPath)}" \
${lib.concatStringsSep " " extraWrapperArgs} \
--set JDK_HOME "$jdk" \ --set JDK_HOME "$jdk" \
--set ${hiName}_JDK "$jdk" \ --set ${hiName}_JDK "$jdk" \
--set ANDROID_JAVA_HOME "$jdk" \ --set ANDROID_JAVA_HOME "$jdk" \

View file

@ -1,6 +1,7 @@
{ lib, stdenv, callPackage, fetchurl { lib, stdenv, callPackage, fetchurl
, jdk, cmake, zlib, python3 , jdk, cmake, zlib, python3
, dotnet-sdk_5 , dotnet-sdk_5
, maven
, autoPatchelfHook , autoPatchelfHook
, libdbusmenu , libdbusmenu
, vmopts ? null , vmopts ? null
@ -98,6 +99,10 @@ let
inherit name version src wmClass jdk; inherit name version src wmClass jdk;
product = "IDEA"; product = "IDEA";
extraLdPath = [ zlib ]; extraLdPath = [ zlib ];
extraWrapperArgs = [
''--set M2_HOME "${maven}/maven"''
''--set M2 "${maven}/maven/bin"''
];
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/idea/"; homepage = "https://www.jetbrains.com/idea/";
inherit description license; inherit description license;

View file

@ -0,0 +1,31 @@
{ lib, stdenv, fetchurl, wrapGAppsHook
, cargo, desktop-file-utils, meson, ninja, pkg-config, python3, rustc
, dbus, gdk-pixbuf, glib, gtk3, gtksourceview4, libhandy
}:
stdenv.mkDerivation rec {
pname = "icon-library";
version = "0.0.8";
src = fetchurl {
url = "https://gitlab.gnome.org/World/design/icon-library/uploads/fdf890706e0eef2458a5285e3bf65dd5/icon-library-${version}.tar.xz";
sha256 = "0807b56bgm8j1gpq4nf8x31gq9wqhcmpzpkqw6s4wissw3cb7q96";
};
nativeBuildInputs = [
cargo desktop-file-utils meson ninja pkg-config python3 rustc wrapGAppsHook
];
buildInputs = [ dbus gdk-pixbuf glib gtk3 gtksourceview4 libhandy ];
postPatch = ''
patchShebangs build-aux/meson_post_install.py
'';
meta = with lib; {
homepage = "https://gitlab.gnome.org/World/design/icon-library";
description = "Symbolic icons for your apps";
maintainers = with maintainers; [ qyliss ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}

View file

@ -27,13 +27,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "megapixels"; pname = "megapixels";
version = "1.4.2"; version = "1.4.3";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "postmarketOS"; owner = "postmarketOS";
repo = "megapixels"; repo = "megapixels";
rev = version; rev = version;
sha256 = "sha256-ebeKbAo03+jeMveySSIz36gbwslWVMRLj+/adW8rlEQ="; hash = "sha256-UHJ3Fayf+lS3nRuuhHHLN6mbHfHIPssWkghPMPF5ECg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -0,0 +1,31 @@
{ lib, stdenv, fetchurl, wrapGAppsHook
, cargo, desktop-file-utils, meson, ninja, pkg-config, python3, rustc
, gdk-pixbuf, glib, gtk3, libhandy, libxml2
}:
stdenv.mkDerivation rec {
pname = "symbolic-preview";
version = "0.0.2";
src = fetchurl {
url = "https://gitlab.gnome.org/World/design/symbolic-preview/uploads/91fd27bb70553c8d6c3ad2a35446ff6e/symbolic-preview-${version}.tar.xz";
sha256 = "1v8l10ppwbjkrq7nvb0wqc3pid6pd8dqpki3jhmjjkmbd7rpdpkq";
};
nativeBuildInputs = [
cargo desktop-file-utils meson ninja pkg-config python3 rustc wrapGAppsHook
];
buildInputs = [ gdk-pixbuf glib gtk3 libhandy libxml2 ];
postPatch = ''
patchShebangs build-aux/meson_post_install.py
'';
meta = with lib; {
homepage = "https://gitlab.gnome.org/World/design/symbolic-preview";
description = "Symbolics made easy";
maintainers = with maintainers; [ qyliss ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}

View file

@ -53,11 +53,11 @@ with py.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "archivy"; pname = "archivy";
version = "1.6.0"; version = "1.6.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-97ACQ3qp9ciw0kHwKwmatzCBl4XZr+6poejBM/0D4k8="; sha256 = "sha256-nwpH3V6hkPC8G3df+0hTZqvIbvT1Z796uOI/iKnXS1w=";
}; };
# Relax some dependencies # Relax some dependencies

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "worker"; pname = "worker";
version = "4.9.0"; version = "4.10.0";
src = fetchurl { src = fetchurl {
url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz"; url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
sha256 = "sha256-l9kWYswQ27erxmZIb+otPzeKFZNwP+d8QIqGuvMMM/k="; sha256 = "sha256-BK6Soh2hJYMunw/bXZFh+05c+iYig2L7lLFEqs6lyxk=";
}; };
buildInputs = [ libX11 ]; buildInputs = [ libX11 ];

View file

@ -2,18 +2,18 @@
buildGoModule rec { buildGoModule rec {
pname = "argocd"; pname = "argocd";
version = "2.1.7"; version = "2.2.0";
commit = "a408e299ffa743213df3aa9135bf7945644ec936"; commit = "6da92a8e8103ce4145bb0fe2b7e952be79c9ff0a";
tag = "v${version}"; tag = "v${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo-cd"; repo = "argo-cd";
rev = tag; rev = tag;
sha256 = "sha256-c6WUqD7x8/P+W64fWs4cw1RiUFepevIJCPpWSzNfIMc="; sha256 = "sha256-6D7aSisFxiGhBvnp4FDN1MHbO1yL4a1SWq1ri8nO7Cw=";
}; };
vendorSha256 = "sha256-N45yRlBGZ/c9ve2YPcWA26pylV8hzxjPh6evKtkgnoc="; vendorSha256 = "sha256-GeU8uQM+oMottzYsE6oQyKZL3aWB5vQgTDLQiuQdapw=";
nativeBuildInputs = [ packr makeWrapper installShellFiles ]; nativeBuildInputs = [ packr makeWrapper installShellFiles ];

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kn"; pname = "kn";
version = "0.27.0"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "knative"; owner = "knative";
repo = "client"; repo = "client";
rev = "v${version}"; rev = "knative-v${version}";
sha256 = "sha256-nuSx+JKXBgkVwuy6RMZc8pxDv5WjXN3+5pIudazTttc="; sha256 = "sha256-lRQ4IXV+q1idoTyhppJGlzjuUuRykP8DtQ3t/CsxhNw=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

@ -380,10 +380,10 @@
"owner": "integrations", "owner": "integrations",
"provider-source-address": "registry.terraform.io/integrations/github", "provider-source-address": "registry.terraform.io/integrations/github",
"repo": "terraform-provider-github", "repo": "terraform-provider-github",
"rev": "v4.18.2", "rev": "v4.19.0",
"sha256": "1m4ddj4bm84ljrkg8i98gdgbf5c89chv3yz13xbmyl2iga2x5bf7", "sha256": "17xpkcrklzbim91rxw4g4n8izk9qiw9q0vfivr467i32dv5mzc2d",
"vendorSha256": null, "vendorSha256": null,
"version": "4.18.2" "version": "4.19.0"
}, },
"gitlab": { "gitlab": {
"owner": "gitlabhq", "owner": "gitlabhq",

View file

@ -197,8 +197,8 @@ rec {
}; };
terraform_1 = mkTerraform { terraform_1 = mkTerraform {
version = "1.1.0"; version = "1.1.1";
sha256 = "sha256-nnYMoQitqFbOjI8twDh9hWDb1qxMNNVy6wldxkyDKY0="; sha256 = "sha256-JHwHxFpAUVnm9QlfSYrBELrgct0RkjS7OQb6gKEAsCA=";
vendorSha256 = "sha256-inPNvNUcil9X0VQ/pVgZdnnmn9UCfEz7qXiuKDj8RYM="; vendorSha256 = "sha256-inPNvNUcil9X0VQ/pVgZdnnmn9UCfEz7qXiuKDj8RYM=";
patches = [ ./provider-path-0_15.patch ]; patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; }; passthru = { inherit plugins; };

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "ipfs"; pname = "ipfs";
version = "0.10.0"; version = "0.11.0";
rev = "v${version}"; rev = "v${version}";
# go-ipfs makes changes to it's source tarball that don't match the git source. # go-ipfs makes changes to it's source tarball that don't match the git source.
src = fetchurl { src = fetchurl {
url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz"; url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
sha256 = "sha256-okfIxNoFoJZx1WCWe/6NcYhwU+ZzOyn01g8BGtXO3UQ="; sha256 = "lTPGnFqDgyMWmSCPmLHguGNnJQMWi9LPrOZfDgeS9Y4=";
}; };
# tarball contains multiple files/directories # tarball contains multiple files/directories

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "glitter"; pname = "glitter";
version = "1.5.10"; version = "1.5.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "milo123459"; owner = "milo123459";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-4d1zMCQ4rYU5kL7Qhwibt6+IfKHUjYndHHeX7JT9zwU="; sha256 = "sha256-WAQ4DwPKkATLa52GE5LZRVY0YH4nRStjPuQg7kdXRjw=";
}; };
cargoSha256 = "sha256-eaSQGbsvAas7CLMtgSNWCqdrYU5Kc/0GY10rkNK05Uo="; cargoSha256 = "sha256-UK3gUAs+FalqboK7MuhE9kOc/Smu/EAN0BYbgg4PWns=";
# tests require it to be in a git repository # tests require it to be in a git repository
preCheck = '' preCheck = ''

View file

@ -2,8 +2,8 @@
buildManPages { buildManPages {
pname = "s6-man-pages"; pname = "s6-man-pages";
version = "2.11.0.0.2"; version = "2.11.0.0.5";
sha256 = "1ddab4l4wwrg2jdcrdqp1rx8dzbzbdsvx4mzayraxva4q97d1g9r"; sha256 = "03gl0vvdaqfb5hs0dfdbs9djxiyq3abcx9vwgkfw22b1rm2fa0r6";
description = "Port of the documentation for the s6 supervision suite to mdoc"; description = "Port of the documentation for the s6 supervision suite to mdoc";
maintainers = [ lib.maintainers.sternenseemann ]; maintainers = [ lib.maintainers.sternenseemann ];
} }

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "v2ray-geoip"; pname = "v2ray-geoip";
version = "202112090029"; version = "202112160030";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "v2fly"; owner = "v2fly";
repo = "geoip"; repo = "geoip";
rev = "97f4acb31d926ae31bb3cdc5c8948d8dcdddca79"; rev = "4d86284b91a444c2ca989207f8f08a1c8798c95c";
sha256 = "sha256-kYMp/D7xVpBTu35YXq45bR2XebpVOW57UAc7H/6px/U="; sha256 = "sha256-pv+oZVMROr7gyGcv60jIP8INt4vBAnUJT0FJNNn+Czc=";
}; };
installPhase = '' installPhase = ''

View file

@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
--suffix IDRIS2_LIBS ':' "$out/${name}/lib" \ --suffix IDRIS2_LIBS ':' "$out/${name}/lib" \
--suffix IDRIS2_DATA ':' "$out/${name}/support" \ --suffix IDRIS2_DATA ':' "$out/${name}/support" \
--suffix IDRIS2_PATH ':' "${additionalIdris2Paths}" \ --suffix IDRIS2_PATH ':' "${additionalIdris2Paths}" \
--suffix LD_LIBRARY_PATH ':' "$out/${name}/lib" --suffix ${if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"} ':' "$out/${name}/lib"
''; '';
meta = { meta = {

View file

@ -20,14 +20,14 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fcft"; pname = "fcft";
version = "2.5.0"; version = "2.5.1";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "dnkl"; owner = "dnkl";
repo = "fcft"; repo = "fcft";
rev = version; rev = version;
sha256 = "0agqldh68hn898d3f6k99kjbz8had5j5k0jyvi71d4k9vhx8cy7c"; sha256 = "0dn0ic2ddi5qz6nqscsn7nlih67ad8vpclppbqwas6xavdfq6va2";
}; };
depsBuildBuild = [ pkg-config ]; depsBuildBuild = [ pkg-config ];
@ -44,6 +44,8 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
outputs = [ "out" "doc" "man" ];
passthru.tests = { passthru.tests = {
noShaping = fcft.override { withShapingTypes = []; }; noShaping = fcft.override { withShapingTypes = []; };
onlyGraphemeShaping = fcft.override { withShapingTypes = [ "grapheme" ]; }; onlyGraphemeShaping = fcft.override { withShapingTypes = [ "grapheme" ]; };

View file

@ -53,7 +53,7 @@ in {
}; };
libtoxcore_0_2 = generic { libtoxcore_0_2 = generic {
version = "0.2.12"; version = "0.2.13";
sha256 = "0a6sqpm00d2rn0nviqfz4gh9ck1wzci6rxgmqmcyryl5ca19ffvp"; sha256 = "0a1cp00bnxl3q4l74yqp4aa6fg9slz4rg4lfzkl3khvmm6nzckds";
}; };
} }

View file

@ -57,6 +57,18 @@ buildPythonPackage rec {
--replace 'pytest_ordering' 'pytest_order' --replace 'pytest_ordering' 'pytest_order'
substituteInPlace test/functional/test_miscellaneous.py \ substituteInPlace test/functional/test_miscellaneous.py \
--replace '@pytest.mark.last' '@pytest.mark.order("last")' --replace '@pytest.mark.last' '@pytest.mark.order("last")'
# Until a proper fix is created, just skip these tests
# and ignore any breakage that may result from the API change in IPFS
# See https://github.com/ipfs-shipyard/py-ipfs-http-client/issues/308
substituteInPlace test/functional/test_pubsub.py \
--replace '# the message that will be published' 'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")' \
--replace '# subscribe to the topic testing' 'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")'
substituteInPlace test/functional/test_other.py \
--replace 'import ipfshttpclient' 'import ipfshttpclient; import pytest' \
--replace 'assert ipfs_is_available' 'pytest.skip("Unknown test failure with IPFS >=0.11.0"); assert ipfs_is_available'
substituteInPlace test/run-tests.py \
--replace '--cov-fail-under=90' '--cov-fail-under=75'
''; '';
checkPhase = '' checkPhase = ''

View file

@ -1,4 +1,4 @@
{ lib, stdenv, buildPythonPackage, fetchPypi, poppler }: { lib, buildPythonPackage, fetchPypi, poppler }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pdftotext"; pname = "pdftotext";
@ -9,11 +9,6 @@ buildPythonPackage rec {
sha256 = "2a9aa89bc62022408781b39d188fabf5a3ad1103b6630f32c4e27e395f7966ee"; sha256 = "2a9aa89bc62022408781b39d188fabf5a3ad1103b6630f32c4e27e395f7966ee";
}; };
postPatch = lib.optionalString stdenv.isDarwin ''
substituteInPlace setup.py \
--replace '= brew_poppler_include()' '= "${lib.getDev poppler}/include", "${lib.getLib poppler}/lib"'
'';
buildInputs = [ poppler ]; buildInputs = [ poppler ];
meta = with lib; { meta = with lib; {

View file

@ -18,8 +18,6 @@ buildPythonPackage {
inherit disabled; inherit disabled;
doCheck = doCheck && !isPy27; # setuptools>=41.4 no longer collects correctly on python2 doCheck = doCheck && !isPy27; # setuptools>=41.4 no longer collects correctly on python2
outputs = [ "out" "dev" ];
propagatedBuildInputs = [ six ] ++ lib.optionals isPy27 [ google-apputils ]; propagatedBuildInputs = [ six ] ++ lib.optionals isPy27 [ google-apputils ];
propagatedNativeBuildInputs = [ buildPackages.protobuf ]; # For protoc. propagatedNativeBuildInputs = [ buildPackages.protobuf ]; # For protoc.
nativeBuildInputs = [ pyext ] ++ lib.optionals isPy27 [ google-apputils ]; nativeBuildInputs = [ pyext ] ++ lib.optionals isPy27 [ google-apputils ];
@ -41,32 +39,20 @@ buildPythonPackage {
cd python cd python
''; '';
preConfigure = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") '' setupPyGlobalFlags = lib.optional (lib.versionAtLeast protobuf.version "2.6.0")
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp "--cpp_implementation";
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=2
'';
preBuild = '' pythonImportsCheck = [
# Workaround for https://github.com/google/protobuf/issues/2895 "google.protobuf"
${python.pythonForBuild.interpreter} setup.py build ] ++ lib.optionals (lib.versionAtLeast protobuf.version "2.6.0") [
'' + lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") '' "google.protobuf.internal._api_implementation" # Verify that --cpp_implementation worked
${python.pythonForBuild.interpreter} setup.py build_ext --cpp_implementation ];
'';
installFlags = lib.optional (lib.versionAtLeast protobuf.version "2.6.0")
"--install-option='--cpp_implementation'";
# the _message.so isn't installed, so we'll do that manually.
# if someone can figure out a less hacky way to get the _message.so to
# install, please do replace this.
postInstall = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
cp -v $(find build -name "_message*") $out/${python.sitePackages}/google/protobuf/pyext
'';
meta = with lib; { meta = with lib; {
description = "Protocol Buffers are Google's data interchange format"; description = "Protocol Buffers are Google's data interchange format";
homepage = "https://developers.google.com/protocol-buffers/"; homepage = "https://developers.google.com/protocol-buffers/";
license = licenses.bsd3; license = licenses.bsd3;
maintainers = with maintainers; [ knedlsepp ];
}; };
passthru.protobuf = protobuf; passthru.protobuf = protobuf;

View file

@ -66,6 +66,7 @@ buildPythonPackage rec {
nosetests pyscf/ -v \ nosetests pyscf/ -v \
--exclude-dir=examples --exclude-dir=pyscf/pbc/grad \ --exclude-dir=examples --exclude-dir=pyscf/pbc/grad \
--exclude-dir=pyscf/x2c \ --exclude-dir=pyscf/x2c \
--exclude-dir=pyscf/adc \
--exclude-dir=pyscf/pbc/tdscf \ --exclude-dir=pyscf/pbc/tdscf \
-e test_bz \ -e test_bz \
-e h2o_vdz \ -e h2o_vdz \
@ -103,7 +104,7 @@ buildPythonPackage rec {
description = "Python-based simulations of chemistry framework"; description = "Python-based simulations of chemistry framework";
homepage = "https://github.com/pyscf/pyscf"; homepage = "https://github.com/pyscf/pyscf";
license = licenses.asl20; license = licenses.asl20;
platforms = platforms.unix; platforms = [ "x86_64-linux" "x86_64-darwin" ];
maintainers = [ maintainers.sheepforce ]; maintainers = [ maintainers.sheepforce ];
}; };
} }

View file

@ -2,13 +2,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "robotframework"; pname = "robotframework";
version = "4.1.2"; version = "4.1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0s6lakbd8h1pa4lfdj18sm13gpywszgpcns4hz026a4kam787kby"; sha256 = "0j71awmfkwk7prz82kr1zbcl3nrih3396sshrygnqlrdjmgivd3p";
}; };
checkInputs = [ jsonschema ]; checkInputs = [ jsonschema ];

View file

@ -0,0 +1,7 @@
# The Bazel build tool
https://bazel.build/
The bazel tool requires regular maintenance, especially under darwin, so we created a maintainers team.
Please ping @NixOS/bazel in your github PR/issue to increase your chance of a quick turnaround, thanks!

View file

@ -22,7 +22,7 @@ buildGoModule rec {
homepage = "https://github.com/buchgr/bazel-remote"; homepage = "https://github.com/buchgr/bazel-remote";
description = "A remote HTTP/1.1 cache for Bazel"; description = "A remote HTTP/1.1 cache for Bazel";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.uri-canva ]; maintainers = lib.teams.bazel.members;
platforms = platforms.darwin ++ platforms.linux; platforms = platforms.darwin ++ platforms.linux;
}; };
} }

View file

@ -149,7 +149,7 @@ stdenv'.mkDerivation rec {
homepage = "https://github.com/bazelbuild/bazel/"; homepage = "https://github.com/bazelbuild/bazel/";
description = "Build tool that builds code quickly and reliably"; description = "Build tool that builds code quickly and reliably";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.mboes ]; maintainers = lib.teams.bazel.members;
inherit platforms; inherit platforms;
}; };

View file

@ -150,7 +150,7 @@ stdenv'.mkDerivation rec {
homepage = "https://github.com/bazelbuild/bazel/"; homepage = "https://github.com/bazelbuild/bazel/";
description = "Build tool that builds code quickly and reliably"; description = "Build tool that builds code quickly and reliably";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.mboes ]; maintainers = lib.teams.bazel.members;
inherit platforms; inherit platforms;
}; };

View file

@ -164,7 +164,7 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/bazelbuild/bazel/"; homepage = "https://github.com/bazelbuild/bazel/";
description = "Build tool that builds code quickly and reliably"; description = "Build tool that builds code quickly and reliably";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.mboes ]; maintainers = lib.teams.bazel.members;
inherit platforms; inherit platforms;
}; };

View file

@ -177,7 +177,7 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/bazelbuild/bazel/"; homepage = "https://github.com/bazelbuild/bazel/";
description = "Build tool that builds code quickly and reliably"; description = "Build tool that builds code quickly and reliably";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.mboes ]; maintainers = lib.teams.bazel.members;
inherit platforms; inherit platforms;
}; };

View file

@ -27,6 +27,8 @@ buildGoModule rec {
description = "Tools for working with Google's bazel buildtool. Includes buildifier, buildozer, and unused_deps"; description = "Tools for working with Google's bazel buildtool. Includes buildifier, buildozer, and unused_deps";
homepage = "https://github.com/bazelbuild/buildtools"; homepage = "https://github.com/bazelbuild/buildtools";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ elasticdog uri-canva marsam ]; maintainers = with maintainers;
[ elasticdog uri-canva marsam ]
++ lib.teams.bazel.members;
}; };
} }

View file

@ -1,7 +1,7 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
chunky_png (1.3.11) chunky_png (1.4.0)
compass (1.0.3) compass (1.0.3)
chunky_png (~> 1.2) chunky_png (~> 1.2)
compass-core (~> 1.0.2) compass-core (~> 1.0.2)
@ -14,10 +14,10 @@ GEM
sass (>= 3.3.0, < 3.5) sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5) compass-import-once (1.0.5)
sass (>= 3.2, < 3.5) sass (>= 3.2, < 3.5)
ffi (1.10.0) ffi (1.15.4)
multi_json (1.13.1) multi_json (1.15.0)
rb-fsevent (0.10.3) rb-fsevent (0.11.0)
rb-inotify (0.10.0) rb-inotify (0.10.1)
ffi (~> 1.0) ffi (~> 1.0)
sass (3.4.25) sass (3.4.25)
@ -28,4 +28,4 @@ DEPENDENCIES
compass! compass!
BUNDLED WITH BUNDLED WITH
2.1.4 2.2.24

View file

@ -4,10 +4,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "124najs9prqzrzk49h53kap992rmqxj0wni61z2hhsn7mwmgdp9d"; sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
type = "gem"; type = "gem";
}; };
version = "1.3.11"; version = "1.4.0";
}; };
compass = { compass = {
dependencies = ["chunky_png" "compass-core" "compass-import-once" "rb-fsevent" "rb-inotify" "sass"]; dependencies = ["chunky_png" "compass-core" "compass-import-once" "rb-fsevent" "rb-inotify" "sass"];
@ -47,30 +47,30 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"; sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
type = "gem"; type = "gem";
}; };
version = "1.10.0"; version = "1.15.4";
}; };
multi_json = { multi_json = {
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
type = "gem"; type = "gem";
}; };
version = "1.13.1"; version = "1.15.0";
}; };
rb-fsevent = { rb-fsevent = {
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8"; sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is";
type = "gem"; type = "gem";
}; };
version = "0.10.3"; version = "0.11.0";
}; };
rb-inotify = { rb-inotify = {
dependencies = ["ffi"]; dependencies = ["ffi"];
@ -78,10 +78,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4"; sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
type = "gem"; type = "gem";
}; };
version = "0.10.0"; version = "0.10.1";
}; };
sass = { sass = {
groups = ["default"]; groups = ["default"];

View file

@ -18,12 +18,12 @@ let
shas = shas =
if enableUnfree if enableUnfree
then { then {
x86_64-linux = "1xwklhqxk5rmdrgy2simwvijzq29kyq5w2w3hy53xh2i1zlnyvq3"; x86_64-linux = "1a501lavxhckb3l93sbrbqyshicwkk6p89frry4x8p037xcfpy0x";
x86_64-darwin = "1qpdn28mrpggd55khzqqld6r89l0hb870rigxcw2i8p2yx3jv106"; x86_64-darwin = "0zm45af30shhcg3mdhcma6rms1hyrx62rm5jzwnz9kxv4d30skbw";
} }
else { else {
x86_64-linux = "1wpnwal2rq5v2bsp5qil9j6dplif7ql5394sy4ia5ghp2fzifxmf"; x86_64-linux = "0wfdipf21apyily7mvlqgyc7m5jpr96zgrryzwa854z3xb2vw8zg";
x86_64-darwin = "12z8i0wbw10c097glbpdy350p0h3957433f51qfx2p0ghgkzkhzv"; x86_64-darwin = "1nklfx4yz6hsxlljvnvwjy7pncv9mzngl84710xad5jlyras3sdj";
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {

View file

@ -4,23 +4,23 @@
, stdenv , stdenv
, makeWrapper , makeWrapper
, fetchurl , fetchurl
, nodejs-14_x , nodejs-16_x
, coreutils , coreutils
, which , which
}: }:
with lib; with lib;
let let
nodejs = nodejs-14_x; nodejs = nodejs-16_x;
inherit (builtins) elemAt; inherit (builtins) elemAt;
info = splitString "-" stdenv.hostPlatform.system; info = splitString "-" stdenv.hostPlatform.system;
arch = elemAt info 0; arch = elemAt info 0;
plat = elemAt info 1; plat = elemAt info 1;
shas = shas =
{ {
x86_64-linux = "19p9s4sir982bb1zcldrbphhwfs9i11p0q28vgc421iqg10kjlf1"; x86_64-linux = "0jivwsrq31n0qfznrsjfsn65sg3wpbd990afn2wzjnj4drq7plz6";
x86_64-darwin = "0qq557ngwwakifidyrccga4cadj9k9pzhjwy4msmbcgf5pb86qyc"; x86_64-darwin = "02483aqzrccq1x6rwznmcazijdd46yxj9vnbihnvp2xyp3w9as45";
aarch64-linux = "183cp1h8d3n7xfcpcys4hf36palczxa409afyp62kzyzckngy0j8"; aarch64-linux = "0iw155gkkl1hshc80lfj95rssg039ig21wz1l3srmmf2x4f934s9";
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {

View file

@ -11,13 +11,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mold"; pname = "mold";
version = "0.9.6"; version = "1.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rui314"; owner = "rui314";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0mj258fy8l4i23jd6ail0xrrq3das7lmrf1brrr1591ahx4vjj14"; sha256 = "sha256-89Dh4qly70Jzyo/KPlRte58hbN5HNnzZpi32tFd8fXU=";
}; };
buildInputs = [ zlib openssl ]; buildInputs = [ zlib openssl ];

View file

@ -17,11 +17,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cypress"; pname = "cypress";
version = "8.3.1"; version = "9.1.1";
src = fetchzip { src = fetchzip {
url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip"; url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
sha256 = "sha256-aBnF3Ij7oTws+0qOHwIIioxy1sJslb02wn8eGyKFt/c="; sha256 = "sha256-zJi4fNsj2MM7sv5zb3B3a03tmkhzsb9sTTqEhpd7z+w=";
}; };
# don't remove runtime deps # don't remove runtime deps

View file

@ -13,17 +13,18 @@
, gtk3 , gtk3
, pantheon , pantheon
, libgee , libgee
, libhandy
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnonograms"; pname = "gnonograms";
version = "1.4.5"; version = "2.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jeremypw"; owner = "jeremypw";
repo = "gnonograms"; repo = "gnonograms";
rev = "v${version}"; rev = "v${version}";
sha256 = "1ly3inp6dvjrixdysz5hdfwlhbs49ks0lf8062z2iq6gaf8ivkb2"; sha256 = "sha256-2uXaybpCAm9cr0o7bqfhgD7mMNPwtv1X/PgnFnSDOl0=";
}; };
postPatch = '' postPatch = ''
@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
gtk3 gtk3
pantheon.granite pantheon.granite
libgee libgee
libhandy
]; ];
meta = with lib; { meta = with lib; {

View file

@ -1,4 +1,4 @@
{ buildFHSUserEnv, callPackage, lib, stdenvNoCC }: { buildFHSUserEnv, callPackage, lib }:
let let
shticker-book-unwritten-unwrapped = callPackage ./unwrapped.nix { }; shticker-book-unwritten-unwrapped = callPackage ./unwrapped.nix { };
@ -7,11 +7,12 @@ in buildFHSUserEnv {
name = "shticker_book_unwritten"; name = "shticker_book_unwritten";
targetPkgs = pkgs: with pkgs; [ targetPkgs = pkgs: with pkgs; [
alsa-lib alsa-lib
libglvnd
libpulseaudio
shticker-book-unwritten-unwrapped
xorg.libX11 xorg.libX11
xorg.libXcursor xorg.libXcursor
xorg.libXext xorg.libXext
libglvnd
shticker-book-unwritten-unwrapped
]; ];
runScript = "shticker_book_unwritten"; runScript = "shticker_book_unwritten";

View file

@ -8,7 +8,7 @@ let beat = package : extraArgs : buildGoPackage (rec {
owner = "elastic"; owner = "elastic";
repo = "beats"; repo = "beats";
rev = "v${version}"; rev = "v${version}";
sha256 = "0jkiz5dfdi9zsji04ipcmcj7pml9294v455y7s2c22k24gyzbaw8"; sha256 = "1vnw9clsc10cfpjf6vxvc6m507b2q17sgsl079iwqbp4v0286il7";
}; };
goPackagePath = "github.com/elastic/beats"; goPackagePath = "github.com/elastic/beats";

View file

@ -8,10 +8,10 @@ let beat = package: extraArgs: buildGoModule (rec {
owner = "elastic"; owner = "elastic";
repo = "beats"; repo = "beats";
rev = "v${version}"; rev = "v${version}";
sha256 = "0gjyzprgj9nskvlkm2bf125b7qn3608llz4kh1fyzsvrw6zb7sm8"; sha256 = "sha256-9Jl5Xo1iKdOY9ZE5JXKSL4ee+NdsN3KCY2dDYuxlzPI=";
}; };
vendorSha256 = "04cwf96fh60ld3ndjzzssgirc9ssb53yq71j6ksx36m3y1x7fq9c"; vendorSha256 = "sha256-tyxyM7RsTHTVVxc9gagPsSvFRaWGTmobKzyv9RODXBk=";
subPackages = [ package ]; subPackages = [ package ];
@ -24,7 +24,14 @@ let beat = package: extraArgs: buildGoModule (rec {
} // extraArgs); } // extraArgs);
in in
rec { rec {
filebeat7 = beat "filebeat" { meta.description = "Lightweight shipper for logfiles"; }; filebeat7 = beat "filebeat" {
meta.description = "Lightweight shipper for logfiles";
buildInputs = [ systemd ];
tags = [ "withjournald" ];
postFixup = ''
patchelf --set-rpath ${lib.makeLibraryPath [ (lib.getLib systemd) ]} "$out/bin/filebeat"
'';
};
heartbeat7 = beat "heartbeat" { meta.description = "Lightweight shipper for uptime monitoring"; }; heartbeat7 = beat "heartbeat" { meta.description = "Lightweight shipper for uptime monitoring"; };
metricbeat7 = beat "metricbeat" { metricbeat7 = beat "metricbeat" {
meta.description = "Lightweight shipper for metrics"; meta.description = "Lightweight shipper for metrics";
@ -47,15 +54,4 @@ rec {
PostgreSQL, Redis or Thrift and correlate the messages into transactions. PostgreSQL, Redis or Thrift and correlate the messages into transactions.
''; '';
}; };
journalbeat7 = beat "journalbeat" {
meta.description = ''
Journalbeat is an open source data collector to read and forward
journal entries from Linuxes with systemd.
'';
buildInputs = [ systemd.dev ];
postFixup = let libPath = lib.makeLibraryPath [ (lib.getLib systemd) ]; in
''
patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
'';
};
} }

View file

@ -1,6 +1,6 @@
{ {
"compe-tmux": { "compe-tmux": {
"date": "2021-12-07", "date": "2021-12-15",
"new": "cmp-tmux" "new": "cmp-tmux"
}, },
"gist-vim": { "gist-vim": {

File diff suppressed because it is too large Load diff

View file

@ -227,11 +227,6 @@ self: super: {
''; '';
}); });
ensime-vim = super.ensime-vim.overrideAttrs (old: {
passthru.python3Dependencies = ps: with ps; [ sexpdata websocket-client ];
dependencies = with self; [ vimproc-vim vimshell-vim self.self forms ];
});
fcitx-vim = super.fcitx-vim.overrideAttrs (old: { fcitx-vim = super.fcitx-vim.overrideAttrs (old: {
passthru.python3Dependencies = ps: with ps; [ dbus-python ]; passthru.python3Dependencies = ps: with ps; [ dbus-python ];
meta = { meta = {
@ -748,7 +743,7 @@ self: super: {
libiconv libiconv
]; ];
cargoSha256 = "sha256-zYm+7qAvhVGa/afddHhI2aQxmiLOkus5PHZBDP9S/Qg="; cargoSha256 = "sha256-iE0L4pSKPf8lf76DuSTnU7LfNUgy1O06IgxracsLpFA=";
}; };
in in
'' ''

View file

@ -147,7 +147,6 @@ embark-theme/vim as embark-vim
embear/vim-localvimrc embear/vim-localvimrc
enomsg/vim-haskellConcealPlus enomsg/vim-haskellConcealPlus
enricobacis/vim-airline-clock enricobacis/vim-airline-clock
ensime/ensime-vim
ervandew/supertab ervandew/supertab
esneider/YUNOcommit.vim esneider/YUNOcommit.vim
euclidianAce/BetterLua.vim euclidianAce/BetterLua.vim

View file

@ -5,13 +5,13 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "sof-firmware"; pname = "sof-firmware";
version = "1.9.2"; version = "1.9.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "thesofproject"; owner = "thesofproject";
repo = "sof-bin"; repo = "sof-bin";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-aEoLlP34rorllCdTneATlCHnmhJD/VABV9Uv4dDmShA="; sha256 = "sha256-mQGwc0nwjku9ZxcFy8H4QiBLETkAeyqYvFzBHtK8/DY=";
}; };
dontFixup = true; # binaries must not be stripped or patchelfed dontFixup = true; # binaries must not be stripped or patchelfed

View file

@ -2,7 +2,7 @@
let let
# having the full version string here makes it easier to update # having the full version string here makes it easier to update
modDirVersion = "5.15.6-zen2"; modDirVersion = "5.15.8-zen1";
parts = lib.splitString "-" modDirVersion; parts = lib.splitString "-" modDirVersion;
version = lib.elemAt parts 0; version = lib.elemAt parts 0;
suffix = lib.elemAt parts 1; suffix = lib.elemAt parts 1;
@ -19,7 +19,7 @@ buildLinux (args // {
owner = "zen-kernel"; owner = "zen-kernel";
repo = "zen-kernel"; repo = "zen-kernel";
rev = "v${modDirVersion}"; rev = "v${modDirVersion}";
sha256 = "sha256-lakNE+Ac3AHfD6e9haXkwQL134UNduk8o8UNtyAQ4U0="; sha256 = "sha256-vuMgxdGjTpR4iVVm1y28Hj3CdfpwGLnTpyZEnz3jd1U=";
}; };
structuredExtraConfig = with lib.kernel; { structuredExtraConfig = with lib.kernel; {

View file

@ -7,23 +7,15 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "calibre-web"; pname = "calibre-web";
version = "0.6.13"; version = "0.6.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "janeczku"; owner = "janeczku";
repo = "calibre-web"; repo = "calibre-web";
rev = version; rev = version;
sha256 = "sha256-zU7ujvFPi4UaaEglIK3YX3TJxBME35NEKKblnJRt0tM="; sha256 = "sha256-rR5pUB3A0WNQxq7ZJ6ykua7hMlzs49aMmVbBUOkOVfA=";
}; };
prePatch = ''
substituteInPlace setup.cfg \
--replace "requests>=2.11.1,<2.25.0" "requests" \
--replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
--replace "PyPDF3>=1.0.0,<1.0.4" "PyPDF3>=1.0.0" \
--replace "unidecode>=0.04.19,<1.3.0" "unidecode>=0.04.19"
'';
patches = [ patches = [
# default-logger.patch switches default logger to /dev/stdout. Otherwise calibre-web tries to open a file relative # default-logger.patch switches default logger to /dev/stdout. Otherwise calibre-web tries to open a file relative
# to its location, which can't be done as the store is read-only. Log file location can later be configured using UI # to its location, which can't be done as the store is read-only. Log file location can later be configured using UI
@ -42,6 +34,13 @@ python3.pkgs.buildPythonApplication rec {
mkdir -p src/calibreweb mkdir -p src/calibreweb
mv cps.py src/calibreweb/__init__.py mv cps.py src/calibreweb/__init__.py
mv cps src/calibreweb mv cps src/calibreweb
substituteInPlace setup.cfg \
--replace "requests>=2.11.1,<2.25.0" "requests" \
--replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
--replace "PyPDF3>=1.0.0,<1.0.4" "PyPDF3>=1.0.0" \
--replace "unidecode>=0.04.19,<1.3.0" "unidecode>=0.04.19" \
--replace "flask-wtf>=0.14.2,<0.16.0" "flask-wtf>=0.14.2"
''; '';
# Upstream repo doesn't provide any tests. # Upstream repo doesn't provide any tests.
@ -52,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
flask-babel flask-babel
flask_login flask_login
flask_principal flask_principal
flask_wtf
iso-639 iso-639
lxml lxml
pypdf3 pypdf3

View file

@ -19,8 +19,8 @@ stdenv.mkDerivation (rec {
url = "https://artifacts.elastic.co/downloads/elasticsearch/${pname}-${version}.tar.gz"; url = "https://artifacts.elastic.co/downloads/elasticsearch/${pname}-${version}.tar.gz";
sha256 = sha256 =
if enableUnfree if enableUnfree
then "09dy3iyzk460vra6na6vk7d3mzpbv4cl0pl7kjmybxy947j7hh42" then "1hkcgqsrnnx3zjpgar4424mxfaxrx0zbrp7n7n0dlbhphshwnkmd"
else "0s04xz3j4psyhawvy503sp2nl5s0gswmpd9wfvwnavgcrr23wk39"; else "1pglg60aigy31xmpfchnxcc04nd18zwc3av4m0kyp00yk5mnlyqm";
}; };
patches = [ ./es-home-6.x.patch ]; patches = [ ./es-home-6.x.patch ];

View file

@ -18,9 +18,9 @@ let
plat = elemAt info 1; plat = elemAt info 1;
shas = shas =
{ {
x86_64-linux = "1ld7656b37l67vi4pyv0il865b168niqnbd4hzbvdnwrm35prp10"; x86_64-linux = "1s16l95wc589cr69pfbgmkn9rkvxn6sd6jlbiqpm6p6iyxiaxd6c";
x86_64-darwin = "11b180y11xw5q01l7aw6lyn15lp9ks8xmakjg1j7gp3z6c90hpn3"; x86_64-darwin = "05h7pvq4pb816wgcymnfklp3w6sv54x6138v2infw5219dnk8pfs";
aarch64-linux = "0s4ph79x17f90jk31wjwk259dk9dmhnmnkxdcn77m191wvf6m3wy"; aarch64-linux = "0q4xnjzhlx1b2lkikca88qh9glfxaifsm419k2bxxlrfrx31zlkq";
}; };
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {

View file

@ -38,8 +38,8 @@ in
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = sha256 =
if version == "7.11.1" then "0mi6fmnjbqypa4n1w34dvlmyq793pz4wf1r5srcs7i84kkiddysy" if version == "7.16.1" then "1sz858m9963xqr5kzjlwnq7k0a146rn60v6xijyfbp8y3brg618p"
else if version == "6.8.3" then "0vbaqyj0lfy3ijl1c9h92b0nh605h5mjs57bk2zhycdvbw5sx2lv" else if version == "6.8.21" then "06b1pavyggzfp4wwdql0q9nm3r7i9px9cagp4yh4nhxhnk4w5fiq"
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -55,8 +55,8 @@ in
src = fetchurl { src = fetchurl {
url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip"; url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip";
sha256 = sha256 =
if version == "7.11.1" then "0r2k2ndgqiqh27lch8dbay1m09f00h5kjcan87chcvyf623l40a3" if version == "7.16.1" then "0yjy9yhw77lmalivxnmv2rq8fk93ddxszkk73lgmpffladx2ikir"
else if version == "6.8.3" then "12bshvp01pp2lgwd0cn9l58axg8gdimsh4g9wfllxi1bdpv4cy53" else if version == "6.8.21" then "0m80cn7vkcvk95v4pdmi6vk5ww7p01k0hj2iqb9g870vs6x2qjzv"
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -72,8 +72,8 @@ in
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = sha256 =
if version == "7.11.1" then "10ln81zyf04qi9wv10mck8iz0xwfvwp4ni0hl1gkgvh44lf1n855" if version == "7.16.1" then "1w5ndgffqzj5ijglmykifrk1jsgh7qwn8m7sbpiv0r7n3aayhz1x"
else if version == "6.8.3" then "0ggdhf7w50bxsffmcznrjy14b578fps0f8arg3v54qvj94v9jc37" else if version == "6.8.21" then "07w8s4a5gvr9lzjzf629y8rx3kvs6zd1vl07ksw1paghp42yb354"
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -89,8 +89,8 @@ in
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = sha256 =
if version == "7.11.1" then "09grfvqjmm2rznc48z84awh54afh81qa16amfqw3amsb8dr6czm6" if version == "7.16.1" then "16mv7b9nl96bcygabvjqidxp2sjk340va19mrmliblpq3mxa2sii"
else if version == "6.8.3" then "0pmffz761dqjpvmkl7i7xsyw1iyyspqpddxp89rjsznfc9pak5im" else if version == "6.8.21" then "1kdpbrasxwr3dn21zjrklp1s389rwa51fairygdwl8px9liwwfa5"
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -106,8 +106,8 @@ in
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = sha256 =
if version == "7.11.1" then "0imkf3w2fmspb78vkf9k6kqx1crm4f82qgnbk1qa7gbsa2j47hbs" if version == "7.16.1" then "0bf8f8cybsp6s2ai3j04yay9kbhsafpgxivxjvzn2iy9qgc84ls4"
else if version == "6.8.3" then "0kfr4i2rcwinjn31xrc2piicasjanaqcgnbif9xc7lnak2nnzmll" else if version == "6.8.21" then "0v31yyhjcdlqnjw1f9kihh7z3c6d31whc57hqqd1dn579n4s9rlz"
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -123,8 +123,8 @@ in
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
sha256 = sha256 =
if version == "7.11.1" then "0ahyb1plgwvq22id2kcx9g076ybb3kvybwakgcvsdjjdyi4cwgjs" if version == "7.16.1" then "0sfa0ql3hh8jmha230dyhr51bvsvwmazyycf36ngpmxsysm8ccml"
else if version == "6.8.3" then "1mm6hj2m1db68n81rzsvlw6nisflr5ikzk5zv9nmk0z641n5vh1x" else if version == "6.8.21" then "0sfh1az30q4f34zxig2fz8wn9gk53fmmxyg5pbi1svn9761p5awq"
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -140,8 +140,8 @@ in
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
sha256 = sha256 =
if version == "7.11.1" then "0i98b905k1zwm3y9pfhr40v2fm5qdsp3icygibhxf7drffygk4l7" if version == "7.16.1" then "1b95hjr4qhiavm7r7k19bwk5c64r00f1g5s0ydnb6gzym9hdb5s1"
else if version == "6.8.3" then "1s2klpvnhpkrk53p64zbga3b66czi7h1a13f58kfn2cn0zfavnbk" else if version == "6.8.21" then "00lwj00rfdk6850gk1n86chiz2w6afpqn7jn588jdbwv41qh5mrv"
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -157,24 +157,24 @@ in
pluginName = "search-guard"; pluginName = "search-guard";
version = version =
# https://docs.search-guard.com/latest/search-guard-versions # https://docs.search-guard.com/latest/search-guard-versions
if esVersion == "7.11.1" then "${esVersion}-50.0.0" if esVersion == "7.16.1" then "${esVersion}-52.5.0"
else if esVersion == "6.8.3" then "${esVersion}-25.5" else if esVersion == "6.8.21" then "${esVersion}-25.6"
else throw "unsupported version ${esVersion} for plugin ${pluginName}"; else throw "unsupported version ${esVersion} for plugin ${pluginName}";
src = src =
if esVersion == "7.11.1" then if esVersion == "7.16.1" then
fetchurl { fetchurl {
url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip"; url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip";
sha256 = "1lippygiy0xcxxlakylhvj3bj2i681k6jcfjsprkfk7hlaqsqxkm"; sha256 = "1m3nj35qyrkkh3mhmn66nippavima8h8qpaxddalhjsvf70lhnjb";
} }
else if esVersion == "6.8.3" then else if esVersion == "6.8.21" then
fetchurl { fetchurl {
url = "mirror://maven/com/floragunn/${pluginName}-${majorVersion}/${version}/${pluginName}-${majorVersion}-${version}.zip"; url = "https://maven.search-guard.com/search-guard-release/com/floragunn/search-guard-6/${version}/search-guard-6-${version}.zip";
sha256 = "0a7ys9qinc0fjyka03cx9rv0pm7wnvslk234zv5vrphkrj52s1cb"; sha256 = "19nj513wigwd0mzq747zax4fzvv5vi24f7j0636rydd9iv9cyhg2";
} }
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
meta = with lib; { meta = with lib; {
homepage = "https://search-guard.com"; homepage = "https://search-guard.com";
description = "Elasticsearch plugin that offers encryption, authentication, and authorisation. "; description = "Elasticsearch plugin that offers encryption, authentication, and authorisation.";
license = licenses.asl20; license = licenses.asl20;
}; };
}; };

View file

@ -0,0 +1,27 @@
{lib, stdenv, fetchurl, unzip}:
stdenv.mkDerivation rec {
pname = "jtds";
version = "1.3.1";
src = fetchurl {
url = "mirror://sourceforge/jtds/${version}/${pname}-${version}-dist.zip";
sha256 = "sha256-eV0P8QdjfuHXzYssH8yHhynuH0Clg7MAece2Up3S9M0";
};
sourceRoot = ".";
installPhase = ''
mkdir -p $out/share/java
cp jtds-*.jar $out/share/java/jtds-jdbc.jar
'';
nativeBuildInputs = [ unzip ];
meta = with lib; {
description = "Pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server";
homepage = "http://jtds.sourceforge.net/";
license = licenses.lgpl21;
platforms = platforms.unix;
};
}

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "procs"; pname = "procs";
version = "0.11.10"; version = "0.11.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dalance"; owner = "dalance";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-kt1qv4x48qXzlqvV2nfFXkYzgeC4m+rA7NA+coznNno="; sha256 = "sha256-O2jH56l4SCYF+9oNhviJdybKmUo/iuR5mOOugc4Hw6Y=";
}; };
cargoSha256 = "sha256-itncLfIjNwwAO393gZ5xyRnig/N0JEovBQvOIAC4e9g="; cargoSha256 = "sha256-MrYOOAFj+mVm/EPx4CGQI7YhxPcF0jBgnnJk/DV2ojk=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/dalance/procs"; homepage = "https://github.com/dalance/procs";
changelog = "https://github.com/dalance/procs/raw/v${version}/CHANGELOG.md"; changelog = "https://github.com/dalance/procs/raw/v${version}/CHANGELOG.md";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ dalance Br1ght0ne ]; maintainers = with maintainers; [ dalance Br1ght0ne SuperSandro2000 ];
}; };
} }

View file

@ -5,13 +5,13 @@
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "apfsprogs"; pname = "apfsprogs";
version = "unstable-2021-08-24"; version = "unstable-2021-10-26";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "linux-apfs"; owner = "linux-apfs";
repo = "apfsprogs"; repo = "apfsprogs";
rev = "5efac5a701bcb56e23cfc182b5b3901bff27d343"; rev = "05ecfa367a8142e289dc76333294271b5edfe395";
sha256 = "sha256-vQE586HwrPkF0uaTKrJ7yXb24ntRI0QmBla7N2ErAU8="; sha256 = "sha256-McGQG8f12DTp/It8KjMHGyfE5tgmgLd7MZlZIn/xC+E=";
}; };
buildPhase = '' buildPhase = ''
@ -23,8 +23,8 @@ stdenv.mkDerivation {
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
make -C apfsck install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags make -C apfsck install DESTDIR="$out" $installFlags
make -C mkapfs install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags make -C mkapfs install DESTDIR="$out" $installFlags
runHook postInstall runHook postInstall
''; '';

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ibus-libthai"; pname = "ibus-libthai";
version = "0.1.4"; version = "0.1.5";
src = fetchurl { src = fetchurl {
url = "https://linux.thai.net/pub/ThaiLinux/software/libthai/ibus-libthai-${version}.tar.xz"; url = "https://linux.thai.net/pub/ThaiLinux/software/libthai/ibus-libthai-${version}.tar.xz";
sha256 = "0iam7308rxkx2xwaabc5wyj7vrxgd4cr95pvwrkm8fr9gh2xnwgv"; sha256 = "sha256-egAxttjwuKiDoIuJluoOTJdotFZJe6ZOmJgdiFCAwx0=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -1,13 +1,13 @@
{ lib, python3Packages, fetchFromGitHub }: { lib, python3Packages, fetchFromGitHub }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "dpt-rp1-py"; pname = "dpt-rp1-py";
version = "0.1.13"; version = "0.1.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "janten"; owner = "janten";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1jgkfn5kfnx98xs0dmym1h9mv1mrzlglk7x0fzs2jlc56c18w9dk"; sha256 = "0584xwf5nli94b060gysmv4civ83p4a88phpkyxaddlks0w7fc5h";
}; };
doCheck = false; doCheck = false;

View file

@ -17,8 +17,8 @@ let this = stdenv.mkDerivation rec {
url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}.tar.gz"; url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}.tar.gz";
sha256 = sha256 =
if enableUnfree if enableUnfree
then "00pwi7clgdflzzg15bh3y30gzikvvy7p5fl88fww7xhhy47q8053" then "0hij1byw5b3xmk3vshr9p7gxwbjrywr7ylps05ydc2dmnz8q2a79"
else "0spxgqsyh72n0l0xh6rljp0lbqz46xmr02sqz25ybycr4qkxdhgk"; else "1fa236pvhj7spys54nqi3k64rwzf6zi6gaccmqg4p4sh92jzsybv";
}; };
dontBuild = true; dontBuild = true;

View file

@ -17,14 +17,14 @@ let
shas = shas =
if enableUnfree if enableUnfree
then { then {
x86_64-linux = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p"; x86_64-linux = "1vm53alq9q1qy2jcsjg9z339xrkac5r9qqpdafp53ny4zsv1n7vj";
x86_64-darwin = "0dqm66c89w1nvmbwqzphlqmf7avrycgv1nwd5b0k1z168fj0c3zm"; x86_64-darwin = "0hhjyl04h3gd66rdk22272rj419br4v2i59lyrmaj6hmnsqbv968";
aarch64-linux = "11hjhyb48mjagmvqyxb780n57kr619h6p4adl2vs1zm97g9gslx8"; aarch64-linux = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p";
} }
else { else {
x86_64-linux = "14b1649avjcalcsi0ffkgznq6d93qdk6m3j0i73mwfqka5d3dvy3"; x86_64-linux = "1f3659vcgczm7v03q3fvsmp1ndp6wm3i7r2b2vbl4xq7hf9v7azk";
x86_64-darwin = "0ypgdfklr5rxvsnc3czh231pa1z2h70366j1c6q5g64b3xnxpphs"; x86_64-darwin = "10zw9qc0lc0x9in0nkxc1aiazhyd69l8sya2ni46ivyyjwf0sqsn";
aarch64-linux = "01ainayr8fwwfix7dmxfhhmb23ji65dn4lbjwnj2w0pl0ym9h9w2"; aarch64-linux = "1czhgmky2zf3mqykn5ww4257yfhd36mi4x6dq569ymly83pivf8v";
}; };
this = stdenv.mkDerivation rec { this = stdenv.mkDerivation rec {
version = elk7Version; version = elk7Version;

View file

@ -1,26 +1,33 @@
{ lib, buildGoPackage, fetchFromGitHub }: { lib, buildGoModule, fetchFromGitHub, nixosTests }:
with lib; with lib;
buildGoPackage rec { buildGoModule rec {
pname = "flannel"; pname = "flannel";
version = "0.13.0"; version = "0.15.1";
rev = "v${version}"; rev = "v${version}";
goPackagePath = "github.com/coreos/flannel"; vendorSha256 = null;
src = fetchFromGitHub { src = fetchFromGitHub {
inherit rev; inherit rev;
owner = "coreos"; owner = "flannel-io";
repo = "flannel"; repo = "flannel";
sha256 = "0mmswnaybwpf18h832haapcs5b63wn5w2hax0smm3inldiggsbw8"; sha256 = "1p4rz4kdiif8i78zgxhw6dd0c1bq159f6l1idvig5apph7zi2bwm";
}; };
ldflags = [ "-X github.com/flannel-io/flannel/version.Version=${rev}" ];
# TestRouteCache/TestV6RouteCache fail with "Failed to create newns: operation not permitted"
doCheck = false;
passthru.tests = { inherit (nixosTests) flannel; };
meta = { meta = {
description = "Network fabric for containers, designed for Kubernetes"; description = "Network fabric for containers, designed for Kubernetes";
license = licenses.asl20; license = licenses.asl20;
homepage = "https://github.com/coreos/flannel"; homepage = "https://github.com/flannel-io/flannel";
maintainers = with maintainers; [johanot offline]; maintainers = with maintainers; [ johanot offline ];
platforms = with platforms; linux; platforms = with platforms; linux;
}; };
} }

View file

@ -384,6 +384,7 @@ mapAliases ({
jbuilder = dune_1; # added 2018-09-09 jbuilder = dune_1; # added 2018-09-09
jikes = throw "jikes was deprecated on 2019-10-07: abandoned by upstream"; jikes = throw "jikes was deprecated on 2019-10-07: abandoned by upstream";
joseki = apache-jena-fuseki; # added 2016-02-28 joseki = apache-jena-fuseki; # added 2016-02-28
journalbeat7 = throw "journalbeat has been removed upstream. Use filebeat with the journald input instead.";
jvmci8 = throw "graalvm8 and its tools were deprecated in favor of graalvm8-ce"; # added 2021-10-15 jvmci8 = throw "graalvm8 and its tools were deprecated in favor of graalvm8-ce"; # added 2021-10-15
json_glib = json-glib; # added 2018-02-25 json_glib = json-glib; # added 2018-02-25
kafkacat = kcat; # added 2021-10-07 kafkacat = kcat; # added 2021-10-07

View file

@ -2140,8 +2140,7 @@ with pkgs;
filebeat7 filebeat7
heartbeat7 heartbeat7
metricbeat7 metricbeat7
packetbeat7 packetbeat7;
journalbeat7;
filebeat = filebeat6; filebeat = filebeat6;
heartbeat = heartbeat6; heartbeat = heartbeat6;
@ -4998,8 +4997,8 @@ with pkgs;
# The latest version used by elasticsearch, logstash, kibana and the the beats from elastic. # The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
# When updating make sure to update all plugins or they will break! # When updating make sure to update all plugins or they will break!
elk6Version = "6.8.3"; elk6Version = "6.8.21";
elk7Version = "7.11.1"; elk7Version = "7.16.1";
elasticsearch6 = callPackage ../servers/search/elasticsearch/6.x.nix { elasticsearch6 = callPackage ../servers/search/elasticsearch/6.x.nix {
util-linux = util-linuxMinimal; util-linux = util-linuxMinimal;
@ -13124,7 +13123,7 @@ with pkgs;
squeak = callPackage ../development/compilers/squeak { }; squeak = callPackage ../development/compilers/squeak { };
squirrel-sql = callPackage ../development/tools/database/squirrel-sql { squirrel-sql = callPackage ../development/tools/database/squirrel-sql {
drivers = [ mssql_jdbc mysql_jdbc postgresql_jdbc ]; drivers = [ jtds_jdbc mssql_jdbc mysql_jdbc postgresql_jdbc ];
}; };
stalin = callPackage ../development/compilers/stalin { }; stalin = callPackage ../development/compilers/stalin { };
@ -21387,6 +21386,7 @@ with pkgs;
mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { }; mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
mssql_jdbc = callPackage ../servers/sql/mssql/jdbc { }; mssql_jdbc = callPackage ../servers/sql/mssql/jdbc { };
jtds_jdbc = callPackage ../servers/sql/mssql/jdbc/jtds.nix { };
azuredatastudio = callPackage ../applications/misc/azuredatastudio { }; azuredatastudio = callPackage ../applications/misc/azuredatastudio { };
@ -26146,6 +26146,8 @@ with pkgs;
icecat-bin = callPackage ../applications/networking/browsers/icecat-bin { }; icecat-bin = callPackage ../applications/networking/browsers/icecat-bin { };
icon-library = callPackage ../applications/graphics/icon-library { };
id3v2 = callPackage ../applications/audio/id3v2 { }; id3v2 = callPackage ../applications/audio/id3v2 { };
ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { }; ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { };
@ -28596,6 +28598,10 @@ with pkgs;
sylpheed = callPackage ../applications/networking/mailreaders/sylpheed { }; sylpheed = callPackage ../applications/networking/mailreaders/sylpheed { };
symbolic-preview = callPackage ../applications/graphics/symbolic-preview {
libhandy = libhandy_0;
};
symlinks = callPackage ../tools/system/symlinks { }; symlinks = callPackage ../tools/system/symlinks { };
syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { }; syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { };