Merge staging-next into staging
This commit is contained in:
commit
aede20265b
|
@ -12091,6 +12091,12 @@
|
||||||
githubId = 7512804;
|
githubId = 7512804;
|
||||||
name = "Martin Langlotz";
|
name = "Martin Langlotz";
|
||||||
};
|
};
|
||||||
|
stargate01 = {
|
||||||
|
email = "christoph.honal@web.de";
|
||||||
|
github = "StarGate01";
|
||||||
|
githubId = 6362238;
|
||||||
|
name = "Christoph Honal";
|
||||||
|
};
|
||||||
steamwalker = {
|
steamwalker = {
|
||||||
email = "steamwalker@xs4all.nl";
|
email = "steamwalker@xs4all.nl";
|
||||||
github = "steamwalker";
|
github = "steamwalker";
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
getVersion() {
|
getVersion() {
|
||||||
local dir="$1"
|
local dir="$1"
|
||||||
rev=
|
rev=
|
||||||
if [ -e "$dir/.git" ]; then
|
gitDir="$dir/.git"
|
||||||
|
if [ -e "$gitDir" ]; then
|
||||||
if [ -z "$(type -P git)" ]; then
|
if [ -z "$(type -P git)" ]; then
|
||||||
echo "warning: Git not found; cannot figure out revision of $dir" >&2
|
echo "warning: Git not found; cannot figure out revision of $dir" >&2
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
cd "$dir"
|
cd "$dir"
|
||||||
rev=$(git rev-parse --short HEAD)
|
rev=$(git --git-dir="$gitDir" rev-parse --short HEAD)
|
||||||
if git describe --always --dirty | grep -q dirty; then
|
if git --git-dir="$gitDir" describe --always --dirty | grep -q dirty; then
|
||||||
rev+=M
|
rev+=M
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.geoipupdate;
|
cfg = config.services.geoipupdate;
|
||||||
|
inherit (builtins) isAttrs isString isInt isList typeOf hashString;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -27,11 +28,30 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
settings = lib.mkOption {
|
settings = lib.mkOption {
|
||||||
|
example = lib.literalExpression ''
|
||||||
|
{
|
||||||
|
AccountID = 200001;
|
||||||
|
DatabaseDirectory = "/var/lib/GeoIP";
|
||||||
|
LicenseKey = { _secret = "/run/keys/maxmind_license_key"; };
|
||||||
|
Proxy = "10.0.0.10:8888";
|
||||||
|
ProxyUserPassword = { _secret = "/run/keys/proxy_pass"; };
|
||||||
|
}
|
||||||
|
'';
|
||||||
description = ''
|
description = ''
|
||||||
<productname>geoipupdate</productname> configuration
|
<productname>geoipupdate</productname> configuration
|
||||||
options. See
|
options. See
|
||||||
<link xlink:href="https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md" />
|
<link xlink:href="https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md" />
|
||||||
for a full list of available options.
|
for a full list of available options.
|
||||||
|
|
||||||
|
Settings 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>GeoIP.conf</filename> file, the
|
||||||
|
<literal>ProxyUserPassword</literal> key will be set to the
|
||||||
|
contents of the
|
||||||
|
<filename>/run/keys/proxy_pass</filename> file.
|
||||||
'';
|
'';
|
||||||
type = lib.types.submodule {
|
type = lib.types.submodule {
|
||||||
freeformType =
|
freeformType =
|
||||||
|
@ -65,11 +85,18 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
LicenseKey = lib.mkOption {
|
LicenseKey = lib.mkOption {
|
||||||
type = lib.types.path;
|
type = with lib.types; either path (attrsOf path);
|
||||||
description = ''
|
description = ''
|
||||||
A file containing the <productname>MaxMind</productname>
|
A file containing the
|
||||||
license key.
|
<productname>MaxMind</productname> license key.
|
||||||
|
|
||||||
|
Always handled as a secret whether the value is
|
||||||
|
wrapped in a <literal>{ _secret = ...; }</literal>
|
||||||
|
attrset or not (refer to <xref
|
||||||
|
linkend="opt-services.geoipupdate.settings" /> for
|
||||||
|
details).
|
||||||
'';
|
'';
|
||||||
|
apply = x: if isAttrs x then x else { _secret = x; };
|
||||||
};
|
};
|
||||||
|
|
||||||
DatabaseDirectory = lib.mkOption {
|
DatabaseDirectory = lib.mkOption {
|
||||||
|
@ -102,6 +129,9 @@ in
|
||||||
systemd.services.geoipupdate-create-db-dir = {
|
systemd.services.geoipupdate-create-db-dir = {
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
script = ''
|
script = ''
|
||||||
|
set -o errexit -o pipefail -o nounset -o errtrace
|
||||||
|
shopt -s inherit_errexit
|
||||||
|
|
||||||
mkdir -p ${cfg.settings.DatabaseDirectory}
|
mkdir -p ${cfg.settings.DatabaseDirectory}
|
||||||
chmod 0755 ${cfg.settings.DatabaseDirectory}
|
chmod 0755 ${cfg.settings.DatabaseDirectory}
|
||||||
'';
|
'';
|
||||||
|
@ -115,32 +145,41 @@ in
|
||||||
"network-online.target"
|
"network-online.target"
|
||||||
"nss-lookup.target"
|
"nss-lookup.target"
|
||||||
];
|
];
|
||||||
|
path = [ pkgs.replace-secret ];
|
||||||
wants = [ "network-online.target" ];
|
wants = [ "network-online.target" ];
|
||||||
startAt = cfg.interval;
|
startAt = cfg.interval;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStartPre =
|
ExecStartPre =
|
||||||
let
|
let
|
||||||
|
isSecret = v: isAttrs v && v ? _secret && isString v._secret;
|
||||||
geoipupdateKeyValue = lib.generators.toKeyValue {
|
geoipupdateKeyValue = lib.generators.toKeyValue {
|
||||||
mkKeyValue = lib.flip lib.generators.mkKeyValueDefault " " rec {
|
mkKeyValue = lib.flip lib.generators.mkKeyValueDefault " " rec {
|
||||||
mkValueString = v: with builtins;
|
mkValueString = v:
|
||||||
if isInt v then toString v
|
if isInt v then toString v
|
||||||
else if isString v then v
|
else if isString v then v
|
||||||
else if true == v then "1"
|
else if true == v then "1"
|
||||||
else if false == v then "0"
|
else if false == v then "0"
|
||||||
else if isList v then lib.concatMapStringsSep " " mkValueString v
|
else if isList v then lib.concatMapStringsSep " " mkValueString v
|
||||||
|
else if isSecret v then hashString "sha256" v._secret
|
||||||
else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
|
else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
secretPaths = lib.catAttrs "_secret" (lib.collect isSecret cfg.settings);
|
||||||
|
mkSecretReplacement = file: ''
|
||||||
|
replace-secret ${lib.escapeShellArgs [ (hashString "sha256" file) file "/run/geoipupdate/GeoIP.conf" ]}
|
||||||
|
'';
|
||||||
|
secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
|
||||||
|
|
||||||
geoipupdateConf = pkgs.writeText "geoipupdate.conf" (geoipupdateKeyValue cfg.settings);
|
geoipupdateConf = pkgs.writeText "geoipupdate.conf" (geoipupdateKeyValue cfg.settings);
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
|
set -o errexit -o pipefail -o nounset -o errtrace
|
||||||
|
shopt -s inherit_errexit
|
||||||
|
|
||||||
chown geoip "${cfg.settings.DatabaseDirectory}"
|
chown geoip "${cfg.settings.DatabaseDirectory}"
|
||||||
|
|
||||||
cp ${geoipupdateConf} /run/geoipupdate/GeoIP.conf
|
cp ${geoipupdateConf} /run/geoipupdate/GeoIP.conf
|
||||||
${pkgs.replace-secret}/bin/replace-secret '${cfg.settings.LicenseKey}' \
|
${secretReplacements}
|
||||||
'${cfg.settings.LicenseKey}' \
|
|
||||||
/run/geoipupdate/GeoIP.conf
|
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
"+${pkgs.writeShellScript "start-pre-full-privileges" script}";
|
"+${pkgs.writeShellScript "start-pre-full-privileges" script}";
|
||||||
|
|
|
@ -3,7 +3,19 @@
|
||||||
let
|
let
|
||||||
cfg = config.services.parsedmarc;
|
cfg = config.services.parsedmarc;
|
||||||
opt = options.services.parsedmarc;
|
opt = options.services.parsedmarc;
|
||||||
ini = pkgs.formats.ini {};
|
isSecret = v: isAttrs v && v ? _secret && isString v._secret;
|
||||||
|
ini = pkgs.formats.ini {
|
||||||
|
mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" rec {
|
||||||
|
mkValueString = v:
|
||||||
|
if isInt v then toString v
|
||||||
|
else if isString v then v
|
||||||
|
else if true == v then "True"
|
||||||
|
else if false == v then "False"
|
||||||
|
else if isSecret v then hashString "sha256" v._secret
|
||||||
|
else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
inherit (builtins) elem isAttrs isString isInt isList typeOf hashString;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.services.parsedmarc = {
|
options.services.parsedmarc = {
|
||||||
|
@ -107,11 +119,35 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
settings = lib.mkOption {
|
settings = lib.mkOption {
|
||||||
|
example = lib.literalExpression ''
|
||||||
|
{
|
||||||
|
imap = {
|
||||||
|
host = "imap.example.com";
|
||||||
|
user = "alice@example.com";
|
||||||
|
password = { _secret = "/run/keys/imap_password" };
|
||||||
|
watch = true;
|
||||||
|
};
|
||||||
|
splunk_hec = {
|
||||||
|
url = "https://splunkhec.example.com";
|
||||||
|
token = { _secret = "/run/keys/splunk_token" };
|
||||||
|
index = "email";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
'';
|
||||||
description = ''
|
description = ''
|
||||||
Configuration parameters to set in
|
Configuration parameters to set in
|
||||||
<filename>parsedmarc.ini</filename>. For a full list of
|
<filename>parsedmarc.ini</filename>. For a full list of
|
||||||
available parameters, see
|
available parameters, see
|
||||||
<link xlink:href="https://domainaware.github.io/parsedmarc/#configuration-file" />.
|
<link xlink:href="https://domainaware.github.io/parsedmarc/#configuration-file" />.
|
||||||
|
|
||||||
|
Settings 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>parsedmarc.ini</filename>
|
||||||
|
file, the <literal>splunk_hec.token</literal> key will be set
|
||||||
|
to the contents of the
|
||||||
|
<filename>/run/keys/splunk_token</filename> file.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
type = lib.types.submodule {
|
type = lib.types.submodule {
|
||||||
|
@ -170,11 +206,18 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
password = lib.mkOption {
|
password = lib.mkOption {
|
||||||
type = with lib.types; nullOr path;
|
type = with lib.types; nullOr (either path (attrsOf path));
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = ''
|
||||||
The path to a file containing the IMAP server password.
|
The IMAP server password.
|
||||||
|
|
||||||
|
Always handled as a secret whether the value is
|
||||||
|
wrapped in a <literal>{ _secret = ...; }</literal>
|
||||||
|
attrset or not (refer to <xref
|
||||||
|
linkend="opt-services.parsedmarc.settings" /> for
|
||||||
|
details).
|
||||||
'';
|
'';
|
||||||
|
apply = x: if isAttrs x || x == null then x else { _secret = x; };
|
||||||
};
|
};
|
||||||
|
|
||||||
watch = lib.mkOption {
|
watch = lib.mkOption {
|
||||||
|
@ -228,11 +271,18 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
password = lib.mkOption {
|
password = lib.mkOption {
|
||||||
type = with lib.types; nullOr path;
|
type = with lib.types; nullOr (either path (attrsOf path));
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = ''
|
||||||
The path to a file containing the SMTP server password.
|
The SMTP server password.
|
||||||
|
|
||||||
|
Always handled as a secret whether the value is
|
||||||
|
wrapped in a <literal>{ _secret = ...; }</literal>
|
||||||
|
attrset or not (refer to <xref
|
||||||
|
linkend="opt-services.parsedmarc.settings" /> for
|
||||||
|
details).
|
||||||
'';
|
'';
|
||||||
|
apply = x: if isAttrs x || x == null then x else { _secret = x; };
|
||||||
};
|
};
|
||||||
|
|
||||||
from = lib.mkOption {
|
from = lib.mkOption {
|
||||||
|
@ -274,12 +324,19 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
password = lib.mkOption {
|
password = lib.mkOption {
|
||||||
type = with lib.types; nullOr path;
|
type = with lib.types; nullOr (either path (attrsOf path));
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = ''
|
||||||
The path to a file containing the password to use when
|
The password to use when connecting to Elasticsearch,
|
||||||
connecting to Elasticsearch, if required.
|
if required.
|
||||||
|
|
||||||
|
Always handled as a secret whether the value is
|
||||||
|
wrapped in a <literal>{ _secret = ...; }</literal>
|
||||||
|
attrset or not (refer to <xref
|
||||||
|
linkend="opt-services.parsedmarc.settings" /> for
|
||||||
|
details).
|
||||||
'';
|
'';
|
||||||
|
apply = x: if isAttrs x || x == null then x else { _secret = x; };
|
||||||
};
|
};
|
||||||
|
|
||||||
ssl = lib.mkOption {
|
ssl = lib.mkOption {
|
||||||
|
@ -299,63 +356,6 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
kafka = {
|
|
||||||
hosts = lib.mkOption {
|
|
||||||
default = [];
|
|
||||||
type = with lib.types; listOf str;
|
|
||||||
apply = x: if x == [] then null else lib.concatStringsSep "," x;
|
|
||||||
description = ''
|
|
||||||
A list of Apache Kafka hosts to publish parsed reports
|
|
||||||
to.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
user = lib.mkOption {
|
|
||||||
type = with lib.types; nullOr str;
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
Username to use when connecting to Kafka, if
|
|
||||||
required.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
password = lib.mkOption {
|
|
||||||
type = with lib.types; nullOr path;
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
The path to a file containing the password to use when
|
|
||||||
connecting to Kafka, if required.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
ssl = lib.mkOption {
|
|
||||||
type = with lib.types; nullOr bool;
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
Whether to use an encrypted SSL/TLS connection.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
aggregate_topic = lib.mkOption {
|
|
||||||
type = with lib.types; nullOr str;
|
|
||||||
default = null;
|
|
||||||
example = "aggregate";
|
|
||||||
description = ''
|
|
||||||
The Kafka topic to publish aggregate reports on.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
forensic_topic = lib.mkOption {
|
|
||||||
type = with lib.types; nullOr str;
|
|
||||||
default = null;
|
|
||||||
example = "forensic";
|
|
||||||
description = ''
|
|
||||||
The Kafka topic to publish forensic reports on.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -404,21 +404,14 @@ in
|
||||||
enable = cfg.provision.grafana.datasource || cfg.provision.grafana.dashboard;
|
enable = cfg.provision.grafana.datasource || cfg.provision.grafana.dashboard;
|
||||||
datasources =
|
datasources =
|
||||||
let
|
let
|
||||||
pkgVer = lib.getVersion config.services.elasticsearch.package;
|
esVersion = lib.getVersion config.services.elasticsearch.package;
|
||||||
esVersion =
|
|
||||||
if lib.versionOlder pkgVer "7" then
|
|
||||||
"60"
|
|
||||||
else if lib.versionOlder pkgVer "8" then
|
|
||||||
"70"
|
|
||||||
else
|
|
||||||
throw "When provisioning parsedmarc grafana datasources: unknown Elasticsearch version.";
|
|
||||||
in
|
in
|
||||||
lib.mkIf cfg.provision.grafana.datasource [
|
lib.mkIf cfg.provision.grafana.datasource [
|
||||||
{
|
{
|
||||||
name = "dmarc-ag";
|
name = "dmarc-ag";
|
||||||
type = "elasticsearch";
|
type = "elasticsearch";
|
||||||
access = "proxy";
|
access = "proxy";
|
||||||
url = "localhost:9200";
|
url = "http://localhost:9200";
|
||||||
jsonData = {
|
jsonData = {
|
||||||
timeField = "date_range";
|
timeField = "date_range";
|
||||||
inherit esVersion;
|
inherit esVersion;
|
||||||
|
@ -428,7 +421,7 @@ in
|
||||||
name = "dmarc-fo";
|
name = "dmarc-fo";
|
||||||
type = "elasticsearch";
|
type = "elasticsearch";
|
||||||
access = "proxy";
|
access = "proxy";
|
||||||
url = "localhost:9200";
|
url = "http://localhost:9200";
|
||||||
jsonData = {
|
jsonData = {
|
||||||
timeField = "date_range";
|
timeField = "date_range";
|
||||||
inherit esVersion;
|
inherit esVersion;
|
||||||
|
@ -467,12 +460,17 @@ in
|
||||||
# lists, empty attrsets and null. This makes it possible to
|
# lists, empty attrsets and null. This makes it possible to
|
||||||
# list interesting options in `settings` without them always
|
# list interesting options in `settings` without them always
|
||||||
# ending up in the resulting config.
|
# ending up in the resulting config.
|
||||||
filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! builtins.elem v [ null [] {} ])) cfg.settings;
|
filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [ null [] {} ])) cfg.settings;
|
||||||
|
|
||||||
|
# Extract secrets (attributes set to an attrset with a
|
||||||
|
# "_secret" key) from the settings and generate the commands
|
||||||
|
# to run to perform the secret replacements.
|
||||||
|
secretPaths = lib.catAttrs "_secret" (lib.collect isSecret filteredConfig);
|
||||||
parsedmarcConfig = ini.generate "parsedmarc.ini" filteredConfig;
|
parsedmarcConfig = ini.generate "parsedmarc.ini" filteredConfig;
|
||||||
mkSecretReplacement = file:
|
mkSecretReplacement = file: ''
|
||||||
lib.optionalString (file != null) ''
|
replace-secret ${lib.escapeShellArgs [ (hashString "sha256" file) file "/run/parsedmarc/parsedmarc.ini" ]}
|
||||||
replace-secret '${file}' '${file}' /run/parsedmarc/parsedmarc.ini
|
'';
|
||||||
'';
|
secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
@ -487,10 +485,7 @@ in
|
||||||
umask u=rwx,g=,o=
|
umask u=rwx,g=,o=
|
||||||
cp ${parsedmarcConfig} /run/parsedmarc/parsedmarc.ini
|
cp ${parsedmarcConfig} /run/parsedmarc/parsedmarc.ini
|
||||||
chown parsedmarc:parsedmarc /run/parsedmarc/parsedmarc.ini
|
chown parsedmarc:parsedmarc /run/parsedmarc/parsedmarc.ini
|
||||||
${mkSecretReplacement cfg.settings.smtp.password}
|
${secretReplacements}
|
||||||
${mkSecretReplacement cfg.settings.imap.password}
|
|
||||||
${mkSecretReplacement cfg.settings.elasticsearch.password}
|
|
||||||
${mkSecretReplacement cfg.settings.kafka.password}
|
|
||||||
'' + lib.optionalString cfg.provision.localMail.enable ''
|
'' + lib.optionalString cfg.provision.localMail.enable ''
|
||||||
openssl rand -hex 64 >/run/parsedmarc/dmarc_user_passwd
|
openssl rand -hex 64 >/run/parsedmarc/dmarc_user_passwd
|
||||||
replace-secret '@imap-password@' '/run/parsedmarc/dmarc_user_passwd' /run/parsedmarc/parsedmarc.ini
|
replace-secret '@imap-password@' '/run/parsedmarc/dmarc_user_passwd' /run/parsedmarc/parsedmarc.ini
|
||||||
|
|
|
@ -16,7 +16,7 @@ buildGoModule rec {
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
ldflags = [ "-X main.version=${version}" "-X main.distribution=nix" ];
|
ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.distribution=nix" ];
|
||||||
|
|
||||||
subPackages = [ "." ];
|
subPackages = [ "." ];
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "reaper";
|
pname = "reaper";
|
||||||
version = "6.47";
|
version = "6.61";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_${stdenv.hostPlatform.qemuArch}.tar.xz";
|
url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_${stdenv.hostPlatform.qemuArch}.tar.xz";
|
||||||
hash = {
|
hash = {
|
||||||
x86_64-linux = "sha256-31HmIx/ohbrzu5uj8KOOZiHNCmXwng9h+fIGaJfYyqA=";
|
x86_64-linux = "sha256-Lp2EVky1+ruc86LdMmvhZIisoYl0OxdkVnN3h/u09IQ=";
|
||||||
aarch64-linux = "sha256-CMmcBpaZ6BEZJ1144aQhOJ/o2NrGD7/8aq+ObLVMXYE=";
|
aarch64-linux = "sha256-sPLCMA//xAdWXjY7++R6eLWS56Zi0u+9ju7JlICGvVc=";
|
||||||
}.${stdenv.hostPlatform.system};
|
}.${stdenv.hostPlatform.system};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitLab
|
, fetchFromGitLab
|
||||||
, fetchpatch
|
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
, substituteAll
|
, substituteAll
|
||||||
, desktop-file-utils
|
, desktop-file-utils
|
||||||
|
@ -19,20 +18,20 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pika-backup";
|
pname = "pika-backup";
|
||||||
version = "0.4.0";
|
version = "0.4.1";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
owner = "World";
|
owner = "World";
|
||||||
repo = "pika-backup";
|
repo = "pika-backup";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-vQ0hlwsrY0WOUc/ppleE+kKRGHPt/ScEChXrkukln3U=";
|
hash = "sha256-D5QkNgscvNaPEykbcR451Wx8Mvn7HTuQE/22lp95Kbo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||||
inherit src;
|
inherit src;
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
hash = "sha256-IKUh5gkXTpmMToDaec+CpCIQqJjwJM2ZrmGQhZeTDsg=";
|
hash = "sha256-c4nYlPyc7D1AMOfHjhoDJox+i83+H1YKfWzR3i6bmng=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -40,11 +39,6 @@ stdenv.mkDerivation rec {
|
||||||
src = ./borg-path.patch;
|
src = ./borg-path.patch;
|
||||||
borg = "${borgbackup}/bin/borg";
|
borg = "${borgbackup}/bin/borg";
|
||||||
})
|
})
|
||||||
(fetchpatch {
|
|
||||||
name = "use-gtk4-update-icon-cache.patch";
|
|
||||||
url = "https://gitlab.gnome.org/World/pika-backup/-/merge_requests/64.patch";
|
|
||||||
hash = "sha256-AttGQGWealvTIvPwBl5M6FiC4Al/UD4/XckUAxM38SE=";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -739,8 +739,8 @@ let
|
||||||
mktplcRef = {
|
mktplcRef = {
|
||||||
name = "theme-dracula";
|
name = "theme-dracula";
|
||||||
publisher = "dracula-theme";
|
publisher = "dracula-theme";
|
||||||
version = "2.22.3";
|
version = "2.24.2";
|
||||||
sha256 = "0wni9sriin54ci8rly2s68lkfx8rj1cys6mgcizvps9sam6377w6";
|
sha256 = "sha256-YNqWEIvlEI29mfPxOQVdd4db9G2qNodhz8B0MCAAWK8=";
|
||||||
};
|
};
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
changelog = "https://marketplace.visualstudio.com/items/dracula-theme.theme-dracula/changelog";
|
changelog = "https://marketplace.visualstudio.com/items/dracula-theme.theme-dracula/changelog";
|
||||||
|
|
|
@ -87,11 +87,11 @@ let
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "appgate-sdp";
|
pname = "appgate-sdp";
|
||||||
version = "5.5.4";
|
version = "5.5.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
|
url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
|
||||||
sha256 = "sha256-7qfgUYD7uPb+ZEierREVfnHoGz0/b/J+hcsX/duDFWU=";
|
sha256 = "sha256-eXcGHd3TGNFqjFQ+wSg4+1hF/6DJTPOs0ldjegFktGo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# just patch interpreter
|
# just patch interpreter
|
||||||
|
|
|
@ -19,15 +19,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"beta": {
|
"beta": {
|
||||||
"version": "103.0.5060.53",
|
"version": "104.0.5112.20",
|
||||||
"sha256": "00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf",
|
"sha256": "0adzdk3m2l4pjlk82sqavwgxf6a5darbiwchmlrsxc58p9xxag4s",
|
||||||
"sha256bin64": "01vzhhnngr6a7mm1y25ax8vhph6dl948fvkyhdhb9m4j5l4lcqj4",
|
"sha256bin64": "1cm5k4gpxc0dn0vdqf3qwwf36pc77va9pnci84zcpaxx0jih7l9b",
|
||||||
"deps": {
|
"deps": {
|
||||||
"gn": {
|
"gn": {
|
||||||
"version": "2022-05-11",
|
"version": "2022-06-08",
|
||||||
"url": "https://gn.googlesource.com/gn",
|
"url": "https://gn.googlesource.com/gn",
|
||||||
"rev": "578a7fe4c3c6b0bc2ae1fd2e37f14857d09895bf",
|
"rev": "2ecd43a10266bd091c98e6dcde507c64f6a0dad3",
|
||||||
"sha256": "03dqfrdpf5xxl64dby3qmbwpzdq2gsa8g7xl438py3a629rgxg63"
|
"sha256": "1q06vsz9b4bb764wy1wy8n177z2pgpm97kq3rl1hmq185mz5fhra"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchzip
|
||||||
|
, openjdk
|
||||||
|
, makeWrapper
|
||||||
|
, tor
|
||||||
|
, p7zip
|
||||||
|
, bash
|
||||||
|
, writeScript
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
|
||||||
|
briar-tor = writeScript "briar-tor" ''
|
||||||
|
#! ${bash}/bin/bash
|
||||||
|
exec ${tor}/bin/tor "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "briar-desktop";
|
||||||
|
version = "0.2.1-beta";
|
||||||
|
|
||||||
|
src = fetchzip {
|
||||||
|
url = "https://code.briarproject.org/briar/briar-desktop/-/jobs/18424/artifacts/download?file_type=archive";
|
||||||
|
sha256 = "sha256-ivMbgo0+iZE4/Iffq9HUBErGIQMVLrRZUQ6R3V3X8II=";
|
||||||
|
extension = "zip";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
p7zip
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/{bin,lib}
|
||||||
|
cp ${src}/briar-desktop.jar $out/lib/
|
||||||
|
makeWrapper ${openjdk}/bin/java $out/bin/briar-desktop \
|
||||||
|
--add-flags "-jar $out/lib/briar-desktop.jar"
|
||||||
|
'';
|
||||||
|
|
||||||
|
fixupPhase = ''
|
||||||
|
# Replace the embedded Tor binary (which is in a Tar archive)
|
||||||
|
# with one from Nixpkgs.
|
||||||
|
cp ${briar-tor} ./tor
|
||||||
|
for arch in {aarch64,armhf,x86_64}; do
|
||||||
|
7z a tor_linux-$arch.zip tor
|
||||||
|
7z a $out/lib/briar-desktop.jar tor_linux-$arch.zip
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Decentalized and secure messnger";
|
||||||
|
homepage = "https://code.briarproject.org/briar/briar-desktop";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = with maintainers; [ onny ];
|
||||||
|
platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "chatty";
|
pname = "chatty";
|
||||||
version = "0.6.6";
|
version = "0.6.7";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "source.puri.sm";
|
domain = "source.puri.sm";
|
||||||
|
@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
|
||||||
repo = "chatty";
|
repo = "chatty";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
hash = "sha256-vwgXfoyZOCSMnRAB6bFSrtYlSrpMa9OOcmxYTqhU+lA=";
|
hash = "sha256-W4w/00mRgjfyQmLQ81/EAN+80qk7kDkBmMPJnOU+AIc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
, yarn
|
, yarn
|
||||||
, fixup_yarn_lock
|
, fixup_yarn_lock
|
||||||
, nodejs
|
, nodejs
|
||||||
|
, jitsi-meet
|
||||||
, conf ? { }
|
, conf ? { }
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -65,6 +66,7 @@ mkYarnPackage rec {
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
cp -R webapp $out
|
cp -R webapp $out
|
||||||
|
cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js
|
||||||
echo "${version}" > "$out/version"
|
echo "${version}" > "$out/version"
|
||||||
jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json"
|
jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json"
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
, lib
|
, lib
|
||||||
, python
|
, python
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, fetchpatch
|
||||||
, pyopenssl
|
, pyopenssl
|
||||||
, webcolors
|
, webcolors
|
||||||
, future
|
, future
|
||||||
|
@ -33,6 +34,11 @@ in buildPythonPackage {
|
||||||
hash = "sha256-o4kgneszVLENG167nWnk2FxM+PsMzi+PSyMUMIktZcc=";
|
hash = "sha256-o4kgneszVLENG167nWnk2FxM+PsMzi+PSyMUMIktZcc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = fetchpatch {
|
||||||
|
url = "https://patch-diff.githubusercontent.com/raw/poljar/weechat-matrix/pull/309.patch";
|
||||||
|
sha256 = "sha256-Grdht+TOFvCYRpL7uhPivqL7YzLoNVF3iQNHgbv1Te0=";
|
||||||
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
pyopenssl
|
pyopenssl
|
||||||
webcolors
|
webcolors
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
{ pkgs, mkDerivation }:
|
|
||||||
|
|
||||||
mkDerivation {
|
|
||||||
baseName = "erlang";
|
|
||||||
version = "16B02.basho10";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "basho";
|
|
||||||
repo = "otp";
|
|
||||||
rev = "OTP_R16B02_basho10";
|
|
||||||
sha256 = "1s2c3ag9dnp6xmcr27kh95n1w50xly97n1mp8ivc2a3gpv4blqmj";
|
|
||||||
};
|
|
||||||
|
|
||||||
preConfigure = ''
|
|
||||||
export HOME=$PWD/../
|
|
||||||
export LANG=C
|
|
||||||
export ERL_TOP=$(pwd)
|
|
||||||
sed -e s@/bin/pwd@pwd@g -i otp_build
|
|
||||||
sed -e s@"/usr/bin/env escript"@$(pwd)/bootstrap/bin/escript@g -i lib/diameter/bin/diameterc
|
|
||||||
|
|
||||||
./otp_build autoconf
|
|
||||||
'';
|
|
||||||
|
|
||||||
enableHipe = false;
|
|
||||||
|
|
||||||
# Do not install docs, instead use prebuilt versions.
|
|
||||||
installTargets = "install";
|
|
||||||
postInstall = let
|
|
||||||
manpages = pkgs.fetchurl {
|
|
||||||
url = "https://www.erlang.org/download/otp_doc_man_R16B02.tar.gz";
|
|
||||||
sha256 = "12apxjmmd591y9g9bhr97z5jbd1jarqg7wj0y2sqhl21hc1yp75p";
|
|
||||||
};
|
|
||||||
in ''
|
|
||||||
sed -e s@$(pwd)/bootstrap/bin/escript@$out/bin/escript@g -i $out/lib/erlang/lib/diameter-1.4.3/bin/diameterc
|
|
||||||
|
|
||||||
tar xf "${manpages}" -C "$out/lib/erlang"
|
|
||||||
for i in "$out"/lib/erlang/man/man[0-9]/*.[0-9]; do
|
|
||||||
prefix="''${i%/*}"
|
|
||||||
mkdir -p "$out/share/man/''${prefix##*/}"
|
|
||||||
ln -s "$i" "$out/share/man/''${prefix##*/}/''${i##*/}erl"
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "https://github.com/basho/otp/";
|
|
||||||
description = "Programming language used for massively scalable soft real-time systems, Basho fork";
|
|
||||||
|
|
||||||
longDescription = ''
|
|
||||||
Erlang is a programming language used to build massively scalable
|
|
||||||
soft real-time systems with requirements on high availability.
|
|
||||||
Some of its uses are in telecoms, banking, e-commerce, computer
|
|
||||||
telephony and instant messaging. Erlang's runtime system has
|
|
||||||
built-in support for concurrency, distribution and fault
|
|
||||||
tolerance.
|
|
||||||
This version of Erlang is Basho's version, forked from Ericsson's
|
|
||||||
repository.
|
|
||||||
'';
|
|
||||||
|
|
||||||
knownVulnerabilities = [ "CVE-2017-1000385" ];
|
|
||||||
|
|
||||||
platforms = ["x86_64-linux" "x86_64-darwin"];
|
|
||||||
license = pkgs.lib.licenses.asl20;
|
|
||||||
maintainers = with pkgs.lib.maintainers; [ mdaiter ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "armadillo";
|
pname = "armadillo";
|
||||||
version = "11.1.1";
|
version = "11.2.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
||||||
sha256 = "sha256-v6YVSl/v2DLSjVMKWCIf5KLP8qO729guEJveU/sp3Ns=";
|
sha256 = "sha256-31yiFZAcaMY0Z8C/7hTwjjTYdaR6sPCVCCqzLd/08kM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
37
pkgs/development/libraries/nrf5-sdk/default.nix
Normal file
37
pkgs/development/libraries/nrf5-sdk/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchzip
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "nrf5-sdk";
|
||||||
|
version = "17.1.0";
|
||||||
|
|
||||||
|
urlHash = "ddde560";
|
||||||
|
|
||||||
|
src = fetchzip {
|
||||||
|
url = "https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/sdks/nrf5/binaries/nrf5_sdk_${version}_${urlHash}.zip";
|
||||||
|
sha256 = "sha256-q4WQ7X7/z/42/qcii+mOLnobqcbUy0tInkOfRH/Gwus=";
|
||||||
|
};
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/share/nRF5_SDK
|
||||||
|
mv * $out/share/nRF5_SDK
|
||||||
|
rm $out/share/nRF5_SDK/*.msi
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Nordic Semiconductor nRF5 Software Development Kit";
|
||||||
|
homepage = "https://www.nordicsemi.com/Products/Development-software/nRF5-SDK";
|
||||||
|
license = licenses.unfree;
|
||||||
|
platforms = platforms.all;
|
||||||
|
maintainers = with maintainers; [ stargate01 ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -9,13 +9,13 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
version = "4.5.0";
|
version = "4.6.0";
|
||||||
pname = "geoip2";
|
pname = "geoip2";
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "b542252e87eb40adc3a2fc0f4e84b514c4c5e04ed46923a3a74d509f25f3103a";
|
sha256 = "sha256-8OgLzoCwa7OL0Iv0h31ahONU6TIJXmzPtNJ7tZj6T4M=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
|
|
|
@ -1,31 +1,55 @@
|
||||||
{ lib, buildPythonPackage, fetchPypi, setuptools, python, which }:
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, mock
|
||||||
|
, pytestCheckHook
|
||||||
|
, python
|
||||||
|
, pythonOlder
|
||||||
|
, setuptools
|
||||||
|
, which
|
||||||
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "nodeenv";
|
pname = "nodeenv";
|
||||||
version = "1.6.0";
|
version = "1.7.0";
|
||||||
|
format = "setuptools";
|
||||||
|
|
||||||
src = fetchPypi {
|
disabled = pythonOlder "3.7";
|
||||||
inherit pname version;
|
|
||||||
sha256 = "3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b";
|
src = fetchFromGitHub {
|
||||||
|
owner = "ekalinin";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-X30PUiOMT/vXqmdSJKHTNNA8aLWavCUaKa7LzqkdLrk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
setuptools
|
setuptools
|
||||||
];
|
];
|
||||||
|
|
||||||
# Tests not included in PyPI tarball
|
checkInputs = [
|
||||||
doCheck = false;
|
mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
substituteInPlace $out/${python.sitePackages}/nodeenv.py \
|
substituteInPlace $out/${python.sitePackages}/nodeenv.py \
|
||||||
--replace '["which", candidate]' '["${lib.getBin which}/bin/which", candidate]'
|
--replace '["which", candidate]' '["${lib.getBin which}/bin/which", candidate]'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
pythonImportsCheck = [ "nodeenv" ];
|
pythonImportsCheck = [
|
||||||
|
"nodeenv"
|
||||||
|
];
|
||||||
|
|
||||||
|
disabledTests = [
|
||||||
|
# Test requires coverage
|
||||||
|
"test_smoke"
|
||||||
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Node.js virtual environment builder";
|
description = "Node.js virtual environment builder";
|
||||||
homepage = "https://github.com/ekalinin/nodeenv";
|
homepage = "https://github.com/ekalinin/nodeenv";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
|
||||||
urls = [
|
urls = [
|
||||||
"https://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip"
|
"https://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip"
|
||||||
"http://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip"
|
"http://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip"
|
||||||
|
"https://web.archive.org/web/20190526190814/http://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip"
|
||||||
];
|
];
|
||||||
sha256 = "0qbp63l74s0i80ysh9ya8x7r79xkddbbz4378nms9i7a0kprg9p2";
|
sha256 = "0qbp63l74s0i80ysh9ya8x7r79xkddbbz4378nms9i7a0kprg9p2";
|
||||||
stripRoot = false;
|
stripRoot = false;
|
||||||
|
@ -69,9 +70,9 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Official OpenCL runtime for Intel CPUs";
|
description = "Official OpenCL runtime for Intel CPUs";
|
||||||
homepage = "https://software.intel.com/en-us/articles/opencl-drivers";
|
homepage = "https://software.intel.com/en-us/articles/opencl-drivers";
|
||||||
license = lib.licenses.unfree;
|
license = lib.licenses.unfree;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = [ lib.maintainers.kierdavis ];
|
maintainers = [ lib.maintainers.kierdavis ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4599,6 +4599,8 @@ with pkgs;
|
||||||
|
|
||||||
boofuzz= callPackage ../tools/security/boofuzz { };
|
boofuzz= callPackage ../tools/security/boofuzz { };
|
||||||
|
|
||||||
|
briar-desktop = callPackage ../applications/networking/instant-messengers/briar-desktop { };
|
||||||
|
|
||||||
bsdbuild = callPackage ../development/tools/misc/bsdbuild { };
|
bsdbuild = callPackage ../development/tools/misc/bsdbuild { };
|
||||||
|
|
||||||
bsdiff = callPackage ../tools/compression/bsdiff { };
|
bsdiff = callPackage ../tools/compression/bsdiff { };
|
||||||
|
@ -14440,7 +14442,7 @@ with pkgs;
|
||||||
|
|
||||||
inherit (beam.interpreters)
|
inherit (beam.interpreters)
|
||||||
erlang erlangR25 erlangR24 erlangR23 erlangR22 erlangR21
|
erlang erlangR25 erlangR24 erlangR23 erlangR22 erlangR21
|
||||||
erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
|
erlang_odbc erlang_javac erlang_odbc_javac
|
||||||
elixir elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9
|
elixir elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9
|
||||||
elixir_ls;
|
elixir_ls;
|
||||||
|
|
||||||
|
@ -16137,6 +16139,8 @@ with pkgs;
|
||||||
sdk = true;
|
sdk = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nrf5-sdk = callPackage ../development/libraries/nrf5-sdk { };
|
||||||
|
|
||||||
nrfutil = callPackage ../development/tools/misc/nrfutil { };
|
nrfutil = callPackage ../development/tools/misc/nrfutil { };
|
||||||
|
|
||||||
obelisk = callPackage ../development/tools/ocaml/obelisk { menhir = ocamlPackages.menhir; };
|
obelisk = callPackage ../development/tools/ocaml/obelisk { menhir = ocamlPackages.menhir; };
|
||||||
|
@ -20927,6 +20931,23 @@ with pkgs;
|
||||||
|
|
||||||
sphinx = with python3Packages; toPythonApplication sphinx;
|
sphinx = with python3Packages; toPythonApplication sphinx;
|
||||||
|
|
||||||
|
# A variation of sphinx that is only suitable for offline use as it excludes
|
||||||
|
# pyopenssl, which is broken on aarch64-darwin.
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/175875
|
||||||
|
sphinx_offline =
|
||||||
|
if !(stdenv.buildPlatform.isDarwin && stdenv.buildPlatform.isAarch64)
|
||||||
|
then sphinx
|
||||||
|
else
|
||||||
|
sphinx.override (o: {
|
||||||
|
requests = pkgsBuildTarget.python3Packages.requests.override (o: {
|
||||||
|
urllib3 = pkgsBuildTarget.python3Packages.urllib3.overrideAttrs (o: {
|
||||||
|
# urllib3 adds the optional pyopenssl to propagatedBuildInputs
|
||||||
|
# pkgs/development/python-modules/urllib3/default.nix
|
||||||
|
propagatedBuildInputs = [];
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild;
|
sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild;
|
||||||
|
|
||||||
sphinx-serve = with python3Packages; toPythonApplication sphinx-serve;
|
sphinx-serve = with python3Packages; toPythonApplication sphinx-serve;
|
||||||
|
@ -26988,6 +27009,8 @@ with pkgs;
|
||||||
# Git with SVN support, but without GUI.
|
# Git with SVN support, but without GUI.
|
||||||
gitSVN = lowPrio (git.override { svnSupport = true; });
|
gitSVN = lowPrio (git.override { svnSupport = true; });
|
||||||
|
|
||||||
|
git-autofixup = perlPackages.GitAutofixup;
|
||||||
|
|
||||||
git-doc = lib.addMetaAttrs {
|
git-doc = lib.addMetaAttrs {
|
||||||
description = "Additional documentation for Git";
|
description = "Additional documentation for Git";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
|
|
@ -92,15 +92,6 @@ with beam; {
|
||||||
odbcSupport = true;
|
odbcSupport = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Basho fork, using custom builder.
|
|
||||||
erlang_basho_R16B02 =
|
|
||||||
lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
|
|
||||||
autoconf = buildPackages.autoconf269;
|
|
||||||
inherit wxSupport;
|
|
||||||
};
|
|
||||||
erlang_basho_R16B02_odbc =
|
|
||||||
erlang_basho_R16B02.override { odbcSupport = true; };
|
|
||||||
|
|
||||||
# Other Beam languages. These are built with `beam.interpreters.erlang`. To
|
# Other Beam languages. These are built with `beam.interpreters.erlang`. To
|
||||||
# access for example elixir built with different version of Erlang, use
|
# access for example elixir built with different version of Erlang, use
|
||||||
# `beam.packages.erlangR24.elixir`.
|
# `beam.packages.erlangR24.elixir`.
|
||||||
|
|
|
@ -49,6 +49,8 @@ let
|
||||||
# Use this rather than `rec { ... }` below for sake of overlays.
|
# Use this rather than `rec { ... }` below for sake of overlays.
|
||||||
inherit (pkgs.haskell) compiler packages;
|
inherit (pkgs.haskell) compiler packages;
|
||||||
|
|
||||||
|
sphinx = buildPackages.sphinx_offline;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
lib = haskellLibUncomposable;
|
lib = haskellLibUncomposable;
|
||||||
|
|
||||||
|
@ -97,7 +99,7 @@ in {
|
||||||
packages.ghc8102Binary
|
packages.ghc8102Binary
|
||||||
else
|
else
|
||||||
packages.ghc865Binary;
|
packages.ghc865Binary;
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
inherit sphinx;
|
||||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7;
|
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7;
|
||||||
llvmPackages = pkgs.llvmPackages_7;
|
llvmPackages = pkgs.llvmPackages_7;
|
||||||
};
|
};
|
||||||
|
@ -110,7 +112,7 @@ in {
|
||||||
packages.ghc8107BinaryMinimal
|
packages.ghc8107BinaryMinimal
|
||||||
else
|
else
|
||||||
packages.ghc8107Binary;
|
packages.ghc8107Binary;
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
inherit sphinx;
|
||||||
# Need to use apple's patched xattr until
|
# Need to use apple's patched xattr until
|
||||||
# https://github.com/xattr/xattr/issues/44 and
|
# https://github.com/xattr/xattr/issues/44 and
|
||||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||||
|
@ -126,7 +128,7 @@ in {
|
||||||
packages.ghc8107BinaryMinimal
|
packages.ghc8107BinaryMinimal
|
||||||
else
|
else
|
||||||
packages.ghc8107Binary;
|
packages.ghc8107Binary;
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
inherit sphinx;
|
||||||
inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr;
|
inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr;
|
||||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||||
llvmPackages = pkgs.llvmPackages_12;
|
llvmPackages = pkgs.llvmPackages_12;
|
||||||
|
@ -138,7 +140,7 @@ in {
|
||||||
packages.ghc8107BinaryMinimal
|
packages.ghc8107BinaryMinimal
|
||||||
else
|
else
|
||||||
packages.ghc8107Binary;
|
packages.ghc8107Binary;
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
inherit sphinx;
|
||||||
# Need to use apple's patched xattr until
|
# Need to use apple's patched xattr until
|
||||||
# https://github.com/xattr/xattr/issues/44 and
|
# https://github.com/xattr/xattr/issues/44 and
|
||||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||||
|
@ -148,7 +150,7 @@ in {
|
||||||
};
|
};
|
||||||
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
||||||
bootPkgs = packages.ghc8107Binary;
|
bootPkgs = packages.ghc8107Binary;
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
inherit sphinx;
|
||||||
# Need to use apple's patched xattr until
|
# Need to use apple's patched xattr until
|
||||||
# https://github.com/xattr/xattr/issues/44 and
|
# https://github.com/xattr/xattr/issues/44 and
|
||||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||||
|
|
Loading…
Reference in a new issue