diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 6eda7473bf6..d1086658a07 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -47,6 +47,9 @@
/nixos/doc/manual/man-nixos-option.xml @nbp
/nixos/modules/installer/tools/nixos-option.sh @nbp
+# NixOS integration test driver
+/nixos/lib/test-driver @tfc
+
# New NixOS modules
/nixos/modules/module-list.nix @Infinisil
diff --git a/doc/using/configuration.xml b/doc/using/configuration.xml
index 6406c3af3ec..f4d6e911006 100644
--- a/doc/using/configuration.xml
+++ b/doc/using/configuration.xml
@@ -141,11 +141,10 @@
For a more useful example, try the following. This configuration only allows unfree packages named flash player and visual studio code:
{
- allowUnfreePredicate = (pkg: builtins.elem
- (pkg.pname or (builtins.parseDrvName pkg.name).name) [
- "flashplayer"
- "vscode"
- ]);
+ allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+ "flashplayer"
+ "vscode"
+ ];
}
@@ -217,7 +216,7 @@
The following configuration example only allows insecure packages with very short names:
{
- allowInsecurePredicate = (pkg: (builtins.stringLength (builtins.parseDrvName pkg.name).name) <= 5);
+ allowInsecurePredicate = pkg: builtins.stringLength (lib.getName pkg) <= 5;
}
diff --git a/lib/default.nix b/lib/default.nix
index 74d508ec1d6..8af53152586 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -84,7 +84,8 @@ let
hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
escapeShellArg escapeShellArgs replaceChars lowerChars
upperChars toLower toUpper addContextFrom splitString
- removePrefix removeSuffix versionOlder versionAtLeast getVersion
+ removePrefix removeSuffix versionOlder versionAtLeast
+ getName getVersion
nameFromURL enableFeature enableFeatureAs withFeature
withFeatureAs fixedWidthString fixedWidthNumber isStorePath
toInt readPathsFromFile fileContents;
diff --git a/lib/strings.nix b/lib/strings.nix
index ae0d74c6721..6dbb3d3a3e8 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -472,6 +472,23 @@ rec {
*/
versionAtLeast = v1: v2: !versionOlder v1 v2;
+ /* This function takes an argument that's either a derivation or a
+ derivation's "name" attribute and extracts the name part from that
+ argument.
+
+ Example:
+ getName "youtube-dl-2016.01.01"
+ => "youtube-dl"
+ getName pkgs.youtube-dl
+ => "youtube-dl"
+ */
+ getName = x:
+ let
+ parse = drv: (builtins.parseDrvName drv).name;
+ in if isString x
+ then parse x
+ else x.pname or (parse x.name);
+
/* This function takes an argument that's either a derivation or a
derivation's "name" attribute and extracts the version part from that
argument.
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index 0d51be4b23b..026117cc34f 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -37,6 +37,7 @@ rec {
else if final.isAndroid then "bionic"
else if final.isLinux /* default */ then "glibc"
else if final.isMsp430 then "newlib"
+ else if final.isVc4 then "newlib"
else if final.isAvr then "avrlibc"
else if final.isNetBSD then "nblibc"
# TODO(@Ericson2314) think more about other operating systems
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index 58cff18e648..700c895b3ab 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -26,7 +26,7 @@ let
"riscv32-linux" "riscv64-linux"
- "aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none"
+ "aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none" "vc4-none"
];
allParsed = map parse.mkSystemFromString all;
@@ -45,6 +45,7 @@ in {
x86_64 = filterDoubles predicates.isx86_64;
mips = filterDoubles predicates.isMips;
riscv = filterDoubles predicates.isRiscV;
+ vc4 = filterDoubles predicates.isVc4;
cygwin = filterDoubles predicates.isCygwin;
darwin = filterDoubles predicates.isDarwin;
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 585156c2475..cb8bc3de6c4 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -118,6 +118,12 @@ rec {
config = "avr";
};
+ vc4 = {
+ config = "vc4-elf";
+ libc = "newlib";
+ platform = {};
+ };
+
arm-embedded = {
config = "arm-none-eabi";
libc = "newlib";
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 8a983b3d363..d1980c6dff8 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -21,6 +21,7 @@ rec {
isSparc = { cpu = { family = "sparc"; }; };
isWasm = { cpu = { family = "wasm"; }; };
isMsp430 = { cpu = { family = "msp430"; }; };
+ isVc4 = { cpu = { family = "vc4"; }; };
isAvr = { cpu = { family = "avr"; }; };
isAlpha = { cpu = { family = "alpha"; }; };
isJavaScript = { cpu = cpuTypes.js; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 36235744602..6a02dbb5152 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -112,6 +112,8 @@ rec {
msp430 = { bits = 16; significantByte = littleEndian; family = "msp430"; };
avr = { bits = 8; family = "avr"; };
+ vc4 = { bits = 32; significantByte = littleEndian; family = "vc4"; };
+
js = { bits = 32; significantByte = littleEndian; family = "js"; };
};
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index a9bf3ed1539..eefc9560f16 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -3601,6 +3601,12 @@
github = "klntsky";
githubId = 18447310;
};
+ kmcopper = {
+ email = "kmcopper@danwin1210.me";
+ name = "Kyle Copperfield";
+ github = "kmcopper";
+ githubId = 57132115;
+ };
kmeakin = {
email = "karlwfmeakin@gmail.com";
name = "Karl Meakin";
@@ -4524,6 +4530,12 @@
githubId = 117842;
name = "Henri Bourcereau";
};
+ mmilata = {
+ email = "martin@martinmilata.cz";
+ github = "mmilata";
+ gitHubId = 85857;
+ name = "Martin Milata";
+ };
mmlb = {
email = "me.mmlb@mmlb.me";
github = "mmlb";
@@ -6727,6 +6739,12 @@
githubId = 42933;
name = "Andrew Childs";
};
+ thefenriswolf = {
+ email = "stefan.rohrbacher97@gmail.com";
+ github = "thefenriswolf";
+ githubId = "8547242";
+ name = "Stefan Rohrbacher";
+ };
thesola10 = {
email = "thesola10@bobile.fr";
github = "thesola10";
diff --git a/maintainers/scripts/update.nix b/maintainers/scripts/update.nix
index 04723cb8a36..60c6113bf70 100755
--- a/maintainers/scripts/update.nix
+++ b/maintainers/scripts/update.nix
@@ -126,7 +126,7 @@ let
packageData = package: {
name = package.name;
- pname = (builtins.parseDrvName package.name).name;
+ pname = pkgs.lib.getName package;
updateScript = map builtins.toString (pkgs.lib.toList package.updateScript);
};
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml
index 6916fd225da..4980a99e646 100644
--- a/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -176,6 +176,16 @@
KDE’s old multimedia framework Phonon no longer supports Qt 4. For that reason, Plasma desktop also does not have option any more.
+
+
+ The BeeGFS module has been removed.
+
+
+
+
+ The osquery module has been removed.
+
+
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index 35c8b543dec..eee8f612410 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -86,7 +86,7 @@ let
optionsList = lib.sort optionLess optionsListDesc;
# Convert the list of options into an XML file.
- optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsList);
+ optionsXML = pkgs.writeText "options.xml" (builtins.toXML optionsList);
optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList);
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
index 0b8e3b67c9b..e45521424de 100644
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test-driver.py
@@ -3,7 +3,6 @@ from contextlib import contextmanager, _GeneratorContextManager
from xml.sax.saxutils import XMLGenerator
import _thread
import atexit
-import json
import os
import ptpython.repl
import pty
@@ -16,7 +15,7 @@ import sys
import tempfile
import time
import unicodedata
-from typing import Tuple, TextIO, Any, Callable, Dict, Iterator, Optional, List
+from typing import Tuple, Any, Callable, Dict, Iterator, Optional, List
CHAR_TO_KEY = {
"A": "shift-a",
@@ -771,7 +770,9 @@ def run_tests() -> None:
machine.execute("sync")
if nr_tests != 0:
- log.log("{} out of {} tests succeeded".format(nr_succeeded, nr_tests))
+ eprint("{} out of {} tests succeeded".format(nr_succeeded, nr_tests))
+ if nr_tests > nr_succeeded:
+ sys.exit(1)
@contextmanager
diff --git a/nixos/modules/config/vpnc.nix b/nixos/modules/config/vpnc.nix
deleted file mode 100644
index 356e007c0a3..00000000000
--- a/nixos/modules/config/vpnc.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ config, lib, ... }:
-
-with lib;
-
-let
- cfg = config.networking.vpnc;
- mkServiceDef = name: value:
- {
- name = "vpnc/${name}.conf";
- value = { text = value; };
- };
-
-in
-{
- options = {
- networking.vpnc = {
- services = mkOption {
- type = types.attrsOf types.str;
- default = {};
- example = literalExample ''
- { test = '''
- IPSec gateway 192.168.1.1
- IPSec ID someID
- IPSec secret secretKey
- Xauth username name
- Xauth password pass
- ''';
- }
- '';
- description =
- ''
- The names of cisco VPNs and their associated definitions
- '';
- };
- };
- };
-
- config.environment.etc = mapAttrs' mkServiceDef cfg.services;
-}
-
-
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 6b578cd5619..9e0d9478b5d 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -35,7 +35,6 @@
./config/terminfo.nix
./config/unix-odbc-drivers.nix
./config/users-groups.nix
- ./config/vpnc.nix
./config/vte.nix
./config/zram.nix
./hardware/acpilight.nix
@@ -519,7 +518,6 @@
./services/monitoring/munin.nix
./services/monitoring/nagios.nix
./services/monitoring/netdata.nix
- ./services/monitoring/osquery.nix
./services/monitoring/prometheus/default.nix
./services/monitoring/prometheus/alertmanager.nix
./services/monitoring/prometheus/exporters.nix
@@ -539,7 +537,6 @@
./services/monitoring/zabbix-agent.nix
./services/monitoring/zabbix-proxy.nix
./services/monitoring/zabbix-server.nix
- ./services/network-filesystems/beegfs.nix
./services/network-filesystems/cachefilesd.nix
./services/network-filesystems/davfs2.nix
./services/network-filesystems/drbd.nix
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 7d8cf55b827..d4bce3b49d3 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -10,6 +10,7 @@ with lib;
(mkRenamedOptionModule [ "networking" "enableRalinkFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
(mkRenamedOptionModule [ "networking" "enableRTL8192cFirmware" ] [ "hardware" "enableRedistributableFirmware" ])
(mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ])
+ (mkRenamedOptionModule [ "networking" "connman" ] [ "services" "connman" ])
(mkChangedOptionModule [ "services" "printing" "gutenprint" ] [ "services" "printing" "drivers" ]
(config:
let enabled = getAttrFromPath [ "services" "printing" "gutenprint" ] config;
@@ -235,6 +236,7 @@ with lib;
(mkRemovedOptionModule [ "services" "zabbixServer" "dbPassword" ] "Use services.zabbixServer.database.passwordFile instead.")
(mkRemovedOptionModule [ "systemd" "generator-packages" ] "Use systemd.packages instead.")
(mkRemovedOptionModule [ "fonts" "enableCoreFonts" ] "Use fonts.fonts = [ pkgs.corefonts ]; instead.")
+ (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
# ZSH
(mkRenamedOptionModule [ "programs" "zsh" "enableSyntaxHighlighting" ] [ "programs" "zsh" "syntaxHighlighting" "enable" ])
@@ -279,6 +281,13 @@ with lib;
# BLCR
(mkRemovedOptionModule [ "environment.blcr.enable" ] "The BLCR module has been removed")
+ # beegfs
+ (mkRemovedOptionModule [ "services.beegfsEnable" ] "The BeeGFS module has been removed")
+ (mkRemovedOptionModule [ "services.beegfs" ] "The BeeGFS module has been removed")
+
+ # osquery
+ (mkRemovedOptionModule [ "services.osquery" ] "The osquery module has been removed")
+
# Redis
(mkRemovedOptionModule [ "services" "redis" "user" ] "The redis module now is hardcoded to the redis user.")
(mkRemovedOptionModule [ "services" "redis" "dbpath" ] "The redis module now uses /var/lib/redis as data directory.")
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index 39192d05948..5549cfa5cf4 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -8,15 +8,11 @@ let
mysql = cfg.package;
- isMariaDB =
- let
- pName = _p: (builtins.parseDrvName (_p.name)).name;
- in pName mysql == pName pkgs.mariadb;
+ isMariaDB = lib.getName mysql == lib.getName pkgs.mariadb;
+
isMysqlAtLeast57 =
- let
- pName = _p: (builtins.parseDrvName (_p.name)).name;
- in (pName mysql == pName pkgs.mysql57)
- && ((builtins.compareVersions mysql.version "5.7") >= 0);
+ (lib.getName mysql == lib.getName pkgs.mysql57)
+ && (builtins.compareVersions mysql.version "5.7" >= 0);
mysqldOptions =
"--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}";
diff --git a/nixos/modules/services/games/openarena.nix b/nixos/modules/services/games/openarena.nix
index b7d1aea6b8d..8c014d78809 100644
--- a/nixos/modules/services/games/openarena.nix
+++ b/nixos/modules/services/games/openarena.nix
@@ -43,7 +43,7 @@ in
serviceConfig = {
DynamicUser = true;
StateDirectory = "openarena";
- ExecStart = "${pkgs.openarena}/bin/openarena-server +set fs_basepath ${pkgs.openarena}/openarena-0.8.8 +set fs_homepath /var/lib/openarena ${concatStringsSep " " cfg.extraFlags}";
+ ExecStart = "${pkgs.openarena}/bin/oa_ded +set fs_basepath ${pkgs.openarena}/openarena-0.8.8 +set fs_homepath /var/lib/openarena ${concatStringsSep " " cfg.extraFlags}";
Restart = "on-failure";
# Hardening
diff --git a/nixos/modules/services/monitoring/osquery.nix b/nixos/modules/services/monitoring/osquery.nix
deleted file mode 100644
index c8c625577d3..00000000000
--- a/nixos/modules/services/monitoring/osquery.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with builtins;
-with lib;
-
-let
- cfg = config.services.osquery;
-
-in
-
-{
-
- options = {
-
- services.osquery = {
-
- enable = mkEnableOption "osquery";
-
- loggerPath = mkOption {
- type = types.path;
- description = "Base directory used for logging.";
- default = "/var/log/osquery";
- };
-
- pidfile = mkOption {
- type = types.path;
- description = "Path used for pid file.";
- default = "/var/osquery/osqueryd.pidfile";
- };
-
- utc = mkOption {
- type = types.bool;
- description = "Attempt to convert all UNIX calendar times to UTC.";
- default = true;
- };
-
- databasePath = mkOption {
- type = types.path;
- description = "Path used for database file.";
- default = "/var/osquery/osquery.db";
- };
-
- extraConfig = mkOption {
- type = types.attrs // {
- merge = loc: foldl' (res: def: recursiveUpdate res def.value) {};
- };
- description = "Extra config to be recursively merged into the JSON config file.";
- default = { };
- };
- };
-
- };
-
- config = mkIf cfg.enable {
-
- environment.systemPackages = [ pkgs.osquery ];
-
- environment.etc."osquery/osquery.conf".text = toJSON (
- recursiveUpdate {
- options = {
- config_plugin = "filesystem";
- logger_plugin = "filesystem";
- logger_path = cfg.loggerPath;
- database_path = cfg.databasePath;
- utc = cfg.utc;
- };
- } cfg.extraConfig
- );
-
- systemd.services.osqueryd = {
- description = "The osquery Daemon";
- after = [ "network.target" "syslog.service" ];
- wantedBy = [ "multi-user.target" ];
- path = [ pkgs.osquery ];
- preStart = ''
- mkdir -p ${escapeShellArg cfg.loggerPath}
- mkdir -p "$(dirname ${escapeShellArg cfg.pidfile})"
- mkdir -p "$(dirname ${escapeShellArg cfg.databasePath})"
- '';
- serviceConfig = {
- TimeoutStartSec = "infinity";
- ExecStart = "${pkgs.osquery}/bin/osqueryd --logger_path ${escapeShellArg cfg.loggerPath} --pidfile ${escapeShellArg cfg.pidfile} --database_path ${escapeShellArg cfg.databasePath}";
- KillMode = "process";
- KillSignal = "SIGTERM";
- Restart = "on-failure";
- };
- };
-
- };
-
-}
diff --git a/nixos/modules/services/network-filesystems/beegfs.nix b/nixos/modules/services/network-filesystems/beegfs.nix
deleted file mode 100644
index 2e03a422665..00000000000
--- a/nixos/modules/services/network-filesystems/beegfs.nix
+++ /dev/null
@@ -1,357 +0,0 @@
-{ config, lib, pkgs, ...} :
-
-with lib;
-
-let
- cfg = config.services.beegfs;
-
- # functions for the generations of config files
-
- configMgmtd = name: cfg: pkgs.writeText "mgmt-${name}.conf" ''
- storeMgmtdDirectory = ${cfg.mgmtd.storeDir}
- storeAllowFirstRunInit = false
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
-
- ${cfg.mgmtd.extraConfig}
- '';
-
- configAdmon = name: cfg: pkgs.writeText "admon-${name}.conf" ''
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
-
- ${cfg.admon.extraConfig}
- '';
-
- configMeta = name: cfg: pkgs.writeText "meta-${name}.conf" ''
- storeMetaDirectory = ${cfg.meta.storeDir}
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
- storeAllowFirstRunInit = false
-
- ${cfg.meta.extraConfig}
- '';
-
- configStorage = name: cfg: pkgs.writeText "storage-${name}.conf" ''
- storeStorageDirectory = ${cfg.storage.storeDir}
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
- storeAllowFirstRunInit = false
-
- ${cfg.storage.extraConfig}
- '';
-
- configHelperd = name: cfg: pkgs.writeText "helperd-${name}.conf" ''
- connAuthFile = ${cfg.connAuthFile}
- ${cfg.helperd.extraConfig}
- '';
-
- configClientFilename = name : "/etc/beegfs/client-${name}.conf";
-
- configClient = name: cfg: ''
- sysMgmtdHost = ${cfg.mgmtdHost}
- connAuthFile = ${cfg.connAuthFile}
- connPortShift = ${toString cfg.connPortShift}
-
- ${cfg.client.extraConfig}
- '';
-
- serviceList = [
- { service = "admon"; cfgFile = configAdmon; }
- { service = "meta"; cfgFile = configMeta; }
- { service = "mgmtd"; cfgFile = configMgmtd; }
- { service = "storage"; cfgFile = configStorage; }
- ];
-
- # functions to generate systemd.service entries
-
- systemdEntry = service: cfgFile: (mapAttrs' ( name: cfg:
- (nameValuePair "beegfs-${service}-${name}" (mkIf cfg.${service}.enable {
- wantedBy = [ "multi-user.target" ];
- requires = [ "network-online.target" ];
- after = [ "network-online.target" ];
- serviceConfig = rec {
- ExecStart = ''
- ${pkgs.beegfs}/bin/beegfs-${service} \
- cfgFile=${cfgFile name cfg} \
- pidFile=${PIDFile}
- '';
- PIDFile = "/run/beegfs-${service}-${name}.pid";
- TimeoutStopSec = "300";
- };
- }))) cfg);
-
- systemdHelperd = mapAttrs' ( name: cfg:
- (nameValuePair "beegfs-helperd-${name}" (mkIf cfg.client.enable {
- wantedBy = [ "multi-user.target" ];
- requires = [ "network-online.target" ];
- after = [ "network-online.target" ];
- serviceConfig = rec {
- ExecStart = ''
- ${pkgs.beegfs}/bin/beegfs-helperd \
- cfgFile=${configHelperd name cfg} \
- pidFile=${PIDFile}
- '';
- PIDFile = "/run/beegfs-helperd-${name}.pid";
- TimeoutStopSec = "300";
- };
- }))) cfg;
-
- # wrappers to beegfs tools. Avoid typing path of config files
- utilWrappers = mapAttrsToList ( name: cfg:
- ( pkgs.runCommand "beegfs-utils-${name}" {
- nativeBuildInputs = [ pkgs.makeWrapper ];
- preferLocalBuild = true;
- } ''
- mkdir -p $out/bin
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-check-servers \
- $out/bin/beegfs-check-servers-${name} \
- --add-flags "-c ${configClientFilename name}" \
- --prefix PATH : ${lib.makeBinPath [ pkgs.beegfs ]}
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-ctl \
- $out/bin/beegfs-ctl-${name} \
- --add-flags "--cfgFile=${configClientFilename name}"
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-ctl \
- $out/bin/beegfs-df-${name} \
- --add-flags "--cfgFile=${configClientFilename name}" \
- --add-flags --listtargets \
- --add-flags --hidenodeid \
- --add-flags --pools \
- --add-flags --spaceinfo
-
- makeWrapper ${pkgs.beegfs}/bin/beegfs-fsck \
- $out/bin/beegfs-fsck-${name} \
- --add-flags "--cfgFile=${configClientFilename name}"
- ''
- )) cfg;
-in
-{
- ###### interface
-
- options = {
- services.beegfsEnable = mkEnableOption "BeeGFS";
-
- services.beegfs = mkOption {
- default = {};
- description = ''
- BeeGFS configurations. Every mount point requires a separate configuration.
- '';
- type = with types; attrsOf (submodule ({ ... } : {
- options = {
- mgmtdHost = mkOption {
- type = types.str;
- default = null;
- example = "master";
- description = ''Hostname of managament host.'';
- };
-
- connAuthFile = mkOption {
- type = types.str;
- default = "";
- example = "/etc/my.key";
- description = "File containing shared secret authentication.";
- };
-
- connPortShift = mkOption {
- type = types.int;
- default = 0;
- example = 5;
- description = ''
- For each additional beegfs configuration shift all
- service TCP/UDP ports by at least 5.
- '';
- };
-
- client = {
- enable = mkEnableOption "BeeGFS client";
-
- mount = mkOption {
- type = types.bool;
- default = true;
- description = "Create fstab entry automatically";
- };
-
- mountPoint = mkOption {
- type = types.str;
- default = "/run/beegfs";
- description = ''
- Mount point under which the beegfs filesytem should be mounted.
- If mounted manually the mount option specifing the config file is needed:
- cfgFile=/etc/beegfs/beegfs-client-<name>.conf
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-client.conf.
- See documentation for further details.
- '';
- };
- };
-
- helperd = {
- enable = mkOption {
- type = types.bool;
- default = true;
- description = ''
- Enable the BeeGFS helperd.
- The helpered is need for logging purposes on the client.
- Disabling helperd allows for runing the client
- with allowUnfree = false.
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-helperd.conf. See documentation
- for further details.
- '';
- };
- };
-
- mgmtd = {
- enable = mkEnableOption "BeeGFS mgmtd daemon";
-
- storeDir = mkOption {
- type = types.path;
- default = null;
- example = "/data/beegfs-mgmtd";
- description = ''
- Data directory for mgmtd.
- Must not be shared with other beegfs daemons.
- This directory must exist and it must be initialized
- with beegfs-setup-mgmtd, e.g. "beegfs-setup-mgmtd -C -p <storeDir>"
- '';
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-mgmtd.conf. See documentation
- for further details.
- '';
- };
- };
-
- admon = {
- enable = mkEnableOption "BeeGFS admon daemon";
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = ''
- Additional lines for beegfs-admon.conf. See documentation
- for further details.
- '';
- };
- };
-
- meta = {
- enable = mkEnableOption "BeeGFS meta data daemon";
-
- storeDir = mkOption {
- type = types.path;
- default = null;
- example = "/data/beegfs-meta";
- description = ''
- Data directory for meta data service.
- Must not be shared with other beegfs daemons.
- The underlying filesystem must be mounted with xattr turned on.
- This directory must exist and it must be initialized
- with beegfs-setup-meta, e.g.
- "beegfs-setup-meta -C -s <serviceID> -p <storeDir>"
- '';
- };
-
- extraConfig = mkOption {
- type = types.str;
- default = "";
- description = ''
- Additional lines for beegfs-meta.conf. See documentation
- for further details.
- '';
- };
- };
-
- storage = {
- enable = mkEnableOption "BeeGFS storage daemon";
-
- storeDir = mkOption {
- type = types.path;
- default = null;
- example = "/data/beegfs-storage";
- description = ''
- Data directories for storage service.
- Must not be shared with other beegfs daemons.
- The underlying filesystem must be mounted with xattr turned on.
- This directory must exist and it must be initialized
- with beegfs-setup-storage, e.g.
- "beegfs-setup-storage -C -s <serviceID> -i <storageTargetID> -p <storeDir>"
- '';
- };
-
- extraConfig = mkOption {
- type = types.str;
- default = "";
- description = ''
- Addional lines for beegfs-storage.conf. See documentation
- for further details.
- '';
- };
- };
- };
- }));
- };
- };
-
- ###### implementation
-
- config =
- mkIf config.services.beegfsEnable {
-
- environment.systemPackages = utilWrappers;
-
- # Put the client.conf files in /etc since they are needed
- # by the commandline tools
- environment.etc = mapAttrs' ( name: cfg:
- (nameValuePair "beegfs/client-${name}.conf" (mkIf (cfg.client.enable)
- {
- enable = true;
- text = configClient name cfg;
- }))) cfg;
-
- # Kernel module, we need it only once per host.
- boot = mkIf (
- foldr (a: b: a || b) false
- (map (x: x.client.enable) (collect (x: x ? client) cfg)))
- {
- kernelModules = [ "beegfs" ];
- extraModulePackages = [ pkgs.linuxPackages.beegfs-module ];
- };
-
- # generate fstab entries
- fileSystems = mapAttrs' (name: cfg:
- (nameValuePair cfg.client.mountPoint (optionalAttrs cfg.client.mount (mkIf cfg.client.enable {
- device = "beegfs_nodev";
- fsType = "beegfs";
- mountPoint = cfg.client.mountPoint;
- options = [ "cfgFile=${configClientFilename name}" "_netdev" ];
- })))) cfg;
-
- # generate systemd services
- systemd.services = systemdHelperd //
- foldr (a: b: a // b) {}
- (map (x: systemdEntry x.service x.cfgFile) serviceList);
- };
-}
diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix
index 31127f79049..cac517f410e 100644
--- a/nixos/modules/services/networking/connman.nix
+++ b/nixos/modules/services/networking/connman.nix
@@ -4,7 +4,7 @@ with pkgs;
with lib;
let
- cfg = config.networking.connman;
+ cfg = config.services.connman;
configFile = pkgs.writeText "connman.conf" ''
[General]
NetworkInterfaceBlacklist=${concatStringsSep "," cfg.networkInterfaceBlacklist}
@@ -17,7 +17,7 @@ in {
options = {
- networking.connman = {
+ services.connman = {
enable = mkOption {
type = types.bool;
@@ -71,13 +71,13 @@ in {
assertions = [{
assertion = !config.networking.useDHCP;
- message = "You can not use services.networking.connman with services.networking.useDHCP";
+ message = "You can not use services.connman with networking.useDHCP";
}{
assertion = config.networking.wireless.enable;
- message = "You must use services.networking.connman with services.networking.wireless";
+ message = "You must use services.connman with networking.wireless";
}{
assertion = !config.networking.networkmanager.enable;
- message = "You can not use services.networking.connman with services.networking.networkmanager";
+ message = "You can not use services.connman with networking.networkmanager";
}];
environment.systemPackages = [ connman ];
diff --git a/nixos/modules/services/networking/znc/default.nix b/nixos/modules/services/networking/znc/default.nix
index 05f97bfa539..0a9848a4934 100644
--- a/nixos/modules/services/networking/znc/default.nix
+++ b/nixos/modules/services/networking/znc/default.nix
@@ -239,7 +239,7 @@ in
services.znc = {
configFile = mkDefault (pkgs.writeText "znc-generated.conf" semanticString);
config = {
- Version = (builtins.parseDrvName pkgs.znc.name).version;
+ Version = lib.getVersion pkgs.znc;
Listener.l.Port = mkDefault 5000;
Listener.l.SSL = mkDefault true;
};
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index e13f0421d38..9a4db84f7b7 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -47,8 +47,8 @@ let
grub = f grub;
grubTarget = f (grub.grubTarget or "");
shell = "${pkgs.runtimeShell}";
- fullName = (builtins.parseDrvName realGrub.name).name;
- fullVersion = (builtins.parseDrvName realGrub.name).version;
+ fullName = lib.getName realGrub;
+ fullVersion = lib.getVersion realGrub;
grubEfi = f grubEfi;
grubTargetEfi = if cfg.efiSupport && (cfg.version == 2) then f (grubEfi.grubTarget or "") else "";
bootPath = args.path;
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index f80d5afc55f..226769f1059 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -924,6 +924,8 @@ in
config = mkIf config.systemd.network.enable {
+ users.users.systemd-network.group = "systemd-network";
+
systemd.additionalUpstreamSystemUnits = [
"systemd-networkd.service" "systemd-networkd-wait-online.service"
];
diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix
index 3ea96f8e464..da61c64faf8 100644
--- a/nixos/modules/system/boot/resolved.nix
+++ b/nixos/modules/system/boot/resolved.nix
@@ -136,6 +136,8 @@ in
}
];
+ users.users.resolved.group = "systemd-resolve";
+
systemd.additionalUpstreamSystemUnits = [
"systemd-resolved.service"
];
diff --git a/nixos/modules/system/boot/timesyncd.nix b/nixos/modules/system/boot/timesyncd.nix
index 0b1d0ff6c22..9e2f36ca01f 100644
--- a/nixos/modules/system/boot/timesyncd.nix
+++ b/nixos/modules/system/boot/timesyncd.nix
@@ -50,7 +50,10 @@ with lib;
${config.services.timesyncd.extraConfig}
'';
- users.users.systemd-timesync.uid = config.ids.uids.systemd-timesync;
+ users.users.systemd-timesync = {
+ uid = config.ids.uids.systemd-timesync;
+ group = "systemd-timesync";
+ };
users.groups.systemd-timesync.gid = config.ids.gids.systemd-timesync;
system.activationScripts.systemd-timesyncd-migration = mkIf (versionOlder config.system.stateVersion "19.09") ''
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 691ee2c136e..09678ce9ea7 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -149,7 +149,7 @@ let
--setenv PATH="$PATH" \
${optionalString cfg.ephemeral "--ephemeral"} \
${if cfg.additionalCapabilities != null && cfg.additionalCapabilities != [] then
- ''--capability="${concatStringsSep " " cfg.additionalCapabilities}"'' else ""
+ ''--capability="${concatStringsSep "," cfg.additionalCapabilities}"'' else ""
} \
${if cfg.tmpfs != null && cfg.tmpfs != [] then
''--tmpfs=${concatStringsSep " --tmpfs=" cfg.tmpfs}'' else ""
diff --git a/nixos/modules/virtualisation/digital-ocean-config.nix b/nixos/modules/virtualisation/digital-ocean-config.nix
new file mode 100644
index 00000000000..88cb0cd450e
--- /dev/null
+++ b/nixos/modules/virtualisation/digital-ocean-config.nix
@@ -0,0 +1,197 @@
+{ config, pkgs, lib, modulesPath, ... }:
+with lib;
+{
+ imports = [
+ (modulesPath + "/profiles/qemu-guest.nix")
+ (modulesPath + "/virtualisation/digital-ocean-init.nix")
+ ];
+ options.virtualisation.digitalOcean = with types; {
+ setRootPassword = mkOption {
+ type = bool;
+ default = false;
+ example = true;
+ description = "Whether to set the root password from the Digital Ocean metadata";
+ };
+ setSshKeys = mkOption {
+ type = bool;
+ default = true;
+ example = true;
+ description = "Whether to fetch ssh keys from Digital Ocean";
+ };
+ seedEntropy = mkOption {
+ type = bool;
+ default = true;
+ example = true;
+ description = "Whether to run the kernel RNG entropy seeding script from the Digital Ocean vendor data";
+ };
+ };
+ config =
+ let
+ cfg = config.virtualisation.digitalOcean;
+ hostName = config.networking.hostName;
+ doMetadataFile = "/run/do-metadata/v1.json";
+ in mkMerge [{
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/nixos";
+ autoResize = true;
+ fsType = "ext4";
+ };
+ boot = {
+ growPartition = true;
+ kernelParams = [ "console=ttyS0" "panic=1" "boot.panic_on_fail" ];
+ initrd.kernelModules = [ "virtio_scsi" ];
+ kernelModules = [ "virtio_pci" "virtio_net" ];
+ loader = {
+ grub.device = "/dev/vda";
+ timeout = 0;
+ grub.configurationLimit = 0;
+ };
+ };
+ services.openssh = {
+ enable = mkDefault true;
+ passwordAuthentication = mkDefault false;
+ };
+ services.do-agent.enable = mkDefault true;
+ networking = {
+ hostName = mkDefault ""; # use Digital Ocean metadata server
+ };
+
+ /* Check for and wait for the metadata server to become reachable.
+ * This serves as a dependency for all the other metadata services. */
+ systemd.services.digitalocean-metadata = {
+ path = [ pkgs.curl ];
+ description = "Get host metadata provided by Digitalocean";
+ script = ''
+ set -eu
+ DO_DELAY_ATTEMPTS=0
+ while ! curl -fsSL -o $RUNTIME_DIRECTORY/v1.json http://169.254.169.254/metadata/v1.json; do
+ DO_DELAY_ATTEMPTS=$((DO_DELAY_ATTEMPTS + 1))
+ if (( $DO_DELAY_ATTEMPTS >= $DO_DELAY_ATTEMPTS_MAX )); then
+ echo "giving up"
+ exit 1
+ fi
+
+ echo "metadata unavailable, trying again in 1s..."
+ sleep 1
+ done
+ chmod 600 $RUNTIME_DIRECTORY/v1.json
+ '';
+ environment = {
+ DO_DELAY_ATTEMPTS_MAX = "10";
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ RuntimeDirectory = "do-metadata";
+ RuntimeDirectoryPreserve = "yes";
+ };
+ unitConfig = {
+ ConditionPathExists = "!${doMetadataFile}";
+ After = [ "network-pre.target" ] ++
+ optional config.networking.dhcpcd.enable "dhcpcd.service" ++
+ optional config.systemd.network.enable "systemd-networkd.service";
+ };
+ };
+
+ /* Fetch the root password from the digital ocean metadata.
+ * There is no specific route for this, so we use jq to get
+ * it from the One Big JSON metadata blob */
+ systemd.services.digitalocean-set-root-password = mkIf cfg.setRootPassword {
+ path = [ pkgs.shadow pkgs.jq ];
+ description = "Set root password provided by Digitalocean";
+ wantedBy = [ "multi-user.target" ];
+ script = ''
+ set -eo pipefail
+ ROOT_PASSWORD=$(jq -er '.auth_key' ${doMetadataFile})
+ echo "root:$ROOT_PASSWORD" | chpasswd
+ mkdir -p /etc/do-metadata/set-root-password
+ '';
+ unitConfig = {
+ ConditionPathExists = "!/etc/do-metadata/set-root-password";
+ Before = optional config.services.openssh.enable "sshd.service";
+ After = [ "digitalocean-metadata.service" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ };
+ };
+
+ /* Set the hostname from Digital Ocean, unless the user configured it in
+ * the NixOS configuration. The cached metadata file isn't used here
+ * because the hostname is a mutable part of the droplet. */
+ systemd.services.digitalocean-set-hostname = mkIf (hostName == "") {
+ path = [ pkgs.curl pkgs.nettools ];
+ description = "Set hostname provided by Digitalocean";
+ wantedBy = [ "network.target" ];
+ script = ''
+ set -e
+ DIGITALOCEAN_HOSTNAME=$(curl -fsSL http://169.254.169.254/metadata/v1/hostname)
+ hostname "$DIGITALOCEAN_HOSTNAME"
+ if [[ ! -e /etc/hostname || -w /etc/hostname ]]; then
+ printf "%s\n" "$DIGITALOCEAN_HOSTNAME" > /etc/hostname
+ fi
+ '';
+ unitConfig = {
+ Before = [ "network.target" ];
+ After = [ "digitalocean-metadata.service" ];
+ Wants = [ "digitalocean-metadata.service" ];
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ };
+ };
+
+ /* Fetch the ssh keys for root from Digital Ocean */
+ systemd.services.digitalocean-ssh-keys = mkIf cfg.setSshKeys {
+ description = "Set root ssh keys provided by Digital Ocean";
+ wantedBy = [ "multi-user.target" ];
+ path = [ pkgs.jq ];
+ script = ''
+ set -e
+ mkdir -m 0700 -p /root/.ssh
+ jq -er '.public_keys[]' ${doMetadataFile} > /root/.ssh/authorized_keys
+ chmod 600 /root/.ssh/authorized_keys
+ '';
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ unitConfig = {
+ ConditionPathExists = "!/root/.ssh/authorized_keys";
+ Before = optional config.services.openssh.enable "sshd.service";
+ After = [ "digitalocean-metadata.service" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ };
+ };
+
+ /* Initialize the RNG by running the entropy-seed script from the
+ * Digital Ocean metadata
+ */
+ systemd.services.digitalocean-entropy-seed = mkIf cfg.seedEntropy {
+ description = "Run the kernel RNG entropy seeding script from the Digital Ocean vendor data";
+ wantedBy = [ "network.target" ];
+ path = [ pkgs.jq pkgs.mpack ];
+ script = ''
+ set -eo pipefail
+ TEMPDIR=$(mktemp -d)
+ jq -er '.vendor_data' ${doMetadataFile} | munpack -tC $TEMPDIR
+ ENTROPY_SEED=$(grep -rl "DigitalOcean Entropy Seed script" $TEMPDIR)
+ ${pkgs.runtimeShell} $ENTROPY_SEED
+ rm -rf $TEMPDIR
+ '';
+ unitConfig = {
+ Before = [ "network.target" ];
+ After = [ "digitalocean-metadata.service" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ };
+ };
+
+ }
+ ];
+ meta.maintainers = with maintainers; [ arianvp eamsden ];
+}
+
diff --git a/nixos/modules/virtualisation/digital-ocean-image.nix b/nixos/modules/virtualisation/digital-ocean-image.nix
new file mode 100644
index 00000000000..b582e235d43
--- /dev/null
+++ b/nixos/modules/virtualisation/digital-ocean-image.nix
@@ -0,0 +1,69 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.virtualisation.digitalOceanImage;
+in
+{
+
+ imports = [ ./digital-ocean-config.nix ];
+
+ options = {
+ virtualisation.digitalOceanImage.diskSize = mkOption {
+ type = with types; int;
+ default = 4096;
+ description = ''
+ Size of disk image. Unit is MB.
+ '';
+ };
+
+ virtualisation.digitalOceanImage.configFile = mkOption {
+ type = with types; nullOr path;
+ default = null;
+ description = ''
+ A path to a configuration file which will be placed at
+ /etc/nixos/configuration.nix and be used when switching
+ to a new configuration. If set to null, a default
+ configuration is used that imports
+ (modulesPath + "/virtualisation/digital-ocean-config.nix").
+ '';
+ };
+
+ virtualisation.digitalOceanImage.compressionMethod = mkOption {
+ type = types.enum [ "gzip" "bzip2" ];
+ default = "gzip";
+ example = "bzip2";
+ description = ''
+ Disk image compression method. Choose bzip2 to generate smaller images that
+ take longer to generate but will consume less metered storage space on your
+ Digital Ocean account.
+ '';
+ };
+ };
+
+ #### implementation
+ config = {
+
+ system.build.digitalOceanImage = import ../../lib/make-disk-image.nix {
+ name = "digital-ocean-image";
+ format = "qcow2";
+ postVM = let
+ compress = {
+ "gzip" = "${pkgs.gzip}/bin/gzip";
+ "bzip2" = "${pkgs.bzip2}/bin/bzip2";
+ }.${cfg.compressionMethod};
+ in ''
+ ${compress} $diskImage
+ '';
+ configFile = if cfg.configFile == null
+ then config.virtualisation.digitalOcean.defaultConfigFile
+ else cfg.configFile;
+ inherit (cfg) diskSize;
+ inherit config lib pkgs;
+ };
+
+ };
+
+ meta.maintainers = with maintainers; [ arianvp eamsden ];
+
+}
diff --git a/nixos/modules/virtualisation/digital-ocean-init.nix b/nixos/modules/virtualisation/digital-ocean-init.nix
new file mode 100644
index 00000000000..02f4de009fa
--- /dev/null
+++ b/nixos/modules/virtualisation/digital-ocean-init.nix
@@ -0,0 +1,95 @@
+{ config, pkgs, lib, ... }:
+with lib;
+let
+ cfg = config.virtualisation.digitalOcean;
+ defaultConfigFile = pkgs.writeText "digitalocean-configuration.nix" ''
+ { modulesPath, lib, ... }:
+ {
+ imports = lib.optional (builtins.pathExists ./do-userdata.nix) ./do-userdata.nix ++ [
+ (modulesPath + "/virtualisation/digital-ocean-config.nix")
+ ];
+ }
+ '';
+in {
+ options.virtualisation.digitalOcean.rebuildFromUserData = mkOption {
+ type = types.bool;
+ default = true;
+ example = true;
+ description = "Whether to reconfigure the system from Digital Ocean user data";
+ };
+ options.virtualisation.digitalOcean.defaultConfigFile = mkOption {
+ type = types.path;
+ default = defaultConfigFile;
+ defaultText = ''
+ The default configuration imports user-data if applicable and
+ (modulesPath + "/virtualisation/digital-ocean-config.nix").
+ '';
+ description = ''
+ A path to a configuration file which will be placed at
+ /etc/nixos/configuration.nix and be used when switching to
+ a new configuration.
+ '';
+ };
+
+ config = {
+ systemd.services.digitalocean-init = mkIf cfg.rebuildFromUserData {
+ description = "Reconfigure the system from Digital Ocean userdata on startup";
+ wantedBy = [ "network-online.target" ];
+ unitConfig = {
+ ConditionPathExists = "!/etc/nixos/do-userdata.nix";
+ After = [ "digitalocean-metadata.service" "network-online.target" ];
+ Requires = [ "digitalocean-metadata.service" ];
+ X-StopOnRemoval = false;
+ };
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ restartIfChanged = false;
+ path = [ pkgs.jq pkgs.gnused pkgs.gnugrep pkgs.systemd config.nix.package config.system.build.nixos-rebuild ];
+ environment = {
+ HOME = "/root";
+ NIX_PATH = concatStringsSep ":" [
+ "/nix/var/nix/profiles/per-user/root/channels/nixos"
+ "nixos-config=/etc/nixos/configuration.nix"
+ "/nix/var/nix/profiles/per-user/root/channels"
+ ];
+ };
+ script = ''
+ set -e
+ echo "attempting to fetch configuration from Digital Ocean user data..."
+ userData=$(mktemp)
+ if jq -er '.user_data' /run/do-metadata/v1.json > $userData; then
+ # If the user-data looks like it could be a nix expression,
+ # copy it over. Also, look for a magic three-hash comment and set
+ # that as the channel.
+ if nix-instantiate --parse $userData > /dev/null; then
+ channels="$(grep '^###' "$userData" | sed 's|###\s*||')"
+ printf "%s" "$channels" | while read channel; do
+ echo "writing channel: $channel"
+ done
+
+ if [[ -n "$channels" ]]; then
+ printf "%s" "$channels" > /root/.nix-channels
+ nix-channel --update
+ fi
+
+ echo "setting configuration from Digital Ocean user data"
+ cp "$userData" /etc/nixos/do-userdata.nix
+ if [[ ! -e /etc/nixos/configuration.nix ]]; then
+ install -m0644 ${cfg.defaultConfigFile} /etc/nixos/configuration.nix
+ fi
+ else
+ echo "user data does not appear to be a Nix expression; ignoring"
+ exit
+ fi
+
+ nixos-rebuild switch
+ else
+ echo "no user data is available"
+ fi
+ '';
+ };
+ };
+ meta.maintainers = with maintainers; [ arianvp eamsden ];
+}
diff --git a/nixos/modules/virtualisation/openvswitch.nix b/nixos/modules/virtualisation/openvswitch.nix
index edec3740230..6b8ad83661f 100644
--- a/nixos/modules/virtualisation/openvswitch.nix
+++ b/nixos/modules/virtualisation/openvswitch.nix
@@ -42,6 +42,9 @@ in {
default = false;
description = ''
Whether to start racoon service for openvswitch.
+ Supported only if openvswitch version is less than 2.6.0.
+ Use virtualisation.vswitch.package = pkgs.openvswitch-lts
+ for a version that supports ipsec over GRE.
'';
};
};
@@ -89,6 +92,13 @@ in {
"${cfg.package}/share/openvswitch/vswitch.ovsschema"
fi
chmod -R +w /var/db/openvswitch
+ if ${cfg.package}/bin/ovsdb-tool needs-conversion /var/db/openvswitch/conf.db | grep -q "yes"
+ then
+ echo "Performing database upgrade"
+ ${cfg.package}/bin/ovsdb-tool convert /var/db/openvswitch/conf.db
+ else
+ echo "Database already up to date"
+ fi
'';
serviceConfig = {
ExecStart =
@@ -133,7 +143,7 @@ in {
};
}
- (mkIf cfg.ipsec {
+ (mkIf (cfg.ipsec && (versionOlder cfg.package.version "2.6.0")) {
services.racoon.enable = true;
services.racoon.configPath = "${runDir}/ipsec/etc/racoon/racoon.conf";
@@ -172,5 +182,4 @@ in {
'';
};
})]));
-
}
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index e313d2b411b..31d332e9f07 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -620,7 +620,7 @@ in
# Wireless won't work in the VM.
networking.wireless.enable = mkVMOverride false;
- networking.connman.enable = mkVMOverride false;
+ services.connman.enable = mkVMOverride false;
# Speed up booting by not waiting for ARP.
networking.dhcpcd.extraConfig = "noarp";
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index a2129ef7076..7945a239f6a 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -28,7 +28,7 @@ in
babeld = handleTest ./babeld.nix {};
bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
beanstalkd = handleTest ./beanstalkd.nix {};
- beegfs = handleTestOn ["x86_64-linux"] ./beegfs.nix {}; # beegfs is unsupported on aarch64
+ bees = handleTest ./bees.nix {};
bind = handleTest ./bind.nix {};
bittorrent = handleTest ./bittorrent.nix {};
#blivet = handleTest ./blivet.nix {}; # broken since 2017-07024
@@ -206,7 +206,6 @@ in
openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
orangefs = handleTest ./orangefs.nix {};
os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
- osquery = handleTest ./osquery.nix {};
osrm-backend = handleTest ./osrm-backend.nix {};
overlayfs = handleTest ./overlayfs.nix {};
packagekit = handleTest ./packagekit.nix {};
diff --git a/nixos/tests/beegfs.nix b/nixos/tests/beegfs.nix
deleted file mode 100644
index 3465272f559..00000000000
--- a/nixos/tests/beegfs.nix
+++ /dev/null
@@ -1,115 +0,0 @@
-import ./make-test.nix ({ ... } :
-
-let
- connAuthFile="beegfs/auth-def.key";
-
- client = { pkgs, ... } : {
- networking.firewall.enable = false;
- services.beegfsEnable = true;
- services.beegfs.default = {
- mgmtdHost = "mgmt";
- connAuthFile = "/etc/${connAuthFile}";
- client = {
- mount = false;
- enable = true;
- };
- };
-
- fileSystems = pkgs.lib.mkVMOverride # FIXME: this should be creatd by the module
- [ { mountPoint = "/beegfs";
- device = "default";
- fsType = "beegfs";
- options = [ "cfgFile=/etc/beegfs/client-default.conf" "_netdev" ];
- }
- ];
-
- environment.etc.${connAuthFile} = {
- enable = true;
- text = "ThisIsALousySecret";
- mode = "0600";
- };
- };
-
-
- server = service : { pkgs, ... } : {
- networking.firewall.enable = false;
- boot.initrd.postDeviceCommands = ''
- ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L data /dev/vdb
- '';
-
- virtualisation.emptyDiskImages = [ 4096 ];
-
- fileSystems = pkgs.lib.mkVMOverride
- [ { mountPoint = "/data";
- device = "/dev/disk/by-label/data";
- fsType = "ext4";
- }
- ];
-
- environment.systemPackages = with pkgs; [ beegfs ];
- environment.etc.${connAuthFile} = {
- enable = true;
- text = "ThisIsALousySecret";
- mode = "0600";
- };
-
- services.beegfsEnable = true;
- services.beegfs.default = {
- mgmtdHost = "mgmt";
- connAuthFile = "/etc/${connAuthFile}";
- ${service} = {
- enable = true;
- storeDir = "/data";
- };
- };
- };
-
-in
-{
- name = "beegfs";
-
- nodes = {
- meta = server "meta";
- mgmt = server "mgmtd";
- storage1 = server "storage";
- storage2 = server "storage";
- client1 = client;
- client2 = client;
- };
-
- testScript = ''
- # Initalize the data directories
- $mgmt->waitForUnit("default.target");
- $mgmt->succeed("beegfs-setup-mgmtd -C -f -p /data");
- $mgmt->succeed("systemctl start beegfs-mgmtd-default");
-
- $meta->waitForUnit("default.target");
- $meta->succeed("beegfs-setup-meta -C -f -s 1 -p /data");
- $meta->succeed("systemctl start beegfs-meta-default");
-
- $storage1->waitForUnit("default.target");
- $storage1->succeed("beegfs-setup-storage -C -f -s 1 -i 1 -p /data");
- $storage1->succeed("systemctl start beegfs-storage-default");
-
- $storage2->waitForUnit("default.target");
- $storage2->succeed("beegfs-setup-storage -C -f -s 2 -i 2 -p /data");
- $storage2->succeed("systemctl start beegfs-storage-default");
-
- #
-
- # Basic test
- $client1->waitForUnit("beegfs.mount");
- $client1->succeed("beegfs-check-servers-default");
- $client1->succeed("echo test > /beegfs/test");
- $client2->waitForUnit("beegfs.mount");
- $client2->succeed("test -e /beegfs/test");
- $client2->succeed("cat /beegfs/test | grep test");
-
- # test raid0/stripping
- $client1->succeed("dd if=/dev/urandom bs=1M count=10 of=/beegfs/striped");
- $client2->succeed("cat /beegfs/striped > /dev/null");
-
- # check if fs is still healthy
- $client1->succeed("beegfs-fsck-default --checkfs");
- '';
-})
diff --git a/nixos/tests/bees.nix b/nixos/tests/bees.nix
index 6f68c2f834f..6e6a9c3446b 100644
--- a/nixos/tests/bees.nix
+++ b/nixos/tests/bees.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, pkgs, ... }:
{
name = "bees";
@@ -29,27 +29,34 @@ import ./make-test.nix ({ lib, ... }:
testScript =
let
- withRetry = content: maxTests: sleepTime: ''
- max_tests=${lib.escapeShellArg maxTests}; sleep_time=${lib.escapeShellArg sleepTime}; for ((i=0; i1 && $3 == 0 { count++ } END { print count }') -eq 0 ]]
'';
- someContentIsShared = loc: ''[[ $(btrfs fi du -s --raw ${lib.escapeShellArg loc}/dedup-me-{1,2} | awk 'BEGIN { count=0; } NR>1 && $3 == 0 { count++ } END { print count }') -eq 0 ]]'';
in ''
# shut down the instance started by systemd at boot, so we can test our test procedure
- $machine->succeed("systemctl stop beesd\@aux1.service");
+ machine.succeed("systemctl stop beesd@aux1.service")
- $machine->succeed("dd if=/dev/urandom of=/aux1/dedup-me-1 bs=1M count=8");
- $machine->succeed("cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2");
- $machine->succeed("cp --reflink=never /aux1/* /aux2/");
- $machine->succeed("sync");
- $machine->fail(q(${someContentIsShared "/aux1"}));
- $machine->fail(q(${someContentIsShared "/aux2"}));
- $machine->succeed("systemctl start beesd\@aux1.service");
+ machine.succeed(
+ "dd if=/dev/urandom of=/aux1/dedup-me-1 bs=1M count=8",
+ "cp --reflink=never /aux1/dedup-me-1 /aux1/dedup-me-2",
+ "cp --reflink=never /aux1/* /aux2/",
+ "sync",
+ )
+ machine.fail(
+ "${someContentIsShared "/aux1"}",
+ "${someContentIsShared "/aux2"}",
+ )
+ machine.succeed("systemctl start beesd@aux1.service")
# assert that "Set Shared" column is nonzero
- $machine->succeed(q(${withRetry (someContentIsShared "/aux1") 20 2}));
- $machine->fail(q(${someContentIsShared "/aux2"}));
+ machine.wait_until_succeeds(
+ "${someContentIsShared "/aux1"}",
+ )
+ machine.fail("${someContentIsShared "/aux2"}")
# assert that 16MB hash table size requested was honored
- $machine->succeed(q([[ $(stat -c %s /aux1/.beeshome/beeshash.dat) = $(( 16 * 1024 * 1024)) ]]))
+ machine.succeed(
+ "[[ $(stat -c %s /aux1/.beeshome/beeshash.dat) = $(( 16 * 1024 * 1024)) ]]"
+ )
'';
})
diff --git a/nixos/tests/codimd.nix b/nixos/tests/codimd.nix
index 562f6f24f99..b1acbf4a832 100644
--- a/nixos/tests/codimd.nix
+++ b/nixos/tests/codimd.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
{
name = "codimd";
@@ -35,20 +35,18 @@ import ./make-test.nix ({ pkgs, lib, ... }:
};
testScript = ''
- startAll();
+ start_all()
- subtest "CodiMD sqlite", sub {
- $codimdSqlite->waitForUnit("codimd.service");
- $codimdSqlite->waitForOpenPort(3000);
- $codimdSqlite->waitUntilSucceeds("curl -sSf http://localhost:3000/new");
- };
+ with subtest("CodiMD sqlite"):
+ codimdSqlite.wait_for_unit("codimd.service")
+ codimdSqlite.wait_for_open_port(3000)
+ codimdSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
- subtest "CodiMD postgres", sub {
- $codimdPostgres->waitForUnit("postgresql.service");
- $codimdPostgres->waitForUnit("codimd.service");
- $codimdPostgres->waitForOpenPort(5432);
- $codimdPostgres->waitForOpenPort(3000);
- $codimdPostgres->waitUntilSucceeds("curl -sSf http://localhost:3000/new");
- };
+ with subtest("CodiMD postgres"):
+ codimdPostgres.wait_for_unit("postgresql.service")
+ codimdPostgres.wait_for_unit("codimd.service")
+ codimdPostgres.wait_for_open_port(5432)
+ codimdPostgres.wait_for_open_port(3000)
+ codimdPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
'';
})
diff --git a/nixos/tests/docker-registry.nix b/nixos/tests/docker-registry.nix
index 8936421072a..2928fd8141a 100644
--- a/nixos/tests/docker-registry.nix
+++ b/nixos/tests/docker-registry.nix
@@ -1,6 +1,6 @@
# This test runs docker-registry and check if it works
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "docker-registry";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ globin ma27 ironpinguin ];
@@ -28,36 +28,34 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- $client1->start();
- $client1->waitForUnit("docker.service");
- $client1->succeed("tar cv --files-from /dev/null | docker import - scratch");
- $client1->succeed("docker tag scratch registry:8080/scratch");
+ client1.start()
+ client1.wait_for_unit("docker.service")
+ client1.succeed("tar cv --files-from /dev/null | docker import - scratch")
+ client1.succeed("docker tag scratch registry:8080/scratch")
- $registry->start();
- $registry->waitForUnit("docker-registry.service");
- $registry->waitForOpenPort("8080");
- $client1->succeed("docker push registry:8080/scratch");
+ registry.start()
+ registry.wait_for_unit("docker-registry.service")
+ registry.wait_for_open_port("8080")
+ client1.succeed("docker push registry:8080/scratch")
- $client2->start();
- $client2->waitForUnit("docker.service");
- $client2->succeed("docker pull registry:8080/scratch");
- $client2->succeed("docker images | grep scratch");
+ client2.start()
+ client2.wait_for_unit("docker.service")
+ client2.succeed("docker pull registry:8080/scratch")
+ client2.succeed("docker images | grep scratch")
- $client2->succeed(
- 'curl -fsS -X DELETE registry:8080/v2/scratch/manifests/$(curl -fsS -I -H"Accept: application/vnd.docker.distribution.manifest.v2+json" registry:8080/v2/scratch/manifests/latest | grep Docker-Content-Digest | sed -e \'s/Docker-Content-Digest: //\' | tr -d \'\r\')'
- );
+ client2.succeed(
+ "curl -fsS -X DELETE registry:8080/v2/scratch/manifests/$(curl -fsS -I -H\"Accept: application/vnd.docker.distribution.manifest.v2+json\" registry:8080/v2/scratch/manifests/latest | grep Docker-Content-Digest | sed -e 's/Docker-Content-Digest: //' | tr -d '\\r')"
+ )
- $registry->systemctl("start docker-registry-garbage-collect.service");
- $registry->waitUntilFails("systemctl status docker-registry-garbage-collect.service");
- $registry->waitForUnit("docker-registry.service");
+ registry.systemctl("start docker-registry-garbage-collect.service")
+ registry.wait_until_fails("systemctl status docker-registry-garbage-collect.service")
+ registry.wait_for_unit("docker-registry.service")
- $registry->fail(
- 'ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data'
- );
+ registry.fail("ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data")
- $client1->succeed("docker push registry:8080/scratch");
- $registry->succeed(
- 'ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data'
- );
+ client1.succeed("docker push registry:8080/scratch")
+ registry.succeed(
+ "ls -l /var/lib/docker-registry/docker/registry/v2/blobs/sha256/*/*/data"
+ )
'';
})
diff --git a/nixos/tests/etcd-cluster.nix b/nixos/tests/etcd-cluster.nix
index 43fde7d5920..19c5d915823 100644
--- a/nixos/tests/etcd-cluster.nix
+++ b/nixos/tests/etcd-cluster.nix
@@ -1,6 +1,6 @@
# This test runs simple etcd cluster
-import ./make-test.nix ({ pkgs, ... } : let
+import ./make-test-python.nix ({ pkgs, ... } : let
runWithOpenSSL = file: cmd: pkgs.runCommand file {
buildInputs = [ pkgs.openssl ];
@@ -129,29 +129,26 @@ in {
};
testScript = ''
- subtest "should start etcd cluster", sub {
- $node1->start();
- $node2->start();
- $node1->waitForUnit("etcd.service");
- $node2->waitForUnit("etcd.service");
- $node2->waitUntilSucceeds("etcdctl cluster-health");
- $node1->succeed("etcdctl set /foo/bar 'Hello world'");
- $node2->succeed("etcdctl get /foo/bar | grep 'Hello world'");
- };
+ with subtest("should start etcd cluster"):
+ node1.start()
+ node2.start()
+ node1.wait_for_unit("etcd.service")
+ node2.wait_for_unit("etcd.service")
+ node2.wait_until_succeeds("etcdctl cluster-health")
+ node1.succeed("etcdctl set /foo/bar 'Hello world'")
+ node2.succeed("etcdctl get /foo/bar | grep 'Hello world'")
- subtest "should add another member", sub {
- $node1->waitUntilSucceeds("etcdctl member add node3 https://node3:2380");
- $node3->start();
- $node3->waitForUnit("etcd.service");
- $node3->waitUntilSucceeds("etcdctl member list | grep 'node3'");
- $node3->succeed("etcdctl cluster-health");
- };
+ with subtest("should add another member"):
+ node1.wait_until_succeeds("etcdctl member add node3 https://node3:2380")
+ node3.start()
+ node3.wait_for_unit("etcd.service")
+ node3.wait_until_succeeds("etcdctl member list | grep 'node3'")
+ node3.succeed("etcdctl cluster-health")
- subtest "should survive member crash", sub {
- $node3->crash;
- $node1->succeed("etcdctl cluster-health");
- $node1->succeed("etcdctl set /foo/bar 'Hello degraded world'");
- $node1->succeed("etcdctl get /foo/bar | grep 'Hello degraded world'");
- };
+ with subtest("should survive member crash"):
+ node3.crash()
+ node1.succeed("etcdctl cluster-health")
+ node1.succeed("etcdctl set /foo/bar 'Hello degraded world'")
+ node1.succeed("etcdctl get /foo/bar | grep 'Hello degraded world'")
'';
})
diff --git a/nixos/tests/etcd.nix b/nixos/tests/etcd.nix
index 6c23b31779b..84272434384 100644
--- a/nixos/tests/etcd.nix
+++ b/nixos/tests/etcd.nix
@@ -1,6 +1,6 @@
# This test runs simple etcd node
-import ./make-test.nix ({ pkgs, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "etcd";
meta = with pkgs.stdenv.lib.maintainers; {
@@ -14,14 +14,12 @@ import ./make-test.nix ({ pkgs, ... } : {
};
testScript = ''
- subtest "should start etcd node", sub {
- $node->start();
- $node->waitForUnit("etcd.service");
- };
+ with subtest("should start etcd node"):
+ node.start()
+ node.wait_for_unit("etcd.service")
- subtest "should write and read some values to etcd", sub {
- $node->succeed("etcdctl set /foo/bar 'Hello world'");
- $node->succeed("etcdctl get /foo/bar | grep 'Hello world'");
- }
+ with subtest("should write and read some values to etcd"):
+ node.succeed("etcdctl set /foo/bar 'Hello world'")
+ node.succeed("etcdctl get /foo/bar | grep 'Hello world'")
'';
})
diff --git a/nixos/tests/gitolite.nix b/nixos/tests/gitolite.nix
index 690e456ed7c..a928645bd80 100644
--- a/nixos/tests/gitolite.nix
+++ b/nixos/tests/gitolite.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...}:
+import ./make-test-python.nix ({ pkgs, ...}:
let
adminPrivateKey = pkgs.writeText "id_ed25519" ''
@@ -43,7 +43,7 @@ let
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJZNonUP1ePHLrvn0W9D2hdN6zWWZYFyJc+QR6pOKQEw bob@client
'';
- gitoliteAdminConfSnippet = ''
+ gitoliteAdminConfSnippet = pkgs.writeText "gitolite-admin-conf-snippet" ''
repo alice-project
RW+ = alice
'';
@@ -85,55 +85,54 @@ in
};
testScript = ''
- startAll;
+ start_all()
- subtest "can setup ssh keys on system", sub {
- $client->mustSucceed("mkdir -p ~root/.ssh");
- $client->mustSucceed("cp ${adminPrivateKey} ~root/.ssh/id_ed25519");
- $client->mustSucceed("chmod 600 ~root/.ssh/id_ed25519");
+ with subtest("can setup ssh keys on system"):
+ client.succeed(
+ "mkdir -p ~root/.ssh",
+ "cp ${adminPrivateKey} ~root/.ssh/id_ed25519",
+ "chmod 600 ~root/.ssh/id_ed25519",
+ )
+ client.succeed(
+ "sudo -u alice mkdir -p ~alice/.ssh",
+ "sudo -u alice cp ${alicePrivateKey} ~alice/.ssh/id_ed25519",
+ "sudo -u alice chmod 600 ~alice/.ssh/id_ed25519",
+ )
+ client.succeed(
+ "sudo -u bob mkdir -p ~bob/.ssh",
+ "sudo -u bob cp ${bobPrivateKey} ~bob/.ssh/id_ed25519",
+ "sudo -u bob chmod 600 ~bob/.ssh/id_ed25519",
+ )
- $client->mustSucceed("sudo -u alice mkdir -p ~alice/.ssh");
- $client->mustSucceed("sudo -u alice cp ${alicePrivateKey} ~alice/.ssh/id_ed25519");
- $client->mustSucceed("sudo -u alice chmod 600 ~alice/.ssh/id_ed25519");
+ with subtest("gitolite server starts"):
+ server.wait_for_unit("gitolite-init.service")
+ server.wait_for_unit("sshd.service")
+ client.succeed("ssh gitolite@server info")
- $client->mustSucceed("sudo -u bob mkdir -p ~bob/.ssh");
- $client->mustSucceed("sudo -u bob cp ${bobPrivateKey} ~bob/.ssh/id_ed25519");
- $client->mustSucceed("sudo -u bob chmod 600 ~bob/.ssh/id_ed25519");
- };
+ with subtest("admin can clone and configure gitolite-admin.git"):
+ client.succeed(
+ "git clone gitolite@server:gitolite-admin.git",
+ "git config --global user.name 'System Administrator'",
+ "git config --global user.email root\@domain.example",
+ "cp ${alicePublicKey} gitolite-admin/keydir/alice.pub",
+ "cp ${bobPublicKey} gitolite-admin/keydir/bob.pub",
+ "(cd gitolite-admin && git add . && git commit -m 'Add keys for alice, bob' && git push)",
+ "cat ${gitoliteAdminConfSnippet} >> gitolite-admin/conf/gitolite.conf",
+ "(cd gitolite-admin && git add . && git commit -m 'Add repo for alice' && git push)",
+ )
- subtest "gitolite server starts", sub {
- $server->waitForUnit("gitolite-init.service");
- $server->waitForUnit("sshd.service");
- $client->mustSucceed('ssh gitolite@server info');
- };
+ with subtest("non-admins cannot clone gitolite-admin.git"):
+ client.fail("sudo -i -u alice git clone gitolite@server:gitolite-admin.git")
+ client.fail("sudo -i -u bob git clone gitolite@server:gitolite-admin.git")
- subtest "admin can clone and configure gitolite-admin.git", sub {
- $client->mustSucceed('git clone gitolite@server:gitolite-admin.git');
- $client->mustSucceed("git config --global user.name 'System Administrator'");
- $client->mustSucceed("git config --global user.email root\@domain.example");
- $client->mustSucceed("cp ${alicePublicKey} gitolite-admin/keydir/alice.pub");
- $client->mustSucceed("cp ${bobPublicKey} gitolite-admin/keydir/bob.pub");
- $client->mustSucceed('(cd gitolite-admin && git add . && git commit -m "Add keys for alice, bob" && git push)');
- $client->mustSucceed("printf '${gitoliteAdminConfSnippet}' >> gitolite-admin/conf/gitolite.conf");
- $client->mustSucceed('(cd gitolite-admin && git add . && git commit -m "Add repo for alice" && git push)');
- };
+ with subtest("non-admins can clone testing.git"):
+ client.succeed("sudo -i -u alice git clone gitolite@server:testing.git")
+ client.succeed("sudo -i -u bob git clone gitolite@server:testing.git")
- subtest "non-admins cannot clone gitolite-admin.git", sub {
- $client->mustFail('sudo -i -u alice git clone gitolite@server:gitolite-admin.git');
- $client->mustFail('sudo -i -u bob git clone gitolite@server:gitolite-admin.git');
- };
+ with subtest("alice can clone alice-project.git"):
+ client.succeed("sudo -i -u alice git clone gitolite@server:alice-project.git")
- subtest "non-admins can clone testing.git", sub {
- $client->mustSucceed('sudo -i -u alice git clone gitolite@server:testing.git');
- $client->mustSucceed('sudo -i -u bob git clone gitolite@server:testing.git');
- };
-
- subtest "alice can clone alice-project.git", sub {
- $client->mustSucceed('sudo -i -u alice git clone gitolite@server:alice-project.git');
- };
-
- subtest "bob cannot clone alice-project.git", sub {
- $client->mustFail('sudo -i -u bob git clone gitolite@server:alice-project.git');
- };
+ with subtest("bob cannot clone alice-project.git"):
+ client.fail("sudo -i -u bob git clone gitolite@server:alice-project.git")
'';
})
diff --git a/nixos/tests/google-oslogin/default.nix b/nixos/tests/google-oslogin/default.nix
index 3b84bba3f98..1977e92e987 100644
--- a/nixos/tests/google-oslogin/default.nix
+++ b/nixos/tests/google-oslogin/default.nix
@@ -1,7 +1,14 @@
-import ../make-test.nix ({ pkgs, ... } :
+import ../make-test-python.nix ({ pkgs, ... } :
let
inherit (import ./../ssh-keys.nix pkgs)
snakeOilPrivateKey snakeOilPublicKey;
+
+ # don't check host keys or known hosts, use the snakeoil ssh key
+ ssh-config = builtins.toFile "ssh.conf" ''
+ UserKnownHostsFile=/dev/null
+ StrictHostKeyChecking=no
+ IdentityFile=~/.ssh/id_snakeoil
+ '';
in {
name = "google-oslogin";
meta = with pkgs.stdenv.lib.maintainers; {
@@ -15,38 +22,49 @@ in {
client = { ... }: {};
};
testScript = ''
- startAll;
+ start_all()
- $server->waitForUnit("mock-google-metadata.service");
- $server->waitForOpenPort(80);
+ server.wait_for_unit("mock-google-metadata.service")
+ server.wait_for_open_port(80)
# mockserver should return a non-expired ssh key for both mockuser and mockadmin
- $server->succeed('${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockuser | grep -q "${snakeOilPublicKey}"');
- $server->succeed('${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockadmin | grep -q "${snakeOilPublicKey}"');
+ server.succeed(
+ '${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockuser | grep -q "${snakeOilPublicKey}"'
+ )
+ server.succeed(
+ '${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockadmin | grep -q "${snakeOilPublicKey}"'
+ )
- # install snakeoil ssh key on the client
- $client->succeed("mkdir -p ~/.ssh");
- $client->succeed("cat ${snakeOilPrivateKey} > ~/.ssh/id_snakeoil");
- $client->succeed("chmod 600 ~/.ssh/id_snakeoil");
+ # install snakeoil ssh key on the client, and provision .ssh/config file
+ client.succeed("mkdir -p ~/.ssh")
+ client.succeed(
+ "cat ${snakeOilPrivateKey} > ~/.ssh/id_snakeoil"
+ )
+ client.succeed("chmod 600 ~/.ssh/id_snakeoil")
+ client.succeed("cp ${ssh-config} ~/.ssh/config")
- $client->waitForUnit("network.target");
- $server->waitForUnit("sshd.service");
+ client.wait_for_unit("network.target")
+ server.wait_for_unit("sshd.service")
# we should not be able to connect as non-existing user
- $client->fail("ssh -o User=ghost -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
+ client.fail("ssh ghost@server 'true'")
# we should be able to connect as mockuser
- $client->succeed("ssh -o User=mockuser -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
+ client.succeed("ssh mockuser@server 'true'")
# but we shouldn't be able to sudo
- $client->fail("ssh -o User=mockuser -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'");
+ client.fail(
+ "ssh mockuser@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'"
+ )
# we should also be able to log in as mockadmin
- $client->succeed("ssh -o User=mockadmin -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
+ client.succeed("ssh mockadmin@server 'true'")
# pam_oslogin_admin.so should now have generated a sudoers file
- $server->succeed("find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/mockadmin'");
+ server.succeed("find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/mockadmin'")
# and we should be able to sudo
- $client->succeed("ssh -o User=mockadmin -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'");
+ client.succeed(
+ "ssh mockadmin@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'"
+ )
'';
})
diff --git a/nixos/tests/gotify-server.nix b/nixos/tests/gotify-server.nix
index 0ffc3138d5a..c6e00686aed 100644
--- a/nixos/tests/gotify-server.nix
+++ b/nixos/tests/gotify-server.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ...} : {
+import ./make-test-python.nix ({ pkgs, lib, ...} : {
name = "gotify-server";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ma27 ];
@@ -14,32 +14,32 @@ import ./make-test.nix ({ pkgs, lib, ...} : {
};
testScript = ''
- startAll;
+ machine.start()
- $machine->waitForUnit("gotify-server");
- $machine->waitForOpenPort(3000);
+ machine.wait_for_unit("gotify-server.service")
+ machine.wait_for_open_port(3000)
- my $token = $machine->succeed(
- "curl --fail -sS -X POST localhost:3000/application -F name=nixos " .
- '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" ' .
- '| jq .token | xargs echo -n'
- );
+ token = machine.succeed(
+ "curl --fail -sS -X POST localhost:3000/application -F name=nixos "
+ + '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" '
+ + "| jq .token | xargs echo -n"
+ )
- my $usertoken = $machine->succeed(
- "curl --fail -sS -X POST localhost:3000/client -F name=nixos " .
- '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" ' .
- '| jq .token | xargs echo -n'
- );
+ usertoken = machine.succeed(
+ "curl --fail -sS -X POST localhost:3000/client -F name=nixos "
+ + '-H "Authorization: Basic $(echo -ne "admin:admin" | base64 --wrap 0)" '
+ + "| jq .token | xargs echo -n"
+ )
- $machine->succeed(
- "curl --fail -sS -X POST 'localhost:3000/message?token=$token' -H 'Accept: application/json' " .
- '-F title=Gotify -F message=Works'
- );
+ machine.succeed(
+ f"curl --fail -sS -X POST 'localhost:3000/message?token={token}' -H 'Accept: application/json' "
+ + "-F title=Gotify -F message=Works"
+ )
- my $title = $machine->succeed(
- "curl --fail -sS 'localhost:3000/message?since=0&token=$usertoken' | jq '.messages|.[0]|.title' | xargs echo -n"
- );
+ title = machine.succeed(
+ f"curl --fail -sS 'localhost:3000/message?since=0&token={usertoken}' | jq '.messages|.[0]|.title' | xargs echo -n"
+ )
- $title eq "Gotify" or die "Wrong title ($title), expected 'Gotify'!";
+ assert title == "Gotify"
'';
})
diff --git a/nixos/tests/graylog.nix b/nixos/tests/graylog.nix
index dc54afd1d26..2d22012fa7c 100644
--- a/nixos/tests/graylog.nix
+++ b/nixos/tests/graylog.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }: {
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "graylog";
meta.maintainers = with lib.maintainers; [ ma27 ];
@@ -64,48 +64,52 @@ import ./make-test.nix ({ pkgs, lib, ... }: {
facility = "Test";
});
in ''
- $machine->start;
- $machine->waitForUnit("graylog.service");
- $machine->waitForOpenPort(9000);
- $machine->succeed("curl -sSfL http://127.0.0.1:9000/");
+ machine.start()
+ machine.wait_for_unit("graylog.service")
+ machine.wait_for_open_port(9000)
+ machine.succeed("curl -sSfL http://127.0.0.1:9000/")
- my $session = $machine->succeed("curl -X POST "
- . "-sSfL http://127.0.0.1:9000/api/system/sessions "
- . "-d \$(cat ${payloads.login}) "
- . "-H 'Content-Type: application/json' "
- . "-H 'Accept: application/json' "
- . "-H 'x-requested-by: cli' "
- . "| jq .session_id | xargs echo"
- );
+ session = machine.succeed(
+ "curl -X POST "
+ + "-sSfL http://127.0.0.1:9000/api/system/sessions "
+ + "-d $(cat ${payloads.login}) "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'Accept: application/json' "
+ + "-H 'x-requested-by: cli' "
+ + "| jq .session_id | xargs echo"
+ ).rstrip()
- chomp($session);
+ machine.succeed(
+ "curl -X POST "
+ + f"-sSfL http://127.0.0.1:9000/api/system/inputs -u {session}:session "
+ + '-d $(cat ${payloads.input} | sed -e "s,@node@,$(cat /var/lib/graylog/server/node-id),") '
+ + "-H 'Accept: application/json' "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'x-requested-by: cli' "
+ )
- $machine->succeed("curl -X POST "
- . "-sSfL http://127.0.0.1:9000/api/system/inputs -u $session:session "
- . "-d \$(cat ${payloads.input} | sed -e \"s,\@node\@,\$(cat /var/lib/graylog/server/node-id),\") "
- . "-H 'Accept: application/json' "
- . "-H 'Content-Type: application/json' "
- . "-H 'x-requested-by: cli' "
- );
+ machine.wait_until_succeeds(
+ "test \"$(curl -sSfL 'http://127.0.0.1:9000/api/cluster/inputstates' "
+ + f"-u {session}:session "
+ + "-H 'Accept: application/json' "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'x-requested-by: cli'"
+ + "| jq 'to_entries[]|.value|.[0]|.state' | xargs echo"
+ + ')" = "RUNNING"'
+ )
- $machine->waitUntilSucceeds("test \"\$(curl -sSfL 'http://127.0.0.1:9000/api/cluster/inputstates' "
- . "-u $session:session "
- . "-H 'Accept: application/json' "
- . "-H 'Content-Type: application/json' "
- . "-H 'x-requested-by: cli'"
- . "| jq 'to_entries[]|.value|.[0]|.state' | xargs echo"
- . ")\" = \"RUNNING\""
- );
+ machine.succeed(
+ "echo -n $(cat ${payloads.gelf_message}) | nc -w10 -u 127.0.0.1 12201"
+ )
- $machine->succeed("echo -n \$(cat ${payloads.gelf_message}) | nc -w10 -u 127.0.0.1 12201");
-
- $machine->succeed("test \"\$(curl -X GET "
- . "-sSfL 'http://127.0.0.1:9000/api/search/universal/relative?query=*' "
- . "-u $session:session "
- . "-H 'Accept: application/json' "
- . "-H 'Content-Type: application/json' "
- . "-H 'x-requested-by: cli'"
- . " | jq '.total_results' | xargs echo)\" = \"1\""
- );
+ machine.succeed(
+ 'test "$(curl -X GET '
+ + "-sSfL 'http://127.0.0.1:9000/api/search/universal/relative?query=*' "
+ + f"-u {session}:session "
+ + "-H 'Accept: application/json' "
+ + "-H 'Content-Type: application/json' "
+ + "-H 'x-requested-by: cli'"
+ + ' | jq \'.total_results\' | xargs echo)" = "1"'
+ )
'';
})
diff --git a/nixos/tests/influxdb.nix b/nixos/tests/influxdb.nix
index 61201202204..04ef8046101 100644
--- a/nixos/tests/influxdb.nix
+++ b/nixos/tests/influxdb.nix
@@ -1,6 +1,6 @@
# This test runs influxdb and checks if influxdb is up and running
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "influxdb";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ offline ];
@@ -9,25 +9,32 @@ import ./make-test.nix ({ pkgs, ...} : {
nodes = {
one = { ... }: {
services.influxdb.enable = true;
+ environment.systemPackages = [ pkgs.httpie ];
};
};
testScript = ''
- startAll;
-
- $one->waitForUnit("influxdb.service");
+ import shlex
+
+ start_all()
+
+ one.wait_for_unit("influxdb.service")
# create database
- $one->succeed(q~
- curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE test"
- ~);
+ one.succeed(
+ "curl -XPOST http://localhost:8086/query --data-urlencode 'q=CREATE DATABASE test'"
+ )
# write some points and run simple query
- $one->succeed(q~
- curl -XPOST 'http://localhost:8086/write?db=test' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
- ~);
- $one->succeed(q~
- curl -GET 'http://localhost:8086/query' --data-urlencode "db=test" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west'" | grep "0\.64"
- ~);
+ out = one.succeed(
+ "curl -XPOST 'http://localhost:8086/write?db=test' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'"
+ )
+
+ qv = "SELECT value FROM cpu_load_short WHERE region='us-west'"
+ cmd = f'curl -GET "http://localhost:8086/query?db=test" --data-urlencode {shlex.quote("q="+ qv)}'
+ out = one.succeed(cmd)
+
+ assert "2015-06-11T20:46:02Z" in out
+ assert "0.64" in out
'';
})
diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix
index a6eec411ff2..cd64ff51287 100644
--- a/nixos/tests/jenkins.nix
+++ b/nixos/tests/jenkins.nix
@@ -3,7 +3,7 @@
# 2. jenkins user can be extended on both master and slave
# 3. jenkins service not started on slave node
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "jenkins";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ bjornfor coconnor domenkozar eelco ];
@@ -33,18 +33,17 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $master->waitForUnit("jenkins");
+ master.wait_for_unit("jenkins")
- $master->mustSucceed("curl http://localhost:8080 | grep 'Authentication required'");
+ assert "Authentication required" in master.succeed("curl http://localhost:8080")
- print $master->execute("sudo -u jenkins groups");
- $master->mustSucceed("sudo -u jenkins groups | grep jenkins | grep users");
+ for host in master, slave:
+ groups = host.succeed("sudo -u jenkins groups")
+ assert "jenkins" in groups
+ assert "users" in groups
- print $slave->execute("sudo -u jenkins groups");
- $slave->mustSucceed("sudo -u jenkins groups | grep jenkins | grep users");
-
- $slave->mustFail("systemctl is-enabled jenkins.service");
+ slave.fail("systemctl is-enabled jenkins.service")
'';
})
diff --git a/nixos/tests/minio.nix b/nixos/tests/minio.nix
index f1218b53771..3b061974267 100644
--- a/nixos/tests/minio.nix
+++ b/nixos/tests/minio.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
let
accessKey = "BKIKJAA5BMMU2RHO6IBB";
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
@@ -18,7 +18,7 @@ let
sio.seek(0)
minioClient.put_object('test-bucket', 'test.txt', sio, sio_len, content_type='text/plain')
'';
- in {
+in {
name = "minio";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ bachp ];
@@ -37,19 +37,19 @@ let
};
};
- testScript =
- ''
- startAll;
- $machine->waitForUnit("minio.service");
- $machine->waitForOpenPort(9000);
+ testScript = ''
+ start_all()
+ machine.wait_for_unit("minio.service")
+ machine.wait_for_open_port(9000)
- # Create a test bucket on the server
- $machine->succeed("mc config host add minio http://localhost:9000 ${accessKey} ${secretKey} S3v4");
- $machine->succeed("mc mb minio/test-bucket");
- $machine->succeed("${minioPythonScript}");
- $machine->succeed("mc ls minio") =~ /test-bucket/ or die;
- $machine->succeed("mc cat minio/test-bucket/test.txt") =~ /Test from Python/ or die;
- $machine->shutdown;
-
- '';
+ # Create a test bucket on the server
+ machine.succeed(
+ "mc config host add minio http://localhost:9000 ${accessKey} ${secretKey} S3v4"
+ )
+ machine.succeed("mc mb minio/test-bucket")
+ machine.succeed("${minioPythonScript}")
+ assert "test-bucket" in machine.succeed("mc ls minio")
+ assert "Test from Python" in machine.succeed("mc cat minio/test-bucket/test.txt")
+ machine.shutdown()
+ '';
})
diff --git a/nixos/tests/mysql-backup.nix b/nixos/tests/mysql-backup.nix
index 81482dfef7e..a0595e4d553 100644
--- a/nixos/tests/mysql-backup.nix
+++ b/nixos/tests/mysql-backup.nix
@@ -1,5 +1,5 @@
# Test whether mysqlBackup option works
-import ./make-test.nix ({ pkgs, ... } : {
+import ./make-test-python.nix ({ pkgs, ... } : {
name = "mysql-backup";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ rvl ];
@@ -20,31 +20,37 @@ import ./make-test.nix ({ pkgs, ... } : {
};
};
- testScript =
- '' startAll;
+ testScript = ''
+ start_all()
- # Delete backup file that may be left over from a previous test run.
- # This is not needed on Hydra but useful for repeated local test runs.
- $master->execute("rm -f /var/backup/mysql/testdb.gz");
+ # Delete backup file that may be left over from a previous test run.
+ # This is not needed on Hydra but useful for repeated local test runs.
+ master.execute("rm -f /var/backup/mysql/testdb.gz")
- # Need to have mysql started so that it can be populated with data.
- $master->waitForUnit("mysql.service");
+ # Need to have mysql started so that it can be populated with data.
+ master.wait_for_unit("mysql.service")
- # Wait for testdb to be fully populated (5 rows).
- $master->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+ # Wait for testdb to be fully populated (5 rows).
+ master.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
- # Do a backup and wait for it to start
- $master->startJob("mysql-backup.service");
- $master->waitForJob("mysql-backup.service");
+ # Do a backup and wait for it to start
+ master.start_job("mysql-backup.service")
+ master.wait_for_unit("mysql-backup.service")
- # wait for backup to fail, because of database 'doesnotexist'
- $master->waitUntilFails("systemctl is-active -q mysql-backup.service");
+ # wait for backup to fail, because of database 'doesnotexist'
+ master.wait_until_fails("systemctl is-active -q mysql-backup.service")
- # wait for backup file and check that data appears in backup
- $master->waitForFile("/var/backup/mysql/testdb.gz");
- $master->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello");
+ # wait for backup file and check that data appears in backup
+ master.wait_for_file("/var/backup/mysql/testdb.gz")
+ master.succeed(
+ "${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello"
+ )
- # Check that a failed backup is logged
- $master->succeed("journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null");
- '';
+ # Check that a failed backup is logged
+ master.succeed(
+ "journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null"
+ )
+ '';
})
diff --git a/nixos/tests/mysql-replication.nix b/nixos/tests/mysql-replication.nix
index c75a862106f..a2654f041ad 100644
--- a/nixos/tests/mysql-replication.nix
+++ b/nixos/tests/mysql-replication.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
let
replicateUser = "replicate";
@@ -54,28 +54,36 @@ in
};
testScript = ''
- $master->start;
- $master->waitForUnit("mysql");
- $master->waitForOpenPort(3306);
+ master.start()
+ master.wait_for_unit("mysql")
+ master.wait_for_open_port(3306)
# Wait for testdb to be fully populated (5 rows).
- $master->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+ master.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
- $slave1->start;
- $slave2->start;
- $slave1->waitForUnit("mysql");
- $slave1->waitForOpenPort(3306);
- $slave2->waitForUnit("mysql");
- $slave2->waitForOpenPort(3306);
+ slave1.start()
+ slave2.start()
+ slave1.wait_for_unit("mysql")
+ slave1.wait_for_open_port(3306)
+ slave2.wait_for_unit("mysql")
+ slave2.wait_for_open_port(3306)
# wait for replications to finish
- $slave1->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
- $slave2->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+ slave1.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
+ slave2.wait_until_succeeds(
+ "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+ )
- $slave2->succeed("systemctl stop mysql");
- $master->succeed("echo 'insert into testdb.tests values (123, 456);' | mysql -u root -N");
- $slave2->succeed("systemctl start mysql");
- $slave2->waitForUnit("mysql");
- $slave2->waitForOpenPort(3306);
- $slave2->waitUntilSucceeds("echo 'select * from testdb.tests where Id = 123;' | mysql -u root -N | grep 456");
+ slave2.succeed("systemctl stop mysql")
+ master.succeed("echo 'insert into testdb.tests values (123, 456);' | mysql -u root -N")
+ slave2.succeed("systemctl start mysql")
+ slave2.wait_for_unit("mysql")
+ slave2.wait_for_open_port(3306)
+ slave2.wait_until_succeeds(
+ "echo 'select * from testdb.tests where Id = 123;' | mysql -u root -N | grep 456"
+ )
'';
})
diff --git a/nixos/tests/mysql.nix b/nixos/tests/mysql.nix
index 05bd968de02..2c0d212c2f1 100644
--- a/nixos/tests/mysql.nix
+++ b/nixos/tests/mysql.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "mysql";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ eelco shlevy ];
@@ -47,17 +47,23 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all
- $mysql->waitForUnit("mysql");
- $mysql->succeed("echo 'use empty_testdb;' | mysql -u root");
- $mysql->succeed("echo 'use testdb; select * from tests;' | mysql -u root -N | grep 4");
+ mysql.wait_for_unit("mysql")
+ mysql.succeed("echo 'use empty_testdb;' | mysql -u root")
+ mysql.succeed("echo 'use testdb; select * from tests;' | mysql -u root -N | grep 4")
# ';' acts as no-op, just check whether login succeeds with the user created from the initialScript
- $mysql->succeed("echo ';' | mysql -u passworduser --password=password123");
+ mysql.succeed("echo ';' | mysql -u passworduser --password=password123")
- $mariadb->waitForUnit("mysql");
- $mariadb->succeed("echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser");
- $mariadb->succeed("echo 'use testdb; insert into tests values (42);' | sudo -u testuser mysql -u testuser");
- $mariadb->succeed("echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42");
+ mariadb.wait_for_unit("mysql")
+ mariadb.succeed(
+ "echo 'use testdb; create table tests (test_id INT, PRIMARY KEY (test_id));' | sudo -u testuser mysql -u testuser"
+ )
+ mariadb.succeed(
+ "echo 'use testdb; insert into tests values (42);' | sudo -u testuser mysql -u testuser"
+ )
+ mariadb.succeed(
+ "echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42"
+ )
'';
})
diff --git a/nixos/tests/nexus.nix b/nixos/tests/nexus.nix
index 783c9f5c019..1ec5c40476a 100644
--- a/nixos/tests/nexus.nix
+++ b/nixos/tests/nexus.nix
@@ -3,7 +3,7 @@
# 2. nexus service can startup on server (creating database and all other initial stuff)
# 3. the web application is reachable via HTTP
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test-python.nix ({ pkgs, ...} : {
name = "nexus";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ ironpinguin ma27 ];
@@ -22,11 +22,11 @@ import ./make-test.nix ({ pkgs, ...} : {
};
testScript = ''
- startAll;
+ start_all()
- $server->waitForUnit("nexus");
- $server->waitForOpenPort(8081);
+ server.wait_for_unit("nexus")
+ server.wait_for_open_port(8081)
- $server->succeed("curl -f 127.0.0.1:8081");
+ server.succeed("curl -f 127.0.0.1:8081")
'';
})
diff --git a/nixos/tests/nix-ssh-serve.nix b/nixos/tests/nix-ssh-serve.nix
index 494d55121eb..03f83542c7c 100644
--- a/nixos/tests/nix-ssh-serve.nix
+++ b/nixos/tests/nix-ssh-serve.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
let inherit (import ./ssh-keys.nix pkgs)
snakeOilPrivateKey snakeOilPublicKey;
ssh-config = builtins.toFile "ssh.conf" ''
@@ -18,22 +18,28 @@ in
client.nix.package = pkgs.nix;
};
testScript = ''
- startAll;
+ start_all()
- $client->succeed("mkdir -m 700 /root/.ssh");
- $client->copyFileFromHost("${ssh-config}", "/root/.ssh/config");
- $client->succeed("cat ${snakeOilPrivateKey} > /root/.ssh/id_ecdsa");
- $client->succeed("chmod 600 /root/.ssh/id_ecdsa");
+ client.succeed("mkdir -m 700 /root/.ssh")
+ client.succeed(
+ "cat ${ssh-config} > /root/.ssh/config"
+ )
+ client.succeed(
+ "cat ${snakeOilPrivateKey} > /root/.ssh/id_ecdsa"
+ )
+ client.succeed("chmod 600 /root/.ssh/id_ecdsa")
- $client->succeed("nix-store --add /etc/machine-id > mach-id-path");
+ client.succeed("nix-store --add /etc/machine-id > mach-id-path")
- $server->waitForUnit("sshd");
+ server.wait_for_unit("sshd")
- $client->fail("diff /root/other-store\$(cat mach-id-path) /etc/machine-id");
+ client.fail("diff /root/other-store$(cat mach-id-path) /etc/machine-id")
# Currently due to shared store this is a noop :(
- $client->succeed("nix copy --to ssh-ng://nix-ssh\@server \$(cat mach-id-path)");
- $client->succeed("nix-store --realise \$(cat mach-id-path) --store /root/other-store --substituters ssh-ng://nix-ssh\@server");
- $client->succeed("diff /root/other-store\$(cat mach-id-path) /etc/machine-id");
+ client.succeed("nix copy --to ssh-ng://nix-ssh@server $(cat mach-id-path)")
+ client.succeed(
+ "nix-store --realise $(cat mach-id-path) --store /root/other-store --substituters ssh-ng://nix-ssh@server"
+ )
+ client.succeed("diff /root/other-store$(cat mach-id-path) /etc/machine-id")
'';
}
)
diff --git a/nixos/tests/osquery.nix b/nixos/tests/osquery.nix
deleted file mode 100644
index d95871ffafc..00000000000
--- a/nixos/tests/osquery.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-import ./make-test.nix ({ pkgs, lib, ... }:
-
-with lib;
-
-{
- name = "osquery";
- meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ ma27 ];
- };
-
- machine = {
- services.osquery.enable = true;
- services.osquery.loggerPath = "/var/log/osquery/logs";
- services.osquery.pidfile = "/run/osqueryd.pid";
- };
-
- testScript = ''
- $machine->start;
- $machine->waitForUnit("osqueryd.service");
-
- $machine->succeed("echo 'SELECT address FROM etc_hosts LIMIT 1;' | osqueryi | grep '127.0.0.1'");
- $machine->succeed(
- "echo 'SELECT value FROM osquery_flags WHERE name = \"logger_path\";' | osqueryi | grep /var/log/osquery/logs"
- );
-
- $machine->succeed("echo 'SELECT value FROM osquery_flags WHERE name = \"pidfile\";' | osqueryi | grep /run/osqueryd.pid");
- '';
-})
diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix
index 9888887ee8b..6ff19be1bb9 100644
--- a/nixos/tests/pantheon.nix
+++ b/nixos/tests/pantheon.nix
@@ -1,9 +1,10 @@
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
{
name = "pantheon";
+
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ worldofpeace ];
+ maintainers = pkgs.pantheon.maintainers;
};
machine = { ... }:
@@ -21,35 +22,37 @@ import ./make-test.nix ({ pkgs, ...} :
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
+ bob = nodes.machine.config.users.users.bob;
in ''
- startAll;
+ machine.wait_for_unit("display-manager.service")
- # Wait for display manager to start
- $machine->waitForText(qr/${user.description}/);
- $machine->screenshot("lightdm");
+ with subtest("Test we can see usernames in elementary-greeter"):
+ machine.wait_for_text("${user.description}")
+ machine.wait_for_text("${bob.description}")
+ machine.screenshot("elementary_greeter_lightdm")
- # Log in
- $machine->sendChars("${user.password}\n");
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
+ with subtest("Login with elementary-greeter"):
+ machine.send_chars("${user.password}\n")
+ machine.wait_for_x()
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
- # Check if "pantheon-shell" components actually start
- $machine->waitUntilSucceeds("pgrep gala");
- $machine->waitForWindow(qr/gala/);
- $machine->waitUntilSucceeds("pgrep wingpanel");
- $machine->waitForWindow("wingpanel");
- $machine->waitUntilSucceeds("pgrep plank");
- $machine->waitForWindow(qr/plank/);
+ with subtest("Check that logging in has given the user ownership of devices"):
+ machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
- # Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice");
+ # TODO: DBus API could eliminate this? Pantheon uses Bamf.
+ with subtest("Check if pantheon session components actually start"):
+ machine.wait_until_succeeds("pgrep gala")
+ machine.wait_for_window("gala")
+ machine.wait_until_succeeds("pgrep wingpanel")
+ machine.wait_for_window("wingpanel")
+ machine.wait_until_succeeds("pgrep plank")
+ machine.wait_for_window("plank")
- # Open elementary terminal
- $machine->execute("su - alice -c 'DISPLAY=:0.0 io.elementary.terminal &'");
- $machine->waitForWindow(qr/io.elementary.terminal/);
-
- # Take a screenshot of the desktop
- $machine->sleep(20);
- $machine->screenshot("screen");
+ with subtest("Open elementary terminal"):
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0 io.elementary.terminal &'")
+ machine.wait_for_window("io.elementary.terminal")
+ machine.sleep(20)
+ machine.screenshot("screen")
'';
})
diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix
index 614fc9bf316..6884f17aabb 100644
--- a/nixos/tests/plasma5.nix
+++ b/nixos/tests/plasma5.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ...} :
+import ./make-test-python.nix ({ pkgs, ...} :
{
name = "plasma5";
@@ -7,23 +7,11 @@ import ./make-test.nix ({ pkgs, ...} :
};
machine = { ... }:
- let
- sddm_theme = pkgs.stdenv.mkDerivation {
- name = "breeze-ocr-theme";
- phases = "buildPhase";
- buildCommand = ''
- mkdir -p $out/share/sddm/themes/
- cp -r ${pkgs.plasma-workspace}/share/sddm/themes/breeze $out/share/sddm/themes/breeze-ocr-theme
- chmod -R +w $out/share/sddm/themes/breeze-ocr-theme
- printf "[General]\ntype=color\ncolor=#1d99f3\nbackground=\n" > $out/share/sddm/themes/breeze-ocr-theme/theme.conf
- '';
- };
- in
+
{
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
- services.xserver.displayManager.sddm.theme = "breeze-ocr-theme";
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.desktopManager.default = "plasma5";
services.xserver.displayManager.sddm.autoLogin = {
@@ -32,34 +20,40 @@ import ./make-test.nix ({ pkgs, ...} :
};
hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
virtualisation.memorySize = 1024;
- environment.systemPackages = [ sddm_theme ];
};
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
xdo = "${pkgs.xdotool}/bin/xdotool";
in ''
- startAll;
- # wait for log in
- $machine->waitForFile("/home/alice/.Xauthority");
- $machine->succeed("xauth merge ~alice/.Xauthority");
+ with subtest("Wait for login"):
+ start_all()
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
- $machine->waitUntilSucceeds("pgrep plasmashell");
- $machine->waitForWindow("^Desktop ");
+ with subtest("Check plasmashell started"):
+ machine.wait_until_succeeds("pgrep plasmashell")
+ machine.wait_for_window("^Desktop ")
- # Check that logging in has given the user ownership of devices.
- $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice");
+ with subtest("Check that logging in has given the user ownership of devices"):
+ machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
- $machine->execute("su - alice -c 'DISPLAY=:0.0 dolphin &'");
- $machine->waitForWindow(" Dolphin");
+ with subtest("Run Dolphin"):
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 dolphin &'")
+ machine.wait_for_window(" Dolphin")
- $machine->execute("su - alice -c 'DISPLAY=:0.0 konsole &'");
- $machine->waitForWindow("Konsole");
+ with subtest("Run Konsole"):
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 konsole &'")
+ machine.wait_for_window("Konsole")
- $machine->execute("su - alice -c 'DISPLAY=:0.0 systemsettings5 &'");
- $machine->waitForWindow("Settings");
+ with subtest("Run systemsettings"):
+ machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 systemsettings5 &'")
+ machine.wait_for_window("Settings")
- $machine->execute("${xdo} key Alt+F1 sleep 10");
- $machine->screenshot("screen");
+ with subtest("Wait to get a screenshot"):
+ machine.execute(
+ "${xdo} key Alt+F1 sleep 10"
+ )
+ machine.screenshot("screen")
'';
})
diff --git a/nixos/tests/prometheus.nix b/nixos/tests/prometheus.nix
index 52f61046be3..8bfd0c131e6 100644
--- a/nixos/tests/prometheus.nix
+++ b/nixos/tests/prometheus.nix
@@ -31,7 +31,7 @@ let
};
};
-in import ./make-test.nix {
+in import ./make-test-python.nix {
name = "prometheus";
nodes = {
@@ -173,67 +173,73 @@ in import ./make-test.nix {
testScript = { nodes, ... } : ''
# Before starting the other machines we first make sure that our S3 service is online
# and has a bucket added for thanos:
- $s3->start;
- $s3->waitForUnit("minio.service");
- $s3->waitForOpenPort(${toString minioPort});
- $s3->succeed(
- "mc config host add minio " .
- "http://localhost:${toString minioPort} ${s3.accessKey} ${s3.secretKey} S3v4");
- $s3->succeed("mc mb minio/thanos-bucket");
+ s3.start()
+ s3.wait_for_unit("minio.service")
+ s3.wait_for_open_port(${toString minioPort})
+ s3.succeed(
+ "mc config host add minio "
+ + "http://localhost:${toString minioPort} "
+ + "${s3.accessKey} ${s3.secretKey} S3v4",
+ "mc mb minio/thanos-bucket",
+ )
# Now that s3 has started we can start the other machines:
- $prometheus->start;
- $query->start;
- $store->start;
+ for machine in prometheus, query, store:
+ machine.start()
# Check if prometheus responds to requests:
- $prometheus->waitForUnit("prometheus.service");
- $prometheus->waitForOpenPort(${toString queryPort});
- $prometheus->succeed("curl -s http://127.0.0.1:${toString queryPort}/metrics");
+ prometheus.wait_for_unit("prometheus.service")
+ prometheus.wait_for_open_port(${toString queryPort})
+ prometheus.succeed("curl -s http://127.0.0.1:${toString queryPort}/metrics")
# Let's test if pushing a metric to the pushgateway succeeds:
- $prometheus->waitForUnit("pushgateway.service");
- $prometheus->succeed(
- "echo 'some_metric 3.14' | " .
- "curl --data-binary \@- http://127.0.0.1:${toString pushgwPort}/metrics/job/some_job");
+ prometheus.wait_for_unit("pushgateway.service")
+ prometheus.succeed(
+ "echo 'some_metric 3.14' | "
+ + "curl --data-binary \@- "
+ + "http://127.0.0.1:${toString pushgwPort}/metrics/job/some_job"
+ )
# Now check whether that metric gets ingested by prometheus.
# Since we'll check for the metric several times on different machines
# we abstract the test using the following function:
# Function to check if the metric "some_metric" has been received and returns the correct value.
- local *Machine::waitForMetric = sub {
- my ($self) = @_;
- $self->waitUntilSucceeds(
- "curl -sf 'http://127.0.0.1:${toString queryPort}/api/v1/query?query=some_metric' " .
- "| jq '.data.result[0].value[1]' | grep '\"3.14\"'");
- };
+ def wait_for_metric(machine):
+ return machine.wait_until_succeeds(
+ "curl -sf 'http://127.0.0.1:${toString queryPort}/api/v1/query?query=some_metric' | "
+ + "jq '.data.result[0].value[1]' | grep '\"3.14\"'"
+ )
- $prometheus->waitForMetric;
+
+ wait_for_metric(prometheus)
# Let's test if the pushgateway persists metrics to the configured location.
- $prometheus->waitUntilSucceeds("test -e /var/lib/prometheus-pushgateway/metrics");
+ prometheus.wait_until_succeeds("test -e /var/lib/prometheus-pushgateway/metrics")
# Test thanos
- $prometheus->waitForUnit("thanos-sidecar.service");
+ prometheus.wait_for_unit("thanos-sidecar.service")
# Test if the Thanos query service can correctly retrieve the metric that was send above.
- $query->waitForUnit("thanos-query.service");
- $query->waitForMetric;
+ query.wait_for_unit("thanos-query.service")
+ wait_for_metric(query)
# Test if the Thanos sidecar has correctly uploaded its TSDB to S3, if the
# Thanos storage service has correctly downloaded it from S3 and if the Thanos
# query service running on $store can correctly retrieve the metric:
- $store->waitForUnit("thanos-store.service");
- $store->waitForMetric;
+ store.wait_for_unit("thanos-store.service")
+ wait_for_metric(store)
- $store->waitForUnit("thanos-compact.service");
+ store.wait_for_unit("thanos-compact.service")
# Test if the Thanos bucket command is able to retrieve blocks from the S3 bucket
# and check if the blocks have the correct labels:
- $store->succeed(
- "thanos bucket ls" .
- " --objstore.config-file=${nodes.store.config.services.thanos.store.objstore.config-file}" .
- " --output=json | jq .thanos.labels.some_label | grep 'required by thanos'");
+ store.succeed(
+ "thanos bucket ls "
+ + "--objstore.config-file=${nodes.store.config.services.thanos.store.objstore.config-file} "
+ + "--output=json | "
+ + "jq .thanos.labels.some_label | "
+ + "grep 'required by thanos'"
+ )
'';
}
diff --git a/nixos/tests/sudo.nix b/nixos/tests/sudo.nix
index fc16b99cc19..5bbec3d5726 100644
--- a/nixos/tests/sudo.nix
+++ b/nixos/tests/sudo.nix
@@ -4,7 +4,7 @@ let
password = "helloworld";
in
- import ./make-test.nix ({ pkgs, ...} : {
+ import ./make-test-python.nix ({ pkgs, ...} : {
name = "sudo";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ lschuermann ];
@@ -50,44 +50,34 @@ in
testScript =
''
- subtest "users in wheel group should have passwordless sudo", sub {
- $machine->succeed("su - test0 -c \"sudo -u root true\"");
- };
+ with subtest("users in wheel group should have passwordless sudo"):
+ machine.succeed('su - test0 -c "sudo -u root true"')
- subtest "test1 user should have sudo with password", sub {
- $machine->succeed("su - test1 -c \"echo ${password} | sudo -S -u root true\"");
- };
+ with subtest("test1 user should have sudo with password"):
+ machine.succeed('su - test1 -c "echo ${password} | sudo -S -u root true"')
- subtest "test1 user should not be able to use sudo without password", sub {
- $machine->fail("su - test1 -c \"sudo -n -u root true\"");
- };
+ with subtest("test1 user should not be able to use sudo without password"):
+ machine.fail('su - test1 -c "sudo -n -u root true"')
- subtest "users in group 'foobar' should be able to use sudo with password", sub {
- $machine->succeed("sudo -u test2 echo ${password} | sudo -S -u root true");
- };
+ with subtest("users in group 'foobar' should be able to use sudo with password"):
+ machine.succeed("sudo -u test2 echo ${password} | sudo -S -u root true")
- subtest "users in group 'barfoo' should be able to use sudo without password", sub {
- $machine->succeed("sudo -u test3 sudo -n -u root true");
- };
+ with subtest("users in group 'barfoo' should be able to use sudo without password"):
+ machine.succeed("sudo -u test3 sudo -n -u root true")
- subtest "users in group 'baz' (GID 1337) should be able to use sudo without password", sub {
- $machine->succeed("sudo -u test4 sudo -n -u root echo true");
- };
+ with subtest("users in group 'baz' (GID 1337)"):
+ machine.succeed("sudo -u test4 sudo -n -u root echo true")
- subtest "test5 user should be able to run commands under test1", sub {
- $machine->succeed("sudo -u test5 sudo -n -u test1 true");
- };
+ with subtest("test5 user should be able to run commands under test1"):
+ machine.succeed("sudo -u test5 sudo -n -u test1 true")
- subtest "test5 user should not be able to run commands under root", sub {
- $machine->fail("sudo -u test5 sudo -n -u root true");
- };
+ with subtest("test5 user should not be able to run commands under root"):
+ machine.fail("sudo -u test5 sudo -n -u root true")
- subtest "test5 user should be able to keep his environment", sub {
- $machine->succeed("sudo -u test5 sudo -n -E -u test1 true");
- };
+ with subtest("test5 user should be able to keep his environment"):
+ machine.succeed("sudo -u test5 sudo -n -E -u test1 true")
- subtest "users in group 'barfoo' should not be able to keep their environment", sub {
- $machine->fail("sudo -u test3 sudo -n -E -u root true");
- };
+ with subtest("users in group 'barfoo' should not be able to keep their environment"):
+ machine.fail("sudo -u test3 sudo -n -E -u root true")
'';
})
diff --git a/nixos/tests/syncthing-init.nix b/nixos/tests/syncthing-init.nix
index 0de76b688bd..9c8e0a3d087 100644
--- a/nixos/tests/syncthing-init.nix
+++ b/nixos/tests/syncthing-init.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, pkgs, ... }: let
+import ./make-test-python.nix ({ lib, pkgs, ... }: let
testId = "7CFNTQM-IMTJBHJ-3UWRDIU-ZGQJFR6-VCXZ3NB-XUH3KZO-N52ITXR-LAIYUAU";
@@ -22,13 +22,11 @@ in {
};
testScript = ''
- my $config;
-
- $machine->waitForUnit("syncthing-init.service");
- $config = $machine->succeed("cat /var/lib/syncthing/.config/syncthing/config.xml");
+ machine.wait_for_unit("syncthing-init.service")
+ config = machine.succeed("cat /var/lib/syncthing/.config/syncthing/config.xml")
- $config =~ /${testId}/ or die;
- $config =~ /testFolder/ or die;
+ assert "testFolder" in config
+ assert "${testId}" in config
'';
})
diff --git a/nixos/tests/syncthing-relay.nix b/nixos/tests/syncthing-relay.nix
index f1ceb499333..cd72ef1cbe1 100644
--- a/nixos/tests/syncthing-relay.nix
+++ b/nixos/tests/syncthing-relay.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ lib, pkgs, ... }: {
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
name = "syncthing-relay";
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ delroth ];
@@ -14,9 +14,13 @@ import ./make-test.nix ({ lib, pkgs, ... }: {
};
testScript = ''
- $machine->waitForUnit("syncthing-relay.service");
- $machine->waitForOpenPort(12345);
- $machine->waitForOpenPort(12346);
- $machine->succeed("curl http://localhost:12346/status | jq -r '.options.\"provided-by\"'") =~ /nixos-test/ or die;
+ machine.wait_for_unit("syncthing-relay.service")
+ machine.wait_for_open_port(12345)
+ machine.wait_for_open_port(12346)
+
+ out = machine.succeed(
+ "curl -sS http://localhost:12346/status | jq -r '.options.\"provided-by\"'"
+ )
+ assert "nixos-test" in out
'';
})
diff --git a/nixos/tests/systemd-networkd-wireguard.nix b/nixos/tests/systemd-networkd-wireguard.nix
index b83e9c7ce19..be5c0da981d 100644
--- a/nixos/tests/systemd-networkd-wireguard.nix
+++ b/nixos/tests/systemd-networkd-wireguard.nix
@@ -1,4 +1,4 @@
-let generateNodeConf = { lib, pkgs, config, privkpath, pubk, peerId, nodeId, ...}: {
+let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
imports = [ common/user-account.nix ];
systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
networking.useNetworkd = true;
@@ -7,13 +7,16 @@ let generateNodeConf = { lib, pkgs, config, privkpath, pubk, peerId, nodeId, ...
virtualisation.vlans = [ 1 ];
environment.systemPackages = with pkgs; [ wireguard-tools ];
boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ];
+ systemd.tmpfiles.rules = [
+ "f /run/wg_priv 0640 root systemd-network - ${privk}"
+ ];
systemd.network = {
enable = true;
netdevs = {
"90-wg0" = {
netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
wireguardConfig = {
- PrivateKeyFile = privkpath ;
+ PrivateKeyFile = "/run/wg_priv";
ListenPort = 51820;
FwMark = 42;
};
@@ -53,7 +56,7 @@ in import ./make-test-python.nix ({pkgs, ... }: {
nodes = {
node1 = { pkgs, ... }@attrs:
let localConf = {
- privkpath = pkgs.writeText "priv.key" "GDiXWlMQKb379XthwX0haAbK6hTdjblllpjGX0heP00=";
+ privk = "GDiXWlMQKb379XthwX0haAbK6hTdjblllpjGX0heP00=";
pubk = "iRxpqj42nnY0Qz8MAQbSm7bXxXP5hkPqWYIULmvW+EE=";
nodeId = "1";
peerId = "2";
@@ -62,7 +65,7 @@ in import ./make-test-python.nix ({pkgs, ... }: {
node2 = { pkgs, ... }@attrs:
let localConf = {
- privkpath = pkgs.writeText "priv.key" "eHxSI2jwX/P4AOI0r8YppPw0+4NZnjOxfbS5mt06K2k=";
+ privk = "eHxSI2jwX/P4AOI0r8YppPw0+4NZnjOxfbS5mt06K2k=";
pubk = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
nodeId = "2";
peerId = "1";
diff --git a/nixos/tests/systemd-nspawn.nix b/nixos/tests/systemd-nspawn.nix
index c2039bb5980..5bf55060d2e 100644
--- a/nixos/tests/systemd-nspawn.nix
+++ b/nixos/tests/systemd-nspawn.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({pkgs, lib, ...}:
+import ./make-test-python.nix ({pkgs, lib, ...}:
let
gpgKeyring = (pkgs.runCommand "gpg-keyring" { buildInputs = [ pkgs.gnupg ]; } ''
mkdir -p $out
@@ -32,7 +32,7 @@ let
gpg --batch --sign --detach-sign --output SHA256SUMS.gpg SHA256SUMS
'');
in {
- name = "opensmtpd";
+ name = "systemd-nspawn";
nodes = {
server = { pkgs, ... }: {
@@ -48,11 +48,13 @@ in {
};
testScript = ''
- startAll;
+ start_all()
- $server->waitForUnit("nginx.service");
- $client->waitForUnit("network-online.target");
- $client->succeed("machinectl pull-raw --verify=signature http://server/testimage.raw");
- $client->succeed("cmp /var/lib/machines/testimage.raw ${nspawnImages}/testimage.raw");
+ server.wait_for_unit("nginx.service")
+ client.wait_for_unit("network-online.target")
+ client.succeed("machinectl pull-raw --verify=signature http://server/testimage.raw")
+ client.succeed(
+ "cmp /var/lib/machines/testimage.raw ${nspawnImages}/testimage.raw"
+ )
'';
})
diff --git a/nixos/tests/uwsgi.nix b/nixos/tests/uwsgi.nix
index afc03e74ed7..78a87147f55 100644
--- a/nixos/tests/uwsgi.nix
+++ b/nixos/tests/uwsgi.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "uwsgi";
meta = with pkgs.stdenv.lib.maintainers; {
@@ -30,9 +30,9 @@ import ./make-test.nix ({ pkgs, ... }:
testScript =
''
- $machine->waitForUnit('multi-user.target');
- $machine->waitForUnit('uwsgi.service');
- $machine->waitForOpenPort(8000);
- $machine->succeed('curl -v 127.0.0.1:8000 | grep "Hello World!"');
+ machine.wait_for_unit("multi-user.target")
+ machine.wait_for_unit("uwsgi.service")
+ machine.wait_for_open_port(8000)
+ assert "Hello World" in machine.succeed("curl -v 127.0.0.1:8000")
'';
})
diff --git a/nixos/tests/wordpress.nix b/nixos/tests/wordpress.nix
index c6acfa6c1f3..b7449859f7e 100644
--- a/nixos/tests/wordpress.nix
+++ b/nixos/tests/wordpress.nix
@@ -1,9 +1,13 @@
-import ./make-test.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, ... }:
{
name = "wordpress";
meta = with pkgs.stdenv.lib.maintainers; {
- maintainers = [ grahamc ]; # under duress!
+ maintainers = [
+ flokli
+ grahamc # under duress!
+ mmilata
+ ];
};
machine =
@@ -23,19 +27,31 @@ import ./make-test.nix ({ pkgs, ... }:
};
testScript = ''
- startAll;
+ import re
- $machine->waitForUnit("httpd");
- $machine->waitForUnit("phpfpm-wordpress-site1.local");
- $machine->waitForUnit("phpfpm-wordpress-site2.local");
+ start_all()
- $machine->succeed("curl -L site1.local | grep 'Welcome to the famous'");
- $machine->succeed("curl -L site2.local | grep 'Welcome to the famous'");
+ machine.wait_for_unit("httpd")
- $machine->succeed("systemctl --no-pager show wordpress-init-site1.local.service | grep 'ExecStart=.*status=0'");
- $machine->succeed("systemctl --no-pager show wordpress-init-site2.local.service | grep 'ExecStart=.*status=0'");
- $machine->succeed("grep -E '^define.*NONCE_SALT.{64,};\$' /var/lib/wordpress/site1.local/secret-keys.php");
- $machine->succeed("grep -E '^define.*NONCE_SALT.{64,};\$' /var/lib/wordpress/site2.local/secret-keys.php");
+ machine.wait_for_unit("phpfpm-wordpress-site1.local")
+ machine.wait_for_unit("phpfpm-wordpress-site2.local")
+
+ site_names = ["site1.local", "site2.local"]
+
+ with subtest("website returns welcome screen"):
+ for site_name in site_names:
+ assert "Welcome to the famous" in machine.succeed(f"curl -L {site_name}")
+
+ with subtest("wordpress-init went through"):
+ for site_name in site_names:
+ info = machine.get_unit_info(f"wordpress-init-{site_name}")
+ assert info["Result"] == "success"
+
+ with subtest("secret keys are set"):
+ pattern = re.compile(r"^define.*NONCE_SALT.{64,};$", re.MULTILINE)
+ for site_name in site_names:
+ assert pattern.search(
+ machine.succeed(f"cat /var/lib/wordpress/{site_name}/secret-keys.php")
+ )
'';
-
})
diff --git a/nixos/tests/xmpp/prosody-mysql.nix b/nixos/tests/xmpp/prosody-mysql.nix
index 62b4a17421e..0507227021b 100644
--- a/nixos/tests/xmpp/prosody-mysql.nix
+++ b/nixos/tests/xmpp/prosody-mysql.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix {
+import ../make-test-python.nix {
name = "prosody-mysql";
nodes = {
@@ -57,21 +57,21 @@ import ../make-test.nix {
};
testScript = { nodes, ... }: ''
- $mysql->waitForUnit('mysql.service');
- $server->waitForUnit('prosody.service');
- $server->succeed('prosodyctl status') =~ /Prosody is running/;
+ mysql.wait_for_unit("mysql.service")
+ server.wait_for_unit("prosody.service")
+ server.succeed('prosodyctl status | grep "Prosody is running"')
# set password to 'nothunter2' (it's asked twice)
- $server->succeed('yes nothunter2 | prosodyctl adduser cthon98@example.com');
+ server.succeed("yes nothunter2 | prosodyctl adduser cthon98@example.com")
# set password to 'y'
- $server->succeed('yes | prosodyctl adduser azurediamond@example.com');
+ server.succeed("yes | prosodyctl adduser azurediamond@example.com")
# correct password to 'hunter2'
- $server->succeed('yes hunter2 | prosodyctl passwd azurediamond@example.com');
+ server.succeed("yes hunter2 | prosodyctl passwd azurediamond@example.com")
- $client->succeed("send-message");
+ client.succeed("send-message")
- $server->succeed('prosodyctl deluser cthon98@example.com');
- $server->succeed('prosodyctl deluser azurediamond@example.com');
+ server.succeed("prosodyctl deluser cthon98@example.com")
+ server.succeed("prosodyctl deluser azurediamond@example.com")
'';
}
diff --git a/nixos/tests/xmpp/prosody.nix b/nixos/tests/xmpp/prosody.nix
index 8331c7b6d33..9d1374bff6b 100644
--- a/nixos/tests/xmpp/prosody.nix
+++ b/nixos/tests/xmpp/prosody.nix
@@ -1,4 +1,4 @@
-import ../make-test.nix {
+import ../make-test-python.nix {
name = "prosody";
nodes = {
@@ -28,19 +28,19 @@ import ../make-test.nix {
};
testScript = { nodes, ... }: ''
- $server->waitForUnit('prosody.service');
- $server->succeed('prosodyctl status') =~ /Prosody is running/;
+ server.wait_for_unit("prosody.service")
+ server.succeed('prosodyctl status | grep "Prosody is running"')
# set password to 'nothunter2' (it's asked twice)
- $server->succeed('yes nothunter2 | prosodyctl adduser cthon98@example.com');
+ server.succeed("yes nothunter2 | prosodyctl adduser cthon98@example.com")
# set password to 'y'
- $server->succeed('yes | prosodyctl adduser azurediamond@example.com');
- # correct password to 'hunter2'
- $server->succeed('yes hunter2 | prosodyctl passwd azurediamond@example.com');
+ server.succeed("yes | prosodyctl adduser azurediamond@example.com")
+ # correct password to "hunter2"
+ server.succeed("yes hunter2 | prosodyctl passwd azurediamond@example.com")
- $client->succeed("send-message");
+ client.succeed("send-message")
- $server->succeed('prosodyctl deluser cthon98@example.com');
- $server->succeed('prosodyctl deluser azurediamond@example.com');
+ server.succeed("prosodyctl deluser cthon98@example.com")
+ server.succeed("prosodyctl deluser azurediamond@example.com")
'';
}
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 11434c0b349..2fd3e5c27fe 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -7,12 +7,12 @@
with stdenv.lib;
stdenv.mkDerivation rec {
- version = "2.3.2";
+ version = "2.3.3";
pname = "audacity";
src = fetchzip {
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
- sha256 = "08w96124vv8k4myd4vifq73ningq6404x889wvg2sk016kc4dfv1";
+ sha256 = "0ddc03dbm4ixy877czmwd03fpjgr3y68bxfgb6n2q6cv4prp30ig";
};
preConfigure = /* we prefer system-wide libs */ ''
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index d22065eb9fe..99503fc3942 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -1,9 +1,9 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, alsaLib ? null, fftwFloat, fltk13
, fluidsynth_1 ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
, libsamplerate, libsoundio ? null, libsndfile, libvorbis ? null, portaudio ? null
-, qtbase, qtx11extras, qttools, SDL ? null }:
+, qtbase, qtx11extras, qttools, SDL ? null, mkDerivation }:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "lmms";
version = "1.2.0-rc7";
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
description = "DAW similar to FL Studio (music production software)";
homepage = https://lmms.io;
license = licenses.gpl2Plus;
- platforms = platforms.linux;
+ platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = with maintainers; [ goibhniu yegortimoshenko ];
};
}
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index d420d1a6709..36ab017c5cb 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "spotifyd";
- version = "0.2.19";
+ version = "0.2.20";
src = fetchFromGitHub {
owner = "Spotifyd";
repo = "spotifyd";
rev = "v${version}";
- sha256 = "063b28ysj224m6ngns9i574i7vnp1x4g07cqjw908ch04yngcg1c";
+ sha256 = "1hf4wpk7r0s4jpjhxaz67y1hd8jx9ns5imd85r3cdg4lxf3j5gph";
};
- cargoSha256 = "0pqxqd5dyw9mjclrqkxzfnzsz74xl4bg0b86v5q6kc0a91zd49b9";
+ cargoSha256 = "1h3fis47hmxvppiv1icjhgp48nd46gayfcmzfjs34q6jask90n0w";
cargoBuildFlags = [
"--no-default-features"
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
description = "An open source Spotify client running as a UNIX daemon";
homepage = "https://github.com/Spotifyd/spotifyd";
license = with licenses; [ gpl3 ];
- maintainers = [ maintainers.anderslundstedt maintainers.marsam ];
+ maintainers = with maintainers; [ anderslundstedt filalex77 marsam ];
platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix
index d1c4c80d6b5..dd1f5eea8f4 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop.nix
+++ b/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
# https://cgit.kde.org/kdevelop.git/commit/?id=716372ae2e8dff9c51e94d33443536786e4bd85b
# required as nixos seems to be unable to find CLANG_BUILTIN_DIR
cmakeFlags = [
- "-DCLANG_BUILTIN_DIR=${llvmPackages.clang-unwrapped}/lib/clang/${(builtins.parseDrvName llvmPackages.clang.name).version}/include"
+ "-DCLANG_BUILTIN_DIR=${llvmPackages.clang-unwrapped}/lib/clang/${lib.getVersion llvmPackages.clang}/include"
];
dontWrapQtApps = true;
diff --git a/pkgs/applications/graphics/drawpile/default.nix b/pkgs/applications/graphics/drawpile/default.nix
index b4f6776e02c..c284f15a874 100644
--- a/pkgs/applications/graphics/drawpile/default.nix
+++ b/pkgs/applications/graphics/drawpile/default.nix
@@ -60,11 +60,11 @@ let
in mkDerivation rec {
pname = "drawpile";
- version = "2.1.13";
+ version = "2.1.14";
src = fetchurl {
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
- sha256 = "0r56hkzjdlg4615zvrjv60i3f06pv7ssh6bs6jb46qs8wbsawsxf";
+ sha256 = "0vpsq8swvli6xiykjqjmdcz33jd44nvhq1n350dm9qap9s9wdr47";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix
index 62fae518b92..48a79e8844e 100644
--- a/pkgs/applications/graphics/nomacs/default.nix
+++ b/pkgs/applications/graphics/nomacs/default.nix
@@ -1,6 +1,7 @@
{ stdenv
, mkDerivation
, fetchFromGitHub
+, fetchpatch
, cmake
, pkgconfig
@@ -9,7 +10,7 @@
, qtsvg
, exiv2
-, opencv
+, opencv4
, libraw
, libtiff
, quazip
@@ -28,6 +29,12 @@ mkDerivation rec {
patches = [
./nomacs-iostream.patch
+ (fetchpatch {
+ name = "darwin-less-restrictive-opencv.patch";
+ url = "https://github.com/nomacs/nomacs/commit/d182fce4bcd9a25bd15e3de065ca67849a32458c.patch";
+ sha256 = "0j6sviwrjn69nqf59hjn30c4j838h8az7rnlwcx8ymlb21vd9x2h";
+ stripLen = 1;
+ })
];
enableParallelBuilding = true;
@@ -43,7 +50,7 @@ mkDerivation rec {
qttools
qtsvg
exiv2
- opencv
+ opencv4
libraw
libtiff
quazip];
diff --git a/pkgs/applications/misc/clight/clightd.nix b/pkgs/applications/misc/clight/clightd.nix
index 43ff1d73f78..f9c08d1f00a 100644
--- a/pkgs/applications/misc/clight/clightd.nix
+++ b/pkgs/applications/misc/clight/clightd.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "clightd";
- version = "3.4";
+ version = "4.0";
src = fetchFromGitHub {
owner = "FedeDP";
repo = "Clightd";
rev = version;
- sha256 = "0g6kawizwfhvigkwm7rbfq6rg872xn8igy8n355w4d7mmcxk0jf8";
+ sha256 = "0cskxy3xsy187in5vg8xcs3kwcx2s160qv009v0ahkcalp29ghz4";
};
# dbus-1.pc has datadir=/etc
diff --git a/pkgs/applications/misc/clight/default.nix b/pkgs/applications/misc/clight/default.nix
index 829fd4e1223..a2e45256269 100644
--- a/pkgs/applications/misc/clight/default.nix
+++ b/pkgs/applications/misc/clight/default.nix
@@ -1,18 +1,18 @@
{ lib, stdenv, fetchFromGitHub
, dbus, cmake, pkgconfig, bash-completion
-, gsl, popt, clightd, systemd, libconfig
+, gsl, popt, clightd, systemd, libconfig, libmodule
, withGeoclue ? true, geoclue2
, withUpower ? true, upower }:
stdenv.mkDerivation rec {
pname = "clight";
- version = "3.1";
+ version = "4.0";
src = fetchFromGitHub {
owner = "FedeDP";
repo = "Clight";
rev = version;
- sha256 = "0rzcr1x9h4llnmklhgzs9r7xwhsrw1qkqvfffkp8fs90nycaqx81";
+ sha256 = "101fp9kwmfmfffpdvv41wf96kdjw0b16xk49g43w32a5wlr74zrq";
};
# bash-completion.pc completionsdir=${bash-completion.out}
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
systemd
geoclue2
libconfig
+ libmodule
] ++ optional withGeoclue geoclue2
++ optional withUpower upower;
diff --git a/pkgs/applications/misc/copyq/default.nix b/pkgs/applications/misc/copyq/default.nix
index 825053483a4..58a85f8f6e9 100644
--- a/pkgs/applications/misc/copyq/default.nix
+++ b/pkgs/applications/misc/copyq/default.nix
@@ -5,13 +5,13 @@
mkDerivation rec {
pname = "CopyQ";
- version = "3.9.2";
+ version = "3.9.3";
src = fetchFromGitHub {
owner = "hluk";
repo = "CopyQ";
rev = "v${version}";
- sha256 = "02zs444i7hnqishs1i6vp8ffjxlxk3xkrw935pdwnwppv9s9v202";
+ sha256 = "0wlwq9xg8rzsbj0b29z358k4mbrqy04iraa8x0p26pa95yskgcma";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 1549ab00a4f..e3d9e8be0b2 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
pname = "dbeaver-ce";
- version = "6.2.4";
+ version = "6.2.5";
desktopItem = makeDesktopItem {
name = "dbeaver";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
- sha256 = "1k3aan290kfy2b53gl8r4yxvb8jas6sms1r052m3jld3i8frqgva";
+ sha256 = "1bg5cq7ivf263mjr8g9qwdhp9x0gm04nqiya4fyw0k33yiab85zn";
};
installPhase = ''
diff --git a/pkgs/applications/misc/glava/default.nix b/pkgs/applications/misc/glava/default.nix
index 6f5146161a6..519df42c789 100644
--- a/pkgs/applications/misc/glava/default.nix
+++ b/pkgs/applications/misc/glava/default.nix
@@ -8,7 +8,7 @@ let
wrapperScript = writeScript "glava" ''
#!${runtimeShell}
case "$1" in
- --copy-config)
+ --copy-config|-C)
# The binary would symlink it, which won't work in Nix because the
# garbage collector will eventually remove the original files after
# updates
@@ -45,6 +45,14 @@ in
];
preConfigure = ''
+ for f in $(find -type f);do
+ substituteInPlace $f \
+ --replace /etc/xdg $out/etc/xdg
+ done
+
+ substituteInPlace Makefile \
+ --replace '$(DESTDIR)$(SHADERDIR)' '$(SHADERDIR)'
+
substituteInPlace Makefile \
--replace 'unknown' 'v${version}'
diff --git a/pkgs/applications/misc/houdini/runtime.nix b/pkgs/applications/misc/houdini/runtime.nix
index 12364db7d4a..279791561d9 100644
--- a/pkgs/applications/misc/houdini/runtime.nix
+++ b/pkgs/applications/misc/houdini/runtime.nix
@@ -30,14 +30,14 @@ let
license_dir = "~/.config/houdini";
in
stdenv.mkDerivation rec {
- version = "17.0.352";
+ version = "17.5.327";
pname = "houdini-runtime";
src = requireFile rec {
name = "houdini-${version}-linux_x86_64_gcc6.3.tar.gz";
- sha256 = "0cl5fkgaplb0cvv7mli06ffc9j4ngpy8hl5zqabj3d645gcgafjg";
+ sha256 = "1byigmhmby8lgi2vmgxy9jlrrqk7jyr507zqkihq5bv8kfsanv1x";
message = ''
This nix expression requires that ${name} is already part of the store.
- Download it from https://sidefx.com and add it to the nix store with:
+ Download it from https://www.sidefx.com and add it to the nix store with:
nix-prefetch-url
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "3D animation application software";
- homepage = https://sidefx.com;
+ homepage = https://www.sidefx.com;
license = stdenv.lib.licenses.unfree;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.canndrew ];
diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix
index ec5ee031a5b..8b0cab31588 100644
--- a/pkgs/applications/misc/nut/default.nix
+++ b/pkgs/applications/misc/nut/default.nix
@@ -1,17 +1,27 @@
{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi
-, libtool, makeWrapper, nss }:
+, libtool, makeWrapper, autoreconfHook, fetchpatch
+}:
stdenv.mkDerivation rec {
- name = "nut-2.7.4";
+ pname = "nut";
+ version = "2.7.4";
src = fetchurl {
- url = "http://www.networkupstools.org/source/2.7/${name}.tar.gz";
+ url = "https://networkupstools.org/source/2.7/${pname}-${version}.tar.gz";
sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq";
};
- buildInputs = [ neon libusb openssl udev avahi freeipmi libtool nss ];
+ patches = [
+ (fetchpatch {
+ # Fix build with openssl >= 1.1.0
+ url = "https://github.com/networkupstools/nut/commit/612c05efb3c3b243da603a3a050993281888b6e3.patch";
+ sha256 = "0jdbii1z5sqyv24286j5px65j7b3gp8zk3ahbph83pig6g46m3hs";
+ })
+ ];
- nativeBuildInputs = [ pkgconfig makeWrapper ];
+ buildInputs = [ neon libusb openssl udev avahi freeipmi ];
+
+ nativeBuildInputs = [ autoreconfHook libtool pkgconfig makeWrapper ];
configureFlags =
[ "--with-all"
@@ -26,7 +36,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
-
postInstall = ''
wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
"$out/lib:${neon}/lib:${libusb.out}/lib:${avahi}/lib:${freeipmi}/lib"
@@ -39,7 +48,7 @@ stdenv.mkDerivation rec {
interface for monitoring and administering UPS, PDU and SCD hardware.
It uses a layered approach to connect all of the parts.
'';
- homepage = http://www.networkupstools.org/;
+ homepage = https://networkupstools.org/;
repositories.git = https://github.com/networkupstools/nut.git;
platforms = platforms.linux;
maintainers = [ maintainers.pierron ];
diff --git a/pkgs/applications/misc/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix
index 9ca8c696184..fcc6ead550a 100644
--- a/pkgs/applications/misc/polybar/default.nix
+++ b/pkgs/applications/misc/polybar/default.nix
@@ -1,5 +1,5 @@
{ cairo, cmake, fetchFromGitHub, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig
-, python2, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
+, python3, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
, xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper
# optional packages-- override the variables ending in 'Support' to enable or
@@ -24,15 +24,16 @@ assert nlSupport -> ! iwSupport && libnl != null;
assert i3Support -> ! i3GapsSupport && jsoncpp != null && i3 != null;
assert i3GapsSupport -> ! i3Support && jsoncpp != null && i3-gaps != null;
-stdenv.mkDerivation rec {
+let xcbproto-py3 = xcbproto.override { python = python3; };
+in stdenv.mkDerivation rec {
pname = "polybar";
- version = "3.4.0";
+ version = "3.4.1";
src = fetchFromGitHub {
- owner = "jaagr";
+ owner = pname;
repo = pname;
rev = version;
- sha256 = "1g3zj0788cdlm8inpl19279bw8zjcy7dzj7q4f1l2d8c8g1jhv0m";
+ sha256 = "1z1m6dxh2i5vsnkzaccb9j02ab05wgmcgig5d0l9w856g5jp3zmy";
fetchSubmodules = true;
};
@@ -45,12 +46,12 @@ stdenv.mkDerivation rec {
having a black belt in shell scripting.
'';
license = licenses.mit;
- maintainers = [ maintainers.afldcr ];
- platforms = platforms.unix;
+ maintainers = with maintainers; [ afldcr filalex77 ];
+ platforms = platforms.linux;
};
buildInputs = [
- cairo libXdmcp libpthreadstubs libxcb pcre python2 xcbproto xcbutil
+ cairo libXdmcp libpthreadstubs libxcb pcre python3 xcbproto-py3 xcbutil
xcbutilcursor xcbutilimage xcbutilrenderutil xcbutilwm xcbutilxrm
(if alsaSupport then alsaLib else null)
diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix
index 9dcdf8fd2b0..76a62d1762c 100644
--- a/pkgs/applications/misc/sweethome3d/default.nix
+++ b/pkgs/applications/misc/sweethome3d/default.nix
@@ -3,8 +3,6 @@
let
- getDesktopFileName = drvName: (builtins.parseDrvName drvName).name;
-
# TODO: Should we move this to `lib`? Seems like its would be useful in many cases.
extensionOf = filePath:
lib.concatStringsSep "." (lib.tail (lib.splitString "." (builtins.baseNameOf filePath)));
@@ -15,15 +13,15 @@ let
'') icons);
mkSweetHome3D =
- { name, module, version, src, license, description, desktopName, icons }:
+ { pname, module, version, src, license, description, desktopName, icons }:
stdenv.mkDerivation rec {
- inherit name version src description;
+ inherit pname version src description;
exec = stdenv.lib.toLower module;
sweethome3dItem = makeDesktopItem {
inherit exec desktopName;
- name = getDesktopFileName name;
- icon = getDesktopFileName name;
+ name = pname;
+ icon = pname;
comment = description;
genericName = "Computer Aided (Interior) Design";
categories = "Application;Graphics;2DGraphics;3DGraphics;";
@@ -49,7 +47,7 @@ let
mkdir -p $out/bin
cp install/${module}-${version}.jar $out/share/java/.
- ${installIcons (getDesktopFileName name) icons}
+ ${installIcons pname icons}
cp "${sweethome3dItem}/share/applications/"* $out/share/applications
@@ -74,9 +72,9 @@ let
in {
application = mkSweetHome3D rec {
+ pname = stdenv.lib.toLower module + "-application";
version = "6.2";
module = "SweetHome3D";
- name = stdenv.lib.toLower module + "-application-" + version;
description = "Design and visualize your future home";
license = stdenv.lib.licenses.gpl2Plus;
src = fetchsvn {
diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix
index eef5185aaee..1d3f1a41e16 100644
--- a/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/pkgs/applications/misc/sweethome3d/editors.nix
@@ -7,20 +7,17 @@ let
m: "sweethome3d-"
+ removeSuffix "libraryeditor" (toLower m)
+ "-editor";
- sweetName = m: v: sweetExec m + "-" + v;
-
- getDesktopFileName = drvName: (builtins.parseDrvName drvName).name;
mkEditorProject =
- { name, module, version, src, license, description, desktopName }:
+ { pname, module, version, src, license, description, desktopName }:
stdenv.mkDerivation rec {
application = sweethome3dApp;
- inherit name module version src description;
+ inherit pname module version src description;
exec = sweetExec module;
editorItem = makeDesktopItem {
inherit exec desktopName;
- name = getDesktopFileName name;
+ name = pname;
comment = description;
genericName = "Computer Aided (Interior) Design";
categories = "Application;Graphics;2DGraphics;3DGraphics;";
@@ -66,7 +63,7 @@ in {
textures-editor = mkEditorProject rec {
version = "1.5";
module = "TexturesLibraryEditor";
- name = sweetName module version;
+ pname = module;
description = "Easily create SH3T files and edit the properties of the texture images it contain";
license = stdenv.lib.licenses.gpl2Plus;
src = fetchcvs {
@@ -81,7 +78,7 @@ in {
furniture-editor = mkEditorProject rec {
version = "1.19";
module = "FurnitureLibraryEditor";
- name = sweetName module version;
+ pname = module;
description = "Quickly create SH3F files and edit the properties of the 3D models it contain";
license = stdenv.lib.licenses.gpl2;
src = fetchcvs {
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index d0419c414d7..a8b86e71cb1 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -1,14 +1,17 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "timewarrior";
- version = "1.1.1";
+ version = "1.2.0";
enableParallelBuilding = true;
- src = fetchurl {
- url = "https://taskwarrior.org/download/timew-${version}.tar.gz";
- sha256 = "1jfcfzdwk5qqhxznj1bgy0sx3lnp3z5lqr9kch9a7iazwmi9lz8z";
+ src = fetchFromGitHub {
+ owner = "GothenburgBitFactory";
+ repo = "timewarrior";
+ rev = "v${version}";
+ sha256 = "0ci8kb7gdp1dsv6xj30nbz8lidrmn50pbriw26wv8mdhs17rfk7w";
+ fetchSubmodules = true;
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/tnef/default.nix b/pkgs/applications/misc/tnef/default.nix
index cb70d57869c..bbd3073a4d8 100644
--- a/pkgs/applications/misc/tnef/default.nix
+++ b/pkgs/applications/misc/tnef/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, autoreconfHook }:
stdenv.mkDerivation rec {
- version = "1.4.17";
+ version = "1.4.18";
pname = "tnef";
src = fetchFromGitHub {
owner = "verdammelt";
repo = "tnef";
rev = version;
- sha256 = "0cq2xh5wd74qn6k2nnw5rayxgqhjl3jbzf4zlc4babcwxrv32ldh";
+ sha256 = "104g48mcm00bgiyzas2vf86331w7bnw7h3bc11ib4lp7rz6zqfck";
};
doCheck = true;
diff --git a/pkgs/applications/misc/zola/cargo-lock.patch b/pkgs/applications/misc/zola/cargo-lock.patch
new file mode 100644
index 00000000000..b9d97e3c328
--- /dev/null
+++ b/pkgs/applications/misc/zola/cargo-lock.patch
@@ -0,0 +1,28 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index df5fef3..80f071a 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -2158,12 +2158,12 @@ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sass-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "sass-sys 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+ [[package]]
+ name = "sass-sys"
+-version = "0.4.13"
++version = "0.4.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -3410,7 +3410,7 @@ dependencies = [
+ "checksum safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b08423011dae9a5ca23f07cf57dac3857f5c885d352b76f6d95f4aea9434d0"
+ "checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421"
+ "checksum sass-rs 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cabcf7c6e55053f359911187ac401409aad2dc14338cae972dec266fee486abd"
+-"checksum sass-sys 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6e16ac97c2335bc367e2d675f54c1823558f1b19a6c67671d48b70e30ae22972"
++"checksum sass-sys 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)" = "304b6f9501d1da13f17404aeee85486d7383d06074906669b3ea032f81e83d22"
+ "checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
+ "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+ "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index b9231f8f093..178be491169 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -8,10 +8,11 @@ rustPlatform.buildRustPackage rec {
owner = "getzola";
repo = pname;
rev = "v${version}";
- sha256 = "0dbj2rkn4k5glnwdazsvjhah5pj9cbdb8hwlvm5q4njsmrgpyaw5";
+ sha256 = "13kbgxh7r6124d1fjdf0x599j1kpgixp1y9d299zb5vrd6rf5wy5";
};
+ cargoPatches = [ ./cargo-lock.patch ];
- cargoSha256 = "0i0xqbpbv3md42d2853cfzkhfwlkvxahhz5dldla5x96rm1i2hr8";
+ cargoSha256 = "03rwf5l1l3ap03qi0xqcxsbyvpg3cqmr50j8ql6c5v55xl0ki9w8";
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ openssl ]
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 6edbbb31ff0..902357fb90e 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -150,8 +150,8 @@ let
# ++ optionals (channel == "dev") [ ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
# ++ optional (versionRange "68" "72") ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" )
] ++ optionals (useVaapi) [
- # source: https://aur.archlinux.org/cgit/aur.git/plain/chromium-vaapi.patch?h=chromium-vaapi
- ./patches/chromium-vaapi.patch
+ # source: https://aur.archlinux.org/cgit/aur.git/tree/vaapi-fix.patch?h=chromium-vaapi
+ ./patches/vaapi-fix.patch
] ++ optional stdenv.isAarch64 (fetchpatch {
url = https://raw.githubusercontent.com/OSSystems/meta-browser/e4a667deaaf9a26a3a1aeb355770d1f29da549ad/recipes-browser/chromium/files/aarch64-skia-build-fix.patch;
postFetch = "substituteInPlace $out --replace __aarch64__ SK_CPU_ARM64";
diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-vaapi.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-vaapi.patch
deleted file mode 100644
index 38d77e21551..00000000000
--- a/pkgs/applications/networking/browsers/chromium/patches/chromium-vaapi.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From abc7295ca1653c85472916909f0eb76e28e79a58 Mon Sep 17 00:00:00 2001
-From: Akarshan Biswas
-Date: Thu, 24 Jan 2019 12:45:29 +0530
-Subject: [PATCH] Enable mojo with VDA2 on Linux
-
----
- chrome/browser/about_flags.cc | 8 ++++----
- chrome/browser/flag_descriptions.cc | 9 +++++++--
- chrome/browser/flag_descriptions.h | 10 ++++++++--
- gpu/config/software_rendering_list.json | 3 ++-
- media/media_options.gni | 9 ++++++---
- media/mojo/services/gpu_mojo_media_client.cc | 4 ++--
- 6 files changed, 29 insertions(+), 14 deletions(-)
-
-diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
-index 0a84c6ac1..be2aa1d8b 100644
---- a/chrome/browser/about_flags.cc
-+++ b/chrome/browser/about_flags.cc
-@@ -1714,7 +1714,7 @@ const FeatureEntry kFeatureEntries[] = {
- "disable-accelerated-video-decode",
- flag_descriptions::kAcceleratedVideoDecodeName,
- flag_descriptions::kAcceleratedVideoDecodeDescription,
-- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
-+ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
- },
- #if defined(OS_WIN)
-@@ -2345,12 +2345,12 @@ const FeatureEntry kFeatureEntries[] = {
- FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
- #endif // ENABLE_ISOLATED_XR_SERVICE
- #endif // ENABLE_VR
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
- {"disable-accelerated-mjpeg-decode",
- flag_descriptions::kAcceleratedMjpegDecodeName,
-- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
-+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
- SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
--#endif // OS_CHROMEOS
-+#endif // OS_CHROMEOS // OS_LINUX
- {"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
- flag_descriptions::kV8CacheOptionsDescription, kOsAll,
- MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
-diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
-index 62637e092..86f89fc6e 100644
---- a/chrome/browser/flag_descriptions.cc
-+++ b/chrome/browser/flag_descriptions.cc
-@@ -3085,15 +3085,20 @@ const char kTextSuggestionsTouchBarDescription[] =
-
- #endif
-
--// Chrome OS -------------------------------------------------------------------
-+// Chrome OS Linux-------------------------------------------------------------------
-
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-
- const char kAcceleratedMjpegDecodeName[] =
- "Hardware-accelerated mjpeg decode for captured frame";
- const char kAcceleratedMjpegDecodeDescription[] =
- "Enable hardware-accelerated mjpeg decode for captured frame where "
- "available.";
-+#endif
-+
-+// Chrome OS --------------------------------------------------
-+
-+#if defined(OS_CHROMEOS)
-
- const char kAllowTouchpadThreeFingerClickName[] = "Touchpad three-finger-click";
- const char kAllowTouchpadThreeFingerClickDescription[] =
-diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
-index 5dac660bb..6cc4115da 100644
---- a/chrome/browser/flag_descriptions.h
-+++ b/chrome/browser/flag_descriptions.h
-@@ -1846,13 +1846,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
-
- #endif // defined(OS_MACOSX)
-
--// Chrome OS ------------------------------------------------------------------
-+// Chrome OS and Linux ------------------------------------------------------------------
-
--#if defined(OS_CHROMEOS)
-+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-
- extern const char kAcceleratedMjpegDecodeName[];
- extern const char kAcceleratedMjpegDecodeDescription[];
-
-+#endif // defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
-+
-+// Chrome OS ------------------------------------------------------------------------
-+
-+#if defined(OS_CHROMEOS)
-+
- extern const char kAllowTouchpadThreeFingerClickName[];
- extern const char kAllowTouchpadThreeFingerClickDescription[];
-
-diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
-index 65f37b3f1..ae8a1718f 100644
---- a/gpu/config/software_rendering_list.json
-+++ b/gpu/config/software_rendering_list.json
-@@ -371,11 +371,12 @@
- },
- {
- "id": 48,
-- "description": "Accelerated video decode is unavailable on Linux",
-+ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms",
- "cr_bugs": [137247],
- "os": {
- "type": "linux"
- },
-+ "vendor_id": "0x10de",
- "features": [
- "accelerated_video_decode"
- ]
---
-2.20.1
-
diff --git a/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch b/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch
new file mode 100644
index 00000000000..db9d6082756
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch
@@ -0,0 +1,54 @@
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -635,6 +635,7 @@
+ // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
+ // internal decoded frame.
+ if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
++ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
+ !vpp_vaapi_wrapper_) {
+ vpp_vaapi_wrapper_ = VaapiWrapper::Create(
+ VaapiWrapper::kVideoProcess, VAProfileNone,
+@@ -650,7 +651,8 @@
+ // only used as a copy destination. Therefore, the VaapiWrapper used and
+ // owned by |picture| is |vpp_vaapi_wrapper_|.
+ std::unique_ptr picture = vaapi_picture_factory_->Create(
+- (buffer_allocation_mode_ == BufferAllocationMode::kNone)
++ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
++ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
+ ? vaapi_wrapper_
+ : vpp_vaapi_wrapper_,
+ make_context_current_cb_, bind_image_cb_, buffers[i]);
+@@ -1077,6 +1079,14 @@
+
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
++ // NVIDIA blobs use VDPAU
++ if (base::StartsWith(VaapiWrapper::GetVendorStringForTesting(),
++ "Splitted-Desktop Systems VDPAU",
++ base::CompareCase::SENSITIVE)) {
++ LOG(INFO) << "VA-API driver on VDPAU backend";
++ return BufferAllocationMode::kWrapVdpau;
++ }
++
+ // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
+ // |output_mode_| as well.
+ if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
+@@ -1089,7 +1099,7 @@
+ // depends on the bitstream and sometimes it's not enough to cover the amount
+ // of frames needed by the client pipeline (see b/133733739).
+ // TODO(crbug.com/911754): Enable for VP9 Profile 2.
+- if (IsGeminiLakeOrLater() &&
++ if (false && IsGeminiLakeOrLater() &&
+ (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
+ // Add one to the reference frames for the one being currently egressed, and
+ // an extra allocation for both |client_| and |decoder_|, see
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+@@ -204,6 +204,7 @@
+ // Using |client_|s provided PictureBuffers and as many internally
+ // allocated.
+ kNormal,
++ kWrapVdpau,
+ };
+
+ // Decides the concrete buffer allocation mode, depending on the hardware
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 3ed06717f6a..4901d694f49 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -18,8 +18,9 @@ browser:
let
wrapper =
- { browserName ? browser.browserName or (builtins.parseDrvName browser.name).name
- , name ? (browserName + "-" + (builtins.parseDrvName browser.name).version)
+ { browserName ? browser.browserName or (lib.getName browser)
+ , pname ? browserName
+ , version ? lib.getVersion browser
, desktopName ? # browserName with first letter capitalized
(lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
, nameSuffix ? ""
@@ -83,7 +84,7 @@ let
gtk_modules = [ libcanberra-gtk2 ];
in stdenv.mkDerivation {
- inherit name;
+ inherit pname version;
desktopItem = makeDesktopItem {
name = browserName;
diff --git a/pkgs/applications/networking/c14/default.nix b/pkgs/applications/networking/c14/default.nix
index 3383d6838f7..c000a37ff02 100644
--- a/pkgs/applications/networking/c14/default.nix
+++ b/pkgs/applications/networking/c14/default.nix
@@ -17,7 +17,7 @@ buildGoPackage rec {
meta = with stdenv.lib; {
description = "C14 is designed for data archiving & long-term backups.";
- homepage = https://www.online.net/en/c14;
+ homepage = https://www.online.net/en/storage/c14-cold-storage;
license = licenses.mit;
maintainers = with maintainers; [ apeyroux ];
};
diff --git a/pkgs/applications/networking/datovka/default.nix b/pkgs/applications/networking/datovka/default.nix
index 676737d2a77..12bad094fca 100644
--- a/pkgs/applications/networking/datovka/default.nix
+++ b/pkgs/applications/networking/datovka/default.nix
@@ -11,11 +11,11 @@
mkDerivation rec {
pname = "datovka";
- version = "4.14.0";
+ version = "4.14.1";
src = fetchurl {
url = "https://secure.nic.cz/files/datove_schranky/${version}/${pname}-${version}.tar.xz";
- sha256 = "0q7zlq522wdgwxgd3jxmxvr3awclcy0mbw3qaymwzn2b8d35168r";
+ sha256 = "0jinxsm2zw77294vz9pjiqpgpzdwx5nijsi4nqzxna5rkmwdyxk6";
};
buildInputs = [ libisds qmake qtbase qtsvg libxml2 ];
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 09273b7caa5..b155f312964 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -2,19 +2,18 @@
, zlib, libxml2, gtk2, libnotify, speex, ffmpeg, libX11, libsoup, udev
, ortp, mediastreamer, sqlite, belle-sip, libosip, libexosip, bzrtp
, mediastreamer-openh264, bctoolbox, makeWrapper, fetchFromGitHub, cmake
-, libmatroska, bcunit, doxygen, gdk-pixbuf, glib, cairo, pango, polarssl
-, python, graphviz, belcard
+, libmatroska, bcunit, doxygen, gdk-pixbuf, glib, cairo, pango, mbedtls
+, python, graphviz, belcard, bcg729
, withGui ? true
}:
stdenv.mkDerivation rec {
- baseName = "linphone";
+ pname = "linphone";
version = "3.12.0";
- name = "${baseName}-${version}";
src = fetchFromGitHub {
owner = "BelledonneCommunications";
- repo = baseName;
+ repo = pname;
rev = version;
sha256 = "0az2ywrpx11sqfb4s4r2v726avcjf4k15bvrqj7xvhz7hdndmh0j";
};
@@ -27,21 +26,25 @@ stdenv.mkDerivation rec {
buildInputs = [
readline openldap cyrus_sasl libupnp zlib libxml2 gtk2 libnotify speex ffmpeg libX11
- polarssl libsoup udev ortp mediastreamer sqlite belle-sip libosip libexosip
- bctoolbox libmatroska bcunit gdk-pixbuf glib cairo pango bzrtp belcard
+ mbedtls libsoup udev ortp mediastreamer sqlite belle-sip libosip libexosip
+ bctoolbox libmatroska gdk-pixbuf glib cairo pango bzrtp belcard bcg729
];
nativeBuildInputs = [
- intltool pkgconfig makeWrapper cmake doxygen graphviz
+ intltool pkgconfig makeWrapper cmake bcunit doxygen graphviz
(python.withPackages (ps: [ ps.pystache ps.six ]))
];
- NIX_CFLAGS_COMPILE = " -Wno-error -I${glib.dev}/include/glib-2.0
- -I${glib.out}/lib/glib-2.0/include -I${gtk2.dev}/include/gtk-2.0/
- -I${cairo.dev}/include/cairo -I${pango.dev}/include/pango-1.0
- -I${gtk2}/lib/gtk-2.0/include
- -DLIBLINPHONE_GIT_VERSION=\"v${version}\"
- ";
+ NIX_CFLAGS_COMPILE = [
+ "-Wno-error"
+ "-I${glib.dev}/include/glib-2.0"
+ "-I${glib.out}/lib/glib-2.0/include"
+ "-I${gtk2.dev}/include/gtk-2.0/"
+ "-I${cairo.dev}/include/cairo"
+ "-I${pango.dev}/include/pango-1.0"
+ "-I${gtk2}/lib/gtk-2.0/include"
+ "-DLIBLINPHONE_GIT_VERSION=\"v${version}\""
+ ];
postInstall = ''
for i in $(cd $out/bin && ls); do
@@ -50,8 +53,8 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
- homepage = http://www.linphone.org/;
- description = "Open Source video SIP softphone";
+ homepage = https://www.linphone.org/;
+ description = "Open source SIP phone for voice/video calls and instant messaging";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
diff --git a/pkgs/applications/networking/instant-messengers/slack/update.sh b/pkgs/applications/networking/instant-messengers/slack/update.sh
index e5f79388353..6a15298c4e7 100755
--- a/pkgs/applications/networking/instant-messengers/slack/update.sh
+++ b/pkgs/applications/networking/instant-messengers/slack/update.sh
@@ -3,7 +3,7 @@
set -eu -o pipefail
-oldVersion="$(nix-instantiate --eval -E "with import ./. {}; slack-theme-black.version or (builtins.parseDrvName slack-theme-black.name).version" | tr -d '"')"
+oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion slack-theme-black" | tr -d '"')"
latestSha="$(curl -L -s https://api.github.com/repos/laCour/slack-night-mode/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')"
if [ ! "null" = "${latestSha}" ]; then
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
index e0632042493..6214d4e2625 100755
--- a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -3,7 +3,7 @@
set -eu -o pipefail
-oldVersion=$(nix-instantiate --eval -E "with import ./. {}; zoom-us.version or (builtins.parseDrvName zoom-us.name).version" | tr -d '"')
+oldVersion=$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion zoom-us" | tr -d '"')
version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
if [ ! "${oldVersion}" = "${version}" ]; then
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 98ab5f56352..6915cfd7982 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -1,21 +1,22 @@
{ stdenv, buildGoModule, fetchurl
-, go, ncurses, scdoc
+, go, ncurses, notmuch, scdoc
, python3, perl, w3m, dante
}:
buildGoModule rec {
pname = "aerc";
- version = "0.2.1";
+ version = "0.3.0";
src = fetchurl {
url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
- sha256 = "1ky1nl5b54lf5jnac2kb5404fplwnwypjplas8imdlsf517fw32n";
+ sha256 = "188jln8hmgiqn5il5m54bns0wk4grj09di8y6mmid58ibw6spma4";
};
nativeBuildInputs = [
go
scdoc
python3.pkgs.wrapPython
+ notmuch
];
patches = [
@@ -28,6 +29,8 @@ buildGoModule rec {
buildInputs = [ python3 perl ];
+ GOFLAGS="-tags=notmuch";
+
buildPhase = "
runHook preBuild
# we use make instead of go build
@@ -43,12 +46,12 @@ buildGoModule rec {
postFixup = ''
wrapProgram $out/bin/aerc --prefix PATH ":" \
- "$out/share/aerc/filters:${stdenv.lib.makeBinPath [ ncurses.dev ]}"
+ "$out/share/aerc/filters:${stdenv.lib.makeBinPath [ ncurses ]}"
wrapProgram $out/share/aerc/filters/html --prefix PATH ":" \
${stdenv.lib.makeBinPath [ w3m dante ]}
'';
- modSha256 = "0fc9m1qb8innypc8cxzbqyrfkawawyaqq3gqy7lqwmyh32f300jh";
+ modSha256 = "0pxbv4zfhii0g41cy0ycfpkkxw6nnd4ibavic6zqw30j476jnm2x";
meta = with stdenv.lib; {
description = "aerc is an email client for your terminal";
diff --git a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
index 4ff1283b5e3..ed670d61a7b 100644
--- a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
+++ b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
@@ -1,18 +1,19 @@
-From 7ea68a2eef026723903d72f54ca54b629881ec06 Mon Sep 17 00:00:00 2001
+From 6cf3c2e42d219b9665a43ca65f321c653b0aa102 Mon Sep 17 00:00:00 2001
From: Tadeo Kondrak
Date: Mon, 28 Oct 2019 08:36:36 -0600
Subject: [PATCH] Fix aerc breaking every time the package is rebuilt.
On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc
-fills it in as part of the default config. Fix this by not substituting
-@SHAREDIR@ in the default config until runtime.
+fills it in as part of the default config and then installs that config
+to the users home folder. Fix this by not substituting @SHAREDIR@ in the
+default config until runtime.
---
Makefile | 2 +-
- config/config.go | 3 +++
- 2 files changed, 4 insertions(+), 1 deletion(-)
+ config/config.go | 8 ++++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index d3072d3..17ca0be 100644
+index d1c755d..1185a96 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,7 @@ aerc: $(GOSRC)
@@ -25,10 +26,22 @@ index d3072d3..17ca0be 100644
DOCS := \
aerc.1 \
diff --git a/config/config.go b/config/config.go
-index bfcbecf..2f4e703 100644
+index 32d07fc..8ffd3e8 100644
--- a/config/config.go
+++ b/config/config.go
-@@ -377,6 +377,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
+@@ -355,6 +355,11 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
+ return nil, err
+ }
+ }
++ if sec, err := file.GetSection("templates"); err == nil {
++ if key, err := sec.GetKey("template-dirs"); err == nil {
++ sec.NewKey("template-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir))
++ }
++ }
+ file.NameMapper = mapName
+ config := &AercConfig{
+ Bindings: BindingConfig{
+@@ -423,6 +428,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
if err = config.LoadConfig(file); err != nil {
return nil, err
}
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index db82cc54135..68e10ed4e3e 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -103,6 +103,8 @@ let
git-imerge = callPackage ./git-imerge { };
+ git-machete = python3Packages.callPackage ./git-machete { };
+
git-octopus = callPackage ./git-octopus { };
git-open = callPackage ./git-open { };
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
new file mode 100644
index 00000000000..aafaa6659d3
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonApplication, fetchPypi
+, installShellFiles, pbr
+, flake8, mock, pycodestyle, pylint, tox }:
+
+buildPythonApplication rec {
+ pname = "git-machete";
+ version = "2.12.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "114kq396zq45jlibn1lp0nk4lmanj4w1bcn48gi7xzdm0y1nkzfq";
+ };
+
+ nativeBuildInputs = [ installShellFiles pbr ];
+
+ # TODO: Add missing check inputs (2019-11-22):
+ # - stestr
+ doCheck = false;
+ checkInputs = [ flake8 mock pycodestyle pylint tox ];
+
+ postInstall = ''
+ installShellCompletion --bash --name git-machete completion/git-machete.completion.bash
+ installShellCompletion --zsh --name _git-machete completion/git-machete.completion.zsh
+ '';
+
+ meta = with lib; {
+ homepage = https://github.com/VirtusLab/git-machete;
+ description = "Git repository organizer and rebase workflow automation tool";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.blitz ];
+ };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
index b196d39b46f..969ea7cc2fa 100644
--- a/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-subrepo/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
homepage = https://github.com/ingydotnet/git-subrepo;
description = "Git submodule alternative";
license = licenses.mit;
- platforms = platforms.linux;
+ platforms = platforms.unix ++ platforms.darwin;
maintainers = [ maintainers.ryantrinkle ];
};
}
diff --git a/pkgs/applications/version-management/git-and-tools/git/update.sh b/pkgs/applications/version-management/git-and-tools/git/update.sh
index 05944014743..1f1a29782ec 100755
--- a/pkgs/applications/version-management/git-and-tools/git/update.sh
+++ b/pkgs/applications/version-management/git-and-tools/git/update.sh
@@ -3,7 +3,7 @@
set -eu -o pipefail
-oldVersion="$(nix-instantiate --eval -E "with import ./. {}; git.version or (builtins.parseDrvName git.name).version" | tr -d '"')"
+oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')"
latestTag="$(git ls-remote --tags --sort="v:refname" git://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')"
if [ ! "${oldVersion}" = "${latestTag}" ]; then
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 42cc127e40d..722bbc11b30 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,9 +1,9 @@
{
- "version": "12.4.2",
- "repo_hash": "00y8n0y7wydwxq62fyf7hcpx90zz5sw458m2773lz7pdgnpnrdc2",
+ "version": "12.4.3",
+ "repo_hash": "1qsd3qxvvb3rbyrlyrqvrday4c9s2krgics99ch7v74hprj3xfq9",
"owner": "gitlab-org",
"repo": "gitlab",
- "rev": "v12.4.2-ee",
+ "rev": "v12.4.3-ee",
"passthru": {
"GITALY_SERVER_VERSION": "1.67.0",
"GITLAB_PAGES_VERSION": "1.11.0",
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
index 5b5d0b99bcf..d5ea22f960b 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
@@ -162,6 +162,15 @@
sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
};
}
+ {
+ goPackagePath = "github.com/golang/lint";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/lint";
+ rev = "06c8688daad7";
+ sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47";
+ };
+ }
{
goPackagePath = "github.com/golang/mock";
fetch = {
@@ -252,6 +261,15 @@
sha256 = "1zcq480ig7wbg4378qcfxznp2gzqmk7x6rbxizflvg9v2f376vrw";
};
}
+ {
+ goPackagePath = "github.com/kisielk/gotool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kisielk/gotool";
+ rev = "v1.0.0";
+ sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+ };
+ }
{
goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
fetch = {
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix
index 7081e1a0899..bf8e5652d99 100644
--- a/pkgs/applications/version-management/monotone/default.nix
+++ b/pkgs/applications/version-management/monotone/default.nix
@@ -5,7 +5,7 @@
let
version = "1.1";
- perlVersion = (builtins.parseDrvName perl.name).version;
+ perlVersion = stdenv.lib.getVersion perl;
in
assert perlVersion != "";
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 145b7cc06c2..ad175b24676 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -5,10 +5,10 @@
mkDerivation rec {
pname = "clipgrab";
- version = "3.8.5";
+ version = "3.8.6";
src = fetchurl {
- sha256 = "0jfjnzwvz4ynlld0ih7f7d575s5w2dag0hvb02c6qan7xm5jdhv9";
+ sha256 = "1w2j1wk9sf22nnschlraxdbxabqblrxyb8kq0lkyk7dkfa5d0hdq";
# The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
};
diff --git a/pkgs/applications/video/vdr/wrapper.nix b/pkgs/applications/video/vdr/wrapper.nix
index 497ad7c77a0..50d3b9d65a8 100644
--- a/pkgs/applications/video/vdr/wrapper.nix
+++ b/pkgs/applications/video/vdr/wrapper.nix
@@ -8,7 +8,7 @@
in symlinkJoin {
- name = "vdr-with-plugins-${(builtins.parseDrvName vdr.name).version}";
+ name = "vdr-with-plugins-${lib.getVersion vdr}";
paths = [ vdr ] ++ plugins;
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index c0080329487..e475c4ed78a 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -16,7 +16,7 @@ let
else
throw "Unsupported architecture";
- version = (builtins.parseDrvName edk2.name).version;
+ version = lib.getVersion edk2;
in
edk2.mkDerivation projectDscPath {
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 4a56f00db49..0abce22c676 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -34,8 +34,8 @@ let
targetPrefix = stdenv.lib.optionalString (targetPlatform != hostPlatform)
(targetPlatform.config + "-");
- bintoolsVersion = (builtins.parseDrvName bintools.name).version;
- bintoolsName = (builtins.parseDrvName bintools.name).name;
+ bintoolsVersion = stdenv.lib.getVersion bintools;
+ bintoolsName = stdenv.lib.removePrefix targetPrefix (stdenv.lib.getName bintools);
libc_bin = if libc == null then null else getBin libc;
libc_dev = if libc == null then null else getDev libc;
@@ -74,7 +74,7 @@ in
stdenv.mkDerivation {
name = targetPrefix
- + (if name != "" then name else stdenv.lib.removePrefix targetPrefix "${bintoolsName}-wrapper")
+ + (if name != "" then name else "${bintoolsName}-wrapper")
+ (stdenv.lib.optionalString (bintools != null && bintoolsVersion != "") "-${bintoolsVersion}");
preferLocalBuild = true;
@@ -184,6 +184,7 @@ stdenv.mkDerivation {
else if targetPlatform.isMsp430 then "msp430"
else if targetPlatform.isAvr then "avr"
else if targetPlatform.isAlpha then "alpha"
+ else if targetPlatform.isVc4 then "vc4"
else throw "unknown emulation for platform: ${targetPlatform.config}";
in if targetPlatform.useLLVM or false then ""
else targetPlatform.platform.bfdEmulation or (fmt + sep + arch);
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index d6037552ef6..d02f47fde8c 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -35,8 +35,8 @@ let
targetPrefix = stdenv.lib.optionalString (targetPlatform != hostPlatform)
(targetPlatform.config + "-");
- ccVersion = (builtins.parseDrvName cc.name).version;
- ccName = (builtins.parseDrvName cc.name).name;
+ ccVersion = stdenv.lib.getVersion cc;
+ ccName = stdenv.lib.removePrefix targetPrefix (stdenv.lib.getName cc);
libc_bin = if libc == null then null else getBin libc;
libc_dev = if libc == null then null else getDev libc;
@@ -94,7 +94,7 @@ assert nativePrefix == bintools.nativePrefix;
stdenv.mkDerivation {
name = targetPrefix
- + (if name != "" then name else stdenv.lib.removePrefix targetPrefix "${ccName}-wrapper")
+ + (if name != "" then name else "${ccName}-wrapper")
+ (stdenv.lib.optionalString (cc != null && ccVersion != "") "-${ccVersion}");
preferLocalBuild = true;
diff --git a/pkgs/build-support/setup-hooks/set-java-classpath.sh b/pkgs/build-support/setup-hooks/set-java-classpath.sh
index 5d3548dc2e8..445fa56d61d 100644
--- a/pkgs/build-support/setup-hooks/set-java-classpath.sh
+++ b/pkgs/build-support/setup-hooks/set-java-classpath.sh
@@ -6,7 +6,7 @@ export CLASSPATH
addPkgToClassPath () {
local jar
for jar in $1/share/java/*.jar; do
- export CLASSPATH=''${CLASSPATH}''${CLASSPATH:+:}''${jar}
+ export CLASSPATH=''${CLASSPATH-}''${CLASSPATH:+:}''${jar}
done
}
diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version
index 591ffa6ca5b..0a436ff02a3 100755
--- a/pkgs/common-updater/scripts/update-source-version
+++ b/pkgs/common-updater/scripts/update-source-version
@@ -92,8 +92,8 @@ if [ -z "$oldUrl" ]; then
die "Couldn't evaluate source url from '$attr.src'!"
fi
-drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; (builtins.parseDrvName $attr.name).name" | tr -d '"')
-oldVersion=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.${versionKey} or (builtins.parseDrvName $attr.name).version" | tr -d '"')
+drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; lib.getName $attr" | tr -d '"')
+oldVersion=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.${versionKey} or lib.getVersion $attr" | tr -d '"')
if [ -z "$drvName" -o -z "$oldVersion" ]; then
die "Couldn't evaluate name and version from '$attr.name'!"
diff --git a/pkgs/misc/themes/adapta-kde/default.nix b/pkgs/data/themes/adapta-kde/default.nix
similarity index 83%
rename from pkgs/misc/themes/adapta-kde/default.nix
rename to pkgs/data/themes/adapta-kde/default.nix
index a7624d2889b..47740aa6762 100644
--- a/pkgs/misc/themes/adapta-kde/default.nix
+++ b/pkgs/data/themes/adapta-kde/default.nix
@@ -2,16 +2,16 @@
stdenv.mkDerivation rec {
pname = "adapta-kde-theme";
- version = "20180512";
+ version = "20180828";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = "adapta-kde";
rev = version;
- sha256 = "1lgpkylhzbayk892inql16sjyy9d3v126f9i1v7qgha1203rwcji";
+ sha256 = "1q85678sff8is2kwvgd703ckcns42gdga2c1rqlp61gb6bqf09j8";
};
- makeFlags = ["PREFIX=$(out)" ];
+ makeFlags = [ "PREFIX=$(out)" ];
# Make this a fixed-output derivation
outputHashMode = "recursive";
diff --git a/pkgs/misc/themes/adapta/default.nix b/pkgs/data/themes/adapta/default.nix
similarity index 100%
rename from pkgs/misc/themes/adapta/default.nix
rename to pkgs/data/themes/adapta/default.nix
diff --git a/pkgs/misc/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
similarity index 100%
rename from pkgs/misc/themes/adwaita-qt/default.nix
rename to pkgs/data/themes/adwaita-qt/default.nix
diff --git a/pkgs/misc/themes/albatross/default.nix b/pkgs/data/themes/albatross/default.nix
similarity index 100%
rename from pkgs/misc/themes/albatross/default.nix
rename to pkgs/data/themes/albatross/default.nix
diff --git a/pkgs/misc/themes/arc-kde/default.nix b/pkgs/data/themes/arc-kde/default.nix
similarity index 73%
rename from pkgs/misc/themes/arc-kde/default.nix
rename to pkgs/data/themes/arc-kde/default.nix
index decdbdfac2d..4937a99daec 100644
--- a/pkgs/misc/themes/arc-kde/default.nix
+++ b/pkgs/data/themes/arc-kde/default.nix
@@ -1,17 +1,17 @@
{ stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "arc-kde-theme";
- version = "2017-11-09";
+ version = "20180614";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = "arc-kde";
- rev = "a0abe6fc5ebf74f9ae88b8a2035957cc16f706f5";
- sha256 = "1p6f4ny97096nb054lrgyjwikmvg0qlbcnsjag7m5dfbclfnvzkg";
+ rev = version;
+ sha256 = "0wli16k9my7m8a9561545vjwfifmxm4w606z1h0j08msvlky40xw";
};
- makeFlags = ["PREFIX=$(out)" ];
+ makeFlags = [ "PREFIX=$(out)" ];
# Make this a fixed-output derivation
outputHashMode = "recursive";
diff --git a/pkgs/misc/themes/blackbird/default.nix b/pkgs/data/themes/blackbird/default.nix
similarity index 100%
rename from pkgs/misc/themes/blackbird/default.nix
rename to pkgs/data/themes/blackbird/default.nix
diff --git a/pkgs/misc/themes/clearlooks-phenix/default.nix b/pkgs/data/themes/clearlooks-phenix/default.nix
similarity index 89%
rename from pkgs/misc/themes/clearlooks-phenix/default.nix
rename to pkgs/data/themes/clearlooks-phenix/default.nix
index 7c1eb54f92f..2f701b9b765 100644
--- a/pkgs/misc/themes/clearlooks-phenix/default.nix
+++ b/pkgs/data/themes/clearlooks-phenix/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
stdenv.mkDerivation rec {
version = "7.0.1";
pname = "clearlooks-phenix";
- src = fetchurl {
+ src = fetchzip {
url = "https://github.com/jpfleury/clearlooks-phenix/archive/${version}.tar.gz";
- sha256 = "1x2psfbhxc3bk3q795bafxv6p890yfsankfw64p44q4r1x0236ra";
+ sha256 = "1b6y4l3rf3c5r4v72fyj3ppvnvw13kvr2a1dyl63ni1jxnlk50kd";
};
dontBuild = true;
diff --git a/pkgs/misc/themes/e17gtk/default.nix b/pkgs/data/themes/e17gtk/default.nix
similarity index 100%
rename from pkgs/misc/themes/e17gtk/default.nix
rename to pkgs/data/themes/e17gtk/default.nix
diff --git a/pkgs/misc/themes/equilux-theme/default.nix b/pkgs/data/themes/equilux-theme/default.nix
similarity index 100%
rename from pkgs/misc/themes/equilux-theme/default.nix
rename to pkgs/data/themes/equilux-theme/default.nix
diff --git a/pkgs/misc/themes/gnome-breeze/default.nix b/pkgs/data/themes/gnome-breeze/default.nix
similarity index 100%
rename from pkgs/misc/themes/gnome-breeze/default.nix
rename to pkgs/data/themes/gnome-breeze/default.nix
diff --git a/pkgs/misc/themes/kde2/default.nix b/pkgs/data/themes/kde2/default.nix
similarity index 58%
rename from pkgs/misc/themes/kde2/default.nix
rename to pkgs/data/themes/kde2/default.nix
index fac8c38eeca..547e4f30aa6 100644
--- a/pkgs/misc/themes/kde2/default.nix
+++ b/pkgs/data/themes/kde2/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, fetchFromGitHub, mkDerivation
+{ lib, fetchFromGitHub, mkDerivation
, cmake, extra-cmake-modules
-, qtbase, kcoreaddons, kdecoration }:
+, qtbase, kcoreaddons, kdecoration
+}:
-let
- version = "2017-03-15";
-in mkDerivation rec {
+mkDerivation rec {
pname = "kde2-decoration";
- inherit version;
+ version = "1.0";
src = fetchFromGitHub {
owner = "repos-holder";
repo = "kdecoration2-kde2";
- rev = "2a9cf18ac0646b3532d4db2dd28bd73c4c229783";
- sha256 = "0kilw6sd3blvm6gx9w4w5ivkjfxlv6wnyivw46pwwvhgxqymkbxk";
+ rev = version;
+ sha256 = "1766z9wscybcqvr828xih93b3rab3hb0ghsf818iflhp1xy0js08";
};
enableParallelBuilding = true;
@@ -21,9 +20,9 @@ in mkDerivation rec {
buildInputs = [ qtbase kcoreaddons kdecoration ];
- meta = with stdenv.lib; {
+ meta = with lib; {
description = "KDE 2 window decoration ported to Plasma 5";
- homepage = src.meta.homepage;
+ homepage = "https://github.com/repos-holder/kdecoration2-kde2";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = with maintainers; [ gnidorah ];
diff --git a/pkgs/misc/themes/numix-solarized/default.nix b/pkgs/data/themes/numix-solarized/default.nix
similarity index 100%
rename from pkgs/misc/themes/numix-solarized/default.nix
rename to pkgs/data/themes/numix-solarized/default.nix
diff --git a/pkgs/misc/themes/numix-sx/default.nix b/pkgs/data/themes/numix-sx/default.nix
similarity index 100%
rename from pkgs/misc/themes/numix-sx/default.nix
rename to pkgs/data/themes/numix-sx/default.nix
diff --git a/pkgs/misc/themes/numix/default.nix b/pkgs/data/themes/numix/default.nix
similarity index 100%
rename from pkgs/misc/themes/numix/default.nix
rename to pkgs/data/themes/numix/default.nix
diff --git a/pkgs/misc/themes/onestepback/default.nix b/pkgs/data/themes/onestepback/default.nix
similarity index 100%
rename from pkgs/misc/themes/onestepback/default.nix
rename to pkgs/data/themes/onestepback/default.nix
diff --git a/pkgs/misc/themes/orion/default.nix b/pkgs/data/themes/orion/default.nix
similarity index 100%
rename from pkgs/misc/themes/orion/default.nix
rename to pkgs/data/themes/orion/default.nix
diff --git a/pkgs/misc/themes/paper/default.nix b/pkgs/data/themes/paper-gtk/default.nix
similarity index 100%
rename from pkgs/misc/themes/paper/default.nix
rename to pkgs/data/themes/paper-gtk/default.nix
diff --git a/pkgs/misc/themes/qtcurve/default.nix b/pkgs/data/themes/qtcurve/default.nix
similarity index 95%
rename from pkgs/misc/themes/qtcurve/default.nix
rename to pkgs/data/themes/qtcurve/default.nix
index 0071e386e88..673b97cc137 100644
--- a/pkgs/misc/themes/qtcurve/default.nix
+++ b/pkgs/data/themes/qtcurve/default.nix
@@ -11,7 +11,7 @@ in mkDerivation {
pname = "qtcurve";
inherit version;
src = fetchurl {
- url = "http://download.kde.org/stable/qtcurve/qtcurve-${version}.tar.xz";
+ url = "https://download.kde.org/stable/qtcurve/qtcurve-${version}.tar.xz";
sha256 = "169gdny1cdld0qnx3nqvx568zjzdba4pwp3gxapc1hdh2cymw7r8";
};
diff --git a/pkgs/misc/themes/solarc/default.nix b/pkgs/data/themes/solarc/default.nix
similarity index 100%
rename from pkgs/misc/themes/solarc/default.nix
rename to pkgs/data/themes/solarc/default.nix
diff --git a/pkgs/misc/themes/vertex/default.nix b/pkgs/data/themes/vertex/default.nix
similarity index 100%
rename from pkgs/misc/themes/vertex/default.nix
rename to pkgs/data/themes/vertex/default.nix
diff --git a/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index c801657f74b..0b833a876b6 100644
--- a/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
@@ -17,13 +17,13 @@
python3.pkgs.buildPythonApplication rec {
name = "accerciser-${version}";
- version = "3.34.1";
+ version = "3.34.2";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1awf7fcm52r23s51gllyybhywf2kljqkaw4znblajph9sawnfs3l";
+ sha256 = "1n6sy95j0r0v01sc9rbbpzikq2z4z42j8ah73hzmjdmck4iniik4";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index 36b89a31052..387f0ebdc44 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "file-roller";
- version = "3.32.2";
+ version = "3.32.3";
src = fetchurl {
url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0w8s6hakgsvb2nqwbv0lr8ki4cbf1pz5z3qwkb0b2k7ppbh7j2n6";
+ sha256 = "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy";
};
LANG = "en_US.UTF-8"; # postinstall.py
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index bfcf01591e5..f042bbd146a 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -34,11 +34,11 @@
stdenv.mkDerivation rec {
pname = "epiphany";
- version = "3.34.1";
+ version = "3.34.2";
src = fetchurl {
url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1nf1pqv3pdgrlq7fbic06rl3731dx5ihpfsphpai9grcmnbwjyx0";
+ sha256 = "18d48vcp2nxs63bddkdplslgbnlfq79pm2ivl8hk38kkggy3dahf";
};
# Tests need an X display
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 1e760c06029..a4e594331c3 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -14,10 +14,9 @@ lib.makeScope pkgs.newScope (self: with self; {
*/
removePackagesByName = packages: packagesToRemove:
let
- pkgName = drv: (builtins.parseDrvName drv.name).name;
- namesToRemove = map pkgName packagesToRemove;
+ namesToRemove = map lib.getName packagesToRemove;
in
- lib.filter (x: !(builtins.elem (pkgName x) namesToRemove)) packages;
+ lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;
maintainers = with pkgs.lib.maintainers; [ lethalman jtojnar hedning worldofpeace ];
diff --git a/pkgs/desktops/gnustep/make/setup-hook.sh b/pkgs/desktops/gnustep/make/setup-hook.sh
index 53138901116..b2b90f1e522 100644
--- a/pkgs/desktops/gnustep/make/setup-hook.sh
+++ b/pkgs/desktops/gnustep/make/setup-hook.sh
@@ -20,57 +20,57 @@ addEnvVars() {
local filename
for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do
- if case "$NIX_GNUSTEP_MAKEFILES_ADDITIONAL" in *"{$filename}"*) false;; *) true;; esac; then
+ if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
fi
done
local tmp="$1/lib/GNUstep/Applications"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
fi
tmp="$1/lib/GNUstep/Applications"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
fi
tmp="$1/lib/GNUstep/WebApplications"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_WEB_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
fi
tmp="$1/bin"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
fi
tmp="$1/sbin"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
fi
tmp="$1/lib/GNUstep"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARY-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
fi
tmp="$1/include"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then
- if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_HEADERS-}" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
else
export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
fi
fi
tmp="$1/lib"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARIES-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
fi
tmp="$1/share/GNUstep/Documentation"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
fi
tmp="$1/share/man"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_MAN-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
fi
tmp="$1/share/info"
- if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then
+ if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_INFO-}" in *"${tmp}"*) false;; *) true;; esac; then
addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
fi
}
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index d80f51831fd..a199a4a959d 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -43,11 +43,11 @@ let
propagate = out:
let setupHook = { writeScript }:
writeScript "setup-hook" ''
- if [ "''${hookName:-}" != postHook ]; then
+ if [[ "''${hookName-}" != postHook ]]; then
postHooks+=("source @dev@/nix-support/setup-hook")
else
# Propagate $${out} output
- propagatedUserEnvPkgs="$propagatedUserEnvPkgs @${out}@"
+ propagatedUserEnvPkgs+=" @${out}@"
if [ -z "$outputDev" ]; then
echo "error: \$outputDev is unset!" >&2
@@ -57,7 +57,7 @@ let
# Propagate $dev so that this setup hook is propagated
# But only if there is a separate $dev output
if [ "$outputDev" != out ]; then
- propagatedBuildInputs="$propagatedBuildInputs @dev@"
+ propagatedBuildInputs+=" @dev@"
fi
fi
'';
diff --git a/pkgs/development/compilers/chicken/4/eggDerivation.nix b/pkgs/development/compilers/chicken/4/eggDerivation.nix
index 4dc7ebe6671..16f9c413d4c 100644
--- a/pkgs/development/compilers/chicken/4/eggDerivation.nix
+++ b/pkgs/development/compilers/chicken/4/eggDerivation.nix
@@ -8,7 +8,7 @@
let
libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/";
overrides = import ./overrides.nix;
- baseName = (builtins.parseDrvName name).name;
+ baseName = lib.getName name;
override = if builtins.hasAttr baseName overrides
then
builtins.getAttr baseName overrides
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index c047d9e50ee..4844ddaa1fb 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -102,8 +102,8 @@ let majorVersion = "4";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
@@ -111,7 +111,7 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 78027bcdac4..dde72fb615d 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -107,8 +107,8 @@ let majorVersion = "4";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
@@ -116,7 +116,7 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix
index a6aab5c26d4..cc3912c6aee 100644
--- a/pkgs/development/compilers/gcc/5/default.nix
+++ b/pkgs/development/compilers/gcc/5/default.nix
@@ -98,8 +98,8 @@ let majorVersion = "5";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
@@ -107,7 +107,7 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix
index 4ec24dbe88e..fa69a2818c7 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
+{ stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin
@@ -9,6 +9,7 @@
, enableShared ? true
, enableLTO ? true
, texinfo ? null
+, flex
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, gmp, mpfr, libmpc, gettext, which
, libelf # optional, for link-time optimizations (LTO)
@@ -94,8 +95,8 @@ let majorVersion = "6";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
@@ -103,11 +104,16 @@ in
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
- src = fetchurl {
+ src = if stdenv.targetPlatform.isVc4 then fetchFromGitHub {
+ owner = "itszor";
+ repo = "gcc-vc4";
+ rev = "e90ff43f9671c760cf0d1dd62f569a0fb9bf8918";
+ sha256 = "0gxf66hwqk26h8f853sybphqa5ca0cva2kmrw5jsiv6139g0qnp8";
+ } else fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "0i89fksfp6wr1xg9l8296aslcymv2idn60ip31wr9s4pwin7kwby";
};
@@ -172,7 +178,8 @@ stdenv.mkDerivation ({
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl)
- ++ (optional javaAwtGtk pkgconfig);
+ ++ (optional javaAwtGtk pkgconfig)
+ ++ (optional (stdenv.targetPlatform.isVc4) flex);
# For building runtime libs
depsBuildTarget =
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index aa46a526389..d860cf64a38 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -72,13 +72,13 @@ let majorVersion = "7";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index 0874d4d085a..e6a9a6aa92c 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -64,13 +64,13 @@ let majorVersion = "8";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index f16dcb59b46..cece94e1b73 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -63,13 +63,13 @@ let majorVersion = "9";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
diff --git a/pkgs/development/compilers/gcc/snapshot/default.nix b/pkgs/development/compilers/gcc/snapshot/default.nix
index 5344b659169..ce76fd184f0 100644
--- a/pkgs/development/compilers/gcc/snapshot/default.nix
+++ b/pkgs/development/compilers/gcc/snapshot/default.nix
@@ -60,13 +60,13 @@ let majorVersion = "7";
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
- stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
- crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
+ stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+ crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
stdenv.mkDerivation ({
- name = crossNameAddon + "${name}${if stripped then "" else "-debug"}-${version}";
+ name = "${crossNameAddon}${name}${if stripped then "" else "-debug"}-${version}";
builder = ../builder.sh;
diff --git a/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix b/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix
index 56b69ea267f..943866d5f24 100644
--- a/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix
+++ b/pkgs/development/compilers/ghcjs-ng/configured-ghcjs-src.nix
@@ -16,7 +16,7 @@
}:
runCommand "configured-ghcjs-src" {
- buildInputs = [
+ nativeBuildInputs = [
perl
autoconf
automake
diff --git a/pkgs/development/compilers/scala/dotty-bare.nix b/pkgs/development/compilers/scala/dotty-bare.nix
index 5a01e295e49..675e91b302a 100644
--- a/pkgs/development/compilers/scala/dotty-bare.nix
+++ b/pkgs/development/compilers/scala/dotty-bare.nix
@@ -1,12 +1,12 @@
{ stdenv, fetchurl, makeWrapper, jre, ncurses }:
stdenv.mkDerivation rec {
- version = "0.14.0-RC1";
+ version = "0.20.0-RC1";
pname = "dotty-bare";
src = fetchurl {
url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
- sha256 = "0nrgsyhqjlpvnjqgb18pryr8q7knq3dq25jhp98s4wh76nssm1zr";
+ sha256 = "08qs3m32cbh6516gcwraa1b5k935awmjxls6kg6xll722hkdd9l6";
};
propagatedBuildInputs = [ jre ncurses.dev ] ;
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
homepage = http://dotty.epfl.ch/;
license = licenses.bsd3;
platforms = platforms.all;
- maintainers = [maintainers.karolchmist];
+ maintainers = [maintainers.karolchmist maintainers.virusdave];
};
}
diff --git a/pkgs/development/em-modules/generic/default.nix b/pkgs/development/em-modules/generic/default.nix
index d1e7ac882d7..a260beb5104 100644
--- a/pkgs/development/em-modules/generic/default.nix
+++ b/pkgs/development/em-modules/generic/default.nix
@@ -10,8 +10,8 @@ pkgs.stdenv.mkDerivation (
args //
{
- pname = "emscripten-${args.pname or (builtins.parseDrvName args.name).name}";
- version = args.version or (builtins.parseDrvName args.name).version;
+ pname = "emscripten-${lib.getName args}";
+ version = lib.getVersion args;
buildInputs = [ emscripten python ] ++ buildInputs;
nativeBuildInputs = [ emscripten python ] ++ nativeBuildInputs;
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index b5a7c2b467e..7b730fc3926 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "clojure";
- version = "1.10.1.469";
+ version = "1.10.1.489";
src = fetchurl {
url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
- sha256 = "0hpb6rixmgllss69vl9zlpb41svm4mx4xmfbq1q7y12jsxckzgpq";
+ sha256 = "12ks7adh5cx99l5vydppkqknk5nvv9vsj2k0afcwwxd897m794kz";
};
buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/lua-5/build-lua-package.nix b/pkgs/development/interpreters/lua-5/build-lua-package.nix
index 74ccb91030a..be7aa5fc09d 100644
--- a/pkgs/development/interpreters/lua-5/build-lua-package.nix
+++ b/pkgs/development/interpreters/lua-5/build-lua-package.nix
@@ -161,7 +161,7 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps"] // {
# enabled only for src.rock
setSourceRoot= let
- name_only=(builtins.parseDrvName name).name;
+ name_only= lib.getName name;
in
lib.optionalString (knownRockspec == null) ''
# format is rockspec_basename/source_basename
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index a74e883dca5..a9fc7d569ef 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "armadillo";
- version = "9.800.1";
+ version = "9.800.2";
src = fetchurl {
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
- sha256 = "1vnshgkz4d992kk2fwqigqfx7gx3145ryb8d2794hn2667h5gkzb";
+ sha256 = "0mslyfzwb8zdhchhj7szj25qi2ain7cnlsrzccrfm2mr4a6jv5h9";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/bcg729/default.nix b/pkgs/development/libraries/bcg729/default.nix
new file mode 100644
index 00000000000..4363948e830
--- /dev/null
+++ b/pkgs/development/libraries/bcg729/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bcg729";
+ version = "1.0.4";
+
+ src = fetchFromGitHub {
+ owner = "BelledonneCommunications";
+ repo = pname;
+ rev = version;
+ sha256 = "05s0c5ps3a763y0v34wg5zghj0cdjnq4ch7g81848xxry7q90fwa";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/BelledonneCommunications/bcg729/commit/a5907daf1b111e4ad7aab4f558f57e2af1e37e55.patch";
+ sha256 = "0445syfwj4w4chh8ak80rq77iqcr27924n1ld5snshk3d21nxd64";
+ })
+ (fetchpatch {
+ url = "https://github.com/BelledonneCommunications/bcg729/commit/697bf6653a8c7421f0e821ee8d42471246e6850f.patch";
+ sha256 = "1h3gf5sj2sg5cs5iv1lcav3lkqmd5jf4agvjzz83l89wd5f5hp5l";
+ })
+ (fetchpatch {
+ url = "https://github.com/BelledonneCommunications/bcg729/commit/d63ce04a93711820d9a6985b1d11d8d91ed8e6b6.patch";
+ sha256 = "1piwf63ci2gma6jd6b4adkvxirysvazf0vklb5pc6vx1g93nkgxs";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "Opensource implementation of both encoder and decoder of the ITU G729 Annex A/B speech codec";
+ homepage = "https://linphone.org/technical-corner/bcg729";
+ changelog = "https://gitlab.linphone.org/BC/public/bcg729/raw/${version}/NEWS";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ c0bw3b ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index 2730696344e..a9d21a1f5a9 100644
--- a/pkgs/development/libraries/bctoolbox/default.nix
+++ b/pkgs/development/libraries/bctoolbox/default.nix
@@ -1,19 +1,23 @@
-{stdenv, fetchFromGitHub, cmake, mbedtls, bcunit, srtp}:
+{ stdenv, fetchFromGitHub, cmake, bcunit, mbedtls }:
+
stdenv.mkDerivation rec {
- name = "${baseName}-${version}";
- baseName = "bctoolbox";
+ pname = "bctoolbox";
version = "0.6.0";
- buildInputs = [cmake mbedtls bcunit srtp];
+
+ nativeBuildInputs = [ cmake bcunit ];
+ buildInputs = [ mbedtls ];
+
src = fetchFromGitHub {
owner = "BelledonneCommunications";
- repo = baseName;
+ repo = pname;
rev = version;
sha256 = "1cxx243wyzkd4xnvpyqf97n0rjhfckpvw1vhwnbwshq3q6fra909";
};
meta = {
inherit version;
- description = ''Utilities library for Linphone'';
+ description = "Utilities library for Linphone";
+ homepage = "https://github.com/BelledonneCommunications/bctoolbox";
license = stdenv.lib.licenses.gpl2Plus ;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/libraries/belle-sip/default.nix b/pkgs/development/libraries/belle-sip/default.nix
index d4420e40ab6..1745614f741 100644
--- a/pkgs/development/libraries/belle-sip/default.nix
+++ b/pkgs/development/libraries/belle-sip/default.nix
@@ -1,15 +1,14 @@
-{ stdenv, antlr3_4, libantlr3c, jre, polarssl, fetchFromGitHub
+{ stdenv, antlr3_4, libantlr3c, jre, mbedtls, fetchFromGitHub
, cmake, zlib, bctoolbox
}:
stdenv.mkDerivation rec {
- baseName = "belle-sip";
+ pname = "belle-sip";
version = "1.6.3";
- name = "${baseName}-${version}";
src = fetchFromGitHub {
owner = "BelledonneCommunications";
- repo = baseName;
+ repo = pname;
rev = version;
sha256 = "0q70db1klvhca1af29bm9paka3gyii5hfbzrj4178gclsg7cj8fk";
};
@@ -24,18 +23,14 @@ stdenv.mkDerivation rec {
"-Wno-error=cast-function-type"
];
- propagatedBuildInputs = [ antlr3_4 libantlr3c polarssl bctoolbox ];
-
- configureFlags = [
- "--with-polarssl=${polarssl}"
- ];
+ propagatedBuildInputs = [ antlr3_4 libantlr3c mbedtls bctoolbox ];
# Fails to build with lots of parallel jobs
enableParallelBuilding = false;
meta = with stdenv.lib; {
- homepage = http://www.linphone.org/index.php/eng;
- description = "A Voice-over-IP phone";
+ homepage = https://linphone.org/technical-corner/belle-sip;
+ description = "Modern library implementing SIP (RFC 3261) transport, transaction and dialog layers";
license = licenses.gpl2;
platforms = platforms.all;
};
diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix
index 19768d77a8d..86a5e52353a 100644
--- a/pkgs/development/libraries/catch2/default.nix
+++ b/pkgs/development/libraries/catch2/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "catch2";
- version = "2.10.2";
+ version = "2.11.0";
src = fetchFromGitHub {
owner = "catchorg";
repo = "Catch2";
rev = "v${version}";
- sha256="01ldfv4337s3vdhsx415d49jchpvqy61c77dhnri30ip5af0ipjs";
+ sha256="1b07drrclvxj17s67ivypr9vr27rg0m36jqnrbci6f4wsp1b0gbl";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/misc/themes/gtk2/gtk-engine-bluecurve/default.nix b/pkgs/development/libraries/gtk-engine-bluecurve/default.nix
similarity index 100%
rename from pkgs/misc/themes/gtk2/gtk-engine-bluecurve/default.nix
rename to pkgs/development/libraries/gtk-engine-bluecurve/default.nix
diff --git a/pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix b/pkgs/development/libraries/gtk-engine-murrine/default.nix
similarity index 100%
rename from pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix
rename to pkgs/development/libraries/gtk-engine-murrine/default.nix
diff --git a/pkgs/misc/themes/gtk2/gtk-engines/default.nix b/pkgs/development/libraries/gtk-engines/default.nix
similarity index 100%
rename from pkgs/misc/themes/gtk2/gtk-engines/default.nix
rename to pkgs/development/libraries/gtk-engines/default.nix
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 845c911789d..9e03965441e 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -48,7 +48,7 @@ let
# Propagate $dev so that this setup hook is propagated
# But only if there is a separate $dev output
if [ "''${outputDev:?}" != out ]; then
- propagatedBuildInputs="$propagatedBuildInputs @dev@"
+ propagatedBuildInputs="''${propagatedBuildInputs-} @dev@"
fi
fi
'';
diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
index 6cf89669df0..fee21a6a923 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -20,5 +20,6 @@ mkDerivation {
kbookmarks kcompletion kconfig kcoreaddons kitemviews kjobwidgets kservice
kxmlgui qtbase qttools solid
];
+ outputs = [ "out" "dev" ];
patches = (copyPathsToStore (lib.readPathsFromFile ./. ./series));
}
diff --git a/pkgs/development/libraries/libmodule/default.nix b/pkgs/development/libraries/libmodule/default.nix
index bcd20c3b407..26b81d4d412 100644
--- a/pkgs/development/libraries/libmodule/default.nix
+++ b/pkgs/development/libraries/libmodule/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "libmodule";
- version = "4.2.0";
+ version = "5.0.0";
src = fetchFromGitHub {
owner = "FedeDP";
repo = "libmodule";
rev = version;
- sha256 = "1qn54pysdm0q7v1gnisd43i5i4ylf8s8an77jk6jd8qimysv08mx";
+ sha256 = "1cf81sl33xmfn5g150iqcdrjn0lpjlgp53mganwi6x7jda2qk7r6";
};
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index a338c9b49db..1605ec355cc 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -1,17 +1,16 @@
{ stdenv, pkgconfig, intltool, alsaLib, libpulseaudio, speex, gsm
, libopus, ffmpeg, libX11, libXv, libGLU, libGL, glew, libtheora, libvpx, SDL, libupnp
, ortp, libv4l, libpcap, srtp, fetchFromGitHub, cmake, bctoolbox, doxygen
-, python, libXext, libmatroska, openssl, fetchpatch
+, python, libXext, libmatroska, fetchpatch
}:
stdenv.mkDerivation rec {
- baseName = "mediastreamer2";
+ pname = "mediastreamer2";
version = "2.16.1";
- name = "${baseName}-${version}";
src = fetchFromGitHub {
owner = "BelledonneCommunications";
- repo = baseName;
+ repo = pname;
rev = version;
sha256 = "02745bzl2r1jqvdqzyv94fjd4w92zr976la4c4nfvsy52waqah7j";
};
@@ -31,19 +30,18 @@ stdenv.mkDerivation rec {
alsaLib libpulseaudio speex gsm libopus
ffmpeg libX11 libXv libGLU libGL glew libtheora libvpx SDL libupnp
ortp libv4l libpcap srtp bctoolbox libXext libmatroska
- openssl
];
NIX_CFLAGS_COMPILE = [
- "-DGIT_VERSION=\"v2.14.0\""
+ "-DGIT_VERSION=\"v${version}\""
"-Wno-error=deprecated-declarations"
"-Wno-error=cast-function-type"
];
- NIX_LDFLAGS = "-lXext -lssl";
+ NIX_LDFLAGS = "-lXext";
meta = with stdenv.lib; {
description = "A powerful and lightweight streaming engine specialized for voice/video telephony applications";
- homepage = http://www.linphone.org/technical-corner/mediastreamer2/overview;
+ homepage = http://www.linphone.org/technical-corner/mediastreamer2;
license = licenses.gpl2;
platforms = platforms.linux;
};
diff --git a/pkgs/development/libraries/mediastreamer/msopenh264.nix b/pkgs/development/libraries/mediastreamer/msopenh264.nix
index 38261bd1e53..f1e9fc30151 100644
--- a/pkgs/development/libraries/mediastreamer/msopenh264.nix
+++ b/pkgs/development/libraries/mediastreamer/msopenh264.nix
@@ -1,23 +1,30 @@
{ stdenv, autoreconfHook, pkgconfig, mediastreamer, openh264
-, fetchgit, cmake
+, fetchurl, fetchpatch, cmake
}:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
pname = "mediastreamer-openh264";
- version = "0.0pre20160801";
+ version = "1.2.1";
- src = fetchgit {
- url = "git://git.linphone.org/msopenh264.git";
- rev = "4cb4b134bf0f1538fd0c2c928eee2d5388115abc";
- sha256 = "001km4xy1ifwbg1c19ncc75h867fzfcxy9pxvl4pxqb64169xc1k";
+ src = fetchurl {
+ url = "https://www.linphone.org/releases/sources/plugins/msopenh264/msopenh264-${version}.tar.gz";
+ sha256 = "0rdxgazm52560g52pp6mp3mwx6j1z3h2zyizzfycp8y8zi92fqm8";
};
+ patches = [
+ (fetchpatch {
+ name = "msopenh264-build-with-openh264-v2.patch";
+ url = "https://git.pld-linux.org/?p=packages/mediastreamer-plugin-msopenh264.git;a=blob_plain;f=mediastreamer-plugin-msopenh264-openh264.patch;hb=344b8af379701a7e58b4ffb3cbac1517eff079fd";
+ sha256 = "10c24b0afchx78q28176pd8iz7i1nlf57f6v6lyqxpz60fm5nrcc";
+ })
+ ];
+
nativeBuildInputs = [ autoreconfHook cmake pkgconfig ];
buildInputs = [ mediastreamer openh264 ];
meta = with stdenv.lib; {
description = "H.264 encoder/decoder plugin for mediastreamer2";
- homepage = http://www.linphone.org/technical-corner/mediastreamer2/overview;
+ homepage = "https://www.linphone.org/technical-corner/mediastreamer2";
license = licenses.gpl2;
platforms = platforms.linux;
};
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix
index 58f355b27fe..7be0e4bb06a 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/default.nix
@@ -1,13 +1,12 @@
{ stdenv, cmake, fetchFromGitHub, bctoolbox }:
stdenv.mkDerivation rec {
- baseName = "ortp";
+ pname = "ortp";
version = "1.0.2";
- name = "${baseName}-${version}";
src = fetchFromGitHub {
owner = "BelledonneCommunications";
- repo = baseName;
+ repo = pname;
rev = version;
sha256 = "12cwv593bsdnxs0zfcp07vwyk7ghlz2wv7vdbs1ksv293w3vj2rv";
};
@@ -17,8 +16,8 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A Real-Time Transport Protocol (RFC3550) stack";
- homepage = http://www.linphone.org/index.php/eng/code_review/ortp;
- license = licenses.lgpl21;
+ homepage = https://linphone.org/technical-corner/ortp;
+ license = licenses.gpl2Plus;
platforms = platforms.all;
};
}
diff --git a/pkgs/development/libraries/science/math/caffe2/default.nix b/pkgs/development/libraries/science/math/caffe2/default.nix
index 26ec1237601..a5c373ecde9 100644
--- a/pkgs/development/libraries/science/math/caffe2/default.nix
+++ b/pkgs/development/libraries/science/math/caffe2/default.nix
@@ -57,7 +57,7 @@ let
dst = "pybind11";
};
- ccVersion = (builtins.parseDrvName stdenv.cc.name).version;
+ ccVersion = lib.getVersion stdenv.cc;
in
stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index 076376dc3c1..a7d01e22d96 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -1,6 +1,6 @@
{
stdenv,
- fetchurl,
+ fetchFromGitHub,
gfortran,
cmake,
python2,
@@ -8,19 +8,22 @@
}:
let
inherit (stdenv.lib) optional;
- version = "3.8.0";
+ version = "3.9.0";
in
stdenv.mkDerivation {
pname = "liblapack";
inherit version;
- src = fetchurl {
- url = "http://www.netlib.org/lapack/lapack-${version}.tar.gz";
- sha256 = "1xmwi2mqmipvg950gb0rhgprcps8gy8sjm8ic9rgy2qjlv22rcny";
+
+ src = fetchFromGitHub {
+ owner = "Reference-LAPACK";
+ repo = "lapack";
+ rev = "v${version}";
+ sha256 = "0sxnc97z67i7phdmcnq8f8lmxgw10wdwvr8ami0w3pb179cgrbpb";
};
- buildInputs = [ gfortran cmake ];
- nativeBuildInputs = [ python2 ];
+ buildInputs = [ gfortran ];
+ nativeBuildInputs = [ python2 cmake ];
cmakeFlags = [
"-DCMAKE_Fortran_FLAGS=-fPIC"
diff --git a/pkgs/development/libraries/tiledb/default.nix b/pkgs/development/libraries/tiledb/default.nix
new file mode 100644
index 00000000000..605307e080e
--- /dev/null
+++ b/pkgs/development/libraries/tiledb/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, zlib
+, lz4
+, bzip2
+, zstd
+, spdlog_0
+, tbb
+, openssl
+, boost
+, libpqxx
+, clang-tools
+, catch2
+, python
+, gtest
+, doxygen
+}:
+
+stdenv.mkDerivation rec {
+ pname = "tiledb";
+ version = "1.7.0";
+
+ src = fetchFromGitHub {
+ owner = "TileDB-Inc";
+ repo = "TileDB";
+ rev = version;
+ sha256 = "07wh9q72vsaf5j2m2c6cfmllwhr3m9f8xzg8h0i6mhd7d0wr4lna";
+ };
+
+ nativeBuildInputs = [
+ clang-tools
+ cmake
+ python
+ doxygen
+ ];
+
+ checkInputs = [
+ gtest
+ ];
+
+ enableParallelBuilding = true;
+
+ buildInputs = [
+ catch2
+ zlib
+ lz4
+ bzip2
+ zstd
+ spdlog_0
+ tbb
+ openssl
+ boost
+ libpqxx
+ ];
+
+ # emulate the process of pulling catch down
+ postPatch = ''
+ mkdir -p build/externals/src/ep_catch
+ ln -sf ${catch2}/include/catch2 build/externals/src/ep_catch/single_include
+ '';
+
+ doCheck = false; # 9 failing tests due to what seems an overflow
+
+ installTargets = [ "install-tiledb" "doc" ];
+
+ meta = with lib; {
+ description = "TileDB allows you to manage the massive dense and sparse multi-dimensional array data";
+ homepage = https://github.com/TileDB-Inc/TileDB;
+ license = licenses.mit;
+ platforms = [ "x86_64-linux"];
+ maintainers = with maintainers; [ rakesh4g ];
+ };
+
+}
diff --git a/pkgs/development/lisp-modules/openssl-lib-marked.nix b/pkgs/development/lisp-modules/openssl-lib-marked.nix
index e2c632b8eba..186ef14b406 100644
--- a/pkgs/development/lisp-modules/openssl-lib-marked.nix
+++ b/pkgs/development/lisp-modules/openssl-lib-marked.nix
@@ -2,7 +2,7 @@ with import ../../../default.nix {};
runCommand "openssl-lib-marked" {} ''
mkdir -p "$out/lib"
for lib in ssl crypto; do
- version="${(builtins.parseDrvName openssl.name).version}"
+ version="${lib.getVersion openssl}"
ln -s "${lib.getLib openssl}/lib/lib$lib.so" "$out/lib/lib$lib.so.$version"
version="$(echo "$version" | sed -re 's/[a-z]+$//')"
while test -n "$version"; do
diff --git a/pkgs/development/misc/vc4/newlib.nix b/pkgs/development/misc/vc4/newlib.nix
new file mode 100644
index 00000000000..e1a8b2eeaa6
--- /dev/null
+++ b/pkgs/development/misc/vc4/newlib.nix
@@ -0,0 +1,28 @@
+{ stdenv, texinfo, flex, bison, fetchFromGitHub, crossLibcStdenv, buildPackages }:
+
+crossLibcStdenv.mkDerivation {
+ name = "newlib";
+ src = fetchFromGitHub {
+ owner = "itszor";
+ repo = "newlib-vc4";
+ rev = "89abe4a5263d216e923fbbc80495743ff269a510";
+ sha256 = "131r4v0nn68flnqibjcvhsrys3hs89bn0i4vwmrzgjd7v1rbgqav";
+ };
+ dontUpdateAutotoolsGnuConfigScripts = true;
+ configurePlatforms = [ "target" ];
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ texinfo flex bison ];
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ # newlib expects CC to build for build platform, not host platform
+ preConfigure = ''
+ export CC=cc
+ '';
+
+ dontStrip = true;
+
+ passthru = {
+ incdir = "/${stdenv.targetPlatform.config}/include";
+ libdir = "/${stdenv.targetPlatform.config}/lib";
+ };
+}
diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix
index b98178ef2eb..79c7919a354 100644
--- a/pkgs/development/perl-modules/generic/default.nix
+++ b/pkgs/development/perl-modules/generic/default.nix
@@ -31,15 +31,15 @@ toPerlModule(stdenv.mkDerivation (
# https://metacpan.org/pod/release/XSAWYERX/perl-5.26.0/pod/perldelta.pod#Removal-of-the-current-directory-%28%22.%22%29-from-@INC
PERL_USE_UNSAFE_INC = "1";
- meta.homepage = "https://metacpan.org/release/${attrs.pname or (builtins.parseDrvName attrs.name).name}"; # TODO: phase-out `attrs.name`
+ meta.homepage = "https://metacpan.org/release/${lib.getName attrs}"; # TODO: phase-out `attrs.name`
meta.platforms = perl.meta.platforms;
}
attrs
)
//
{
- pname = "perl${perl.version}-${attrs.pname or (builtins.parseDrvName attrs.name).name}"; # TODO: phase-out `attrs.name`
- version = attrs.version or (builtins.parseDrvName attrs.name).version; # TODO: phase-out `attrs.name`
+ pname = "perl${perl.version}-${lib.getName attrs}"; # TODO: phase-out `attrs.name`
+ version = lib.getVersion attrs; # TODO: phase-out `attrs.name`
builder = ./builder.sh;
buildInputs = buildInputs ++ [ perl ];
nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ];
diff --git a/pkgs/development/python-modules/catalogue/default.nix b/pkgs/development/python-modules/catalogue/default.nix
new file mode 100644
index 00000000000..f9ad5933843
--- /dev/null
+++ b/pkgs/development/python-modules/catalogue/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, importlib-metadata
+}:
+
+buildPythonPackage rec {
+ pname = "catalogue";
+ version = "0.0.7";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0m7xp85fg57wi1l1vdsq2k0b8dv5bnfccds33lb04z9vrds4l3jv";
+ };
+
+ propagatedBuildInputs = [ importlib-metadata ];
+
+ meta = with stdenv.lib; {
+ description = "Tiny library for adding function or object registries";
+ homepage = "https://github.com/explosion/catalogue";
+ license = licenses.mit;
+ maintainers = with maintainers; [ danieldk ];
+ };
+}
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index 23f2a6967da..e35ea517bf1 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -21,16 +21,17 @@
, blis
, wasabi
, srsly
+, catalogue
, setuptools
}:
buildPythonPackage rec {
pname = "spacy";
- version = "2.2.2";
+ version = "2.2.3";
src = fetchPypi {
inherit pname version;
- sha256 = "193r7rrqxfj4jqzk4aqgbycficzmc606vkc4ffc46zs3myhlf6sa";
+ sha256 = "0shfjk6nhm6gzp5p88pz5k7bkg5dr3x9yvandkayqb2vsvkwj50x";
};
propagatedBuildInputs = [
@@ -51,6 +52,7 @@ buildPythonPackage rec {
blis
wasabi
srsly
+ catalogue
setuptools
] ++ lib.optional (pythonOlder "3.4") pathlib;
diff --git a/pkgs/development/python-modules/tiledb/default.nix b/pkgs/development/python-modules/tiledb/default.nix
new file mode 100644
index 00000000000..b8894f12c6a
--- /dev/null
+++ b/pkgs/development/python-modules/tiledb/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, python
+, buildPythonPackage
+, fetchFromGitHub
+, cython
+, tiledb
+, numpy
+, wheel
+, isPy3k
+, setuptools_scm
+, psutil
+}:
+
+buildPythonPackage rec {
+ pname = "tiledb";
+ version = "0.5.0";
+ format = "setuptools";
+
+ src = fetchFromGitHub {
+ owner = "TileDB-Inc";
+ repo = "TileDB-Py";
+ rev = version;
+ sha256 = "1c9wl207c8jz0695gy8p6bxywyd1k7wmczcfl7s0hlbknliamvyx";
+ };
+
+ nativeBuildInputs = [
+ cython
+ setuptools_scm
+ ];
+
+ buildInputs = [
+ tiledb
+ ];
+
+ propagatedBuildInputs = [
+ numpy
+ wheel # No idea why but it is listed
+ ];
+
+ checkInputs = [
+ psutil
+ ];
+
+ TILEDB_PATH = tiledb;
+
+ SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+ disabled = !isPy3k; # Not bothering with python2 anymore
+
+ postPatch = ''
+ # Hardcode path to shared object
+ substituteInPlace tiledb/__init__.py --replace \
+ 'os.path.join(lib_dir, lib_name)' 'os.path.join("${tiledb}/lib", lib_name)'
+
+ # Disable failing test
+ substituteInPlace tiledb/tests/test_examples.py --replace \
+ "test_docs" "dont_test_docs"
+ '';
+
+ checkPhase = ''
+ pushd "$out"
+ ${python.interpreter} -m unittest tiledb.tests.all.suite_test
+ popd
+ '';
+
+ meta = with lib; {
+ description = "Python interface to the TileDB storage manager";
+ homepage = https://github.com/TileDB-Inc/TileDB-Py;
+ license = licenses.mit;
+ maintainers = with maintainers; [ fridh ];
+ };
+
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index 6cbb2aa48db..28912f70471 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "wasabi";
- version = "0.3.0";
+ version = "0.4.0";
src = fetchPypi {
inherit pname version;
- sha256 = "0f18x27qrr29rgxyiy1k9b469i37n80h0x9vd9i22pyg8wxx67q5";
+ sha256 = "0w2jkgrf0x58v8x90v4nifbwcb87pp613vp3sld1fk2avn80imnw";
};
checkInputs = [
diff --git a/pkgs/development/tools/analysis/radare2/update.py b/pkgs/development/tools/analysis/radare2/update.py
index 794581bca7a..b9e72e62366 100755
--- a/pkgs/development/tools/analysis/radare2/update.py
+++ b/pkgs/development/tools/analysis/radare2/update.py
@@ -38,7 +38,7 @@ def get_radare2_rev() -> str:
def get_cutter_version() -> str:
version_expr = """
-(with import {}; (builtins.parseDrvName (qt5.callPackage {}).name).version)
+(with import {}; lib.getVersion (qt5.callPackage {}))
"""
return sh("nix", "eval", "--raw", version_expr.strip(), "-I", "radare2={0}".format(SCRIPT_DIR))
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
new file mode 100644
index 00000000000..80c23205c40
--- /dev/null
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "tfsec";
+ version = "0.12.2";
+
+ src = fetchFromGitHub {
+ owner = "liamg";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1xrhsl60xf7230z4d2dyy86406a2306yfqchijrz0957xpkrik2r";
+ };
+
+ goPackagePath = "github.com/liamg/tfsec";
+
+ meta = with lib; {
+ homepage = "https://github.com/liamg/tfsec";
+ description = "Static analysis powered security scanner for your terraform code";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/pkgs/development/tools/continuous-integration/jenkins/update.sh b/pkgs/development/tools/continuous-integration/jenkins/update.sh
index 66d1b4ceff6..4f2f6527ecc 100755
--- a/pkgs/development/tools/continuous-integration/jenkins/update.sh
+++ b/pkgs/development/tools/continuous-integration/jenkins/update.sh
@@ -4,7 +4,7 @@
set -eu -o pipefail
core_json="$(curl -s --fail --location https://updates.jenkins.io/stable/update-center.actual.json | jq .core)"
-oldVersion=$(nix-instantiate --eval -E "with import ./. {}; jenkins.version or (builtins.parseDrvName jenkins.name).version" | tr -d '"')
+oldVersion=$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion jenkins" | tr -d '"')
version="$(jq -r .version <<<$core_json)"
sha256="$(jq -r .sha256 <<<$core_json)"
diff --git a/pkgs/development/tools/documentation/antora/default.nix b/pkgs/development/tools/documentation/antora/default.nix
index 9f1aa037087..6427fa461dd 100644
--- a/pkgs/development/tools/documentation/antora/default.nix
+++ b/pkgs/development/tools/documentation/antora/default.nix
@@ -1,16 +1,15 @@
{ stdenv, nodePackages_10_x }:
let
- drvName = drv: (builtins.parseDrvName drv).name;
linkNodeDeps = ({ pkg, deps, name ? "" }:
let
- targetModule = if name != "" then name else drvName pkg;
+ targetModule = if name != "" then name else stdenv.lib.getName pkg;
in nodePackages_10_x.${pkg}.override (oldAttrs: {
postInstall = ''
mkdir -p $out/lib/node_modules/${targetModule}/node_modules
${stdenv.lib.concatStringsSep "\n" (map (dep: ''
- ln -s ${nodePackages_10_x.${dep}}/lib/node_modules/${drvName dep} \
- $out/lib/node_modules/${targetModule}/node_modules/${drvName dep}
+ ln -s ${nodePackages_10_x.${dep}}/lib/node_modules/${stdenv.lib.getName dep} \
+ $out/lib/node_modules/${targetModule}/node_modules/${stdenv.lib.getName dep}
'') deps
)}
'';
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 210659289d1..4b3e2cc3bed 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,11 +1,13 @@
{ stdenv, lib, buildPackages
-, fetchurl, zlib, autoreconfHook, gettext
+, fetchFromGitHub, fetchurl, zlib, autoreconfHook, gettext
# Enabling all targets increases output size to a multiple.
, withAllTargets ? false, libbfd, libopcodes
, enableShared ? true
, noSysDirs
, gold ? !stdenv.buildPlatform.isDarwin || stdenv.hostPlatform == stdenv.targetPlatform
, bison ? null
+, flex
+, texinfo
}:
let
@@ -20,16 +22,23 @@ let
# PATH to both be usable.
targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
"${stdenv.targetPlatform.config}-";
+ vc4-binutils-src = fetchFromGitHub {
+ owner = "itszor";
+ repo = "binutils-vc4";
+ rev = "708acc851880dbeda1dd18aca4fd0a95b2573b36";
+ sha256 = "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63";
+ };
+ # HACK to ensure that we preserve source from bootstrap binutils to not rebuild LLVM
+ normal-src = stdenv.__bootPackages.binutils-unwrapped.src or (fetchurl {
+ url = "mirror://gnu/binutils/${basename}.tar.bz2";
+ sha256 = "1l34hn1zkmhr1wcrgf0d4z7r3najxnw3cx2y2fk7v55zjlk3ik7z";
+ });
in
stdenv.mkDerivation {
name = targetPrefix + basename;
- # HACK to ensure that we preserve source from bootstrap binutils to not rebuild LLVM
- src = stdenv.__bootPackages.binutils-unwrapped.src or (fetchurl {
- url = "mirror://gnu/binutils/${basename}.tar.bz2";
- sha256 = "1l34hn1zkmhr1wcrgf0d4z7r3najxnw3cx2y2fk7v55zjlk3ik7z";
- });
+ src = if stdenv.targetPlatform.isVc4 then vc4-binutils-src else normal-src;
patches = [
# Make binutils output deterministic by default.
@@ -54,6 +63,8 @@ stdenv.mkDerivation {
# cross-compiling.
./always-search-rpath.patch
+ ] ++ lib.optionals (!stdenv.targetPlatform.isVc4)
+ [
# https://sourceware.org/bugzilla/show_bug.cgi?id=22868
./gold-symbol-visibility.patch
@@ -69,9 +80,9 @@ stdenv.mkDerivation {
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [
bison
- ] ++ lib.optionals stdenv.targetPlatform.isiOS [
+ ] ++ (lib.optionals stdenv.targetPlatform.isiOS [
autoreconfHook
- ];
+ ]) ++ lib.optionals stdenv.targetPlatform.isVc4 [ texinfo flex ];
buildInputs = [ zlib gettext ];
inherit noSysDirs;
diff --git a/pkgs/development/tools/misc/ccls/default.nix b/pkgs/development/tools/misc/ccls/default.nix
index ec97d1bb75b..8748cdf52b4 100644
--- a/pkgs/development/tools/misc/ccls/default.nix
+++ b/pkgs/development/tools/misc/ccls/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "ccls";
- version = "0.20190823.4";
+ version = "0.20190823.5";
src = fetchFromGitHub {
owner = "MaskRay";
repo = "ccls";
rev = version;
- sha256 = "1aq8q32jdkhrdrsghk8sdb8y4si36hfavf7jq2yzbqinjx03y1n4";
+ sha256 = "0b2pkpzn576b92zcxpwchpkyw2fww6s69818rx4g9z34kzm35zy5";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/misc/mkcert/default.nix b/pkgs/development/tools/misc/mkcert/default.nix
index b9b1f83322d..ae0a4a6dfe2 100644
--- a/pkgs/development/tools/misc/mkcert/default.nix
+++ b/pkgs/development/tools/misc/mkcert/default.nix
@@ -1,17 +1,23 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
-buildGoPackage rec {
+buildGoModule rec {
pname = "mkcert";
- version = "1.4.0";
+ version = "1.4.1";
src = fetchFromGitHub {
owner = "FiloSottile";
repo = pname;
rev = "v${version}";
- sha256 = "0xcmvzh5lq8vs3b0f1zw645fxdr8471v7prl1656q02v38f58ly7";
+ sha256 = "0w1ji96hbd3anzsz82xjcafsqhgyz7c7n41rsq60yrllwbj5946f";
};
+ modSha256 = "13a3snhcqq3a9lfy9zfr2rx10mf2ymvhmds1bg8n4m7lbwnzm4fg";
+
goPackagePath = "github.com/FiloSottile/mkcert";
+ buildFlagsArray = ''
+ -ldflags=
+ -X ${goPackagePath}/main.Version=${version}
+ '';
meta = with lib; {
homepage = https://github.com/FiloSottile/mkcert;
diff --git a/pkgs/development/tools/parsing/byacc/default.nix b/pkgs/development/tools/parsing/byacc/default.nix
index 23ea39c6fa9..8542d415196 100644
--- a/pkgs/development/tools/parsing/byacc/default.nix
+++ b/pkgs/development/tools/parsing/byacc/default.nix
@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "byacc";
- version = "20190617";
+ version = "20191119";
src = fetchurl {
urls = [
"ftp://ftp.invisible-island.net/byacc/${pname}-${version}.tgz"
"https://invisible-mirror.net/archives/byacc/${pname}-${version}.tgz"
];
- sha256 = "13ai0az00c86s4k94cpgh48nf5dfccpvccpw635z42wjgcb6hy7q";
+ sha256 = "0ch8y9g7b3lnw1r76p65gvdnbpwd60d4pghgadid122fcq7566p2";
};
configureFlags = [
diff --git a/pkgs/development/tools/richgo/default.nix b/pkgs/development/tools/richgo/default.nix
index 507402deed6..871ea0dc67a 100644
--- a/pkgs/development/tools/richgo/default.nix
+++ b/pkgs/development/tools/richgo/default.nix
@@ -1,21 +1,24 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
-buildGoPackage rec {
+buildGoModule rec {
pname = "richgo";
- version = "0.2.8";
- goPackagePath = "github.com/kyoh86/richgo";
+ version = "0.3.3";
src = fetchFromGitHub {
owner = "kyoh86";
repo = "richgo";
rev = "v${version}";
- sha256 = "0kbwl3a2gima23zmahk0jxp7wga91bs927a1rp5xl889ikng1n4j";
+ sha256 = "07ipa54c4mzm6yizgvkm6x5yim1xgv3f0xdxg35qziacdfcwd6m4";
};
+ modSha256 = "12wbjfqy6qnapm3f2pz1ci1gvc0y8kzr8c99kihyh1jv9r3zy1wz";
+
+ subPackages = [ "." ];
+
meta = with stdenv.lib; {
description = "Enrich `go test` outputs with text decorations.";
homepage = https://github.com/kyoh86/richgo;
- license = licenses.unlicense; # NOTE: The project switched to MIT in https://git.io/fA1ik
+ license = licenses.mit;
maintainers = with maintainers; [ rvolosatovs ];
};
}
diff --git a/pkgs/development/tools/rust/cargo-generate/default.nix b/pkgs/development/tools/rust/cargo-generate/default.nix
index 970c641fe49..c49739165aa 100644
--- a/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -2,23 +2,27 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-generate";
- version = "0.4.0";
+ version = "0.5.0";
src = fetchFromGitHub {
owner = "ashleygwilliams";
repo = "cargo-generate";
rev = "v${version}";
- sha256 = "09276jrb0a735v6p06wz94kbk8bblwpca13vpvy8n0jjmqack2xb";
+ sha256 = "07hklya22ixklb44f3qp6yyh5d03a7rjcn0g76icqr36hvcjyjjh";
};
- cargoSha256 = "1gbxfmhwzpxm0gs3zwzs010j0ndi5aw6xsvvngg0h1lpwg9ypnbr";
+ cargoSha256 = "1rsk9j1ij53dz4gakxwdppgmv12lmyj0ihh9qypdbgskvyq3a2j9";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ openssl ]
++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
- doCheck = false;
+ preCheck = ''
+ export HOME=$(mktemp -d) USER=nixbld
+ git config --global user.name Nixbld
+ git config --global user.email nixbld@localhost.localnet
+ '';
meta = with stdenv.lib; {
description = "cargo, make me a project";
diff --git a/pkgs/development/tools/wally-cli/default.nix b/pkgs/development/tools/wally-cli/default.nix
new file mode 100644
index 00000000000..b7333e45644
--- /dev/null
+++ b/pkgs/development/tools/wally-cli/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoPackage, fetchFromGitHub, pkg-config, libusb1 }:
+
+buildGoPackage rec {
+ pname = "wally-cli";
+ version = "1.1.1";
+
+ goPackagePath = "github.com/zsa/wally";
+ subPackages = [ "cli" ];
+
+ nativeBuildInputs = [
+ pkg-config
+ libusb1
+ ];
+
+ src = fetchFromGitHub {
+ owner = "zsa";
+ repo = "wally";
+ rev = "68960e452ee0f6c7142f5008d4b1cdc6284d3de7";
+ sha256 = "122m5v7s5wqlshyk2salmd848lqs4rrz54d2ap11ay61kijm0bs2";
+ };
+
+ postInstall = ''
+ mv $bin/bin/cli $bin/bin/wally
+ '';
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "A tool to flash firmware to mechanical keyboards";
+ homepage = https://ergodox-ez.com/pages/wally-planck;
+ license = licenses.mit;
+ maintainers = [ maintainers.spacekookie ];
+ };
+}
diff --git a/pkgs/development/tools/wally-cli/deps.nix b/pkgs/development/tools/wally-cli/deps.nix
new file mode 100644
index 00000000000..8edac40c0d5
--- /dev/null
+++ b/pkgs/development/tools/wally-cli/deps.nix
@@ -0,0 +1,66 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "github.com/caarlos0/spin";
+ fetch = {
+ type = "git";
+ url = "https://github.com/caarlos0/spin";
+ rev = "950231d3237faf48da965375e65a00c224bcb4dc";
+ sha256 = "1yz987f86qwx2avyp1bmi5y35h8bbfgp3z1fipqpjlvfq8m7lf8w";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/gousb";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/gousb";
+ rev = "18f4c1d8a750878c4f86ac3d7319b8aa462a79f9";
+ sha256 = "1i7ffkq395x0v1186j9bhfgy67wlq6s840xkyx8wn87w55yd05rh";
+ };
+ }
+ {
+ goPackagePath = "github.com/logrusorgru/aurora";
+ fetch = {
+ type = "git";
+ url = "https://github.com/logrusorgru/aurora";
+ rev = "66b7ad493a23a2523bac50571522bbfe5b90a835";
+ sha256 = "06allslr29qdapv5j3fpyw9xklmb9fmya5jzybmakz9mwczm76nq";
+ };
+ }
+ {
+ goPackagePath = "github.com/marcinbor85/gohex";
+ fetch = {
+ type = "git";
+ url = "https://github.com/marcinbor85/gohex";
+ rev = "7a43cd876e46e0f6ddc553f10f91731a78e6e949";
+ sha256 = "1nzy1hk7blawq4skycj330ac3kfwh0xr6xd7s3y09hsxfzcv4p9v";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "f93a0d58d5fd95e53f82782d07bb0c79d23e1290";
+ sha256 = "1sq97q71vgwnbg1fphsmqrzkbfn6mjal6d8a3qgwv4nbgppwaz25";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "f068ffe820e46336f56dfca7777430582d6e507b";
+ sha256 = "14qvaq9wcrm7mgyra4h9jl8ssfcxyygi1hraq3cmf118961m90zn";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/cheggaaa/pb.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/cheggaaa/pb.v1";
+ rev = "f907f6f5dd81f77c2bbc1cde92e4c5a04720cb11";
+ sha256 = "13a66cqbpdif804qj12z9ad8r24va9q41gfk71qbc4zg1wsxs3rh";
+ };
+ }
+]
diff --git a/pkgs/games/chessx/default.nix b/pkgs/games/chessx/default.nix
index 3b460daefd1..f0b04489eda 100644
--- a/pkgs/games/chessx/default.nix
+++ b/pkgs/games/chessx/default.nix
@@ -1,8 +1,16 @@
-{ stdenv, pkgconfig, zlib, qtbase, qtsvg, qttools, qtmultimedia, qmake, fetchurl, makeWrapper
-, lib
+{ mkDerivation
+, stdenv
+, pkgconfig
+, zlib
+, qtbase
+, qtsvg
+, qttools
+, qtmultimedia
+, qmake
+, fetchurl
}:
-stdenv.mkDerivation rec {
+mkDerivation rec {
pname = "chessx";
version = "1.5.0";
@@ -11,15 +19,18 @@ stdenv.mkDerivation rec {
sha256 = "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i";
};
- buildInputs = [
- qtbase
- qtsvg
- qttools
- qtmultimedia
- zlib
+ nativeBuildInputs = [
+ pkgconfig
+ qmake
];
- nativeBuildInputs = [ pkgconfig qmake makeWrapper ];
+ buildInputs = [
+ qtbase
+ qtmultimedia
+ qtsvg
+ qttools
+ zlib
+ ];
# RCC: Error in 'resources.qrc': Cannot find file 'i18n/chessx_da.qm'
enableParallelBuilding = false;
@@ -39,7 +50,7 @@ stdenv.mkDerivation rec {
homepage = http://chessx.sourceforge.net/;
description = "ChessX allows you to browse and analyse chess games";
license = licenses.gpl2;
- maintainers = [maintainers.luispedro];
+ maintainers = [ maintainers.luispedro ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/games/openxray/default.nix b/pkgs/games/openxray/default.nix
index 9960d94a247..c115833d848 100644
--- a/pkgs/games/openxray/default.nix
+++ b/pkgs/games/openxray/default.nix
@@ -1,9 +1,8 @@
{ stdenv, fetchFromGitHub, cmake, glew, freeimage, liblockfile
-, openal, cryptopp, libtheora, SDL2, lzo, libjpeg, libogg, tbb
+, openal, libtheora, SDL2, lzo, libjpeg, libogg, tbb
, pcre, makeWrapper }:
-stdenv.mkDerivation rec {
- pname = "OpenXRay";
+let
version = "558";
src = fetchFromGitHub {
@@ -14,6 +13,31 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
+ # https://github.com/OpenXRay/xray-16/issues/518
+ cryptopp = stdenv.mkDerivation {
+ pname = "cryptopp";
+ version = "5.6.5";
+
+ inherit src;
+
+ postUnpack = "sourceRoot+=/Externals/cryptopp";
+
+ makeFlags = [ "PREFIX=${placeholder "out"}" ];
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Crypto++, a free C++ class library of cryptographic schemes";
+ homepage = "https://cryptopp.com/";
+ license = with licenses; [ boost publicDomain ];
+ platforms = platforms.all;
+ };
+ };
+in stdenv.mkDerivation rec {
+ pname = "OpenXRay";
+ inherit version src;
+
hardeningDisable = [ "format" ];
cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ];
installFlags = [ "DESTDIR=${placeholder "out"}" ];
@@ -47,6 +71,6 @@ stdenv.mkDerivation rec {
url = https://github.com/OpenXRay/xray-16/blob/xd_dev/License.txt;
};
maintainers = [ maintainers.gnidorah ];
- platforms = ["x86_64-linux" "i686-linux" ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
};
}
diff --git a/pkgs/misc/emulators/cdemu/analyzer.nix b/pkgs/misc/emulators/cdemu/analyzer.nix
index e52cf7efc6b..246dbb7dd35 100644
--- a/pkgs/misc/emulators/cdemu/analyzer.nix
+++ b/pkgs/misc/emulators/cdemu/analyzer.nix
@@ -1,9 +1,9 @@
{ callPackage, makeWrapper, gobject-introspection, cmake
, python3Packages, gtk3, glib, libxml2, gnuplot, gnome3, gdk-pixbuf, librsvg, intltool, libmirage }:
let pkg = import ./base.nix {
- version = "3.2.2";
+ version = "3.2.3";
pkgName = "image-analyzer";
- pkgSha256 = "0by3nd5c413cvk3jmv3md6q0axbiidy061g9dhf37qzwgcakcx8j";
+ pkgSha256 = "17yfjmf65s77214qassz6l01cjcni4cv06nzfsm7qrzw172fmci4";
};
in callPackage pkg {
buildInputs = [ glib gtk3 libxml2 gnuplot libmirage makeWrapper
diff --git a/pkgs/misc/emulators/cdemu/client.nix b/pkgs/misc/emulators/cdemu/client.nix
index dbf471d35d1..087b15cecd1 100644
--- a/pkgs/misc/emulators/cdemu/client.nix
+++ b/pkgs/misc/emulators/cdemu/client.nix
@@ -1,8 +1,8 @@
{ callPackage, python3Packages, intltool, makeWrapper }:
let pkg = import ./base.nix {
- version = "3.2.1";
+ version = "3.2.3";
pkgName = "cdemu-client";
- pkgSha256 = "1d8m24qvv62xcwafw5zs4yf39vs64kxl4idqcngd8yyjhrb2ykg5";
+ pkgSha256 = "1bvc2m63fx03rbp3ihgl2n7k24lwg5ydwkmr84gsjfcxp46q10zq";
};
in callPackage pkg {
buildInputs = [ python3Packages.python python3Packages.dbus-python python3Packages.pygobject3
diff --git a/pkgs/misc/emulators/cdemu/daemon.nix b/pkgs/misc/emulators/cdemu/daemon.nix
index a80327ce91c..db6ed7ddb47 100644
--- a/pkgs/misc/emulators/cdemu/daemon.nix
+++ b/pkgs/misc/emulators/cdemu/daemon.nix
@@ -1,8 +1,8 @@
{ callPackage, glib, libao, intltool, libmirage }:
let pkg = import ./base.nix {
- version = "3.2.2";
+ version = "3.2.3";
pkgName = "cdemu-daemon";
- pkgSha256 = "0himyrhhfjsr4ff5aci7240bpm9x34h20pid412ci8fm16nk929b";
+ pkgSha256 = "022xzgwmncswb9md71w3ly3mjkdfc93lbij2llp2jamq8grxjjxr";
};
in callPackage pkg {
buildInputs = [ glib libao libmirage intltool ];
diff --git a/pkgs/misc/emulators/cdemu/gui.nix b/pkgs/misc/emulators/cdemu/gui.nix
index e06853b8f73..599531950a2 100644
--- a/pkgs/misc/emulators/cdemu/gui.nix
+++ b/pkgs/misc/emulators/cdemu/gui.nix
@@ -2,9 +2,9 @@
, python3Packages, gtk3, glib, libnotify, intltool, gnome3, gdk-pixbuf, librsvg }:
let
pkg = import ./base.nix {
- version = "3.2.1";
+ version = "3.2.3";
pkgName = "gcdemu";
- pkgSha256 = "0lmyvhbf57wcm8k2a33j2dhy4gblaiycy33q070gdrxi37xk7w5g";
+ pkgSha256 = "19vy1awha8s7cfja3a6npaf3rfy3pl3cbsh4vd609q9jz4v4lyg4";
};
inherit (python3Packages) python pygobject3;
in callPackage pkg {
diff --git a/pkgs/misc/emulators/cdemu/libmirage.nix b/pkgs/misc/emulators/cdemu/libmirage.nix
index 0ead78305cd..cc3118ace15 100644
--- a/pkgs/misc/emulators/cdemu/libmirage.nix
+++ b/pkgs/misc/emulators/cdemu/libmirage.nix
@@ -3,9 +3,9 @@
, pcre, utillinux, libselinux, libsepol }:
let pkg = import ./base.nix {
- version = "3.2.2";
+ version = "3.2.3";
pkgName = "libmirage";
- pkgSha256 = "0gwrfia0fyhi0b3p2pfyyvrcfcb0qysfzgpdqsqjqbx4xaqx5wpi";
+ pkgSha256 = "08mfvqyk3833ksfd47i4j3ppmrw5ry219km6h7lywdh9hm9x14yf";
};
in callPackage pkg {
buildInputs = [ glib libsndfile zlib bzip2 lzma libsamplerate intltool ];
diff --git a/pkgs/misc/emulators/cdemu/vhba.nix b/pkgs/misc/emulators/cdemu/vhba.nix
index 71beaf12548..df25fb96eb1 100644
--- a/pkgs/misc/emulators/cdemu/vhba.nix
+++ b/pkgs/misc/emulators/cdemu/vhba.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "vhba";
- version = "20190410";
+ version = "20190831";
src = fetchurl {
url = "mirror://sourceforge/cdemu/vhba-module-${version}.tar.bz2";
- sha256 = "1513hq130raxp9z5grj54cwfjfxj05apipxg425j0zicii59a60c";
+ sha256 = "1ybbk6l06n0y11n5wnfmvdz0baizmq55l458ywimghdyz0n7g0ws";
};
makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ];
diff --git a/pkgs/misc/emulators/resim/default.nix b/pkgs/misc/emulators/resim/default.nix
new file mode 100644
index 00000000000..81acdf81f2e
--- /dev/null
+++ b/pkgs/misc/emulators/resim/default.nix
@@ -0,0 +1,18 @@
+{ fetchFromGitHub, stdenv, cmake, qt4 }:
+
+stdenv.mkDerivation {
+ name = "resim";
+ src = fetchFromGitHub {
+ owner = "itszor";
+ repo = "resim";
+ rev = "cdc7808ceb7ba4ac00d0d08ca646b58615059150";
+ sha256 = "1743lngqxd7ai4k6cd4d1cf9h60z2pnvr2iynfs1zlpcj3w1hx0c";
+ };
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ qt4 ];
+ installPhase = ''
+ mkdir -pv $out/{lib,bin}
+ cp -v libresim/libarmsim.so $out/lib/libarmsim.so
+ cp -v vc4emul/vc4emul $out/bin/vc4emul
+ '';
+}
diff --git a/pkgs/misc/emulators/retroarch/wrapper.nix b/pkgs/misc/emulators/retroarch/wrapper.nix
index 71ae168f1b2..08ebf8ea854 100644
--- a/pkgs/misc/emulators/retroarch/wrapper.nix
+++ b/pkgs/misc/emulators/retroarch/wrapper.nix
@@ -1,14 +1,8 @@
{ stdenv, lib, makeWrapper, retroarch, cores }:
-let
-
- p = builtins.parseDrvName retroarch.name;
-
-in
-
stdenv.mkDerivation {
- name = "retroarch-" + p.version;
- version = p.version;
+ pname = "retroarch";
+ version = lib.getVersion retroarch;
buildInputs = [ makeWrapper ];
diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix
index 5264e66279f..df979c68a47 100644
--- a/pkgs/misc/emulators/wine/staging.nix
+++ b/pkgs/misc/emulators/wine/staging.nix
@@ -5,7 +5,7 @@ with callPackage ./util.nix {};
let patch = (callPackage ./sources.nix {}).staging;
build-inputs = pkgNames: extra:
(mkBuildInputs wineUnstable.pkgArches pkgNames) ++ extra;
-in assert (builtins.parseDrvName wineUnstable.name).version == patch.version;
+in assert stdenv.lib.getVersion wineUnstable == patch.version;
stdenv.lib.overrideDerivation wineUnstable (self: {
buildInputs = build-inputs [ "perl" "utillinux" "autoconf" libtxc_dxtn_Name ] self.buildInputs;
diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix
index 455ae0aaf25..4b93ec8dff9 100644
--- a/pkgs/misc/tmux-plugins/default.nix
+++ b/pkgs/misc/tmux-plugins/default.nix
@@ -25,7 +25,7 @@ let
addonInfo ? null,
preInstall ? "",
postInstall ? "",
- path ? (builtins.parseDrvName pluginName).name,
+ path ? lib.getName pluginName,
dependencies ? [],
...
}:
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index ffe576c31d8..f7663c8e447 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -90,15 +90,12 @@ in {
inherit buildUBoot;
ubootTools = buildUBoot {
- defconfig = "allnoconfig";
+ defconfig = "tools-only_defconfig";
installDir = "$out/bin";
hardeningDisable = [];
dontStrip = false;
extraMeta.platforms = lib.platforms.linux;
extraMakeFlags = [ "HOST_TOOLS_ALL=y" "CROSS_BUILD_TOOLS=1" "NO_SDL=1" "tools" ];
- postConfigure = ''
- sed -i '/CONFIG_SYS_TEXT_BASE/c\CONFIG_SYS_TEXT_BASE=0x00000000' .config
- '';
filesToInstall = [
"tools/dumpimage"
"tools/fdtgrep"
diff --git a/pkgs/misc/vim-plugins/build-vim-plugin.nix b/pkgs/misc/vim-plugins/build-vim-plugin.nix
index b797f49df9e..4ca99b09af5 100644
--- a/pkgs/misc/vim-plugins/build-vim-plugin.nix
+++ b/pkgs/misc/vim-plugins/build-vim-plugin.nix
@@ -18,7 +18,7 @@ rec {
buildPhase ? "",
preInstall ? "",
postInstall ? "",
- path ? (builtins.parseDrvName name).name,
+ path ? stdenv.lib.getName name,
addonInfo ? null,
...
}:
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index ced786abeee..12bdf40d326 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -457,12 +457,12 @@ let
coc-python = buildVimPluginFrom2Nix {
pname = "coc-python";
- version = "2019-11-07";
+ version = "2019-11-21";
src = fetchFromGitHub {
owner = "neoclide";
repo = "coc-python";
- rev = "01cf6f3833d44fb83c38655b496212625329c90b";
- sha256 = "0vn9fjhhlgciv7kwda4hn2lg7fisxgdsg47sbqz75qirnixw8mjv";
+ rev = "756c9f623f6a82ad902e2bdfe3f0c77fba96c18e";
+ sha256 = "1fab8bzj386zkgn7551l58q4ykqakjbx92afx30i1861y8m1a4p1";
};
};
@@ -567,12 +567,12 @@ let
coc-tsserver = buildVimPluginFrom2Nix {
pname = "coc-tsserver";
- version = "2019-11-13";
+ version = "2019-11-20";
src = fetchFromGitHub {
owner = "neoclide";
repo = "coc-tsserver";
- rev = "3d537937a6ce74cdf08d3109dc14af9baeff9af7";
- sha256 = "1nfnlirdb91x835hk2h30vnjc940mnw94p2wgp28p80mcbrk4s4v";
+ rev = "d48cc4a31217af3e0d2fa91159972ea7a9575b21";
+ sha256 = "0zmzyqp8nw99ajzxr8469yfm9zgi53zggxsp6k6b9m6x8c9rqly9";
};
};
@@ -843,23 +843,23 @@ let
denite-nvim = buildVimPluginFrom2Nix {
pname = "denite-nvim";
- version = "2019-11-18";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "Shougo";
repo = "denite.nvim";
- rev = "2f8e00266f2958a02eb870b69f4ab0ef1d91c022";
- sha256 = "1n5h1ys0pb3lfg7zbyfdkshcy05kxd7f4d81qcr69k7n1ni44fvq";
+ rev = "7712a251e172b2dc6a41d36504c0392797484ab1";
+ sha256 = "0n696hjri23s9janar3k9la85apzl5kn51jgrjjf3p9xbx8h3ljk";
};
};
deol-nvim = buildVimPluginFrom2Nix {
pname = "deol-nvim";
- version = "2019-09-08";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "Shougo";
repo = "deol.nvim";
- rev = "474b72a8541e529a1628084c277e6e0aa7f80fda";
- sha256 = "00kwij67csk9yp64r8lfrc9m0jm5mqckf4c9a3489azfjn8da097";
+ rev = "6457c49bb90ea955755c6a47a561f04312a28ed8";
+ sha256 = "0bmw6xw0qa25dix4lp82447w3ffl49vf431wz90j6xa0swaxifkj";
};
};
@@ -934,12 +934,12 @@ let
deoplete-lsp = buildVimPluginFrom2Nix {
pname = "deoplete-lsp";
- version = "2019-09-20";
+ version = "2019-11-21";
src = fetchFromGitHub {
owner = "Shougo";
repo = "deoplete-lsp";
- rev = "335e8a03d5741aa42bd7ce64d79e31d7de570ab5";
- sha256 = "0jn4fn9vkxf3av6mdmzixz20l9ca8n2sql7j9mcmh06mn86949bs";
+ rev = "44185b8c477b1ba5a299f157569f842a5f2ed1ec";
+ sha256 = "0y7ibagw5hj10qjrkqa8vq1a0h50xdnrirz2lnpyy8wyk9l5l2lc";
};
};
@@ -967,23 +967,23 @@ let
deoplete-ternjs = buildVimPluginFrom2Nix {
pname = "deoplete-ternjs";
- version = "2019-09-22";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "carlitux";
repo = "deoplete-ternjs";
- rev = "307f9c3beb178026d122d9ab3825e4640dd1c29a";
- sha256 = "039qbcg9fanrs7dc52n987rhd0xdyvsmjdrfd1dcrr6ys990n64d";
+ rev = "ca0ee77276bc688f847b566d64b32e4bb62691d8";
+ sha256 = "0980fwr931dqyp032gcg4mwk2iv3inywa8w3m73zcr082xc0crp7";
};
};
deoplete-nvim = buildVimPluginFrom2Nix {
pname = "deoplete-nvim";
- version = "2019-11-17";
+ version = "2019-11-20";
src = fetchFromGitHub {
owner = "Shougo";
repo = "deoplete.nvim";
- rev = "edbc7b721e45f1eaa9e1ebe695f4f363f14a7a67";
- sha256 = "1l33wxdsyvhksnbkv1k924qvgdy9s3rksmqsa1yv7zrssl8xdmjn";
+ rev = "57cf7710a8dd51797bbbe5a45e67aef44caa126f";
+ sha256 = "1wmlx2nx3bciv9mhws04ryix0sp33j945mn09cm8vvipbq0bk2q2";
};
};
@@ -1598,23 +1598,23 @@ let
lh-brackets = buildVimPluginFrom2Nix {
pname = "lh-brackets";
- version = "2019-11-16";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "LucHermitte";
repo = "lh-brackets";
- rev = "941444938a7effce57ddd2706f6fd2455d74a8c5";
- sha256 = "1pkpjz0j2n1b1qdbmp4lj43qk2ddr55001yjg6cpznsl7b8rq095";
+ rev = "88548effe90b6b980e1320656231eaff57952d83";
+ sha256 = "1xmsmvkbxqh0ib30qzkk5km5mjdr4f64mxll79x2x0wn8ldwjz9g";
};
};
lh-vim-lib = buildVimPluginFrom2Nix {
pname = "lh-vim-lib";
- version = "2019-11-15";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "LucHermitte";
repo = "lh-vim-lib";
- rev = "76432c08d570a30f6d2d4c246756a3eb6e898ee3";
- sha256 = "1wwr5yjvzv1xc0f5qbjfqclrpvx9vnrg8dkybf95lwgp9a8v7xxv";
+ rev = "ae9d7cf976143a43af11d350ca3406733549b883";
+ sha256 = "1jziwz9mp6jsfd0jkvj4s6n4fw1kg0zgbd5j5rjz2jgp1akqnz2l";
};
};
@@ -1730,12 +1730,12 @@ let
ncm2-jedi = buildVimPluginFrom2Nix {
pname = "ncm2-jedi";
- version = "2019-06-07";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "ncm2";
repo = "ncm2-jedi";
- rev = "86744a7641ce11e22d01778c310e5015f85ef412";
- sha256 = "16h17cqy76iwd9b3wsmmzjg6j465mjd5kjybmk6dilxmq07q24c9";
+ rev = "b28bf6d054051cc1c7a6b148323d3adb9baa4ed5";
+ sha256 = "07pq8akzvlb8hzksgxx1c50j09ia0xnszq1f83x75kqsjg5f6nhy";
};
};
@@ -1785,12 +1785,12 @@ let
neco-look = buildVimPluginFrom2Nix {
pname = "neco-look";
- version = "2018-11-09";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "ujihisa";
repo = "neco-look";
- rev = "8c3951acb93b72dda4572859928ef7b372485596";
- sha256 = "1gd692yc1x3753rxg58hwc7nwmm4rjr03y1xaczy1qahq1bm9a40";
+ rev = "4d7f1fd7e406c302fba2a1358017c5a76d0f9fc1";
+ sha256 = "1brvzg15ni5j60wncpvxhs5k36wz83lhvfcnvja2l9yrngcgh6vr";
};
};
@@ -1972,12 +1972,12 @@ let
nerdtree = buildVimPluginFrom2Nix {
pname = "nerdtree";
- version = "2019-11-13";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "scrooloose";
repo = "nerdtree";
- rev = "8d9b8dae67c5a6affbfd0304e0949ce9e79065ea";
- sha256 = "1jgjw0lm1znf530mfa9iniwb3j35hpgz49ccykg5q6lrbscchc7h";
+ rev = "82b1649f2e1c79ff17730fe0a3750bbec203dd29";
+ sha256 = "07viagjyd5bdnal7m6k0yschdnr2yxmxcg7zlgz7s7inn80blv79";
};
};
@@ -2566,12 +2566,12 @@ let
syntastic = buildVimPluginFrom2Nix {
pname = "syntastic";
- version = "2019-10-23";
+ version = "2019-11-20";
src = fetchFromGitHub {
owner = "scrooloose";
repo = "syntastic";
- rev = "28bb72adbe5c610bdc07407ddb83898919e4645c";
- sha256 = "1hhpd01vc9377fvqdh30pqack0i0sxxz2qdzz2i6x4snabga2zqj";
+ rev = "39b35b23b952d620b8ec7cabb13110f586663837";
+ sha256 = "1nc3019c969ms6m0hrj5k1kggcvsywn6j7kz0scdwzvfd6bcla6h";
};
};
@@ -2765,12 +2765,12 @@ let
ultisnips = buildVimPluginFrom2Nix {
pname = "ultisnips";
- version = "2019-11-13";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "SirVer";
repo = "ultisnips";
- rev = "f7b9b3b1100b3b2883ed2d0ac3627708a10dc469";
- sha256 = "08g1h9ra807d19rhaf5l6g7pryq07cyy4g1ab0ycwyb0whlr6m57";
+ rev = "c309637e0243b71f7e3265ebe3cffdfe9674cfbc";
+ sha256 = "1q2miwd56k2l7lfwmw3khqnfry9izaca91dcf32p0xp06bc3ah28";
};
};
@@ -3084,23 +3084,23 @@ let
vim-airline = buildVimPluginFrom2Nix {
pname = "vim-airline";
- version = "2019-11-15";
+ version = "2019-11-21";
src = fetchFromGitHub {
owner = "vim-airline";
repo = "vim-airline";
- rev = "29549aa55a5f20317eb63b8cd0c08c68a1336f3e";
- sha256 = "1z2chmvxqq5s7a9qjam9j46m7dyfh80z62411swlc9py4aqm91ci";
+ rev = "b9eb94120133a3be4cee77e9bedf68c4200f4b04";
+ sha256 = "0x9z67i8g4p6iik110nfcnsdpny74gi6arx2yvwssa6vzdv2rh9f";
};
};
vim-airline-themes = buildVimPluginFrom2Nix {
pname = "vim-airline-themes";
- version = "2019-10-31";
+ version = "2019-11-21";
src = fetchFromGitHub {
owner = "vim-airline";
repo = "vim-airline-themes";
- rev = "650701f08fa49abca607f5a69ddf0a8157bcd8cf";
- sha256 = "0kk21x1g27gsy29ikfh8iayjgnm7vs2zllgwglqfjmlqvkqajmr0";
+ rev = "935dffc6ff96f7282db93e40e024c942056aedaa";
+ sha256 = "0mx3w41sxvrvk4n4sv1zswlnxmkk93wy9wmc1gmc70yrd9q9jfbx";
};
};
@@ -3271,12 +3271,12 @@ let
vim-codefmt = buildVimPluginFrom2Nix {
pname = "vim-codefmt";
- version = "2019-08-14";
+ version = "2019-11-20";
src = fetchFromGitHub {
owner = "google";
repo = "vim-codefmt";
- rev = "18f47c3ac563b60f71103b1e1d29b349ff9d8549";
- sha256 = "0z36jjj1bxb4xz9lyjrbv769797g3x475ncamflfj6yj72vvhfy4";
+ rev = "dae6dd82a98eda68af83a1f725cc570ef3b1ae7d";
+ sha256 = "0w2djjs29dgd5jcfglvgb4mb60vb1bj34mxzbx2sidp3lb15xn4y";
};
};
@@ -3733,12 +3733,12 @@ let
vim-gitgutter = buildVimPluginFrom2Nix {
pname = "vim-gitgutter";
- version = "2019-10-24";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "airblade";
repo = "vim-gitgutter";
- rev = "af20a9fcfff9b5277fc8482e802c4dec291ea589";
- sha256 = "0jakfv1b1kc8mq1izj7bzd83d55z38igl7xl1c7n1vb9m2dy0nn3";
+ rev = "fa8d0feb4103f15b97e2abb4e76cbaaf03495d1d";
+ sha256 = "0ki46g0xl6gn75hh9p13any17x5v703bc86ya2nfqwyp2w0gapyg";
};
};
@@ -3766,12 +3766,12 @@ let
vim-go = buildVimPluginFrom2Nix {
pname = "vim-go";
- version = "2019-11-18";
+ version = "2019-11-20";
src = fetchFromGitHub {
owner = "fatih";
repo = "vim-go";
- rev = "6d9cabbfa2ed92ef764f87041b60fcab010f7bc7";
- sha256 = "0621mh4vh92dp4jhcklgghppncbvpbzzwx9xpxs7b6917hmsxp8g";
+ rev = "d4a9cc72469927202fadf14600253a35240c993e";
+ sha256 = "061qzzldh796lagnk1blpkvx5f55rc8h7vgzgffxg9dhc73my5a3";
};
};
@@ -3788,12 +3788,12 @@ let
vim-grepper = buildVimPluginFrom2Nix {
pname = "vim-grepper";
- version = "2019-10-09";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "mhinz";
repo = "vim-grepper";
- rev = "8b783474b64fa01b813f9c4a24f240c7c3378726";
- sha256 = "1mrqdg0hq4gvzng959dk6hbgh19sxzgg959i6k39c7phdd1f1fm9";
+ rev = "d8fa51d4fa99221511dc8b9e2eb1cba23a9b0c20";
+ sha256 = "1wb4g5g1phixqwpj9nd261f690ziimy80w12pjivrik20bj17ipd";
};
};
@@ -3953,12 +3953,12 @@ let
vim-illuminate = buildVimPluginFrom2Nix {
pname = "vim-illuminate";
- version = "2019-08-04";
+ version = "2019-11-21";
src = fetchFromGitHub {
owner = "RRethy";
repo = "vim-illuminate";
- rev = "0c37ddf0dfbe069b9f2cf1d4a341efe7b373f133";
- sha256 = "11zjm9a6x57s5rs080p1gcj86l01765ayn3k9yx6mx8d48n8zr3k";
+ rev = "4929d19cc8483d9d9872cb3669915e6a8cc381a2";
+ sha256 = "1rbhnmqrw8gdpf60lx4akhadz3q80fykal1a9c4mnn5nrqymv9va";
};
};
@@ -4130,12 +4130,12 @@ let
vim-jsx-pretty = buildVimPluginFrom2Nix {
pname = "vim-jsx-pretty";
- version = "2019-11-18";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "MaxMEllon";
repo = "vim-jsx-pretty";
- rev = "70586430c0f05c91ed2832db2c65769501978d94";
- sha256 = "1b2qssdzc0b7pzr1ws86zybvwnwby987xsa7sfizsjqslb14xw4w";
+ rev = "8b96cea873612b35ddfd7aef4b6c21f991103f0f";
+ sha256 = "18ilra7s29jl7k3nda2z3r7bvixk5b8bbfn9d3nvfz7l26n8s6i6";
};
};
@@ -4493,12 +4493,12 @@ let
vim-pandoc = buildVimPluginFrom2Nix {
pname = "vim-pandoc";
- version = "2019-11-07";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "vim-pandoc";
repo = "vim-pandoc";
- rev = "9275cdb54b55eda88f3f0066783ea72410ccf678";
- sha256 = "0532bq9667dfz79fg4blrzc6d9y1cz2xr5h7jda3psrj27adrlxk";
+ rev = "524d05885d0fdd176d3da06fd2befff9a22353e2";
+ sha256 = "1ngsqyjcsav3k2dcr4anhdm5ycnlfiwykqx3v15ds3j2prsn9hkd";
};
};
@@ -4570,12 +4570,12 @@ let
vim-pencil = buildVimPluginFrom2Nix {
pname = "vim-pencil";
- version = "2019-11-16";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "reedes";
repo = "vim-pencil";
- rev = "236380f1afcc1df10ae78cbf2c6e958d29183eaa";
- sha256 = "1yxc03pmf0wr104mxy2ssln16jm3kkylivmhh47jk5iv2xw8i38q";
+ rev = "9aead49ecfd0640e07fdf30fb149dc7d072051eb";
+ sha256 = "189mqxsawdpb68vs9gpkh6flm00m3zhh744awwjd433dhyhz07fx";
};
};
@@ -5351,12 +5351,12 @@ let
vim-wordy = buildVimPluginFrom2Nix {
pname = "vim-wordy";
- version = "2019-08-29";
+ version = "2019-11-22";
src = fetchFromGitHub {
owner = "reedes";
repo = "vim-wordy";
- rev = "87a77cb293ed1193c01e0f93c4dd70cddde76b08";
- sha256 = "19wvm1al41ys429rb2agb7d3xfv1kh2287r8sgiy1f6whjn236z6";
+ rev = "f0391713fa83771d64b065868331ef4754d861ed";
+ sha256 = "0v5cl3rrg2vrdb2al67hbh730rw8m2zvhb1vippv64k65mknkgp5";
};
};
@@ -5415,6 +5415,17 @@ let
};
};
+ vimagit = buildVimPluginFrom2Nix {
+ pname = "vimagit";
+ version = "2019-07-24";
+ src = fetchFromGitHub {
+ owner = "jreybert";
+ repo = "vimagit";
+ rev = "94762b1356ebdcb8ec486a86f45e69ef77a69465";
+ sha256 = "1p8izqdkx8g1aqmq9a2qm506bs4mvc4xdbzkh2k5xprm5vc14z0s";
+ };
+ };
+
vimelette = buildVimPluginFrom2Nix {
pname = "vimelette";
version = "2019-05-02";
@@ -5494,12 +5505,12 @@ let
vimtex = buildVimPluginFrom2Nix {
pname = "vimtex";
- version = "2019-11-18";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "lervag";
repo = "vimtex";
- rev = "e555f48c131088fd66a9f7822c24e6edba8bfd03";
- sha256 = "1l3a6isf4r46yn8kawlm11b5i1vpdpdnbwfi8kch7z90j7dmwlg6";
+ rev = "ed45b8b8ff5a61f05dea081d3eae98dcaee28857";
+ sha256 = "1sd1315lg6sxydvwhk58kyp5hhdbrzqvkfgy0hvpy7c5h1rlfcjm";
};
};
@@ -5649,12 +5660,12 @@ let
youcompleteme = buildVimPluginFrom2Nix {
pname = "youcompleteme";
- version = "2019-11-18";
+ version = "2019-11-19";
src = fetchFromGitHub {
owner = "valloric";
repo = "youcompleteme";
- rev = "25fbeadba44be998667ba47a1bce16219d01148c";
- sha256 = "02hl0gyx189q6k3z9dvnwpgn5sw76rz4j9y0hrj8yqzaqk7xv7fw";
+ rev = "a7fd70cf7213c75088a47967c3e28aa4f6c47872";
+ sha256 = "0knn6j85k6rpis3riv6j9nvxw7114ddz1fr1p6ayv4mhnyj669rc";
fetchSubmodules = true;
};
};
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 433458b66d0..263f2d2b5dd 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -156,6 +156,7 @@ jonsmithers/vim-html-template-literals
joonty/vim-xdebug
josa42/coc-go
jpalardy/vim-slime
+jreybert/vimagit
JuliaEditorSupport/deoplete-julia
JuliaEditorSupport/julia-vim
Julian/vim-textobj-variable-segment
diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix
index 755ec390a9c..0012c3de989 100644
--- a/pkgs/os-specific/linux/anbox/default.nix
+++ b/pkgs/os-specific/linux/anbox/default.nix
@@ -45,13 +45,13 @@ in
stdenv.mkDerivation rec {
pname = "anbox";
- version = "unstable-2019-05-03";
+ version = "unstable-2019-11-15";
src = fetchFromGitHub {
owner = pname;
repo = pname;
- rev = "ea2b7a3dea34a6803134f4adc16c276f4c2479eb";
- sha256 = "00x772nbrbx7ma0scr24m65g50pmi4v6d6q3cwbbi55r8qiy2yz7";
+ rev = "0a49ae08f76de7f886a3dbed4422711c2fa39d10";
+ sha256 = "09l56nv9cnyhykclfmvam6bkcxlamwbql6nrz9n022553w92hkjf";
};
nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/anbox/kmod.nix b/pkgs/os-specific/linux/anbox/kmod.nix
index fee8d1e7a42..0888f2c5414 100644
--- a/pkgs/os-specific/linux/anbox/kmod.nix
+++ b/pkgs/os-specific/linux/anbox/kmod.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation {
pname = "anbox-modules";
- version = "2019-07-13-" + kernel.version;
+ version = "2019-11-15-" + kernel.version;
src = fetchFromGitHub {
owner = "anbox";
repo = "anbox-modules";
- rev = "816dd4d6e702cf77a44cfe208659af6c39e02b57";
- sha256 = "115xrv3fz5bk51hz8cwb61h0xnrsnv217fxmbpw35a6hjrk7gslc";
+ rev = "e0a237e571989987806b32881044c539db25e3e1";
+ sha256 = "1km1nslp4f5znwskh4bb1b61r1inw1dlbwiyyq3rrh0f0agf8d0v";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/beegfs/default.nix b/pkgs/os-specific/linux/beegfs/default.nix
deleted file mode 100644
index 7ce2fea6924..00000000000
--- a/pkgs/os-specific/linux/beegfs/default.nix
+++ /dev/null
@@ -1,167 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, unzip, which
-, libuuid, attr, xfsprogs, cppunit, rdma-core
-, zlib, openssl, sqlite, jre, openjdk, ant
-, openssh, perl, gfortran, influxdb, curl
-} :
-
-let
- version = "7.0";
-
- subdirs = [
- "beeond_thirdparty/build"
- "beeond_thirdparty_gpl/build"
- "thirdparty/build"
- "opentk_lib/build"
- "common/build"
- "admon/build"
- "java_lib/build"
- "ctl/build"
- "fsck/build"
- "helperd/build"
- "meta/build"
- "mgmtd/build"
- "storage/build"
- "utils/build"
- "mon/build"
- "upgrade/beegfs_mirror_md/build"
- ];
-
-in stdenv.mkDerivation {
- pname = "beegfs";
- inherit version;
-
- src = fetchurl {
- url = "https://git.beegfs.com/pub/v7/repository/archive.tar.bz2?ref=${version}";
- sha256 = "1wsljd5ybyhl94aqrdfvcs8a0l8w4pr0bs1vhjrf4y7ldhw35m3k";
- };
-
- nativeBuildInputs = [ which unzip pkgconfig cppunit openjdk ant perl ];
-
- buildInputs = [
- libuuid
- attr
- xfsprogs
- zlib
- openssl
- sqlite
- jre
- rdma-core
- openssh
- gfortran
- influxdb
- curl
- ];
-
- hardeningDisable = [ "format" ]; # required for building beeond
-
- postPatch = ''
- patchShebangs ./
- find -type f -name Makefile -exec sed -i "s:/bin/bash:${stdenv.shell}:" \{} \;
- find -type f -name Makefile -exec sed -i "s:/bin/true:true:" \{} \;
- find -type f -name "*.mk" -exec sed -i "s:/bin/true:true:" \{} \;
-
- # unpack manually and patch variable name
- sed -i '/tar -C $(SOURCE_PATH) -xzf $(PCOPY_TAR)/d' beeond_thirdparty/build/Makefile
- cd beeond_thirdparty/source
- tar xf pcopy-0.96.tar.gz
- sed -i 's/\([^_]\)rank/\1grank/' pcopy-0.96/src/pcp.cpp
- cd ../..
- '';
-
- buildPhase = ''
- for i in ${toString subdirs}; do
- make -C $i BEEGFS_OPENTK_IBVERBS=1 ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
- done
- make -C admon/build admon_gui BEEGFS_OPENTK_IBVERBS=1
- '';
-
- enableParallelBuilding = true;
-
- installPhase = ''
- binDir=$out/bin
- docDir=$out/share/doc/beegfs
- includeDir=$out/include/beegfs
- libDir=$out/lib
- libDirPkg=$out/lib/beegfs
-
- mkdir -p $binDir $libDir $libDirPkg $docDir $includeDir
-
- cp admon/build/beegfs-admon $binDir
- cp admon/build/dist/usr/bin/beegfs-admon-gui $binDir
- cp admon_gui/dist/beegfs-admon-gui.jar $libDirPkg
- cp admon/build/dist/etc/beegfs-admon.conf $docDir
-
- cp java_lib/build/jbeegfs.jar $libDirPkg
- cp java_lib/build/libjbeegfs.so $libDir
-
- cp ctl/build/beegfs-ctl $binDir
- cp fsck/build/beegfs-fsck $binDir
-
- cp utils/scripts/beegfs-check-servers $binDir
- cp utils/scripts/beegfs-df $binDir
- cp utils/scripts/beegfs-net $binDir
-
- cp helperd/build/beegfs-helperd $binDir
- cp helperd/build/dist/etc/beegfs-helperd.conf $docDir
-
- cp client_module/build/dist/sbin/beegfs-setup-client $binDir
- cp client_module/build/dist/etc/beegfs-client.conf $docDir
-
- cp meta/build/beegfs-meta $binDir
- cp meta/build/dist/sbin/beegfs-setup-meta $binDir
- cp meta/build/dist/etc/beegfs-meta.conf $docDir
-
- cp mgmtd/build/beegfs-mgmtd $binDir
- cp mgmtd/build/dist/sbin/beegfs-setup-mgmtd $binDir
- cp mgmtd/build/dist/etc/beegfs-mgmtd.conf $docDir
-
- cp storage/build/beegfs-storage $binDir
- cp storage/build/dist/sbin/beegfs-setup-storage $binDir
- cp storage/build/dist/etc/beegfs-storage.conf $docDir
-
- cp opentk_lib/build/libbeegfs-opentk.so $libDir
-
- cp upgrade/beegfs_mirror_md/build/beegfs-mirror-md $binDir
-
- cp client_devel/build/dist/usr/share/doc/beegfs-client-devel/examples/* $docDir
- cp -r client_devel/include/* $includeDir
-
- cp beeond_thirdparty_gpl/build/parallel $out/bin
- cp beeond_thirdparty/build/pcopy/p* $out/bin
- cp beeond_thirdparty/build/pcopy/s* $out/bin
- cp -r beeond/scripts/* $out
- cp beeond/source/* $out/bin
- '';
-
- postFixup = ''
- substituteInPlace $out/bin/beegfs-admon-gui \
- --replace " java " " ${jre}/bin/java " \
- --replace "/opt/beegfs/beegfs-admon-gui/beegfs-admon-gui.jar" \
- "$libDirPkg/beegfs-admon-gui.jar"
-
- substituteInPlace $out/bin/beeond \
- --replace /opt/beegfs/sbin "$out/bin"
- '';
-
- doCheck = true;
-
- checkPhase = ''
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/opentk_lib/build/ \
- common/build/test-runner --text
- '';
-
- meta = with stdenv.lib; {
- description = "High performance distributed filesystem with RDMA support";
- homepage = "https://www.beegfs.io";
- platforms = [ "i686-linux" "x86_64-linux" ];
- license = {
- fullName = "BeeGFS_EULA";
- url = "https://www.beegfs.io/docs/BeeGFS_EULA.txt";
- free = false;
- };
- maintainers = with maintainers; [ markuskowa ];
- # 2019-08-09
- # fails to build and had stability issues earlier
- broken = true;
- };
-}
diff --git a/pkgs/os-specific/linux/beegfs/kernel-module.nix b/pkgs/os-specific/linux/beegfs/kernel-module.nix
deleted file mode 100644
index 286252b927b..00000000000
--- a/pkgs/os-specific/linux/beegfs/kernel-module.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv, fetchurl, which
-, kmod, kernel
-} :
-
-let
- version = "7.0";
-in stdenv.mkDerivation {
- name = "beegfs-module-${version}-${kernel.version}";
-
- src = fetchurl {
- url = "https://git.beegfs.com/pub/v7/repository/archive.tar.bz2?ref=${version}";
- sha256 = "1wsljd5ybyhl94aqrdfvcs8a0l8w4pr0bs1vhjrf4y7ldhw35m3k";
- };
-
- hardeningDisable = [ "fortify" "pic" "stackprotector" ];
-
- nativeBuildInputs = [ which kmod ];
-
- buildInputs = kernel.moduleBuildDependencies;
-
- makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build/" ];
-
- postPatch = ''
- patchShebangs ./
- find -type f -name Makefile -exec sed -i "s:/bin/bash:${stdenv.shell}:" \{} \;
- find -type f -name Makefile -exec sed -i "s:/bin/true:true:" \{} \;
- find -type f -name "*.mk" -exec sed -i "s:/bin/true:true:" \{} \;
- '';
-
- preBuild = "cd client_module/build";
-
- installPhase = ''
- instdir=$out/lib/modules/${kernel.modDirVersion}/extras/fs/beegfs
- mkdir -p $instdir
- cp beegfs.ko $instdir
- '';
-
- meta = with stdenv.lib; {
- description = "High performance distributed filesystem with RDMA support";
- homepage = "https://www.beegfs.io";
- platforms = [ "i686-linux" "x86_64-linux" ];
- license = licenses.gpl2;
- maintainers = with maintainers; [ markuskowa ];
- broken = stdenv.lib.versionAtLeast kernel.version "4.18";
- };
-}
diff --git a/pkgs/os-specific/linux/brillo/default.nix b/pkgs/os-specific/linux/brillo/default.nix
index 3ad4acf127b..6d51907ea16 100644
--- a/pkgs/os-specific/linux/brillo/default.nix
+++ b/pkgs/os-specific/linux/brillo/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "brillo";
- version = "1.4.8";
+ version = "1.4.9";
src = fetchFromGitLab {
owner= "cameronnemo";
repo= "brillo";
rev= "v${version}";
- sha256 = "0wxvg541caiwm3bjwbmk7xcng7jd9xsiga2agxwp7gpkrlp74j9f";
+ sha256 = "0ab7s60zcgl6hvm0a9rlwq35p25n3jnw6r9256pwl4cdwyjyybsb";
};
patches = [
diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix
index 7525fc8e405..104fccd6955 100644
--- a/pkgs/os-specific/linux/dpdk/default.nix
+++ b/pkgs/os-specific/linux/dpdk/default.nix
@@ -1,9 +1,13 @@
-{ stdenv, lib, kernel, fetchurl, pkgconfig, numactl, shared ? false }:
+{ stdenv, lib
+, kernel
+, fetchurl
+, pkgconfig, meson, ninja
+, libbsd, numactl, libbpf, zlib, libelf, jansson, openssl, libpcap
+, doxygen, python3
+, shared ? false }:
let
-
kver = kernel.modDirVersion or null;
-
mod = kernel != null;
in stdenv.mkDerivation rec {
@@ -15,40 +19,38 @@ in stdenv.mkDerivation rec {
sha256 = "141bqqy4w6nzs9z70x7yv94a4gmxjfal46pxry9bwdh3zi1jwnyd";
};
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ numactl ] ++ lib.optional mod kernel.moduleBuildDependencies;
-
- RTE_KERNELDIR = if mod then "${kernel.dev}/lib/modules/${kver}/build" else "/var/empty";
- RTE_TARGET = "x86_64-native-linuxapp-gcc";
-
- # we need sse3 instructions to build
- NIX_CFLAGS_COMPILE = [ "-msse3" ];
- hardeningDisable = [ "pic" ];
+ nativeBuildInputs = [
+ doxygen
+ meson
+ ninja
+ pkgconfig
+ python3
+ python3.pkgs.sphinx
+ ];
+ buildInputs = [
+ jansson
+ libbpf
+ libbsd
+ libelf
+ libpcap
+ numactl
+ openssl.dev
+ zlib
+ ] ++ lib.optionals mod kernel.moduleBuildDependencies;
postPatch = ''
- cat >>config/defconfig_$RTE_TARGET <>config/defconfig_$RTE_TARGET <
++#include "lib/dhparams.h"
++#include "lib/util.h"
++
++static int
++my_DH_set0_pqg(DH *dh, BIGNUM *p, const BIGNUM **q OVS_UNUSED, BIGNUM *g)
++{
++ ovs_assert(q == NULL);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++ dh->p = p;
++ dh->g = g;
++ return 1;
++#else
++ return DH_set0_pqg(dh, p, NULL, g);
++#endif
++}
++EOF
++(openssl dhparam -C -in lib/dh1024.pem -noout &&
++openssl dhparam -C -in lib/dh2048.pem -noout &&
++openssl dhparam -C -in lib/dh4096.pem -noout) | sed '
++ s/^static DH/DH/
++ s/\(get_dh[0-9]*\)()/\1(void)/
++ s/\(DH_set0_pqg\)/my_\1/
++ s/[ ]*$//
++ s/ / /g
++'
+diff --git a/lib/automake.mk b/lib/automake.mk
+index 5387d519a..804a8b7d7 100644
+--- a/lib/automake.mk
++++ b/lib/automake.mk
+@@ -399,15 +399,16 @@ lib_libopenvswitch_la_SOURCES += \
+ lib/route-table-bsd.c
+ endif
+
++.PHONY: generate-dhparams-c
+ if HAVE_OPENSSL
+-lib_libopenvswitch_la_SOURCES += lib/stream-ssl.c
+-nodist_lib_libopenvswitch_la_SOURCES += lib/dhparams.c
+-lib/dhparams.c: lib/dh1024.pem lib/dh2048.pem lib/dh4096.pem
+- $(AM_V_GEN)(echo '#include "lib/dhparams.h"' && \
+- openssl dhparam -C -in $(srcdir)/lib/dh1024.pem -noout && \
+- openssl dhparam -C -in $(srcdir)/lib/dh2048.pem -noout && \
+- openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) \
+- | sed 's/\(get_dh[0-9]*\)()/\1(void)/' > lib/dhparams.c.tmp && \
++lib_libopenvswitch_la_SOURCES += lib/stream-ssl.c lib/dhparams.c
++
++# Manually regenerates lib/dhparams.c. Not normally necessary since
++# lib/dhparams.c is part of the repository and doesn't normally need
++# updates.
++generate-dhparams-c:
++ $(AM_V_GEN)cd $(srcdir) && \
++ build-aux/generate-dhparams-c > lib/dhparams.c.tmp && \
+ mv lib/dhparams.c.tmp lib/dhparams.c
+ else
+ lib_libopenvswitch_la_SOURCES += lib/stream-nossl.c
+diff --git a/lib/dhparams.c b/lib/dhparams.c
+new file mode 100644
+index 000000000..4e42efad2
+--- /dev/null
++++ b/lib/dhparams.c
+@@ -0,0 +1,192 @@
++/* Generated automatically; do not modify! -*- buffer-read-only: t -*-
++ *
++ * If you do need to regenerate this file, run "make generate-dhparams-c". */
++
++#include
++#include "lib/dhparams.h"
++#include "lib/util.h"
++
++static int
++my_DH_set0_pqg(DH *dh, BIGNUM *p, const BIGNUM **q OVS_UNUSED, BIGNUM *g)
++{
++ ovs_assert(q == NULL);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
++ dh->p = p;
++ dh->g = g;
++ return 1;
++#else
++ return DH_set0_pqg(dh, p, NULL, g);
++#endif
++}
++#ifndef HEADER_DH_H
++# include
++#endif
++
++DH *get_dh1024(void)
++{
++ static unsigned char dhp_1024[] = {
++ 0xF4, 0x88, 0xFD, 0x58, 0x4E, 0x49, 0xDB, 0xCD, 0x20, 0xB4,
++ 0x9D, 0xE4, 0x91, 0x07, 0x36, 0x6B, 0x33, 0x6C, 0x38, 0x0D,
++ 0x45, 0x1D, 0x0F, 0x7C, 0x88, 0xB3, 0x1C, 0x7C, 0x5B, 0x2D,
++ 0x8E, 0xF6, 0xF3, 0xC9, 0x23, 0xC0, 0x43, 0xF0, 0xA5, 0x5B,
++ 0x18, 0x8D, 0x8E, 0xBB, 0x55, 0x8C, 0xB8, 0x5D, 0x38, 0xD3,
++ 0x34, 0xFD, 0x7C, 0x17, 0x57, 0x43, 0xA3, 0x1D, 0x18, 0x6C,
++ 0xDE, 0x33, 0x21, 0x2C, 0xB5, 0x2A, 0xFF, 0x3C, 0xE1, 0xB1,
++ 0x29, 0x40, 0x18, 0x11, 0x8D, 0x7C, 0x84, 0xA7, 0x0A, 0x72,
++ 0xD6, 0x86, 0xC4, 0x03, 0x19, 0xC8, 0x07, 0x29, 0x7A, 0xCA,
++ 0x95, 0x0C, 0xD9, 0x96, 0x9F, 0xAB, 0xD0, 0x0A, 0x50, 0x9B,
++ 0x02, 0x46, 0xD3, 0x08, 0x3D, 0x66, 0xA4, 0x5D, 0x41, 0x9F,
++ 0x9C, 0x7C, 0xBD, 0x89, 0x4B, 0x22, 0x19, 0x26, 0xBA, 0xAB,
++ 0xA2, 0x5E, 0xC3, 0x55, 0xE9, 0x2F, 0x78, 0xC7
++ };
++ static unsigned char dhg_1024[] = {
++ 0x02
++ };
++ DH *dh = DH_new();
++ BIGNUM *dhp_bn, *dhg_bn;
++
++ if (dh == NULL)
++ return NULL;
++ dhp_bn = BN_bin2bn(dhp_1024, sizeof (dhp_1024), NULL);
++ dhg_bn = BN_bin2bn(dhg_1024, sizeof (dhg_1024), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL
++ || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return NULL;
++ }
++ return dh;
++}
++#ifndef HEADER_DH_H
++# include
++#endif
++
++DH *get_dh2048(void)
++{
++ static unsigned char dhp_2048[] = {
++ 0xF6, 0x42, 0x57, 0xB7, 0x08, 0x7F, 0x08, 0x17, 0x72, 0xA2,
++ 0xBA, 0xD6, 0xA9, 0x42, 0xF3, 0x05, 0xE8, 0xF9, 0x53, 0x11,
++ 0x39, 0x4F, 0xB6, 0xF1, 0x6E, 0xB9, 0x4B, 0x38, 0x20, 0xDA,
++ 0x01, 0xA7, 0x56, 0xA3, 0x14, 0xE9, 0x8F, 0x40, 0x55, 0xF3,
++ 0xD0, 0x07, 0xC6, 0xCB, 0x43, 0xA9, 0x94, 0xAD, 0xF7, 0x4C,
++ 0x64, 0x86, 0x49, 0xF8, 0x0C, 0x83, 0xBD, 0x65, 0xE9, 0x17,
++ 0xD4, 0xA1, 0xD3, 0x50, 0xF8, 0xF5, 0x59, 0x5F, 0xDC, 0x76,
++ 0x52, 0x4F, 0x3D, 0x3D, 0x8D, 0xDB, 0xCE, 0x99, 0xE1, 0x57,
++ 0x92, 0x59, 0xCD, 0xFD, 0xB8, 0xAE, 0x74, 0x4F, 0xC5, 0xFC,
++ 0x76, 0xBC, 0x83, 0xC5, 0x47, 0x30, 0x61, 0xCE, 0x7C, 0xC9,
++ 0x66, 0xFF, 0x15, 0xF9, 0xBB, 0xFD, 0x91, 0x5E, 0xC7, 0x01,
++ 0xAA, 0xD3, 0x5B, 0x9E, 0x8D, 0xA0, 0xA5, 0x72, 0x3A, 0xD4,
++ 0x1A, 0xF0, 0xBF, 0x46, 0x00, 0x58, 0x2B, 0xE5, 0xF4, 0x88,
++ 0xFD, 0x58, 0x4E, 0x49, 0xDB, 0xCD, 0x20, 0xB4, 0x9D, 0xE4,
++ 0x91, 0x07, 0x36, 0x6B, 0x33, 0x6C, 0x38, 0x0D, 0x45, 0x1D,
++ 0x0F, 0x7C, 0x88, 0xB3, 0x1C, 0x7C, 0x5B, 0x2D, 0x8E, 0xF6,
++ 0xF3, 0xC9, 0x23, 0xC0, 0x43, 0xF0, 0xA5, 0x5B, 0x18, 0x8D,
++ 0x8E, 0xBB, 0x55, 0x8C, 0xB8, 0x5D, 0x38, 0xD3, 0x34, 0xFD,
++ 0x7C, 0x17, 0x57, 0x43, 0xA3, 0x1D, 0x18, 0x6C, 0xDE, 0x33,
++ 0x21, 0x2C, 0xB5, 0x2A, 0xFF, 0x3C, 0xE1, 0xB1, 0x29, 0x40,
++ 0x18, 0x11, 0x8D, 0x7C, 0x84, 0xA7, 0x0A, 0x72, 0xD6, 0x86,
++ 0xC4, 0x03, 0x19, 0xC8, 0x07, 0x29, 0x7A, 0xCA, 0x95, 0x0C,
++ 0xD9, 0x96, 0x9F, 0xAB, 0xD0, 0x0A, 0x50, 0x9B, 0x02, 0x46,
++ 0xD3, 0x08, 0x3D, 0x66, 0xA4, 0x5D, 0x41, 0x9F, 0x9C, 0x7C,
++ 0xBD, 0x89, 0x4B, 0x22, 0x19, 0x26, 0xBA, 0xAB, 0xA2, 0x5E,
++ 0xC3, 0x55, 0xE9, 0x32, 0x0B, 0x3B
++ };
++ static unsigned char dhg_2048[] = {
++ 0x02
++ };
++ DH *dh = DH_new();
++ BIGNUM *dhp_bn, *dhg_bn;
++
++ if (dh == NULL)
++ return NULL;
++ dhp_bn = BN_bin2bn(dhp_2048, sizeof (dhp_2048), NULL);
++ dhg_bn = BN_bin2bn(dhg_2048, sizeof (dhg_2048), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL
++ || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return NULL;
++ }
++ return dh;
++}
++#ifndef HEADER_DH_H
++# include
++#endif
++
++DH *get_dh4096(void)
++{
++ static unsigned char dhp_4096[] = {
++ 0xFA, 0x14, 0x72, 0x52, 0xC1, 0x4D, 0xE1, 0x5A, 0x49, 0xD4,
++ 0xEF, 0x09, 0x2D, 0xC0, 0xA8, 0xFD, 0x55, 0xAB, 0xD7, 0xD9,
++ 0x37, 0x04, 0x28, 0x09, 0xE2, 0xE9, 0x3E, 0x77, 0xE2, 0xA1,
++ 0x7A, 0x18, 0xDD, 0x46, 0xA3, 0x43, 0x37, 0x23, 0x90, 0x97,
++ 0xF3, 0x0E, 0xC9, 0x03, 0x50, 0x7D, 0x65, 0xCF, 0x78, 0x62,
++ 0xA6, 0x3A, 0x62, 0x22, 0x83, 0xA1, 0x2F, 0xFE, 0x79, 0xBA,
++ 0x35, 0xFF, 0x59, 0xD8, 0x1D, 0x61, 0xDD, 0x1E, 0x21, 0x13,
++ 0x17, 0xFE, 0xCD, 0x38, 0x87, 0x9E, 0xF5, 0x4F, 0x79, 0x10,
++ 0x61, 0x8D, 0xD4, 0x22, 0xF3, 0x5A, 0xED, 0x5D, 0xEA, 0x21,
++ 0xE9, 0x33, 0x6B, 0x48, 0x12, 0x0A, 0x20, 0x77, 0xD4, 0x25,
++ 0x60, 0x61, 0xDE, 0xF6, 0xB4, 0x4F, 0x1C, 0x63, 0x40, 0x8B,
++ 0x3A, 0x21, 0x93, 0x8B, 0x79, 0x53, 0x51, 0x2C, 0xCA, 0xB3,
++ 0x7B, 0x29, 0x56, 0xA8, 0xC7, 0xF8, 0xF4, 0x7B, 0x08, 0x5E,
++ 0xA6, 0xDC, 0xA2, 0x45, 0x12, 0x56, 0xDD, 0x41, 0x92, 0xF2,
++ 0xDD, 0x5B, 0x8F, 0x23, 0xF0, 0xF3, 0xEF, 0xE4, 0x3B, 0x0A,
++ 0x44, 0xDD, 0xED, 0x96, 0x84, 0xF1, 0xA8, 0x32, 0x46, 0xA3,
++ 0xDB, 0x4A, 0xBE, 0x3D, 0x45, 0xBA, 0x4E, 0xF8, 0x03, 0xE5,
++ 0xDD, 0x6B, 0x59, 0x0D, 0x84, 0x1E, 0xCA, 0x16, 0x5A, 0x8C,
++ 0xC8, 0xDF, 0x7C, 0x54, 0x44, 0xC4, 0x27, 0xA7, 0x3B, 0x2A,
++ 0x97, 0xCE, 0xA3, 0x7D, 0x26, 0x9C, 0xAD, 0xF4, 0xC2, 0xAC,
++ 0x37, 0x4B, 0xC3, 0xAD, 0x68, 0x84, 0x7F, 0x99, 0xA6, 0x17,
++ 0xEF, 0x6B, 0x46, 0x3A, 0x7A, 0x36, 0x7A, 0x11, 0x43, 0x92,
++ 0xAD, 0xE9, 0x9C, 0xFB, 0x44, 0x6C, 0x3D, 0x82, 0x49, 0xCC,
++ 0x5C, 0x6A, 0x52, 0x42, 0xF8, 0x42, 0xFB, 0x44, 0xF9, 0x39,
++ 0x73, 0xFB, 0x60, 0x79, 0x3B, 0xC2, 0x9E, 0x0B, 0xDC, 0xD4,
++ 0xA6, 0x67, 0xF7, 0x66, 0x3F, 0xFC, 0x42, 0x3B, 0x1B, 0xDB,
++ 0x4F, 0x66, 0xDC, 0xA5, 0x8F, 0x66, 0xF9, 0xEA, 0xC1, 0xED,
++ 0x31, 0xFB, 0x48, 0xA1, 0x82, 0x7D, 0xF8, 0xE0, 0xCC, 0xB1,
++ 0xC7, 0x03, 0xE4, 0xF8, 0xB3, 0xFE, 0xB7, 0xA3, 0x13, 0x73,
++ 0xA6, 0x7B, 0xC1, 0x0E, 0x39, 0xC7, 0x94, 0x48, 0x26, 0x00,
++ 0x85, 0x79, 0xFC, 0x6F, 0x7A, 0xAF, 0xC5, 0x52, 0x35, 0x75,
++ 0xD7, 0x75, 0xA4, 0x40, 0xFA, 0x14, 0x74, 0x61, 0x16, 0xF2,
++ 0xEB, 0x67, 0x11, 0x6F, 0x04, 0x43, 0x3D, 0x11, 0x14, 0x4C,
++ 0xA7, 0x94, 0x2A, 0x39, 0xA1, 0xC9, 0x90, 0xCF, 0x83, 0xC6,
++ 0xFF, 0x02, 0x8F, 0xA3, 0x2A, 0xAC, 0x26, 0xDF, 0x0B, 0x8B,
++ 0xBE, 0x64, 0x4A, 0xF1, 0xA1, 0xDC, 0xEE, 0xBA, 0xC8, 0x03,
++ 0x82, 0xF6, 0x62, 0x2C, 0x5D, 0xB6, 0xBB, 0x13, 0x19, 0x6E,
++ 0x86, 0xC5, 0x5B, 0x2B, 0x5E, 0x3A, 0xF3, 0xB3, 0x28, 0x6B,
++ 0x70, 0x71, 0x3A, 0x8E, 0xFF, 0x5C, 0x15, 0xE6, 0x02, 0xA4,
++ 0xCE, 0xED, 0x59, 0x56, 0xCC, 0x15, 0x51, 0x07, 0x79, 0x1A,
++ 0x0F, 0x25, 0x26, 0x27, 0x30, 0xA9, 0x15, 0xB2, 0xC8, 0xD4,
++ 0x5C, 0xCC, 0x30, 0xE8, 0x1B, 0xD8, 0xD5, 0x0F, 0x19, 0xA8,
++ 0x80, 0xA4, 0xC7, 0x01, 0xAA, 0x8B, 0xBA, 0x53, 0xBB, 0x47,
++ 0xC2, 0x1F, 0x6B, 0x54, 0xB0, 0x17, 0x60, 0xED, 0x79, 0x21,
++ 0x95, 0xB6, 0x05, 0x84, 0x37, 0xC8, 0x03, 0xA4, 0xDD, 0xD1,
++ 0x06, 0x69, 0x8F, 0x4C, 0x39, 0xE0, 0xC8, 0x5D, 0x83, 0x1D,
++ 0xBE, 0x6A, 0x9A, 0x99, 0xF3, 0x9F, 0x0B, 0x45, 0x29, 0xD4,
++ 0xCB, 0x29, 0x66, 0xEE, 0x1E, 0x7E, 0x3D, 0xD7, 0x13, 0x4E,
++ 0xDB, 0x90, 0x90, 0x58, 0xCB, 0x5E, 0x9B, 0xCD, 0x2E, 0x2B,
++ 0x0F, 0xA9, 0x4E, 0x78, 0xAC, 0x05, 0x11, 0x7F, 0xE3, 0x9E,
++ 0x27, 0xD4, 0x99, 0xE1, 0xB9, 0xBD, 0x78, 0xE1, 0x84, 0x41,
++ 0xA0, 0xDF
++ };
++ static unsigned char dhg_4096[] = {
++ 0x02
++ };
++ DH *dh = DH_new();
++ BIGNUM *dhp_bn, *dhg_bn;
++
++ if (dh == NULL)
++ return NULL;
++ dhp_bn = BN_bin2bn(dhp_4096, sizeof (dhp_4096), NULL);
++ dhg_bn = BN_bin2bn(dhg_4096, sizeof (dhg_4096), NULL);
++ if (dhp_bn == NULL || dhg_bn == NULL
++ || !my_DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return NULL;
++ }
++ return dh;
++}
diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix
index 5f84b5dcc66..b5e44a10947 100644
--- a/pkgs/os-specific/linux/prl-tools/default.nix
+++ b/pkgs/os-specific/linux/prl-tools/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
( cd $sourceRoot/tools; tar -xaf prltools${if x64 then ".x64" else ""}.tar.gz )
'';
- kernelVersion = if libsOnly then "" else (builtins.parseDrvName kernel.name).version;
+ kernelVersion = if libsOnly then "" else lib.getName kernel.name;
kernelDir = if libsOnly then "" else "${kernel.dev}/lib/modules/${kernelVersion}";
scriptPath = lib.concatStringsSep ":" (lib.optionals (!libsOnly) [ "${utillinux}/bin" "${gawk}/bin" ]);
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index b00b9778178..2a708a6d8c7 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "grafana";
- version = "6.4.4";
+ version = "6.4.5";
goPackagePath = "github.com/grafana/grafana";
@@ -12,12 +12,12 @@ buildGoPackage rec {
rev = "v${version}";
owner = "grafana";
repo = "grafana";
- sha256 = "0v5iwny96kb07qkj2qqqfgvnsw3dfcq3wf66zsllqavnahvrd1s8";
+ sha256 = "0chfskz3j0jc25fj7zpbs46lp6a426gz6nigiana04sqylmxm851";
};
srcStatic = fetchurl {
url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
- sha256 = "15583cdi4yajg678d3kj8nngs9lwj0qqn2nh5zm8il9p71w57x0k";
+ sha256 = "0sfs8kv4sxacly39ddy05i3gv14i7d14fc1fb952kdx0zzm8zray";
};
postPatch = ''
diff --git a/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
new file mode 100644
index 00000000000..68bac5c560e
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "nginxlog_exporter";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "martin-helmich";
+ repo = "prometheus-nginxlog-exporter";
+ rev = "v${version}";
+ sha256 = "0cma6hgagqdms6x40v0q4jn8gjq1awyg1aqk5l8mz7l6k132qq7k";
+ };
+
+ goPackagePath = "github.com/martin-helmich/prometheus-nginxlog-exporter";
+
+ goDeps = ./nginxlog-exporter_deps.nix;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Export metrics from Nginx access log files to Prometheus";
+ homepage = "https://github.com/martin-helmich/prometheus-nginxlog-exporter";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ mmahut ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/servers/monitoring/prometheus/nginxlog-exporter_deps.nix b/pkgs/servers/monitoring/prometheus/nginxlog-exporter_deps.nix
new file mode 100644
index 00000000000..3051258a636
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/nginxlog-exporter_deps.nix
@@ -0,0 +1,282 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/armon/go-radix";
+ fetch = {
+ type = "git";
+ url = "https://github.com/armon/go-radix";
+ rev = "v1.0.0";
+ sha256 = "1m1k0jz9gjfrk4m7hjm7p03qmviamfgxwm2ghakqxw3hdds8v503";
+ };
+ }
+ {
+ goPackagePath = "github.com/beorn7/perks";
+ fetch = {
+ type = "git";
+ url = "https://github.com/beorn7/perks";
+ rev = "3ac7bf7a47d1";
+ sha256 = "1qc3l4r818xpvrhshh1sisc5lvl9479qspcfcdbivdyh0apah83r";
+ };
+ }
+ {
+ goPackagePath = "github.com/davecgh/go-spew";
+ fetch = {
+ type = "git";
+ url = "https://github.com/davecgh/go-spew";
+ rev = "v1.1.1";
+ sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+ };
+ }
+ {
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "0c1f6d65b5a1";
+ sha256 = "1ad3zv0s3swslfwmk0wry9qbjz596689z13f2s7d9gska6msigsl";
+ };
+ }
+ {
+ goPackagePath = "github.com/gopherjs/gopherjs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gopherjs/gopherjs";
+ rev = "0766667cb4d1";
+ sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/consul";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/consul";
+ rev = "de080672fee9";
+ sha256 = "1q46gn7gv7ara21akkbyzlnari4naxax2d0z917y56ra4lwm259i";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/go-msgpack";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/go-msgpack";
+ rev = "v0.5.3";
+ sha256 = "00jv0ajqd58pkb2yyhlrjp0rv1mvb1ijx3yqjyikcmzvk9jb4h5m";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/golang-lru";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/golang-lru";
+ rev = "v0.5.1";
+ sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "v1.0.0";
+ sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
+ };
+ }
+ {
+ goPackagePath = "github.com/hpcloud/tail";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hpcloud/tail";
+ rev = "v1.0.0";
+ sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
+ };
+ }
+ {
+ goPackagePath = "github.com/jtolds/gls";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jtolds/gls";
+ rev = "v4.20.0";
+ sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/pretty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/pretty";
+ rev = "v0.1.0";
+ sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/pty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/pty";
+ rev = "v1.1.1";
+ sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
+ };
+ }
+ {
+ goPackagePath = "github.com/kr/text";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kr/text";
+ rev = "v0.1.0";
+ sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
+ };
+ }
+ {
+ goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
+ fetch = {
+ type = "git";
+ url = "https://github.com/matttproud/golang_protobuf_extensions";
+ rev = "v1.0.1";
+ sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+ };
+ }
+ {
+ goPackagePath = "github.com/pmezard/go-difflib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pmezard/go-difflib";
+ rev = "v1.0.0";
+ sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/client_golang";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/client_golang";
+ rev = "5636dc67ae77";
+ sha256 = "0fb4w52zp0jk8218gwk4wgbhpj7d4hp6n00dvm8s0ajbysbx524d";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/client_model";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/client_model";
+ rev = "fa8ad6fec335";
+ sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/common";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/common";
+ rev = "4402f4e5ea79";
+ sha256 = "1nskicw0k0kay9dqg8hw2clgcnvjfcz839rijvrz4wh7gl42qiag";
+ };
+ }
+ {
+ goPackagePath = "github.com/prometheus/procfs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/prometheus/procfs";
+ rev = "abf152e5f3e9";
+ sha256 = "0cp8lznv1b4zhi3wnbjkfxwzhkqd3wbmiy6mwgjanip8l9l3ykws";
+ };
+ }
+ {
+ goPackagePath = "github.com/satyrius/gonx";
+ fetch = {
+ type = "git";
+ url = "https://github.com/satyrius/gonx";
+ rev = "47c52b995fe5";
+ sha256 = "0f0b6ac9xlai168d32zas4v2afk5b2q1bs0qi3dykkk6lhq7b58m";
+ };
+ }
+ {
+ goPackagePath = "github.com/smartystreets/assertions";
+ fetch = {
+ type = "git";
+ url = "https://github.com/smartystreets/assertions";
+ rev = "b2de0cb4f26d";
+ sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y";
+ };
+ }
+ {
+ goPackagePath = "github.com/smartystreets/goconvey";
+ fetch = {
+ type = "git";
+ url = "https://github.com/smartystreets/goconvey";
+ rev = "200a235640ff";
+ sha256 = "08hgfwjs5zqwsx1z5ja15d0g4glprb3ck7dfi88kwv5q5fl1p139";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/objx";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/objx";
+ rev = "v0.1.0";
+ sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "v1.4.0";
+ sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "c200b10b5d5e";
+ sha256 = "1f764m3q05q2dq1pdms07jcixw4xakqw46w1djrmbhjmd9q8b0av";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/check.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/check.v1";
+ rev = "788fd7840127";
+ sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/fsnotify.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/fsnotify.v1";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/tomb.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/tomb.v1";
+ rev = "dd632973f1e7";
+ sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "v2.2.4";
+ sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
+ };
+ }
+]
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 3b994337e9c..02c3759c58b 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "nextcloud";
- version = "17.0.0";
+ version = "17.0.1";
src = fetchurl {
url = "https://download.nextcloud.com/server/releases/${pname}-${version}.tar.bz2";
- sha256 = "19j2l4qxkqsxcw75gvkinjqawia07wx2kcmzn8q33nzc6cdl50b0";
+ sha256 = "0jrbpzc4xf52zfncn6w2m0ch2fszqqz3ny0jq1cw7fy24vjhwgkp";
};
installPhase = ''
diff --git a/pkgs/servers/nginx-sso/default.nix b/pkgs/servers/nginx-sso/default.nix
index a89604c4e7c..5cc583c68b3 100644
--- a/pkgs/servers/nginx-sso/default.nix
+++ b/pkgs/servers/nginx-sso/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "nginx-sso";
- version = "0.16.1";
+ version = "0.22.0";
rev = "v${version}";
goPackagePath = "github.com/Luzifer/nginx-sso";
@@ -11,7 +11,7 @@ buildGoPackage rec {
inherit rev;
owner = "Luzifer";
repo = "nginx-sso";
- sha256 = "100k5dxrwj5xa1yh79qmyv6jampijqjbr4vkn1d9avim352yhnk1";
+ sha256 = "1kcyb7sbqna18yw3myi3c0imhh4hsa0h2k2y0bqfr2pqsnssz54a";
};
postInstall = ''
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index de7167ca740..998d64e34f0 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -8,13 +8,13 @@
# server, and the FHS userenv and corresponding NixOS module should
# automatically pick up the changes.
stdenv.mkDerivation rec {
- version = "1.18.1.1973-0f4abfbcc";
+ version = "1.18.2.2058-e67a4e892";
pname = "plexmediaserver";
# Fetch the source
src = fetchurl {
url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm";
- sha256 = "1lmj4yal1f072w5rwxn9m09lbclzy87xnvy89iva1kmqzl3bfz2q";
+ sha256 = "12riaabhc4pp3nbjqvbp81fsnjzw43yfgnkjm7s9il0n85awzg0s";
};
outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 3ca91cfd625..f86ae9d7cec 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -49,7 +49,7 @@ in {
};
unifiStable = generic {
- version = "5.11.39";
- sha256 = "0v1gnvdazxa3bcbq8hl6796yw0mxzki2xn4s5im5k5ngmfmnswyj";
+ version = "5.12.35";
+ sha256 = "0ln8x7yisanbx1afclhffa0f3fk0sgh7dpj548xyhn5mgpwbj4i2";
};
}
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 71ac752a6cf..60bda89835f 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -529,7 +529,7 @@ self: super:
xorgserver = with self; super.xorgserver.overrideAttrs (attrs_passed:
# exchange attrs if abiCompat is set
let
- version = (builtins.parseDrvName attrs_passed.name).version;
+ version = lib.getVersion attrs_passed;
attrs =
if (abiCompat == null || lib.hasPrefix abiCompat version) then
attrs_passed // {
@@ -564,7 +564,7 @@ self: super:
in attrs //
(let
- version = (builtins.parseDrvName attrs.name).version;
+ version = lib.getVersion attrs;
commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
commonPropagatedBuildInputs = [
zlib libGL libGLU dbus
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 8140e654d24..db19d340a57 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
{ stdenv, fetchgit }:
stdenv.mkDerivation rec {
- version = "2019-11-21";
+ version = "2019-11-23";
pname = "oh-my-zsh";
- rev = "76d6b0256398ad1becbc304a78f51bbacfee50e5";
+ rev = "7b73c9ca1ced57cdf545e860e880658753b81777";
src = fetchgit { inherit rev;
url = "https://github.com/robbyrussell/oh-my-zsh";
- sha256 = "0p049v1v0jk3v8inn99ankgdn2q5iamsxn203w4vb53266xjgx2r";
+ sha256 = "1mxqa2gf309vjdb1snbczrqwpwi7y6rnmv3n77hsph41bb6j64rz";
};
pathsToLink = [ "/share/oh-my-zsh" ];
diff --git a/pkgs/shells/zsh/oh-my-zsh/update.sh b/pkgs/shells/zsh/oh-my-zsh/update.sh
index 08b0daa4387..9567a2b6ae5 100755
--- a/pkgs/shells/zsh/oh-my-zsh/update.sh
+++ b/pkgs/shells/zsh/oh-my-zsh/update.sh
@@ -3,7 +3,7 @@
set -eu -o pipefail
-oldVersion="$(nix-instantiate --eval -E "with import ./. {}; oh-my-zsh.version or (builtins.parseDrvName oh-my-zsh.name).version" | tr -d '"')"
+oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion oh-my-zsh" | tr -d '"')"
latestSha="$(curl -L -s https://api.github.com/repos/robbyrussell/oh-my-zsh/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')"
url="$(nix-instantiate --eval -E "with import ./. {}; oh-my-zsh.src.url" | tr -d '"')"
diff --git a/pkgs/tools/X11/xidlehook/default.nix b/pkgs/tools/X11/xidlehook/default.nix
index 89aff817f50..67c6a594db7 100644
--- a/pkgs/tools/X11/xidlehook/default.nix
+++ b/pkgs/tools/X11/xidlehook/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, rustPlatform, fetchFromGitLab
+{ lib, stdenv, rustPlatform, fetchFromGitLab, python3
, xlibsWrapper, xorg, libpulseaudio, pkgconfig, patchelf, Security }:
rustPlatform.buildRustPackage rec {
pname = "xidlehook";
- version = "0.7.1";
+ version = "0.8.0";
doCheck = false;
@@ -12,14 +12,14 @@ rustPlatform.buildRustPackage rec {
repo = "xidlehook";
rev = version;
- sha256 = "04bb81iwxznkr1zq1q8dql9qklzm9qy7837a71b02ywp3fc6v5b2";
+ sha256 = "127b20y86xs2wq5ka236057nyrh87fgzhjqbl6azf002afnbsn5m";
};
cargoBuildFlags = lib.optionals (!stdenv.isLinux) ["--no-default-features" "--features" "pulse"];
- cargoSha256 = "0xnz2s8vh5njqs4a1qm98ydh8pywxvnnpym0z94fsifyfdjlsfm4";
+ cargoSha256 = "0jdkcxvlw7s8pz1ka3d2w97356a2axvlwfgyh2dz7nmfzpjx64x0";
buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
- nativeBuildInputs = [ pkgconfig patchelf ];
+ nativeBuildInputs = [ pkgconfig patchelf python3 ];
postFixup = lib.optionalString stdenv.isLinux ''
RPATH="$(patchelf --print-rpath $out/bin/xidlehook)"
diff --git a/pkgs/tools/admin/aws-google-auth/default.nix b/pkgs/tools/admin/aws-google-auth/default.nix
index 0fc001d5a19..e878369f177 100644
--- a/pkgs/tools/admin/aws-google-auth/default.nix
+++ b/pkgs/tools/admin/aws-google-auth/default.nix
@@ -19,7 +19,7 @@
buildPythonApplication rec {
pname = "aws-google-auth";
- version = "0.0.32";
+ version = "0.0.33";
# Pypi doesn't ship the tests, so we fetch directly from GitHub
# https://github.com/cevoaustralia/aws-google-auth/issues/120
@@ -27,7 +27,7 @@ buildPythonApplication rec {
owner = "cevoaustralia";
repo = "aws-google-auth";
rev = version;
- sha256 = "0blsvdkb28g1s3c7f8brjjai7lq9ij76xqr5z6zlxxafc4qqwhh3";
+ sha256 = "07sisv7b17bpjwikmm9zpxn3l3xpzywsbxi4brri2hdjmjb6p7w7";
};
propagatedBuildInputs = [
diff --git a/pkgs/tools/admin/fbvnc/default.nix b/pkgs/tools/admin/fbvnc/default.nix
new file mode 100644
index 00000000000..ec32b5f0a26
--- /dev/null
+++ b/pkgs/tools/admin/fbvnc/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchFromGitHub}:
+stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+ pname = "fbvnc";
+ version = "1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "zohead";
+ repo = pname;
+ sha256 = "0lkr4j1wsa05av2g9w99rr9w4j4k7a21vp36x0a3h50y8bmgwgm1";
+ rev = "783204ff6c92afec33d6d36f7e74f1fcf2b1b601";
+ };
+
+ buildInputs = [];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp fbvnc "$out/bin"
+ mkdir -p "$out/share/doc/${pname}"
+ cp README* "$out/share/doc/${pname}"
+ '';
+
+ meta = {
+ description = "Framebuffer VNC client";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ homepage = "https://github.com/zohead/fbvnc/";
+ };
+}
diff --git a/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15678.patch b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15678.patch
new file mode 100644
index 00000000000..cd65d2fb5dd
--- /dev/null
+++ b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15678.patch
@@ -0,0 +1,18 @@
+Adapted from https://github.com/LibVNC/libvncserver/commit/c5ba3fee85a7ecbbca1df5ffd46d32b92757bc2a
+diff --git a/vncviewer/rfbproto.c b/vncviewer/rfbproto.c
+index 04b0230..47a6863 100644
+--- a/vncviewer/rfbproto.c
++++ b/vncviewer/rfbproto.c
+@@ -1217,6 +1217,12 @@ HandleRFBServerMessage()
+ if (serverCutText)
+ free(serverCutText);
+
++ if (msg.sct.length > 1<<20) {
++ fprintf(stderr,"Ignoring too big cut text length sent by server: %u B > 1 MB\n",
++ (unsigned int)msg.sct.length);
++ return False;
++ }
++
+ serverCutText = malloc(msg.sct.length+1);
+
+ if (!ReadFromRFBServer(serverCutText, msg.sct.length))
diff --git a/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15679.patch b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15679.patch
new file mode 100644
index 00000000000..6d7b3e89e0c
--- /dev/null
+++ b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15679.patch
@@ -0,0 +1,19 @@
+Adapted from https://github.com/LibVNC/libvncserver/commit/c2c4b81e6cb3b485fb1ec7ba9e7defeb889f6ba7
+diff --git a/vncviewer/rfbproto.c b/vncviewer/rfbproto.c
+index 04b0230..bd11b54 100644
+--- a/vncviewer/rfbproto.c
++++ b/vncviewer/rfbproto.c
+@@ -303,7 +303,12 @@ InitialiseRFBConnection(void)
+ si.format.blueMax = Swap16IfLE(si.format.blueMax);
+ si.nameLength = Swap32IfLE(si.nameLength);
+
+- /* FIXME: Check arguments to malloc() calls. */
++ if (si.nameLength > 1<<20) {
++ fprintf(stderr, "Too big desktop name length sent by server: %lu B > 1 MB\n",
++ (unsigned long)si.nameLength);
++ return False;
++ }
++
+ desktopName = malloc(si.nameLength + 1);
+ if (!desktopName) {
+ fprintf(stderr, "Error allocating memory for desktop name, %lu bytes\n",
diff --git a/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15680.patch b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15680.patch
new file mode 100644
index 00000000000..7426a2b58b1
--- /dev/null
+++ b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-15680.patch
@@ -0,0 +1,16 @@
+diff --git a/vncviewer/zlib.c b/vncviewer/zlib.c
+index 80c4eee..76998d8 100644
+--- a/vncviewer/zlib.c
++++ b/vncviewer/zlib.c
+@@ -55,6 +55,11 @@ HandleZlibBPP (int rx, int ry, int rw, int rh)
+ raw_buffer_size = (( rw * rh ) * ( BPP / 8 ));
+ raw_buffer = (char*) malloc( raw_buffer_size );
+
++ if ( raw_buffer == NULL ) {
++ fprintf(stderr,
++ "couldn't allocate raw_buffer in HandleZlibBPP");
++ return False;
++ }
+ }
+
+ if (!ReadFromRFBServer((char *)&hdr, sz_rfbZlibHeader))
diff --git a/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-8287.patch b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-8287.patch
new file mode 100644
index 00000000000..5bfd1b9ea87
--- /dev/null
+++ b/pkgs/tools/admin/tightvnc/1.3.10-CVE-2019-8287.patch
@@ -0,0 +1,14 @@
+Adapted from https://github.com/LibVNC/libvncserver/commit/7b1ef0ffc4815cab9a96c7278394152bdc89dc4d
+diff --git a/vncviewer/corre.c b/vncviewer/corre.c
+index c846a10..a4c272d 100644
+--- a/vncviewer/corre.c
++++ b/vncviewer/corre.c
+@@ -56,7 +56,7 @@ HandleCoRREBPP (int rx, int ry, int rw, int rh)
+ XChangeGC(dpy, gc, GCForeground, &gcv);
+ XFillRectangle(dpy, desktopWin, gc, rx, ry, rw, rh);
+
+- if (!ReadFromRFBServer(buffer, hdr.nSubrects * (4 + (BPP / 8))))
++ if (hdr.nSubrects > BUFFER_SIZE / (4 + (BPP / 8)) || !ReadFromRFBServer(buffer, hdr.nSubrects * (4 + (BPP / 8))))
+ return False;
+
+ ptr = (CARD8 *)buffer;
diff --git a/pkgs/tools/admin/tightvnc/default.nix b/pkgs/tools/admin/tightvnc/default.nix
index 5a76b500d14..1a65c31102e 100644
--- a/pkgs/tools/admin/tightvnc/default.nix
+++ b/pkgs/tools/admin/tightvnc/default.nix
@@ -9,6 +9,13 @@ stdenv.mkDerivation {
sha256 = "f48c70fea08d03744ae18df6b1499976362f16934eda3275cead87baad585c0d";
};
+ patches = [
+ ./1.3.10-CVE-2019-15678.patch
+ ./1.3.10-CVE-2019-15679.patch
+ ./1.3.10-CVE-2019-15680.patch
+ ./1.3.10-CVE-2019-8287.patch
+ ];
+
# for the builder script
inherit fontDirectories;
diff --git a/pkgs/tools/audio/acoustid-fingerprinter/default.nix b/pkgs/tools/audio/acoustid-fingerprinter/default.nix
index acd205a30de..7b92b973df4 100644
--- a/pkgs/tools/audio/acoustid-fingerprinter/default.nix
+++ b/pkgs/tools/audio/acoustid-fingerprinter/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ cmake qt4 taglib chromaprint ffmpeg ];
- cmakeFlags = [ "-DTAGLIB_MIN_VERSION=${(builtins.parseDrvName taglib.name).version}" ];
+ cmakeFlags = [ "-DTAGLIB_MIN_VERSION=${stdenv.lib.getVersion taglib}" ];
patches = [
(fetchpatch {
diff --git a/pkgs/tools/filesystems/dislocker/default.nix b/pkgs/tools/filesystems/dislocker/default.nix
index 81faed5bfa8..cf87f9ca98e 100644
--- a/pkgs/tools/filesystems/dislocker/default.nix
+++ b/pkgs/tools/filesystems/dislocker/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub
+{ stdenv
+, fetchFromGitHub
, cmake
-, polarssl , fuse
+, mbedtls
+, fuse
}:
-with stdenv.lib;
-let
- version = "0.7.1";
-in
-stdenv.mkDerivation {
+
+
+stdenv.mkDerivation rec {
pname = "dislocker";
- inherit version;
+ version = "0.7.1";
src = fetchFromGitHub {
owner = "aorimn";
@@ -17,9 +17,10 @@ stdenv.mkDerivation {
sha256 = "1crh2sg5x1kgqmdrl1nmrqwxjykxa4zwnbggcpdn97mj2gvdw7sb";
};
- buildInputs = [ cmake fuse polarssl ];
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ fuse mbedtls ];
- meta = {
+ meta = with stdenv.lib; {
description = "Read BitLocker encrypted partitions in Linux";
homepage = https://github.com/aorimn/dislocker;
license = licenses.gpl2;
diff --git a/pkgs/tools/inputmethods/ibus/wrapper.nix b/pkgs/tools/inputmethods/ibus/wrapper.nix
index 3196c5b4e8a..1b14629d283 100644
--- a/pkgs/tools/inputmethods/ibus/wrapper.nix
+++ b/pkgs/tools/inputmethods/ibus/wrapper.nix
@@ -3,7 +3,7 @@
}:
let
- name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version;
+ name = "ibus-with-plugins-" + stdenv.lib.getVersion ibus;
env = {
buildInputs = [ ibus ] ++ plugins;
nativeBuildInputs = [ lndir makeWrapper ];
diff --git a/pkgs/tools/misc/bandwidth/default.nix b/pkgs/tools/misc/bandwidth/default.nix
index 3b5e72c89f7..b4cbc747b1d 100644
--- a/pkgs/tools/misc/bandwidth/default.nix
+++ b/pkgs/tools/misc/bandwidth/default.nix
@@ -11,11 +11,11 @@ let
in
stdenv.mkDerivation rec {
pname = "bandwidth";
- version = "1.5.1";
+ version = "1.9.3";
src = fetchurl {
url = "https://zsmith.co/archives/${pname}-${version}.tar.gz";
- sha256 = "1v9k1a2ilkbhc3viyacgq88c9if60kwsd1fy6rn84317qap4i7ib";
+ sha256 = "0zpv2qgkbak0llw47qcakhyh2z3zv4d69kasldmpdlpqryd9za84";
};
buildInputs = [ nasm ];
diff --git a/pkgs/tools/misc/bibutils/default.nix b/pkgs/tools/misc/bibutils/default.nix
index d84c6ebaabc..d099a8aba9b 100644
--- a/pkgs/tools/misc/bibutils/default.nix
+++ b/pkgs/tools/misc/bibutils/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "bibutils";
- version = "6.7";
+ version = "6.8";
src = fetchurl {
url = "mirror://sourceforge/bibutils/bibutils_${version}_src.tgz";
- sha256 = "072cmhv692nk1lfcwmaqid5gpg8q4jc4vai5ss8lj72zms32p882";
+ sha256 = "1n28fjrl7zxjxvcqzmrc9xj8ly6nkxviimxbzamj8dslnkzpzqw1";
};
configureFlags = [ "--dynamic" "--install-dir" "$(out)/bin" "--install-lib" "$(out)/lib" ];
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index 4adadbf4707..1fd76eb4db6 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -6,12 +6,12 @@
mkDerivation rec {
pname = "calamares";
- version = "3.2.15";
+ version = "3.2.16";
# release including submodule
src = fetchurl {
url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
- sha256 = "0m2z34vgcqaf1yfa2919v3mz9b0q43mihz6di5kg62h6swaaanxd";
+ sha256 = "0ygmw03n8knczq9a9whslxcpmgyz0ksqwl0k8f7hyf96b9n8inc2";
};
buildInputs = [
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 1e15d9f0fe0..29d3e40eee4 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -9,11 +9,11 @@
# Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
python3Packages.buildPythonApplication rec {
pname = "diffoscope";
- version = "129";
+ version = "131";
src = fetchurl {
url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
- sha256 = "11llxk3nwz38ildypvi3djip650a3pd7m3c74mpgvi8v00rs1ca9";
+ sha256 = "1lqzm523pzxqj6xfm00z61d263w714d90sn6rfyh2npb8q95gfdn";
};
patches = [
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index 25d7eaba55e..95c87cb35fc 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, dpkg
, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
-, gnome2, gnome3, libnotify, libxcb, nspr, nss, systemd, xorg }:
+, gnome2, gnome3, libnotify, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
let
@@ -57,7 +57,7 @@ in stdenv.mkDerivation {
inherit src;
- buildInputs = [ dpkg ];
+ buildInputs = [ dpkg wrapGAppsHook gnome3.gtk ];
dontUnpack = true;
buildCommand = ''
@@ -76,6 +76,7 @@ in stdenv.mkDerivation {
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
patchelf --set-rpath ${rpath}:$out/share/mongodb-compass "$file" || true
done
+ wrapGAppsHook $out/bin/mongodb-compass
'';
meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/tensorman/default.nix b/pkgs/tools/misc/tensorman/default.nix
new file mode 100644
index 00000000000..97912b3c5fa
--- /dev/null
+++ b/pkgs/tools/misc/tensorman/default.nix
@@ -0,0 +1,24 @@
+{ pkgconfig, stdenv, rustPlatform, rustc, cargo, docker, openssl, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "tensorman";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "pop-os";
+ repo = "tensorman";
+ rev = version;
+ sha256 = "0ywb53snvymmwh10hm6whckz7dwmpqa4rxiggd24y178jdfrm2ns";
+ };
+
+ buildInputs = [ pkgconfig openssl ];
+ cargoSha256 = "1gh5w6zzrvjk60bqaf355fagijy723rvmqjh4laksd96pmzdfwn9";
+
+ meta = with stdenv.lib; {
+ description = "Utility for easy management of Tensorflow containers";
+ homepage = "https://github.com/pop-os/tensorman/";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ thefenriswolf ];
+ };
+}
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index 4e2c27e2d40..c59eb09f4c5 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
homepage = http://software.es.net/iperf/;
description = "Tool to measure IP bandwidth using UDP or TCP";
platforms = platforms.unix;
- license = "as-is";
+ license = licenses.bsd3;
maintainers = with maintainers; [ fpletz ];
};
}
diff --git a/pkgs/tools/security/afl/libdislocator.nix b/pkgs/tools/security/afl/libdislocator.nix
index 47e74573b81..415fa82f2ec 100644
--- a/pkgs/tools/security/afl/libdislocator.nix
+++ b/pkgs/tools/security/afl/libdislocator.nix
@@ -1,7 +1,7 @@
{ stdenv, afl}:
stdenv.mkDerivation {
- version = (builtins.parseDrvName afl.name).version;
+ version = stdenv.lib.getVersion afl;
pname = "libdislocator";
src = afl.src;
diff --git a/pkgs/tools/system/osquery/default.nix b/pkgs/tools/system/osquery/default.nix
deleted file mode 100644
index c34b53c1e62..00000000000
--- a/pkgs/tools/system/osquery/default.nix
+++ /dev/null
@@ -1,149 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake, python
-, udev, audit, aws-sdk-cpp, cryptsetup, lvm2, libgcrypt, libarchive
-, libgpgerror, libuuid, iptables, dpkg, lzma, bzip2, rpm
-, beecrypt, augeas, libxml2, sleuthkit, yara, lldpd, gflags
-, thrift, boost, rocksdb_lite, glog, gbenchmark, snappy
-, openssl, file, doxygen
-, gtest, fpm, zstd, rdkafka, rapidjson, fetchgit, fetchurl, libelfin
-, smartmontools, which, git, cscope, ctags, ssdeep
-}:
-
-let
- overrides = {
- # use older `lvm2` source for osquery, the 2.03 sourcetree
- # will break osquery due to the lacking header `lvm2app.h`.
- #
- # https://github.com/NixOS/nixpkgs/pull/51756#issuecomment-446035295
- lvm2 = lvm2.overrideAttrs (old: rec {
- name = "lvm2-${version}";
- version = "2.02.183";
- src = fetchgit {
- url = "git://sourceware.org/git/lvm2.git";
- rev = "v${version}";
- sha256 = "1ny3srcsxd6kj59zq1cman5myj8kzw010wbyc6mrpk4kp823r5nx";
- };
- });
-
- # use smartmontools fork to programatically retrieve SMART information.
- # https://github.com/facebook/osquery/pull/4133
- smartmontools = smartmontools.overrideAttrs (old: rec {
- name = "smartmontools-${version}";
- version = "0.3.1";
- src = fetchFromGitHub {
- owner = "allanliu";
- repo = "smartmontools";
- rev = "v${version}";
- sha256 = "1i72fk2ranrky02h7nh9l3va4kjzj0lx1gr477zkxd44wf3w0pjf";
- };
-
- # Apple build fix doesn't apply here and isn't needed as we
- # only support `osquery` on Linux.
- patches = [];
- });
-
- # dpkg 1.19.2 dropped api in `` which breaks compilation.
- dpkg = dpkg.overrideAttrs (old: rec {
- name = "dpkg-${version}";
- version = "1.19.0.5";
- src = fetchurl {
- url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
- sha256 = "1dc5kp3fqy1k66fly6jfxkkg7w6d0jy8szddpfyc2xvzga94d041";
- };
- });
-
- # filter out static linking configuration to avoid that the library will
- # be linked both statically and dynamically.
- gflags = gflags.overrideAttrs (old: {
- cmakeFlags = stdenv.lib.filter (f: (builtins.match ".*STATIC.*" f) == null) old.cmakeFlags;
- });
- };
-in
-
-stdenv.mkDerivation rec {
- pname = "osquery";
- version = "3.3.2";
-
- # this is what `osquery --help` will show as the version.
- OSQUERY_BUILD_VERSION = version;
- OSQUERY_PLATFORM = "NixOS;";
-
- src = fetchFromGitHub {
- owner = "facebook";
- repo = pname;
- rev = version;
- sha256 = "0nrwmzmbziacs3y0nljyc73bibr3w68myjpfwkicg9zgkq4qihij";
- };
-
- patches = [ ./0001-Fix-CMake-configuration-for-Nix.patch ];
-
- NIX_CFLAGS_COMPILE = [
- "-I${libxml2.dev}/include/libxml2"
- ];
-
- nativeBuildInputs = [ python which git cscope ctags cmake pkgconfig doxygen fpm ]
- ++ (with python.pkgs; [ jinja2 ]);
-
- buildInputs = [
- udev
- audit
- (aws-sdk-cpp.override {
- apis = [ "firehose" "kinesis" "sts" "ec2" ];
- customMemoryManagement = false;
- })
- overrides.lvm2
- libgcrypt
- libarchive
- libgpgerror
- libuuid
- iptables
- overrides.dpkg
- lzma
- bzip2
- rpm
- beecrypt
- augeas
- libxml2
- sleuthkit
- yara
- lldpd
- overrides.gflags
- thrift
- boost
- glog
- gbenchmark
- snappy
- openssl
- file
- cryptsetup
- gtest
- zstd
- rdkafka
- rapidjson
- rocksdb_lite
- libelfin
- ssdeep
- overrides.smartmontools
- ];
-
- cmakeFlags = [ "-DSKIP_TESTS=1" ];
-
- preConfigure = ''
- cp -r ${fetchFromGitHub {
- owner = "osquery";
- repo = "third-party";
- rev = "32e01462fbea75d3b1904693f937dfd62eaced15";
- sha256 = "0va24gmgk43a1lyjs63q9qrhvpv8gmqjzpjr5595vhr16idv8wyf";
- }}/* third-party
-
- chmod +w -R third-party
- '';
-
- meta = with lib; {
- description = "SQL powered operating system instrumentation, monitoring, and analytics";
- homepage = https://osquery.io/;
- license = licenses.bsd3;
- platforms = platforms.linux;
- maintainers = with maintainers; [ cstrahan ma27 ];
- broken = true;
- };
-}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 238f7b94772..e8a02b18b0f 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -47,6 +47,7 @@ mapAliases ({
at_spi2_core = at-spi2-core; # added 2018-02-25
bar-xft = lemonbar-xft; # added 2015-01-16
bashCompletion = bash-completion; # Added 2016-09-28
+ beegfs = throw "beegfs has been removed."; # added 2019-11-24
bridge_utils = bridge-utils; # added 2015-02-20
bro = zeek; # added 2019-09-29
btrfsProgs = btrfs-progs; # added 2016-01-03
@@ -260,6 +261,7 @@ mapAliases ({
openjpeg_2_1 = openjpeg_2; # added 2018-10-25
opensans-ttf = open-sans; # added 2018-12-04
openssh_with_kerberos = openssh; # added 2018-01-28
+ osquery = throw "osquery has been removed."; # added 2019-11-24
owncloudclient = owncloud-client; # added 2016-08
p11_kit = p11-kit; # added 2018-02-25
parquet-cpp = arrow-cpp; # added 2018-09-08
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index dd71bee627e..a76ec225752 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1011,12 +1011,6 @@ in
novacomd = callPackage ../development/mobile/webos/novacomd.nix { };
};
- arc-kde-theme = callPackage ../misc/themes/arc-kde { };
-
- adapta-gtk-theme = callPackage ../misc/themes/adapta { };
-
- adapta-kde-theme = callPackage ../misc/themes/adapta-kde { };
-
aria2 = callPackage ../tools/networking/aria2 {
inherit (darwin.apple_sdk.frameworks) Security;
inherit (pythonPackages) sphinx;
@@ -2164,8 +2158,6 @@ in
beanstalkd = callPackage ../servers/beanstalkd { };
- beegfs = callPackage ../os-specific/linux/beegfs { };
-
beets = callPackage ../tools/audio/beets {
pythonPackages = python3Packages;
};
@@ -3261,6 +3253,8 @@ in
fbv = callPackage ../tools/graphics/fbv { };
+ fbvnc = callPackage ../tools/admin/fbvnc {};
+
fim = callPackage ../tools/graphics/fim { };
flac123 = callPackage ../applications/audio/flac123 { };
@@ -4288,8 +4282,6 @@ in
kdbplus = pkgsi686Linux.callPackage ../applications/misc/kdbplus { };
- kde2-decoration = libsForQt5.callPackage ../misc/themes/kde2 { };
-
keepalived = callPackage ../tools/networking/keepalived { };
kexectools = callPackage ../os-specific/linux/kexectools { };
@@ -5430,9 +5422,9 @@ in
opentracing-cpp = callPackage ../development/libraries/opentracing-cpp { };
- openvswitch = callPackage ../os-specific/linux/openvswitch {
- openssl = openssl_1_0_2;
- };
+ openvswitch = callPackage ../os-specific/linux/openvswitch { };
+
+ openvswitch-lts = callPackage ../os-specific/linux/openvswitch/lts.nix { };
optipng = callPackage ../tools/graphics/optipng {
libpng = libpng12;
@@ -5495,8 +5487,6 @@ in
pamtester = callPackage ../tools/security/pamtester { };
- paper-gtk-theme = callPackage ../misc/themes/paper { };
-
paperless = callPackage ../applications/office/paperless { };
paperwork = callPackage ../applications/office/paperwork { };
@@ -6648,6 +6638,8 @@ in
thin-provisioning-tools = callPackage ../tools/misc/thin-provisioning-tools { };
tiled = libsForQt5.callPackage ../applications/editors/tiled { };
+
+ tiledb = callPackage ../development/libraries/tiledb { };
timemachine = callPackage ../applications/audio/timemachine { };
@@ -7768,8 +7760,8 @@ in
gerbil = callPackage ../development/compilers/gerbil { stdenv = gccStdenv; };
gerbil-unstable = callPackage ../development/compilers/gerbil/unstable.nix { stdenv = gccStdenv; };
- gccFun = callPackage ../development/compilers/gcc/8;
- gcc = gcc8;
+ gccFun = callPackage (if stdenv.targetPlatform.isVc4 then ../development/compilers/gcc/6 else ../development/compilers/gcc/8);
+ gcc = if stdenv.targetPlatform.isVc4 then gcc6 else gcc8;
gcc-unwrapped = gcc.cc;
gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
@@ -9395,6 +9387,9 @@ in
mspdebug = callPackage ../development/misc/msp430/mspdebug.nix { };
+ vc4-newlib = callPackage ../development/misc/vc4/newlib.nix {};
+ resim = callPackage ../misc/emulators/resim {};
+
rappel = callPackage ../development/misc/rappel/default.nix { };
pharo-vms = callPackage ../development/pharo/vm { };
@@ -10471,6 +10466,8 @@ in
tflint = callPackage ../development/tools/analysis/tflint { };
+ tfsec = callPackage ../development/tools/analysis/tfsec { };
+
todoist = callPackage ../applications/misc/todoist { };
todolist = callPackage ../applications/misc/todolist { };
@@ -10700,9 +10697,9 @@ in
bamf = callPackage ../development/libraries/bamf { };
- bctoolbox = callPackage ../development/libraries/bctoolbox {
- mbedtls = mbedtls_1_3;
- };
+ bcg729 = callPackage ../development/libraries/bcg729 { };
+
+ bctoolbox = callPackage ../development/libraries/bctoolbox { };
beecrypt = callPackage ../development/libraries/beecrypt { };
@@ -11341,6 +11338,7 @@ in
else if name == "uclibc" then targetPackages.uclibcCross or uclibcCross
else if name == "avrlibc" then targetPackages.avrlibcCross or avrlibcCross
else if name == "newlib" && stdenv.targetPlatform.isMsp430 then targetPackages.msp430NewlibCross or msp430NewlibCross
+ else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib
else if name == "newlib" then targetPackages.newlibCross or newlibCross
else if name == "musl" then targetPackages.muslCross or muslCross
else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
@@ -11595,6 +11593,12 @@ in
gtkmm2 = callPackage ../development/libraries/gtkmm/2.x.nix { };
gtkmm3 = callPackage ../development/libraries/gtkmm/3.x.nix { };
+ gtk_engines = callPackage ../development/libraries/gtk-engines { };
+
+ gtk-engine-bluecurve = callPackage ../development/libraries/gtk-engine-bluecurve { };
+
+ gtk-engine-murrine = callPackage ../development/libraries/gtk-engine-murrine { };
+
gtk-sharp-2_0 = callPackage ../development/libraries/gtk-sharp/2.0.nix {
inherit (gnome2) libglade libgtkhtml gtkhtml
libgnomecanvas libgnomeui libgnomeprint
@@ -14393,6 +14397,8 @@ in
stdenv = gcc6Stdenv; # upstream code incompatible with gcc7
};
+ wally-cli = callPackage ../development/tools/wally-cli { };
+
wavpack = callPackage ../development/libraries/wavpack { };
wayland = callPackage ../development/libraries/wayland { };
@@ -15416,6 +15422,7 @@ in
prometheus-mysqld-exporter = callPackage ../servers/monitoring/prometheus/mysqld-exporter.nix { };
prometheus-nextcloud-exporter = callPackage ../servers/monitoring/prometheus/nextcloud-exporter.nix { };
prometheus-nginx-exporter = callPackage ../servers/monitoring/prometheus/nginx-exporter.nix { };
+ prometheus-nginxlog-exporter = callPackage ../servers/monitoring/prometheus/nginxlog-exporter.nix { };
prometheus-node-exporter = callPackage ../servers/monitoring/prometheus/node-exporter.nix { };
prometheus-openvpn-exporter = callPackage ../servers/monitoring/prometheus/openvpn-exporter.nix { };
prometheus-postfix-exporter = callPackage ../servers/monitoring/prometheus/postfix-exporter.nix { };
@@ -16178,6 +16185,12 @@ in
];
};
+ linux_5_4 = callPackage ../os-specific/linux/kernel/linux-5.4.nix {
+ kernelPatches = [
+ kernelPatches.bridge_stp_helper
+ ];
+ };
+
linux_testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
kernelPatches = [
kernelPatches.bridge_stp_helper
@@ -16229,8 +16242,6 @@ in
bbswitch = callPackage ../os-specific/linux/bbswitch {};
- beegfs-module = callPackage ../os-specific/linux/beegfs/kernel-module.nix { };
-
ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
chipsec = callPackage ../tools/security/chipsec {
@@ -16376,7 +16387,7 @@ in
linux = linuxPackages.kernel;
# Update this when adding the newest kernel major version!
- linuxPackages_latest = linuxPackages_5_3;
+ linuxPackages_latest = linuxPackages_5_4;
linux_latest = linuxPackages_latest.kernel;
# Build the kernel modules for the some of the kernels.
@@ -16390,6 +16401,7 @@ in
linuxPackages_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_14);
linuxPackages_4_19 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_19);
linuxPackages_5_3 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_3);
+ linuxPackages_5_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_4);
# When adding to this list:
# - Update linuxPackages_latest to the latest version
@@ -17003,12 +17015,20 @@ in
adapta-backgrounds = callPackage ../data/misc/adapta-backgrounds { };
+ adapta-gtk-theme = callPackage ../data/themes/adapta { };
+
+ adapta-kde-theme = callPackage ../data/themes/adapta-kde { };
+
adementary-theme = callPackage ../data/themes/adementary { };
+ adwaita-qt = libsForQt5.callPackage ../data/themes/adwaita-qt { };
+
agave = callPackage ../data/fonts/agave { };
aileron = callPackage ../data/fonts/aileron { };
+ albatross = callPackage ../data/themes/albatross { };
+
amber-theme = callPackage ../data/themes/amber { };
amiri = callPackage ../data/fonts/amiri { };
@@ -17028,6 +17048,8 @@ in
arc-icon-theme = callPackage ../data/icons/arc-icon-theme { };
+ arc-kde-theme = callPackage ../data/themes/arc-kde { };
+
arc-theme = callPackage ../data/themes/arc { };
arkpandora_ttf = callPackage ../data/fonts/arkpandora { };
@@ -17048,6 +17070,8 @@ in
bibata-extra-cursors = callPackage ../data/icons/bibata-cursors/extra.nix { };
bibata-cursors-translucent = callPackage ../data/icons/bibata-cursors/translucent.nix { };
+ blackbird = callPackage ../data/themes/blackbird { };
+
brise = callPackage ../data/misc/brise { };
inherit (kdeFrameworks) breeze-icons;
@@ -17068,6 +17092,8 @@ in
cherry = callPackage ../data/fonts/cherry { inherit (xorg) fonttosfnt mkfontdir; };
+ clearlooks-phenix = callPackage ../data/themes/clearlooks-phenix { };
+
cnstrokeorder = callPackage ../data/fonts/cnstrokeorder {};
comfortaa = callPackage ../data/fonts/comfortaa {};
@@ -17154,10 +17180,14 @@ in
dosemu_fonts = callPackage ../data/fonts/dosemu-fonts { };
+ e17gtk = callPackage ../data/themes/e17gtk { };
+
eb-garamond = callPackage ../data/fonts/eb-garamond { };
elliptic_curves = callPackage ../data/misc/elliptic_curves { };
+ equilux-theme = callPackage ../data/themes/equilux-theme { };
+
eunomia = callPackage ../data/fonts/eunomia { };
f5_6 = callPackage ../data/fonts/f5_6 { };
@@ -17213,6 +17243,8 @@ in
gsettings-desktop-schemas = callPackage ../development/libraries/gsettings-desktop-schemas { };
+ gnome-breeze = callPackage ../data/themes/gnome-breeze { };
+
go-font = callPackage ../data/fonts/go-font { };
greybird = callPackage ../data/themes/greybird { };
@@ -17267,6 +17299,8 @@ in
kawkab-mono-font = callPackage ../data/fonts/kawkab-mono {};
+ kde2-decoration = libsForQt5.callPackage ../data/themes/kde2 { };
+
kochi-substitute = callPackage ../data/fonts/kochi-substitute {};
kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
@@ -17408,24 +17442,36 @@ in
numix-cursor-theme = callPackage ../data/icons/numix-cursor-theme { };
+ numix-gtk-theme = callPackage ../data/themes/numix { };
+
+ numix-solarized-gtk-theme = callPackage ../data/themes/numix-solarized { };
+
+ numix-sx-gtk-theme = callPackage ../data/themes/numix-sx { };
+
office-code-pro = callPackage ../data/fonts/office-code-pro { };
oldstandard = callPackage ../data/fonts/oldstandard { };
oldsindhi = callPackage ../data/fonts/oldsindhi { };
+ onestepback = callPackage ../data/themes/onestepback { };
+
open-dyslexic = callPackage ../data/fonts/open-dyslexic { };
open-sans = callPackage ../data/fonts/open-sans { };
orbitron = callPackage ../data/fonts/orbitron { };
+ orion = callPackage ../data/themes/orion {};
+
overpass = callPackage ../data/fonts/overpass { };
oxygenfonts = callPackage ../data/fonts/oxygenfonts { };
inherit (kdeFrameworks) oxygen-icons5;
+ paper-gtk-theme = callPackage ../data/themes/paper-gtk { };
+
paper-icon-theme = callPackage ../data/icons/paper-icon-theme { };
papirus-icon-theme = callPackage ../data/icons/papirus-icon-theme { };
@@ -17480,6 +17526,8 @@ in
qogir-theme = callPackage ../data/themes/qogir { };
+ qtcurve = libsForQt5.callPackage ../data/themes/qtcurve {};
+
redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
route159 = callPackage ../data/fonts/route159 { };
@@ -17508,6 +17556,8 @@ in
sierra-gtk-theme = callPackage ../data/themes/sierra { };
+ solarc-gtk-theme = callPackage ../data/themes/solarc { };
+
soundfont-fluid = callPackage ../data/soundfonts/fluid { };
stdmanpages = callPackage ../data/documentation/std-man-pages { };
@@ -17623,6 +17673,8 @@ in
tex-gyre-math = callPackages ../data/fonts/tex-gyre-math { };
+ theme-vertex = callPackage ../data/themes/vertex { };
+
tipa = callPackage ../data/fonts/tipa { };
ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
@@ -18818,8 +18870,7 @@ in
firefox-bin = wrapFirefox firefox-bin-unwrapped {
browserName = "firefox";
- name = "firefox-bin-" +
- (builtins.parseDrvName firefox-bin-unwrapped.name).version;
+ pname = "firefox-bin";
desktopName = "Firefox";
};
@@ -18832,8 +18883,7 @@ in
firefox-beta-bin = res.wrapFirefox firefox-beta-bin-unwrapped {
browserName = "firefox";
- name = "firefox-beta-bin-" +
- (builtins.parseDrvName firefox-beta-bin-unwrapped.name).version;
+ pname = "firefox-beta-bin";
desktopName = "Firefox Beta";
};
@@ -18847,8 +18897,7 @@ in
firefox-devedition-bin = res.wrapFirefox firefox-devedition-bin-unwrapped {
browserName = "firefox";
nameSuffix = "-devedition";
- name = "firefox-devedition-bin-" +
- (builtins.parseDrvName firefox-devedition-bin-unwrapped.name).version;
+ pname = "firefox-devedition-bin";
desktopName = "Firefox DevEdition";
};
@@ -19717,9 +19766,7 @@ in
links2 = callPackage ../applications/networking/browsers/links2 { };
- linphone = callPackage ../applications/networking/instant-messengers/linphone {
- polarssl = mbedtls_1_3;
- };
+ linphone = callPackage ../applications/networking/instant-messengers/linphone { };
linuxsampler = callPackage ../applications/audio/linuxsampler { };
@@ -20161,8 +20208,6 @@ in
ptex = callPackage ../development/libraries/ptex {};
- qtcurve = libsForQt5.callPackage ../misc/themes/qtcurve {};
-
qbec = callPackage ../applications/networking/cluster/qbec { };
rssguard = libsForQt5.callPackage ../applications/networking/feedreaders/rssguard { };
@@ -20414,8 +20459,6 @@ in
osmo = callPackage ../applications/office/osmo { };
- osquery = callPackage ../tools/system/osquery { };
-
palemoon = callPackage ../applications/networking/browsers/palemoon {
# https://forum.palemoon.org/viewtopic.php?f=57&t=15296#p111146
stdenv = gcc49Stdenv;
@@ -20987,6 +21030,8 @@ in
spike = callPackage ../applications/virtualization/spike { };
+ tensorman = callPackage ../tools/misc/tensorman { };
+
spideroak = callPackage ../applications/networking/spideroak { };
split2flac = callPackage ../applications/audio/split2flac { };
@@ -23247,8 +23292,6 @@ in
### DESKTOP ENVIRONMENTS
- clearlooks-phenix = callPackage ../misc/themes/clearlooks-phenix { };
-
deepin = recurseIntoAttrs (import ../desktops/deepin {
inherit pkgs libsForQt5;
inherit (lib) makeScope;
@@ -23322,36 +23365,12 @@ in
latte-dock = libsForQt5.callPackage ../applications/misc/latte-dock { };
- adwaita-qt = libsForQt5.callPackage ../misc/themes/adwaita-qt { };
-
- orion = callPackage ../misc/themes/orion {};
-
- albatross = callPackage ../misc/themes/albatross { };
-
- gtk_engines = callPackage ../misc/themes/gtk2/gtk-engines { };
-
- gtk-engine-bluecurve = callPackage ../misc/themes/gtk2/gtk-engine-bluecurve { };
-
- gtk-engine-murrine = callPackage ../misc/themes/gtk2/gtk-engine-murrine { };
-
gnome-themes-extra = gnome3.gnome-themes-extra;
- numix-gtk-theme = callPackage ../misc/themes/numix { };
-
- numix-solarized-gtk-theme = callPackage ../misc/themes/numix-solarized { };
-
- numix-sx-gtk-theme = callPackage ../misc/themes/numix-sx { };
-
- onestepback = callPackage ../misc/themes/onestepback { };
-
- theme-vertex = callPackage ../misc/themes/vertex { };
-
rox-filer = callPackage ../desktops/rox/rox-filer {
gtk = gtk2;
};
- solarc-gtk-theme = callPackage ../misc/themes/solarc { };
-
xfce = recurseIntoAttrs (callPackage ../desktops/xfce { });
xrandr-invert-colors = callPackage ../applications/misc/xrandr-invert-colors { };
@@ -24263,8 +24282,6 @@ in
bees = callPackage ../tools/filesystems/bees { };
- blackbird = callPackage ../misc/themes/blackbird { };
-
bootil = callPackage ../development/libraries/bootil { };
brgenml1lpr = pkgsi686Linux.callPackage ../misc/cups/drivers/brgenml1lpr {};
@@ -24303,8 +24320,6 @@ in
terminal-parrot = callPackage ../applications/misc/terminal-parrot { };
- e17gtk = callPackage ../misc/themes/e17gtk { };
-
epson-alc1100 = callPackage ../misc/drivers/epson-alc1100 { };
epson-escpr = callPackage ../misc/drivers/epson-escpr { };
@@ -24373,8 +24388,6 @@ in
electricsheep = callPackage ../misc/screensavers/electricsheep { };
- equilux-theme = callPackage ../misc/themes/equilux-theme { };
-
flam3 = callPackage ../tools/graphics/flam3 { };
glee = callPackage ../tools/graphics/glee { };
@@ -24434,8 +24447,6 @@ in
glava = callPackage ../applications/misc/glava {};
- gnome-breeze = callPackage ../misc/themes/gnome-breeze { };
-
gnuk = callPackage ../misc/gnuk {
gcc-arm-embedded = pkgsCross.arm-embedded.buildPackages.gcc;
binutils-arm-embedded = pkgsCross.arm-embedded.buildPackages.binutils;
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index e01534f2891..7f29d47a993 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -23,7 +23,7 @@ let
isLua51 = (lib.versions.majorMinor lua.version) == "5.1";
isLua52 = (lib.versions.majorMinor lua.version) == "5.2";
isLua53 = lua.luaversion == "5.3";
- isLuaJIT = (builtins.parseDrvName lua.name).name == "luajit";
+ isLuaJIT = lib.getName lua == "luajit";
lua-setup-hook = callPackage ../development/interpreters/lua-5/setup-hook.nix { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 21db43dd358..a3a6dbef322 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -499,6 +499,8 @@ in {
cachy = callPackage ../development/python-modules/cachy { };
+ catalogue = callPackage ../development/python-modules/catalogue { };
+
cdecimal = callPackage ../development/python-modules/cdecimal { };
cfn-flip = callPackage ../development/python-modules/cfn-flip { };
@@ -5252,6 +5254,10 @@ in {
texttable = callPackage ../development/python-modules/texttable { };
+ tiledb = callPackage ../development/python-modules/tiledb {
+ inherit (pkgs) tiledb;
+ };
+
tiros = callPackage ../development/python-modules/tiros { };
tifffile = callPackage ../development/python-modules/tifffile { };