diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2019-11-25 21:51:57 +0100 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2019-11-25 21:51:57 +0100 |
commit | 06a054e6eb9d5ad395aa89e598205aa2c56afb61 (patch) | |
tree | 91254460e5216addfcfa8aa457d3d480ed448b47 | |
parent | 2a2d3de78c950d46922f9aa13c3ff531cb142310 (diff) | |
parent | 646b279c55780fa8cfe79b2a3b1e3ab53b445be7 (diff) | |
download | nixpkgs-06a054e6eb9d5ad395aa89e598205aa2c56afb61.tar nixpkgs-06a054e6eb9d5ad395aa89e598205aa2c56afb61.tar.gz nixpkgs-06a054e6eb9d5ad395aa89e598205aa2c56afb61.tar.bz2 nixpkgs-06a054e6eb9d5ad395aa89e598205aa2c56afb61.tar.lz nixpkgs-06a054e6eb9d5ad395aa89e598205aa2c56afb61.tar.xz nixpkgs-06a054e6eb9d5ad395aa89e598205aa2c56afb61.tar.zst nixpkgs-06a054e6eb9d5ad395aa89e598205aa2c56afb61.zip |
Merge master into staging-next
252 files changed, 3181 insertions, 2311 deletions
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: <programlisting> { - allowUnfreePredicate = (pkg: builtins.elem - (pkg.pname or (builtins.parseDrvName pkg.name).name) [ - "flashplayer" - "vscode" - ]); + allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "flashplayer" + "vscode" + ]; } </programlisting> </para> @@ -217,7 +216,7 @@ The following configuration example only allows insecure packages with very short names: <programlisting> { - allowInsecurePredicate = (pkg: (builtins.stringLength (builtins.parseDrvName pkg.name).name) <= 5); + allowInsecurePredicate = pkg: builtins.stringLength (lib.getName pkg) <= 5; } </programlisting> </para> 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 @@ -473,6 +473,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>enableQt4Support</option> option any more. </para> </listitem> + <listitem> + <para> + The BeeGFS module has been removed. + </para> + </listitem> + <listitem> + <para> + The osquery module has been removed. + </para> + </listitem> </itemizedlist> </section> 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 <literal>helperd</literal> allows for runing the client - with <literal>allowUnfree = false</literal>. - ''; - }; - - 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 + <literal>/etc/nixos/configuration.nix</literal> and be used when switching + to a new configuration. If set to <literal>null</literal>, a default + configuration is used that imports + <literal>(modulesPath + "/virtualisation/digital-ocean-config.nix")</literal>. + ''; + }; + + 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 + <literal>(modulesPath + "/virtualisation/digital-ocean-config.nix")</literal>. + ''; + description = '' + A path to a configuration file which will be placed at + <literal>/etc/nixos/configuration.nix</literal> 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 <literal>virtualisation.vswitch.package = pkgs.openvswitch-lts</literal> + 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; i<max_tests; i++)); do ${content} && exit 0; sleep "$sleep_time"; done; exit 1; + someContentIsShared = loc: pkgs.writeShellScript "some-content-is-shared" '' + [[ $(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 ]] ''; - 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"); - - $registry->start(); - $registry->waitForUnit("docker-registry.service"); - $registry->waitForOpenPort("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->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->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.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.wait_for_unit("docker-registry.service") + registry.wait_for_open_port("8080") + client1.succeed("docker push registry:8080/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')" + ) + + 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") + + 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'"); - }; - - 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"); - }; - - 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 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'") + + 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") + + 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; - - 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"); - - $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"); - - $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"); - }; - - subtest "gitolite server starts", sub { - $server->waitForUnit("gitolite-init.service"); - $server->waitForUnit("sshd.service"); - $client->mustSucceed('ssh gitolite@server info'); - }; - - 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)'); - }; - - 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'); - }; - - 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'); - }; + start_all() + + 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", + ) + + with subtest("gitolite server starts"): + server.wait_for_unit("gitolite-init.service") + server.wait_for_unit("sshd.service") + client.succeed("ssh gitolite@server info") + + 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)", + ) + + 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") + + 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") + + with subtest("alice can clone alice-project.git"): + client.succeed("sudo -i -u alice 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; - - # Wait for display manager to start - $machine->waitForText(qr/${user.description}/); - $machine->screenshot("lightdm"); - - # Log in - $machine->sendChars("${user.password}\n"); - $machine->waitForFile("/home/alice/.Xauthority"); - $machine->succeed("xauth merge ~alice/.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/); - - # Check that logging in has given the user ownership of devices. - $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice"); - - # 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"); + machine.wait_for_unit("display-manager.service") + + 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") + + 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") + + with subtest("Check that logging in has given the user ownership of devices"): + machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") + + # 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") + + 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"); - - $machine->waitUntilSucceeds("pgrep plasmashell"); - $machine->waitForWindow("^Desktop "); - - # Check that logging in has given the user ownership of devices. - $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice"); - - $machine->execute("su - alice -c 'DISPLAY=:0.0 dolphin &'"); - $machine->waitForWindow(" Dolphin"); - - $machine->execute("su - alice -c 'DISPLAY=:0.0 konsole &'"); - $machine->waitForWindow("Konsole"); - - $machine->execute("su - alice -c 'DISPLAY=:0.0 systemsettings5 &'"); - $machine->waitForWindow("Settings"); - - $machine->execute("${xdo} key Alt+F1 sleep 10"); - $machine->screenshot("screen"); + with subtest("Wait for login"): + start_all() + machine.wait_for_file("${user.home}/.Xauthority") + machine.succeed("xauth merge ${user.home}/.Xauthority") + + with subtest("Check plasmashell started"): + machine.wait_until_succeeds("pgrep plasmashell") + machine.wait_for_window("^Desktop ") + + with subtest("Check that logging in has given the user ownership of devices"): + machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") + + with subtest("Run Dolphin"): + machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 dolphin &'") + machine.wait_for_window(" Dolphin") + + with subtest("Run Konsole"): + machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 konsole &'") + machine.wait_for_window("Konsole") + + with subtest("Run systemsettings"): + machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 systemsettings5 &'") + machine.wait_for_window("Settings") + + 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 <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 "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ] # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "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 <akarshan.biswas@gmail.com> -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<VaapiPicture> 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 <me@tadeo.ca> 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 @@ -163,6 +163,15 @@ }; } { + goPackagePath = "github.com/golang/lint"; + fetch = { + type = "git"; + url = "https://github.com/golang/lint"; + rev = "06c8688daad7"; + sha256 = "0xi94dwvz50a66bq1hp9fyqkym5mcpdxdb1hrfvicldgjf37lc47"; + }; + } + { goPackagePath = "github.com/golang/mock"; fetch = { type = "git"; @@ -253,6 +262,15 @@ }; } { + 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 = { type = "git"; 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 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 index 02812b1f939..02812b1f939 100644 --- a/pkgs/misc/themes/adapta/default.nix +++ b/pkgs/data/themes/adapta/default.nix diff --git a/pkgs/misc/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix index 16ccee8540b..16ccee8540b 100644 --- a/pkgs/misc/themes/adwaita-qt/default.nix +++ b/pkgs/data/themes/adwaita-qt/default.nix diff --git a/pkgs/misc/themes/albatross/default.nix b/pkgs/data/themes/albatross/default.nix index 870b348cc32..870b348cc32 100644 --- a/pkgs/misc/themes/albatross/default.nix +++ b/pkgs/data/themes/albatross/default.nix diff --git a/pkgs/misc/themes/arc-kde/default.nix b/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 index 7ffefb1d67f..7ffefb1d67f 100644 --- a/pkgs/misc/themes/blackbird/default.nix +++ b/pkgs/data/themes/blackbird/default.nix diff --git a/pkgs/misc/themes/clearlooks-phenix/default.nix b/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 index 74f0a54ccef..74f0a54ccef 100644 --- a/pkgs/misc/themes/e17gtk/default.nix +++ b/pkgs/data/themes/e17gtk/default.nix diff --git a/pkgs/misc/themes/equilux-theme/default.nix b/pkgs/data/themes/equilux-theme/default.nix index f24524eb6b9..f24524eb6b9 100644 --- a/pkgs/misc/themes/equilux-theme/default.nix +++ b/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 index 200cc4bae05..200cc4bae05 100644 --- a/pkgs/misc/themes/gnome-breeze/default.nix +++ b/pkgs/data/themes/gnome-breeze/default.nix diff --git a/pkgs/misc/themes/kde2/default.nix b/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 index 0596141da80..0596141da80 100644 --- a/pkgs/misc/themes/numix-solarized/default.nix +++ b/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 index 72e87e2e274..72e87e2e274 100644 --- a/pkgs/misc/themes/numix-sx/default.nix +++ b/pkgs/data/themes/numix-sx/default.nix diff --git a/pkgs/misc/themes/numix/default.nix b/pkgs/data/themes/numix/default.nix index e01f8174e9e..e01f8174e9e 100644 --- a/pkgs/misc/themes/numix/default.nix +++ b/pkgs/data/themes/numix/default.nix diff --git a/pkgs/misc/themes/onestepback/default.nix b/pkgs/data/themes/onestepback/default.nix index 64ead2f75f4..64ead2f75f4 100644 --- a/pkgs/misc/themes/onestepback/default.nix +++ b/pkgs/data/themes/onestepback/default.nix diff --git a/pkgs/misc/themes/orion/default.nix b/pkgs/data/themes/orion/default.nix index 9ba8cd368cf..9ba8cd368cf 100644 --- a/pkgs/misc/themes/orion/default.nix +++ b/pkgs/data/themes/orion/default.nix diff --git a/pkgs/misc/themes/paper/default.nix b/pkgs/data/themes/paper-gtk/default.nix index e7235a900cf..e7235a900cf 100644 --- a/pkgs/misc/themes/paper/default.nix +++ b/pkgs/data/themes/paper-gtk/default.nix diff --git a/pkgs/misc/themes/qtcurve/default.nix b/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 index 96843e8d78b..96843e8d78b 100644 --- a/pkgs/misc/themes/solarc/default.nix +++ b/pkgs/data/themes/solarc/default.nix diff --git a/pkgs/misc/themes/vertex/default.nix b/pkgs/data/themes/vertex/default.nix index 81c681f5371..81c681f5371 100644 --- a/pkgs/misc/themes/vertex/default.nix +++ b/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 index 99ca221f5ba..99ca221f5ba 100644 --- a/pkgs/misc/themes/gtk2/gtk-engine-bluecurve/default.nix +++ b/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 index 9acb7b25a0d..9acb7b25a0d 100644 --- a/pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix +++ b/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 index 2f56f6eb4c5..2f56f6eb4c5 100644 --- a/pkgs/misc/themes/gtk2/gtk-engines/default.nix +++ b/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 <nixpkgs> {}; (builtins.parseDrvName (qt5.callPackage <radare2/cutter.nix> {}).name).version) +(with import <nixpkgs> {}; lib.getVersion (qt5.callPackage <radare2/cutter.nix> {})) """ 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,16 +19,19 @@ stdenv.mkDerivation rec { sha256 = "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i"; }; + nativeBuildInputs = [ + pkgconfig + qmake + ]; + buildInputs = [ qtbase + qtmultimedia qtsvg qttools - qtmultimedia zlib ]; - nativeBuildInputs = [ pkgconfig qmake makeWrapper ]; - # 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 <<EOF -# Build static or shared libraries. -CONFIG_RTE_BUILD_SHARED_LIB=${if shared then "y" else "n"} -EOF - '' + lib.optionalString (!mod) '' - cat >>config/defconfig_$RTE_TARGET <<EOF -# Do not build kernel modules. -CONFIG_RTE_EAL_IGB_UIO=n -CONFIG_RTE_KNI_KMOD=n -EOF + patchShebangs config/arm ''; - configurePhase = '' - make T=${RTE_TARGET} config - ''; - - installTargets = [ "install-runtime" "install-sdk" "install-kmod" ]; # skip install-doc - - installFlags = [ - "prefix=$(out)" - ] ++ lib.optionals mod [ - "kerneldir=$(kmod)/lib/modules/${kver}" - ]; + mesonFlags = [ + "-Denable_docs=true" + "-Denable_kmods=${if kernel != null then "true" else "false"}" + ] + ++ lib.optionals (shared == false) [ + "-Ddefault_library=static" + ] + ++ lib.optional stdenv.isx86_64 "-Dmachine=nehalem" + ++ lib.optional (kernel != null) "-Dkernel_dir=${kernel.dev}/lib/modules/${kernel.modDirVersion}"; outputs = [ "out" ] ++ lib.optional mod "kmod"; @@ -58,7 +60,7 @@ EOF description = "Set of libraries and drivers for fast packet processing"; homepage = http://dpdk.org/; license = with licenses; [ lgpl21 gpl2 bsd2 ]; - platforms = [ "x86_64-linux" ]; + platforms = platforms.linux; maintainers = with maintainers; [ domenkozar magenbluten orivej ]; }; } diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index 738a55129b1..34654643c33 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.155"; + version = "4.14.156"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "10g4493ldc398qza304z5yz8qdp93w7a2bs5h5dwk0bbamwikmkp"; + sha256 = "1h47fxfbq0d5ry7j3jxz45v5c4103qncgm2vydpz6zdx1kmrz27q"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix index eaf2f7a3ec0..f71ef185199 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.19.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.19.85"; + version = "4.19.86"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1dsgbys73jga5h0a9icgif6qbi31g84315zlcdid9bzf1abkbx3v"; + sha256 = "1xmzcxsiydym574y7k313qd8s4c3mdahpb3nx3cingfl36ivnb5z"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index cb9d5a71dd9..94ba9ae6abd 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.9.202"; + version = "4.9.203"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1gsfbvsswpwj6r56ynb6mmx7dc8hp9yhi7sfr0hhii0gs4ffq241"; + sha256 = "0jd8n8y3yf59sgfjhgjxsznxng7s4b30x5vdb48wrpgqmz7m1n8w"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.3.nix b/pkgs/os-specific/linux/kernel/linux-5.3.nix index 86fc9af4f24..25cdab9c7be 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.3.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.3.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.3.12"; + version = "5.3.13"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "184pmjyqh4bkrc3vj65zn6xnljzv9d1x7c1z0hlgj6fakpwgdgsk"; + sha256 = "0by9lmgmllf19yflzm9f24cy9glcq6m73ywm25bddsnh0czya14z"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix new file mode 100644 index 00000000000..7745fc8099f --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix @@ -0,0 +1,18 @@ +{ stdenv, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args: + +with stdenv.lib; + +buildLinux (args // rec { + version = "5.4"; + + # modDirVersion needs to be x.y.z, will automatically add .0 if needed + modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; + + # branchVersion needs to be x.y + extraMeta.branch = versions.majorMinor version; + + src = fetchurl { + url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; + sha256 = "14glqppn90z79b36k4c76mv90q933i2bg54rgwlcl2v7n608jcxz"; + }; +} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/odp-dpdk/default.nix b/pkgs/os-specific/linux/odp-dpdk/default.nix index 789668cb89e..0bdc22da918 100644 --- a/pkgs/os-specific/linux/odp-dpdk/default.nix +++ b/pkgs/os-specific/linux/odp-dpdk/default.nix @@ -1,42 +1,56 @@ { stdenv, fetchurl, autoreconfHook, pkgconfig -, dpdk, libconfig, libpcap, numactl, openssl +, dpdk, libconfig, libpcap, numactl, openssl, zlib, libbsd, libelf, jansson }: let - - dpdk_17_11 = dpdk.overrideAttrs (old: rec { - version = "17.11.9"; + dpdk_18_11 = dpdk.overrideAttrs (old: rec { + version = "18.11.5"; src = fetchurl { url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz"; - sha256 = "0vrcc9mdjs5fk69lh7bigsk9208dfmjsz3jxaddkjlvk2hds1id6"; + sha256 = "0000000000000000000000000000000000000000000000000000"; }; }); in stdenv.mkDerivation rec { pname = "odp-dpdk"; - version = "1.19.0.0_DPDK_17.11"; + version = "1.22.0.0_DPDK_18.11"; src = fetchurl { url = "https://git.linaro.org/lng/odp-dpdk.git/snapshot/${pname}-${version}.tar.gz"; - sha256 = "05bwjaxl9hqc6fbkp95nniq11g3kvzmlxw0bq55i7p2v35nv38px"; + sha256 = "1m8xhmfjqlj2gkkigq5ka3yh0xgzrcpfpaxp1pnh8d1g99094vbx"; }; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; - buildInputs = [ dpdk_17_11 libconfig libpcap numactl openssl ]; - - RTE_SDK = "${dpdk_17_11}/share/dpdk"; - RTE_TARGET = "x86_64-native-linuxapp-gcc"; + nativeBuildInputs = [ + autoreconfHook + pkgconfig + ]; + buildInputs = [ + dpdk_18_11 + libconfig + libpcap + numactl + openssl + zlib + libbsd + libelf + jansson + ]; - dontDisableStatic = true; + # for some reason, /build/odp-dpdk-1.22.0.0_DPDK_18.11/lib/.libs ends up in all binaries, + # while it should be $out/lib instead. + # prepend rpath with the proper location, the /build will get removed during rpath shrinking + preFixup = '' + for prog in $out/bin/*; do + patchelf --set-rpath $out/lib:`patchelf --print-rpath $prog` $prog + done + ''; - configureFlags = [ - "--disable-shared" - "--with-dpdk-path=${dpdk_17_11}" - ]; + # binaries will segfault otherwise + dontStrip = true; meta = with stdenv.lib; { description = "Open Data Plane optimized for DPDK"; homepage = https://www.opendataplane.org; license = licenses.bsd3; - platforms = [ "x86_64-linux" ]; + platforms = platforms.linux; maintainers = [ maintainers.abuibrahim ]; }; } diff --git a/pkgs/os-specific/linux/openvswitch/default.nix b/pkgs/os-specific/linux/openvswitch/default.nix index bf26b9e2b28..53fc986d9f6 100644 --- a/pkgs/os-specific/linux/openvswitch/default.nix +++ b/pkgs/os-specific/linux/openvswitch/default.nix @@ -1,24 +1,25 @@ { stdenv, fetchurl, makeWrapper, pkgconfig, utillinux, which -, procps, libcap_ng, openssl, python27 , perl +, procps, libcap_ng, openssl, python3 , perl , kernel ? null }: with stdenv.lib; let _kernel = kernel; + pythonEnv = python3.withPackages (ps: with ps; [ six ]); in stdenv.mkDerivation rec { - version = "2.5.4"; + version = "2.12.0"; pname = "openvswitch"; src = fetchurl { - url = "http://openvswitch.org/releases/${pname}-${version}.tar.gz"; - sha256 = "1lji87wg953lqcdf02f1zv2m54vhd2x9jd03bb91lnlb4qlhifiv"; + url = "https://www.openvswitch.org/releases/${pname}-${version}.tar.gz"; + sha256 = "1y78ix5inhhcvicbvyy2ij38am1215nr55vydhab3d4065q45z8k"; }; kernel = optional (_kernel != null) _kernel.dev; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ makeWrapper utillinux openssl libcap_ng python27 + buildInputs = [ makeWrapper utillinux openssl libcap_ng pythonEnv perl procps which ]; configureFlags = [ @@ -36,27 +37,13 @@ in stdenv.mkDerivation rec { postBuild = '' # fix tests - substituteInPlace xenserver/opt_xensource_libexec_interface-reconfigure --replace '/usr/bin/env python' '${python27.interpreter}' - substituteInPlace vtep/ovs-vtep --replace '/usr/bin/env python' '${python27.interpreter}' + substituteInPlace xenserver/opt_xensource_libexec_interface-reconfigure --replace '/usr/bin/env python' '${pythonEnv.interpreter}' + substituteInPlace vtep/ovs-vtep --replace '/usr/bin/env python' '${pythonEnv.interpreter}' ''; enableParallelBuilding = true; doCheck = false; # bash-completion test fails with "compgen: command not found" - postInstall = '' - cp debian/ovs-monitor-ipsec $out/share/openvswitch/scripts - makeWrapper \ - $out/share/openvswitch/scripts/ovs-monitor-ipsec \ - $out/bin/ovs-monitor-ipsec \ - --prefix PYTHONPATH : "$out/share/openvswitch/python" - substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \ - --replace "UnixctlServer.create(None)" "UnixctlServer.create(os.environ['UNIXCTLPATH'])" - substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \ - --replace "self.psk_file" "root_prefix + self.psk_file" - substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \ - --replace "self.cert_dir" "root_prefix + self.cert_dir" - ''; - meta = with stdenv.lib; { platforms = platforms.linux; description = "A multilayer virtual switch"; @@ -71,7 +58,8 @@ in stdenv.mkDerivation rec { support distribution across multiple physical servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V. ''; - homepage = http://openvswitch.org/; + homepage = https://www.openvswitch.org/; license = licenses.asl20; + maintainers = with maintainers; [ netixx kmcopper ]; }; } diff --git a/pkgs/os-specific/linux/openvswitch/lts.nix b/pkgs/os-specific/linux/openvswitch/lts.nix new file mode 100644 index 00000000000..4f3f4c5c172 --- /dev/null +++ b/pkgs/os-specific/linux/openvswitch/lts.nix @@ -0,0 +1,82 @@ +{ stdenv, fetchurl, makeWrapper, pkgconfig, utillinux, which +, procps, libcap_ng, openssl, python2, iproute , perl +, automake, autoconf, libtool, kernel ? null }: + +with stdenv.lib; + +let + _kernel = kernel; +in stdenv.mkDerivation rec { + version = "2.5.9"; + pname = "openvswitch"; + + src = fetchurl { + url = "https://www.openvswitch.org/releases/${pname}-${version}.tar.gz"; + sha256 = "0iv0ncwl6s4qyyb655yj5xvqrjr1zbymmab96q259wa09xnyw7b7"; + }; + + patches = [ ./patches/lts-ssl.patch ]; + + kernel = optional (_kernel != null) _kernel.dev; + + nativeBuildInputs = [ autoconf libtool automake pkgconfig ]; + buildInputs = [ makeWrapper utillinux openssl libcap_ng python2 + perl procps which ]; + + preConfigure = "./boot.sh"; + + configureFlags = [ + "--localstatedir=/var" + "--sharedstatedir=/var" + "--sbindir=$(out)/bin" + ] ++ (optionals (_kernel != null) ["--with-linux"]); + + # Leave /var out of this! + installFlags = [ + "LOGDIR=$(TMPDIR)/dummy" + "RUNDIR=$(TMPDIR)/dummy" + "PKIDIR=$(TMPDIR)/dummy" + ]; + + postBuild = '' + # fix tests + substituteInPlace xenserver/opt_xensource_libexec_interface-reconfigure --replace '/usr/bin/env python' '${python2.interpreter}' + substituteInPlace vtep/ovs-vtep --replace '/usr/bin/env python' '${python2.interpreter}' + ''; + + enableParallelBuilding = true; + doCheck = false; # bash-completion test fails with "compgen: command not found" + + postInstall = '' + cp debian/ovs-monitor-ipsec $out/share/openvswitch/scripts + makeWrapper \ + $out/share/openvswitch/scripts/ovs-monitor-ipsec \ + $out/bin/ovs-monitor-ipsec \ + --prefix PYTHONPATH : "$out/share/openvswitch/python" + substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \ + --replace "UnixctlServer.create(None)" "UnixctlServer.create(os.environ['UNIXCTLPATH'])" + substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \ + --replace "self.psk_file" "root_prefix + self.psk_file" + substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \ + --replace "self.cert_dir" "root_prefix + self.cert_dir" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + description = "A multilayer virtual switch"; + longDescription = + '' + Open vSwitch is a production quality, multilayer virtual switch + licensed under the open source Apache 2.0 license. It is + designed to enable massive network automation through + programmatic extension, while still supporting standard + management interfaces and protocols (e.g. NetFlow, sFlow, SPAN, + RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to + support distribution across multiple physical servers similar + to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V. + ''; + homepage = https://www.openvswitch.org/; + license = licenses.asl20; + maintainers = with maintainers; [ netixx kmcopper ]; + }; +} diff --git a/pkgs/os-specific/linux/openvswitch/patches/lts-ssl.patch b/pkgs/os-specific/linux/openvswitch/patches/lts-ssl.patch new file mode 100644 index 00000000000..0d8ff5b0d52 --- /dev/null +++ b/pkgs/os-specific/linux/openvswitch/patches/lts-ssl.patch @@ -0,0 +1,274 @@ +diff --git a/build-aux/automake.mk b/build-aux/automake.mk +new file mode 100644 +index 000000000..5d2657fd6 +--- /dev/null ++++ b/build-aux/automake.mk +@@ -0,0 +1,2 @@ ++EXTRA_DIST += \ ++ build-aux/generate-dhparams-c +diff --git a/build-aux/generate-dhparams-c b/build-aux/generate-dhparams-c +new file mode 100755 +index 000000000..bcd25e2d8 +--- /dev/null ++++ b/build-aux/generate-dhparams-c +@@ -0,0 +1,33 @@ ++#! /bin/sh -e ++ ++cat <<'EOF' ++/* Generated automatically; do not modify! -*- buffer-read-only: t -*- ++ * ++ * If you do need to regenerate this file, run "make generate-dhparams-c". */ ++ ++#include <config.h> ++#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 <config.h> ++#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 <openssl/dh.h> ++#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 <openssl/dh.h> ++#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 <openssl/dh.h> ++#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 `<dpkg/dpkg-db.h>` 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 { }; |