From 74588bf88adc304a49144874077d718202415408 Mon Sep 17 00:00:00 2001 From: volth Date: Wed, 20 Dec 2017 13:22:00 +0000 Subject: [PATCH 001/312] hadoop: 2.2.0 -> 2.7.5, 2.8.3, 2.9.0, 3.0.0 --- .../networking/cluster/hadoop/default.nix | 182 +++++++++++++----- pkgs/top-level/all-packages.nix | 7 +- 2 files changed, 144 insertions(+), 45 deletions(-) diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix index 9af4cf3f0ed..f96ee42fb1c 100644 --- a/pkgs/applications/networking/cluster/hadoop/default.nix +++ b/pkgs/applications/networking/cluster/hadoop/default.nix @@ -1,51 +1,145 @@ -{ stdenv, fetchurl, makeWrapper, which, jre, bash }: +{ stdenv, fetchurl, makeWrapper, pkgconfig, which, maven, cmake, jre, bash, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl }: -stdenv.mkDerivation rec { - name = "hadoop-2.2.0"; +let + common = { version, sha256, dependencies-sha256, tomcat }: + let + # compile the hadoop tarball from sources, it requires some patches + binary-distributon = stdenv.mkDerivation rec { + name = "hadoop-${version}-bin"; + src = fetchurl { + url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}-src.tar.gz"; + inherit sha256; + }; - src = fetchurl { - url = "mirror://apache/hadoop/common/${name}/${name}.tar.gz"; - sha256 = "0r0kx8arsrvmcfy0693hpv4cz3i0razvk1xa3yhlf3ybb80a8106"; + # perform fake build to make a fixed-output derivation of dependencies downloaded from maven central (~100Mb in ~3000 files) + fetched-maven-deps = stdenv.mkDerivation { + name = "hadoop-${version}-maven-deps"; + inherit src nativeBuildInputs buildInputs configurePhase; + buildPhase = '' + while mvn package -Dmaven.repo.local=$out/.m2 ${mavenFlags} -Dmaven.wagon.rto=5000; [ $? = 1 ]; do + echo "timeout, restart maven to continue downloading" + done + ''; + # keep only *.{pom,jar,xml,sha1,so,dll,dylib} and delete all ephemeral files with lastModified timestamps inside + installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = dependencies-sha256; + }; + + nativeBuildInputs = [ maven cmake pkgconfig ]; + buildInputs = [ fuse snappy zlib bzip2 openssl protobuf2_5 ]; + # most of the hardcoded pathes are fixed in 2.9.x and 3.0.0, this list of patched files might be reduced when 2.7.x and 2.8.x will be deprecated + postPatch = '' + for file in hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/HardLink.java \ + hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DockerContainerExecutor.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java \ + hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/MRJobConfig.java; do + if [ -f "$file" ]; then + substituteInPlace "$file" \ + --replace '/usr/bin/stat' 'stat' \ + --replace '/bin/bash' 'bash' \ + --replace '/bin/ls' 'ls' \ + --replace '/bin/mv' 'mv' + fi + done + ''; + configurePhase = "true"; # do not trigger cmake hook + mavenFlags = "-Drequire.snappy -Drequire.bzip2 -DskipTests -Pdist,native -e"; + # prevent downloading tomcat during the build + preBuild = stdenv.lib.optionalString (tomcat != null) '' + install -D ${tomcat.src} hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/apache-tomcat-${tomcat.version}.tar.gz + install -D ${tomcat.src} hadoop-common-project/hadoop-kms/downloads/apache-tomcat-${tomcat.version}.tar.gz + ''; + buildPhase = '' + # 'maven.repo.local' must be writable + mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetched-maven-deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 ${mavenFlags} + # remove runtime dependency on $jdk/jre/lib/amd64/server/libjvm.so + patchelf --set-rpath ${stdenv.lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhadoop.so.1.0.0 + patchelf --set-rpath ${stdenv.lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhdfs.so.0.0.0 + ''; + installPhase = "mv hadoop-dist/target/hadoop-${version} $out"; + }; + in + stdenv.mkDerivation rec { + name = "hadoop-${version}"; + + src = binary-distributon; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/share/doc/hadoop/ + cp -dpR * $out/ + mv $out/*.txt $out/share/doc/hadoop/ + + for n in $out/bin/*; do + if [ -f "$n" ]; then # only regular files + wrapProgram "$n" \ + --prefix PATH : "${stdenv.lib.makeBinPath [ which jre bash coreutils ]}" \ + --prefix JAVA_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ openssl snappy zlib bzip2 ]}" \ + --set JAVA_HOME "${jre}" \ + --set HADOOP_PREFIX "$out" + fi + done + ''; + + meta = with stdenv.lib; { + homepage = "http://hadoop.apache.org/"; + description = "Framework for distributed processing of large data sets across clusters of computers"; + license = licenses.asl20; + + longDescription = '' + The Apache Hadoop software library is a framework that allows for + the distributed processing of large data sets across clusters of + computers using a simple programming model. It is designed to + scale up from single servers to thousands of machines, each + offering local computation and storage. Rather than rely on + hardware to deliver high-avaiability, the library itself is + designed to detect and handle failures at the application layer, + so delivering a highly-availabile service on top of a cluster of + computers, each of which may be prone to failures. + ''; + maintainers = with maintainers; [ volth ]; + platforms = [ "x86_64-linux" ]; + }; + }; + + tomcat_6_0_48 = rec { + version = "6.0.48"; + src = fetchurl { + # do not use "mirror://apache/" here, tomcat-6 is legacy and has been removed from the mirrors + url = "https://archive.apache.org/dist/tomcat/tomcat-6/v${version}/bin/apache-tomcat-${version}.tar.gz"; + sha256 = "1w4jf28g8p25fmijixw6b02iqlagy2rvr57y3n90hvz341kb0bbc"; + }; }; - buildInputs = [ makeWrapper ]; - - buildPhase = '' - for n in "bin/"* "sbin/"*; do - sed -i $n -e "s|#!/usr/bin/env bash|#! ${bash}/bin/bash|" - done - '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" bin/container-executor; - ''; - - installPhase = '' - mkdir -p $out - mv *.txt share/doc/hadoop/ - mv * $out - - for n in $out/{bin,sbin}"/"*; do - wrapProgram $n --prefix PATH : "${stdenv.lib.makeBinPath [ which jre bash ]}" --set JAVA_HOME "${jre}" --set HADOOP_PREFIX "$out" - done - ''; - - meta = { - homepage = http://hadoop.apache.org/; - description = "Framework for distributed processing of large data sets across clusters of computers"; - license = stdenv.lib.licenses.asl20; - - longDescription = '' - The Apache Hadoop software library is a framework that allows for - the distributed processing of large data sets across clusters of - computers using a simple programming model. It is designed to - scale up from single servers to thousands of machines, each - offering local computation and storage. Rather than rely on - hardware to deliver high-avaiability, the library itself is - designed to detect and handle failures at the application layer, - so delivering a highly-availabile service on top of a cluster of - computers, each of which may be prone to failures. - ''; - - platforms = stdenv.lib.platforms.linux; +in { + hadoop_2_7 = common { + version = "2.7.5"; + sha256 = "0dvgi4z2pi45b0yzzm9zxjp0lwvd8lwqn4903mxlqh7xv2g3llnp"; + dependencies-sha256 = "137v077q022997ih41n412l2xq4ynypk5dl5p4n16i16745k9lk2"; + tomcat = tomcat_6_0_48; + }; + hadoop_2_8 = common { + version = "2.8.3"; + sha256 = "0ziairmgfi05iqmib66lysanlabrp1cq6palnmwkiss098b5dcjd"; + dependencies-sha256 = "1qmdmiprr0l0i0q3w9nv964db5cm3615iqczywrs5v8qaaf580b3"; + tomcat = tomcat_6_0_48; + }; + hadoop_2_9 = common { + version = "2.9.0"; + sha256 = "03mh193bccm4bi7cq6ym651zal82d0kvl00yhnzzrsnwq10j2h62"; + dependencies-sha256 = "0773lw4d03r89dcrrsglbr4zgcz2m9b15587nxdz4clm2f5gqiw5"; + tomcat = tomcat_6_0_48; + }; + hadoop_3_0 = common { + version = "3.0.0"; + sha256 = "0h22mdpgvg9v4rbc8gn4m8vrpkq45lwk7m8f5c25fvnzdyrc8fzc"; + dependencies-sha256 = "0ghbl768al3wpgz0rx2mqbnf6p7cdqpkq6yk6hgf65b4qab4aw9v"; + tomcat = null; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 944cdcda8fa..019f9c29ec8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6586,7 +6586,12 @@ with pkgs; guile = guile_2_2; - hadoop = callPackage ../applications/networking/cluster/hadoop { }; + inherit (callPackages ../applications/networking/cluster/hadoop { }) + hadoop_2_7 + hadoop_2_8 + hadoop_2_9 + hadoop_3_0; + hadoop = hadoop_2_7; io = callPackage ../development/interpreters/io { }; From 13ad4c09a32eb855fd389f20e0b31fae4318de32 Mon Sep 17 00:00:00 2001 From: volth Date: Fri, 22 Dec 2017 21:58:39 +0000 Subject: [PATCH 002/312] hadoop: avoid using wrapProgram Script renaming may result to weird things: http://i.imgur.com/0Xee013.png# --- pkgs/applications/networking/cluster/hadoop/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix index f96ee42fb1c..8c8e258ccd1 100644 --- a/pkgs/applications/networking/cluster/hadoop/default.nix +++ b/pkgs/applications/networking/cluster/hadoop/default.nix @@ -72,13 +72,18 @@ let nativeBuildInputs = [ makeWrapper ]; installPhase = '' - mkdir -p $out/share/doc/hadoop/ + mkdir -p $out/share/doc/hadoop cp -dpR * $out/ mv $out/*.txt $out/share/doc/hadoop/ + # + # Do not use `wrapProgram` here, script renaming may result to weird things: http://i.imgur.com/0Xee013.png + # + mkdir -p $out/bin.wrapped for n in $out/bin/*; do if [ -f "$n" ]; then # only regular files - wrapProgram "$n" \ + mv $n $out/bin.wrapped/ + makeWrapper $out/bin.wrapped/$(basename $n) $n \ --prefix PATH : "${stdenv.lib.makeBinPath [ which jre bash coreutils ]}" \ --prefix JAVA_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ openssl snappy zlib bzip2 ]}" \ --set JAVA_HOME "${jre}" \ From 8585bd87a01a3de0f2ee17bc7f28b84481013c7e Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Wed, 2 May 2018 12:29:20 +0900 Subject: [PATCH 003/312] linux_mptcp: 0.93 -> 0.94 As mptcp is still evolving, it's good to keep at least the 2 last versions for regression-testing. --- .../linux/kernel/linux-mptcp-93.nix | 47 +++++++++++++++++++ pkgs/os-specific/linux/kernel/linux-mptcp.nix | 6 +-- pkgs/top-level/all-packages.nix | 13 +++++ 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 pkgs/os-specific/linux/kernel/linux-mptcp-93.nix diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp-93.nix b/pkgs/os-specific/linux/kernel/linux-mptcp-93.nix new file mode 100644 index 00000000000..2efe357cbd6 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-mptcp-93.nix @@ -0,0 +1,47 @@ +{ stdenv, buildPackages, hostPlatform, fetchFromGitHub, perl, buildLinux, ... } @ args: + +buildLinux (rec { + mptcpVersion = "0.93"; + modDirVersion = "4.9.60"; + version = "${modDirVersion}-mptcp_v${mptcpVersion}"; + + extraMeta = { + branch = "4.4"; + maintainers = with stdenv.lib.maintainers; [ teto layus ]; + }; + + src = fetchFromGitHub { + owner = "multipath-tcp"; + repo = "mptcp"; + rev = "v${mptcpVersion}"; + sha256 = "1irlppzvcmckrazs2c4vg6y8ji31552izc3wqabf401v57jvxcys"; + }; + + extraConfig = '' + IPV6 y + MPTCP y + IP_MULTIPLE_TABLES y + + # Enable advanced path-managers... + MPTCP_PM_ADVANCED y + MPTCP_FULLMESH y + MPTCP_NDIFFPORTS y + # ... but use none by default. + # The default is safer if source policy routing is not setup. + DEFAULT_DUMMY y + DEFAULT_MPTCP_PM default + + # MPTCP scheduler selection. + # Disabled as the only non-default is the useless round-robin. + MPTCP_SCHED_ADVANCED n + DEFAULT_MPTCP_SCHED default + + # Smarter TCP congestion controllers + TCP_CONG_LIA m + TCP_CONG_OLIA m + TCP_CONG_WVEGAS m + TCP_CONG_BALIA m + + '' + (args.extraConfig or ""); +} // args) + diff --git a/pkgs/os-specific/linux/kernel/linux-mptcp.nix b/pkgs/os-specific/linux/kernel/linux-mptcp.nix index c4bade2abed..0ff0e747bfd 100644 --- a/pkgs/os-specific/linux/kernel/linux-mptcp.nix +++ b/pkgs/os-specific/linux/kernel/linux-mptcp.nix @@ -1,8 +1,8 @@ { stdenv, buildPackages, hostPlatform, fetchFromGitHub, perl, buildLinux, ... } @ args: buildLinux (rec { - mptcpVersion = "0.93"; - modDirVersion = "4.9.60"; + mptcpVersion = "0.94"; + modDirVersion = "4.14.24"; version = "${modDirVersion}-mptcp_v${mptcpVersion}"; # autoModules= true; @@ -15,7 +15,7 @@ buildLinux (rec { owner = "multipath-tcp"; repo = "mptcp"; rev = "v${mptcpVersion}"; - sha256 = "1irlppzvcmckrazs2c4vg6y8ji31552izc3wqabf401v57jvxcys"; + sha256 = "01y3jf5awdxcv6vfpr30n0vaa8w1wgip0whiv88d610550299hkv"; }; extraConfig = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3ba524aa722..c2546ec3e9a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13339,6 +13339,19 @@ with pkgs; # linux mptcp is based on the 4.4 kernel linux_mptcp = callPackage ../os-specific/linux/kernel/linux-mptcp.nix { + kernelPatches = + [ kernelPatches.bridge_stp_helper + kernelPatches.cpu-cgroup-v2."4.11" + kernelPatches.modinst_arg_list_too_long + ] + ++ lib.optionals ((platform.kernelArch or null) == "mips") + [ kernelPatches.mips_fpureg_emu + kernelPatches.mips_fpu_sigill + kernelPatches.mips_ext3_n32 + ]; + }; + + linux_mptcp_93 = callPackage ../os-specific/linux/kernel/linux-mptcp-93.nix { kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.p9_fixes From bf22a10ccb58ab416c8795be041a0cfbb2dd5dde Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Sun, 20 May 2018 16:42:33 +0100 Subject: [PATCH 004/312] tdesktop: enable on other platforms --- .../instant-messengers/telegram/tdesktop/generic.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix index 7581482504b..732ea95dd07 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix @@ -90,6 +90,10 @@ mkDerivation rec { sed -i Telegram/gyp/qt_rcc.gypi \ -e "s,/usr/bin/rcc,rcc,g" + # Build system assumes x86, but it works fine on non-x86 if we patch this one flag out + sed -i Telegram/ThirdParty/libtgvoip/libtgvoip.gyp \ + -e "/-msse2/d" + gyp \ -Dbuild_defines=${GYP_DEFINES} \ -Gconfig=Release \ @@ -133,7 +137,7 @@ mkDerivation rec { description = "Telegram Desktop messaging app " + (if stable then "(stable version)" else "(pre-release)"); license = licenses.gpl3; - platforms = [ "x86_64-linux" "i686-linux" ]; + platforms = platforms.linux; homepage = https://desktop.telegram.org/; maintainers = with maintainers; [ primeos abbradar garbas ]; }; From c61aad65744cbeca78504b64f4b346870e3bf2f7 Mon Sep 17 00:00:00 2001 From: Matt McHenry Date: Wed, 30 May 2018 22:30:12 -0400 Subject: [PATCH 005/312] restic: add s3CredentialsFile option --- nixos/modules/services/backup/restic.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix index 21d82469c60..2d14762e868 100644 --- a/nixos/modules/services/backup/restic.nix +++ b/nixos/modules/services/backup/restic.nix @@ -14,7 +14,15 @@ with lib; Read the repository password from a file. ''; example = "/etc/nixos/restic-password"; + }; + s3CredentialsFile = mkOption { + type = with types; nullOr str; + description = '' + file containing the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY + for an S3-hosted repository, in the format of an EnvironmentFile + as described by systemd.exec(5) + ''; }; repository = mkOption { @@ -134,6 +142,8 @@ with lib; Type = "oneshot"; ExecStart = "${resticCmd} backup ${concatStringsSep " " backup.extraBackupArgs} ${concatStringsSep " " backup.paths}"; User = backup.user; + } // optionalAttrs (backup.s3CredentialsFile != null) { + EnvironmentFile = backup.s3CredentialsFile; }; } // optionalAttrs backup.initialize { preStart = '' From 31714e44b755889db2ccf54d4c1f26157a05bf5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Janne=20He=C3=9F?= Date: Mon, 4 Jun 2018 14:14:57 +0200 Subject: [PATCH 006/312] nixos/tt-rss: Support plugins and themes The extra config is required to configure some plugins. --- nixos/modules/services/web-apps/tt-rss.nix | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix index 610c6463a5e..1646ee5964f 100644 --- a/nixos/modules/services/web-apps/tt-rss.nix +++ b/nixos/modules/services/web-apps/tt-rss.nix @@ -76,6 +76,8 @@ let define('SMTP_FROM_NAME', '${escape ["'" "\\"] cfg.email.fromName}'); define('SMTP_FROM_ADDRESS', '${escape ["'" "\\"] cfg.email.fromAddress}'); define('DIGEST_SUBJECT', '${escape ["'" "\\"] cfg.email.digestSubject}'); + + ${cfg.extraConfig} ''; in { @@ -431,6 +433,26 @@ let ''; }; + pluginPackages = mkOption { + type = types.listOf types.package; + default = []; + description = '' + List of plugins to install. The list elements are expected to + be derivations. All elements in this derivation are automatically + copied to the plugins.local directory. + ''; + }; + + themePackages = mkOption { + type = types.listOf types.package; + default = []; + description = '' + List of themes to install. The list elements are expected to + be derivations. All elements in this derivation are automatically + copied to the themes.local directory. + ''; + }; + logDestination = mkOption { type = types.enum ["" "sql" "syslog"]; default = "sql"; @@ -441,6 +463,14 @@ let error.log). ''; }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Additional lines to append to config.php. + ''; + }; }; }; @@ -517,6 +547,16 @@ let rm -rf "${cfg.root}/*" mkdir -m 755 -p "${cfg.root}" cp -r "${pkgs.tt-rss}/"* "${cfg.root}" + ${optionalString (cfg.pluginPackages != []) '' + for plugin in ${concatStringsSep " " cfg.pluginPackages}; do + cp -r "$plugin"/* "${cfg.root}/plugins.local/" + done + ''} + ${optionalString (cfg.themePackages != []) '' + for theme in ${concatStringsSep " " cfg.themePackages}; do + cp -r "$theme"/* "${cfg.root}/themes.local/" + done + ''} ln -sf "${tt-rss-config}" "${cfg.root}/config.php" chown -R "${cfg.user}" "${cfg.root}" chmod -R 755 "${cfg.root}" From e598fdf2294998b233d11ae707dc22230b5d67e2 Mon Sep 17 00:00:00 2001 From: Michael Raitza Date: Thu, 7 Jun 2018 16:44:04 +0200 Subject: [PATCH 007/312] dbus: Add NSS modules path to dbus system bus service DBus seems to resolve user IDs directly via glibc, circumventing nscd. In more advanced setups this leads to user's coming from LDAP or SSSD not being resolved by the dbus system bus daemon. The effect for such users is, that all access to the system bus (e.g. busctl or nmcli) is denied. Adding the respective NSS modules to the service's environment solves the issue the same way it does for nscd. --- nixos/modules/services/system/dbus.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix index 643bec18814..248df7351a8 100644 --- a/nixos/modules/services/system/dbus.nix +++ b/nixos/modules/services/system/dbus.nix @@ -100,6 +100,7 @@ in # Don't restart dbus-daemon. Bad things tend to happen if we do. reloadIfChanged = true; restartTriggers = [ configDir ]; + environment = { LD_LIBRARY_PATH = config.system.nssModules.path; }; }; systemd.user = { From c0c43e9c0767bb49a836d165f2b542a3e1334362 Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Sat, 28 Apr 2018 20:05:00 +0000 Subject: [PATCH 008/312] lib: simplify `mkAliasAndWrapDefinitions` --- lib/modules.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/modules.nix b/lib/modules.nix index 8baae491705..19e553bbc9b 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -532,9 +532,7 @@ rec { # mkAliasDefinitions = mkAliasAndWrapDefinitions id; mkAliasAndWrapDefinitions = wrap: option: - mkMerge - (optional (isOption option && option.isDefined) - (wrap (mkMerge option.definitions))); + mkIf (isOption option && option.isDefined) (wrap (mkMerge option.definitions)); /* Compatibility. */ From 449d43fe01d9406d5fb74a687167dee316ec0ca9 Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Sat, 28 Apr 2018 20:16:37 +0000 Subject: [PATCH 009/312] lib: fix and simplify `doRename` Before this change `mkRenamedOptionModule` would override option defaults even when the old option name is left unused. For instance ```nix { optios = { services.name.new = mkOption { default = { one = {}; }; }; }; imports = [ (mkRenamedOptionModule [ "services" "name" "old" ] [ "services" "name" "new" "two" ]) ]; config = {}; } ``` would evaluate to `{ config.services.name.new = { two = {}; }; }` when you'd expect it to evaluate to `{ config.services.name.new = { one = {}; }; }`. --- lib/modules.nix | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/modules.nix b/lib/modules.nix index 19e553bbc9b..bb4a659e7a7 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -667,22 +667,26 @@ rec { }; doRename = { from, to, visible, warn, use }: + { config, options, ... }: let + fromOpt = getAttrFromPath from options; + toOpt = getAttrFromPath to options; toOf = attrByPath to (abort "Renaming error: option `${showOption to}' does not exist."); in - { config, options, ... }: - { options = setAttrByPath from (mkOption { - inherit visible; - description = "Alias of ."; - apply = x: use (toOf config); - }); - config = { - warnings = - let opt = getAttrFromPath from options; in - optional (warn && opt.isDefined) - "The option `${showOption from}' defined in ${showFiles opt.files} has been renamed to `${showOption to}'."; - } // setAttrByPath to (mkAliasDefinitions (getAttrFromPath from options)); - }; + { + options = setAttrByPath from (mkOption { + inherit visible; + description = "Alias of ."; + apply = x: use (toOf config); + }); + config = mkMerge [ + { + warnings = optional (warn && fromOpt.isDefined) + "The option `${showOption from}' defined in ${showFiles fromOpt.files} has been renamed to `${showOption to}'."; + } + (mkAliasAndWrapDefinitions (setAttrByPath to) fromOpt) + ]; + }; } From f67a83c7c41ec38d744a9b175b526174cff0275d Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Mon, 11 Jun 2018 18:43:38 -0700 Subject: [PATCH 010/312] Add imalison maintainer --- maintainers/maintainer-list.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 8a5845cafe3..c76cfd60b2e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -566,7 +566,7 @@ email = "brandon.barker@gmail.com"; github = "bbarker"; name = "Brandon Elam Barker"; - }; + }; bcarrell = { email = "brandoncarrell@gmail.com"; github = "bcarrell"; @@ -1702,6 +1702,11 @@ github = "ilya-kolpakov"; name = "Ilya Kolpakov"; }; + imalison = { + email = "IvanMalison@gmail.com"; + github = "IvanMalison"; + name = "Ivan Malison"; + }; infinisil = { email = "infinisil@icloud.com"; github = "infinisil"; From 53138130f837540d6a4f1de84f9c2527c61e2029 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Mon, 11 Jun 2018 19:21:51 -0700 Subject: [PATCH 011/312] git-sync: init at 20151024 --- .../git-and-tools/git-sync/default.nix | 45 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 47 insertions(+) create mode 100644 pkgs/applications/version-management/git-and-tools/git-sync/default.nix diff --git a/pkgs/applications/version-management/git-and-tools/git-sync/default.nix b/pkgs/applications/version-management/git-and-tools/git-sync/default.nix new file mode 100644 index 00000000000..7ba7d8ec243 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/git-sync/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, coreutils, gnugrep, gnused, makeWrapper, git +}: + +stdenv.mkDerivation rec { + name = "git-sync-${version}"; + version = "20151024"; + + src = fetchFromGitHub { + owner = "simonthum"; + repo = "git-sync"; + rev = "eb9adaf2b5fd65aac1e83d6544b9076aae6af5b7"; + sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz"; + }; + + buildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp -a git-sync $out/bin/git-sync + ''; + + wrapperPath = with stdenv.lib; makeBinPath [ + coreutils + git + gnugrep + gnused + ]; + + fixupPhase = '' + patchShebangs $out/bin + + wrapProgram $out/bin/git-sync \ + --prefix PATH : "${wrapperPath}" + ''; + + meta = { + description = "A script to automatically synchronize a git repository"; + homepage = https://github.com/simonthum/git-sync; + maintainers = with stdenv.lib.maintainers; [ imalison ]; + license = stdenv.lib.licenses.cc0; + platforms = with stdenv.lib.platforms; unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e2b28d0207d..e9596e940e3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16106,6 +16106,8 @@ with pkgs; python = python27; }; + git-sync = callPackage ../applications/version-management/git-and-tools/git-sync { }; + gitolite = callPackage ../applications/version-management/gitolite { }; inherit (gnome3) gitg; From 8b9559e417f529138449a1a80aeed7c3fa449d7f Mon Sep 17 00:00:00 2001 From: Notkea Date: Sun, 10 Jun 2018 16:25:01 +0200 Subject: [PATCH 012/312] cgit: parametrise subdirectory This proposal enables the user to choose the sub-directory in which to serve cgit. The previous default behaviour isn't altered. --- .../services/web-servers/lighttpd/cgit.nix | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/nixos/modules/services/web-servers/lighttpd/cgit.nix b/nixos/modules/services/web-servers/lighttpd/cgit.nix index 710fecc0c05..e6a054c296d 100644 --- a/nixos/modules/services/web-servers/lighttpd/cgit.nix +++ b/nixos/modules/services/web-servers/lighttpd/cgit.nix @@ -4,8 +4,15 @@ with lib; let cfg = config.services.lighttpd.cgit; + pathPrefix = if stringLength cfg.subdir == 0 then "" else "/" + cfg.subdir; configFile = pkgs.writeText "cgitrc" '' + # default paths to static assets + css=${pathPrefix}/cgit.css + logo=${pathPrefix}/cgit.png + favicon=${pathPrefix}/favicon.ico + + # user configuration ${cfg.configText} ''; in @@ -18,8 +25,17 @@ in type = types.bool; description = '' If true, enable cgit (fast web interface for git repositories) as a - sub-service in lighttpd. cgit will be accessible at - http://yourserver/cgit + sub-service in lighttpd. + ''; + }; + + subdir = mkOption { + default = "cgit"; + example = ""; + type = types.str; + description = '' + The subdirectory in which to serve cgit. The web application will be + accessible at http://yourserver/''${subdir} ''; }; @@ -48,14 +64,14 @@ in services.lighttpd.enableModules = [ "mod_cgi" "mod_alias" "mod_setenv" ]; services.lighttpd.extraConfig = '' - $HTTP["url"] =~ "^/cgit" { + $HTTP["url"] =~ "^/${cfg.subdir}" { cgi.assign = ( "cgit.cgi" => "${pkgs.cgit}/cgit/cgit.cgi" ) alias.url = ( - "/cgit.css" => "${pkgs.cgit}/cgit/cgit.css", - "/cgit.png" => "${pkgs.cgit}/cgit/cgit.png", - "/cgit" => "${pkgs.cgit}/cgit/cgit.cgi" + "${pathPrefix}/cgit.css" => "${pkgs.cgit}/cgit/cgit.css", + "${pathPrefix}/cgit.png" => "${pkgs.cgit}/cgit/cgit.png", + "${pathPrefix}" => "${pkgs.cgit}/cgit/cgit.cgi" ) setenv.add-environment = ( "CGIT_CONFIG" => "${configFile}" From 4ca2daae8f21834424f5d4055c85dbcf5765fc1d Mon Sep 17 00:00:00 2001 From: Raymond Gauthier Date: Tue, 20 Feb 2018 22:48:31 -0500 Subject: [PATCH 013/312] hplip: 3.18.3 -> 3.18.5 Also fixes multiples issues: - broken plugins: - `fax_marvell.so file is not present or symbolic link is missing` - `lj.so library file doesn't have user/group execute permission.` - `bb_escl.so file is not present or symbolic link is missing` - multiple error during configuration phase which prevented `*.ppd` generation: - `ppdc: Unable to find include file ""` - patched configure time `perl` script - patched use of `file` - some potentially problematic filter and services: - patched reference to ghost script and fonts dir in filter. - patched usb configuration service. - patch scripts so that they refer to valid location. Add some options: - `withStaticPPDInstall`: Install `*.ppd` files along with `*.drv`. When true, configure outputs: `checking for cups ppd install... yes`. --- pkgs/misc/drivers/hplip/default.nix | 43 +++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix index 91be6cf743a..4b88d4a96fa 100644 --- a/pkgs/misc/drivers/hplip/default.nix +++ b/pkgs/misc/drivers/hplip/default.nix @@ -1,26 +1,28 @@ { stdenv, fetchurl, substituteAll , pkgconfig , makeWrapper -, cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils -, net_snmp, openssl, polkit, nettools +, cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends +, dbus, file, ghostscript, usbutils +, net_snmp, openssl, perl, polkit, nettools , bash, coreutils, utillinux , withQt5 ? true , withPlugin ? false +, withStaticPPDInstall ? false }: let name = "hplip-${version}"; - version = "3.18.3"; + version = "3.18.5"; src = fetchurl { url = "mirror://sourceforge/hplip/${name}.tar.gz"; - sha256 = "0x5xs86v18w46rxz5whc15bl4fb7p4km6xqjpwzclp83nl7rl01y"; + sha256 = "0xb7ga2wgbwjxsss67mjn2y6fmqsfwzmv11ivvfzhnl36lh22hkb"; }; plugin = fetchurl { url = "https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run"; - sha256 = "11nc3cifhd2h2c7p0dr2jjzrg3fd5j43ih1wy0m186l6wcgdjssw"; + sha256 = "1jf74jya071zqvwhy9n0c3007pzgcxydkw7qdh4sx70brly81i7p"; }; hplipState = substituteAll { @@ -55,8 +57,11 @@ pythonPackages.buildPythonApplication { libusb1 sane-backends dbus + file + ghostscript net_snmp openssl + perl zlib ]; @@ -86,6 +91,11 @@ pythonPackages.buildPythonApplication { -e s,/usr/share/hal/fdi/preprobe/10osvendor,$out/share/hal/fdi/preprobe/10osvendor,g \ -e s,/usr/lib/systemd/system,$out/lib/systemd/system,g \ -e s,/var/lib/hp,$out/var/lib/hp,g \ + -e s,/usr/bin/perl,${perl}/bin/perl,g \ + -e s,/usr/bin/file,${file}/bin/file,g \ + -e s,/usr/bin/gs,${ghostscript}/bin/gs,g \ + -e s,/usr/share/cups/fonts,${ghostscript}/share/ghostscript/fonts,g \ + -e "s,ExecStart=/usr/bin/python /usr/bin/hp-config_usb_printer,ExecStart=$out/bin/hp-config_usb_printer,g" \ {} + ''; @@ -98,6 +108,7 @@ pythonPackages.buildPythonApplication { --with-systraydir=$out/xdg/autostart --with-mimedir=$out/etc/cups --enable-policykit + ${stdenv.lib.optionalString withStaticPPDInstall "--enable-cups-ppd-install"} --disable-qt4 ${stdenv.lib.optionalString withQt5 "--enable-qt5"} " @@ -111,10 +122,20 @@ pythonPackages.buildPythonApplication { hplip_confdir=$out/etc/hp hplip_statedir=$out/var/lib/hp " + + # Prevent 'ppdc: Unable to find include file ""' which prevent + # generation of '*.ppd' files. + # This seems to be a 'ppdc' issue when the tool is run in a hermetic sandbox. + # Could not find how to fix the problem in 'ppdc' so this is a workaround. + export CUPS_DATADIR="${cups}/share/cups" ''; enableParallelBuilding = true; + # + # Running `hp-diagnose_plugin -g` can be used to diagnose + # issues with plugins. + # postInstall = stdenv.lib.optionalString withPlugin '' sh ${plugin} --noexec --keep cd plugin_tmp @@ -130,17 +151,27 @@ pythonPackages.buildPythonApplication { mkdir -p $out/share/hplip/prnt/plugins for plugin in lj hbpl1; do cp $plugin-${hplipArch}.so $out/share/hplip/prnt/plugins + chmod 0755 $out/share/hplip/prnt/plugins/$plugin-${hplipArch}.so ln -s $out/share/hplip/prnt/plugins/$plugin-${hplipArch}.so \ $out/share/hplip/prnt/plugins/$plugin.so done mkdir -p $out/share/hplip/scan/plugins - for plugin in bb_soap bb_marvell bb_soapht fax_marvell; do + for plugin in bb_soap bb_marvell bb_soapht bb_escl; do cp $plugin-${hplipArch}.so $out/share/hplip/scan/plugins + chmod 0755 $out/share/hplip/scan/plugins/$plugin-${hplipArch}.so ln -s $out/share/hplip/scan/plugins/$plugin-${hplipArch}.so \ $out/share/hplip/scan/plugins/$plugin.so done + mkdir -p $out/share/hplip/fax/plugins + for plugin in fax_marvell; do + cp $plugin-${hplipArch}.so $out/share/hplip/fax/plugins + chmod 0755 $out/share/hplip/fax/plugins/$plugin-${hplipArch}.so + ln -s $out/share/hplip/fax/plugins/$plugin-${hplipArch}.so \ + $out/share/hplip/fax/plugins/$plugin.so + done + mkdir -p $out/var/lib/hp cp ${hplipState} $out/var/lib/hp/hplip.state From c21051dcf8499ffa8c2461160c81331dc377c786 Mon Sep 17 00:00:00 2001 From: Antoine Eiche Date: Thu, 14 Jun 2018 14:58:48 +0200 Subject: [PATCH 014/312] skydive: init at 0.17.0 --- pkgs/tools/networking/skydive/default.nix | 45 + pkgs/tools/networking/skydive/deps.nix | 1335 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 1382 insertions(+) create mode 100644 pkgs/tools/networking/skydive/default.nix create mode 100644 pkgs/tools/networking/skydive/deps.nix diff --git a/pkgs/tools/networking/skydive/default.nix b/pkgs/tools/networking/skydive/default.nix new file mode 100644 index 00000000000..ce2a8cf6a7f --- /dev/null +++ b/pkgs/tools/networking/skydive/default.nix @@ -0,0 +1,45 @@ +{ stdenv, lib, buildGoPackage, fetchFromGitHub, perl +, go-bindata, libxml2, protobuf3_1, libpcap, pkgconfig, go-protobuf }: + +buildGoPackage rec { + name = "skydive-${version}"; + version = "0.17.0"; + goPackagePath = "github.com/skydive-project/skydive"; + + src = fetchFromGitHub { + owner = "skydive-project"; + repo = "skydive"; + rev = "v${version}"; + sha256 = "03y26imiib2v9icrgwlamzsrx3ph6vn582051vdk1x9ar80xp4dv"; + }; + + patchPhase = '' + substituteInPlace Makefile \ + --replace ".proto: builddep" ".proto: " \ + --replace ".bindata: builddep" ".bindata: " + ''; + + buildInputs = [ perl go-bindata go-protobuf libxml2 protobuf3_1 libpcap pkgconfig ]; + goDeps = ./deps.nix; + + preBuild = '' + make -C go/src/github.com/skydive-project/skydive genlocalfiles VERSION=${version} + ''; + + preInstall = '' + mkdir -p $out/share/skydive + cp go/src/github.com/skydive-project/skydive/etc/skydive.yml.default $out/share/skydive/ + ''; + + postInstall = '' + rm $bin/bin/snort + ''; + + meta = { + homepage = http://skydive.network; + description = "A real-time network analyzer"; + license = lib.licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = [ lib.maintainers.lewo ]; + }; +} diff --git a/pkgs/tools/networking/skydive/deps.nix b/pkgs/tools/networking/skydive/deps.nix new file mode 100644 index 00000000000..c573a7231bb --- /dev/null +++ b/pkgs/tools/networking/skydive/deps.nix @@ -0,0 +1,1335 @@ +# This file was generated by https://github.com/kamilchm/go2nix v2.0-dev +[ + { + goPackagePath = "github.com/Microsoft/go-winio"; + fetch = { + type = "git"; + url = "https://github.com/Microsoft/go-winio"; + rev = "fff283ad5116362ca252298cfc9b95828956d85d"; + sha256 = "0kfd6477rndcdl5c4dg9k64kxxp2667qqlbp4ccl7xk4qg9jckg9"; + }; + } + { + goPackagePath = "github.com/PuerkitoBio/purell"; + fetch = { + type = "git"; + url = "https://github.com/PuerkitoBio/purell"; + rev = "fd18e053af8a4ff11039269006e8037ff374ce0e"; + sha256 = "1v62jhcq1zvnsj83z3dyqr7msndnp85rlm53l6iq78yryd54i115"; + }; + } + { + goPackagePath = "github.com/PuerkitoBio/urlesc"; + fetch = { + type = "git"; + url = "https://github.com/PuerkitoBio/urlesc"; + rev = "de5bf2ad457846296e2031421a34e2568e304e35"; + sha256 = "0n0srpqwbaan1wrhh2b7ysz543pjs1xw2rghvqyffg9l0g8kzgcw"; + }; + } + { + goPackagePath = "github.com/Sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/Sirupsen/logrus"; + rev = "4b6ea7319e214d98c938f12692336f7ca9348d6b"; + sha256 = "06wnl1dkkib2zpm31aavk5c4290s64h2ss68nl1vgcbxzsfbxjaq"; + }; + } + { + goPackagePath = "github.com/StackExchange/wmi"; + fetch = { + type = "git"; + url = "https://github.com/StackExchange/wmi"; + rev = "5d049714c4a64225c3c79a7cf7d02f7fb5b96338"; + sha256 = "1slw6v1fl8i0hz4db9lph55pbhnrxhqyndq6vm27dgvpj22k29fk"; + }; + } + { + goPackagePath = "github.com/abbot/go-http-auth"; + fetch = { + type = "git"; + url = "https://github.com/abbot/go-http-auth"; + rev = "ca62df34b58d26b6a064246c21c0a18f97813173"; + sha256 = "169i8549ai9ljjpvfgqjx4azclps7zjvislfszw5fndkw0qx7v1n"; + }; + } + { + goPackagePath = "github.com/araddon/gou"; + fetch = { + type = "git"; + url = "https://github.com/araddon/gou"; + rev = "0c2ab7394d785afff14c983fedce4be70ccc431f"; + sha256 = "0pppl3hm6r7mf7nnncjsfjfb8l020chzzl6n3c9g3qi02fkp3b1d"; + }; + } + { + goPackagePath = "github.com/armon/consul-api"; + fetch = { + type = "git"; + url = "https://github.com/armon/consul-api"; + rev = "dcfedd50ed5334f96adee43fc88518a4f095e15c"; + sha256 = "1k3yl34j4d8y6xxqdm70pjrbdcnp11dbf8i1mp60480xg0cwpb6d"; + }; + } + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "b965b613227fddccbfffe13eae360ed3fa822f8d"; + sha256 = "1p8zsj4r0g61q922khfxpwxhdma2dx4xad1m5qx43mfn28kxngqk"; + }; + } + { + goPackagePath = "github.com/bitly/go-hostpool"; + fetch = { + type = "git"; + url = "https://github.com/bitly/go-hostpool"; + rev = "d0e59c22a56e8dadfed24f74f452cea5a52722d2"; + sha256 = "14ph12krn5zlg00vh9g6g08lkfjxnpw46nzadrfb718yl1hgyk3g"; + }; + } + { + goPackagePath = "github.com/c-bata/go-prompt"; + fetch = { + type = "git"; + url = "https://github.com/c-bata/go-prompt"; + rev = "e99fbc797b795e0a7a94affc8d44f6a0350d85f0"; + sha256 = "00i8wfi51hzla59qgkdlijnvad4h1p1si9jaaw3jzchm7g7ryrlj"; + }; + } + { + goPackagePath = "github.com/cenk/hub"; + fetch = { + type = "git"; + url = "https://github.com/cenk/hub"; + rev = "11382a9960d39b0ecda16fd01c424c11ff765a34"; + sha256 = "02f0l563niy2i5zq5cq7mqab775zzywp062pl0r12ny3gs0l8ssm"; + }; + } + { + goPackagePath = "github.com/cenk/rpc2"; + fetch = { + type = "git"; + url = "https://github.com/cenk/rpc2"; + rev = "7ab76d2e88c77ca1a715756036d8264b2886acd2"; + sha256 = "1yazkf6g370zy13fxnwjvn1n37zf7m7mcfws0jrrjflfw49fbpv8"; + }; + } + { + goPackagePath = "github.com/cnf/structhash"; + fetch = { + type = "git"; + url = "https://github.com/cnf/structhash"; + rev = "7710f1f78fb9c581deeeab57ecfb7978901b36bc"; + sha256 = "07dlpnwmqdmhj9s7w558lc0wnzvngz3i7d42a5y9rfg9k079l3fp"; + }; + } + { + goPackagePath = "github.com/cockroachdb/cmux"; + fetch = { + type = "git"; + url = "https://github.com/cockroachdb/cmux"; + rev = "30d10be492927e2dcae0089c374c455d42414fcb"; + sha256 = "0ixif6hwcm2dpi1si5ah49dmdyy5chillz1048jpvjzwzxyfv1nx"; + }; + } + { + goPackagePath = "github.com/coreos/bbolt"; + fetch = { + type = "git"; + url = "https://github.com/coreos/bbolt"; + rev = "32c383e75ce054674c53b5a07e55de85332aee14"; + sha256 = "0qa4434g081ksil9g479v9yk3ylhl48c9k95zki5kjq49cb0c589"; + }; + } + { + goPackagePath = "github.com/coreos/etcd"; + fetch = { + type = "git"; + url = "https://github.com/coreos/etcd"; + rev = "b5abfe1858ddde05b83b96a810dc2b50cc5fcd94"; + sha256 = "0lkhc45irh2pvlnqs60s06q74q5mlym9wl8h7rk8kk4zcfxqaa8i"; + }; + } + { + goPackagePath = "github.com/coreos/go-semver"; + fetch = { + type = "git"; + url = "https://github.com/coreos/go-semver"; + rev = "8ab6407b697782a06568d4b7f1db25550ec2e4c6"; + sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0"; + }; + } + { + goPackagePath = "github.com/coreos/go-systemd"; + fetch = { + type = "git"; + url = "https://github.com/coreos/go-systemd"; + rev = "7b2428fec40033549c68f54e26e89e7ca9a9ce31"; + sha256 = "0kfbxvm9zsjgvgmiq2jl807y4s5z0rya65rm399llr5rr7vz1lxd"; + }; + } + { + goPackagePath = "github.com/coreos/pkg"; + fetch = { + type = "git"; + url = "https://github.com/coreos/pkg"; + rev = "66fe44ad037ccb80329115cb4db0dbe8e9beb03a"; + sha256 = "1pxcwx0c6aazqdypcjvibam6zw88v1gsfhnsn5bscy33yzqmjrd4"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "346938d642f2ec3594ed81d874461961cd0faa76"; + sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c"; + }; + } + { + goPackagePath = "github.com/dgrijalva/jwt-go"; + fetch = { + type = "git"; + url = "https://github.com/dgrijalva/jwt-go"; + rev = "d2709f9f1f31ebcda9651b03077758c1f3a0018c"; + sha256 = "02zhyimshzfzp3by2lggm2z382j4pvbrbcxx9p1wqmmmwy5yz182"; + }; + } + { + goPackagePath = "github.com/docker/distribution"; + fetch = { + type = "git"; + url = "https://github.com/docker/distribution"; + rev = "325b0804fef3a66309d962357aac3c2ce3f4d329"; + sha256 = "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"; + }; + } + { + goPackagePath = "github.com/docker/docker"; + fetch = { + type = "git"; + url = "https://github.com/docker/docker"; + rev = "c6d412e329c85f32a4b2269b49aaa0794affcf88"; + sha256 = "1h3hkg15c3isfgaqpkp3mr7ys5826cz24hn3f3wz07jmismq98q7"; + }; + } + { + goPackagePath = "github.com/docker/go-connections"; + fetch = { + type = "git"; + url = "https://github.com/docker/go-connections"; + rev = "990a1a1a70b0da4c4cb70e117971a4f0babfbf1a"; + sha256 = "16lcf485a7gl0kzkc5n0qq9frjkfinxhcr3j4874qqkr8ghghwbb"; + }; + } + { + goPackagePath = "github.com/docker/go-units"; + fetch = { + type = "git"; + url = "https://github.com/docker/go-units"; + rev = "5d2041e26a699eaca682e2ea41c8f891e1060444"; + sha256 = "0hn8xdbaykp046inc4d2mwig5ir89ighma8hk18dfkm8rh1vvr8i"; + }; + } + { + goPackagePath = "github.com/emicklei/go-restful"; + fetch = { + type = "git"; + url = "https://github.com/emicklei/go-restful"; + rev = "68c9750c36bb8cb433f1b88c807b4b30df4acc40"; + sha256 = "0bc0wd5nipz1x078vpq82acyc7ip0qv1sddl451d7f7bvfms6h67"; + }; + } + { + goPackagePath = "github.com/emicklei/go-restful-swagger12"; + fetch = { + type = "git"; + url = "https://github.com/emicklei/go-restful-swagger12"; + rev = "7524189396c68dc4b04d53852f9edc00f816b123"; + sha256 = "1rqmrxpx55kin0059k7svmcbqx2jgybc200cjdc9ysaif3rhkd73"; + }; + } + { + goPackagePath = "github.com/fatih/structs"; + fetch = { + type = "git"; + url = "https://github.com/fatih/structs"; + rev = "f5faa72e73092639913f5833b75e1ac1d6bc7a63"; + sha256 = "1kdwvygp2g9jc9ygkr7snmk6zk6wmy7xywrf1p6q6iiwwil4xghz"; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "30411dbcefb7a1da7e84f75530ad3abe4011b4f8"; + sha256 = "0kbpvyi6p9942k0vmcw5z13mja47f7hq7nqd332pn2zydss6kddm"; + }; + } + { + goPackagePath = "github.com/ghodss/yaml"; + fetch = { + type = "git"; + url = "https://github.com/ghodss/yaml"; + rev = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7"; + sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g"; + }; + } + { + goPackagePath = "github.com/gima/govalid"; + fetch = { + type = "git"; + url = "https://github.com/gima/govalid"; + rev = "7b486932bea218beb6e85f7ed28650d283dd6ce6"; + sha256 = "1w3gbfjl283qdfk3xj9mavhwx5wyh1v4w26d85plcdx4kcjmn6hy"; + }; + } + { + goPackagePath = "github.com/go-ole/go-ole"; + fetch = { + type = "git"; + url = "https://github.com/go-ole/go-ole"; + rev = "a41e3c4b706f6ae8dfbff342b06e40fa4d2d0506"; + sha256 = "114h8x7dh4jp7w7k678fm98lr9icavsf74v6jfipyq7q35bsfr1p"; + }; + } + { + goPackagePath = "github.com/go-openapi/jsonpointer"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/jsonpointer"; + rev = "779f45308c19820f1a69e9a4cd965f496e0da10f"; + sha256 = "10vv0xsabkvv81xpqqq95fvxnlpf07x9zwzl41g8x2lx05ibxsnc"; + }; + } + { + goPackagePath = "github.com/go-openapi/jsonreference"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/jsonreference"; + rev = "36d33bfe519efae5632669801b180bf1a245da3b"; + sha256 = "0d163wv3mj9cbhdqc9jqzw2kwi961lg4p30d8gcd6ddz0q752ykh"; + }; + } + { + goPackagePath = "github.com/go-openapi/spec"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/spec"; + rev = "7abd5745472fff5eb3685386d5fb8bf38683154d"; + sha256 = "1z9hwfzxgwr59r1syy0s4hgybs27q87n9mm1bbxl0yl5yvzw67rl"; + }; + } + { + goPackagePath = "github.com/go-openapi/swag"; + fetch = { + type = "git"; + url = "https://github.com/go-openapi/swag"; + rev = "f3f9494671f93fcff853e3c6e9e948b3eb71e590"; + sha256 = "13lqn4xqy9vma9aqsjb0fzfzi0q8l6dmg65sjxqdxf3q6gzkvmjy"; + }; + } + { + goPackagePath = "github.com/gobwas/httphead"; + fetch = { + type = "git"; + url = "https://github.com/gobwas/httphead"; + rev = "01c9b01b368a438f615030bbbd5e4f9e0023e15c"; + sha256 = "0g1fig36plp3668wc3hm6w4sb7ki0ss24c311a59jpdgy9awfp56"; + }; + } + { + goPackagePath = "github.com/gobwas/pool"; + fetch = { + type = "git"; + url = "https://github.com/gobwas/pool"; + rev = "32dbaa12caca20fad12253c30591227e04f62cdd"; + sha256 = "0iqqfi7zf6jrx1857xxk17hy4j1ln90j5w4jzyxd5x72v5jnmhxm"; + }; + } + { + goPackagePath = "github.com/gobwas/ws"; + fetch = { + type = "git"; + url = "https://github.com/gobwas/ws"; + rev = "915eed3240022c5265584c55032ef1b8c8f84168"; + sha256 = "10r08qrssbmqkxhh26h1s7vvf1lpp7j5b5a4rn0cbr38gv4zwmx9"; + }; + } + { + goPackagePath = "github.com/gogo/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/gogo/protobuf"; + rev = "2adc21fd136931e0388e278825291678e1d98309"; + sha256 = "0z6lxahhq3d16w4ff3swrggly08yavzrjsjmmchfq7wcxxdrc9s6"; + }; + } + { + goPackagePath = "github.com/golang/glog"; + fetch = { + type = "git"; + url = "https://github.com/golang/glog"; + rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998"; + sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "925541529c1fa6821df4e44ce2723319eb2be768"; + sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa"; + }; + } + { + goPackagePath = "github.com/google/btree"; + fetch = { + type = "git"; + url = "https://github.com/google/btree"; + rev = "cc6329d4279e3f025a53a83c397d2339b5705c45"; + sha256 = "1aqvcqr0c7z3sgj272n5f9g8g6cy4361697a0f240amqdvj0ax9v"; + }; + } + { + goPackagePath = "github.com/google/gofuzz"; + fetch = { + type = "git"; + url = "https://github.com/google/gofuzz"; + rev = "24818f796faf91cd76ec7bddd72458fbced7a6c1"; + sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm"; + }; + } + { + goPackagePath = "github.com/google/gopacket"; + fetch = { + type = "git"; + url = "https://github.com/google/gopacket"; + rev = "67a21c4470a0598531a769727aef40b870ffa128"; + sha256 = "1clxrcabrdrkrgwbal852w3cynvzdwbpl4gc0f5yyzncmaazxmhq"; + }; + } + { + goPackagePath = "github.com/googleapis/gnostic"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/gnostic"; + rev = "41d03372f44f2bc18a72c97615a669fb60e7452a"; + sha256 = "04l6384y7riya4wrc7s7ry7c8dil4sdyks1psqavw85bgy9q1iql"; + }; + } + { + goPackagePath = "github.com/gophercloud/gophercloud"; + fetch = { + type = "git"; + url = "https://github.com/gophercloud/gophercloud"; + rev = "849a2e71dd64dbfa2bd4be110ace68881802414b"; + sha256 = "12xn9gph7hg6sfyqd5z9advsx1s776pm5ji9qnarnq1781k7gzh2"; + }; + } + { + goPackagePath = "github.com/gorilla/context"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/context"; + rev = "08b5f424b9271eedf6f9f0ce86cb9396ed337a42"; + sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"; + }; + } + { + goPackagePath = "github.com/gorilla/handlers"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/handlers"; + rev = "90663712d74cb411cbef281bc1e08c19d1a76145"; + sha256 = "03h5ygjcwama9kr9k7nbg0spv5c7hdlw2ydaclj969i820aq3dpz"; + }; + } + { + goPackagePath = "github.com/gorilla/mux"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/mux"; + rev = "5ab525f4fb1678e197ae59401e9050fa0b6cb5fd"; + sha256 = "0d8rbiz2ykn43knf75arnm545jfxgw0zf5yx8ncjmfm9iimzj20i"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "cdedf21e585dae942951e34d6defc3215b4280fa"; + sha256 = "1kb7phyvvyl67pdsnd80sgpq3a6gv8lkr8ylppb1i6xwi25yppiv"; + }; + } + { + goPackagePath = "github.com/gosuri/uitable"; + fetch = { + type = "git"; + url = "https://github.com/gosuri/uitable"; + rev = "36ee7e946282a3fb1cfecd476ddc9b35d8847e42"; + sha256 = "1ff68fv9g1df91fwbrcq83ar429gb4fi2vsd22zjmhvmbqx2zkil"; + }; + } + { + goPackagePath = "github.com/gregjones/httpcache"; + fetch = { + type = "git"; + url = "https://github.com/gregjones/httpcache"; + rev = "2bcd89a1743fd4b373f7370ce8ddc14dfbd18229"; + sha256 = "1qx04bqbd4cwkakzq8ahz1jq6pq8435h5zcapwn8k8a0f1bgfrnz"; + }; + } + { + goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus"; + fetch = { + type = "git"; + url = "https://github.com/grpc-ecosystem/go-grpc-prometheus"; + rev = "6b7015e65d366bf3f19b2b2a000a831940f0f7e0"; + sha256 = "039l2c5jsqrhm0g9bngrd3kry89kkai9v97kbd4mayqb619jcdxs"; + }; + } + { + goPackagePath = "github.com/grpc-ecosystem/grpc-gateway"; + fetch = { + type = "git"; + url = "https://github.com/grpc-ecosystem/grpc-gateway"; + rev = "8cc3a55af3bcf171a1c23a90c4df9cf591706104"; + sha256 = "1pfxxskhihz7ijdfj2vinadx05iljqim9h7g19jzgvrl34p8bhix"; + }; + } + { + goPackagePath = "github.com/hashicorp/golang-lru"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/golang-lru"; + rev = "0a025b7e63adc15a622f29b0b2c4c3848243bbf6"; + sha256 = "1iq7lbpsz7ks052mpznmkf8s4k43p51z4dik2n9ivrxk666q2wxi"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8"; + sha256 = "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"; + }; + } + { + goPackagePath = "github.com/howeyc/gopass"; + fetch = { + type = "git"; + url = "https://github.com/howeyc/gopass"; + rev = "bf9dde6d0d2c004a008c27aaee91170c786f6db8"; + sha256 = "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45"; + }; + } + { + goPackagePath = "github.com/hydrogen18/stoppableListener"; + fetch = { + type = "git"; + url = "https://github.com/hydrogen18/stoppableListener"; + rev = "dadc9ccc400c712e5a316107a5c462863919e579"; + sha256 = "0yf2a9641v5zscw8sj52aky21nm35cj5d946sbvhrjsr4vzzbbm7"; + }; + } + { + goPackagePath = "github.com/imdario/mergo"; + fetch = { + type = "git"; + url = "https://github.com/imdario/mergo"; + rev = "e3000cb3d28c72b837601cac94debd91032d19fe"; + sha256 = "1bsz1aj0h266x7g08jj7f3nd3d5islbad0cygb5vh37hjgzirg4d"; + }; + } + { + goPackagePath = "github.com/inconshreveable/mousetrap"; + fetch = { + type = "git"; + url = "https://github.com/inconshreveable/mousetrap"; + rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"; + sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; + }; + } + { + goPackagePath = "github.com/intel-go/yanff"; + fetch = { + type = "git"; + url = "https://github.com/intel-go/yanff"; + rev = "35804adce65005f76409327527e4e256569cacc6"; + sha256 = "0rank8ij0ky9ryfw23aqk4mk72lznycqqbs5wr7y71d0pl9ljrgh"; + }; + } + { + goPackagePath = "github.com/iovisor/gobpf"; + fetch = { + type = "git"; + url = "https://github.com/iovisor/gobpf"; + rev = "dd767a9fd5f868874ed117811461410100cea403"; + sha256 = "0kj7g5iz81j9qmz57m5b2a9mfpapmwpp3ad9h5rz58r6wzm5anc3"; + }; + } + { + goPackagePath = "github.com/jbowtie/gokogiri"; + fetch = { + type = "git"; + url = "https://github.com/jbowtie/gokogiri"; + rev = "e2644e49d5b4a4d2382d1a4b28dfbb313a4ffb0c"; + sha256 = "1skbfr0w438xip7p58dkv6806yvm22f1wixqppb2yszgxril0j29"; + }; + } + { + goPackagePath = "github.com/jonboulle/clockwork"; + fetch = { + type = "git"; + url = "https://github.com/jonboulle/clockwork"; + rev = "ed104f61ea4877bea08af6f759805674861e968d"; + sha256 = "04ari17wr4pabjf607jcr7cf13r83dlxlspy8yvfh7hlr0xb16z2"; + }; + } + { + goPackagePath = "github.com/json-iterator/go"; + fetch = { + type = "git"; + url = "https://github.com/json-iterator/go"; + rev = "ff2b70c1dbffdd98567bd8c2f9449d97c0d04c88"; + sha256 = "1flbh2qg16445md5vcsqvbq538icj5l25k5ygyjf86lxdfkh5kr0"; + }; + } + { + goPackagePath = "github.com/juju/loggo"; + fetch = { + type = "git"; + url = "https://github.com/juju/loggo"; + rev = "8232ab8918d91c72af1a9fb94d3edbe31d88b790"; + sha256 = "11y5gk41g1i5q6aqn6jpgm06nsq2mf7fdmkzwqrqagnajgb0h1s1"; + }; + } + { + goPackagePath = "github.com/juju/ratelimit"; + fetch = { + type = "git"; + url = "https://github.com/juju/ratelimit"; + rev = "5b9ff866471762aa2ab2dced63c9fb6f53921342"; + sha256 = "12fsx3wqg49wisigbybdzic7gc2p5a0fk55714mpv7zq8jr6i46k"; + }; + } + { + goPackagePath = "github.com/juju/webbrowser"; + fetch = { + type = "git"; + url = "https://github.com/juju/webbrowser"; + rev = "54b8c57083b4afb7dc75da7f13e2967b2606a507"; + sha256 = "0ngj27f0kgpc4m6jr2hz04kigv6p9z8hviddijgpb9srjzkl7dhz"; + }; + } + { + goPackagePath = "github.com/julienschmidt/httprouter"; + fetch = { + type = "git"; + url = "https://github.com/julienschmidt/httprouter"; + rev = "d1898390779332322e6b5ca5011da4bf249bb056"; + sha256 = "19r684s93b7pxqkpxa7p3pba9dw3xf547z05biykil39xk7rgyfa"; + }; + } + { + goPackagePath = "github.com/kardianos/osext"; + fetch = { + type = "git"; + url = "https://github.com/kardianos/osext"; + rev = "c2c54e542fb797ad986b31721e1baedf214ca413"; + sha256 = "02vmjhkx90601l5fym7c3r4d44b88h3cign86nz4yy6j8qqxvz3h"; + }; + } + { + goPackagePath = "github.com/kr/fs"; + fetch = { + type = "git"; + url = "https://github.com/kr/fs"; + rev = "2788f0dbd16903de03cb8186e5c7d97b69ad387b"; + sha256 = "1c0fipl4rsh0v5liq1ska1dl83v3llab4k6lm8mvrx9c4dyp71ly"; + }; + } + { + goPackagePath = "github.com/kr/pty"; + fetch = { + type = "git"; + url = "https://github.com/kr/pty"; + rev = "95d05c1eef33a45bd58676b6ce28d105839b8d0b"; + sha256 = "0lyvs0g2pq0hdblfnpcgvp399j13xy4fzbr24l9zh5vbiw7d1lwc"; + }; + } + { + goPackagePath = "github.com/lxc/lxd"; + fetch = { + type = "git"; + url = "https://github.com/lxc/lxd"; + rev = "9907f3a64b6b8ec9144e8be02d633b951439c0f6"; + sha256 = "0qn0v2facxvg0w5vnasa28nxhvfdy817vkmvsnfqzgcnh60k3z20"; + }; + } + { + goPackagePath = "github.com/magiconair/properties"; + fetch = { + type = "git"; + url = "https://github.com/magiconair/properties"; + rev = "c81f9d71af8f8cba1466501d30326b99a4e56c19"; + sha256 = "1000zi161vzrk2fskjna31j9r9hd6m82i7r7wz76f88421i1xlx5"; + }; + } + { + goPackagePath = "github.com/mailru/easyjson"; + fetch = { + type = "git"; + url = "https://github.com/mailru/easyjson"; + rev = "2a92e673c9a6302dd05c3a691ae1f24aef46457d"; + sha256 = "1k0c952c60zcbly9gzi48jyzwphgawnq9f70bgniciyp4jb8hfv3"; + }; + } + { + goPackagePath = "github.com/mattbaird/elastigo"; + fetch = { + type = "git"; + url = "https://github.com/safchain/elastigo"; + rev = "441c1531dca50a19990385930149f6785f78fe59"; + sha256 = "0dmsswm5zkr0054zrvq8h3naddnx4mygsd76fnjqxs25zf88v7ir"; + }; + } + { + goPackagePath = "github.com/mattn/go-colorable"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-colorable"; + rev = "167de6bfdfba052fa6b2d3664c8f5272e23c9072"; + sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39"; + sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "d6bea18f789704b5f83375793155289da36a3c7f"; + sha256 = "1hnigpn7rjbwd1ircxkyx9hvi0xmxr32b2jdy2jzw6b3jmcnz1fs"; + }; + } + { + goPackagePath = "github.com/mattn/go-tty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-tty"; + rev = "931426f7535ac39720c8909d70ece5a41a2502a6"; + sha256 = "00cb07v13xrfqm39m1j2h2zvj684gl9fzr51591i9a52a9m6xlj5"; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "d0c3fe89de86839aecf2e0579c40ba3bb336a453"; + sha256 = "0jkjgpi1s8l9bdbf14fh8050757jqy36kn1l1hxxlb2fjn1pcg0r"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "756f7b183b7ab78acdbbee5c7f392838ed459dda"; + sha256 = "0yd3682x22lqrfq4h0q16c4swcfn3lmds05ijynm2fk1gcbnwiqn"; + }; + } + { + goPackagePath = "github.com/mitchellh/hashstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/hashstructure"; + rev = "ab25296c0f51f1022f01cd99dfb45f1775de8799"; + sha256 = "1k21xr0x7k03hbkh72xbdi8gz8fk3wdlcbfpy7l90rxvi21jzz0f"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "281073eb9eb092240d33ef253c404f1cca550309"; + sha256 = "1zjx9fv29639sp1fn84rxs830z7gp7bs38yd5y1hl5adb8s5x1mh"; + }; + } + { + goPackagePath = "github.com/nlewo/contrail-introspect-cli"; + fetch = { + type = "git"; + url = "https://github.com/nlewo/contrail-introspect-cli"; + rev = "e4df28ccf9801abbe32edd5ddaba31a7a62b61b6"; + sha256 = "0wf3s9gqy8pvv5gzngz30j9p7fa4mv5qyr9gnlf5ps85xpnlngbq"; + }; + } + { + goPackagePath = "github.com/nu7hatch/gouuid"; + fetch = { + type = "git"; + url = "https://github.com/nu7hatch/gouuid"; + rev = "179d4d0c4d8d407a32af483c2354df1d2c91e6c3"; + sha256 = "1isyfix5w1wm26y3a15ha3nnpsxqaxz5ngq06hnh6c6y0inl2fwj"; + }; + } + { + goPackagePath = "github.com/op/go-logging"; + fetch = { + type = "git"; + url = "https://github.com/op/go-logging"; + rev = "970db520ece77730c7e4724c61121037378659d9"; + sha256 = "1cpna2x5l071z1vrnk7zipdkka8dzwsjyx7m79xk0lr08rip0kcj"; + }; + } + { + goPackagePath = "github.com/opencontainers/runc"; + fetch = { + type = "git"; + url = "https://github.com/opencontainers/runc"; + rev = "8fa5343b0058459296399a89bc532aa5508de28d"; + sha256 = "15wbnj19fbprgsrf0k7hpmpxrkh2vzrm71qn3gya05p908k81v03"; + }; + } + { + goPackagePath = "github.com/pelletier/go-toml"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-toml"; + rev = "05bcc0fb0d3e60da4b8dd5bd7e0ea563eb4ca943"; + sha256 = "0ma7fwsyl0qflvhbb6qfc5h3yi81iy5lpc6wkdyd1sdafvrzpbb8"; + }; + } + { + goPackagePath = "github.com/petar/GoLLRB"; + fetch = { + type = "git"; + url = "https://github.com/petar/GoLLRB"; + rev = "53be0d36a84c2a886ca057d34b6aa4468df9ccb4"; + sha256 = "01xp3lcamqkvl91jg6ly202gdsgf64j39rkrcqxi6v4pbrcv7hz0"; + }; + } + { + goPackagePath = "github.com/peterbourgon/diskv"; + fetch = { + type = "git"; + url = "https://github.com/peterbourgon/diskv"; + rev = "2973218375c3d13162e1d3afe1708aaee318ef3f"; + sha256 = "10jbkxyxilv5hixm4dww4qfn01cnb5fr8mgxvwigq5jcb85mrxig"; + }; + } + { + goPackagePath = "github.com/peterh/liner"; + fetch = { + type = "git"; + url = "https://github.com/peterh/liner"; + rev = "8975875355a81d612fafb9f5a6037bdcc2d9b073"; + sha256 = "17l7p6lxhlnna1w1drgh7g8afxcxxd5j472givm2g7l9v8yg4f17"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "ff09b135c25aae272398c51a07235b90a75aa4f0"; + sha256 = "0pwl6v3hmc22zp32gkyqykl4kg69xk1mlp0vmhgd1f44difd5fvz"; + }; + } + { + goPackagePath = "github.com/pkg/sftp"; + fetch = { + type = "git"; + url = "https://github.com/pkg/sftp"; + rev = "e84cc8c755ca39b7b64f510fe1fffc1b51f210a5"; + sha256 = "1gkmk60lskyrn5751rgb9pxn41wi7y29wsn8psrfb16bg4flcvrq"; + }; + } + { + goPackagePath = "github.com/pkg/term"; + fetch = { + type = "git"; + url = "https://github.com/pkg/term"; + rev = "cda20d4ac917ad418d86e151eff439648b06185b"; + sha256 = "08frhz411dwyli5spfxn32d3ni9mrgdav51lmg8a1wpdmw0r0wwp"; + }; + } + { + goPackagePath = "github.com/pmylund/go-cache"; + fetch = { + type = "git"; + url = "https://github.com/pmylund/go-cache"; + rev = "a3647f8e31d79543b2d0f0ae2fe5c379d72cedc0"; + sha256 = "10020inkzrm931r4bixf8wqr9n39wcrb78vfyxmbvjavvw4zybgs"; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "5cec1d0429b02e4323e042eb04dafdb079ddf568"; + sha256 = "1cgd5pcxf4zgcafq284yf2i711m3kddpb05prxy51li5p1l5cbq0"; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "fa8ad6fec33561be4280a8f0514318c79d7f6cb6"; + sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9"; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "23070236b1ebff452f494ae831569545c2b61d26"; + sha256 = "111vqp3lqsdli7z5rnkrpcfv6yri0qjikyl70whwxzcvkqp9k42s"; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "406e5b7bfd8201a36e2bb5f7bdae0b03380c2ce8"; + sha256 = "0yla9hz15pg63394ygs9iiwzsqyv29labl8p424hijwsc9z9nka8"; + }; + } + { + goPackagePath = "github.com/robertkrimen/otto"; + fetch = { + type = "git"; + url = "https://github.com/robertkrimen/otto"; + rev = "6c383dd335ef8dcccef05e651ce1eccfe4d0f011"; + sha256 = "1n6h7c8gi6wv4nklqd7ygzx2afvh7ddxbml9w9x0jxwcfb3bdy17"; + }; + } + { + goPackagePath = "github.com/rogpeppe/fastuuid"; + fetch = { + type = "git"; + url = "https://github.com/rogpeppe/fastuuid"; + rev = "6724a57986aff9bff1a1770e9347036def7c89f6"; + sha256 = "12s65phfx6hxj4v0b5kj8akgrbf5mxpa101fyzw03h6hld1f70cz"; + }; + } + { + goPackagePath = "github.com/safchain/ethtool"; + fetch = { + type = "git"; + url = "https://github.com/safchain/ethtool"; + rev = "e01512671ed4c2248daf0c5e974ecf88a4947335"; + sha256 = "11wk834aas1jj3bag3rwr0sb5alhd40si3fcqkvs0fsg6wjmwxyc"; + }; + } + { + goPackagePath = "github.com/shirou/gopsutil"; + fetch = { + type = "git"; + url = "https://github.com/shirou/gopsutil"; + rev = "6a368fb7cd1221fa6ea90facc9447c9a2234c255"; + sha256 = "0vjf2jwkpb1fls997w3pvw5sg25yjygx0nv1i5pwcfrnpvnw9zxk"; + }; + } + { + goPackagePath = "github.com/skydive-project/dede"; + fetch = { + type = "git"; + url = "https://github.com/skydive-project/dede"; + rev = "d95b69cd1f75137aab3bcc01d6facf2aa7a43b80"; + sha256 = "16qgpxb24zq2js7ril8xf71yz927ly7fsadys23is8jzkgsx56mf"; + }; + } + { + goPackagePath = "github.com/socketplane/libovsdb"; + fetch = { + type = "git"; + url = "https://github.com/socketplane/libovsdb"; + rev = "5113f8fb4d9d374417ab4ce35424fbea1aad7272"; + sha256 = "1b4yz6jvsi2gz8ha9y42hy105q6ylf7516pd59wgg42r6n627w4g"; + }; + } + { + goPackagePath = "github.com/spf13/afero"; + fetch = { + type = "git"; + url = "https://github.com/spf13/afero"; + rev = "a80ea588265c05730645be8342eeafeaa72b2923"; + sha256 = "1i2z4l3a335jz0jg8xzwfdcp0dlf77h8rb6nd88mnd1nbmbd58w4"; + }; + } + { + goPackagePath = "github.com/spf13/cast"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cast"; + rev = "8965335b8c7107321228e3e3702cab9832751bac"; + sha256 = "177bk7lq40jbgv9p9r80aydpaccfk8ja3a7jjhfwiwk9r1pa4rr2"; + }; + } + { + goPackagePath = "github.com/spf13/cobra"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cobra"; + rev = "9c28e4bbd74e5c3ed7aacbc552b2cab7cfdfe744"; + sha256 = "02bgp0yy9bi05k2in9axqi3db1c6mjffdsmki51pn9iryxz4zkh3"; + }; + } + { + goPackagePath = "github.com/spf13/jwalterweatherman"; + fetch = { + type = "git"; + url = "https://github.com/spf13/jwalterweatherman"; + rev = "d00654080cddbd2b082acaa74007cb94a2b40866"; + sha256 = "06zv87v7m0zgx9zy3w283008fmlx0v41xyldkql7qmp7l5l4vcpw"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "c7e63cf4530bcd3ba943729cee0efeff2ebea63f"; + sha256 = "197mlkgb01zk86fxfl8r8maymcxsspqblg7hmngjxf7ivdid1i1l"; + }; + } + { + goPackagePath = "github.com/spf13/viper"; + fetch = { + type = "git"; + url = "https://github.com/lebauce/viper"; + rev = "54676d0dbb12f9b6febb2f8210e9590d81d4b5e3"; + sha256 = "1dm01151hn6mywv6hm0nbqsr8qgwp393l4xz9p9jrd8asynpdpsb"; + }; + } + { + goPackagePath = "github.com/tchap/zapext"; + fetch = { + type = "git"; + url = "https://github.com/tchap/zapext"; + rev = "e61c0c8823393722ae09ce0faee42fa177088a4b"; + sha256 = "16xw01phxkndhsn8l9n587vdpmr0kh9xg0vxlk0l6ywkp31583cr"; + }; + } + { + goPackagePath = "github.com/tebeka/selenium"; + fetch = { + type = "git"; + url = "https://github.com/tebeka/selenium"; + rev = "657e45ec600f26e76da253936c1f2adb6978ff72"; + sha256 = "1gqhmlqcq4y5pxw7inqd987xwyrnd5zsmj8blmb5vizhan7liw99"; + }; + } + { + goPackagePath = "github.com/ugorji/go"; + fetch = { + type = "git"; + url = "https://github.com/ugorji/go"; + rev = "ded73eae5db7e7a0ef6f55aace87a2873c5d2b74"; + sha256 = "04iwqjj049q4dldf1wpqymf1y9kdppxp3y0ywsqzaw21bi8b3zcc"; + }; + } + { + goPackagePath = "github.com/vishvananda/netlink"; + fetch = { + type = "git"; + url = "https://github.com/vishvananda/netlink"; + rev = "016ba6f67a12c03708643150afcfb1509be7747a"; + sha256 = "08z5g217nynq6nrdls8hj1761wwl9skhwfz2fad9di8ziy8mk7w4"; + }; + } + { + goPackagePath = "github.com/vishvananda/netns"; + fetch = { + type = "git"; + url = "https://github.com/vishvananda/netns"; + rev = "604eaf189ee867d8c147fafc28def2394e878d25"; + sha256 = "0zii8dyy6qb2dh649syz3ablabw78k038w8a7fwnsk3x482p59s7"; + }; + } + { + goPackagePath = "github.com/weaveworks/tcptracer-bpf"; + fetch = { + type = "git"; + url = "https://github.com/weaveworks/tcptracer-bpf"; + rev = "e080bd747dc6b62d4ed3ed2b7f0be4801bef8faf"; + sha256 = "1ijqpzj4nmymi8gh3pl9rnwjzm5q89d1585iwj1s190cxcp1ix81"; + }; + } + { + goPackagePath = "github.com/xeipuuv/gojsonpointer"; + fetch = { + type = "git"; + url = "https://github.com/xeipuuv/gojsonpointer"; + rev = "6fe8760cad3569743d51ddbb243b26f8456742dc"; + sha256 = "1b1flqamhzfi5lc4lbh8iw4s3lix0vxyrq0adpx0znx7lkkxhjvz"; + }; + } + { + goPackagePath = "github.com/xeipuuv/gojsonreference"; + fetch = { + type = "git"; + url = "https://github.com/xeipuuv/gojsonreference"; + rev = "e02fc20de94c78484cd5ffb007f8af96be030a45"; + sha256 = "195in5zr3bhb3r1iins2h610kz339naj284b3839xmrhc15wqxzq"; + }; + } + { + goPackagePath = "github.com/xeipuuv/gojsonschema"; + fetch = { + type = "git"; + url = "https://github.com/xeipuuv/gojsonschema"; + rev = "702b404897d4364af44dc8dcabc9815947942325"; + sha256 = "1lby7iar87q2kjqvcbx2jql4p2ggjq9ml114x7hlb3966447ayfr"; + }; + } + { + goPackagePath = "github.com/xiang90/probing"; + fetch = { + type = "git"; + url = "https://github.com/xiang90/probing"; + rev = "07dd2e8dfe18522e9c447ba95f2fe95262f63bb2"; + sha256 = "0r8rq27yigz72mk8z7p61yjfan8id021dnp1v421ln9byzpvabn2"; + }; + } + { + goPackagePath = "github.com/xordataexchange/crypt"; + fetch = { + type = "git"; + url = "https://github.com/xordataexchange/crypt"; + rev = "b2862e3d0a775f18c7cfe02273500ae307b61218"; + sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y"; + }; + } + { + goPackagePath = "go.uber.org/atomic"; + fetch = { + type = "git"; + url = "https://github.com/uber-go/atomic"; + rev = "0506d69f5564c56e25797bf7183c28921d4c6360"; + sha256 = "0b1b0iz6jwk5f77mwsggsvkywmxwwn1b4a6n63xd5czl23vi7a6q"; + }; + } + { + goPackagePath = "go.uber.org/multierr"; + fetch = { + type = "git"; + url = "https://github.com/uber-go/multierr"; + rev = "3c4937480c32f4c13a875a1829af76c98ca3d40a"; + sha256 = "1slfc6syvw8cvr6rbrjsy6ja5w8gsx0f8aq8qm16rp2x5c2pj07w"; + }; + } + { + goPackagePath = "go.uber.org/zap"; + fetch = { + type = "git"; + url = "https://github.com/uber-go/zap"; + rev = "35aad584952c3e7020db7b839f6b102de6271f89"; + sha256 = "0n79ir7jcr7s51j85swji7an0jgy1w5dxg1g68j722rmpbvsagwv"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "1f22c0103821b9390939b6776727195525381532"; + sha256 = "1acy12f396sr3lrnbcnym5q72qnlign5bagving41qijzjnc219m"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "a6577fac2d73be281a500b310739095313165611"; + sha256 = "00wks377dp0ws47dvc9f6y4sin1mwdk649v5jfz047ik1jh1nq5h"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "810d7000345868fc619eb81f46307107118f4ae1"; + sha256 = "07lm9h86l29dd45ca3vjsi06xpwg36899hf1ns7qwabflzgm0nxy"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "1cbadb444a806fd9430d14ad08967ed91da4fa0a"; + sha256 = "0ih9ysagh4ylj08393497sscf3yziybc6acg4mrh0wa7mld75j56"; + }; + } + { + goPackagePath = "google.golang.org/genproto"; + fetch = { + type = "git"; + url = "https://github.com/google/go-genproto"; + rev = "2b5a72b8730b0b16380010cfe5286c42108d88e7"; + sha256 = "0i69x08kg5yqwaz5grxbfhg2hjdkdhaqbc1v4x4l91232kw5nd38"; + }; + } + { + goPackagePath = "google.golang.org/grpc"; + fetch = { + type = "git"; + url = "https://github.com/grpc/grpc-go"; + rev = "5b3c4e850e90a4cf6a20ebd46c8b32a0a3afcb9e"; + sha256 = "1sf3fvphz16pf7jbm86n07rip9m5fh40wjcc2j2d5zpka36xvjw4"; + }; + } + { + goPackagePath = "gopkg.in/errgo.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/errgo.v1"; + rev = "442357a80af5c6bf9b6d51ae791a39c3421004f3"; + sha256 = "0gg7vqkfh2bpn2z9xfdahrxdkvn365mdb63zs8s5v5cbm2glfq56"; + }; + } + { + goPackagePath = "gopkg.in/fsnotify/fsnotify.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/fsnotify/fsnotify.v1"; + rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "gopkg.in/httprequest.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/httprequest.v1"; + rev = "93f8fee4081f01ea23d258bdbbcdd319f668d718"; + sha256 = "1lgicrb355m2vb31ly4ly997ral1zvqk9fy89x4qkxals1zfqi3q"; + }; + } + { + goPackagePath = "gopkg.in/inf.v0"; + fetch = { + type = "git"; + url = "https://gopkg.in/inf.v0"; + rev = "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4"; + sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82"; + }; + } + { + goPackagePath = "gopkg.in/macaroon-bakery.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/macaroon-bakery.v2"; + rev = "22c04a94d902625448265ef041bb53e715452a40"; + sha256 = "1iaisvljir95m7jh02k98jv2j68bs38fdlis4pnjbpj8mbarllw4"; + }; + } + { + goPackagePath = "gopkg.in/macaroon.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/macaroon.v2"; + rev = "bed2a428da6e56d950bed5b41fcbae3141e5b0d0"; + sha256 = "199dcdl38vjj078aq56kpfzni0sm7j3062nxd8yyj1bd67x0xmsi"; + }; + } + { + goPackagePath = "gopkg.in/sourcemap.v1"; + fetch = { + type = "git"; + url = "https://gopkg.in/sourcemap.v1"; + rev = "eef8f47ab679652a7d3a4ee34c34314d255d2536"; + sha256 = "0ahmw49lswks636vz49vb33r4rq0g3rrkqwsh8fn0kmhp94c9w40"; + }; + } + { + goPackagePath = "gopkg.in/urfave/cli.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/urfave/cli.v2"; + rev = "b2bf3c5abeb90da407891aecd1df2c5a1f6170c1"; + sha256 = "1x90qcnjcicq1d933bd9mdyjkwd0h9hdxgva45z85gqr7lavs5h3"; + }; + } + { + goPackagePath = "gopkg.in/validator.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/validator.v2"; + rev = "3e4f037f12a1221a0864cf0dd2e81c452ab22448"; + sha256 = "1294nz3wi4avn1nwyr8cdcx8jqjvlzadlnswarpwrq41mhlmhjfs"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "bef53efd0c76e49e6de55ead051f886bea7e9420"; + sha256 = "0df5gr2qyflh1vmb1i2jbkc46dc3mqmdbc53vbyrzw0ilzhzh0si"; + }; + } + { + goPackagePath = "k8s.io/api"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/api"; + rev = "4df58c811fe2e65feb879227b2b245e4dc26e7ad"; + sha256 = "14pxzm1gqh4pa1179c8hfcbi5rqy9fx2cvpns8pwlyqz807rg2vl"; + }; + } + { + goPackagePath = "k8s.io/apimachinery"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/apimachinery"; + rev = "019ae5ada31de202164b118aee88ee2d14075c31"; + sha256 = "1l1przxkbid3sfn80n60w2z883yad99cl89k4zwb9i7wcydk85w1"; + }; + } + { + goPackagePath = "k8s.io/client-go"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/client-go"; + rev = "35ccd4336052e7d73018b1382413534936f34eee"; + sha256 = "1sp0v60xpy6lsdzsqq7lzcqkmqds100ziqzj2fip68svcysgqg9g"; + }; + } + { + goPackagePath = "k8s.io/kube-openapi"; + fetch = { + type = "git"; + url = "https://github.com/kubernetes/kube-openapi"; + rev = "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1"; + sha256 = "08b5yx07saj5vzzic50hlzw68p2fd7xc118x1liq4wqrikxmv8wa"; + }; + } +] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 94ebd20a0f5..c4d992bd6f0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11642,6 +11642,8 @@ with pkgs; skalibs = callPackage ../development/libraries/skalibs { }; + skydive = callPackage ../tools/networking/skydive { }; + slang = callPackage ../development/libraries/slang { }; slibGuile = callPackage ../development/libraries/slib { From 499f6a3ff3cdb8e40ebd4454eff2e4f9f2aa136b Mon Sep 17 00:00:00 2001 From: volth Date: Fri, 15 Jun 2018 23:06:16 +0000 Subject: [PATCH 015/312] hadoop: update minor versions --- .../networking/cluster/hadoop/default.nix | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix index 8c8e258ccd1..768712a3b67 100644 --- a/pkgs/applications/networking/cluster/hadoop/default.nix +++ b/pkgs/applications/networking/cluster/hadoop/default.nix @@ -124,27 +124,33 @@ let in { hadoop_2_7 = common { - version = "2.7.5"; - sha256 = "0dvgi4z2pi45b0yzzm9zxjp0lwvd8lwqn4903mxlqh7xv2g3llnp"; - dependencies-sha256 = "137v077q022997ih41n412l2xq4ynypk5dl5p4n16i16745k9lk2"; + version = "2.7.6"; + sha256 = "0wmg0iy0qxrf43fzajzmx03gxp4yx197vxacqwkxaj45clqwl010"; + dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r"; tomcat = tomcat_6_0_48; }; hadoop_2_8 = common { - version = "2.8.3"; - sha256 = "0ziairmgfi05iqmib66lysanlabrp1cq6palnmwkiss098b5dcjd"; - dependencies-sha256 = "1qmdmiprr0l0i0q3w9nv964db5cm3615iqczywrs5v8qaaf580b3"; + version = "2.8.4"; + sha256 = "16c3ljhrzibkjn3y1bmjxdgf0kn60l23ay5hqpp7vpbnqx52x68w"; + dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03"; tomcat = tomcat_6_0_48; }; hadoop_2_9 = common { - version = "2.9.0"; - sha256 = "03mh193bccm4bi7cq6ym651zal82d0kvl00yhnzzrsnwq10j2h62"; - dependencies-sha256 = "0773lw4d03r89dcrrsglbr4zgcz2m9b15587nxdz4clm2f5gqiw5"; + version = "2.9.1"; + sha256 = "0qgmpfbpv7f521fkjy5ldzdb4lwiblhs0hyl8qy041ws17y5x7d7"; + dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x"; tomcat = tomcat_6_0_48; }; hadoop_3_0 = common { - version = "3.0.0"; - sha256 = "0h22mdpgvg9v4rbc8gn4m8vrpkq45lwk7m8f5c25fvnzdyrc8fzc"; - dependencies-sha256 = "0ghbl768al3wpgz0rx2mqbnf6p7cdqpkq6yk6hgf65b4qab4aw9v"; + version = "3.0.3"; + sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5"; + dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m"; + tomcat = null; + }; + hadoop_3_1 = common { + version = "3.1.0"; + sha256 = "0lig25jkffkzc2bfgyrnm3wymapgyw9fkai8sk9fnmp7cljia314"; + dependencies-sha256 = "1ri6a7lrijh538vy7v0fzgvkw603pf8jkh3ldl1kl7l0dvszd70d"; tomcat = null; }; } From 50bf6f4a9c18790689088a2927fc7fdbf849e47d Mon Sep 17 00:00:00 2001 From: volth Date: Fri, 15 Jun 2018 23:07:23 +0000 Subject: [PATCH 016/312] hadoop_3_1: init at 3.1.0 --- pkgs/top-level/all-packages.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 019f9c29ec8..8313e1f199e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6590,7 +6590,8 @@ with pkgs; hadoop_2_7 hadoop_2_8 hadoop_2_9 - hadoop_3_0; + hadoop_3_0 + hadoop_3_1; hadoop = hadoop_2_7; io = callPackage ../development/interpreters/io { }; From 441796cb16e0b97c0ddcf947c6c90d86c1118b3f Mon Sep 17 00:00:00 2001 From: Yegor Timoshenko Date: Sun, 17 Jun 2018 23:29:16 +0300 Subject: [PATCH 017/312] lib/modules: bump mkOptionDefault priority to 1500 --- lib/modules.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/modules.nix b/lib/modules.nix index 8baae491705..8339d4b545e 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -493,7 +493,7 @@ rec { inherit priority content; }; - mkOptionDefault = mkOverride 1001; # priority of option defaults + mkOptionDefault = mkOverride 1500; # priority of option defaults mkDefault = mkOverride 1000; # used in config sections of non-user modules to set a default mkForce = mkOverride 50; mkVMOverride = mkOverride 10; # used by ‘nixos-rebuild build-vm’ From b6eeeb111c6704c9f0f15f072351330c5af261b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Gaspard?= Date: Thu, 21 Jun 2018 13:04:24 +0200 Subject: [PATCH 018/312] opensmtpd package and module: add nixos test --- nixos/release.nix | 1 + nixos/tests/opensmtpd.nix | 115 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 nixos/tests/opensmtpd.nix diff --git a/nixos/release.nix b/nixos/release.nix index 9b4aa4b0399..52358b986c4 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -331,6 +331,7 @@ in rec { tests.nsd = callTest tests/nsd.nix {}; tests.openssh = callTest tests/openssh.nix {}; tests.openldap = callTest tests/openldap.nix {}; + tests.opensmtpd = callTest tests/opensmtpd.nix {}; tests.owncloud = callTest tests/owncloud.nix {}; tests.pam-oath-login = callTest tests/pam-oath-login.nix {}; #tests.panamax = callTestOnMatchingSystems ["x86_64-linux"] tests/panamax.nix {}; diff --git a/nixos/tests/opensmtpd.nix b/nixos/tests/opensmtpd.nix new file mode 100644 index 00000000000..5079779f35b --- /dev/null +++ b/nixos/tests/opensmtpd.nix @@ -0,0 +1,115 @@ +import ./make-test.nix { + name = "opensmtpd"; + + nodes = { + smtp1 = { pkgs, ... }: { + imports = [ common/user-account.nix ]; + networking = { + firewall.allowedTCPPorts = [ 25 ]; + useDHCP = false; + interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [ + { address = "192.168.1.1"; prefixLength = 24; } + ]; + }; + environment.systemPackages = [ pkgs.opensmtpd ]; + services.opensmtpd = { + enable = true; + extraServerArgs = [ "-v" ]; + serverConfiguration = '' + listen on 0.0.0.0 + # DO NOT DO THIS IN PRODUCTION! + # Setting up authentication requires a certificate which is painful in + # a test environment, but THIS WOULD BE DANGEROUS OUTSIDE OF A + # WELL-CONTROLLED ENVIRONMENT! + accept from any for any relay + ''; + }; + }; + + smtp2 = { pkgs, ... }: { + imports = [ common/user-account.nix ]; + networking = { + firewall.allowedTCPPorts = [ 25 143 ]; + useDHCP = false; + interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [ + { address = "192.168.1.2"; prefixLength = 24; } + ]; + }; + environment.systemPackages = [ pkgs.opensmtpd ]; + services.opensmtpd = { + enable = true; + extraServerArgs = [ "-v" ]; + serverConfiguration = '' + listen on 0.0.0.0 + accept from any for local deliver to mda \ + "${pkgs.dovecot}/libexec/dovecot/deliver -d %{user.username}" + ''; + }; + services.dovecot2 = { + enable = true; + enableImap = true; + mailLocation = "maildir:~/mail"; + protocols = [ "imap" ]; + }; + }; + + client = { pkgs, ... }: { + networking = { + useDHCP = false; + interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [ + { address = "192.168.1.3"; prefixLength = 24; } + ]; + }; + environment.systemPackages = let + sendTestMail = pkgs.writeScriptBin "send-a-test-mail" '' + #!${pkgs.python3.interpreter} + import smtplib, sys + + with smtplib.SMTP('192.168.1.1') as smtp: + smtp.sendmail('alice@[192.168.1.1]', 'bob@[192.168.1.2]', """ + From: alice@smtp1 + To: bob@smtp2 + Subject: Test + + Hello World + """) + ''; + + checkMailLanded = pkgs.writeScriptBin "check-mail-landed" '' + #!${pkgs.python3.interpreter} + import imaplib + + with imaplib.IMAP4('192.168.1.2', 143) as imap: + imap.login('bob', 'foobar') + imap.select() + status, refs = imap.search(None, 'ALL') + assert status == 'OK' + assert len(refs) == 1 + status, msg = imap.fetch(refs[0], 'BODY[TEXT]') + assert status == 'OK' + content = msg[0][1] + print("===> content:", content) + split = content.split(b'\r\n') + print("===> split:", split) + lastline = split[-3] + print("===> lastline:", lastline) + assert lastline.strip() == b'Hello World' + ''; + in [ sendTestMail checkMailLanded ]; + }; + }; + + testScript = '' + startAll; + + $client->waitForUnit("network.target"); + $smtp1->waitForUnit('opensmtpd'); + $smtp2->waitForUnit('opensmtpd'); + $smtp2->waitForUnit('dovecot2'); + + $client->succeed('send-a-test-mail'); + $smtp1->waitUntilFails('smtpctl show queue | egrep .'); + $smtp2->waitUntilFails('smtpctl show queue | egrep .'); + $client->succeed('check-mail-landed >&2'); + ''; +} From 1b187b3961832451abed4261af82a3e68e8e80e5 Mon Sep 17 00:00:00 2001 From: Chris Hodapp Date: Wed, 20 Jun 2018 10:44:40 -0400 Subject: [PATCH 019/312] luxcorerender: init at 2.0, embree: init at 2.17.4 --- pkgs/development/libraries/embree/2.x.nix | 27 ++++++ pkgs/tools/graphics/luxcorerender/default.nix | 87 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 + 3 files changed, 118 insertions(+) create mode 100644 pkgs/development/libraries/embree/2.x.nix create mode 100644 pkgs/tools/graphics/luxcorerender/default.nix diff --git a/pkgs/development/libraries/embree/2.x.nix b/pkgs/development/libraries/embree/2.x.nix new file mode 100644 index 00000000000..c973c2bd944 --- /dev/null +++ b/pkgs/development/libraries/embree/2.x.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, ispc, tbb, glfw, +openimageio, libjpeg, libpng, libpthreadstubs, libX11 +}: + +stdenv.mkDerivation rec { + name = "embree-${version}"; + version = "2.17.4"; + + src = fetchFromGitHub { + owner = "embree"; + repo = "embree"; + rev = "v2.17.4"; + sha256 = "0q3r724r58j4b6cbyy657fsb78z7a2c7d5mwdp7552skynsn2mn9"; + }; + + cmakeFlags = [ "-DEMBREE_TUTORIALS=OFF" ]; + enableParallelBuilding = true; + + buildInputs = [ pkgconfig cmake ispc tbb glfw openimageio libjpeg libpng libX11 libpthreadstubs ]; + meta = with stdenv.lib; { + description = "High performance ray tracing kernels from Intel"; + homepage = https://embree.github.io/; + maintainers = with maintainers; [ hodapp ]; + license = licenses.asl20; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/graphics/luxcorerender/default.nix b/pkgs/tools/graphics/luxcorerender/default.nix new file mode 100644 index 00000000000..387c8c0595e --- /dev/null +++ b/pkgs/tools/graphics/luxcorerender/default.nix @@ -0,0 +1,87 @@ +{ stdenv, fetchFromGitHub, cmake, boost165, pkgconfig, python35 +, tbb, openimageio, libjpeg, libpng, zlib, libtiff, ilmbase +, freetype, openexr, libXdmcp, libxkbcommon, epoxy, at-spi2-core +, dbus, doxygen, qt5, c-blosc, mesa_glu, gnome3, pcre +, bison, flex, libpthreadstubs, libX11 +, embree2, makeWrapper, gsettings_desktop_schemas, glib +, withOpenCL ? true , opencl-headers, ocl-icd, opencl-clhpp +}: + +let boost_static = boost165.override { + python = python35; + enableStatic = true; + }; + +in stdenv.mkDerivation rec { + name = "luxcorerender-${version}"; + version = "2.0"; + + src = fetchFromGitHub { + owner = "LuxCoreRender"; + repo = "LuxCore"; + rev = "luxcorerender_v2.0"; + sha256 = "15nn39ybsfjf3cw3xgkbarvxn4a9ymfd579ankm7yjxkw5gcif38"; + }; + + buildInputs = + [ embree2 pkgconfig cmake zlib boost_static libjpeg + libtiff libpng ilmbase freetype openexr openimageio + tbb qt5.full c-blosc mesa_glu pcre bison + flex libX11 libpthreadstubs python35 libXdmcp libxkbcommon + epoxy at-spi2-core dbus doxygen + # needed for GSETTINGS_SCHEMAS_PATH + gsettings_desktop_schemas glib gnome3.gtk + # needed for XDG_ICON_DIRS + gnome3.defaultIconTheme + makeWrapper + (stdenv.lib.getLib gnome3.dconf) + ] ++ stdenv.lib.optionals withOpenCL [opencl-headers ocl-icd opencl-clhpp]; + + cmakeFlags = [ + "-DOpenEXR_Iex_INCLUDE_DIR=${openexr.dev}/include/OpenEXR" + "-DOpenEXR_IlmThread_INCLUDE_DIR=${ilmbase.dev}/include/OpenEXR" + "-DOpenEXR_Imath_INCLUDE_DIR=${openexr.dev}/include/OpenEXR" + "-DOpenEXR_half_INCLUDE_DIR=${ilmbase.dev}/include" + "-DPYTHON_LIBRARY=${python35}/lib/libpython3.so" + "-DPYTHON_INCLUDE_DIR=${python35}/include/python3.5" + "-DEMBREE_INCLUDE_PATH=${embree2}/include" + "-DEMBREE_LIBRARY=${embree2}/lib/libembree.so" + "-DBoost_PYTHON_LIBRARY_RELEASE=${boost_static}/lib/libboost_python3-mt.so" + ] ++ stdenv.lib.optional withOpenCL + "-DOPENCL_INCLUDE_DIR=${opencl-headers}/include"; + preConfigure = '' + NIX_CFLAGS_COMPILE+=" -isystem ${python35}/include/python3.5" + NIX_LDFLAGS+=" -lpython3" + ''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/lib + cp -va bin/* $out/bin + cp -va lib/* $out/lib + ''; + + preFixup = '' + wrapProgram "$out/bin/luxcoreui" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --suffix XDG_DATA_DIRS : '${gnome3.defaultIconTheme}/share' \ + --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib gnome3.dconf}/lib/gio/modules" + ''; + + meta = with stdenv.lib; { + description = "Open source, physically based, unbiased rendering engine"; + homepage = https://luxcorerender.org/; + maintainers = with maintainers; [ hodapp ]; + license = licenses.asl20; + platforms = platforms.linux; + }; +} + + +# TODO (might not be necessary): +# +# luxcoreui still gives warnings like: "failed to commit changes to +# dconf: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The +# name ca.desrt.dconf was not provided by any .service files" + +# CMake complains of the FindOpenGL/GLVND preference diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e667e6d6843..af2a63e5aaf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2227,6 +2227,8 @@ with pkgs; callPackage ../servers/search/elasticsearch/plugins.nix { } ); + embree2 = callPackage ../development/libraries/embree/2.x.nix { }; + emem = callPackage ../applications/misc/emem { }; emv = callPackage ../tools/misc/emv { }; @@ -3690,6 +3692,8 @@ with pkgs; lzip = callPackage ../tools/compression/lzip { }; + luxcorerender = callPackage ../tools/graphics/luxcorerender { }; + xz = callPackage ../tools/compression/xz { }; lz4 = callPackage ../tools/compression/lz4 { }; From fac82deb6e1779ba557358dc788999a70ef340eb Mon Sep 17 00:00:00 2001 From: Sander Hollaar Date: Thu, 21 Jun 2018 19:52:58 +0200 Subject: [PATCH 020/312] google-authenticator-failed-to-use-libqrencode - use libqrencode 4 --- pkgs/os-specific/linux/google-authenticator/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/google-authenticator/default.nix b/pkgs/os-specific/linux/google-authenticator/default.nix index 41bdd5d12ac..4e04c16d70b 100644 --- a/pkgs/os-specific/linux/google-authenticator/default.nix +++ b/pkgs/os-specific/linux/google-authenticator/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { buildInputs = [ pam ]; preConfigure = '' - sed -i "s|libqrencode.so.3|${qrencode}/lib/libqrencode.so.3|" src/google-authenticator.c + sed -i "s|libqrencode.so.4|${qrencode}/lib/libqrencode.so.4|" src/google-authenticator.c ''; installPhase = '' From a15d3101680d4a8e98022afecc97fb93e9a1756f Mon Sep 17 00:00:00 2001 From: Susan Potter Date: Wed, 6 Jun 2018 13:34:08 -0500 Subject: [PATCH 021/312] documentation: add sub-section for the nixpkgs manual Haskell section --- doc/languages-frameworks/haskell.section.md | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 3b8971c295b..c740f0d6df6 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -716,6 +716,62 @@ sets at once: } ``` +### How to specify source overrides for your Haskell package + +When starting a Haskell project you can use `developPackage` +to define a derivation for your package at the `root` path +as well as source override versions for Hackage packages, like so: + +```nix +# default.nix +{ compilerVersion ? "ghc842" }: +let + # pinning nixpkgs using new Nix 2.0 builtin `fetchGit` + pkgs = import (fetchGit (import ./version.nix)) { }; + compiler = pkgs.haskell.packages."${compilerVersion}"; + pkg = compiler.developPackage { + root = ./.; + source-overrides = { + # Let's say the GHC 8.4.2 haskellPackages uses 1.6.0.0 and your test suite is incompatible with >= 1.6.0.0 + HUnit = "1.5.0.0"; + }; + }; +in pkg +``` + +This could be used in place of a simplified `stack.yaml` defining a Nix +derivation for your Haskell package. + +As you can see this allows you to specify only the source version found on +Hackage and nixpkgs will take care of the rest. + +You can also specify `buildInputs` for your Haskell derivation for packages +that directly depend on external libraries like so: + +```nix +# default.nix +{ compilerVersion ? "ghc842" }: +let + # pinning nixpkgs using new Nix 2.0 builtin `fetchGit` + pkgs = import (fetchGit (import ./version.nix)) { }; + compiler = pkgs.haskell.packages."${compilerVersion}"; + pkg = compiler.developPackage { + root = ./.; + source-overrides = { + HUnit = "1.5.0.0"; # Let's say the GHC 8.4.2 haskellPackages uses 1.6.0.0 and your test suite is incompatible with >= 1.6.0.0 + }; + }; + # in case your package source depends on any libraries directly, not just transitively. + buildInputs = [ zlib ]; +in pkg.overrideAttrs(attrs: { + buildInputs = attrs.buildInputs ++ buildInputs; +}) +``` + +Notice that you will need to override (via `overrideAttrs` or similar) the +derivation returned by the `developPackage` Nix lambda as there is no `buildInputs` +named argument you can pass directly into the `developPackage` lambda. + ### How to recover from GHC's infamous non-deterministic library ID bug GHC and distributed build farms don't get along well: From 3b880f55b5776b339310fddc6344b4cdc48e6871 Mon Sep 17 00:00:00 2001 From: Chris Hodapp Date: Wed, 20 Jun 2018 14:42:10 -0400 Subject: [PATCH 022/312] appleseed: init at 1.9.0-beta, osl: init at 1.9.9, seexpr: init at 2.11 --- pkgs/development/compilers/osl/default.nix | 39 +++++++++++ pkgs/development/compilers/seexpr/default.nix | 23 +++++++ pkgs/tools/graphics/appleseed/default.nix | 66 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 6 ++ 4 files changed, 134 insertions(+) create mode 100644 pkgs/development/compilers/osl/default.nix create mode 100644 pkgs/development/compilers/seexpr/default.nix create mode 100644 pkgs/tools/graphics/appleseed/default.nix diff --git a/pkgs/development/compilers/osl/default.nix b/pkgs/development/compilers/osl/default.nix new file mode 100644 index 00000000000..65d8110646f --- /dev/null +++ b/pkgs/development/compilers/osl/default.nix @@ -0,0 +1,39 @@ +{ clangStdenv, stdenv, fetchFromGitHub, cmake, zlib, openexr, +openimageio, llvm, boost165, flex, bison, partio, pugixml, +utillinux, python +}: + +let boost_static = boost165.override { enableStatic = true; }; +in clangStdenv.mkDerivation rec { + # In theory this could use GCC + Clang rather than just Clang, + # but https://github.com/NixOS/nixpkgs/issues/29877 stops this + name = "openshadinglanguage-${version}"; + version = "1.9.9"; + + src = fetchFromGitHub { + owner = "imageworks"; + repo = "OpenShadingLanguage"; + rev = "Release-1.9.9"; + sha256 = "1w6wbz013nirzsiw11c9dpdkcwlfncs5va8q583pdw0q2pfkj5dn"; + }; + + cmakeFlags = [ "-DUSE_BOOST_WAVE=ON" "-DENABLERTTI=ON" ]; + enableParallelBuilding = true; + + preConfigure = '' patchShebangs src/liboslexec/serialize-bc.bash ''; + + buildInputs = [ + cmake zlib openexr openimageio llvm + boost_static flex bison partio pugixml + utillinux # needed just for hexdump + python # CMake doesn't check this? + ]; + # TODO: How important is partio? CMake doesn't seem to find it + meta = with stdenv.lib; { + description = "Advanced shading language for production GI renderers"; + homepage = http://opensource.imageworks.com/?p=osl; + maintainers = with maintainers; [ hodapp ]; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/compilers/seexpr/default.nix b/pkgs/development/compilers/seexpr/default.nix new file mode 100644 index 00000000000..2760d6ad5d0 --- /dev/null +++ b/pkgs/development/compilers/seexpr/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub, cmake, libpng, zlib, qt4, +bison, flex, mesa_glu, pythonPackages +}: + +stdenv.mkDerivation rec { + name = "seexpr-${version}"; + version = "2.11"; + src = fetchFromGitHub { + owner = "wdas"; + repo = "SeExpr"; + rev = "v2.11"; + sha256 = "0a44k56jf6dl36fwgg4zpc252wq5lf9cblg74mp73k82hxw439l4"; + }; + + buildInputs = [ cmake mesa_glu libpng zlib qt4 pythonPackages.pyqt4 bison flex ]; + meta = with stdenv.lib; { + description = "Embeddable expression evaluation engine from Disney Animation"; + homepage = https://www.disneyanimation.com/technology/seexpr.html; + maintainers = with maintainers; [ hodapp ]; + license = licenses.asl20; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/graphics/appleseed/default.nix b/pkgs/tools/graphics/appleseed/default.nix new file mode 100644 index 00000000000..e4b31f06b6e --- /dev/null +++ b/pkgs/tools/graphics/appleseed/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchFromGitHub, cmake, boost165, pkgconfig, guile, +eigen3_3, libpng, python, mesa_glu, qt4, openexr, openimageio, +opencolorio, xercesc, ilmbase, osl, seexpr +}: + +let boost_static = boost165.override { enableStatic = true; }; +in stdenv.mkDerivation rec { + + name = "appleseed-${version}"; + version = "1.9.0-beta"; + + src = fetchFromGitHub { + owner = "appleseedhq"; + repo = "appleseed"; + rev = "1.9.0-beta"; + sha256 = "0m7zvfkdjfn48zzaxh2wa1bsaj4l876a05bzgmjlfq5dz3202anr"; + }; + buildInputs = [ + cmake pkgconfig boost_static guile eigen3_3 libpng python + mesa_glu qt4 openexr openimageio opencolorio xercesc + osl seexpr + ]; + + NIX_CFLAGS_COMPILE = "-I${openexr.dev}/include/OpenEXR -I${ilmbase.dev}/include/OpenEXR -I${openimageio.dev}/include/OpenImageIO"; + + cmakeFlags = [ + "-DUSE_EXTERNAL_XERCES=ON" "-DUSE_EXTERNAL_OCIO=ON" "-DUSE_EXTERNAL_OIIO=ON" + "-DUSE_EXTERNAL_OSL=ON" "-DWITH_CLI=ON" "-DWITH_STUDIO=ON" "-DWITH_TOOLS=ON" + "-DUSE_EXTERNAL_PNG=ON" "-DUSE_EXTERNAL_ZLIB=ON" + "-DUSE_EXTERNAL_EXR=ON" "-DUSE_EXTERNAL_SEEXPR=ON" + "-DWITH_PYTHON2_BINDINGS=ON" + # TODO: Look further into this if someone needs Python 3.x: + # "-DWITH_PYTHON3_BINDINGS=ON" + "-DWITH_DISNEY_MATERIAL=ON" + "-DUSE_SSE=ON" + "-DUSE_SSE42=ON" + ]; + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Open source, physically-based global illumination rendering engine"; + homepage = https://appleseedhq.net/; + maintainers = with maintainers; [ hodapp ]; + license = licenses.mit; + platforms = platforms.linux; + }; +} + +# TODO: Is the below problematic? + +# CMake Warning (dev) at /nix/store/dsyw2zla2h3ld2p0jj4cv0j3wal1bp3h-cmake-3.11.2/share/cmake-3.11/Modules/FindOpenGL.cmake:270 (message): +# Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when +# available. Run "cmake --help-policy CMP0072" for policy details. Use the +# cmake_policy command to set the policy and suppress this warning. +# +# FindOpenGL found both a legacy GL library: +# +# OPENGL_gl_LIBRARY: /nix/store/yxrgmcz2xlgn113wz978a91qbsy4rc8g-libGL-1.0.0/lib/libGL.so +# +# and GLVND libraries for OpenGL and GLX: +# +# OPENGL_opengl_LIBRARY: /nix/store/yxrgmcz2xlgn113wz978a91qbsy4rc8g-libGL-1.0.0/lib/libOpenGL.so +# OPENGL_glx_LIBRARY: /nix/store/yxrgmcz2xlgn113wz978a91qbsy4rc8g-libGL-1.0.0/lib/libGLX.so +# +# OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for +# compatibility with CMake 3.10 and below the legacy GL library will be used. diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e667e6d6843..e8386748452 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1501,6 +1501,8 @@ with pkgs; appdata-tools = callPackage ../tools/misc/appdata-tools { }; + appleseed = callPackage ../tools/graphics/appleseed { }; + arping = callPackage ../tools/networking/arping { }; arpoison = callPackage ../tools/networking/arpoison { }; @@ -4263,6 +4265,8 @@ with pkgs; os-prober = callPackage ../tools/misc/os-prober {}; + osl = callPackage ../development/compilers/osl { }; + ossec = callPackage ../tools/security/ossec {}; ostree = callPackage ../tools/misc/ostree { }; @@ -4945,6 +4949,8 @@ with pkgs; securefs = callPackage ../tools/filesystems/securefs { }; + seexpr = callPackage ../development/compilers/seexpr { }; + setroot = callPackage ../tools/X11/setroot { }; setserial = callPackage ../tools/system/setserial { }; From d395b185d92776878d1c23fbeaddfc72f948c647 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Fri, 22 Jun 2018 16:43:33 +0900 Subject: [PATCH 023/312] i3ipc-glib: init at 0.6.0 IPC library used to interact with the window manager www.i3wm.org --- .../window-managers/i3/i3ipc-glib.nix | 34 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/applications/window-managers/i3/i3ipc-glib.nix diff --git a/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/pkgs/applications/window-managers/i3/i3ipc-glib.nix new file mode 100644 index 00000000000..87e11774d43 --- /dev/null +++ b/pkgs/applications/window-managers/i3/i3ipc-glib.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, pkgconfig, xproto, libxcb +, autoreconfHook, json-glib, gtk-doc, which +, gobjectIntrospection +}: + +stdenv.mkDerivation rec { + + name = "i3ipc-glib-${version}"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "acrisci"; + repo = "i3ipc-glib"; + rev = "v${version}"; + sha256 = "1gmk1zjafrn6jh4j7r0wkwrpwvf9drl1lcw8vya23i1f4zbk0wh4"; + }; + + nativeBuildInputs = [ autoreconfHook which pkgconfig ]; + + buildInputs = [ libxcb json-glib gtk-doc xproto gobjectIntrospection ]; + + + preAutoreconf = '' + gtkdocize + ''; + + meta = with stdenv.lib; { + description = "A C interface library to i3wm"; + homepage = https://github.com/acrisci/i3ipc-glib; + maintainers = with maintainers; [teto]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5d63580c89c..52d5cb71cc1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16460,6 +16460,8 @@ with pkgs; i3cat = callPackage ../tools/misc/i3cat { }; + i3ipc-glib = callPackage ../applications/window-managers/i3/i3ipc-glib.nix { }; + i3lock = callPackage ../applications/window-managers/i3/lock.nix { cairo = cairo.override { xcbSupport = true; }; }; From 6664babe85ecd888af441350b798778d725ff1d6 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Fri, 22 Jun 2018 16:44:53 +0900 Subject: [PATCH 024/312] i3-easyfocus: init at 20180622 Fast window switcher. Attributes and display one letter per window on your current workspace, upon keypress, will focus the matching window. --- .../window-managers/i3/easyfocus.nix | 32 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/applications/window-managers/i3/easyfocus.nix diff --git a/pkgs/applications/window-managers/i3/easyfocus.nix b/pkgs/applications/window-managers/i3/easyfocus.nix new file mode 100644 index 00000000000..337ecdd651f --- /dev/null +++ b/pkgs/applications/window-managers/i3/easyfocus.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, pkgconfig, xproto, libxcb, xcbutilkeysyms +, xlibs , i3ipc-glib , glib +}: + +stdenv.mkDerivation rec { + name = "i3easyfocus-${version}"; + version = "20180622"; + + src = fetchFromGitHub { + owner = "cornerman"; + repo = "i3-easyfocus"; + rev = "3631d5af612d58c3d027f59c86b185590bd78ae1"; + sha256 = "1wgknmmm7iz0wxsdh29gmx4arizva9101pzhnmac30bmixf3nzhr"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libxcb xcbutilkeysyms xproto xlibs.libX11.dev i3ipc-glib glib.dev ]; + + # Makefile has no rule for 'install' + installPhase = '' + mkdir -p $out/bin + cp i3-easyfocus $out/bin + ''; + + meta = with stdenv.lib; { + description = "Focus and select windows in i3"; + homepage = https://github.com/cornerman/i3-easyfocus; + maintainers = with maintainers; [teto]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 52d5cb71cc1..cfa4adecdcc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16454,6 +16454,8 @@ with pkgs; i3-gaps = callPackage ../applications/window-managers/i3/gaps.nix { }; + i3-easyfocus = callPackage ../applications/window-managers/i3/easyfocus.nix { }; + i3blocks = callPackage ../applications/window-managers/i3/blocks.nix { }; i3blocks-gaps = callPackage ../applications/window-managers/i3/blocks-gaps.nix { }; From 6f831a7ab48607d6cf62684099e10443524c8b88 Mon Sep 17 00:00:00 2001 From: Michael Fellinger Date: Thu, 21 Jun 2018 13:08:26 +0200 Subject: [PATCH 025/312] Gnome-latex: init at 3.28.1 --- .../editors/gnome-latex/default.nix | 47 +++++++++++++++++++ pkgs/development/libraries/amtk/default.nix | 40 ++++++++++++++++ pkgs/development/libraries/tepl/default.nix | 42 +++++++++++++++++ pkgs/top-level/all-packages.nix | 6 +++ 4 files changed, 135 insertions(+) create mode 100644 pkgs/applications/editors/gnome-latex/default.nix create mode 100644 pkgs/development/libraries/amtk/default.nix create mode 100644 pkgs/development/libraries/tepl/default.nix diff --git a/pkgs/applications/editors/gnome-latex/default.nix b/pkgs/applications/editors/gnome-latex/default.nix new file mode 100644 index 00000000000..4657d0d10ad --- /dev/null +++ b/pkgs/applications/editors/gnome-latex/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, wrapGAppsHook +, tepl, amtk, gnome3, glib, pkgconfig, intltool, itstool, libxml2 }: +let + version = "3.28.1"; + pname = "gnome-latex"; +in stdenv.mkDerivation { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1z481izrx057wraphnr82kxnpmmi8nvl7jswyylzm22kfs0mw402"; + }; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + configureFlags = ["--disable-dconf-migration"]; + + nativeBuildInputs = [ + pkgconfig + wrapGAppsHook + itstool + intltool + ]; + + buildInputs = with gnome3; [ + amtk + defaultIconTheme + glib + gsettings-desktop-schemas + gspell + gtksourceview4 + libgee + libxml2 + tepl + ]; + + doCheck = true; + + passthru.updateScript = gnome3.updateScript { packageName = pname; }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/GNOME-LaTeX; + description = "A LaTeX editor for the GNOME desktop"; + maintainers = [ maintainers.manveru ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/amtk/default.nix b/pkgs/development/libraries/amtk/default.nix new file mode 100644 index 00000000000..2487711d9b1 --- /dev/null +++ b/pkgs/development/libraries/amtk/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl +, pkgconfig, gnome3, dbus, xvfb_run }: +let + version = "4.99.1"; + pname = "amtk"; +in stdenv.mkDerivation { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "00fhvw5y638z584s8cfdslh47ngfzcgx4f0b0456sw8p754j3f8d"; + }; + + nativeBuildInputs = [ + pkgconfig + dbus + ]; + + buildInputs = [ + gnome3.gtk + ]; + + doCheck = stdenv.isLinux; + checkPhase = '' + export NO_AT_BRIDGE=1 + ${xvfb_run}/bin/xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + make check + ''; + + passthru.updateScript = gnome3.updateScript { packageName = pname; }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Amtk; + description = "Actions, Menus and Toolbars Kit for GTK+ applications"; + maintainers = [ maintainers.manveru ]; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/tepl/default.nix b/pkgs/development/libraries/tepl/default.nix new file mode 100644 index 00000000000..12f953b1aa8 --- /dev/null +++ b/pkgs/development/libraries/tepl/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl +, amtk, gnome3, gtksourceview4, libuchardet, libxml2, pkgconfig }: +let + version = "4.1.1"; + pname = "tepl"; +in stdenv.mkDerivation { + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "13kflywpc6iyfpc9baaa54in5vzn4p7i3dh9pr2ival2nkxfnkp2"; + }; + + nativeBuildInputs = [ + pkgconfig + ]; + + buildInputs = [ + amtk + libxml2 + gtksourceview4 + libuchardet + gnome3.gtk + ]; + + doCheck = false; + # TODO: one test fails because of + # (./test-file-metadata:20931): Tepl-WARNING **: 14:41:36.942: GVfs metadata + # is not supported. Fallback to TeplMetadataManager. Either GVfs is not + # correctly installed or GVfs metadata are not supported on this platform. In + # the latter case, you should configure Tepl with --disable-gvfs-metadata. + + passthru.updateScript = gnome3.updateScript { packageName = pname; }; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Tepl; + description = "Text editor product line"; + maintainers = [ maintainers.manveru ]; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fd778deea95..bb4ba923275 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7574,6 +7574,8 @@ with pkgs; samples = true; }; + amtk = callPackage ../development/libraries/amtk { }; + avrgcclibc = throw "avrgcclibs are now separate packages, install avrbinutils, avrgcc and avrlibc"; avrbinutils = callPackage ../development/misc/avr/binutils {}; @@ -8055,6 +8057,8 @@ with pkgs; gnome-usage = callPackage ../applications/misc/gnome-usage {}; + gnome-latex = callPackage ../applications/editors/gnome-latex/default.nix { }; + gnum4 = callPackage ../development/tools/misc/gnum4 { }; m4 = gnum4; @@ -11841,6 +11845,8 @@ with pkgs; tectonic = callPackage ../tools/typesetting/tectonic { }; + tepl = callPackage ../development/libraries/tepl { }; + telepathy-glib = callPackage ../development/libraries/telepathy/glib { }; telepathy-farstream = callPackage ../development/libraries/telepathy/farstream {}; From 4d728b19f7dc44c37d88b1a70dc40109d05f9f78 Mon Sep 17 00:00:00 2001 From: Assassinkin Date: Fri, 22 Jun 2018 14:38:08 +0100 Subject: [PATCH 026/312] pythonPackages.sklearn-deap: init at 0.2.2 --- .../python-modules/sklearn-deap/default.nix | 29 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/python-modules/sklearn-deap/default.nix diff --git a/pkgs/development/python-modules/sklearn-deap/default.nix b/pkgs/development/python-modules/sklearn-deap/default.nix new file mode 100644 index 00000000000..2c40ce4c2fc --- /dev/null +++ b/pkgs/development/python-modules/sklearn-deap/default.nix @@ -0,0 +1,29 @@ +{ stdenv, buildPythonPackage, fetchFromGitHub, numpy, scipy, deap, scikitlearn, python }: + +buildPythonPackage rec { + pname = "sklearn-deap"; + version = "0.2.2"; + + # No tests in Pypi + src = fetchFromGitHub { + owner = "rsteca"; + repo = pname; + rev = "${version}"; + sha256 = "01ynmzxg181xhv2d7bs53zjvk9x2qpxix32sspq54mpigxh13ava"; + }; + + propagatedBuildInputs = [ numpy scipy deap scikitlearn ]; + + #doCheck = false; + checkPhase = '' + ${python.interpreter} test.py + ''; + + meta = with stdenv.lib; { + description = "Use evolutionary algorithms instead of gridsearch in scikit-learn"; + homepage = https://github.com/rsteca/sklearn-deap; + license = licenses.lgpl3; + maintainers = with maintainers; [ psyanticy ]; + }; +} + diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d057cebf9f5..83af2a4a310 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -464,6 +464,8 @@ in { sip = callPackage ../development/python-modules/sip { }; + sklearn-deap = callPackage ../development/python-modules/sklearn-deap { }; + spglib = callPackage ../development/python-modules/spglib { }; supervise_api = callPackage ../development/python-modules/supervise_api { }; From eb0e26101e4bd16f626129d35f04df9d39df54e5 Mon Sep 17 00:00:00 2001 From: Armijn Hemel Date: Fri, 22 Jun 2018 20:31:54 +0200 Subject: [PATCH 027/312] netpbm: update to 10.82.01 --- pkgs/tools/graphics/netpbm/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix index fcd347182ec..05aa7b86636 100644 --- a/pkgs/tools/graphics/netpbm/default.nix +++ b/pkgs/tools/graphics/netpbm/default.nix @@ -5,12 +5,12 @@ stdenv.mkDerivation rec { # Determine version and revision from: # https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced - name = "netpbm-10.77.02"; + name = "netpbm-10.82.01"; src = fetchsvn { url = "https://svn.code.sf.net/p/netpbm/code/advanced"; - rev = 2883; - sha256 = "1lxa5gasmqrwgihkk8ij7vb9kgdw3d5mp25kydkrf6x4wibg1w5f"; + rev = 3264; + sha256 = "17fmyjbxp1l18rma7gb0m8wd9kx2iwhqs8dd6fpalsn2cr8mf8hf"; }; postPatch = /* CVE-2005-2471, from Arch */ '' From d9659c158046701a95176372a352b83018f527cd Mon Sep 17 00:00:00 2001 From: Victor Palma Date: Fri, 22 Jun 2018 13:30:58 -0500 Subject: [PATCH 028/312] font-awesome-5: update to version 5.1.0 --- pkgs/data/fonts/font-awesome-5/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/fonts/font-awesome-5/default.nix b/pkgs/data/fonts/font-awesome-5/default.nix index 6bb175f1eca..77c2ed4d780 100644 --- a/pkgs/data/fonts/font-awesome-5/default.nix +++ b/pkgs/data/fonts/font-awesome-5/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchzip }: let - version = "5.0.6"; + version = "5.1.0"; in fetchzip rec { name = "font-awesome-${version}"; @@ -14,7 +14,7 @@ in fetchzip rec { unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Free-Solid-900.otf" -d $out/share/fonts/opentype ''; - sha256 = "1p7xb8s371r62rx0akcnlkk4mspjid6y0s9h04gakx83ymgjlfg4"; + sha256 = "12m35bk61d8pddhybg2jpl5xv16dclz1qacdmk05m11nzshd3nz1"; meta = with stdenv.lib; { description = "Font Awesome - OTF font"; From 4ea4073c465f4bd821f2c608179f27154a54e576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Netix=20=28Espinet=20Franc=CC=A7ois=29?= Date: Fri, 22 Jun 2018 22:20:57 +0200 Subject: [PATCH 029/312] freeradius : added service to module-list The freeradius service was merged with #34587 but the module was not added to module-list. This commit fixes that and enables the use of services.freeradius in nixos configuration. --- nixos/modules/module-list.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 193ef0d1c96..9114eae97f2 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -486,6 +486,7 @@ ./services/networking/flannel.nix ./services/networking/flashpolicyd.nix ./services/networking/freenet.nix + ./services/networking/freeradius.nix ./services/networking/gale.nix ./services/networking/gateone.nix ./services/networking/gdomap.nix From 28ff1f7565df70785321b56ae72c2985bfae2ffa Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Sat, 23 Jun 2018 09:23:24 -0400 Subject: [PATCH 030/312] =?UTF-8?q?multimc:=200.6.2=20=E2=86=92=20unstable?= =?UTF-8?q?-2018-06-04?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #42387. See also #42351 for information on Qt breakage. --- pkgs/games/multimc/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/games/multimc/default.nix b/pkgs/games/multimc/default.nix index c6697f5806d..a497cf3b13c 100644 --- a/pkgs/games/multimc/default.nix +++ b/pkgs/games/multimc/default.nix @@ -4,12 +4,14 @@ let libpath = with xorg; stdenv.lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ]; in stdenv.mkDerivation rec { name = "multimc-${version}"; - version = "0.6.2"; + # Current release as of 2018-06-23 (v0.6.2) breaks under Qt 5.11—see + # https://github.com/NixOS/nixpkgs/issues/42387 + version = "unstable-2018-06-04"; src = fetchFromGitHub { owner = "MultiMC"; repo = "MultiMC5"; - rev = version; - sha256 = "07jrr6si8nzfqwf073zhgw47y6snib23ad3imh1ik1nn5r7wqy3c"; + rev = "19bb50b872da2702b8e0b65f3f7b6b54c1c5b071"; + sha256 = "01frkk2klm1axr7ywnj23ikxn5pkgj8q6w8vqbslsvmh8bni8rk0"; fetchSubmodules = true; }; nativeBuildInputs = [ cmake file makeWrapper ]; From be47f95083dcb46376041109235840bd584715dd Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Sat, 23 Jun 2018 09:35:59 -0400 Subject: [PATCH 031/312] multimc: create compatibility symlink to fix desktop icon --- pkgs/games/multimc/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/games/multimc/default.nix b/pkgs/games/multimc/default.nix index a497cf3b13c..6be5c9ee247 100644 --- a/pkgs/games/multimc/default.nix +++ b/pkgs/games/multimc/default.nix @@ -24,6 +24,12 @@ in stdenv.mkDerivation rec { cp ../application/resources/multimc/scalable/multimc.svg $out/share/pixmaps cp ../application/package/linux/multimc.desktop $out/share/applications wrapProgram $out/bin/MultiMC --add-flags "-d \$HOME/.multimc/" --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} --prefix PATH : ${jdk}/bin/ + + # As of https://github.com/MultiMC/MultiMC5/blob/7ea1d68244fdae1e7672fb84199ee71e168b31ca/application/package/linux/multimc.desktop, + # the desktop icon refers to `multimc`, but the executable actually gets + # installed as `MultiMC`. Create compatibility symlink to fix the desktop + # icon. + ln -sf $out/bin/MultiMC $out/bin/multimc ''; meta = with stdenv.lib; { From 56670875815ac885f39b3cf246f2287587bd58a7 Mon Sep 17 00:00:00 2001 From: Massimo Redaelli Date: Sat, 23 Jun 2018 17:04:21 +0200 Subject: [PATCH 032/312] epkowa: added Perfection V500 support --- pkgs/misc/drivers/epkowa/default.nix | 31 +++++++++++++++++++ .../drivers/epkowa/firmware_location.patch | 3 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix index 1c79be712b0..e0196701994 100644 --- a/pkgs/misc/drivers/epkowa/default.nix +++ b/pkgs/misc/drivers/epkowa/default.nix @@ -25,6 +25,37 @@ in # adding a plugin for another printer shouldn't be too difficult, but you need the firmware to test... let plugins = { + x770 = stdenv.mkDerivation rec { + name = "iscan-gt-x770-bundle"; + version = "1.0.1"; + pluginVersion = "2.1.2-1"; + + buildInputs = [ patchelf rpm ]; + src = fetchurl { + url = "https://download2.ebz.epson.net/iscan/plugin/gt-x770/rpm/x64/iscan-gt-x770-bundle-${version}.x64.rpm.tar.gz"; + sha256 = "0m9c60rszzdvq1pqfzygzzrjycm1giy465lj29108j7hsnfcv56r"; + }; + installPhase = '' + cd plugins + ${rpm}/bin/rpm2cpio iscan-plugin-gt-x770-${pluginVersion}.x86_64.rpm | ${cpio}/bin/cpio -idmv + mkdir $out + cp -r usr/share $out + cp -r usr/lib64 $out/lib + mv $out/share/iscan $out/share/esci + mv $out/lib/iscan $out/lib/esci + ''; + preFixup = '' + lib=$out/lib/esci/libesint7C.so + rpath=${gcc.cc.lib}/lib/ + patchelf --set-rpath $rpath $lib + ''; + passthru = { + registrationCommand = '' + $registry --add interpreter usb 0x04b8 0x0130 "$plugin/lib/esci/libesint7C $plugin/share/esci/esfw7C.bin" + ''; + hw = "Perfection V500 Photo"; + }; + }; f720 = stdenv.mkDerivation rec { name = "iscan-gt-f720-bundle"; version = "1.0.1"; diff --git a/pkgs/misc/drivers/epkowa/firmware_location.patch b/pkgs/misc/drivers/epkowa/firmware_location.patch index 7f67d9cf457..58ea849d8f9 100644 --- a/pkgs/misc/drivers/epkowa/firmware_location.patch +++ b/pkgs/misc/drivers/epkowa/firmware_location.patch @@ -8,11 +8,12 @@ set this environment variable. Instead, we patch iscan to set this variable before loading libesci-interpreter-gt-f720.so. --- backend/channel-usb.c.orig 2017-08-14 11:24:27.669582456 +0200 +++ backend/channel-usb.c 2017-08-14 11:31:40.509010897 +0200 -@@ -169,6 +169,8 @@ +@@ -169,6 +169,9 @@ { SANE_Status s; + setenv("ESCI_FIRMWARE_DIR", NIX_ESCI_PREFIX, 1); ++ setenv("ISCAN_FW_DIR", NIX_ESCI_PREFIX, 1); + s = sanei_usb_open (self->name, &self->fd); From d8bb4c3ffa9ceb4ba764e217a181f20dd7996b92 Mon Sep 17 00:00:00 2001 From: Kevin Rauscher Date: Sun, 3 Jun 2018 21:35:17 +0200 Subject: [PATCH 033/312] Add myself as maintainer --- maintainers/maintainer-list.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d99ce88d61e..bafb7f8c118 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3906,6 +3906,11 @@ github = "tokudan"; name = "Daniel Frank"; }; + tomahna = { + email = "kevin.rauscher@tomahna.fr"; + github = "Tomahna"; + name = "Kevin Rauscher"; + }; tomberek = { email = "tomberek@gmail.com"; github = "tomberek"; From ead58d100d37fad39a915f1c56f5574c2f06018f Mon Sep 17 00:00:00 2001 From: Kevin Rauscher Date: Sun, 3 Jun 2018 21:48:05 +0200 Subject: [PATCH 034/312] bloop: init at 1.0.0-M11 --- nixos/modules/module-list.nix | 1 + nixos/modules/services/development/bloop.nix | 37 +++++++++++ .../tools/build-managers/bloop/default.nix | 61 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 4 files changed, 101 insertions(+) create mode 100644 nixos/modules/services/development/bloop.nix create mode 100644 pkgs/development/tools/build-managers/bloop/default.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 193ef0d1c96..b88d8c1b324 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -242,6 +242,7 @@ ./services/desktops/gnome3/tracker-miners.nix ./services/desktops/profile-sync-daemon.nix ./services/desktops/telepathy.nix + ./services/development/bloop.nix ./services/development/hoogle.nix ./services/editors/emacs.nix ./services/editors/infinoted.nix diff --git a/nixos/modules/services/development/bloop.nix b/nixos/modules/services/development/bloop.nix new file mode 100644 index 00000000000..56904b7c40e --- /dev/null +++ b/nixos/modules/services/development/bloop.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.bloop; + +in { + + options.services.bloop = { + install = mkOption { + type = types.bool; + default = false; + description = '' + Whether to install a user service for the Bloop server. + + The service must be manually started for each user with + "systemctl --user start bloop". + ''; + }; + }; + + config = mkIf (cfg.install) { + systemd.user.services.bloop = { + description = "Bloop Scala build server"; + + serviceConfig = { + Type = "simple"; + ExecStart = ''${pkgs.bloop}/bin/blp-server''; + Restart = "always"; + }; + }; + + environment.systemPackages = [ pkgs.bloop ]; + }; +} diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix new file mode 100644 index 00000000000..96e9d0f9a43 --- /dev/null +++ b/pkgs/development/tools/build-managers/bloop/default.nix @@ -0,0 +1,61 @@ +{ stdenv, lib, fetchurl, coursier, jdk, jre, python, makeWrapper }: + +let + baseName = "bloop"; + version = "1.0.0-M11"; + deps = stdenv.mkDerivation { + name = "${baseName}-deps-${version}"; + buildCommand = '' + export COURSIER_CACHE=$(pwd) + ${coursier}/bin/coursier fetch ch.epfl.scala:bloop-frontend_2.12:${version} \ + -r "bintray:scalameta/maven" \ + -r "bintray:scalacenter/releases" \ + -r "https://oss.sonatype.org/content/repositories/staging" > deps + mkdir -p $out/share/java + cp $(< deps) $out/share/java/ + ''; + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + outputHash = "00p9mrwcms3skzicyj8frqs0r0a2rfvk5fbh58rk5yvcvkwl4fy1"; + }; +in +stdenv.mkDerivation rec { + name = "${baseName}-${version}"; + nailgunCommit = "60c2d130"; + + buildInputs = [ jdk makeWrapper deps ]; + + phases = [ "installPhase" ]; + + client = fetchurl { + url = "https://raw.githubusercontent.com/scalacenter/nailgun/${nailgunCommit}/pynailgun/ng.py"; + sha256 = "0qjw4nsyb4cxg96jj1yv5c0ivcxvmscxxqfzll5w9p1pjb30bq0n"; + }; + + zshCompletion = fetchurl { + url = "https://raw.githubusercontent.com/scalacenter/bloop/v${version}/etc/zsh/_bloop"; + sha256 = "1id6f1fgy2rk0q5aad6ffivhbxa94fallzsc04l9n0y1s2xdhqpm"; + }; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/zsh/site-functions + + cp ${client} $out/bin/blp-client + cp ${zshCompletion} $out/share/zsh/site-functions/_bloop + chmod +x $out/bin/blp-client + + makeWrapper ${jre}/bin/java $out/bin/blp-server \ + --prefix PATH : ${lib.makeBinPath [ jdk ]} \ + --add-flags "-cp $CLASSPATH bloop.Server" + makeWrapper $out/bin/blp-client $out/bin/bloop \ + --prefix PATH : ${lib.makeBinPath [ python ]} + ''; + + meta = with stdenv.lib; { + homepage = https://scalacenter.github.io/bloop/; + license = licenses.asl20; + description = "Bloop is a Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way."; + maintainers = with maintainers; [ tomahna ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bdf2d83fe3f..03ccb873d77 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7770,6 +7770,8 @@ with pkgs; bloaty = callPackage ../development/tools/bloaty { }; + bloop = callPackage ../development/tools/build-managers/bloop { }; + bossa = callPackage ../development/tools/misc/bossa { wxGTK = wxGTK30; }; From 1f0902ae69289e023d3f8dc108d390499bc75e00 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 10:21:10 -0700 Subject: [PATCH 035/312] spidermonkey_52: 52.8.0 -> 52.8.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/spidermonkey/versions. These checks were done: - built on NixOS - /nix/store/4rnqlff4g9vx7ci5b0a6936h9ffk4l8x-spidermonkey-52.8.1/bin/js52 passed the binary check. - /nix/store/4rnqlff4g9vx7ci5b0a6936h9ffk4l8x-spidermonkey-52.8.1/bin/js52-config passed the binary check. - 2 of 2 passed binary check by having a zero exit code. - 2 of 2 passed binary check by having the new version present in output. - found 52.8.1 with grep in /nix/store/4rnqlff4g9vx7ci5b0a6936h9ffk4l8x-spidermonkey-52.8.1 - directory tree listing: https://gist.github.com/75305a95a88a23a3137429c0c5c0007c - du listing: https://gist.github.com/fe4b93f198ce1088e1e18d002d9cb49a --- pkgs/development/interpreters/spidermonkey/52.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/spidermonkey/52.nix b/pkgs/development/interpreters/spidermonkey/52.nix index 4657a51e48f..2a10caec3af 100644 --- a/pkgs/development/interpreters/spidermonkey/52.nix +++ b/pkgs/development/interpreters/spidermonkey/52.nix @@ -1,13 +1,13 @@ { stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr }: let - version = "52.8.0"; + version = "52.8.1"; in stdenv.mkDerivation rec { name = "spidermonkey-${version}"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; - sha256 = "11v2wwgrb92z08dv9cvk5x2dj3xj25qxzbjqjgiq6mz91bzd9gms"; + sha256 = "0yyg9405y19n22x1gybyl7vp6zglbl5h749rsvgv9bm4x5zlnys8"; }; buildInputs = [ readline icu zlib nspr ]; From 60ed533188ea9e6dc1955aba36d13a3d6d85f94b Mon Sep 17 00:00:00 2001 From: Michishige Kaito Date: Sat, 23 Jun 2018 18:40:29 +0100 Subject: [PATCH 036/312] factorio: 0.16.36 -> 0.16.51 --- pkgs/games/factorio/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix index 2cc63e9ecde..d0ffa10baec 100644 --- a/pkgs/games/factorio/default.nix +++ b/pkgs/games/factorio/default.nix @@ -19,15 +19,15 @@ let binDists = { x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in { alpha = { - stable = bdist { sha256 = "0gxa8wh0py4l1ym57sfq792kfh00khi0f9ykjlmjqqkdksyxgddf"; fetcher = authenticatedFetch; }; - experimental = bdist { sha256 = "1iy3k9zrw3za9mabf89lfl8i20xfij66ih5vngz5xfyy99mwxiy6"; version = "0.16.35"; fetcher = authenticatedFetch; }; + stable = bdist { sha256 = "0b4hbpdcrh5hgip9q5dkmw22p66lcdhnr0kmb0w5dw6yi7fnxxh0"; fetcher = authenticatedFetch; }; + experimental = bdist { sha256 = "1qwfivl5wf0ii8c4prdl4yili23qimsh2cj874r37q3ygpjk3bd3"; version = "0.16.50"; fetcher = authenticatedFetch; }; }; headless = { - stable = bdist { sha256 = "0n2j86af41dkbsyyy5lawjpdd7c0lvfdwxpwbj1m8v470i1g8zq4"; }; - experimental = bdist { sha256 = "0x4miyva1lmiyv3lb4savdlycia1kzw6bri4qj9b2jmyw1dr8x8h"; version = "0.16.35"; }; + stable = bdist { sha256 = "0zrnpg2js0ysvx9y50h3gajldk16mv02dvrwnkazh5kzr1d9zc3c"; }; + experimental = bdist { sha256 = "00691kr85p58qpxf3889p20nrgsvsyspx3c8yd11dkg46wly06z1"; version = "0.16.50"; }; }; demo = { - stable = bdist { sha256 = "1z04rdlcxnfwami0l5nm292w4ydfhr1s6rcl8hxrsa73d4xk5lch"; version = "0.16.36"; }; + stable = bdist { sha256 = "0zf61z8937yd8pyrjrqdjgd0rjl7snwrm3xw86vv7s7p835san6a"; version = "0.16.51"; }; experimental = bdist { }; }; }; @@ -49,7 +49,7 @@ let actual = binDists.${stdenv.system}.${releaseType}.${branch} or (throw "Factorio: unsupported platform"); bdistForArch = arch: { sha256 ? null - , version ? "0.16.36" + , version ? "0.16.51" , fetcher ? fetchurl , nameMut ? x: x }: From 0ac09be2959c7c9c12d799be8d5a19f6132b8464 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sat, 23 Jun 2018 14:07:49 -0500 Subject: [PATCH 037/312] llvm4: unconditionally set triples, not just on musl. Split off from #42454 as requested. --- pkgs/development/compilers/llvm/4/llvm.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix index a371296db32..eb1b3db4023 100644 --- a/pkgs/development/compilers/llvm/4/llvm.nix +++ b/pkgs/development/compilers/llvm/4/llvm.nix @@ -100,6 +100,10 @@ in stdenv.mkDerivation (rec { "-DLLVM_ENABLE_FFI=ON" "-DLLVM_ENABLE_RTTI=ON" "-DCOMPILER_RT_INCLUDE_TESTS=OFF" # FIXME: requires clang source code + + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" ] ++ stdenv.lib.optional enableSharedLibraries "-DLLVM_LINK_LLVM_DYLIB=ON" @@ -115,11 +119,6 @@ in stdenv.mkDerivation (rec { ++ stdenv.lib.optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" "-DCAN_TARGET_i386=false" - ] - ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" ]; postBuild = '' From 6fe8c62c8fb394dc218d5f394302b385221fe7fb Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 12:47:32 -0700 Subject: [PATCH 038/312] lxqt.qtermwidget: 0.8.0 -> 0.9.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/qtermwidget/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 0.9.0 with grep in /nix/store/3xrdwiihv6005a89hg2yz049dwj1yvjk-qtermwidget-0.9.0 - directory tree listing: https://gist.github.com/32846676d9b32d68c711e46efb4b2822 - du listing: https://gist.github.com/08616a507ab3f444a6710fbb666e20dc --- pkgs/desktops/lxqt/core/qtermwidget/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/core/qtermwidget/default.nix b/pkgs/desktops/lxqt/core/qtermwidget/default.nix index f882088d07b..56c42cb2853 100644 --- a/pkgs/desktops/lxqt/core/qtermwidget/default.nix +++ b/pkgs/desktops/lxqt/core/qtermwidget/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "qtermwidget"; - version = "0.8.0"; + version = "0.9.0"; src = fetchFromGitHub { owner = "lxde"; repo = pname; rev = version; - sha256 = "14yjz6b1l2yd7sfsxjv26yg5153fpyq23443kswkgkd9jh32gxj4"; + sha256 = "05gbdjzgmcr3ljs9ba3qvh7a3v6yn6vakwfy8avld9gy5bdd76rg"; }; nativeBuildInputs = [ cmake lxqt.lxqt-build-tools ]; From 771de50389e9d6fee1cb6b2f02b5570fefee017c Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 13:11:44 -0700 Subject: [PATCH 039/312] pony-stable: 0.1.3 -> 0.1.4 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pony-stable/versions. These checks were done: - built on NixOS - /nix/store/lb8ipik1qmjzhjnj04iv92as8k763cpd-pony-stable-0.1.4/bin/stable passed the binary check. - 1 of 1 passed binary check by having a zero exit code. - 0 of 1 passed binary check by having the new version present in output. - found 0.1.4 with grep in /nix/store/lb8ipik1qmjzhjnj04iv92as8k763cpd-pony-stable-0.1.4 - directory tree listing: https://gist.github.com/3550bd75a6690902598b047ba7dba1a9 - du listing: https://gist.github.com/3f202ed132af36d390ed59ab7da008a6 --- pkgs/development/compilers/ponyc/pony-stable.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/ponyc/pony-stable.nix b/pkgs/development/compilers/ponyc/pony-stable.nix index 6a0965360f6..f27147d9743 100644 --- a/pkgs/development/compilers/ponyc/pony-stable.nix +++ b/pkgs/development/compilers/ponyc/pony-stable.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "pony-stable-${version}"; - version = "0.1.3"; + version = "0.1.4"; src = fetchFromGitHub { owner = "ponylang"; repo = "pony-stable"; rev = version; - sha256 = "0dnj9d35fa0iaka2lsc7cvn9d2qbasknn1c3gbxdyc9drf9vv6kf"; + sha256 = "18ncxdk37r9sp2wnrgqj29nvqljqq9m154pkdv8b6b5k9knpradx"; }; buildInputs = [ ponyc ]; From 732b9d9943bf304682ac564618146284e68846db Mon Sep 17 00:00:00 2001 From: ajs124 Date: Fri, 22 Jun 2018 18:34:07 +0200 Subject: [PATCH 040/312] nbd: 3.14 -> 3.17 remove deprecated patch --- pkgs/tools/networking/nbd/default.nix | 6 ++---- .../nbd/dont-run-make-in-broken-systemd-subdir.patch | 12 ------------ 2 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 pkgs/tools/networking/nbd/dont-run-make-in-broken-systemd-subdir.patch diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix index bbd003a6256..6b6d99e745e 100644 --- a/pkgs/tools/networking/nbd/default.nix +++ b/pkgs/tools/networking/nbd/default.nix @@ -1,15 +1,13 @@ { stdenv, fetchurl, pkgconfig, glib }: stdenv.mkDerivation rec { - name = "nbd-3.14"; + name = "nbd-3.17"; src = fetchurl { url = "mirror://sourceforge/nbd/${name}.tar.xz"; - sha256 = "0cc6wznvkgjv0fxsj3diy92qfsjrsw92m7yq13f044qarh726gad"; + sha256 = "12fil2hb3gkxslr3nl9kak93n4iyhfs3zdwrmx9vjcxblfqnnp6r"; }; - patches = [ ./dont-run-make-in-broken-systemd-subdir.patch ]; - buildInputs = [ pkgconfig glib ] ++ stdenv.lib.optional (stdenv ? glibc) stdenv.glibc.linuxHeaders; diff --git a/pkgs/tools/networking/nbd/dont-run-make-in-broken-systemd-subdir.patch b/pkgs/tools/networking/nbd/dont-run-make-in-broken-systemd-subdir.patch deleted file mode 100644 index ad0a7a6f66d..00000000000 --- a/pkgs/tools/networking/nbd/dont-run-make-in-broken-systemd-subdir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ubr nbd-3.14-orig/Makefile.in nbd-3.14-new/Makefile.in ---- nbd-3.14-orig/Makefile.in 2016-09-19 15:37:30.904176475 +0200 -+++ nbd-3.14-new/Makefile.in 2016-09-19 15:39:43.813543062 +0200 -@@ -403,7 +403,7 @@ - top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ --SUBDIRS = . man doc tests systemd gznbd -+SUBDIRS = . man doc tests gznbd - sbin_PROGRAMS = @NBD_CLIENT_NAME@ - noinst_LTLIBRARIES = libnbdsrv.la libcliserv.la - libcliserv_la_SOURCES = cliserv.h cliserv.c From 0e3d6154ae876e9b47673352af802993db8a350e Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 13:48:46 -0700 Subject: [PATCH 041/312] osinfo-db-tools: 1.1.0 -> 1.2.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/osinfo-db-tools/versions. These checks were done: - built on NixOS - /nix/store/m0gzbmf3n18xip9y64iwqmy7a0yfa51j-osinfo-db-tools-1.2.0/bin/osinfo-db-validate passed the binary check. - /nix/store/m0gzbmf3n18xip9y64iwqmy7a0yfa51j-osinfo-db-tools-1.2.0/bin/osinfo-db-import passed the binary check. - /nix/store/m0gzbmf3n18xip9y64iwqmy7a0yfa51j-osinfo-db-tools-1.2.0/bin/osinfo-db-export passed the binary check. - /nix/store/m0gzbmf3n18xip9y64iwqmy7a0yfa51j-osinfo-db-tools-1.2.0/bin/osinfo-db-path passed the binary check. - 4 of 4 passed binary check by having a zero exit code. - 0 of 4 passed binary check by having the new version present in output. - found 1.2.0 with grep in /nix/store/m0gzbmf3n18xip9y64iwqmy7a0yfa51j-osinfo-db-tools-1.2.0 - directory tree listing: https://gist.github.com/9181decaf4161cfbaa99ab2b20bb161a - du listing: https://gist.github.com/bbf02890ab226a162c6cbc90e54f0f4f --- pkgs/tools/misc/osinfo-db-tools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/osinfo-db-tools/default.nix b/pkgs/tools/misc/osinfo-db-tools/default.nix index 3464a92fa11..10aa5d1ae99 100644 --- a/pkgs/tools/misc/osinfo-db-tools/default.nix +++ b/pkgs/tools/misc/osinfo-db-tools/default.nix @@ -3,11 +3,11 @@ }: stdenv.mkDerivation rec { - name = "osinfo-db-tools-1.1.0"; + name = "osinfo-db-tools-1.2.0"; src = fetchurl { url = "https://releases.pagure.org/libosinfo/${name}.tar.gz"; - sha256 = "0sslzrbhpb2js1vn48c11s5p0bic3yqzdnxm054dhc3wq0pwshd1"; + sha256 = "07zqbwsmdgnzqah2smm4zri04c0qm82z1jn8kzz1bnsqbfg84l1v"; }; nativeBuildInputs = [ pkgconfig intltool ]; From c5e90a929295ed937e1b2d60e26bd002ca84e2a0 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Sat, 23 Jun 2018 16:53:38 -0500 Subject: [PATCH 042/312] llvm_{38,39}: unconditionally set triples, not just w/musl Follow-on to same changes made to other versions: See #42454, #42456. --- pkgs/development/compilers/llvm/3.8/llvm.nix | 4 ++++ pkgs/development/compilers/llvm/3.9/llvm.nix | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/llvm/3.8/llvm.nix b/pkgs/development/compilers/llvm/3.8/llvm.nix index b847a67e7e3..835a5008ef5 100644 --- a/pkgs/development/compilers/llvm/3.8/llvm.nix +++ b/pkgs/development/compilers/llvm/3.8/llvm.nix @@ -78,6 +78,10 @@ in stdenv.mkDerivation rec { "-DLLVM_BUILD_TESTS=ON" "-DLLVM_ENABLE_FFI=ON" "-DLLVM_ENABLE_RTTI=ON" + + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" ] ++ stdenv.lib.optional enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ] ++ stdenv.lib.optional (!isDarwin) diff --git a/pkgs/development/compilers/llvm/3.9/llvm.nix b/pkgs/development/compilers/llvm/3.9/llvm.nix index 708e471bd4a..458ad7db8ef 100644 --- a/pkgs/development/compilers/llvm/3.9/llvm.nix +++ b/pkgs/development/compilers/llvm/3.9/llvm.nix @@ -122,6 +122,10 @@ in stdenv.mkDerivation rec { "-DLLVM_ENABLE_FFI=ON" "-DLLVM_ENABLE_RTTI=ON" "-DCOMPILER_RT_INCLUDE_TESTS=OFF" # FIXME: requires clang source code + + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" ] ++ stdenv.lib.optional enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ] ++ stdenv.lib.optional (!isDarwin) @@ -133,9 +137,6 @@ in stdenv.mkDerivation rec { "-DCMAKE_CROSSCOMPILING=True" "-DLLVM_TABLEGEN=${buildPackages.llvmPackages_39.llvm}/bin/llvm-tblgen" ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" # Not yet supported "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" From b9137d6bce397e6b6f88367abdc60705409fd670 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 18:48:17 -0700 Subject: [PATCH 043/312] openlibm: 0.5.5 -> 0.6.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/openlibm/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 0.6.0 with grep in /nix/store/crnh2jiksr0b3sq5v6fc9x7zrrsjgirg-openlibm-0.6.0 - directory tree listing: https://gist.github.com/c287196625881e2d6c72af761704718e - du listing: https://gist.github.com/ac9a45900fb2ba4ff48120c343677dec --- pkgs/development/libraries/science/math/openlibm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/science/math/openlibm/default.nix b/pkgs/development/libraries/science/math/openlibm/default.nix index 195b90c86e1..3e8524b4014 100644 --- a/pkgs/development/libraries/science/math/openlibm/default.nix +++ b/pkgs/development/libraries/science/math/openlibm/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { name = "openlibm-${version}"; - version = "0.5.5"; + version = "0.6.0"; src = fetchurl { url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz"; - sha256 = "1z8cj5q8ca8kmrakwkpjxf8svi81waw0c568cx8v8pv9kvswbp07"; + sha256 = "0a5fpm8nra5ldhjk0cqd2rx1qh32wiarkxmcqcm5xl8z7l4kjm6l"; }; makeFlags = [ "prefix=$(out)" ]; From 7c0afcd7c4b8b41bd51f5bb83b526b90a8e2156c Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 19:43:11 -0700 Subject: [PATCH 044/312] lxqt.obconf-qt: 0.12.0 -> 0.13.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/obconf-qt/versions. These checks were done: - built on NixOS - Warning: no invocation of /nix/store/8sixxrkxdsqd1x37m32jlraa3193ahl6-obconf-qt-0.13.0/bin/obconf-qt had a zero exit code or showed the expected version - 0 of 1 passed binary check by having a zero exit code. - 0 of 1 passed binary check by having the new version present in output. - found 0.13.0 with grep in /nix/store/8sixxrkxdsqd1x37m32jlraa3193ahl6-obconf-qt-0.13.0 - directory tree listing: https://gist.github.com/db1190dab0d515449974bf0da5486e41 - du listing: https://gist.github.com/8ad4a03d3203c3dd52b7172d3e5432d6 --- pkgs/desktops/lxqt/optional/obconf-qt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/optional/obconf-qt/default.nix b/pkgs/desktops/lxqt/optional/obconf-qt/default.nix index c40b9c4e9f9..cd3b91f4cbd 100644 --- a/pkgs/desktops/lxqt/optional/obconf-qt/default.nix +++ b/pkgs/desktops/lxqt/optional/obconf-qt/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "obconf-qt"; - version = "0.12.0"; + version = "0.13.0"; src = fetchFromGitHub { owner = "lxde"; repo = pname; rev = version; - sha256 = "1vwza1516z7f18s5vfnhzsiyxs6afb1hgr3yqkr7qhplmq5wjma5"; + sha256 = "0mixf35p7b563f77vnikk9b1wqhbdawp723sd30rfql76gkjwjcn"; }; nativeBuildInputs = [ From 66ae89bf95ce61925d9f55dd2855751983d808ef Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 19:58:16 -0700 Subject: [PATCH 045/312] nagios: 4.3.4 -> 4.4.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/nagios/versions. These checks were done: - built on NixOS - /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/nagios passed the binary check. - /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/nagiostats passed the binary check. - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/archivejson.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/avail.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/cmd.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/config.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/extinfo.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/histogram.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/history.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/notifications.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/objectjson.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/outages.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/showlog.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/status.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/statusjson.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/statusmap.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/statuswml.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/statuswrl.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/summary.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/tac.cgi had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0/bin/trends.cgi had a zero exit code or showed the expected version - 2 of 21 passed binary check by having a zero exit code. - 0 of 21 passed binary check by having the new version present in output. - found 4.4.0 with grep in /nix/store/z91fmra6ni1yq0dk5v109m06lw0yxf87-nagios-4.4.0 - directory tree listing: https://gist.github.com/8dd6e454a51a3faf0756a68239207b0c - du listing: https://gist.github.com/3a2aa37f2b390790b9578447b099cc88 --- pkgs/servers/monitoring/nagios/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/monitoring/nagios/default.nix b/pkgs/servers/monitoring/nagios/default.nix index 47bc6d58da9..6191d667bbe 100644 --- a/pkgs/servers/monitoring/nagios/default.nix +++ b/pkgs/servers/monitoring/nagios/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "nagios-${version}"; - version = "4.3.4"; + version = "4.4.0"; src = fetchurl { url = "mirror://sourceforge/nagios/nagios-4.x/${name}/${name}.tar.gz"; - sha256 = "1wa4m952sb23dqi5w759adimsp21bkhp598rpq9dnhz3v497h2y9"; + sha256 = "1ldpyk7jxarp52m5vhmrgrgic251ypfzb91hilc0gbmcq9b0l5k6"; }; patches = [ ./nagios.patch ]; From dc24ee429a4b2340ca6cc85d19d9be1f81d8f56d Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 20:37:13 -0700 Subject: [PATCH 046/312] lxqt.lxqt-l10n: 0.12.0 -> 0.13.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/lxqt-l10n/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - directory tree listing: https://gist.github.com/583bf7b46d9b7d60406ab44e9f06eb42 - du listing: https://gist.github.com/26da5523d884e68e9a772af08be299cf --- pkgs/desktops/lxqt/core/lxqt-l10n/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/core/lxqt-l10n/default.nix b/pkgs/desktops/lxqt/core/lxqt-l10n/default.nix index 10b767aedac..8324cdc3dff 100644 --- a/pkgs/desktops/lxqt/core/lxqt-l10n/default.nix +++ b/pkgs/desktops/lxqt/core/lxqt-l10n/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "lxqt-l10n-${version}"; - version = "0.12.0"; + version = "0.13.0"; src = fetchFromGitHub { owner = "lxde"; repo = "lxqt-l10n"; rev = version; - sha256 = "025zg5y9f286p74rab4yxyz4cqlh4hqjq43xxpi76ma2fy2s03a4"; + sha256 = "0q1hzj6sa4wc8sgqqqsqfldjpnvihacfq73agvc2li3q6qi5rr0k"; }; nativeBuildInputs = [ From 81ea1d58d1928c2512fdc2cda241dca7022d6da8 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 20:41:31 -0700 Subject: [PATCH 047/312] lxqt.libsysstat: 0.4.0 -> 0.4.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libsysstat/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 0.4.1 with grep in /nix/store/n6dins6prgmhp4jb1x7iih366ln6bygb-libsysstat-0.4.1 - directory tree listing: https://gist.github.com/e91bc96d4c04d612f32bde806fdb822a - du listing: https://gist.github.com/55928df59585ba9de34d7ac2e1e0cc50 --- pkgs/desktops/lxqt/base/libsysstat/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/base/libsysstat/default.nix b/pkgs/desktops/lxqt/base/libsysstat/default.nix index b5013f5ac1a..409afe6d772 100644 --- a/pkgs/desktops/lxqt/base/libsysstat/default.nix +++ b/pkgs/desktops/lxqt/base/libsysstat/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "libsysstat-${version}"; - version = "0.4.0"; + version = "0.4.1"; src = fetchFromGitHub { owner = "lxde"; repo = "libsysstat"; rev = version; - sha256 = "0yl20dj553z1ijkfxl9n45qvkzxyl9rqw12vb4v6zj3ch6hzbzsx"; + sha256 = "0ad5pcr5lq1hvrfijvddvz2fvsmh1phb54wb0f756av0kyiwq0gb"; }; nativeBuildInputs = [ cmake lxqt.lxqt-build-tools ]; From 6ac2ab2f3212a7f2d5be18c6ead2e0c6cadc7c52 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 20:54:14 -0700 Subject: [PATCH 048/312] lxqt.lxqt-themes: 0.12.0 -> 0.13.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/lxqt-themes/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 0.13.0 with grep in /nix/store/fs36lbzyd10wzif3mk70hwjqwin8bv7f-lxqt-themes-0.13.0 - directory tree listing: https://gist.github.com/ba1226aef8f1c4dfc1ae26d7a55031f3 - du listing: https://gist.github.com/99abafab17751529577df2cd7d2a12d9 --- pkgs/desktops/lxqt/core/lxqt-themes/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/core/lxqt-themes/default.nix b/pkgs/desktops/lxqt/core/lxqt-themes/default.nix index 6251667430b..5f996c78643 100644 --- a/pkgs/desktops/lxqt/core/lxqt-themes/default.nix +++ b/pkgs/desktops/lxqt/core/lxqt-themes/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "lxqt-themes"; - version = "0.12.0"; + version = "0.13.0"; src = fetchFromGitHub { owner = "lxde"; repo = pname; rev = version; - sha256 = "0f7bipkxkl741lpb2cziw9wlqy05514nqqrppsz5g4y8bmzw910n"; + sha256 = "026hbblxdbq48n9691b1z1xiak99khsk3wf09vn4iaj5zi7dwhw5"; }; nativeBuildInputs = [ From e9b71faf3d2fe767059d71596837265b2d7f4c3f Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 21:15:24 -0700 Subject: [PATCH 049/312] mate.mate-sensors-applet: 1.20.1 -> 1.20.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/mate-sensors-applet/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 1.20.2 with grep in /nix/store/57vzc483bg7wbf8kx7xacsfyd2pa7d81-mate-sensors-applet-1.20.2 - directory tree listing: https://gist.github.com/b87e08ecd1269611cfc12caee03ec0a8 - du listing: https://gist.github.com/7ea36f0bc246d7aa8601097266a844c2 --- pkgs/desktops/mate/mate-sensors-applet/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/mate/mate-sensors-applet/default.nix b/pkgs/desktops/mate/mate-sensors-applet/default.nix index d82cd4b073a..b108a20d5f0 100644 --- a/pkgs/desktops/mate/mate-sensors-applet/default.nix +++ b/pkgs/desktops/mate/mate-sensors-applet/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "mate-sensors-applet-${version}"; - version = "1.20.1"; + version = "1.20.2"; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz"; - sha256 = "0lnr3jjq30zw1i2rv5n69dhsa3x39lc91xcgbj4vyj1rxj9ff05x"; + sha256 = "0khxzwjjf2gp9ma6ji0ynvvqlw6hhr8j4gff9klkrn60xbg5h16b"; }; nativeBuildInputs = [ From 3d2c33ba897352228de6691d1ec9988759db65e5 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 21:19:16 -0700 Subject: [PATCH 050/312] mate.mate-system-monitor: 1.20.0 -> 1.20.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/mate-system-monitor/versions. These checks were done: - built on NixOS - /nix/store/x5i2inxsxs4jcjqhsn3mv94lsdxmr3g7-mate-system-monitor-1.20.1/bin/mate-system-monitor passed the binary check. - /nix/store/x5i2inxsxs4jcjqhsn3mv94lsdxmr3g7-mate-system-monitor-1.20.1/bin/.mate-system-monitor-wrapped passed the binary check. - 2 of 2 passed binary check by having a zero exit code. - 0 of 2 passed binary check by having the new version present in output. - found 1.20.1 with grep in /nix/store/x5i2inxsxs4jcjqhsn3mv94lsdxmr3g7-mate-system-monitor-1.20.1 - directory tree listing: https://gist.github.com/a4cdb9b1bfcf5b27047a4f9635faa789 - du listing: https://gist.github.com/1a05da069ac7049838de573c089699de --- pkgs/desktops/mate/mate-system-monitor/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/mate/mate-system-monitor/default.nix b/pkgs/desktops/mate/mate-system-monitor/default.nix index 8c67044a422..0dc21f27673 100644 --- a/pkgs/desktops/mate/mate-system-monitor/default.nix +++ b/pkgs/desktops/mate/mate-system-monitor/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "mate-system-monitor-${version}"; - version = "1.20.0"; + version = "1.20.1"; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz"; - sha256 = "059aryj0gz4sic719nsmckhkjl4yhqxmyplvh78clf5khh4apwn5"; + sha256 = "1a68il7pbch5028fm2caxyjkfrdc6ixhqnaspbwfziw6y8p9bscn"; }; nativeBuildInputs = [ From e52ac55e9ca9487319e97f98d529bfbe4562bd97 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 21:34:02 -0700 Subject: [PATCH 051/312] jackett: 0.8.1070 -> 0.8.1138 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/jackett/versions. These checks were done: - built on NixOS - /nix/store/qrcg5rrhydf0622l7s9m8n87x2w2az2j-jackett-0.8.1138/bin/Jackett passed the binary check. - 1 of 1 passed binary check by having a zero exit code. - 0 of 1 passed binary check by having the new version present in output. - found 0.8.1138 with grep in /nix/store/qrcg5rrhydf0622l7s9m8n87x2w2az2j-jackett-0.8.1138 - directory tree listing: https://gist.github.com/59f09486090429273b9aa0822ca9440e - du listing: https://gist.github.com/d25094cef4e9313932610108d54d6128 --- pkgs/servers/jackett/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix index 2190ae1afa2..f2ed31072ee 100644 --- a/pkgs/servers/jackett/default.nix +++ b/pkgs/servers/jackett/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "jackett-${version}"; - version = "0.8.1070"; + version = "0.8.1138"; src = fetchurl { url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz"; - sha256 = "1xdmf1nvs1y8jhivmc0sw8cip925xrj8hg66z0awcymri6qnp6s9"; + sha256 = "0f6n6n2cxbw1gj905kilifsxid4nskk849hzafl6lqxk5nz4fs18"; }; buildInputs = [ makeWrapper ]; From b3663555d8f55a5c55be12f0c2661836046b85c4 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 22:02:07 -0700 Subject: [PATCH 052/312] lxqt.libfm-qt: 0.12.0 -> 0.13.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libfm-qt/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 0.13.1 with grep in /nix/store/j3k46ff4i767vxiajc1dy41fd5smdqid-libfm-qt-0.13.1 - directory tree listing: https://gist.github.com/f8d05638960a752c27ada529e3d8922e - du listing: https://gist.github.com/9a3529479e5f3453a388a2bdadff58aa --- pkgs/desktops/lxqt/core/libfm-qt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/core/libfm-qt/default.nix b/pkgs/desktops/lxqt/core/libfm-qt/default.nix index 612fbeafe19..f3a50814d63 100644 --- a/pkgs/desktops/lxqt/core/libfm-qt/default.nix +++ b/pkgs/desktops/lxqt/core/libfm-qt/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "libfm-qt"; - version = "0.12.0"; + version = "0.13.1"; src = fetchFromGitHub { owner = "lxde"; repo = pname; rev = version; - sha256 = "0932yl098pc5rwgy9irrc3ys47jx64m3wm702dvs8yy15alv6x4i"; + sha256 = "1g8j1lw74qvagqhqsx45b290fjwh3jfl3i0366m0w4la03v0rw5j"; }; nativeBuildInputs = [ From a7b3c2eeade955febdd0dcffd1f0773aa2413dc4 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 22:08:34 -0700 Subject: [PATCH 053/312] leatherman: 1.4.1 -> 1.4.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/leatherman/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 1.4.2 with grep in /nix/store/r5pgnnj5j1n4p59xa4zr2nm4pjbwcwhq-leatherman-1.4.2 - directory tree listing: https://gist.github.com/c901957b585910ac947b083d026a7598 - du listing: https://gist.github.com/77c6bc02640505c537f0bd7cd13c79a6 --- pkgs/development/libraries/leatherman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix index 7b6834166d8..a269069fb04 100644 --- a/pkgs/development/libraries/leatherman/default.nix +++ b/pkgs/development/libraries/leatherman/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { name = "leatherman-${version}"; - version = "1.4.1"; + version = "1.4.2"; src = fetchFromGitHub { - sha256 = "0n516gqv501ymj99bickbr2cbhr109azh9hc1hn7flbcjzz3aljc"; + sha256 = "0lhdncwg2xbd3gy65rx8w2qcxvcwfirzkl762zdwqxf6bj6p2hvb"; rev = version; repo = "leatherman"; owner = "puppetlabs"; From f8bd92be32f13056e91ead20010f20b48bbd9690 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 23:47:00 -0700 Subject: [PATCH 054/312] guake: 3.2.2 -> 3.3.0 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/guake/versions. These checks were done: - built on NixOS - /nix/store/69i8y52xjknpcnijqhw1gq8c7r5fj1yb-guake-3.3.0/bin/guake passed the binary check. - /nix/store/69i8y52xjknpcnijqhw1gq8c7r5fj1yb-guake-3.3.0/bin/guake-toggle passed the binary check. - /nix/store/69i8y52xjknpcnijqhw1gq8c7r5fj1yb-guake-3.3.0/bin/..guake-wrapped-wrapped passed the binary check. - /nix/store/69i8y52xjknpcnijqhw1gq8c7r5fj1yb-guake-3.3.0/bin/.guake-wrapped passed the binary check. - /nix/store/69i8y52xjknpcnijqhw1gq8c7r5fj1yb-guake-3.3.0/bin/..guake-toggle-wrapped-wrapped passed the binary check. - /nix/store/69i8y52xjknpcnijqhw1gq8c7r5fj1yb-guake-3.3.0/bin/.guake-toggle-wrapped passed the binary check. - 6 of 6 passed binary check by having a zero exit code. - 0 of 6 passed binary check by having the new version present in output. - found 3.3.0 with grep in /nix/store/69i8y52xjknpcnijqhw1gq8c7r5fj1yb-guake-3.3.0 - directory tree listing: https://gist.github.com/08e53f1dab9dd720370787fafe8d0c02 - du listing: https://gist.github.com/aeb429d5b911c7b6b6ffdf25824eb7bd --- pkgs/applications/misc/guake/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/guake/default.nix b/pkgs/applications/misc/guake/default.nix index dc9b0c29aa1..57dc68263ac 100644 --- a/pkgs/applications/misc/guake/default.nix +++ b/pkgs/applications/misc/guake/default.nix @@ -2,7 +2,7 @@ , gtk3, keybinder3, libnotify, libutempter, vte }: let - version = "3.2.2"; + version = "3.3.0"; in python3.pkgs.buildPythonApplication rec { name = "guake-${version}"; format = "other"; @@ -11,7 +11,7 @@ in python3.pkgs.buildPythonApplication rec { owner = "Guake"; repo = "guake"; rev = version; - sha256 = "1wx8vghn0h52xryyn6cf9z1lbwsk766lhff162szbaxlxyl6xsc0"; + sha256 = "1wckzz18rpgacnkynh4rknhhki52agd76i2p80kk9rlrdifqs788"; }; nativeBuildInputs = [ gettext gobjectIntrospection wrapGAppsHook python3.pkgs.pip glibcLocales ]; From 6cf87da34eb9f5adb1698f15813abb4b1d05841d Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 23:52:19 -0700 Subject: [PATCH 055/312] guitarix: 0.37.0 -> 0.37.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/guitarix/versions. These checks were done: - built on NixOS - /nix/store/75d02i1k7n87j0qb3sd10kxf4v70sdsc-guitarix-0.37.1/bin/guitarix passed the binary check. - /nix/store/75d02i1k7n87j0qb3sd10kxf4v70sdsc-guitarix-0.37.1/bin/.guitarix-wrapped passed the binary check. - 2 of 2 passed binary check by having a zero exit code. - 0 of 2 passed binary check by having the new version present in output. - found 0.37.1 with grep in /nix/store/75d02i1k7n87j0qb3sd10kxf4v70sdsc-guitarix-0.37.1 - directory tree listing: https://gist.github.com/85b2e7786143f42e961c06cbde8de90b - du listing: https://gist.github.com/6ef7508c8fd678e37bed9c76a4e00f34 --- pkgs/applications/audio/guitarix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix index 62bc2fa6f36..5c34293e7f9 100644 --- a/pkgs/applications/audio/guitarix/default.nix +++ b/pkgs/applications/audio/guitarix/default.nix @@ -12,11 +12,11 @@ in stdenv.mkDerivation rec { name = "guitarix-${version}"; - version = "0.37.0"; + version = "0.37.1"; src = fetchurl { url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz"; - sha256 = "17dsd32yd92l7xq1x0b8jsws5yif2pk4zbfjbc560hgarym6r8x6"; + sha256 = "064k0jzxqgx9gwf8za6jziansabzrwzjaim3qx1743ify5g3gaai"; }; nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ]; From e395ba077700f8575e4ad32ae4b2a22340b77fcf Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 24 Jun 2018 00:04:14 -0700 Subject: [PATCH 056/312] fwts: 18.05.00 -> 18.06.02 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/fwts/versions. These checks were done: - built on NixOS - /nix/store/bs0xv1vsc6zf0cylv6j8iidiwcg9zqx9-fwts-18.06.02/bin/fwts passed the binary check. - Warning: no invocation of /nix/store/bs0xv1vsc6zf0cylv6j8iidiwcg9zqx9-fwts-18.06.02/bin/kernelscan had a zero exit code or showed the expected version - 1 of 2 passed binary check by having a zero exit code. - 0 of 2 passed binary check by having the new version present in output. - found 18.06.02 with grep in /nix/store/bs0xv1vsc6zf0cylv6j8iidiwcg9zqx9-fwts-18.06.02 - directory tree listing: https://gist.github.com/c871651eb151d0cf25aa751e4e925e27 - du listing: https://gist.github.com/a7b8160c0b4fbc5ed2fa237004865949 --- pkgs/os-specific/linux/fwts/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/fwts/default.nix b/pkgs/os-specific/linux/fwts/default.nix index a3d8d0a0eec..40d6967c66f 100644 --- a/pkgs/os-specific/linux/fwts/default.nix +++ b/pkgs/os-specific/linux/fwts/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "fwts-${version}"; - version = "18.05.00"; + version = "18.06.02"; src = fetchzip { url = "http://fwts.ubuntu.com/release/fwts-V${version}.tar.gz"; - sha256 = "0ixc82zdv4cfj8g2mwd851fc47cpjj81mwjhn00n5wddb9cxmgkj"; + sha256 = "1j7yn3qyy9baylhjvr9j8hiyl1nc7la1j4fffvxk8qvxakwxbyl2"; stripRoot = false; }; From 51c00872d3a7937817cdcd8ddd733ccc576008ab Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 24 Jun 2018 00:26:34 -0700 Subject: [PATCH 057/312] folly: 2018.06.11.00 -> 2018.06.18.00 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/folly/versions. These checks were done: - built on NixOS - 0 of 0 passed binary check by having a zero exit code. - 0 of 0 passed binary check by having the new version present in output. - found 2018.06.18.00 with grep in /nix/store/cbijzsfm1ik0hmblhsg9q8krwq0gs69r-folly-2018.06.18.00 - directory tree listing: https://gist.github.com/d36711520cd03c3b19d6a9f3bc3dc523 - du listing: https://gist.github.com/d83b87211ca6b6a6a538eccba6783c66 --- pkgs/development/libraries/folly/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix index 5dd96c22584..97ad0c08ad9 100644 --- a/pkgs/development/libraries/folly/default.nix +++ b/pkgs/development/libraries/folly/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "folly-${version}"; - version = "2018.06.11.00"; + version = "2018.06.18.00"; src = fetchFromGitHub { owner = "facebook"; repo = "folly"; rev = "v${version}"; - sha256 = "005p2i36vxy2nppxqhdd4a5x58yx7zljb2diyqb820jygz2hfz8a"; + sha256 = "0698wazz99wzfbz29jgkl4rlakypg3v2cnsjg9a0yq83a4y038p7"; }; nativeBuildInputs = [ autoreconfHook python pkgconfig ]; From e48aac54fd159a91ecf732f090921b8346360c28 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 24 Jun 2018 01:25:55 -0700 Subject: [PATCH 058/312] flyway: 5.1.1 -> 5.1.3 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/flyway/versions. These checks were done: - built on NixOS - /nix/store/iw4rl4pi38wjywnvw123qbr3y2nvq2b3-flyway-5.1.3/bin/flyway passed the binary check. - 1 of 1 passed binary check by having a zero exit code. - 0 of 1 passed binary check by having the new version present in output. - found 5.1.3 with grep in /nix/store/iw4rl4pi38wjywnvw123qbr3y2nvq2b3-flyway-5.1.3 - directory tree listing: https://gist.github.com/106acf9a49f47aca074952bf0cc79dc7 - du listing: https://gist.github.com/51bdf3dc1d3334b3be4b67b14ea31955 --- pkgs/development/tools/flyway/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/flyway/default.nix b/pkgs/development/tools/flyway/default.nix index 924dde91acc..86636635334 100644 --- a/pkgs/development/tools/flyway/default.nix +++ b/pkgs/development/tools/flyway/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, jre_headless, makeWrapper }: let - version = "5.1.1"; + version = "5.1.3"; in stdenv.mkDerivation { name = "flyway-${version}"; src = fetchurl { - url = "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/5.1.1/flyway-commandline-${version}.tar.gz"; - sha256 = "0kdi7m5rwlik0d2rn9s3siqmc83xfkhhsdxw3g7r1mvk2ivscb7f"; + url = "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/5.1.3/flyway-commandline-${version}.tar.gz"; + sha256 = "08nrjrpcb56f2mhghgjbvl7bfzvlgc81ykxzghq3kpslx5d560lm"; }; buildInputs = [ makeWrapper ]; dontBuild = true; From 8cbc9fd8dafea35cb6dfec24dcf90a6360a0c619 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 24 Jun 2018 01:30:52 -0700 Subject: [PATCH 059/312] docker_compose: 1.20.1 -> 1.21.2 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/docker-compose/versions. These checks were done: - built on NixOS - /nix/store/z6xj749vplzm2x4hv93l34b41cb049kb-docker-compose-1.21.2/bin/.docker-compose-wrapped passed the binary check. - /nix/store/z6xj749vplzm2x4hv93l34b41cb049kb-docker-compose-1.21.2/bin/docker-compose passed the binary check. - 2 of 2 passed binary check by having a zero exit code. - 0 of 2 passed binary check by having the new version present in output. - found 1.21.2 with grep in /nix/store/z6xj749vplzm2x4hv93l34b41cb049kb-docker-compose-1.21.2 - directory tree listing: https://gist.github.com/6a7d68b839f5f57301d1c477e48ce88c - du listing: https://gist.github.com/d1fd19f768c67e0cc36e885228ca138a --- pkgs/development/python-modules/docker_compose/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/docker_compose/default.nix b/pkgs/development/python-modules/docker_compose/default.nix index a739c341b62..80a3a6d949c 100644 --- a/pkgs/development/python-modules/docker_compose/default.nix +++ b/pkgs/development/python-modules/docker_compose/default.nix @@ -6,12 +6,12 @@ , enum34, functools32, }: buildPythonApplication rec { - version = "1.20.1"; + version = "1.21.2"; pname = "docker-compose"; src = fetchPypi { inherit pname version; - sha256 = "34c043ebd4c23e4b864812c16b41dad25cec6b675557b180ced52d372e1a9e66"; + sha256 = "0b0wihlyk89y6n0mly2vbljzqai1hhs6yzplskwdah2lfn9p3c38"; }; # lots of networking and other fails From 9645c867a36c6803b17bcfaa965f20273498f13c Mon Sep 17 00:00:00 2001 From: dukzcry Date: Sun, 24 Jun 2018 11:49:08 +0300 Subject: [PATCH 060/312] nvidia-x11: pass kernel.modDirVersion --- pkgs/os-specific/linux/nvidia-x11/builder.sh | 1 - pkgs/os-specific/linux/nvidia-x11/generic.nix | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh index cd7733f43a4..15c3e10e119 100755 --- a/pkgs/os-specific/linux/nvidia-x11/builder.sh +++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh @@ -17,7 +17,6 @@ buildPhase() { # Create the module. echo "Building linux driver against kernel: $kernel"; cd kernel - kernelVersion=$(cd $kernel/lib/modules && ls) sysSrc=$(echo $kernel/lib/modules/$kernelVersion/source) sysOut=$(echo $kernel/lib/modules/$kernelVersion/build) unset src # used by the nv makefile diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix index 13e5d1b76ea..0fe0f3d92c9 100644 --- a/pkgs/os-specific/linux/nvidia-x11/generic.nix +++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix @@ -55,6 +55,7 @@ let outputDev = if libsOnly then null else "bin"; kernel = if libsOnly then null else kernel.dev; + kernelVersion = if libsOnly then null else kernel.modDirVersion; hardeningDisable = [ "pic" "format" ]; From 401370287a9b74fc18539fe9c0bdc7ac9df9cf22 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sun, 24 Jun 2018 11:32:10 +0200 Subject: [PATCH 061/312] strongswan-swanctl: adapt options to strongswan-5.6.3 This time there was only one change between 5.6.2..5.6.3: https://github.com/strongswan/strongswan/commit/2c7a4b07045786ee493021020e2ad5bd6bb4d045 --- .../networking/strongswan-swanctl/swanctl-params.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix b/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix index ad211f41eef..e6561633264 100644 --- a/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix +++ b/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix @@ -938,9 +938,12 @@ in { protection. ''; - hw_offload = mkYesNoParam no '' + hw_offload = mkEnumParam ["yes" "no" "auto"] "no" '' Enable hardware offload for this CHILD_SA, if supported by the IPsec - implementation. + implementation. The value yes enforces offloading + and the installation will fail if it's not supported by either kernel or + device. The value auto enables offloading, if it's + supported, but the installation does not fail otherwise. ''; start_action = mkEnumParam ["none" "trap" "start"] "none" '' From 4dae72c8797eb9f0bad0579bb4690e51d6545e9e Mon Sep 17 00:00:00 2001 From: Massimo Redaelli Date: Sun, 24 Jun 2018 17:36:11 +0200 Subject: [PATCH 062/312] fix for master --- pkgs/misc/drivers/epkowa/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix index e0196701994..ca7ac4b4152 100644 --- a/pkgs/misc/drivers/epkowa/default.nix +++ b/pkgs/misc/drivers/epkowa/default.nix @@ -6,7 +6,7 @@ libxslt, libusb, sane-backends, rpm, cpio, -eject, +getopt, patchelf, gcc }: @@ -55,6 +55,7 @@ let plugins = { ''; hw = "Perfection V500 Photo"; }; + meta = common_meta // { description = "iscan esci x770 plugin for "+passthru.hw; }; }; f720 = stdenv.mkDerivation rec { name = "iscan-gt-f720-bundle"; @@ -155,7 +156,7 @@ stdenv.mkDerivation rec { ''; postFixup = '' # iscan-registry is a shell script requiring getopt - wrapProgram $out/bin/iscan-registry --prefix PATH : ${eject}/bin + wrapProgram $out/bin/iscan-registry --prefix PATH : ${getopt}/bin registry=$out/bin/iscan-registry; '' + stdenv.lib.concatStrings (stdenv.lib.mapAttrsToList (name: value: '' From ea7c74c7729c037f2eaab4da99f3d55b8bacc92b Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sun, 24 Jun 2018 09:20:13 +0000 Subject: [PATCH 063/312] ocamlPackages.re: 1.7.1 -> 1.7.3 --- pkgs/development/ocaml-modules/re/default.nix | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkgs/development/ocaml-modules/re/default.nix b/pkgs/development/ocaml-modules/re/default.nix index 861ac8b3bc8..c6f1b6d1758 100644 --- a/pkgs/development/ocaml-modules/re/default.nix +++ b/pkgs/development/ocaml-modules/re/default.nix @@ -1,24 +1,24 @@ -{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, ounit }: +{ stdenv, fetchzip, ocaml, findlib, jbuilder, ounit }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.02" +then throw "re is not available for OCaml ${ocaml.version}" +else stdenv.mkDerivation rec { - name = "ocaml-re-${version}"; - version = "1.7.1"; + name = "ocaml${ocaml.version}-re-${version}"; + version = "1.7.3"; src = fetchzip { url = "https://github.com/ocaml/ocaml-re/archive/${version}.tar.gz"; - sha256 = "1z2z4fjrpdbl0q50fdxvy3746w1vx6ybxcb0k81hqm1342nylbmw"; + sha256 = "1pb6w9wqg6gzcfaaw6ckv1bqjgjpmrzzqz7r0mp9w16qbf3i54zr"; }; - buildInputs = [ ocaml findlib ocamlbuild ounit ]; + buildInputs = [ ocaml findlib jbuilder ounit ]; - configurePhase = "ocaml setup.ml -configure --prefix $out" - + stdenv.lib.optionalString doCheck " --enable-tests"; - buildPhase = "ocaml setup.ml -build"; - doCheck = !stdenv.lib.versionAtLeast ocaml.version "4.06"; - checkPhase = "ocaml setup.ml -test"; - installPhase = "ocaml setup.ml -install"; + doCheck = true; + checkPhase = "jbuilder runtest"; - createFindlibDestdir = true; + inherit (jbuilder) installPhase; meta = { homepage = https://github.com/ocaml/ocaml-re; From 3e60af02d3bc0f83f91987b6d6763d1046b306a5 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sun, 24 Jun 2018 12:59:48 +0000 Subject: [PATCH 064/312] ocamlPackages.bap: fix build with re-1.7.3 --- pkgs/development/ocaml-modules/bap/default.nix | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix index 8c42783c978..8882bbf6647 100644 --- a/pkgs/development/ocaml-modules/bap/default.nix +++ b/pkgs/development/ocaml-modules/bap/default.nix @@ -1,10 +1,12 @@ -{stdenv, buildOcaml, fetchFromGitHub, fetchurl, camlp4, ocaml_oasis, +{ stdenv, fetchFromGitHub, fetchurl, fetchpatch +, ocaml, findlib, ocamlbuild, ocaml_oasis, bitstring, camlzip, cmdliner, core_kernel, ezjsonm, faillib, fileutils, ocaml_lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm_38, ulex, easy-format, xmlm, frontc, ounit, ppx_jane, parsexp, utop, - which, makeWrapper, writeText, ocaml}: + which, makeWrapper, writeText +}: -buildOcaml rec { - name = "bap"; +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-bap-${version}"; version = "1.4.0"; src = fetchFromGitHub { owner = "BinaryAnalysisPlatform"; @@ -18,6 +20,11 @@ buildOcaml rec { sha256 = "0k761w82zkmi5dwsfqq61dbjnb8mmmpb2xwp7vp85xs14g5fjz19"; }; + patches = [(fetchpatch { + url = "https://github.com/BinaryAnalysisPlatform/bap/commit/e4ee3a1e5b427e8d8991e7462b06123178c0a046.patch"; + sha256 = "1yq33zd2sdacclr20g05c1q050m7x7vfbl66qdgansh23dr4fnxk"; + })]; + createFindlibDestdir = true; setupHook = writeText "setupHook.sh" '' @@ -27,7 +34,7 @@ buildOcaml rec { nativeBuildInputs = [ which makeWrapper ]; - buildInputs = [ ocaml_oasis + buildInputs = [ ocaml findlib ocamlbuild ocaml_oasis llvm_38 utop ]; From ec73f89a55dec7cfd75ba51d453a2fb62712e5f7 Mon Sep 17 00:00:00 2001 From: Chris Hodapp Date: Sun, 24 Jun 2018 10:12:12 -0400 Subject: [PATCH 065/312] structure-synth: init at v1.5 --- .../graphics/structure-synth/default.nix | 47 +++++++++++++++++ .../graphics/structure-synth/gcc47.patch | 50 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 99 insertions(+) create mode 100644 pkgs/tools/graphics/structure-synth/default.nix create mode 100644 pkgs/tools/graphics/structure-synth/gcc47.patch diff --git a/pkgs/tools/graphics/structure-synth/default.nix b/pkgs/tools/graphics/structure-synth/default.nix new file mode 100644 index 00000000000..92a7d69aa91 --- /dev/null +++ b/pkgs/tools/graphics/structure-synth/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, qt4, qmake4Hook, unzip, mesa_glu, makeWrapper }: + +stdenv.mkDerivation rec { + + name = "structure-synth-${version}"; + version = "v1.5"; + + src = fetchurl { + url = mirror://sourceforge/structuresynth/StructureSynth-Source-v1.5.0.zip; + sha256 = "1kiammx46719az6jzrav8yrwz82nk4m72ybj0kpbnvp9wfl3swbb"; + }; + + buildInputs = [ qt4 unzip mesa_glu makeWrapper ]; + nativeBuildInputs = [ qmake4Hook ]; + + # Thanks to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672000#15: + patches = [ ./gcc47.patch ]; + + enableParallelBuilding = true; + + preConfigure = '' + ${qt4}/bin/qmake -project -after "CONFIG+=opengl" -after "QT+=xml opengl script" -after "unix:LIBS+=-lGLU" + ''; + + installPhase = '' + mkdir -p $out/bin; + mkdir -p $out/share/Examples $out/share/Misc; + cp "Structure Synth Source Code" $out/bin/structure-synth; + cp -r Examples/* $out/share/Examples; + cp -r Misc/* $out/share/Misc; + ''; + + # Structure Synth expects to see 'Examples' and 'Misc' directory in + # either $HOME or $PWD - so help it along by moving $PWD to 'share', + # where we just copied those two directories: + preFixup = '' + wrapProgram "$out/bin/structure-synth" --run "cd $out/share" + ''; + + meta = with stdenv.lib; { + description = "Application for generating 3D structures by specifying a design grammar"; + homepage = http://structuresynth.sourceforge.net; + maintainers = with maintainers; [ hodapp ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/graphics/structure-synth/gcc47.patch b/pkgs/tools/graphics/structure-synth/gcc47.patch new file mode 100644 index 00000000000..8726e89c830 --- /dev/null +++ b/pkgs/tools/graphics/structure-synth/gcc47.patch @@ -0,0 +1,50 @@ +diff -rc "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp" "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp" +*** "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp" 2010-11-13 22:32:44.000000000 -0500 +--- "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp" 2018-06-24 14:23:30.794296776 -0400 +*************** +*** 1,5 **** + #include +! + + #include "RayTracer.h" + +--- 1,5 ---- + #include +! #include + + #include "RayTracer.h" + +diff -rc "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp" "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp" +*** "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp" 2010-09-08 21:25:30.000000000 -0400 +--- "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp" 2018-06-24 14:23:12.542868194 -0400 +*************** +*** 122,128 **** + currentT = p; + + // We do not intersect grid. +! if (!found) return false; + } + + stepX = (dir.x() > 0) ? 1 : -1; +--- 122,128 ---- + currentT = p; + + // We do not intersect grid. +! if (!found) return NULL; + } + + stepX = (dir.x() > 0) ? 1 : -1; +Only in Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer: VoxelStepper.cpp.orig +diff -rc "Structure Synth Source Code/SyntopiaCore/GLEngine/Sphere.h" "Structure Synth Source Code2/SyntopiaCore/GLEngine/Sphere.h" +*** "Structure Synth Source Code/SyntopiaCore/GLEngine/Sphere.h" 2010-08-11 15:12:22.000000000 -0400 +--- "Structure Synth Source Code2/SyntopiaCore/GLEngine/Sphere.h" 2018-06-24 14:23:30.793296807 -0400 +*************** +*** 2,7 **** +--- 2,8 ---- + + #include "SyntopiaCore/Math/Vector3.h" + #include "Object3D.h" ++ #include + + namespace SyntopiaCore { + namespace GLEngine { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7c5ecb49bc3..a7ecc071516 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5129,6 +5129,8 @@ with pkgs; sstp = callPackage ../tools/networking/sstp {}; + structure-synth = callPackage ../tools/graphics/structure-synth { }; + su-exec = callPackage ../tools/security/su-exec {}; subsurface = libsForQt5.callPackage ../applications/misc/subsurface { }; From 48a619af549e35b22ad2d988f85c53cfe86e5501 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sun, 24 Jun 2018 17:10:56 -0500 Subject: [PATCH 066/312] 1password: fix sha256 hash --- pkgs/applications/misc/1password/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix index 60391eee692..c81481270c2 100644 --- a/pkgs/applications/misc/1password/default.nix +++ b/pkgs/applications/misc/1password/default.nix @@ -7,19 +7,19 @@ stdenv.mkDerivation rec { if stdenv.system == "i686-linux" then fetchzip { url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_386_v${version}.zip"; - sha256 = "0mv2m6rm6bdpca8vhyx213bg4kh06jl2sx8q7mnrp22c3f0yzh7f"; + sha256 = "1yzzh1f6hx7vwdgzp0znsjarjiw4xqmmrkc5xwywgjpg81qqpl8c"; stripRoot = false; } else if stdenv.system == "x86_64-linux" then fetchzip { url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_amd64_v${version}.zip"; - sha256 = "016h5jcy6jic8j3mvlnpcig9jxs22vj71gh6rrap2q950bzi6fi1"; + sha256 = "0dgj1zqmpdbnsz2v2j7nqm232cdgyp9wagc089dxi4hbzkmfcvzx"; stripRoot = false; } else if stdenv.system == "x86_64-darwin" then fetchzip { url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_darwin_amd64_v${version}.zip"; - sha256 = "1l0bi0f6gd4q19wn3v409gj64wp51mr0xpb09da1fl33rl5fpszb"; + sha256 = "116bvyfg38npdhlzaxan5y47cbw7jvj94q5w6v71kxsjzxk9l44a"; stripRoot = false; } else throw "Architecture not supported"; From 938a90f55de1086c496fa7f9e43e2f9e54ad1322 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sun, 24 Jun 2018 17:11:40 -0500 Subject: [PATCH 067/312] 1password: Remove unneeded dependency --- pkgs/applications/misc/1password/default.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix index c81481270c2..d5818614b9e 100644 --- a/pkgs/applications/misc/1password/default.nix +++ b/pkgs/applications/misc/1password/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchzip, makeWrapper }: +{ stdenv, fetchzip }: stdenv.mkDerivation rec { name = "1password-${version}"; @@ -6,25 +6,24 @@ stdenv.mkDerivation rec { src = if stdenv.system == "i686-linux" then fetchzip { - url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_386_v${version}.zip"; + url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip"; sha256 = "1yzzh1f6hx7vwdgzp0znsjarjiw4xqmmrkc5xwywgjpg81qqpl8c"; stripRoot = false; } else if stdenv.system == "x86_64-linux" then fetchzip { - url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_amd64_v${version}.zip"; + url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip"; sha256 = "0dgj1zqmpdbnsz2v2j7nqm232cdgyp9wagc089dxi4hbzkmfcvzx"; stripRoot = false; } else if stdenv.system == "x86_64-darwin" then fetchzip { - url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_darwin_amd64_v${version}.zip"; + url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip"; sha256 = "116bvyfg38npdhlzaxan5y47cbw7jvj94q5w6v71kxsjzxk9l44a"; stripRoot = false; } else throw "Architecture not supported"; - nativeBuildInputs = [ makeWrapper ]; installPhase = '' install -D op $out/bin/op ''; From 574b5365c72f0c8faf114798fc79726bf32bc434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 24 Jun 2018 19:18:51 +0200 Subject: [PATCH 068/312] consul-alerts: 0.3.3 -> 0.5.0 --- .../monitoring/consul-alerts/default.nix | 6 ++-- .../servers/monitoring/consul-alerts/deps.nix | 34 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 pkgs/servers/monitoring/consul-alerts/deps.nix diff --git a/pkgs/servers/monitoring/consul-alerts/default.nix b/pkgs/servers/monitoring/consul-alerts/default.nix index ad840dfd607..7a1422e1e2d 100644 --- a/pkgs/servers/monitoring/consul-alerts/default.nix +++ b/pkgs/servers/monitoring/consul-alerts/default.nix @@ -2,15 +2,17 @@ buildGoPackage rec { name = "consul-alerts-${version}"; - version = "0.3.3"; + version = "0.5.0"; rev = "v${version}"; goPackagePath = "github.com/AcalephStorage/consul-alerts"; + goDeps = ./deps.nix; + src = fetchFromGitHub { inherit rev; owner = "AcalephStorage"; repo = "consul-alerts"; - sha256 = "1w0mb20w1yazyh84sa30bsw271c5nm7lsx2qg0g3gf6mxdb63lpq"; + sha256 = "0dff2cpk3lkgjsh97rvlrpacpka0kwm29691diyvj7lb9ydzlx3r"; }; } diff --git a/pkgs/servers/monitoring/consul-alerts/deps.nix b/pkgs/servers/monitoring/consul-alerts/deps.nix new file mode 100644 index 00000000000..6494dc61a87 --- /dev/null +++ b/pkgs/servers/monitoring/consul-alerts/deps.nix @@ -0,0 +1,34 @@ +let + mkAwsPackage = name: { + goPackagePath = "github.com/aws/aws-sdk-go/${name}"; + fetch = { + type = "git"; + url = "https://github.com/aws/aws-sdk-go"; + rev = "v1.14.13"; + sha256 = "0014b6kl3rbjhjbk7jz116wdgdls54b1bwz454pkn1snlvkj3qil"; + }; + }; +in +[ + (mkAwsPackage "") + (mkAwsPackage "aws/session") + (mkAwsPackage "aws/sns") + (mkAwsPackage "service/sns") + { + goPackagePath = "github.com/imdario/mergo"; + fetch = { + type = "git"; + url = "https://github.com/imdario/mergo"; + rev = "v0.3.5"; + sha256 = "1mvgn89vp39gcpvhiq4n7nw5ipj7fk6h03jgc6fjwgvwvss213pb"; + }; + }{ + goPackagePath = "github.com/mitchellh/hashstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/hashstructure"; + rev = "2bca23e0e452137f789efbc8610126fd8b94f73b"; # has no releases as of writing + sha256 = "0vpacsls26474wya360fjhzi6l4y8s8s251c4szvqxh17n5f5gk1"; + }; + } +] From e6ec309720089a108ef19d2eeedbc15671ac1e4a Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 24 Jun 2018 21:21:55 -0400 Subject: [PATCH 069/312] lollypop: 0.9.514 -> 0.9.516 --- pkgs/applications/audio/lollypop/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix index 50356eaadd5..3c04cbc6c80 100644 --- a/pkgs/applications/audio/lollypop/default.nix +++ b/pkgs/applications/audio/lollypop/default.nix @@ -3,14 +3,14 @@ , python36Packages, gnome3, glib, gst_all_1 }: stdenv.mkDerivation rec { - version = "0.9.514"; + version = "0.9.516"; name = "lollypop-${version}"; src = fetchgit { url = "https://gitlab.gnome.org/World/lollypop"; rev = "refs/tags/${version}"; fetchSubmodules = true; - sha256 = "0ny8c5apldhhrcjl3wz01pbyjvf60b7xy39mpvbshvdpnqlnqsca"; + sha256 = "0ln77cmcl5wi4xis9kmzg0knbykzwsd1n78rr7ff5y35m9p2zgrf"; }; nativeBuildInputs = with python36Packages; [ From 0ee0582a8f69b1d443500daeb1fd4907afc6c341 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 24 Jun 2018 23:06:36 +0200 Subject: [PATCH 070/312] casync: init at 2-152-ge4a3c5e --- .../networking/sync/casync/default.nix | 26 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 +++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/applications/networking/sync/casync/default.nix diff --git a/pkgs/applications/networking/sync/casync/default.nix b/pkgs/applications/networking/sync/casync/default.nix new file mode 100644 index 00000000000..d8b977af7a1 --- /dev/null +++ b/pkgs/applications/networking/sync/casync/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub, fetchpatch, meson, ninja, pkgconfig, sphinx, acl, curl, fuse, libselinux, udev, xz, zstd }: + +stdenv.mkDerivation rec { + name = "casync-${version}"; + version = "2-152-ge4a3c5e"; + + src = fetchFromGitHub { + owner = "systemd"; + repo = "casync"; + rev = "e4a3c5efc8f11e0e99f8cc97bd417665d92b40a9"; + sha256 = "0zx6zvj5a6rr3w9s207rvpfw7gwssiqmp1p3c75bsirmz4nmsdf0"; + }; + + buildInputs = [ acl curl fuse libselinux udev xz zstd ]; + nativeBuildInputs = [ meson ninja pkgconfig sphinx ]; + + PKG_CONFIG_UDEV_UDEVDIR = "lib/udev"; + + meta = with stdenv.lib; { + description = "Content-Addressable Data Synchronizer"; + homepage = https://github.com/systemd/casync; + license = licenses.lgpl21; + platforms = platforms.all; + maintainers = with maintainers; [ flokli ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5d63580c89c..184a925c48e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -991,6 +991,10 @@ with pkgs; capstone = callPackage ../development/libraries/capstone { }; unicorn-emu = callPackage ../development/libraries/unicorn-emu { }; + casync = callPackage ../applications/networking/sync/casync { + sphinx = python3Packages.sphinx; + }; + cataract = callPackage ../applications/misc/cataract { }; cataract-unstable = callPackage ../applications/misc/cataract/unstable.nix { }; From 583ec8eac3f17585f86381624ffefedbf7a8a2a0 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Mon, 25 Jun 2018 01:49:52 +0200 Subject: [PATCH 071/312] casync: enable tests --- .../networking/sync/casync/default.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/sync/casync/default.nix b/pkgs/applications/networking/sync/casync/default.nix index d8b977af7a1..25d9d65c5a8 100644 --- a/pkgs/applications/networking/sync/casync/default.nix +++ b/pkgs/applications/networking/sync/casync/default.nix @@ -1,4 +1,8 @@ -{ stdenv, fetchFromGitHub, fetchpatch, meson, ninja, pkgconfig, sphinx, acl, curl, fuse, libselinux, udev, xz, zstd }: +{ stdenv, fetchFromGitHub, fetchpatch +, meson, ninja, pkgconfig, sphinx +, acl, curl, fuse, libselinux, udev, xz, zstd +, glibcLocales, rsync +}: stdenv.mkDerivation rec { name = "casync-${version}"; @@ -13,9 +17,22 @@ stdenv.mkDerivation rec { buildInputs = [ acl curl fuse libselinux udev xz zstd ]; nativeBuildInputs = [ meson ninja pkgconfig sphinx ]; + checkInputs = [ glibcLocales rsync ]; + + postPatch = '' + for f in test/test-*.sh.in; do + patchShebangs $f + done + patchShebangs test/http-server.py + ''; PKG_CONFIG_UDEV_UDEVDIR = "lib/udev"; + doCheck = true; + preCheck = '' + export LC_ALL="en_US.utf-8" + ''; + meta = with stdenv.lib; { description = "Content-Addressable Data Synchronizer"; homepage = https://github.com/systemd/casync; From de9abc0d9e91910b8ad953766835160044bbda99 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Mon, 25 Jun 2018 02:17:01 +0200 Subject: [PATCH 072/312] casync: add feature flags for fuse, selinux and udev --- pkgs/applications/networking/sync/casync/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/sync/casync/default.nix b/pkgs/applications/networking/sync/casync/default.nix index 25d9d65c5a8..38c9e07367f 100644 --- a/pkgs/applications/networking/sync/casync/default.nix +++ b/pkgs/applications/networking/sync/casync/default.nix @@ -1,6 +1,9 @@ { stdenv, fetchFromGitHub, fetchpatch , meson, ninja, pkgconfig, sphinx , acl, curl, fuse, libselinux, udev, xz, zstd +, fuseSupport ? true +, selinuxSupport ? true +, udevSupport ? true , glibcLocales, rsync }: @@ -15,7 +18,10 @@ stdenv.mkDerivation rec { sha256 = "0zx6zvj5a6rr3w9s207rvpfw7gwssiqmp1p3c75bsirmz4nmsdf0"; }; - buildInputs = [ acl curl fuse libselinux udev xz zstd ]; + buildInputs = [ acl curl xz zstd ] + ++ stdenv.lib.optionals (fuseSupport) [ fuse ] + ++ stdenv.lib.optionals (selinuxSupport) [ libselinux ] + ++ stdenv.lib.optionals (udevSupport) [ udev ]; nativeBuildInputs = [ meson ninja pkgconfig sphinx ]; checkInputs = [ glibcLocales rsync ]; @@ -27,6 +33,9 @@ stdenv.mkDerivation rec { ''; PKG_CONFIG_UDEV_UDEVDIR = "lib/udev"; + mesonFlags = stdenv.lib.optionals (!fuseSupport) [ "-Dfuse=false" ] + ++ stdenv.lib.optionals (!udevSupport) [ "-Dudev=false" ] + ++ stdenv.lib.optionals (!selinuxSupport) [ "-Dselinux=false" ]; doCheck = true; preCheck = '' From 0dfc32989118c5441df52676de90a865e6e0abf9 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Mon, 25 Jun 2018 02:17:27 +0200 Subject: [PATCH 073/312] casync: restrict to linux libacl is required, which is linux-only. --- pkgs/applications/networking/sync/casync/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/sync/casync/default.nix b/pkgs/applications/networking/sync/casync/default.nix index 38c9e07367f..82dd3a506de 100644 --- a/pkgs/applications/networking/sync/casync/default.nix +++ b/pkgs/applications/networking/sync/casync/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { description = "Content-Addressable Data Synchronizer"; homepage = https://github.com/systemd/casync; license = licenses.lgpl21; - platforms = platforms.all; + platforms = platforms.linux; maintainers = with maintainers; [ flokli ]; }; } From c1740904aeb574ac5f01c63c5c39480724cff7ed Mon Sep 17 00:00:00 2001 From: Tad Fisher Date: Sun, 24 Jun 2018 18:49:30 -0700 Subject: [PATCH 074/312] firefox: add u2f support --- pkgs/applications/networking/browsers/firefox/wrapper.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index 6067911b716..c2b83a0187f 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -66,10 +66,11 @@ let ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration ++ extraNativeMessagingHosts ); - libs = lib.optional ffmpegSupport ffmpeg + libs = [ libudev ] + ++ lib.optional ffmpegSupport ffmpeg ++ lib.optional gssSupport kerberos ++ lib.optionals (cfg.enableQuakeLive or false) - (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib libudev ]) + (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]) ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash ++ lib.optional (config.pulseaudio or true) libpulseaudio; gtk_modules = [ libcanberra-gtk2 ]; From e1784a0435a3feb262293c7bcc7a3e594472cc38 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 24 Jun 2018 22:32:43 -0400 Subject: [PATCH 075/312] lollypop: move appstream-glib and gobjectIntrospection to nativeBuildInputs --- pkgs/applications/audio/lollypop/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix index 3c04cbc6c80..3b967186112 100644 --- a/pkgs/applications/audio/lollypop/default.nix +++ b/pkgs/applications/audio/lollypop/default.nix @@ -14,7 +14,9 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = with python36Packages; [ + appstream-glib desktop-file-utils + gobjectIntrospection meson ninja pkgconfig @@ -22,9 +24,7 @@ stdenv.mkDerivation rec { wrapPython ]; - buildInputs = [ - appstream-glib glib gobjectIntrospection - ] ++ (with gnome3; [ + buildInputs = [ glib ] ++ (with gnome3; [ easytag gsettings_desktop_schemas gtk3 libsecret libsoup totem-pl-parser ]) ++ (with gst_all_1; [ gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly From 367a7ae138b55193d4ddea60940d01f2b10a5cb0 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Mon, 25 Jun 2018 10:53:18 +0200 Subject: [PATCH 076/312] pythonPackages.rlp: revert to working 0.6.0 It is required by electrum. --- pkgs/development/python-modules/rlp/default.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/rlp/default.nix b/pkgs/development/python-modules/rlp/default.nix index fd4816c3bb5..87a59cf7397 100644 --- a/pkgs/development/python-modules/rlp/default.nix +++ b/pkgs/development/python-modules/rlp/default.nix @@ -1,15 +1,15 @@ -{ lib, fetchPypi, buildPythonPackage, pytest, hypothesis }: +{ lib, fetchPypi, buildPythonPackage, pytest }: buildPythonPackage rec { pname = "rlp"; - version = "1.0.1"; + version = "0.6.0"; src = fetchPypi { inherit pname version; - sha256 = "492c11b18e89af42f98e96bca7671ffee4ad4cf5e69ea23b4d2221157d81b512"; + sha256 = "0d3gx4mp8q4z369s5yk1n9c55sgfw9fidbwqxq67d6s7l45rm1w7"; }; - checkInputs = [ pytest hypothesis ]; + checkInputs = [ pytest ]; propagatedBuildInputs = [ ]; meta = { @@ -17,6 +17,5 @@ buildPythonPackage rec { homepage = "https://github.com/ethereum/pyrlp"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ gebner ]; - broken = true; # Requires a chain of unpackaged dependencies. }; } From 134eca9993fa3a8c8c7dd2bd5d8f413da1f24cd5 Mon Sep 17 00:00:00 2001 From: Andrea Bedini Date: Mon, 25 Jun 2018 17:15:40 +0800 Subject: [PATCH 077/312] ecs-agent: 1.14.0 -> 1.18.0 (#42359) --- pkgs/applications/virtualization/ecs-agent/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/virtualization/ecs-agent/default.nix b/pkgs/applications/virtualization/ecs-agent/default.nix index 5b3610243be..711838b2944 100644 --- a/pkgs/applications/virtualization/ecs-agent/default.nix +++ b/pkgs/applications/virtualization/ecs-agent/default.nix @@ -3,7 +3,7 @@ buildGoPackage rec { name = "${pname}-${version}"; pname = "amazon-ecs-agent"; - version = "1.14.0"; + version = "1.18.0"; goPackagePath = "github.com/aws/${pname}"; subPackages = [ "agent" ]; @@ -12,7 +12,7 @@ buildGoPackage rec { rev = "v${version}"; owner = "aws"; repo = pname; - sha256 = "12c8l0x8pm883rlbdr1m07r0kjkzggkfz35cjqz8pzyr5ymjdrc3"; + sha256 = "1l6c2if6wpjmq2hh6k818w38s1rsbwgd6igqy948dwcrb1g1mixr"; }; meta = with stdenv.lib; { From f8530c887bb9d6455d6f0cd0b1ca2b64fd5c2e4d Mon Sep 17 00:00:00 2001 From: nocent Date: Mon, 25 Jun 2018 09:45:51 +0000 Subject: [PATCH 078/312] rpcs3: 0.0.4-8032 -> 0.0.5-6980 (#41414) * rpcs3: 0.0.4-8032 -> 0.0.5-6884 * rpcs3: update hash * rpcs3: 0.0.5-6884 -> 0.0.5-6925 * rpcs3: 0.0.5-6925 -> 0.0.5-6938 * rpcs3: 0.0.5-6938 -> 0.0.5-6980 Manually write version header instead of generating it with git, which required leaveDotGit to be enabled. This caused some hash mismatches (see #8567) has thus been disabled. --- pkgs/misc/emulators/rpcs3/default.nix | 50 +++++++++++++++++---------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/pkgs/misc/emulators/rpcs3/default.nix b/pkgs/misc/emulators/rpcs3/default.nix index 140149bde49..732a5971ed3 100644 --- a/pkgs/misc/emulators/rpcs3/default.nix +++ b/pkgs/misc/emulators/rpcs3/default.nix @@ -1,19 +1,31 @@ -{ stdenv, lib, fetchgit, cmake, pkgconfig -, qtbase, openal, glew, llvm_4, vulkan-loader, libpng, ffmpeg, libevdev -, pulseaudioSupport ? true, libpulseaudio -, waylandSupport ? true, wayland -, alsaSupport ? true, alsaLib -}: - -stdenv.mkDerivation rec { - name = "rpcs3-${version}"; - version = "2018-02-23"; - - src = fetchgit { - url = "https://github.com/RPCS3/rpcs3"; - rev = "41bd07274f15b8f1be2475d73c3c75ada913dabb"; - sha256 = "1v28m64ahakzj4jzjkmdd7y8q75pn9wjs03vprbnl0z6wqavqn0x"; - }; +{ stdenv, lib, fetchgit, cmake, pkgconfig, git +, qt5, openal, glew, vulkan-loader, libpng, ffmpeg, libevdev, python27 +, pulseaudioSupport ? true, libpulseaudio +, waylandSupport ? true, wayland +, alsaSupport ? true, alsaLib +}: + +let + majorVersion = "0.0.5"; + gitVersion = "6980-81e5f3b7f"; # echo $(git rev-list HEAD --count)-$(git rev-parse --short HEAD) +in +stdenv.mkDerivation rec { + name = "rpcs3-${version}"; + version = "${majorVersion}-${gitVersion}"; + + src = fetchgit { + url = "https://github.com/RPCS3/rpcs3"; + rev = "81e5f3b7f299942f56bcfdde54edd09c722b32d8"; + sha256 = "0czj6ga1nccqgcvi58sjnv1cc4k7qvwijp4warml463hpsmbd9r0"; + }; + + preConfigure = '' + cat > ./rpcs3/git-version.h < Date: Mon, 25 Jun 2018 11:45:29 +0200 Subject: [PATCH 079/312] python.pkgs.psutil_1: remove unused package --- pkgs/top-level/python-packages.nix | 9 --------- 1 file changed, 9 deletions(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7bb82de095c..5b8eb59422f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10102,15 +10102,6 @@ in { psutil = callPackage ../development/python-modules/psutil { }; - psutil_1 = self.psutil.overrideAttrs (oldAttrs: rec { - name = "${oldAttrs.pname}-${version}"; - version = "1.2.1"; - src = oldAttrs.src.override { - inherit version; - sha256 = "0ibclqy6a4qmkjhlk3g8jhpvnk0v9aywknc61xm3hfi5r124m3jh"; - }; - }); - psycopg2 = buildPythonPackage rec { name = "psycopg2-2.7.1"; disabled = isPyPy; From 910cb27384b8c26a77f668dde237916ee535077a Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Mon, 25 Jun 2018 12:11:09 +0200 Subject: [PATCH 080/312] php71: 7.1.18 -> 7.1.19 Changelog: https://secure.php.net/ChangeLog-7.php#7.1.19 --- pkgs/development/interpreters/php/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index cede1b67475..3032b5e4c2a 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -348,8 +348,8 @@ in { }; php71 = generic { - version = "7.1.18"; - sha256 = "13mz8baknpydswjgqzfqqqjv426x4pnc04rfv2k33s7d2makf3jq"; + version = "7.1.19"; + sha256 = "1wvhsxzmb78pcr36ginz93iv7rcrxp3p01rb34zxa2h4wdxkxi0k"; }; php72 = generic { From 06eeb0d158829287bb26e01b6ffcf44955c876e1 Mon Sep 17 00:00:00 2001 From: Mathieu Boespflug Date: Mon, 25 Jun 2018 12:46:19 +0200 Subject: [PATCH 081/312] bazel: Don't hardcode build tools (#42552) Bazel is a build tool, much like Make and many others. Like Make, it should be agnostic to the compiler toolchains the user brings into scope. Bazel has special rules that encode domain specific knowledge for how to compile a C++ program, or indeed a Java program and a few others. But that's not to say that at runtime Bazel should assume a specific C++ compiler or Java compiler anymore than Make does. The main impact of this change is that packages that build with Bazel will have to list the compilers they want in their `buildInputs` or similar, rather than relying on the `bazel` package pulling them in transitively. --- pkgs/development/tools/build-managers/bazel/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix index 1dac9513f94..8cb137aeda3 100644 --- a/pkgs/development/tools/build-managers/bazel/default.nix +++ b/pkgs/development/tools/build-managers/bazel/default.nix @@ -114,11 +114,10 @@ stdenv.mkDerivation rec { examples/java-native/src/test/java/com/example/myproject:hello ''; - # Bazel expects gcc and java to be in the path. installPhase = '' mkdir -p $out/bin mv output/bazel $out/bin - wrapProgram "$out/bin/bazel" --prefix PATH : "${lib.makeBinPath [ stdenv.cc jdk ]}" + wrapProgram "$out/bin/bazel" --set JAVA_HOME "${jdk}" mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions mv output/bazel-complete.bash $out/share/bash-completion/completions/ cp scripts/zsh_completion/_bazel $out/share/zsh/site-functions/ From c5e91939942a26164ee9ce07719b5d9a7cbbe63b Mon Sep 17 00:00:00 2001 From: Assassinkin Date: Mon, 25 Jun 2018 12:06:33 +0100 Subject: [PATCH 082/312] pythonPackages.sklearn-deap: dropping a comment --- pkgs/development/python-modules/sklearn-deap/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/python-modules/sklearn-deap/default.nix b/pkgs/development/python-modules/sklearn-deap/default.nix index 2c40ce4c2fc..190692c4362 100644 --- a/pkgs/development/python-modules/sklearn-deap/default.nix +++ b/pkgs/development/python-modules/sklearn-deap/default.nix @@ -14,7 +14,6 @@ buildPythonPackage rec { propagatedBuildInputs = [ numpy scipy deap scikitlearn ]; - #doCheck = false; checkPhase = '' ${python.interpreter} test.py ''; From 2cd0c2e2df0075b9ea88b8b98db39cd71f214456 Mon Sep 17 00:00:00 2001 From: ajs124 Date: Mon, 25 Jun 2018 13:11:56 +0200 Subject: [PATCH 083/312] libvirt: enable (optional) support for iscsi storage (#42545) --- pkgs/development/libraries/libvirt/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix index cb81aa262e9..49c1b054b77 100644 --- a/pkgs/development/libraries/libvirt/default.nix +++ b/pkgs/development/libraries/libvirt/default.nix @@ -6,6 +6,7 @@ , dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages , curl, libiconv, gmp, zfs, parted, bridge-utils, dmidecode , enableXen ? false, xen ? null +, enableIscsi ? false, openiscsi }: with stdenv.lib; @@ -42,6 +43,8 @@ in stdenv.mkDerivation rec { libapparmor libcap_ng numactl attr parted ] ++ optionals (enableXen && stdenv.isLinux && stdenv.isx86_64) [ xen + ] ++ optionals enableIscsi [ + openiscsi ] ++ optionals stdenv.isDarwin [ libiconv gmp ]; @@ -49,7 +52,7 @@ in stdenv.mkDerivation rec { preConfigure = '' ${ optionalString (!buildFromTarball) "./bootstrap --no-git --gnulib-srcdir=$(pwd)/.gnulib" } - PATH=${stdenv.lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute iptables ebtables lvm2 systemd numad ])}:$PATH + PATH=${stdenv.lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute iptables ebtables lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH # the path to qemu-kvm will be stored in VM's .xml and .save files # do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations @@ -79,6 +82,8 @@ in stdenv.mkDerivation rec { "--with-storage-disk" ] ++ optionals (stdenv.isLinux && zfs != null) [ "--with-storage-zfs" + ] ++ optionals enableIscsi [ + "--with-storage-iscsi" ] ++ optionals stdenv.isDarwin [ "--with-init-script=none" ]; From 4a5ab6e9239fb62dbb6b943c7035cf7c503ca221 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 21 Jun 2018 23:21:05 +0200 Subject: [PATCH 084/312] =?UTF-8?q?libblockdev:=202.17=20=E2=86=92=202.18?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/development/libraries/libblockdev/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/libblockdev/default.nix b/pkgs/development/libraries/libblockdev/default.nix index 077efe299ec..e84df0c1aed 100644 --- a/pkgs/development/libraries/libblockdev/default.nix +++ b/pkgs/development/libraries/libblockdev/default.nix @@ -1,10 +1,10 @@ { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk-doc, libxslt, docbook_xsl -, docbook_xml_dtd_43, python3, gobjectIntrospection, glib, libudev, kmod, parted +, docbook_xml_dtd_43, python3, gobjectIntrospection, glib, libudev, kmod, parted, libyaml , cryptsetup, devicemapper, dmraid, utillinux, libbytesize, libndctl, nss, volume_key }: let - version = "2.17"; + version = "2.18"; in stdenv.mkDerivation rec { name = "libblockdev-${version}"; @@ -12,7 +12,7 @@ in stdenv.mkDerivation rec { owner = "storaged-project"; repo = "libblockdev"; rev = "${version}-1"; - sha256 = "14f52cj2qcnm8i2zb57qfpdk3kij2gb3xgqkbvidmf6sjicq84z2"; + sha256 = "03gbmji401nz1sff2zp61dhal80qls4blqwadj2p4ckbxdlmid4i"; }; outputs = [ "out" "dev" "devdoc" ]; @@ -26,7 +26,7 @@ in stdenv.mkDerivation rec { ]; buildInputs = [ - glib libudev kmod parted cryptsetup devicemapper dmraid utillinux libbytesize libndctl nss volume_key + glib libudev kmod parted cryptsetup devicemapper dmraid utillinux libbytesize libndctl nss volume_key libyaml ]; meta = with stdenv.lib; { From 39f357a83649d742dbde23558cda0fdb09d3c306 Mon Sep 17 00:00:00 2001 From: Benjamin Hipple Date: Mon, 25 Jun 2018 08:58:04 -0400 Subject: [PATCH 085/312] slurm: 17.11.5 -> 17.11.7, pyslurm: 20180427 -> 20180604 (#42536) * slurm: 17.11.5 -> 17.11.7, pyslurm: 20180427 -> 20180604 This commit also swaps to use the official repository's github release tags instead of their download site, which only keeps the most recent version with no historical archives. * Document why we don't run tests * Remove dead testing code --- .../python-modules/pyslurm/default.nix | 9 ++++++--- pkgs/servers/computing/slurm/default.nix | 15 ++++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/pyslurm/default.nix b/pkgs/development/python-modules/pyslurm/default.nix index 1bc08d63418..9057c3970e1 100644 --- a/pkgs/development/python-modules/pyslurm/default.nix +++ b/pkgs/development/python-modules/pyslurm/default.nix @@ -2,18 +2,21 @@ buildPythonPackage rec { pname = "pyslurm"; - version = "20180427"; + version = "20180604"; src = fetchFromGitHub { repo = "pyslurm"; owner = "PySlurm"; - rev = "3900e1afac9ffd13c80c57d8c39933d42eb7bad7"; - sha256 = "1a183ig4sdbc70rx2yyaslyq61wkbsf8cbim1jj0kzrp65nf0vls"; + rev = "9dd4817e785fee138a9e29c3d71d2ea44898eedc"; + sha256 = "14ivwc27sjnk0z0jpfgyy9bd91m2bhcz11lzp1kk9xn4495i7wvj"; }; buildInputs = [ cython slurm ]; setupPyBuildFlags = [ "--slurm-lib=${slurm}/lib" "--slurm-inc=${slurm.dev}/include" ]; + # Test cases need /etc/slurm/slurm.conf and require a working slurm installation + doCheck = false; + meta = with lib; { homepage = https://github.com/PySlurm/pyslurm; description = "Python bindings to Slurm"; diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix index 7a03bf75802..64e4005f53f 100644 --- a/pkgs/servers/computing/slurm/default.nix +++ b/pkgs/servers/computing/slurm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, libtool, curl +{ stdenv, fetchFromGitHub, pkgconfig, libtool, curl , python, munge, perl, pam, openssl , ncurses, mysql, gtk2, lua, hwloc, numactl , readline, freeipmi, libssh2, xorg @@ -8,11 +8,16 @@ stdenv.mkDerivation rec { name = "slurm-${version}"; - version = "17.11.5"; + version = "17.11.7"; - src = fetchurl { - url = "https://download.schedmd.com/slurm/${name}.tar.bz2"; - sha256 = "07ghyyz12k4rksm06xf7dshwp1ndm13zphdbqja99401q4xwbx9r"; + # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php + # because the latter does not keep older releases. + src = fetchFromGitHub { + owner = "SchedMD"; + repo = "slurm"; + # The release tags use - instead of ., and have an extra -1 suffix. + rev = "${builtins.replaceStrings ["."] ["-"] name}-1"; + sha256 = "00dgirjd75i1x6pj80avp18hx5gr3dsnh13vbkqbf0iwpd72qyhp"; }; outputs = [ "out" "dev" ]; From 6e146c370013a177eb4e446c20cfe6895cb4d4d5 Mon Sep 17 00:00:00 2001 From: Benjamin Hipple Date: Mon, 25 Jun 2018 09:05:47 -0400 Subject: [PATCH 086/312] pythonPackages.plaid-python: init at 2.3.0 (#42530) * pythonPackages.plaid-python: init at 2.3.0 * Run unit tests with py.test --- .../python-modules/plaid-python/default.nix | 24 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/python-modules/plaid-python/default.nix diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix new file mode 100644 index 00000000000..3676c676cc6 --- /dev/null +++ b/pkgs/development/python-modules/plaid-python/default.nix @@ -0,0 +1,24 @@ +{ lib, buildPythonPackage, fetchPypi, requests, pytest }: + +buildPythonPackage rec { + version = "2.3.0"; + pname = "plaid-python"; + + src = fetchPypi { + inherit pname version; + sha256 = "0kp0crzjginmga6qvwwppar5b2pbdvwryf6vdpxgx7kkwzv33w97"; + }; + + checkInputs = [ pytest ]; + # Integration tests require API keys and internet access + checkPhase = "py.test -rxs ./tests/unit"; + + propagatedBuildInputs = [ requests ]; + + meta = { + description = "Python client library for the Plaid API and Link"; + homepage = https://github.com/plaid/plaid-python; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ bhipple ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5b8eb59422f..feb64b1cbbc 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3868,6 +3868,8 @@ in { phpserialize = callPackage ../development/python-modules/phpserialize { }; + plaid-python = callPackage ../development/python-modules/plaid-python { }; + plaster = callPackage ../development/python-modules/plaster {}; plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {}; From dd366701cea0d2d32d27fcb34746e73e80a537fb Mon Sep 17 00:00:00 2001 From: volth Date: Mon, 25 Jun 2018 13:33:09 +0000 Subject: [PATCH 087/312] perl528: init at 5.28.0 --- pkgs/development/interpreters/perl/default.nix | 7 +++++-- pkgs/top-level/all-packages.nix | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix index 4d6f426fae4..08612ad2849 100644 --- a/pkgs/development/interpreters/perl/default.nix +++ b/pkgs/development/interpreters/perl/default.nix @@ -185,8 +185,6 @@ let setupHook = ./setup-hook-cross.sh; }); in rec { - perl = perl524; - perl522 = common { version = "5.22.4"; sha256 = "1yk1xn4wmnrf2ph02j28khqarpyr24qwysjzkjnjv7vh5dygb7ms"; @@ -201,4 +199,9 @@ in rec { version = "5.26.1"; sha256 = "1p81wwvr5jb81m41d07kfywk5gvbk0axdrnvhc2aghcdbr4alqz7"; }; + + perl528 = common { + version = "5.28.0"; + sha256 = "1a3f822lcl8dr8v0hk80yyhpzqlljg49z9flb48rs3nbsij9z4ky"; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0bc2589c753..225ae79d79c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7345,7 +7345,8 @@ with pkgs; ocropus = callPackage ../applications/misc/ocropus { }; - inherit (callPackages ../development/interpreters/perl {}) perl perl522 perl524 perl526; + perl = perl524; + inherit (callPackages ../development/interpreters/perl {}) perl522 perl524 perl526 perl528; pachyderm = callPackage ../applications/networking/cluster/pachyderm { }; From ec81355c8d9f8ee5a31c1e458b8a141a769a71d1 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 25 Jun 2018 13:36:06 +0000 Subject: [PATCH 088/312] ocamlPackages.psmt2-frontend: init at 0.1 --- .../ocaml-modules/psmt2-frontend/default.nix | 35 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 pkgs/development/ocaml-modules/psmt2-frontend/default.nix diff --git a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix new file mode 100644 index 00000000000..c09cf5a77c1 --- /dev/null +++ b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, ocaml, findlib, menhir }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.03" +then throw "psmt2-frontend is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + version = "0.1"; + name = "ocaml${ocaml.version}-psmt2-frontend-${version}"; + + src = fetchFromGitHub { + owner = "Coquera"; + repo = "psmt2-frontend"; + rev = version; + sha256 = "0k7jlsbkdyg7hafmvynp0ik8xk7mfr00wz27vxn4ncnmp20yz4vn"; + }; + + prefixKey = "-prefix "; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ ocaml findlib menhir ]; + + createFindlibDestdir = true; + + installFlags = "LIBDIR=$(OCAMLFIND_DESTDIR)"; + + meta = { + description = "A simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language"; + license = stdenv.lib.licenses.asl20; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (src.meta) homepage; + inherit (ocaml.meta) platforms; + }; + +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 3bb84e7e3a0..6ca593f349f 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -534,6 +534,8 @@ let piqi = callPackage ../development/ocaml-modules/piqi { }; piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { }; + psmt2-frontend = callPackage ../development/ocaml-modules/psmt2-frontend { }; + psq = callPackage ../development/ocaml-modules/psq { }; ptime = callPackage ../development/ocaml-modules/ptime { }; From 01847b7c5f961d869e6823e54bbfe19eab077034 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 25 Jun 2018 06:52:53 -0700 Subject: [PATCH 089/312] neofetch: 4.0.2 -> 5.0.0 (#42477) Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/neofetch/versions. These checks were done: - built on NixOS - /nix/store/s43pf19xk5iimnmddlwya810k9ah543v-neofetch-5.0.0/bin/neofetch passed the binary check. - 1 of 1 passed binary check by having a zero exit code. - 0 of 1 passed binary check by having the new version present in output. - found 5.0.0 with grep in /nix/store/s43pf19xk5iimnmddlwya810k9ah543v-neofetch-5.0.0 - directory tree listing: https://gist.github.com/791916ab0ef95175e54b789ccd7be2e5 - du listing: https://gist.github.com/87e9057b70214b92a7a70e87f2d1ce9e --- pkgs/tools/misc/neofetch/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/neofetch/default.nix b/pkgs/tools/misc/neofetch/default.nix index af6c17433f1..7dbfc90fa12 100644 --- a/pkgs/tools/misc/neofetch/default.nix +++ b/pkgs/tools/misc/neofetch/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "neofetch-${version}"; - version = "4.0.2"; + version = "5.0.0"; src = fetchFromGitHub { owner = "dylanaraps"; repo = "neofetch"; rev = version; - sha256 = "0c0x05ca8lp74928nix4pvd243l95lav35r21mpkbagf72z284d2"; + sha256 = "0yzyi2p0d8xp576lxyv5m9h60dl1d5dmrn40aad307872835b9rr"; }; dontBuild = true; From 44de467c7c7e649bd7f9d3701eb9f3663136c64c Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 09:15:02 -0500 Subject: [PATCH 090/312] fac: 1.1.0 -> 2.0.0 * update deps (dep2nix) * seems to need $HOME/.fac.yml or emits warning (looks like even `touch ~/.fac.yml` appeases this) --- pkgs/development/tools/fac/default.nix | 4 ++-- pkgs/development/tools/fac/deps.nix | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pkgs/development/tools/fac/default.nix b/pkgs/development/tools/fac/default.nix index 0fae9fad5d1..d6cc527e641 100644 --- a/pkgs/development/tools/fac/default.nix +++ b/pkgs/development/tools/fac/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { name = "fac-${version}"; - version = "1.1.0"; + version = "2.0.0"; goPackagePath = "github.com/mkchoi212/fac"; @@ -10,7 +10,7 @@ buildGoPackage rec { owner = "mkchoi212"; repo = "fac"; rev = "v${version}"; - sha256 = "054j8yrblf1frcfn3dwrjbgf000i3ngbaz2c172nwbx75g309ihx"; + sha256 = "054bbiw0slz9szy3ap2sh5dy97w3g7ms27rd3ww3i1zdhvnggwpc"; }; goDeps = ./deps.nix; diff --git a/pkgs/development/tools/fac/deps.nix b/pkgs/development/tools/fac/deps.nix index 65ec5ded5ad..65335497e5f 100644 --- a/pkgs/development/tools/fac/deps.nix +++ b/pkgs/development/tools/fac/deps.nix @@ -5,8 +5,8 @@ fetch = { type = "git"; url = "https://github.com/alecthomas/chroma"; - rev = "1b755a90bd109f170385cb3964f0abdfd3451145"; - sha256 = "1ilmavg291qhb0xq881f5h172zw40aaynqfb0y4yjyq13jnrf8p8"; + rev = "0c0b382eca61a71c1eb4cb4dea2bc78aa4939d96"; + sha256 = "0chpzs542s366vv01bfhrajdrbhmrvc3gi8jhpw3xgz6wfkivcp4"; }; } { @@ -45,22 +45,22 @@ sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g"; }; } - { - goPackagePath = "github.com/mkchoi212/fac"; - fetch = { - type = "git"; - url = "https://github.com/mkchoi212/fac"; - rev = "642a3ad8d8b4b76c7eb201e6f69b3bddb210c502"; - sha256 = "10rsmnixs3lybnj4xv09b2ya6x0hjjd03y148f78qfppyz2hsvaz"; - }; - } { goPackagePath = "github.com/nsf/termbox-go"; fetch = { type = "git"; url = "https://github.com/nsf/termbox-go"; - rev = "21a4d435a86280a2927985fd6296de56cbce453e"; - sha256 = "0afbb0nr9rqzlpg5n7dg070w5scdvckyzyy525mhndp8phhzwpg7"; + rev = "5c94acc5e6eb520f1bcd183974e01171cc4c23b3"; + sha256 = "1fi8imdgwvlsgifw2qfl3ww0lsrgkfsimkzz7bnrq41nar78s0fw"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183"; + sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1"; }; } ] \ No newline at end of file From d94d3b39b997a7f83ab5757f919be8abe1e891ff Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 09:25:25 -0500 Subject: [PATCH 091/312] udisks2: revive musl patching I believe we discussed this and believed this wasn't necessary, but without it the build breaks w/musl so re-add it. --- pkgs/os-specific/linux/udisks/2-default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix index 6bb12c2c792..0c0aa84a6bd 100644 --- a/pkgs/os-specific/linux/udisks/2-default.nix +++ b/pkgs/os-specific/linux/udisks/2-default.nix @@ -42,6 +42,12 @@ in stdenv.mkDerivation rec { gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl ]; + postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace udisks/udisksclient.c \ + --replace 'defined( __GNUC_PREREQ)' 1 \ + --replace '__GNUC_PREREQ(4,6)' 1 + ''; + buildInputs = [ expat libgudev libblockdev acl systemd glib libatasmart polkit ]; From 7fa6b340931acaccfa8211f0dd2ef4938e68ea17 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 09:45:45 -0500 Subject: [PATCH 092/312] glib: patch to fix w/musl, quark static ctor order assumptions From [1] with prefix added, using local copy to avoid dep on fetchpatch. [1] https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/glib/patches/quark_init_on_demand.patch --- pkgs/development/libraries/glib/default.nix | 1 + .../libraries/glib/quark_init_on_demand.patch | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/libraries/glib/quark_init_on_demand.patch diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index ac921227740..a793bf5f752 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -54,6 +54,7 @@ stdenv.mkDerivation rec { patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch + ++ optional stdenv.hostPlatform.isMusl ./quark_init_on_demand.patch ++ [ ./schema-override-variable.patch ]; outputs = [ "out" "dev" "devdoc" ]; diff --git a/pkgs/development/libraries/glib/quark_init_on_demand.patch b/pkgs/development/libraries/glib/quark_init_on_demand.patch new file mode 100644 index 00000000000..16808648431 --- /dev/null +++ b/pkgs/development/libraries/glib/quark_init_on_demand.patch @@ -0,0 +1,33 @@ +--- glib-source/glib/gquark.c 2016-08-17 17:20:47.000000000 +0200 ++++ glib-source/glib/gquark.c 2016-08-30 07:49:13.298234757 +0200 +@@ -57,6 +57,9 @@ + void + g_quark_init (void) + { ++ if (quark_ht) ++ return; ++ + g_assert (quark_seq_id == 0); + quark_ht = g_hash_table_new (g_str_hash, g_str_equal); + quarks = g_new (gchar*, QUARK_BLOCK_SIZE); +@@ -138,9 +141,12 @@ + return 0; + + G_LOCK (quark_global); ++#if !defined(__GLIBC__) ++ g_quark_init (); ++#endif + quark = GPOINTER_TO_UINT (g_hash_table_lookup (quark_ht, string)); + G_UNLOCK (quark_global); + + return quark; + } + +@@ -280,6 +286,7 @@ + GQuark quark; + gchar **quarks_new; + ++ g_quark_init (); + if (quark_seq_id % QUARK_BLOCK_SIZE == 0) + { + quarks_new = g_new (gchar*, quark_seq_id + QUARK_BLOCK_SIZE); From 44c22ef8a8376e90b17be2cfa5c44fa69f5e6b02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Mon, 25 Jun 2018 16:51:09 +0200 Subject: [PATCH 093/312] consul-alerts: Add `meta` and myself as maintainer --- pkgs/servers/monitoring/consul-alerts/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/servers/monitoring/consul-alerts/default.nix b/pkgs/servers/monitoring/consul-alerts/default.nix index 7a1422e1e2d..646a7856788 100644 --- a/pkgs/servers/monitoring/consul-alerts/default.nix +++ b/pkgs/servers/monitoring/consul-alerts/default.nix @@ -15,4 +15,13 @@ buildGoPackage rec { repo = "consul-alerts"; sha256 = "0dff2cpk3lkgjsh97rvlrpacpka0kwm29691diyvj7lb9ydzlx3r"; }; + + meta = with stdenv.lib; { + description = "An extendable open source continuous integration server"; + homepage = https://github.com/AcalephStorage/consul-alerts; + # As per README + platforms = platforms.linux ++ platforms.freebsd ++ platforms.darwin; + license = licenses.gpl2; + maintainers = with maintainers; [ nh2 ]; + }; } From 632624691d2d0310d894329c44be4534059ac45e Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 09:55:36 -0500 Subject: [PATCH 094/312] llvm-3.8: don't set triples a second time on musl I should have "moved" the flags instead of "copying" them earlier :). --- pkgs/development/compilers/llvm/3.8/llvm.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/compilers/llvm/3.8/llvm.nix b/pkgs/development/compilers/llvm/3.8/llvm.nix index 835a5008ef5..a6fb6119817 100644 --- a/pkgs/development/compilers/llvm/3.8/llvm.nix +++ b/pkgs/development/compilers/llvm/3.8/llvm.nix @@ -90,9 +90,6 @@ in stdenv.mkDerivation rec { "-DLLVM_ENABLE_LIBCXX=ON" "-DCAN_TARGET_i386=false" ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" - "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" # Not yet supported "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" From 43a737b81cd3f41f1df0f4f0bef25e048ac9155a Mon Sep 17 00:00:00 2001 From: Clemens Fruhwirth Date: Sat, 23 Jun 2018 14:39:13 +0200 Subject: [PATCH 095/312] Disable fortify and stackprotector hardening for spl/zfs. Linux 4.16 introduces a stackprotector detection script that returns different results for the kernel compilation run and the spl/zfs compilation run, as the setting for hardening are different. This results in a broken ABI between spl/zfs and the compiled kernel, breaking ZFS. Also disabling the fortify and stackprotector hardening, as we do for the kernel, fixes that. --- pkgs/os-specific/linux/spl/default.nix | 2 +- pkgs/os-specific/linux/zfs/default.nix | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix index 778f00d2a95..af3df245fe6 100644 --- a/pkgs/os-specific/linux/spl/default.nix +++ b/pkgs/os-specific/linux/spl/default.nix @@ -25,7 +25,7 @@ let nativeBuildInputs = [ autoreconfHook ] ++ kernel.moduleBuildDependencies; - hardeningDisable = [ "pic" ]; + hardeningDisable = [ "fortify" "stackprotector" "pic" ]; preConfigure = '' substituteInPlace ./module/spl/spl-generic.c --replace /usr/bin/hostid hostid diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index c44d64b8fa8..6eac54ddf65 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -61,7 +61,7 @@ let # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work NIX_CFLAGS_LINK = "-lgcc_s"; - hardeningDisable = [ "pic" ]; + hardeningDisable = [ "fortify" "stackprotector" "pic" ]; preConfigure = '' substituteInPlace ./module/zfs/zfs_ctldir.c --replace "umount -t zfs" "${utillinux}/bin/umount -t zfs" @@ -157,7 +157,7 @@ in { # to be adapted zfsStable = common { # comment/uncomment if breaking kernel versions are known - incompatibleKernelVersion = "4.16"; + incompatibleKernelVersion = null; # this package should point to the latest release. version = "0.7.9"; @@ -176,7 +176,7 @@ in { zfsUnstable = common rec { # comment/uncomment if breaking kernel versions are known - incompatibleKernelVersion = "4.16"; + incompatibleKernelVersion = null; # this package should point to a version / git revision compatible with the latest kernel release version = "2018-05-22"; @@ -199,7 +199,7 @@ in { # also remove boot.zfs.enableLegacyCrypto zfsLegacyCrypto = common { # comment/uncomment if breaking kernel versions are known - incompatibleKernelVersion = "4.16"; + incompatibleKernelVersion = null; # this package should point to a version / git revision compatible with the latest kernel release version = "2018-02-01"; From 851ab7f323c8d369a7cd7d32bdf3d997ebf88518 Mon Sep 17 00:00:00 2001 From: Markus Ankenbrand Date: Mon, 25 Jun 2018 16:56:21 +0200 Subject: [PATCH 096/312] hmmer: init at 3.1b2 --- maintainers/maintainer-list.nix | 5 ++++ .../science/biology/hmmer/default.nix | 28 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 35 insertions(+) create mode 100644 pkgs/applications/science/biology/hmmer/default.nix diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d99ce88d61e..4980e44b5b0 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1707,6 +1707,11 @@ github = "igsha"; name = "Igor Sharonov"; }; + iimog = { + email = "iimog@iimog.org"; + github = "iimog"; + name = "Markus J. Ankenbrand"; + }; ikervagyok = { email = "ikervagyok@gmail.com"; github = "ikervagyok"; diff --git a/pkgs/applications/science/biology/hmmer/default.nix b/pkgs/applications/science/biology/hmmer/default.nix new file mode 100644 index 00000000000..8552aa34c43 --- /dev/null +++ b/pkgs/applications/science/biology/hmmer/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + version = "3.1b2"; + name = "hmmer-${version}"; + + src = fetchurl { + url = "http://eddylab.org/software/hmmer3/${version}/${name}.tar.gz"; + sha256 = "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"; + }; + + meta = with stdenv.lib; { + description = "Biosequence analysis using profile hidden Markov models"; + longDescription = '' +HMMER is used for searching sequence databases for sequence homologs, and for making sequence alignments. It implements methods using probabilistic models called profile hidden Markov models (profile HMMs). + +HMMER is often used together with a profile database, such as Pfam or many of the databases that participate in Interpro. But HMMER can also work with query sequences, not just profiles, just like BLAST. For example, you can search a protein query sequence against a database with phmmer, or do an iterative search with jackhmmer. + +HMMER is designed to detect remote homologs as sensitively as possible, relying on the strength of its underlying probability models. In the past, this strength came at significant computational expense, but as of the new HMMER3 project, HMMER is now essentially as fast as BLAST. + +HMMER can be downloaded and installed as a command line tool on your own hardware, and now it is also more widely accessible to the scientific community via new search servers at the European Bioinformatics Institute. + ''; + homepage = http://hmmer.org/; + license = licenses.gpl3; + maintainers = [ maintainers.iimog ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0bc2589c753..8615fa81c71 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20169,6 +20169,8 @@ with pkgs; varscan = callPackage ../applications/science/biology/varscan { }; + hmmer = callPackage ../applications/science/biology/hmmer { }; + bwa = callPackage ../applications/science/biology/bwa { }; ### SCIENCE/MACHINE LEARNING From eee50238c750d265ade122a61918ecb006dcc4bb Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 25 Jun 2018 16:59:17 +0200 Subject: [PATCH 097/312] multi-ghc-travis: update to current git HEAD --- pkgs/development/tools/haskell/multi-ghc-travis/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix index 697af75a434..3f64f4a925f 100644 --- a/pkgs/development/tools/haskell/multi-ghc-travis/default.nix +++ b/pkgs/development/tools/haskell/multi-ghc-travis/default.nix @@ -18,8 +18,8 @@ mkDerivation { src = fetchFromGitHub { owner = "haskell-CI"; repo = "haskell-ci"; - rev = "05926968f17256cae2308756835a3a24d9de437b"; - sha256 = "0s1g1yq6j6vl2bspc90bwbwp7532pcrmh8fhnz8j6yv9py927mmm"; + rev = "b592d290cff68c7abcbd7f99f41aac998e7b7916"; + sha256 = "0jwaifp9wx6lb27qj191hjm125kq3vndh5lf7ibd86x19h5zmy4c"; }; patches = [ newShellCheck ]; isLibrary = true; From 6056c0672180ff6237f626e990a6db6e17d76f9b Mon Sep 17 00:00:00 2001 From: Michiel Leenaars Date: Sun, 24 Jun 2018 22:38:47 +0200 Subject: [PATCH 098/312] krop: init -> 0.5.0 --- pkgs/applications/graphics/krop/default.nix | 40 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 42 insertions(+) create mode 100644 pkgs/applications/graphics/krop/default.nix diff --git a/pkgs/applications/graphics/krop/default.nix b/pkgs/applications/graphics/krop/default.nix new file mode 100644 index 00000000000..2858086e0d6 --- /dev/null +++ b/pkgs/applications/graphics/krop/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchFromGitHub, python3Packages, libsForQt5, ghostscript }: + +python3Packages.buildPythonApplication rec { + pname = "krop"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "arminstraub"; + repo = pname; + rev = "v${version}"; + sha256 = "0y8z9xr10wbzmi1dg1zpcsf3ihnxrnvlaf72821x3390s3qsnydf"; + }; + + propagatedBuildInputs = with python3Packages; [ + pyqt5 + pypdf2 + poppler-qt5 + libsForQt5.poppler + ghostscript + ]; + + # Disable checks because of interference with older Qt versions // xcb + doCheck = false; + + meta = { + homepage = http://arminstraub.com/software/krop; + description = "Graphical tool to crop the pages of PDF files"; + longDescription = '' + Krop is a tool that allows you to optimise your PDF files, and remove + sections of the page you do not want. A unique feature of krop, at least to my + knowledge, is its ability to automatically split pages into subpages to fit the + limited screensize of devices such as eReaders. This is particularly useful, if + your eReader does not support convenient scrolling. Krop also has a command line + interface. + ''; + license = stdenv.lib.licenses.gpl3Plus; + maintainers = with stdenv.lib.maintainers; [ leenaars ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bdf2d83fe3f..321775d441e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3327,6 +3327,8 @@ with pkgs; kronometer = libsForQt5.callPackage ../tools/misc/kronometer { }; + krop = callPackage ../applications/graphics/krop { }; + elisa = libsForQt5.callPackage ../applications/audio/elisa { }; kdiff3 = libsForQt5.callPackage ../tools/text/kdiff3 { }; From 39e95d1c0c06bd149a1dea5fb3cefec210477847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 25 Jun 2018 17:13:49 +0200 Subject: [PATCH 099/312] newsboat: 2.11.1 -> 2.12 --- pkgs/applications/networking/feedreaders/newsboat/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/feedreaders/newsboat/default.nix b/pkgs/applications/networking/feedreaders/newsboat/default.nix index 24fed4ca852..f10a88ec961 100644 --- a/pkgs/applications/networking/feedreaders/newsboat/default.nix +++ b/pkgs/applications/networking/feedreaders/newsboat/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "newsboat-${version}"; - version = "2.11.1"; + version = "2.12"; src = fetchurl { url = "https://newsboat.org/releases/${version}/${name}.tar.xz"; - sha256 = "1krpxl854h5dwmpr81m1s84cwk8zivdzvw0s5s0i4dba736pvdma"; + sha256 = "1x23zlgljaqf46v7sp8wnkyf6wighvirvn48ankpa34yr8mvrgcv"; }; prePatch = '' From bda7c2fd4b610561137414c397ea97093f29266f Mon Sep 17 00:00:00 2001 From: Matthew Justin Bauer Date: Mon, 25 Jun 2018 11:45:18 -0400 Subject: [PATCH 100/312] gringo: use postPatch patchPhase overrides the patches thing. --- pkgs/tools/misc/gringo/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/misc/gringo/default.nix b/pkgs/tools/misc/gringo/default.nix index 76c60023c06..6c5bac11e73 100644 --- a/pkgs/tools/misc/gringo/default.nix +++ b/pkgs/tools/misc/gringo/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ./gringo-4.5.4-to_string.patch ]; - patchPhase = stdenv.lib.optionalString stdenv.isDarwin '' + postPatch = stdenv.lib.optionalString stdenv.isDarwin '' substituteInPlace ./SConstruct \ --replace \ "env['CXX'] = 'g++'" \ From f3693b06470bdd484a06bf8b25bffe059dcb7ae4 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 11:16:10 -0500 Subject: [PATCH 101/312] make-bootstrap-tools-cross: remove broken i686-musl variant Not terribly difficult to get this working, but until it does remove it so the cross jobset doesn't have the failures this introduces. --- pkgs/stdenv/linux/make-bootstrap-tools-cross.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix index 6c217be4ea3..0dd65bd2478 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix @@ -14,7 +14,6 @@ in with (import ../../../lib).systems.examples; { armv7l = make armv7l-hf-multiplatform; aarch64 = make aarch64-multiplatform; x86_64-musl = make musl64; - i686-musl = make musl32; armv6l-musl = make muslpi; aarch64-musl = make aarch64-multiplatform-musl; riscv64 = make riscv64; From 3a6b91fa903c9a0c919acd97539ebc018fdab9a7 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 10:53:12 -0500 Subject: [PATCH 102/312] glib: also add gobject init patch to fix w/musl --- pkgs/development/libraries/glib/default.nix | 6 +- .../glib/gobject_init_on_demand.patch | 87 +++++++++++++++++++ 2 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/libraries/glib/gobject_init_on_demand.patch diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index a793bf5f752..ff870f525f2 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -54,8 +54,10 @@ stdenv.mkDerivation rec { patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch - ++ optional stdenv.hostPlatform.isMusl ./quark_init_on_demand.patch - ++ [ ./schema-override-variable.patch ]; + ++ optionals stdenv.hostPlatform.isMusl [ + ./quark_init_on_demand.patch + ./gobject_init_on_demand.patch + ] ++ [ ./schema-override-variable.patch ]; outputs = [ "out" "dev" "devdoc" ]; outputBin = "dev"; diff --git a/pkgs/development/libraries/glib/gobject_init_on_demand.patch b/pkgs/development/libraries/glib/gobject_init_on_demand.patch new file mode 100644 index 00000000000..d72d0b61dca --- /dev/null +++ b/pkgs/development/libraries/glib/gobject_init_on_demand.patch @@ -0,0 +1,87 @@ +--- glib-source/gobject/gtype.c 2016-08-17 17:20:47.000000000 +0200 ++++ glib-source/gobject/gtype.c 2016-09-01 21:56:31.777406646 +0200 +@@ -209,6 +209,9 @@ + static gboolean type_node_is_a_L (TypeNode *node, + TypeNode *iface_node); + ++#if !defined(__GLIBC__) ++static void gobject_init (void); ++#endif + + /* --- enumeration --- */ + +@@ -2631,7 +2634,10 @@ + GTypeFlags flags) + { + TypeNode *node; +- ++ ++#if !defined(__GLIBC__) ++ gobject_init(); ++#endif + g_assert_type_system_initialized (); + g_return_val_if_fail (type_id > 0, 0); + g_return_val_if_fail (type_name != NULL, 0); +@@ -2749,6 +2755,9 @@ + TypeNode *pnode, *node; + GType type = 0; + ++#if !defined(__GLIBC__) ++ gobject_init(); ++#endif + g_assert_type_system_initialized (); + g_return_val_if_fail (parent_type > 0, 0); + g_return_val_if_fail (type_name != NULL, 0); +@@ -2804,6 +2813,9 @@ + TypeNode *pnode, *node; + GType type; + ++#if !defined(__GLIBC__) ++ gobject_init(); ++#endif + g_assert_type_system_initialized (); + g_return_val_if_fail (parent_type > 0, 0); + g_return_val_if_fail (type_name != NULL, 0); +@@ -3319,6 +3331,9 @@ + { + TypeNode *node; + ++#if !defined(__GLIBC__) ++ gobject_init(); ++#endif + g_assert_type_system_initialized (); + + node = lookup_type_node_I (type); +@@ -4343,6 +4358,9 @@ + void + g_type_init_with_debug_flags (GTypeDebugFlags debug_flags) + { ++#if !defined(__GLIBC__) ++ gobject_init(); ++#endif + g_assert_type_system_initialized (); + + if (debug_flags) +@@ -4361,6 +4379,9 @@ + void + g_type_init (void) + { ++#if !defined(__GLIBC__) ++ gobject_init(); ++#endif + g_assert_type_system_initialized (); + } + +@@ -4372,6 +4393,12 @@ + TypeNode *node; + GType type; + ++#if !defined(__GLIBC__) ++ static int gobject_initialized = 0; ++ if (gobject_initialized) ++ return; ++ gobject_initialized = 1; ++#endif + /* Ensure GLib is initialized first, see + * https://bugzilla.gnome.org/show_bug.cgi?id=756139 + */ From d92f73e8db803602a569e9fabc7a741564f85e45 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Mon, 11 Jun 2018 17:37:43 +0300 Subject: [PATCH 103/312] rocket: Init at 2018-06-09 --- pkgs/tools/graphics/rocket/default.nix | 31 ++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/tools/graphics/rocket/default.nix diff --git a/pkgs/tools/graphics/rocket/default.nix b/pkgs/tools/graphics/rocket/default.nix new file mode 100644 index 00000000000..51343998950 --- /dev/null +++ b/pkgs/tools/graphics/rocket/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, qmake, qtbase }: + +stdenv.mkDerivation rec { + name = "rocket-${version}"; + version = "2018-06-09"; + + src = fetchFromGitHub { + owner = "rocket"; + repo = "rocket"; + rev = "7bc1e9826cad5dbc63e56371c6aa1798b2a7b50b"; + sha256 = "13bdg2dc6ypk17sz39spqdlb3wai2y085bdb36pls2as2nf22drp"; + }; + + nativeBuildInputs = [ qmake ]; + buildInputs = [ qtbase ]; + + configurePhase = ":"; + + installPhase = '' + mkdir -p $out/bin + cp -r editor/editor $out/bin/ + ''; + + meta = with stdenv.lib; { + description = "A tool for synchronizing music and visuals in demoscene productions"; + homepage = "https://github.com/rocket/rocket"; + license = licenses.zlib; + platforms = platforms.linux; + maintainers = [ maintainers.dezgeg ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c6432030ee4..50736caab83 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4639,6 +4639,8 @@ with pkgs; remarshal = callPackage ../development/tools/remarshal { }; + rocket = libsForQt5.callPackage ../tools/graphics/rocket { }; + rtaudio = callPackage ../development/libraries/audio/rtaudio { }; rtmidi = callPackage ../development/libraries/audio/rtmidi { }; From 6a2df77563de3869bd0b6b8efdbea33ff8750340 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Mon, 25 Jun 2018 13:21:36 -0400 Subject: [PATCH 104/312] typora: XDG_RUNTIME_DIR doesn't need to be set --- pkgs/applications/editors/typora/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix index efde7242793..d07b1ba0ae5 100644 --- a/pkgs/applications/editors/typora/default.nix +++ b/pkgs/applications/editors/typora/default.nix @@ -80,7 +80,6 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/typora \ "''${gappsWrapperArgs[@]}" \ --suffix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ - --set XDG_RUNTIME_DIR "XDG-RUNTIME-DIR" \ --prefix XDG_DATA_DIRS : "${gnome3.defaultIconTheme}/share" # Fix the desktop link From 2052323a7884c73fc7a137691b9690d821b906a6 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 11:34:57 -0500 Subject: [PATCH 105/312] ghc-8.4.3: minor fixes for cross-musl, same as used with 8.2.2 Patches are no longer needed, seem to be more or less upstreamed. --- pkgs/development/compilers/ghc/8.4.3.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix index 4d2f3894f17..10035af90a8 100644 --- a/pkgs/development/compilers/ghc/8.4.3.nix +++ b/pkgs/development/compilers/ghc/8.4.3.nix @@ -49,7 +49,8 @@ let '' + stdenv.lib.optionalString enableIntegerSimple '' INTEGER_LIBRARY = integer-simple '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' - Stage1Only = YES + Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"} + CrossCompilePrefix = ${targetPrefix} HADDOCK_DOCS = NO BUILD_SPHINX_HTML = NO BUILD_SPHINX_PDF = NO From 5d99d322e94d3a8f728413013a36bb43197262a3 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Wed, 20 Jun 2018 19:48:12 -0700 Subject: [PATCH 106/312] clightning: init at 0.6 c-lightning is a standard compliant implementation of the Lightning Network protocol. The Lightning Network is a scalability solution for Bitcoin, enabling secure and instant transfer of funds between any two parties for any amount. --- pkgs/applications/altcoins/clightning.nix | 47 +++++++++++++++++++++++ pkgs/applications/altcoins/default.nix | 1 + pkgs/top-level/all-packages.nix | 3 ++ 3 files changed, 51 insertions(+) create mode 100644 pkgs/applications/altcoins/clightning.nix diff --git a/pkgs/applications/altcoins/clightning.nix b/pkgs/applications/altcoins/clightning.nix new file mode 100644 index 00000000000..73cdd3664ea --- /dev/null +++ b/pkgs/applications/altcoins/clightning.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchpatch, python3, pkgconfig, which, libtool, autoconf, automake, + autogen, git, sqlite, gmp, zlib, fetchFromGitHub }: + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "clightning-${version}"; + version = "0.6"; + + src = fetchFromGitHub { + fetchSubmodules = true; + owner = "ElementsProject"; + repo = "lightning"; + rev = "v${version}"; + sha256 = "1xbi8c7kn21wj255fxnb9s0sqnzbn3wsz4p96z084k8mw1nc71vn"; + }; + + enableParallelBuilding = true; + + buildInputs = [ which sqlite gmp zlib autoconf libtool automake autogen python3 pkgconfig ]; + + makeFlags = [ "prefix=$(out)" ]; + + configurePhase = '' + ./configure --prefix=$out --disable-developer --disable-valgrind + ''; + + postPatch = '' + echo "" > tools/refresh-submodules.sh + patchShebangs tools/generate-wire.py + ''; + + doCheck = false; + + meta = { + description = "A Bitcoin Lightning Network implementation in C"; + longDescription= '' + c-lightning is a standard compliant implementation of the Lightning + Network protocol. The Lightning Network is a scalability solution for + Bitcoin, enabling secure and instant transfer of funds between any two + parties for any amount. + ''; + homepage = https://github.com/ElementsProject/lightning; + maintainers = with maintainers; [ jb55 ]; + license = licenses.mit; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/altcoins/default.nix b/pkgs/applications/altcoins/default.nix index 1a0e77dc12f..385e9e53522 100644 --- a/pkgs/applications/altcoins/default.nix +++ b/pkgs/applications/altcoins/default.nix @@ -6,6 +6,7 @@ rec { bitcoin = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; }; bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; }; + clightning = callPackage ./clightning.nix { }; bitcoin-abc = libsForQt5.callPackage ./bitcoin-abc.nix { boost = boost165; withGui = true; }; bitcoind-abc = callPackage ./bitcoin-abc.nix { boost = boost165; withGui = false; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c1c73cd8d99..57488110a4a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15012,7 +15012,10 @@ with pkgs; schismtracker = callPackage ../applications/audio/schismtracker { }; altcoins = recurseIntoAttrs ( callPackage ../applications/altcoins { } ); + bitcoin = altcoins.bitcoin; + clightning = altcoins.clightning; + bitcoin-xt = altcoins.bitcoin-xt; cryptop = altcoins.cryptop; From 32628d18c3aacd0fbadd9d81ac8613a3f2e302fd Mon Sep 17 00:00:00 2001 From: jD91mZM2 Date: Mon, 25 Jun 2018 21:18:57 +0200 Subject: [PATCH 107/312] xidlehook: 0.4.8 -> 0.4.9 (#42573) --- pkgs/tools/X11/xidlehook/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/X11/xidlehook/default.nix b/pkgs/tools/X11/xidlehook/default.nix index e22338dbc71..2faa8ead071 100644 --- a/pkgs/tools/X11/xidlehook/default.nix +++ b/pkgs/tools/X11/xidlehook/default.nix @@ -2,7 +2,7 @@ rustPlatform.buildRustPackage rec { name = "xidlehook-${version}"; - version = "0.4.8"; + version = "0.4.9"; doCheck = false; @@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec { repo = "xidlehook"; rev = version; - sha256 = "1125n5szgq7bziz3lkrhb2a2iac93ap63g2xr78ap7b9i3gxs3xh"; + sha256 = "1l2kmymwxal9v5g3q21i985yc201dpybp85qfws2n5rzw8qpg1dw"; }; cargoBuildFlags = lib.optionals (!stdenv.isLinux) ["--no-default-features" "--features" "pulse"]; From 68bf1063f02d7c1e6b2caa7cf725b884f1865296 Mon Sep 17 00:00:00 2001 From: gnidorah Date: Mon, 25 Jun 2018 22:29:25 +0300 Subject: [PATCH 108/312] rambox: fix build (#42577) --- .../instant-messengers/rambox/bare.nix | 5 ++--- .../instant-messengers/rambox/default.nix | 5 ++--- .../rambox/disable-tooltips.patch | 19 ------------------- .../instant-messengers/rambox/sencha/bare.nix | 2 +- 4 files changed, 5 insertions(+), 26 deletions(-) delete mode 100644 pkgs/applications/networking/instant-messengers/rambox/disable-tooltips.patch diff --git a/pkgs/applications/networking/instant-messengers/rambox/bare.nix b/pkgs/applications/networking/instant-messengers/rambox/bare.nix index 49cd81ac923..334c50814d7 100644 --- a/pkgs/applications/networking/instant-messengers/rambox/bare.nix +++ b/pkgs/applications/networking/instant-messengers/rambox/bare.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, fetchNodeModules, nodejs-8_x, ruby, sencha -, auth0ClientID, auth0Domain, disableTooltips }: +, auth0ClientID, auth0Domain }: stdenv.mkDerivation rec { name = "rambox-bare-${version}"; @@ -21,8 +21,7 @@ stdenv.mkDerivation rec { sha256 = "1v7zwp8vs2pgy04qi92lvnxgfwkyxbid04lab8925wg1pvm2pk3k"; }; - patches = [ ./isDev.patch ] - ++ stdenv.lib.optionals disableTooltips [ ./disable-tooltips.patch ]; + patches = [ ./isDev.patch ]; configurePhase = '' echo 'var auth0Cfg = { clientID: "${auth0ClientID}", domain: "${auth0Domain}" };' > env.js diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix index a601db8c8da..b6e9c921025 100644 --- a/pkgs/applications/networking/instant-messengers/rambox/default.nix +++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix @@ -1,14 +1,13 @@ { stdenv, newScope, makeWrapper, electron, xdg_utils, makeDesktopItem , auth0ClientID ? "0spuNKfIGeLAQ_Iki9t3fGxbfJl3k8SU" -, auth0Domain ? "nixpkgs.auth0.com" -, disableTooltips ? false }: +, auth0Domain ? "nixpkgs.auth0.com" }: let callPackage = newScope self; self = { fetchNodeModules = callPackage ./fetchNodeModules.nix {}; rambox-bare = callPackage ./bare.nix { - inherit auth0ClientID auth0Domain disableTooltips; + inherit auth0ClientID auth0Domain; }; sencha = callPackage ./sencha {}; }; diff --git a/pkgs/applications/networking/instant-messengers/rambox/disable-tooltips.patch b/pkgs/applications/networking/instant-messengers/rambox/disable-tooltips.patch deleted file mode 100644 index 5ddaa9d5177..00000000000 --- a/pkgs/applications/networking/instant-messengers/rambox/disable-tooltips.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- index.html.orig 2017-12-16 20:06:03.401298402 +0300 -+++ ./index.html 2017-12-16 20:06:21.474484436 +0300 -@@ -43,14 +43,14 @@ - - - -- --> - - - diff --git a/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix b/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix index 46157178fc1..ca82f30e2d1 100644 --- a/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix +++ b/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, gzip, which, unzip, jdk }: let - version = "6.5.3"; + version = "6.5.3.6"; srcs = { i686-linux = fetchurl { url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-i386.sh.zip"; From 2f2e79be39e8c0ca2a520b2a2352ff59a99b1797 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Mon, 25 Jun 2018 22:05:53 +0200 Subject: [PATCH 109/312] haskellPackages: disable profiling ghc-heap-view ghc-datasize --- pkgs/development/haskell-modules/configuration-common.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 20a908858e9..439e033acb0 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -61,6 +61,10 @@ self: super: { statistics = dontCheck super.statistics; vector-builder = dontCheck super.vector-builder; + # These packages (and their reverse deps) cannot be built with profiling enabled. + ghc-heap-view = disableLibraryProfiling super.ghc-heap-view; + ghc-datasize = disableLibraryProfiling super.ghc-datasize; + # This test keeps being aborted because it runs too quietly for too long Lazy-Pbkdf2 = if pkgs.stdenv.isi686 then dontCheck super.Lazy-Pbkdf2 else super.Lazy-Pbkdf2; From 449fbec9be1865fca59e973f05dd06d213820c5e Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 15:47:22 -0500 Subject: [PATCH 110/312] ghcHEAD: add musl and cross fixes recently applied to 8.4.3 and 8.2.2 --- pkgs/development/compilers/ghc/head.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index 8ccd72ef55a..ec9ff56c458 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -50,7 +50,8 @@ let '' + stdenv.lib.optionalString enableIntegerSimple '' INTEGER_LIBRARY = integer-simple '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' - Stage1Only = YES + Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"} + CrossCompilePrefix = ${targetPrefix} HADDOCK_DOCS = NO BUILD_SPHINX_HTML = NO BUILD_SPHINX_PDF = NO From 61e3bd20a04f9199744e9d0f38b3b7a5d442bdbd Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 15:49:00 -0500 Subject: [PATCH 111/312] ghcHEAD: move hardeningDisable definition for cleaner diff against 8.4.3 NFCI (no functionality change intendend) --- pkgs/development/compilers/ghc/head.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index ec9ff56c458..a71b08cd39f 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -167,10 +167,10 @@ stdenv.mkDerivation rec { # that in turn causes GHCi to abort stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; - hardeningDisable = [ "format" ]; - checkTarget = "test"; + hardeningDisable = [ "format" ]; + postInstall = '' for bin in "$out"/lib/${name}/bin/*; do isELF "$bin" || continue From 0e40e0cc7d4748c3a1c66e2b37f0d95b9ffc0772 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 25 Jun 2018 15:49:32 -0500 Subject: [PATCH 112/312] ghcHEAD: useLLVM needed for musl here as well --- pkgs/development/compilers/ghc/head.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index a71b08cd39f..43e6473fc24 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -7,7 +7,7 @@ , libffi, libiconv ? null, ncurses -, useLLVM ? !targetPlatform.isx86 +, useLLVM ? !targetPlatform.isx86 || targetPlatform.isMusl , # LLVM is conceptually a run-time-only depedendency, but for # non-x86, we need LLVM to bootstrap later stages, so it becomes a # build-time dependency too. From 73e2f608377a81b7ad3ff94c3e5586bded36ac71 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 22 Jun 2018 21:49:41 -0400 Subject: [PATCH 113/312] libiconv: add "enableShared" option When false, shared libraries will be disabled. also adds patch to *really* disable shared libiconv. --- pkgs/development/libraries/libiconv/default.nix | 9 +++++++-- .../apple-source-releases/libiconv/default.nix | 14 +++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix index 169a4d38bb5..0e900ca9db6 100644 --- a/pkgs/development/libraries/libiconv/default.nix +++ b/pkgs/development/libraries/libiconv/default.nix @@ -1,6 +1,7 @@ { fetchurl, stdenv, lib , buildPlatform, hostPlatform , enableStatic ? stdenv.hostPlatform.useAndroidPrebuilt +, enableShared ? !stdenv.hostPlatform.useAndroidPrebuilt }: # assert !stdenv.isLinux || hostPlatform != buildPlatform; # TODO: improve on cross @@ -23,10 +24,14 @@ stdenv.mkDerivation rec { lib.optionalString ((hostPlatform != buildPlatform && hostPlatform.libc == "msvcrt") || stdenv.cc.nativeLibc) '' sed '/^_GL_WARN_ON_USE (gets/d' -i srclib/stdio.in.h - ''; + '' + + lib.optionalString (!enableShared) '' + sed -i -e '/preload/d' Makefile.in + ''; configureFlags = lib.optional stdenv.isFreeBSD "--with-pic" - ++ lib.optional enableStatic "--enable-static"; + ++ lib.optional enableStatic "--enable-static" + ++ lib.optional (!enableShared) "--disable-shared"; meta = { description = "An iconv(3) implementation"; diff --git a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix index bb9e4fa755d..369556fd5a1 100644 --- a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix +++ b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix @@ -1,15 +1,19 @@ -{ stdenv, appleDerivation, autoreconfHook, targetPlatform, enableStatic ? targetPlatform.isiOS }: +{ stdenv, appleDerivation, lib, autoreconfHook, targetPlatform +, enableStatic ? targetPlatform.isiOS +, enableShared ? !targetPlatform.isiOS +}: appleDerivation { postUnpack = "sourceRoot=$sourceRoot/libiconv"; - preConfigure = stdenv.lib.optionalString stdenv.hostPlatform.isiOS '' + preConfigure = lib.optionalString stdenv.hostPlatform.isiOS '' sed -i 's/darwin\*/ios\*/g' configure libcharset/configure ''; - configureFlags = stdenv.lib.optionals enableStatic [ "--enable-static" "--disable-shared" ]; + configureFlags = lib.optional enableStatic "--enable-static" + ++ lib.optional (!enableShared) "--disable-shared"; - postInstall = stdenv.lib.optionalString (!enableStatic) '' + postInstall = lib.optionalString (!enableStatic) '' mv $out/lib/libiconv.dylib $out/lib/libiconv-nocharset.dylib ${stdenv.cc.bintools.targetPrefix}install_name_tool -id $out/lib/libiconv-nocharset.dylib $out/lib/libiconv-nocharset.dylib @@ -26,6 +30,6 @@ appleDerivation { ]; meta = { - platforms = stdenv.lib.platforms.darwin; + platforms = lib.platforms.darwin; }; } From 7652b2ef16375ed1e38056c69da4125b0c25c3f2 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 24 Jun 2018 16:33:20 -0400 Subject: [PATCH 114/312] android: add --build-id to ldflags the gcc in android does not have this on by default. Doing this will fix some of the errors in cross-trunk: https://hydra.nixos.org/build/76354538/nixlog/11 This is related to how separate debug info is handled in Nixpkgs. --- pkgs/development/mobile/androidenv/androidndk-pkgs.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/mobile/androidenv/androidndk-pkgs.nix b/pkgs/development/mobile/androidenv/androidndk-pkgs.nix index 5c42f7bc328..011b8eb0099 100644 --- a/pkgs/development/mobile/androidenv/androidndk-pkgs.nix +++ b/pkgs/development/mobile/androidenv/androidndk-pkgs.nix @@ -58,6 +58,9 @@ rec { binutils = wrapBintoolsWith { bintools = binaries; libc = targetAndroidndkPkgs.libraries; + extraBuildCommands = '' + echo "--build-id" >> $out/nix-support/libc-ldflags + ''; }; gcc = wrapCCWith { From d9155904b347679163c6fe6702f8ec6384bd8c40 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 24 Jun 2018 16:42:10 -0400 Subject: [PATCH 115/312] androidndk: add fullNDK option Setting this to true will disable removing some of the unused parts of the NDK toolchain that is unused in Nixpkgs but may be used by others. /cc @bkchr --- pkgs/development/mobile/androidenv/androidndk.nix | 6 ++++++ pkgs/development/mobile/androidenv/androidndk_r8e.nix | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/pkgs/development/mobile/androidenv/androidndk.nix b/pkgs/development/mobile/androidenv/androidndk.nix index 150d8d75869..1e8ea65c73d 100644 --- a/pkgs/development/mobile/androidenv/androidndk.nix +++ b/pkgs/development/mobile/androidenv/androidndk.nix @@ -1,6 +1,9 @@ { stdenv, fetchurl, zlib, ncurses5, unzip, lib, makeWrapper , coreutils, file, findutils, gawk, gnugrep, gnused, jdk, which , platformTools, python3, libcxx, version, sha256 +, fullNDK ? false # set to true if you want other parts of the NDK + # that is not used by Nixpkgs like sources, + # examples, docs, or LLVM toolchains }: stdenv.mkDerivation rec { @@ -55,11 +58,14 @@ stdenv.mkDerivation rec { } cd ${pkg_path} + '' + lib.optionalString (!fullNDK) '' # Steps to reduce output size rm -rf docs sources tests # We only support cross compiling with gcc for now rm -rf toolchains/*-clang* toolchains/llvm* + '' + + '' find ${pkg_path}/toolchains \( \ \( -type f -a -name "*.so*" \) -o \ \( -type f -a -perm -0100 \) \ diff --git a/pkgs/development/mobile/androidenv/androidndk_r8e.nix b/pkgs/development/mobile/androidenv/androidndk_r8e.nix index 44fa961b992..3c12e16277d 100644 --- a/pkgs/development/mobile/androidenv/androidndk_r8e.nix +++ b/pkgs/development/mobile/androidenv/androidndk_r8e.nix @@ -1,6 +1,9 @@ { stdenv, fetchurl, zlib, ncurses, lib, makeWrapper , coreutils, file, findutils, gawk, gnugrep, gnused, jdk, which , platformTools +, fullNDK ? false # set to true if you want other parts of the NDK + # that is not used by Nixpkgs like sources, + # examples, docs, or LLVM toolchains }: stdenv.mkDerivation rec { @@ -49,11 +52,13 @@ stdenv.mkDerivation rec { -d $out/libexec/${name} < ${ ./make-standalone-toolchain_r8e.patch } cd ${pkg_path} + '' + lib.optionalString (!fullNDK) '' # Steps to reduce output size rm -rf docs sources tests # We only support cross compiling with gcc for now rm -rf toolchains/*-clang* toolchains/llvm-* + '' + '' find ${pkg_path}/toolchains \( \ \( -type f -a -name "*.so*" \) -o \ \( -type f -a -perm -0100 \) \ From 2c2169c8810a5be2456ed2340efb8a8064e1db2b Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 24 Jun 2018 16:48:03 -0400 Subject: [PATCH 116/312] ghc: build shared on android We run into issues otherwise --- pkgs/development/compilers/ghc/8.4.3.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix index 10035af90a8..702bf1cf9b9 100644 --- a/pkgs/development/compilers/ghc/8.4.3.nix +++ b/pkgs/development/compilers/ghc/8.4.3.nix @@ -22,7 +22,7 @@ , # Whether to build dynamic libs for the standard library (on the target # platform). Static libs are always built. - enableShared ? !targetPlatform.isWindows && !targetPlatform.useAndroidPrebuilt && !targetPlatform.useiOSPrebuilt + enableShared ? !targetPlatform.isWindows && !targetPlatform.useiOSPrebuilt , # Whetherto build terminfo. enableTerminfo ? !targetPlatform.isWindows From 5000cc555eb35292e3819f73ee497957d1311ab0 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 24 Jun 2018 19:15:36 -0400 Subject: [PATCH 117/312] android: define __ANDROID_API__ in cflags This is needed for targeting older apis. --- pkgs/development/mobile/androidenv/androidndk-pkgs.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/mobile/androidenv/androidndk-pkgs.nix b/pkgs/development/mobile/androidenv/androidndk-pkgs.nix index 011b8eb0099..0f43705c0d4 100644 --- a/pkgs/development/mobile/androidenv/androidndk-pkgs.nix +++ b/pkgs/development/mobile/androidenv/androidndk-pkgs.nix @@ -67,7 +67,10 @@ rec { cc = binaries; bintools = binutils; libc = targetAndroidndkPkgs.libraries; - extraBuildCommands = lib.optionalString targetPlatform.isAarch32 (let + extraBuildCommands = '' + echo "-D__ANDROID_API__=${targetPlatform.sdkVer}" >> $out/nix-support/cc-cflags + '' + + lib.optionalString targetPlatform.isAarch32 (let p = targetPlatform.platform.gcc or {} // targetPlatform.parsed.abi; flags = lib.concatLists [ From 31eac6fd0088710c193efebb632f1c97ef3045a6 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 24 Jun 2018 23:15:09 -0400 Subject: [PATCH 118/312] impure.nix: fix handling of localSystem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If we passed a localSystem in, we don’t want the current system to override it. Now we check for localSystem first to avoid getting "mixed" localSystem values from commands like this: nix-build --arg localSystem '{config="x86_64-unknown-linux-musl";}' -A hello Which would eventually evaluate localSystem to this: { config = "x86_64-unknown-linux-musl"; system = "x86_64-darwin"; } & Nix would not be able to run it correctly. Fixes #41599 /cc @Ericson2314 --- pkgs/top-level/impure.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/impure.nix b/pkgs/top-level/impure.nix index df462665dd1..dafa351c4e4 100644 --- a/pkgs/top-level/impure.nix +++ b/pkgs/top-level/impure.nix @@ -83,5 +83,6 @@ import ./. (builtins.removeAttrs args [ "system" "platform" ] // { inherit config overlays crossSystem; # Fallback: Assume we are building packages on the current (build, in GNU # Autotools parlance) system. - localSystem = { system = builtins.currentSystem; } // localSystem; + localSystem = (if args ? localSystem then {} + else { system = builtins.currentSystem; }) // localSystem; }) From 69cad91b5c34b9ff474e973d39dd114cd91e6e82 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 25 Jun 2018 09:38:16 -0400 Subject: [PATCH 119/312] =?UTF-8?q?ghc843:=20don=E2=80=99t=20apply=20strip?= =?UTF-8?q?ping=20in=20android?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This breaks some library symbols apparently. ARM symbols must be incorrectly stripped. Also some very weird issues with patchelf. --- pkgs/development/compilers/ghc/8.4.3.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix index 702bf1cf9b9..0f5a43d57ed 100644 --- a/pkgs/development/compilers/ghc/8.4.3.nix +++ b/pkgs/development/compilers/ghc/8.4.3.nix @@ -75,7 +75,7 @@ let targetCC = builtins.head toolsForTarget; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (rec { version = "8.4.3"; name = "${targetPrefix}ghc-${version}"; @@ -209,4 +209,8 @@ stdenv.mkDerivation rec { inherit (ghc.meta) license platforms; }; -} +} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt { + dontStrip = true; + dontPatchELF = true; + noAuditTmpdir = true; +}) From a47a16a887630c52d7c6b5c63ec07b5614dbd4a0 Mon Sep 17 00:00:00 2001 From: tim put Date: Mon, 25 Jun 2018 16:12:26 -0600 Subject: [PATCH 120/312] openmvg: 1.1 -> 1.3 --- pkgs/applications/science/misc/openmvg/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/misc/openmvg/default.nix b/pkgs/applications/science/misc/openmvg/default.nix index b139f30b3d1..0f0c6aaf74d 100644 --- a/pkgs/applications/science/misc/openmvg/default.nix +++ b/pkgs/applications/science/misc/openmvg/default.nix @@ -8,7 +8,7 @@ , enableDocs ? false }: stdenv.mkDerivation rec { - version = "1.1"; + version = "1.3"; name = "openmvg-${version}"; src = fetchgit { @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { # Tag v1.1 rev = "refs/tags/v${version}"; - sha256 = "1di9i7yxnkdvl8lhflynmqw62gaxwv00r1sd7nzzs9qn63g0af0f"; + sha256 = "1cf1gbcl8zvxp4rr6f6vaxwcg0yzc4xban2b5p9zy1m4k1f81zyb"; fetchSubmodules = true; }; From 2c766d8765c8522d053cf7f1a4aa7ba0f407296d Mon Sep 17 00:00:00 2001 From: tim put Date: Mon, 25 Jun 2018 16:13:26 -0600 Subject: [PATCH 121/312] add timput to maintainers --- maintainers/maintainer-list.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d99ce88d61e..8a075ba35b6 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3871,6 +3871,11 @@ github = "timor"; name = "timor"; }; + timput = { + email = "tim@timput.com"; + github = "TimPut"; + name = "Tim Put"; + }; tiramiseb = { email = "sebastien@maccagnoni.eu"; github = "tiramiseb"; From 1fe63c8ad119f3789d14fb208529ed83987bd356 Mon Sep 17 00:00:00 2001 From: laMudri Date: Mon, 25 Jun 2018 23:15:01 +0100 Subject: [PATCH 122/312] nixos/ibus: detail workaround for issue #11558 --- nixos/modules/i18n/input-method/default.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nixos/modules/i18n/input-method/default.xml b/nixos/modules/i18n/input-method/default.xml index 45d6daf068b..c44105c8749 100644 --- a/nixos/modules/i18n/input-method/default.xml +++ b/nixos/modules/i18n/input-method/default.xml @@ -68,6 +68,18 @@ ibus.engines = with pkgs.ibus-engines; [ table table-others ]; To use any input method, the package must be added in the configuration, as shown above, and also (after running nixos-rebuild) the input method must be added from IBus' preference dialog. + + + Troubleshooting + If IBus works in some applications but not others, a likely cause of + this is that IBus is depending on a different version of + glib to what the applications are depending on. This can + be checked by running nix-store -q --requisites <path> | grep + glib, where <path> is the path of either + IBus or an application in the Nix store. The glib + packages must match exactly. If they do not, uninstalling and reinstalling + the application is a likely fix. +
Fcitx From 460b9943033fd0463206ecaddd8ce5c5a32ed504 Mon Sep 17 00:00:00 2001 From: volth Date: Mon, 25 Jun 2018 22:18:34 +0000 Subject: [PATCH 123/312] perl-packages.nix: duplicate packages -> aliases --- pkgs/top-level/perl-packages.nix | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 00689e1f5b2..57c76b678ff 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -4505,19 +4505,7 @@ let self = _self // overrides; _self = with self; { }; }; - DigestHMAC_SHA1 = buildPerlPackage { - name = "Digest-HMAC_SHA1-1.03"; - src = fetchurl { - url = mirror://cpan/authors/id/G/GA/GAAS/Digest-HMAC-1.03.tar.gz; - sha256 = "0naavabbm1c9zgn325ndy66da4insdw9l3mrxwxdfi7i7xnjrirv"; - }; - meta = { - description = "Keyed-Hashing for Message Authentication"; - license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; - maintainers = with maintainers; [ ]; - platforms = stdenv.lib.platforms.unix; - }; - }; + DigestHMAC_SHA1 = DigestHMAC; DigestJHash = buildPerlPackage rec { name = "Digest-JHash-0.10"; @@ -14183,20 +14171,7 @@ let self = _self // overrides; _self = with self; { }; }; - SubExporterUtil = let version = "0.987"; in buildPerlPackage { - name = "Sub-Exporter-Util-${version}"; - src = fetchurl { - url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-${version}.tar.gz"; - sha256 = "1ml3n1ck4ln9qjm2mcgkczj1jb5n1fkscz9c4x23v4db0glb4g2l"; - }; - propagatedBuildInputs = [ DataOptList ParamsUtil SubInstall ]; - meta = { - inherit version; - homepage = https://github.com/rjbs/sub-exporter; - description = "A sophisticated exporter for custom-built routines"; - license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; + SubExporterUtil = SubExporter; SubIdentify = buildPerlPackage rec { name = "Sub-Identify-0.14"; From 5d534c2663ad49f3dbdfffb27a2a550825980250 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Tue, 26 Jun 2018 01:03:56 +0200 Subject: [PATCH 124/312] cutelyst: init at 2.4.1 Co-authored-by: Maximilian Bosch Co-authored-by: elseym --- .../libraries/cutelyst/default.nix | 45 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 47 insertions(+) create mode 100644 pkgs/development/libraries/cutelyst/default.nix diff --git a/pkgs/development/libraries/cutelyst/default.nix b/pkgs/development/libraries/cutelyst/default.nix new file mode 100644 index 00000000000..2d31f734166 --- /dev/null +++ b/pkgs/development/libraries/cutelyst/default.nix @@ -0,0 +1,45 @@ +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, makeWrapper +, qtbase, libuuid, libcap, uwsgi, grantlee }: + +stdenv.mkDerivation rec { + name = "cutelyst-${version}"; + version = "2.4.1"; + + src = fetchFromGitHub { + owner = "cutelyst"; + repo = "cutelyst"; + rev = "v${version}"; + sha256 = "1kfapd5dkyw02g3j4gshxl16b90xdf5vgfhqrkdzix072f7hy5sl"; + }; + + nativeBuildInputs = [ cmake pkgconfig makeWrapper ]; + buildInputs = [ qtbase libuuid libcap uwsgi grantlee ]; + + cmakeFlags = [ + "-DPLUGIN_UWSGI=ON" + "-DPLUGIN_STATICCOMPRESSED=ON" + "-DPLUGIN_CSRFPROTECTION=ON" + "-DPLUGIN_VIEW_GRANTLEE=ON" + ]; + + preBuild = '' + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:`pwd`/Cutelyst:`pwd`/EventLoopEPoll" + ''; + + postBuild = '' + unset LD_LIBRARY_PATH + ''; + + postInstall = '' + for prog in $out/bin/*; do + wrapProgram "$prog" --set QT_PLUGIN_PATH '${qtbase}/${qtbase.qtPluginPrefix}' + done + ''; + + meta = with lib; { + description = "C++ Web Framework built on top of Qt"; + homepage = https://cutelyst.org/; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ fpletz ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 50736caab83..31ad7bed63f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8884,6 +8884,8 @@ with pkgs; cutee = callPackage ../development/libraries/cutee { }; + cutelyst = libsForQt5.callPackage ../development/libraries/cutelyst { }; + cxxtools = callPackage ../development/libraries/cxxtools { }; cwiid = callPackage ../development/libraries/cwiid { }; From 1d235be2086dde14050fc811dc37528dec301783 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Tue, 26 Jun 2018 01:11:00 +0200 Subject: [PATCH 125/312] virtlyst: init at 1.1.0 Co-authored-by: elseym --- .../virtlyst/add-admin-password-env.patch | 14 ++++++++ pkgs/servers/web-apps/virtlyst/default.nix | 32 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 48 insertions(+) create mode 100644 pkgs/servers/web-apps/virtlyst/add-admin-password-env.patch create mode 100644 pkgs/servers/web-apps/virtlyst/default.nix diff --git a/pkgs/servers/web-apps/virtlyst/add-admin-password-env.patch b/pkgs/servers/web-apps/virtlyst/add-admin-password-env.patch new file mode 100644 index 00000000000..e20acdb04a9 --- /dev/null +++ b/pkgs/servers/web-apps/virtlyst/add-admin-password-env.patch @@ -0,0 +1,14 @@ +diff --git a/src/virtlyst.cpp b/src/virtlyst.cpp +index acd195d..8809e4f 100644 +--- a/src/virtlyst.cpp ++++ b/src/virtlyst.cpp +@@ -340,7 +340,8 @@ bool Virtlyst::createDB() + qCCritical(VIRTLYST) << "Error creating database" << query.lastError().text(); + return false; + } +- const QString password = QString::fromLatin1(QUuid::createUuid().toRfc4122().toHex()); ++ const QString password = qEnvironmentVariable("VIRTLYST_ADMIN_PASSWORD", ++ QString::fromLatin1(QUuid::createUuid().toRfc4122().toHex())); + query.bindValue(QStringLiteral(":password"), QString::fromLatin1( + CredentialPassword::createPassword(password.toUtf8(), QCryptographicHash::Sha256, 10000, 16, 16))); + if (!query.exec()) { diff --git a/pkgs/servers/web-apps/virtlyst/default.nix b/pkgs/servers/web-apps/virtlyst/default.nix new file mode 100644 index 00000000000..c6245f9b40d --- /dev/null +++ b/pkgs/servers/web-apps/virtlyst/default.nix @@ -0,0 +1,32 @@ +{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, autoPatchelfHook +, qtbase, libvirt, cutelyst, grantlee }: + +stdenv.mkDerivation rec { + name = "virtlyst-${version}"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "cutelyst"; + repo = "Virtlyst"; + rev = "v${version}"; + sha256 = "1rqv93dys666wsqbg1lvl3pjl8gpdx3dc3y71m3r8apalgr11ikw"; + }; + + nativeBuildInputs = [ cmake pkgconfig autoPatchelfHook ]; + buildInputs = [ qtbase libvirt cutelyst grantlee ]; + + installPhase = '' + mkdir -p $out/lib + cp src/libVirtlyst.so $out/lib + cp -r ../root $out + ''; + + patches = [ ./add-admin-password-env.patch ]; + + meta = with lib; { + description = "Web interface to manage virtual machines with libvirt"; + homepage = https://github.com/cutelyst/Virtlyst; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ fpletz ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 31ad7bed63f..9cae3fa291d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13171,6 +13171,8 @@ with pkgs; unifiTesting; unifi = unifiStable; + virtlyst = libsForQt5.callPackage ../servers/web-apps/virtlyst { }; + virtuoso6 = callPackage ../servers/sql/virtuoso/6.x.nix { }; virtuoso7 = callPackage ../servers/sql/virtuoso/7.x.nix { }; From 2ef3ae559068c1ea495ec1fa007c9acd00575611 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Tue, 26 Jun 2018 01:16:51 +0200 Subject: [PATCH 126/312] virtlyst service: init --- nixos/modules/module-list.nix | 1 + nixos/modules/services/web-apps/virtlyst.nix | 72 ++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 nixos/modules/services/web-apps/virtlyst.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 193ef0d1c96..c425f3c6507 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -662,6 +662,7 @@ ./services/web-apps/tt-rss.nix ./services/web-apps/selfoss.nix ./services/web-apps/quassel-webserver.nix + ./services/web-apps/virtlyst.nix ./services/web-apps/youtrack.nix ./services/web-servers/apache-httpd/default.nix ./services/web-servers/caddy.nix diff --git a/nixos/modules/services/web-apps/virtlyst.nix b/nixos/modules/services/web-apps/virtlyst.nix new file mode 100644 index 00000000000..2fc67435ce8 --- /dev/null +++ b/nixos/modules/services/web-apps/virtlyst.nix @@ -0,0 +1,72 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.virtlyst; + stateDir = "/var/lib/virtlyst"; + + ini = pkgs.writeText "virtlyst-config.ini" '' + [wsgi] + master = true + threads = auto + http-socket = ${cfg.httpSocket} + application = ${pkgs.virtlyst}/lib/libVirtlyst.so + chdir2 = ${stateDir} + static-map = /static=${pkgs.virtlyst}/root/static + + [Cutelyst] + production = true + DatabasePath = virtlyst.sqlite + TemplatePath = ${pkgs.virtlyst}/root/src + + [Rules] + cutelyst.* = true + virtlyst.* = true + ''; + +in + +{ + + options.services.virtlyst = { + enable = mkEnableOption "Virtlyst libvirt web interface"; + + adminPassword = mkOption { + type = types.str; + description = '' + Initial admin password with which the database will be seeded. + ''; + }; + + httpSocket = mkOption { + type = types.str; + default = "localhost:3000"; + description = '' + IP and/or port to which to bind the http socket. + ''; + }; + }; + + config = mkIf cfg.enable { + users.extraUsers.virtlyst = { + home = stateDir; + createHome = true; + group = mkIf config.virtualisation.libvirtd.enable "libvirtd"; + }; + + systemd.services.virtlyst = { + wantedBy = [ "multi-user.target" ]; + environment = { + VIRTLYST_ADMIN_PASSWORD = cfg.adminPassword; + }; + serviceConfig = { + ExecStart = "${pkgs.cutelyst}/bin/cutelyst-wsgi2 --ini ${ini}"; + User = "virtlyst"; + WorkingDirectory = stateDir; + }; + }; + }; + +} From 3be343d34025f4cb3e68b221700ebeabbea722bf Mon Sep 17 00:00:00 2001 From: volth Date: Mon, 25 Jun 2018 23:34:53 +0000 Subject: [PATCH 127/312] perl-packages.nix: duplicate packages -> aliases --- pkgs/top-level/perl-packages.nix | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 57c76b678ff..44d50aefefc 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -507,21 +507,14 @@ let self = _self // overrides; _self = with self; { sha256 = "02y2ylq83hy9kgj57sc0239x65br9sm98c0chsm61s08yc2mpiza"; }; buildInputs = [ TestMockModule ]; - }; - - ArchiveZip_1_53 = buildPerlPackage { - name = "Archive-Zip-1.60"; - src = fetchurl { - url = mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.60.tar.gz; - sha256 = "eac75b05f308e860aa860c3094aa4e7915d3d31080e953e49bc9c38130f5c20b"; - }; meta = { description = "Provide an interface to ZIP archive files"; license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; }; - buildInputs = [ TestMockModule ]; }; + ArchiveZip_1_53 = ArchiveZip; + AudioScan = buildPerlPackage rec { name = "Audio-Scan-1.00"; src = fetchurl { From b385d0469777f77907d365b61c0ef4a51769136e Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 25 Jun 2018 20:14:03 -0400 Subject: [PATCH 128/312] linux: 4.18-rc1 -> 4.18-rc2 --- pkgs/os-specific/linux/kernel/linux-testing.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index d1732af9f5e..5e8059bb465 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -1,13 +1,13 @@ { stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args: buildLinux (args // rec { - version = "4.18-rc1"; - modDirVersion = "4.18.0-rc1"; + version = "4.18-rc2"; + modDirVersion = "4.18.0-rc2"; extraMeta.branch = "4.18"; src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - sha256 = "1wzxnzhxmzn5gygxs1vm4iawknpivr5kn1mav8l1ll3q7s5xqjnr"; + sha256 = "04vflzj14wvvkj3lsbabsw0239y58cdd8g5kciqz1ydhdlgifpza"; }; # Should the testing kernels ever be built on Hydra? From 653e63ac4eee9abd3b00ccaec2807cdbbfe18dac Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Mon, 25 Jun 2018 20:22:20 -0400 Subject: [PATCH 129/312] typora: 0.9.48 -> 0.9.53 --- pkgs/applications/editors/typora/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix index d07b1ba0ae5..082bc2a2536 100644 --- a/pkgs/applications/editors/typora/default.nix +++ b/pkgs/applications/editors/typora/default.nix @@ -3,18 +3,18 @@ stdenv.mkDerivation rec { name = "typora-${version}"; - version = "0.9.48"; + version = "0.9.53"; src = if stdenv.system == "x86_64-linux" then fetchurl { url = "https://www.typora.io/linux/typora_${version}_amd64.deb"; - sha256 = "36a7c5f855306bcbe3364d12aca94c2f6d013a013e59b46f89df81496ec11800"; + sha256 = "02k6x30l4mbjragqbq5rn663xbw3h4bxzgppfxqf5lwydswldklb"; } else fetchurl { url = "https://www.typora.io/linux/typora_${version}_i386.deb"; - sha256 = "7197c526918a791b15b701846f9f2f1747a5b8ceac77c4cba691ee6d74d07d1d"; + sha256 = "1wyq1ri0wwdy7slbd9dwyrdynsaa644x44c815jl787sg4nhas6y"; } ; From 9b0b31d9813220de53e950d0f207a3b874dc0780 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 22 Jun 2018 17:20:00 -0400 Subject: [PATCH 130/312] xcode: add xcodeVer to system This version number controls which xcode version to use when building cross to iOS. --- lib/systems/examples.nix | 4 ++++ pkgs/os-specific/darwin/xcode/default.nix | 8 ++++---- pkgs/top-level/darwin-packages.nix | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 108996206a7..1817a6380dd 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -100,6 +100,7 @@ rec { config = "aarch64-apple-ios"; # config = "aarch64-apple-darwin14"; sdkVer = "10.2"; + xcodeVer = "8.2"; useiOSPrebuilt = true; platform = {}; }; @@ -108,6 +109,7 @@ rec { config = "armv7a-apple-ios"; # config = "arm-apple-darwin10"; sdkVer = "10.2"; + xcodeVer = "8.2"; useiOSPrebuilt = true; platform = {}; }; @@ -116,6 +118,7 @@ rec { config = "x86_64-apple-ios"; # config = "x86_64-apple-darwin14"; sdkVer = "10.2"; + xcodeVer = "8.2"; useiOSPrebuilt = true; isiPhoneSimulator = true; platform = {}; @@ -125,6 +128,7 @@ rec { config = "i686-apple-ios"; # config = "i386-apple-darwin11"; sdkVer = "10.2"; + xcodeVer = "8.2"; useiOSPrebuilt = true; isiPhoneSimulator = true; platform = {}; diff --git a/pkgs/os-specific/darwin/xcode/default.nix b/pkgs/os-specific/darwin/xcode/default.nix index d153ef16c14..252fe5abf49 100644 --- a/pkgs/os-specific/darwin/xcode/default.nix +++ b/pkgs/os-specific/darwin/xcode/default.nix @@ -1,4 +1,4 @@ -{ stdenv, requireFile }: +{ stdenv, requireFile, targetPlatform, lib }: let requireXcode = version: sha256: let @@ -40,11 +40,11 @@ let requireXcode = version: sha256: in app.overrideAttrs ( oldAttrs: oldAttrs // { inherit meta; }); -in rec { +in lib.makeExtensible (self: { xcode_8_1 = requireXcode "8.1" "18xjvfipwzia66gm3r9p770xdd4r375vak7chw5vgqnv9yyjiq2n"; xcode_8_2 = requireXcode "8.2" "13nd1zsfqcp9hwp15hndr0rsbb8rgprrz7zr2ablj4697qca06m2"; xcode_9_1 = requireXcode "9.1" "0ab1403wy84ys3yn26fj78cazhpnslmh3nzzp1wxib3mr1afjvic"; xcode_9_2 = requireXcode "9.2" "1bgfgdp266cbbqf2axcflz92frzvhi0qw0jdkcw6r85kdpc8dj4c"; xcode_9_4 = requireXcode "9.4" "6731381785075602a52489f7ea47ece8f6daf225007ba3ffae1fd59b1c0b5f01"; - xcode = xcode_9_4; -} + xcode = self."xcode_${lib.replaceStrings ["."] ["_"] (if targetPlatform.useiOSPrebuilt then targetPlatform.xcodeVer else "9.4")}"; +}) diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index a1d5772fe6d..03a32260710 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -47,7 +47,7 @@ in iosSdkPkgs = darwin.callPackage ../os-specific/darwin/ios-sdk-pkgs { buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk; targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs; - xcode = darwin.xcode_8_2; + xcode = darwin.xcode; inherit (pkgs.llvmPackages) clang-unwrapped; }; From 0bfffbc5e19f1a16c19f3cec5272174555006869 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 25 Jun 2018 22:18:23 -0400 Subject: [PATCH 131/312] xcode: add xcodePlatform to system This give us a little bit more control over what target we are using. Eventually we can target other things like WatchOS or MacOS. --- lib/systems/default.nix | 1 - lib/systems/examples.nix | 6 ++++-- .../{ios-sdk-pkgs/default.nix => xcode/sdk-pkgs.nix} | 11 +++++++---- pkgs/top-level/darwin-packages.nix | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) rename pkgs/os-specific/darwin/{ios-sdk-pkgs/default.nix => xcode/sdk-pkgs.nix} (71%) diff --git a/lib/systems/default.nix b/lib/systems/default.nix index ee4c29660a5..5eacc9eb23e 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -46,7 +46,6 @@ rec { # Misc boolean options useAndroidPrebuilt = false; useiOSPrebuilt = false; - isiPhoneSimulator = false; } // mapAttrs (n: v: v final.parsed) inspect.predicates // args; in assert final.useAndroidPrebuilt -> final.isAndroid; diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 1817a6380dd..31772ba0054 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -101,6 +101,7 @@ rec { # config = "aarch64-apple-darwin14"; sdkVer = "10.2"; xcodeVer = "8.2"; + xcodePlatform = "iPhoneOS"; useiOSPrebuilt = true; platform = {}; }; @@ -110,6 +111,7 @@ rec { # config = "arm-apple-darwin10"; sdkVer = "10.2"; xcodeVer = "8.2"; + xcodePlatform = "iPhoneOS"; useiOSPrebuilt = true; platform = {}; }; @@ -119,8 +121,8 @@ rec { # config = "x86_64-apple-darwin14"; sdkVer = "10.2"; xcodeVer = "8.2"; + xcodePlatform = "iPhoneSimulator"; useiOSPrebuilt = true; - isiPhoneSimulator = true; platform = {}; }; @@ -129,8 +131,8 @@ rec { # config = "i386-apple-darwin11"; sdkVer = "10.2"; xcodeVer = "8.2"; + xcodePlatform = "iPhoneSimulator"; useiOSPrebuilt = true; - isiPhoneSimulator = true; platform = {}; }; diff --git a/pkgs/os-specific/darwin/ios-sdk-pkgs/default.nix b/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix similarity index 71% rename from pkgs/os-specific/darwin/ios-sdk-pkgs/default.nix rename to pkgs/os-specific/darwin/xcode/sdk-pkgs.nix index ebca738431c..d5ed21cd9e2 100644 --- a/pkgs/os-specific/darwin/ios-sdk-pkgs/default.nix +++ b/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix @@ -25,9 +25,9 @@ rec { sdk = rec { name = "ios-sdk"; type = "derivation"; - outPath = xcode + "/Contents/Developer/Platforms/iPhone${sdkType}.platform/Developer/SDKs/iPhone${sdkType}${version}.sdk"; + outPath = xcode + "/Contents/Developer/Platforms/${platform}.platform/Developer/SDKs/${platform}${version}.sdk"; - sdkType = if targetPlatform.isiPhoneSimulator then "Simulator" else "OS"; + platform = targetPlatform.xcodePlatform; version = targetPlatform.sdkVer; }; @@ -48,7 +48,10 @@ rec { mv cc-cflags.tmp $out/nix-support/cc-cflags echo "-target ${targetPlatform.config} -arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/cc-cflags echo "-isystem ${sdk}/usr/include -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++" >> $out/nix-support/cc-cflags - echo "${if targetPlatform.isiPhoneSimulator then "-mios-simulator-version-min" else "-miphoneos-version-min"}=${minSdkVersion}" >> $out/nix-support/cc-cflags + '' + stdenv.lib.optionalString (sdk.platform == "iPhoneSimulator") '' + echo "-mios-simulator-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags + '' + stdenv.lib.optionalString (sdk.platform == "iPhoneOS") '' + echo "-miphoneos-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags ''; }) // { inherit sdk; @@ -60,7 +63,7 @@ rec { }; } '' if ! [ -d ${sdk} ]; then - echo "You must have version ${sdk.version} of the iPhone${sdk.sdkType} sdk installed at ${sdk}" >&2 + echo "You must have version ${sdk.version} of the ${sdk.platform} sdk installed at ${sdk}" >&2 exit 1 fi ln -s ${sdk}/usr $out diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index 03a32260710..047eab83bb4 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -44,7 +44,7 @@ in insert_dylib = callPackage ../os-specific/darwin/insert_dylib { }; - iosSdkPkgs = darwin.callPackage ../os-specific/darwin/ios-sdk-pkgs { + iosSdkPkgs = darwin.callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix { buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk; targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs; xcode = darwin.xcode; From 789ecf9112481c3caa1d2893be2bf417c3c80748 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 23 Jun 2018 21:29:50 -0700 Subject: [PATCH 132/312] hwinfo: 21.53 -> 21.55 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/hwinfo/versions. These checks were done: - built on NixOS - /nix/store/hl1s37xgnvmc7i9qixpfpmib9h1xb9m5-hwinfo-21.55/bin/hwinfo passed the binary check. - /nix/store/hl1s37xgnvmc7i9qixpfpmib9h1xb9m5-hwinfo-21.55/bin/check_hd passed the binary check. - Warning: no invocation of /nix/store/hl1s37xgnvmc7i9qixpfpmib9h1xb9m5-hwinfo-21.55/bin/mk_isdnhwdb had a zero exit code or showed the expected version - Warning: no invocation of /nix/store/hl1s37xgnvmc7i9qixpfpmib9h1xb9m5-hwinfo-21.55/bin/convert_hd had a zero exit code or showed the expected version - /nix/store/hl1s37xgnvmc7i9qixpfpmib9h1xb9m5-hwinfo-21.55/bin/getsysinfo passed the binary check. - 3 of 5 passed binary check by having a zero exit code. - 1 of 5 passed binary check by having the new version present in output. - found 21.55 with grep in /nix/store/hl1s37xgnvmc7i9qixpfpmib9h1xb9m5-hwinfo-21.55 - directory tree listing: https://gist.github.com/75d50331352f1d07e8c3bb5ed608c696 - du listing: https://gist.github.com/91d956e9c9e9765872e9d3c7f33d72f0 --- pkgs/tools/system/hwinfo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix index 839be268b5b..73adb082802 100644 --- a/pkgs/tools/system/hwinfo/default.nix +++ b/pkgs/tools/system/hwinfo/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "hwinfo-${version}"; - version = "21.53"; + version = "21.55"; src = fetchFromGitHub { owner = "opensuse"; repo = "hwinfo"; rev = "${version}"; - sha256 = "1hrazksr95pxl5p0r0x3cdph1ps98cls2v9avg0qs0qf9y18hady"; + sha256 = "005xf5j2bbalsi6z2j9q9r4zf80a04f7mz0bd2jyb8rh3lnac6w8"; }; patchPhase = '' From 155a4005ef41b8d63e99085f150d8b4bc313d403 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 25 Jun 2018 22:38:13 -0700 Subject: [PATCH 133/312] mbedtls: 2.10.0 -> 2.11.0 --- pkgs/development/libraries/mbedtls/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix index ed1052ce40a..152d7bdc37b 100644 --- a/pkgs/development/libraries/mbedtls/default.nix +++ b/pkgs/development/libraries/mbedtls/default.nix @@ -1,13 +1,13 @@ { stdenv, fetchFromGitHub, perl }: stdenv.mkDerivation rec { - name = "mbedtls-2.10.0"; + name = "mbedtls-2.11.0"; src = fetchFromGitHub { owner = "ARMmbed"; repo = "mbedtls"; rev = name; - sha256 = "0im83kqf7a64ywxh6dnv0by3gwxww93zx5wpdqglr6xp7b8yg4xk"; + sha256 = "1d4a0jc08q3h051amv8hhh3hmqp4f1rk5z7ffyfs2g8dassm78ir"; }; nativeBuildInputs = [ perl ]; From 78cda56bb898fa53c242a4a9381561e73d362616 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 25 Jun 2018 22:40:26 -0700 Subject: [PATCH 134/312] neomutt: 20180512 -> 20180622 --- .../applications/networking/mailreaders/neomutt/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix index 2ae58721188..33ccec35511 100644 --- a/pkgs/applications/networking/mailreaders/neomutt/default.nix +++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix @@ -15,14 +15,14 @@ let ''; in stdenv.mkDerivation rec { - version = "20180512"; + version = "20180622"; name = "neomutt-${version}"; src = fetchFromGitHub { owner = "neomutt"; repo = "neomutt"; rev = "neomutt-${version}"; - sha256 = "12779h2ich6w79bm2wgaaxd9hr6kpxavj4bdrnvm44a0r02kk2vl"; + sha256 = "0rwrxghsxbkbkdyi0544nglip8ri2xi8fn15m0wg5hg52xzcq40i"; }; buildInputs = [ @@ -53,7 +53,7 @@ in stdenv.mkDerivation rec { --replace /etc/mime.types ${mime-types}/etc/mime.types # The string conversion tests all fail with the first version of neomutt - # that has tests (20180223) as well as 20180512 so we disable them for now. + # that has tests (20180223) as well as 20180622 so we disable them for now. # I don't know if that is related to the tests or our build environment. # Try again with a later release. sed -i '/rfc2047/d' test/Makefile.autosetup test/main.c From 7b4cf6b8e72863d564c0094363aeb137e974f76b Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 25 Jun 2018 16:05:54 +0200 Subject: [PATCH 135/312] lief: init at 0.9.0 --- pkgs/development/libraries/lief/default.nix | 14 ++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/development/libraries/lief/default.nix diff --git a/pkgs/development/libraries/lief/default.nix b/pkgs/development/libraries/lief/default.nix new file mode 100644 index 00000000000..410c60bff9f --- /dev/null +++ b/pkgs/development/libraries/lief/default.nix @@ -0,0 +1,14 @@ +{ stdenv, fetchzip }: + +fetchzip { + url = https://github.com/lief-project/LIEF/releases/download/0.9.0/LIEF-0.9.0-Linux.tar.gz; + sha256 = "1c47hwd00bp4mqd4p5b6xjfl89c3wwk9ccyc3a2gk658250g2la6"; + + meta = with stdenv.lib; { + description = "Library to Instrument Executable Formats"; + homepage = https://lief.quarkslab.com/; + license = [ licenses.asl20 ]; + platforms = platforms.linux; + maintainers = [ maintainers.lassulus ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0bc2589c753..78a9a8dde5a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1353,6 +1353,8 @@ with pkgs; languagetool = callPackage ../tools/text/languagetool { }; + lief = callPackage ../development/libraries/lief {}; + loadwatch = callPackage ../tools/system/loadwatch { }; loccount = callPackage ../development/tools/misc/loccount { }; From 065200f0b134ef5bf698de8d496d926461a870fa Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 25 Jun 2018 22:41:30 -0700 Subject: [PATCH 136/312] syslogng: 3.15.1 -> 3.16.1 --- pkgs/tools/system/syslog-ng/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix index b47f5c98c4d..4f3795cf54c 100644 --- a/pkgs/tools/system/syslog-ng/default.nix +++ b/pkgs/tools/system/syslog-ng/default.nix @@ -11,11 +11,11 @@ in stdenv.mkDerivation rec { name = "${pname}-${version}"; - version = "3.15.1"; + version = "3.16.1"; src = fetchurl { url = "https://github.com/balabit/${pname}/releases/download/${name}/${name}.tar.gz"; - sha256 = "1vzrg6s30wc2as2s42h7a1qvyxqx26nq895r9y75aasfcwlbvnm2"; + sha256 = "0a9snxvs3fsv0gm5q9xkrcg0hwgs3c8q1rb434cnzn4qbqfnzvn7"; }; nativeBuildInputs = [ pkgconfig which ]; From f13dd0ee3eee6c0fdc4c3fdc298ad9dd9c46e2be Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 25 Jun 2018 22:42:12 -0700 Subject: [PATCH 137/312] xmrig-proxy: 2.6.2 -> 2.6.3 --- pkgs/applications/misc/xmrig/proxy.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/xmrig/proxy.nix b/pkgs/applications/misc/xmrig/proxy.nix index 4e1e505e035..aacf71e17b6 100644 --- a/pkgs/applications/misc/xmrig/proxy.nix +++ b/pkgs/applications/misc/xmrig/proxy.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { name = "xmrig-proxy-${version}"; - version = "2.6.2"; + version = "2.6.3"; src = fetchFromGitHub { owner = "xmrig"; repo = "xmrig-proxy"; rev = "v${version}"; - sha256 = "1yfbdgyd37r5vb2g8jz4i92hxang3hbiig5y4507v9hr75jvfivh"; + sha256 = "1f573shf0qv1kh0sb9sljagpb2q1rn8h7qc1hxlb5nlchs9qcnnn"; }; nativeBuildInputs = [ cmake ]; From ccca30790bbd0783684007c5d3ddefad19244b1a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 25 Jun 2018 22:42:49 -0700 Subject: [PATCH 138/312] urh: 2.1.0 -> 2.1.1 --- pkgs/applications/misc/urh/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/urh/default.nix b/pkgs/applications/misc/urh/default.nix index 1a9cd2a1252..cf461c498c1 100644 --- a/pkgs/applications/misc/urh/default.nix +++ b/pkgs/applications/misc/urh/default.nix @@ -2,13 +2,13 @@ python3Packages.buildPythonApplication rec { name = "urh-${version}"; - version = "2.1.0"; + version = "2.1.1"; src = fetchFromGitHub { owner = "jopohl"; repo = "urh"; rev = "v${version}"; - sha256 = "0i01pj71p3lc1kcqj6mixax6865vbxd9k9jczi2xh4p9nmfa5m2a"; + sha256 = "1n8nkrydic2zkglz9hyrf28np3v42b4xwia068b29szivr9fmnrn"; }; buildInputs = [ hackrf rtl-sdr ]; From 41c05a72a745d1d0ef897a1427157c2f0f4a5b22 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 26 Jun 2018 00:02:31 -0700 Subject: [PATCH 139/312] libpfm: 4.10.0 -> 4.10.1 (#42489) --- pkgs/development/libraries/libpfm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libpfm/default.nix b/pkgs/development/libraries/libpfm/default.nix index 593bb567df7..25e55e45d1e 100644 --- a/pkgs/development/libraries/libpfm/default.nix +++ b/pkgs/development/libraries/libpfm/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - version = "4.10.0"; + version = "4.10.1"; name = "libpfm-${version}"; src = fetchurl { url = "mirror://sourceforge/perfmon2/libpfm4/${name}.tar.gz"; - sha256 = "0bldxhcrpav04hi256fmf907gxhyck24j1p998v48zbhm6aykw94"; + sha256 = "0jabhjx77yppr7x38bkfww6n2a480gj62rw0qp7prhdmg19mf766"; }; installFlags = "DESTDIR=\${out} PREFIX= LDCONFIG=true"; From 3a2e601efd8d43ad35e5340aeb6b815086229d84 Mon Sep 17 00:00:00 2001 From: pandaman64 Date: Tue, 26 Jun 2018 16:55:08 +0900 Subject: [PATCH 140/312] qiskit: fix build --- .../development/python-modules/qiskit/setup.py.patch | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/qiskit/setup.py.patch b/pkgs/development/python-modules/qiskit/setup.py.patch index bb7cb71ae09..9c4224ce64c 100644 --- a/pkgs/development/python-modules/qiskit/setup.py.patch +++ b/pkgs/development/python-modules/qiskit/setup.py.patch @@ -1,19 +1,21 @@ --- a/setup.py +++ b/setup.py -@@ -28,11 +28,11 @@ from setuptools.dist import Distribution +@@ -18,13 +18,13 @@ from setuptools.dist import Distribution requirements = [ - "IBMQuantumExperience>=1.8.29", + "IBMQuantumExperience>=1.9.2", - "matplotlib>=2.1,<2.2", - "networkx>=2.0,<2.1", - "numpy>=1.13,<1.15", - "ply==3.10", -- "scipy>=0.19,<1.1", +- "scipy>=0.19,<1.2", +- "sympy>=1.0,<1.2", +- "pillow>=4.2.1,<5.2" + "matplotlib>=2.1", + "networkx>=2.0", + "numpy>=1.13", + "ply>=3.10", + "scipy>=0.19", - "sympy>=1.0", - "pillow>=4.2.1" ++ "sympy>=1.0", ++ "pillow>=4.2.1" ] From 6b6ccebc6f2016e6e98e77ec3fbd9199680457a2 Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Tue, 26 Jun 2018 17:58:33 +1000 Subject: [PATCH 141/312] bazel: fix darwin --- .../tools/build-managers/bazel/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix index 8cb137aeda3..28214e94c7a 100644 --- a/pkgs/development/tools/build-managers/bazel/default.nix +++ b/pkgs/development/tools/build-managers/bazel/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, jdk, zip, unzip, bash, writeCBin, coreutils, makeWrapper, which, python +{ stdenv, lib, fetchurl, jdk, zip, unzip, bash, writeCBin, coreutils, makeWrapper, which, python, gnused # Always assume all markers valid (don't redownload dependencies). # Also, don't clean up environment variables. , enableNixHacks ? false @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { int main(int argc, char *argv[]) { char *path = getenv("PATH"); - char *pathToAppend = "${lib.makeBinPath [ coreutils ]}"; + char *pathToAppend = "${lib.makeBinPath [ coreutils gnused ]}"; char *newPath; if (path != NULL) { int length = strlen(path) + 1 + strlen(pathToAppend) + 1; @@ -71,10 +71,10 @@ stdenv.mkDerivation rec { echo "build --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\"" >> .bazelrc echo "build --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\"" >> .bazelrc echo "build --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\"" >> .bazelrc - sed -i -e "366 a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh - sed -i -e "366 a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh - sed -i -e "366 a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh - sed -i -e "366 a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh + sed -i -e "361 a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh + sed -i -e "361 a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" scripts/bootstrap/compile.sh + sed -i -e "361 a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh + sed -i -e "361 a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" scripts/bootstrap/compile.sh patchShebangs . ''; @@ -126,7 +126,7 @@ stdenv.mkDerivation rec { # Save paths to hardcoded dependencies so Nix can detect them. postFixup = '' mkdir -p $out/nix-support - echo "${customBash} ${coreutils}" > $out/nix-support/depends + echo "${customBash} ${gnused} ${coreutils}" > $out/nix-support/depends ''; dontStrip = true; From a346f153b5aec465222bb23dd7a7b6178a819e1f Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 26 Jun 2018 10:02:07 +0200 Subject: [PATCH 142/312] nixos/strongswan-swanctl: Fix build of manual Commit 401370287a9b74fc18539fe9c0bdc7ac9df9cf22 introduced a small error where the closing tag of was an opening tag instead. Signed-off-by: aszlig Cc: @basvandijk, @xeji --- .../services/networking/strongswan-swanctl/swanctl-params.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix b/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix index e6561633264..b16d299917f 100644 --- a/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix +++ b/nixos/modules/services/networking/strongswan-swanctl/swanctl-params.nix @@ -942,7 +942,7 @@ in { Enable hardware offload for this CHILD_SA, if supported by the IPsec implementation. The value yes enforces offloading and the installation will fail if it's not supported by either kernel or - device. The value auto enables offloading, if it's + device. The value auto enables offloading, if it's supported, but the installation does not fail otherwise. ''; From db319effa059bc9acf1dcc42e44b6e1b463684c4 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sat, 23 Jun 2018 02:31:13 +0200 Subject: [PATCH 143/312] hackage-packages.nix: automatic Haskell package set update This update was generated by hackage2nix v2.9.2-23-g7ccbd66 from Hackage revision https://github.com/commercialhaskell/all-cabal-hashes/commit/31a9e4f9aeda116ca917bae59082d98a92f475aa. --- .../haskell-modules/hackage-packages.nix | 1117 ++++++++++++++--- 1 file changed, 928 insertions(+), 189 deletions(-) diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 55cd821e1a2..cc143df8660 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -17338,6 +17338,24 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "StrictCheck" = callPackage + ({ mkDerivation, base, bifunctors, containers, deepseq + , generics-sop, HUnit, QuickCheck, template-haskell + }: + mkDerivation { + pname = "StrictCheck"; + version = "0.1.0"; + sha256 = "1psnawzf9ym1gz6i6qi5rpx8sm7idi30wryb2hq39flqjxviqk0z"; + libraryHaskellDepends = [ + base bifunctors containers generics-sop QuickCheck template-haskell + ]; + testHaskellDepends = [ + base deepseq generics-sop HUnit QuickCheck + ]; + description = "StrictCheck: Keep Your Laziness In Check"; + license = stdenv.lib.licenses.mit; + }) {}; + "StringUtils" = callPackage ({ mkDerivation, base }: mkDerivation { @@ -18539,8 +18557,8 @@ self: { }: mkDerivation { pname = "Villefort"; - version = "0.1.2.11"; - sha256 = "0ggcp3sgqv1m5xs8q87c2n6rms7mypbf3j9f5702qllzyns2r79l"; + version = "0.1.2.12"; + sha256 = "16cakg1vyq7sfjqpbv02a44p6bf35qqidwbc07dpnaafp2qndppf"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -21358,8 +21376,8 @@ self: { pname = "ad"; version = "4.3.5"; sha256 = "0q4dvi02k21jq8xf0ywgmcs5mph4hpx5s3y3pj839y0g3x5paplw"; - revision = "3"; - editedCabalFile = "14g2lfsw1fi4gn2cgvhglz4gyi797xk9g1r4pf46g734ivfl67c5"; + revision = "4"; + editedCabalFile = "0n1r7ylnabfcd3x88j93r3fjbz8hdlp3hda0zaw7h5cawc7zy01j"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ array base comonad containers data-reify erf free nats reflection @@ -23057,14 +23075,14 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "alarmclock_0_5_0_1" = callPackage + "alarmclock_0_5_0_2" = callPackage ({ mkDerivation, async, base, clock, hspec, stm, time , unbounded-delays }: mkDerivation { pname = "alarmclock"; - version = "0.5.0.1"; - sha256 = "0l357h9admskcqap4dq5niafpvr1dkf3wvrw166rd2568dp061a6"; + version = "0.5.0.2"; + sha256 = "0k6nfgxbhnsdlxiv1d6q7kgfmfnix8d1z9cpp84kz9m9jw4a6x15"; libraryHaskellDepends = [ async base clock stm time unbounded-delays ]; @@ -23386,6 +23404,30 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "algolia" = callPackage + ({ mkDerivation, aeson, aeson-iproute, attoparsec, base, bytestring + , cryptonite, data-has, exceptions, hashable, http-client + , http-client-tls, http-types, iproute, memory, mtl, retry + , scientific, tasty, tasty-discover, tasty-hunit, text, time + , unordered-containers, uri-templater, vector + }: + mkDerivation { + pname = "algolia"; + version = "0.1.0.0"; + sha256 = "1gasyh2hv38i4936p4shmqmdxr06n785nydbxhaljrwwzih5mh3p"; + libraryHaskellDepends = [ + aeson aeson-iproute attoparsec base bytestring cryptonite data-has + exceptions hashable http-client http-client-tls http-types iproute + memory mtl retry scientific text time unordered-containers + uri-templater vector + ]; + testHaskellDepends = [ + aeson base tasty tasty-discover tasty-hunit + ]; + description = "A client implementing the Algolia search API"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "align" = callPackage ({ mkDerivation, base, containers, transformers, vector }: mkDerivation { @@ -30229,25 +30271,23 @@ self: { "ats-pkg" = callPackage ({ mkDerivation, ansi-wl-pprint, base, binary, bytestring, bzlib , Cabal, cli-setup, composition-prelude, containers, cpphs - , dependency, dhall, directory, file-embed, filemanip, hashable - , http-client, http-client-tls, lzma, microlens, microlens-th, mtl + , dependency, dhall, directory, file-embed, filemanip, filepath + , hashable, http-client, http-client-tls, lzma, microlens, mtl , optparse-applicative, parallel-io, process, shake, shake-ats - , shake-ext, tar, temporary, text, unix, zip-archive, zlib + , shake-c, shake-ext, tar, temporary, text, unix, zip-archive, zlib }: mkDerivation { pname = "ats-pkg"; - version = "2.10.2.2"; - sha256 = "080wkmv04zdzm86zrmgvyyfv7gkjxfr1fwy9470vviy7hywh1xin"; - revision = "1"; - editedCabalFile = "02wam77mcbknvfx8hb0d9d8m9ppvrd1w3xklwky5fz2dv071alm3"; + version = "2.11.0.1"; + sha256 = "03x204zmkj5ir3dfr1cc57k5gk1zdijgcdhrnq4wpnmrciqzx0js"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ base Cabal cli-setup ]; libraryHaskellDepends = [ ansi-wl-pprint base binary bytestring bzlib Cabal composition-prelude containers dependency dhall directory - file-embed filemanip hashable http-client http-client-tls lzma - microlens microlens-th mtl parallel-io process shake shake-ats + file-embed filemanip filepath hashable http-client http-client-tls + lzma microlens mtl parallel-io process shake shake-ats shake-c shake-ext tar text unix zip-archive zlib ]; libraryToolDepends = [ cpphs ]; @@ -33529,8 +33569,8 @@ self: { }: mkDerivation { pname = "bdcs-api"; - version = "0.1.2"; - sha256 = "117688c8b3j32if2xc2dw9845jgpv7fxbkq3dhc56hqjlliha0fr"; + version = "0.1.3"; + sha256 = "1pjcbw7z79bvmyik6ykjha388gdcjb2h1bf3csc2yjy1g87qmq05"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -36551,8 +36591,8 @@ self: { pname = "bits"; version = "0.5.1"; sha256 = "14ww8zcyis6kfli28bb9i5dmmj7k1j1dlzpwnfrkzd8kp5xmazk5"; - revision = "4"; - editedCabalFile = "188v93jiwy832ifcjq5db7sk5rngpnvira5kk1cb1srw4851hzyl"; + revision = "5"; + editedCabalFile = "012qycmsfz5l6y82d3zgjmp1k3pgvhlpjdk6rwlpc1wlfbpdqiaw"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base bytes mtl transformers ]; testHaskellDepends = [ base doctest ]; @@ -37662,6 +37702,35 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "bloodhound_0_16_0_0" = callPackage + ({ mkDerivation, aeson, base, blaze-builder, bytestring, containers + , errors, exceptions, hashable, hspec, http-client, http-types + , microlens, microlens-aeson, mtl, network-uri, pretty-simple + , QuickCheck, quickcheck-arbitrary-template, quickcheck-properties + , scientific, semigroups, semver, temporary, text, time + , transformers, unix-compat, unordered-containers, vector + }: + mkDerivation { + pname = "bloodhound"; + version = "0.16.0.0"; + sha256 = "0g4x2g0qmwgfrz39iwwagrr7p19fmmz1fpfk29bkmvqvbfvsjgqz"; + libraryHaskellDepends = [ + aeson base blaze-builder bytestring containers exceptions hashable + http-client http-types mtl network-uri scientific semigroups semver + text time transformers unordered-containers vector + ]; + testHaskellDepends = [ + aeson base bytestring containers errors exceptions hspec + http-client http-types microlens microlens-aeson mtl network-uri + pretty-simple QuickCheck quickcheck-arbitrary-template + quickcheck-properties semigroups semver temporary text time + unix-compat unordered-containers vector + ]; + description = "Elasticsearch client library for Haskell"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "bloodhound-amazonka-auth" = callPackage ({ mkDerivation, aeson, amazonka, amazonka-core , amazonka-elasticsearch, base, bloodhound, exceptions, http-client @@ -38532,8 +38601,8 @@ self: { pname = "bound"; version = "2.0.1"; sha256 = "0xmvkwambzmji1czxipl9cms5l3v98765b9spmb3wn5n6dpj0ji9"; - revision = "4"; - editedCabalFile = "1gnknncwjil9kcilpj08a5s0r1z3nk5iyg1dlynldxaj6p0z90hx"; + revision = "5"; + editedCabalFile = "02xvpawr73xq11lwkj1rp96h3pgpgcp693gawc3wn5zksrr0986i"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base bifunctors binary bytes cereal comonad deepseq hashable mmorph @@ -40062,6 +40131,8 @@ self: { pname = "bytes"; version = "0.15.4"; sha256 = "121x3iqlm8pghw8cd9g30cnqbl7jrdpfjxdanmqdqllajw6xivrm"; + revision = "1"; + editedCabalFile = "1ijk1d47rr4kyi3hl03v1xpb08k87wjr07d8i6gj5glhzfmmwp9k"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base binary bytestring cereal containers hashable mtl scientific @@ -43828,8 +43899,10 @@ self: { }: mkDerivation { pname = "cdeps"; - version = "0.1.1.2"; - sha256 = "0fvl3pzz73mjc0y8pqkfbqkipma9km26qp0n1jfrnh0nqh9104l1"; + version = "0.1.1.3"; + sha256 = "0bdja5sgqv2zn7fm2cxrghs808zzx1r4wn67ln7inycjy998w2xg"; + revision = "1"; + editedCabalFile = "0m85l44fc779z9v0qwq1dj23ljkrwcd483qv9ycxdyfqwaz83a5i"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -44212,6 +44285,22 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "cfenv" = callPackage + ({ mkDerivation, aeson, base, bytestring, containers, hspec + , raw-strings-qq + }: + mkDerivation { + pname = "cfenv"; + version = "0.1.0.0"; + sha256 = "0zklgqkm33n8a2pq8h313xij4nvrv0brh7v4q024bglyam1ndscc"; + libraryHaskellDepends = [ aeson base bytestring containers ]; + testHaskellDepends = [ + aeson base containers hspec raw-strings-qq + ]; + description = "A library getting the environment when running on Cloud Foundry"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cfipu" = callPackage ({ mkDerivation, base, bytestring, containers, data-default , dequeue, mtl @@ -45828,8 +45917,8 @@ self: { ({ mkDerivation, base, criterion, QuickCheck, random }: mkDerivation { pname = "cl3"; - version = "1.0.0.1"; - sha256 = "0wgmzygjwyb6djlmxj9k7ffwp60jf3lai8jki525r4as5rggyypi"; + version = "1.0.0.2"; + sha256 = "1ibwjry5xmf8dr8wbfdw3mzq4cz9dy5kvxy4sqkshcc08kjm2kp5"; libraryHaskellDepends = [ base random ]; testHaskellDepends = [ base QuickCheck ]; benchmarkHaskellDepends = [ base criterion ]; @@ -45842,8 +45931,8 @@ self: { ({ mkDerivation, base, cl3, hmatrix }: mkDerivation { pname = "cl3-hmatrix-interface"; - version = "1.0.0.0"; - sha256 = "0cz1pzbnxld2kpiqggln0yags46zhlc8pzghz3mykblwdvgk7z7s"; + version = "1.0.0.1"; + sha256 = "1fixwb8y2v0zwww6p08rwsq7wfz63aj3zv2yjs9z0rp2xm3mq67w"; libraryHaskellDepends = [ base cl3 hmatrix ]; description = "Interface to/from Cl3 and HMatrix"; license = stdenv.lib.licenses.bsd3; @@ -45854,8 +45943,8 @@ self: { ({ mkDerivation, base, cl3, linear }: mkDerivation { pname = "cl3-linear-interface"; - version = "1.0.0.0"; - sha256 = "02yyajy8n9j7jd3kz2qas4h2vyv5b42jrjj092cy18lfj9hr22as"; + version = "1.0.0.1"; + sha256 = "1i4f9xxsdzba49h1dv8x14zz1bv1zamhvw2ngi5d6a17qd11g319"; libraryHaskellDepends = [ base cl3 linear ]; description = "Interface to/from Cl3 and Linear"; license = stdenv.lib.licenses.bsd3; @@ -49005,8 +49094,8 @@ self: { pname = "comonad"; version = "5.0.3"; sha256 = "1xjdwm0xvkcqrpyivl6v569dj8xgivw103bzahy14la0cd6mix57"; - revision = "2"; - editedCabalFile = "07gfz719y6q3bfv8jbvak78dda9g1qy4phl18cxisiapqdz31rry"; + revision = "3"; + editedCabalFile = "062482gwrjc9njqsb239p391bk0s8j39a5xqv5k7rl9ijaxxlfmv"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base containers contravariant distributive semigroups tagged @@ -51363,10 +51452,10 @@ self: { ({ mkDerivation, attoparsec, base, bytestring, vector }: mkDerivation { pname = "constaparser"; - version = "0.1.0.0"; - sha256 = "02psvhz05j61b50sqrwhmfsf9cmvgrjd9k3yn2d57139k7qdwr3d"; + version = "0.1.0.1"; + sha256 = "16s8y035f30gyla620diwnsqi8lbmmfyxjpj4dlq24d45k5wfnsd"; libraryHaskellDepends = [ attoparsec base bytestring vector ]; - description = "Parse ByteStrings of a constant length"; + description = "Parse ByteStrings of a prescribed length"; license = stdenv.lib.licenses.bsd3; }) {}; @@ -53051,8 +53140,8 @@ self: { ({ mkDerivation, base, containers, parallel }: mkDerivation { pname = "cpsa"; - version = "3.5.1"; - sha256 = "01kknyznwyxd5cgw9q21wmzykl1yiava0s1y3vrrdxzvixk1f89l"; + version = "3.6.0"; + sha256 = "1c2hhdny9nn10rgaray827fqc3wq02pv8pf853cy865dl6zdihpb"; isLibrary = false; isExecutable = true; enableSeparateDataOutput = true; @@ -53193,7 +53282,7 @@ self: { license = stdenv.lib.licenses.mpl20; }) {}; - "cql-io_1_0_0" = callPackage + "cql-io_1_0_1" = callPackage ({ mkDerivation, async, auto-update, base, bytestring, containers , cql, cryptohash, data-default-class, Decimal, exceptions , hashable, HsOpenSSL, iproute, lens, monad-control, mtl @@ -53203,8 +53292,8 @@ self: { }: mkDerivation { pname = "cql-io"; - version = "1.0.0"; - sha256 = "0wij5h44rk4lnnvh3i6s04bk7dhvxvv9l9y2qicm44736zrphlmx"; + version = "1.0.1"; + sha256 = "06imd6cjfh7jnr8s0d2pqlg82w9h0s81xpyjir6hci61al6yfx5q"; libraryHaskellDepends = [ async auto-update base bytestring containers cql cryptohash data-default-class exceptions hashable HsOpenSSL iproute lens @@ -54853,6 +54942,22 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "csa" = callPackage + ({ mkDerivation, base, hedgehog, hmatrix, tasty, tasty-hedgehog + , tasty-hspec + }: + mkDerivation { + pname = "csa"; + version = "0.1.0"; + sha256 = "0jnhn4lgj5l466c31h2lwslnal3ypk3ma2j75zw0ghjf35i07qvr"; + libraryHaskellDepends = [ base hmatrix ]; + testHaskellDepends = [ + base hedgehog hmatrix tasty tasty-hedgehog tasty-hspec + ]; + description = "Connection-set algebra (CSA) library"; + license = "GPL"; + }) {}; + "cse-ghc-plugin" = callPackage ({ mkDerivation, base, ghc }: mkDerivation { @@ -55571,6 +55676,19 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "currencies_0_2_0_0" = callPackage + ({ mkDerivation, base, hspec, text }: + mkDerivation { + pname = "currencies"; + version = "0.2.0.0"; + sha256 = "16c4m6px6kvdr8v2k5gspjn3xag69ki6yf6ij2b3ii5rlpa94wpv"; + libraryHaskellDepends = [ base text ]; + testHaskellDepends = [ base hspec text ]; + description = "Currencies representation, pretty printing and conversion"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "currency" = callPackage ({ mkDerivation, base, containers, hashable, iso3166-country-codes }: @@ -56146,16 +56264,14 @@ self: { , hashable, haskeline, html, HTTP, HUnit, mmap, mtl, network , network-uri, old-time, parsec, process, QuickCheck, random , regex-applicative, regex-compat-tdfa, sandi, shelly, split, stm - , tar, temporary, terminfo, test-framework, test-framework-hunit + , tar, terminfo, test-framework, test-framework-hunit , test-framework-quickcheck2, text, time, transformers, unix , unix-compat, utf8-string, vector, zip-archive, zlib }: mkDerivation { pname = "darcs"; - version = "2.14.0"; - sha256 = "00r8g27sgwlw5r8gx89q99n2hawcacfz1mjj0nmh6ps8l610iyhr"; - revision = "1"; - editedCabalFile = "0kxvr0rv5936x460k5ydyy85lgjhmrlkrm60zhbqkqks304abs1h"; + version = "2.14.1"; + sha256 = "0dfd6bp2wy0aabxx7l93gi3dmq21j970cds424xdy1mgmjcvrpb1"; configureFlags = [ "-fforce-char8-encoding" "-flibrary" ]; isLibrary = true; isExecutable = true; @@ -56165,8 +56281,8 @@ self: { containers cryptohash data-ordlist directory fgl filepath graphviz hashable haskeline html HTTP mmap mtl network network-uri old-time parsec process random regex-applicative regex-compat-tdfa sandi stm - tar temporary terminfo text time transformers unix unix-compat - utf8-string vector zip-archive zlib + tar terminfo text time transformers unix unix-compat utf8-string + vector zip-archive zlib ]; librarySystemDepends = [ curl ]; executableHaskellDepends = [ base ]; @@ -60498,8 +60614,8 @@ self: { ({ mkDerivation, base, doctest }: mkDerivation { pname = "derulo"; - version = "1.0.1"; - sha256 = "0y5rm5gg53siax0q43z79a0b95fkq5plk91qz658ihxmjd2fbv67"; + version = "1.0.2"; + sha256 = "0kyh5fcbv6337baz2prghak5w4x29ms0ccybbp1qkq0cvmvfwrvq"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base ]; @@ -60618,6 +60734,45 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "detour-via-sci" = callPackage + ({ mkDerivation, aeson, base, cassava, doctest, hlint, newtype + , scientific, siggy-chardust, template-haskell + }: + mkDerivation { + pname = "detour-via-sci"; + version = "1.0.0"; + sha256 = "1r417lp98k0nizlxh7r74c2c4g1ij33pk5ip0bm7ssmzyya127j5"; + libraryHaskellDepends = [ + aeson base cassava newtype scientific siggy-chardust + template-haskell + ]; + testHaskellDepends = [ + aeson base cassava doctest hlint newtype scientific siggy-chardust + template-haskell + ]; + description = "JSON and CSV encoding for rationals as decimal point numbers"; + license = stdenv.lib.licenses.mpl20; + }) {}; + + "detour-via-uom" = callPackage + ({ mkDerivation, aeson, base, cassava, detour-via-sci, doctest + , hlint, newtype, scientific, uom-plugin + }: + mkDerivation { + pname = "detour-via-uom"; + version = "1.0.0"; + sha256 = "07jhj5mrfkfi2l05fyax6aylq4rp0nixvpsymv2xjzvbv2pfmdq7"; + libraryHaskellDepends = [ + aeson base cassava detour-via-sci newtype scientific uom-plugin + ]; + testHaskellDepends = [ + aeson base cassava detour-via-sci doctest hlint newtype scientific + uom-plugin + ]; + description = "JSON and CSV encoding for quantities"; + license = stdenv.lib.licenses.mpl20; + }) {}; + "detrospector" = callPackage ({ mkDerivation, base, binary, bytestring, cmdargs, containers , hashable, mwc-random, text, unordered-containers, zlib @@ -61372,8 +61527,8 @@ self: { }: mkDerivation { pname = "diagrams-haddock"; - version = "0.4.0.1"; - sha256 = "1x22fgmssbrda7iqz41y2dlc8jqkdiic72q490gm3kmxpd3xakjr"; + version = "0.4.0.2"; + sha256 = "1f4sapi4zhb3nrlq92lr309c4aarnl29bzghnmsvs1kqmimq23y0"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -63684,8 +63839,8 @@ self: { pname = "distributive"; version = "0.5.3"; sha256 = "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi"; - revision = "5"; - editedCabalFile = "0hl43mbw87s5l7p1iqc7iwz5rnzdcmj6g33pmq6hv4s9fg96j8x7"; + revision = "6"; + editedCabalFile = "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base base-orphans tagged transformers transformers-compat @@ -64323,7 +64478,7 @@ self: { license = stdenv.lib.licenses.mit; }) {}; - "doctest_0_15_0" = callPackage + "doctest_0_16_0" = callPackage ({ mkDerivation, base, base-compat, code-page, deepseq, directory , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process , QuickCheck, setenv, silently, stringbuilder, syb, transformers @@ -64331,8 +64486,8 @@ self: { }: mkDerivation { pname = "doctest"; - version = "0.15.0"; - sha256 = "13c1l8cc8rzbxgpnaa75x13z9vnr7kffng18czh8gwpv83vn5bpi"; + version = "0.16.0"; + sha256 = "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -64650,6 +64805,8 @@ self: { pname = "dot"; version = "0.2.2"; sha256 = "0j4v7vbmm6gfv1y4dp0r7ajiw7iinzflhw8sp867gyafszrpb0a3"; + revision = "1"; + editedCabalFile = "1dc8piglcvaxj0nq946xv185ynh1bk5ca0czrw25p4hji9iji0w1"; libraryHaskellDepends = [ base impure-containers text ]; description = "Data types and encoding for graphviz dot files"; license = stdenv.lib.licenses.bsd3; @@ -65909,8 +66066,8 @@ self: { ({ mkDerivation, base }: mkDerivation { pname = "dwergaz"; - version = "0.2.0.1"; - sha256 = "117f3s3rvka5m9zk8lhwxmqx3slxpf040r7485x6gz58ra33dsg9"; + version = "0.2.0.2"; + sha256 = "1ja2pxkd5mwp404lcyk3p81y41vbwds31446gkscr2qgzrc1sb7s"; libraryHaskellDepends = [ base ]; testHaskellDepends = [ base ]; description = "A minimal testing library"; @@ -67062,6 +67219,17 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "egyptian-fractions" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "egyptian-fractions"; + version = "0.1.0.2"; + sha256 = "05yjwrywpmh58rgx2if1za78g0x9xziv74cpvwnp7pr9b4s9i6zv"; + libraryHaskellDepends = [ base ]; + description = "Egyptian fractions in Haskell"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "ehaskell" = callPackage ({ mkDerivation, base, directory, filepath, mtlparse, process , regexpr, utf8-string, yjtools @@ -71499,18 +71667,18 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; - "extensible-effects_2_6_2_0" = callPackage - ({ mkDerivation, base, criterion, HUnit, monad-control, mtl - , QuickCheck, silently, test-framework, test-framework-hunit + "extensible-effects_2_6_3_0" = callPackage + ({ mkDerivation, base, criterion, doctest, HUnit, monad-control + , mtl, QuickCheck, silently, test-framework, test-framework-hunit , test-framework-quickcheck2, test-framework-th, transformers-base }: mkDerivation { pname = "extensible-effects"; - version = "2.6.2.0"; - sha256 = "1gc7packzrh405sz2v4h088knn192kq0hq6zvjab6xqxmrl6bm6f"; + version = "2.6.3.0"; + sha256 = "07syxmhyqhcbsbwwc701k5rya89pkhcjly9nrdw7mspxailbggzs"; libraryHaskellDepends = [ base monad-control transformers-base ]; testHaskellDepends = [ - base HUnit monad-control QuickCheck silently test-framework + base doctest HUnit monad-control QuickCheck silently test-framework test-framework-hunit test-framework-quickcheck2 test-framework-th ]; benchmarkHaskellDepends = [ @@ -71524,19 +71692,22 @@ self: { "extensible-effects-concurrent" = callPackage ({ mkDerivation, base, containers, directory, extensible-effects - , filepath, lens, logging-effect, monad-control, mtl, parallel - , process, QuickCheck, random, stm, tagged, time, transformers + , filepath, HUnit, lens, logging-effect, monad-control, mtl + , parallel, process, QuickCheck, random, stm, tagged, tasty + , tasty-discover, tasty-hunit, time, transformers }: mkDerivation { pname = "extensible-effects-concurrent"; - version = "0.1.3.0"; - sha256 = "1hzl14g3s94bgnpmm3g3ypbgb66pb4m3japn1gn5z7cknxsl2xh3"; + version = "0.2.0.3"; + sha256 = "024wn3i2nxi9j4gskhjnrkqifwszfpfnn812p34krvf763vfqcn1"; libraryHaskellDepends = [ base containers directory extensible-effects filepath lens logging-effect monad-control mtl parallel process QuickCheck random stm tagged time transformers ]; - testHaskellDepends = [ base ]; + testHaskellDepends = [ + base extensible-effects HUnit stm tasty tasty-discover tasty-hunit + ]; description = "Message passing concurrency as extensible-effect"; license = stdenv.lib.licenses.bsd3; }) {}; @@ -72534,6 +72705,8 @@ self: { pname = "fay-text"; version = "0.3.2.2"; sha256 = "1q1v8jzkccy9arq6jkz4ynpzm1691d1dv9wzyi4i5m6n0gl7aans"; + revision = "1"; + editedCabalFile = "0zwip7arbrbz1qhjyy5synnlrvl2wica4804wkizpxr9l7acasn6"; enableSeparateDataOutput = true; libraryHaskellDepends = [ fay fay-base text ]; description = "Fay Text type represented as JavaScript strings"; @@ -73273,8 +73446,8 @@ self: { }: mkDerivation { pname = "fficxx"; - version = "0.3.1"; - sha256 = "0y40li2465r1mf9lgswk9hcwbp528iblxwb9icv94p6nyq28z24k"; + version = "0.4"; + sha256 = "0c3893jfxxihkjz9m7m25rfa8x4yfim70p8z4jsbdw6j5adgvh8b"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base bytestring Cabal containers data-default directory either @@ -74964,6 +75137,22 @@ self: { license = stdenv.lib.licenses.publicDomain; }) {}; + "flexible-defaults_0_0_2" = callPackage + ({ mkDerivation, base, containers, template-haskell, th-extras + , transformers + }: + mkDerivation { + pname = "flexible-defaults"; + version = "0.0.2"; + sha256 = "0r4aq6n5h9xnal535hds111vq8whzsvyc3yibmcbp7fndldd9mgk"; + libraryHaskellDepends = [ + base containers template-haskell th-extras transformers + ]; + description = "Generate default function implementations for complex type classes"; + license = stdenv.lib.licenses.publicDomain; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "flexible-time" = callPackage ({ mkDerivation, base, bytestring, unix-time }: mkDerivation { @@ -75573,6 +75762,17 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {inherit (pkgs) fluidsynth;}; + "flux-monoid" = callPackage + ({ mkDerivation, base }: + mkDerivation { + pname = "flux-monoid"; + version = "0.1.0.0"; + sha256 = "0aa5p8604j63zz8rfxcp4p4110k27ys5dcy980kg5hjzba7aj54m"; + libraryHaskellDepends = [ base ]; + description = "A monoid for tracking changes"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "fmark" = callPackage ({ mkDerivation, base, directory, filepath, mtl, process, Unixutils }: @@ -78921,6 +79121,26 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "gauge_0_2_2" = callPackage + ({ mkDerivation, base, basement, bytestring, deepseq, directory + , foundation, process, vector + }: + mkDerivation { + pname = "gauge"; + version = "0.2.2"; + sha256 = "0sv328c7906djwgzgg5nrpn4ag9zj5rqzxmrw5r1m1nnwzx8kcks"; + libraryHaskellDepends = [ + base basement deepseq directory process vector + ]; + testHaskellDepends = [ + base bytestring deepseq directory foundation + ]; + benchmarkHaskellDepends = [ base ]; + description = "small framework for performance measurement and analysis"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "gbu" = callPackage ({ mkDerivation, base, containers, fgl, Graphalyze, haskell98, mtl , regex-posix @@ -89038,8 +89258,8 @@ self: { }: mkDerivation { pname = "greskell"; - version = "0.2.0.0"; - sha256 = "0zj7gcj4a4msgnzafhy7wh5npwfc5rnn4lnmr5h33q7impws1fgz"; + version = "0.2.0.2"; + sha256 = "01nzqyk0flj4p87iin9ggvy61csvxcnby9phczahqbc0m9v5pi3h"; libraryHaskellDepends = [ aeson base greskell-core semigroups text transformers unordered-containers vector @@ -89060,8 +89280,8 @@ self: { }: mkDerivation { pname = "greskell-core"; - version = "0.1.2.0"; - sha256 = "1246z4zz5jzwbjikkrld3j667kp26v1b135xd62r3akcplxagzd9"; + version = "0.1.2.1"; + sha256 = "1w3rzgkrdd62v734k4pap46780wz9q8fnr0apjvcdzga7h2685hs"; libraryHaskellDepends = [ aeson base containers hashable scientific semigroups text unordered-containers uuid vector @@ -95352,14 +95572,14 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; - "haskeline_0_7_4_2" = callPackage + "haskeline_0_7_4_3" = callPackage ({ mkDerivation, base, bytestring, containers, directory, filepath , process, stm, terminfo, transformers, unix }: mkDerivation { pname = "haskeline"; - version = "0.7.4.2"; - sha256 = "1sxhdhy9asinxn0gvd4zandbk6xkb04vy1y7lmh66f9jv66fqhsm"; + version = "0.7.4.3"; + sha256 = "0ydnsr1nhh7mfgvbpclidcfbgzf7j8g5vnwxrnkmgg1dphq0jv84"; configureFlags = [ "-fterminfo" ]; libraryHaskellDepends = [ base bytestring containers directory filepath process stm terminfo @@ -99284,7 +99504,7 @@ self: { license = "unknown"; }) {}; - "haxl_2_0_0_0" = callPackage + "haxl_2_0_1_0" = callPackage ({ mkDerivation, aeson, base, binary, bytestring, containers , deepseq, exceptions, filepath, ghc-prim, hashable, HUnit, pretty , stm, test-framework, test-framework-hunit, text, time @@ -99292,8 +99512,8 @@ self: { }: mkDerivation { pname = "haxl"; - version = "2.0.0.0"; - sha256 = "12ba1hylv181101s6lyjkf6kn8r42qkh60xd9xinzsm2mcfbbbmy"; + version = "2.0.1.0"; + sha256 = "07s3jxqvdcla3qj8jjxd5088kp7h015i2q20kjhs4n73swa9h9fd"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -99576,6 +99796,41 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {inherit (pkgs) SDL_mixer;}; + "hbf" = callPackage + ({ mkDerivation, base, binary, bytestring, criterion, deepseq + , doctest, filepath, hedgehog, hedgehog-checkers, HUnit + , optparse-applicative, parsec, primitive, smallcheck, tasty + , tasty-discover, tasty-hedgehog, tasty-hunit, tasty-smallcheck + , temporary, text, transformers, vector + }: + mkDerivation { + pname = "hbf"; + version = "0.1.0.1"; + sha256 = "1vzzcxnc3zdqgc7g66imvq141cmnzi7513hczrqjbkim0iycxh8m"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base binary bytestring deepseq filepath optparse-applicative parsec + primitive text transformers vector + ]; + executableHaskellDepends = [ + base binary bytestring deepseq filepath optparse-applicative parsec + primitive text transformers vector + ]; + testHaskellDepends = [ + base binary bytestring deepseq doctest filepath hedgehog + hedgehog-checkers HUnit optparse-applicative parsec primitive + smallcheck tasty tasty-discover tasty-hedgehog tasty-hunit + tasty-smallcheck temporary text transformers vector + ]; + benchmarkHaskellDepends = [ + base binary bytestring criterion deepseq filepath + optparse-applicative parsec primitive text transformers vector + ]; + description = "An optimizing Brainfuck compiler and evaluator"; + license = stdenv.lib.licenses.gpl3; + }) {}; + "hblas" = callPackage ({ mkDerivation, base, blas, hspec, liblapack, primitive , storable-complex, vector @@ -100365,8 +100620,8 @@ self: { pname = "heaps"; version = "0.3.6"; sha256 = "1cnxgmxxvl053yv93vcz5fnla4iir5g9wr697n88ysdyybbkq70q"; - revision = "2"; - editedCabalFile = "0iym09z8039b2v0kfzh1b66b7ky7kqjv85mx1h0xhsayxdy135in"; + revision = "3"; + editedCabalFile = "0k6wsm1hwn3vaxdvw8p7cidxg7p8zply2ig4w4qrbpyjhl6dj9x9"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base ]; testHaskellDepends = [ base directory doctest filepath ]; @@ -107293,22 +107548,20 @@ self: { "hpack-dhall" = callPackage ({ mkDerivation, aeson, base, dhall, dhall-json, hpack, hspec - , interpolate, mockery, text, transformers, trifecta + , interpolate, megaparsec, mockery, text, transformers }: mkDerivation { pname = "hpack-dhall"; - version = "0.1.0"; - sha256 = "1yz1ypq88lmxdz9728w8q0ag1whwzlkwcdvx8dhyav5k3ifgp2x0"; - revision = "3"; - editedCabalFile = "02pvzwqrs163mgxdydgv6pa1gq75xav68kpjycrxgdbpag6s9ynv"; + version = "0.2.0"; + sha256 = "0avkxcrpa1qgyw56wqna773404gcglvqxr81jmzr0hij406x4c8m"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ - aeson base dhall dhall-json hpack text transformers trifecta + aeson base dhall dhall-json hpack megaparsec text transformers ]; testHaskellDepends = [ - aeson base dhall dhall-json hpack hspec interpolate mockery text - transformers trifecta + aeson base dhall dhall-json hpack hspec interpolate megaparsec + mockery text transformers ]; description = "Dhall support for Hpack"; license = stdenv.lib.licenses.publicDomain; @@ -107736,8 +107989,8 @@ self: { }: mkDerivation { pname = "hprotoc"; - version = "2.4.10"; - sha256 = "14zihg4gb42kr68y73mzb7a9ryc2yi4h50n3a4v8idw17f3fdhlz"; + version = "2.4.11"; + sha256 = "0740yc33ginskkiggyaqc1khkb2bzb4vg0r12rj59f3gimzfiwlk"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -112372,6 +112625,27 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "html-conduit_1_3_1" = callPackage + ({ mkDerivation, attoparsec, base, bytestring, conduit + , conduit-extra, containers, deepseq, hspec, HUnit, resourcet, text + , transformers, xml-conduit, xml-types + }: + mkDerivation { + pname = "html-conduit"; + version = "1.3.1"; + sha256 = "0dg3sblihi93qn6ax1cwha0cng4zlpmic83ckdylq7s7kwa3rhbi"; + libraryHaskellDepends = [ + attoparsec base bytestring conduit conduit-extra containers + resourcet text transformers xml-conduit xml-types + ]; + testHaskellDepends = [ + base bytestring containers deepseq hspec HUnit text xml-conduit + ]; + description = "Parse HTML documents using xml-conduit datatypes"; + license = stdenv.lib.licenses.mit; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "html-email-validate" = callPackage ({ mkDerivation, attoparsec, base, criterion, hspec, QuickCheck , regex-pcre-builtin, text @@ -116175,8 +116449,8 @@ self: { pname = "hyphenation"; version = "0.7.1"; sha256 = "1h5i07v2zlka29dj4zysc47p747j88x6z4zm3zwcr5i8yirm0p52"; - revision = "2"; - editedCabalFile = "1pbsq3y0f0j6cl17narqrwxwwpxsvwgazfbqa5k08m2n0s885pfk"; + revision = "3"; + editedCabalFile = "0pphkzschnqs2xj6kdg52gg2fjsg51lv0djxin8pqqjrdnyq4igy"; enableSeparateDataOutput = true; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ @@ -117962,8 +118236,8 @@ self: { }: mkDerivation { pname = "impure-containers"; - version = "0.4.3"; - sha256 = "003r3ppwdwndg8q84bnh299f04b88bhnxxl65nbrz9xl77lfz2y0"; + version = "0.5.0"; + sha256 = "0rwk7wsymga61192mmjj42079v209dj9gdcjpwjmji1ivxwzy13p"; libraryHaskellDepends = [ base containers ghc-prim hashable primitive vector ]; @@ -117972,7 +118246,7 @@ self: { test-framework-hunit test-framework-quickcheck2 transformers vector ]; benchmarkHaskellDepends = [ base criterion ]; - description = "Mutable containers in haskell"; + description = "Mutable containers in Haskell"; license = stdenv.lib.licenses.bsd3; }) {}; @@ -118249,6 +118523,19 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "indents_0_5_0_0" = callPackage + ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit }: + mkDerivation { + pname = "indents"; + version = "0.5.0.0"; + sha256 = "1ly3v41jacc6lrsvg4j3m5a6zs90gr8dyif5m6bf34hj1k5cgg0n"; + libraryHaskellDepends = [ base mtl parsec ]; + testHaskellDepends = [ base mtl parsec tasty tasty-hunit ]; + description = "indentation sensitive parser-combinators for parsec"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "index-core" = callPackage ({ mkDerivation, base }: mkDerivation { @@ -118548,7 +118835,7 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "influxdb_1_6_0_4" = callPackage + "influxdb_1_6_0_5" = callPackage ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal , cabal-doctest, clock, containers, doctest, foldl, http-client , http-types, HUnit, lens, mtl, network, optional-args, QuickCheck @@ -118558,8 +118845,8 @@ self: { }: mkDerivation { pname = "influxdb"; - version = "1.6.0.4"; - sha256 = "191w8f52r5qgmrsj131sx5kjqzfcrh3z4wbh2kdv9hyfp717hz2r"; + version = "1.6.0.5"; + sha256 = "1qlc5vcd6vvrbss0nckhxkn1fbq5bfjyhc75r7di14kaww02y05l"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ base Cabal cabal-doctest ]; @@ -119595,8 +119882,8 @@ self: { pname = "intervals"; version = "0.8.1"; sha256 = "00vyxf3ba9d7aas3npfapr53w71fslgh69fczjb25axr66fvzqww"; - revision = "3"; - editedCabalFile = "1dzv19jq6xwf9zff6xkzmn9vab2ch2mds75n7hg9n0xg664q1b95"; + revision = "4"; + editedCabalFile = "1qx3q0v13l1zaln9zdk8chxpxhshbz5x0vqm0qda7d1kpv7h6a7r"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ array base distributive ghc-prim ]; testHaskellDepends = [ @@ -120144,6 +120431,32 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "ip_1_3_0" = callPackage + ({ mkDerivation, aeson, attoparsec, base, bytestring, criterion + , doctest, hashable, hspec, HUnit, primitive, QuickCheck + , quickcheck-classes, test-framework, test-framework-hunit + , test-framework-quickcheck2, text, vector + }: + mkDerivation { + pname = "ip"; + version = "1.3.0"; + sha256 = "10dc3b41j11xa9rfqlbbrjs4wjszn1zn50w9cjs4i0yc02fqck4y"; + libraryHaskellDepends = [ + aeson attoparsec base bytestring hashable primitive text vector + ]; + testHaskellDepends = [ + attoparsec base bytestring doctest hspec HUnit QuickCheck + quickcheck-classes test-framework test-framework-hunit + test-framework-quickcheck2 text + ]; + benchmarkHaskellDepends = [ + attoparsec base bytestring criterion text + ]; + description = "Library for IP and MAC addresses"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "ip-quoter" = callPackage ({ mkDerivation, base, cpu, network, tasty, tasty-hunit , template-haskell @@ -120833,6 +121146,25 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "iso8601-duration" = callPackage + ({ mkDerivation, attoparsec, base, bytestring, bytestring-lexing + , hspec, hspec-core, QuickCheck, quickcheck-instances, time + }: + mkDerivation { + pname = "iso8601-duration"; + version = "0.1.1.0"; + sha256 = "0ypcs8nrgdnjibr15bgfxhms1h44dq2pgsagdjx70ipgawhmlywl"; + libraryHaskellDepends = [ + attoparsec base bytestring bytestring-lexing time + ]; + testHaskellDepends = [ + base bytestring hspec hspec-core QuickCheck quickcheck-instances + time + ]; + description = "Types and parser for ISO8601 durations"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "iso8601-time" = callPackage ({ mkDerivation, base, hspec, HUnit, time }: mkDerivation { @@ -121695,6 +122027,8 @@ self: { pname = "jammittools"; version = "0.5.5"; sha256 = "0x9khnf9ykhgi7aghc24nynfyrh6557mmf8s38597h4zdsd897xz"; + revision = "1"; + editedCabalFile = "0pznd9xkwadls2npdsaj69c5ssn3mdri82qxf1q7h7vyba34qibi"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -124342,8 +124676,8 @@ self: { }: mkDerivation { pname = "katip"; - version = "0.5.5.1"; - sha256 = "0q72kjjrn6x1qr2rp6c3mhf5s3cq4pdsl917a9bflid9zmk5n30b"; + version = "0.6.0.0"; + sha256 = "1ll33qvxlqdja7yljyv1mlc5sy4q8izgdscz6zvbyqnjl9iczrn3"; libraryHaskellDepends = [ aeson async auto-update base bytestring containers either hostname microlens microlens-th monad-control mtl old-locale resourcet @@ -124375,8 +124709,8 @@ self: { }: mkDerivation { pname = "katip-elasticsearch"; - version = "0.4.1.0"; - sha256 = "19gpgxg8wz5zdx8a0sspbdk9ypjcrclni0da6sh1hz80yydcfzb1"; + version = "0.4.2.0"; + sha256 = "0h6v9jsdc6r1zqz4wgvqr3y0ghqprjbfhlgmwh6q2cjixm3mxw1x"; libraryHaskellDepends = [ aeson async base bloodhound bytestring enclosed-exceptions exceptions http-client http-types katip retry scientific semigroups @@ -129082,6 +129416,8 @@ self: { pname = "lens"; version = "4.16.1"; sha256 = "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm"; + revision = "1"; + editedCabalFile = "12ycfzkc87fp787a5iq3k20mrfjd6b0r2d0dr7zscfd81sgw4shx"; setupHaskellDepends = [ base Cabal cabal-doctest filepath ]; libraryHaskellDepends = [ array base base-orphans bifunctors bytestring call-stack comonad @@ -129159,8 +129495,8 @@ self: { pname = "lens-aeson"; version = "1.0.2"; sha256 = "1k028ycmhz7mnjlrap88fqix4nmmpyy6b88m16kv77d3r8sz04a3"; - revision = "5"; - editedCabalFile = "0z6ib6kndbk5dgzlacmdlsdjrrazj9hwnkk9ldc6flgq15ba74nr"; + revision = "6"; + editedCabalFile = "1pg5v8fnlqw1krgi3d2a03a0zkjjdv5yp5f5z6q4mlb5jldz99a8"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ aeson attoparsec base bytestring lens scientific text @@ -130979,8 +131315,8 @@ self: { pname = "linear"; version = "1.20.7"; sha256 = "1dna0zf4qwqwvslz0nkkfclvbflfvf10qydnjsi20wijilkbd22b"; - revision = "4"; - editedCabalFile = "11fxa2bqpyf99iv2b3yzi9z17y0r70afqij52lmifsyzr24zizv3"; + revision = "5"; + editedCabalFile = "0m67chpgxwakx62n22555nr2ii1hvspqcypjdwib9c1jrpg3ss95"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ adjunctions base base-orphans binary bytes cereal containers @@ -131023,6 +131359,8 @@ self: { pname = "linear-accelerate"; version = "0.6.0.0"; sha256 = "1bwqbs4816xrrc0bcf3nllad1an7c8gv2n9d1qv3ybk7s4fw288s"; + revision = "1"; + editedCabalFile = "1sf1jqpymhkdl5xn1br13qkw3zyg7pqmmwcczcw19zpgwk4ai19v"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ accelerate base distributive lens linear @@ -133146,8 +133484,8 @@ self: { pname = "log-domain"; version = "0.12"; sha256 = "0zin3zgxrx8v69blqzkd5gjk0nmpmg58caqz2xa8qd4v1fjcp4bi"; - revision = "2"; - editedCabalFile = "1yjphyqyn8122ikxxv0a10fh2cbavy7xyb435jxq6gln8sw3m54d"; + revision = "3"; + editedCabalFile = "19xc24jwfhzy3v26689sc4ma50w4ylqd378dpxphl0nrxili645z"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base binary bytes cereal comonad deepseq distributive hashable @@ -133436,23 +133774,24 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "logging-effect_1_3_0" = callPackage + "logging-effect_1_3_1" = callPackage ({ mkDerivation, async, base, bytestring, criterion, exceptions , fast-logger, free, lifted-async, monad-control, monad-logger, mtl , prettyprinter, semigroups, stm, stm-delay, text, time - , transformers, transformers-base, wl-pprint-text + , transformers, transformers-base, unliftio-core }: mkDerivation { pname = "logging-effect"; - version = "1.3.0"; - sha256 = "02acs3f4zx0xwivzfpw5i4mnig63m330n1a2ni0brck3kbj9qsrn"; + version = "1.3.1"; + sha256 = "0swpklfn119q08yzxn71xfb8imv5ppcvl58dr297n1sr0v2xw7sb"; libraryHaskellDepends = [ async base exceptions free monad-control mtl prettyprinter semigroups stm stm-delay text time transformers transformers-base + unliftio-core ]; benchmarkHaskellDepends = [ base bytestring criterion fast-logger lifted-async monad-logger - text time wl-pprint-text + prettyprinter text time ]; description = "A mtl-style monad transformer for general purpose & compositional logging"; license = stdenv.lib.licenses.bsd3; @@ -134233,8 +134572,8 @@ self: { pname = "lrucaching"; version = "0.3.3"; sha256 = "192a2zap1bmxa2y48n48rmngf18fr8k0az4a230hziv3g795yzma"; - revision = "2"; - editedCabalFile = "0ypilhv8im5vqwdy6wk9ql2dlpr4cykag6ikvyjapl8bpyfm44xa"; + revision = "3"; + editedCabalFile = "0y7j6m0n1xi40c7dmabi9lk6mjic9h49xx60rq9xc4xap90hjfqb"; libraryHaskellDepends = [ base base-compat deepseq hashable psqueues vector ]; @@ -135105,8 +135444,8 @@ self: { pname = "machines"; version = "0.6.3"; sha256 = "1kxypm26xxd30979yrg94pnaaj3yfn180ri3y4z2xsm2m5iyiliz"; - revision = "6"; - editedCabalFile = "0ga5x9lpik7gz2fx4j3jnn6dw8xkd9cxg19ngj8iwrx4b946m1w7"; + revision = "7"; + editedCabalFile = "00wq0lnz081bcjrnsg2pvn3i08b4ssgqm92n5j0lpqlym2vm0ar8"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ adjunctions base comonad containers distributive mtl pointed @@ -137555,24 +137894,24 @@ self: { "mbug" = callPackage ({ mkDerivation, base, bytestring, directory, extra, formatting - , http-client, http-client-tls, optparse-applicative, process + , http-client, http-client-tls, mtl, optparse-applicative, process , scalpel-core, tagsoup, text, time, xdg-basedir }: mkDerivation { pname = "mbug"; - version = "1.2"; - sha256 = "0rzfayssvifwb7p8m00lv8s1m5paa86nc6ndwi6ih34lhi30qcr8"; + version = "1.3"; + sha256 = "1pa3myyd2qrb14797hix4dh0ajpwr49219x5bf030yps6b0hsi91"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base bytestring directory extra formatting http-client - http-client-tls optparse-applicative process scalpel-core tagsoup - text time xdg-basedir + http-client-tls mtl optparse-applicative process scalpel-core + tagsoup text time xdg-basedir ]; executableHaskellDepends = [ base bytestring directory extra formatting http-client - http-client-tls optparse-applicative process scalpel-core tagsoup - text time xdg-basedir + http-client-tls mtl optparse-applicative process scalpel-core + tagsoup text time xdg-basedir ]; description = "download bugs mailboxes"; license = stdenv.lib.licenses.gpl3; @@ -139044,6 +139383,43 @@ self: { license = stdenv.lib.licenses.publicDomain; }) {}; + "microformats2-parser_1_0_1_8" = callPackage + ({ mkDerivation, aeson, aeson-pretty, aeson-qq, attoparsec, base + , base-compat, blaze-html, blaze-markup, bytestring, containers + , data-default, either, errors, hspec + , hspec-expectations-pretty-diff, html-conduit, lens-aeson, mtl + , network, network-uri, options, pcre-heavy, raw-strings-qq, safe + , scotty, tagsoup, template-haskell, text, time, transformers + , unordered-containers, vector, wai-cli, wai-extra, xml-lens + , xss-sanitize + }: + mkDerivation { + pname = "microformats2-parser"; + version = "1.0.1.8"; + sha256 = "0hb5i60w369lngfw5a3bai5zvlgchcf1vvxshp9md77lyl7h49ar"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson aeson-qq attoparsec base base-compat blaze-markup bytestring + containers data-default either errors html-conduit lens-aeson + network-uri pcre-heavy safe tagsoup text time transformers + unordered-containers vector xml-lens xss-sanitize + ]; + executableHaskellDepends = [ + aeson aeson-pretty base base-compat blaze-html blaze-markup + data-default network network-uri options scotty text wai-cli + wai-extra + ]; + testHaskellDepends = [ + aeson-qq base base-compat bytestring data-default hspec + hspec-expectations-pretty-diff html-conduit mtl network-uri + raw-strings-qq template-haskell text time xml-lens + ]; + description = "A Microformats 2 parser"; + license = stdenv.lib.licenses.publicDomain; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "microformats2-types" = callPackage ({ mkDerivation, aeson, base, data-default-class, pandoc-types , setters, text, time @@ -139759,6 +140135,18 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "mime-types_0_1_0_8" = callPackage + ({ mkDerivation, base, bytestring, containers, text }: + mkDerivation { + pname = "mime-types"; + version = "0.1.0.8"; + sha256 = "14ccl2842ya17zyj0bpc7vzklbyqvvydpbypn69h2fmhgji192x8"; + libraryHaskellDepends = [ base bytestring containers text ]; + description = "Basic mime-type handling types and functions"; + license = stdenv.lib.licenses.mit; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "minecraft-data" = callPackage ({ mkDerivation, array, base, bytestring, cereal, containers, lens , mtl, nbt, pipes, pipes-bytestring, pipes-cereal, pipes-parse @@ -145700,6 +146088,18 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "names-th_0_3_0_0" = callPackage + ({ mkDerivation, base, containers, template-haskell }: + mkDerivation { + pname = "names-th"; + version = "0.3.0.0"; + sha256 = "09m5zflpk1h7jwz40mijhnpbsd8qnnay1jm3lpfrvdmg49m8zqqb"; + libraryHaskellDepends = [ base containers template-haskell ]; + description = "Manipulate name strings for TH"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "namespace" = callPackage ({ mkDerivation, base, containers, monoid-extras }: mkDerivation { @@ -145862,6 +146262,8 @@ self: { pname = "nanovg"; version = "0.6.0.0"; sha256 = "15nljmlcgj1pw9ydy3a9nmk6zpgfp3p71arw04b1krx2y9r2fnp3"; + revision = "1"; + editedCabalFile = "1lhfsq50r9bdby7mfscw8ih3wsz2m19lr2a2z9b6diaf5kz76vij"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base bytestring containers text vector ]; @@ -147079,14 +147481,14 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "network_2_7_0_0" = callPackage + "network_2_7_0_1" = callPackage ({ mkDerivation, base, bytestring, directory, doctest, hspec, HUnit , unix }: mkDerivation { pname = "network"; - version = "2.7.0.0"; - sha256 = "17qd387vxq2b27k4g56679flnvfvsm7vqf2mnssa0lvghks4c1f1"; + version = "2.7.0.1"; + sha256 = "1n2lixpl5w8nfn66qw86xsbh3p2v9pc6mhsxhjnwxdq2jv1qs2kh"; libraryHaskellDepends = [ base bytestring unix ]; testHaskellDepends = [ base bytestring directory doctest hspec HUnit @@ -147333,6 +147735,27 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "network-conduit-tls_1_3_2" = callPackage + ({ mkDerivation, base, bytestring, conduit, conduit-extra + , connection, data-default-class, HUnit, mtl, network + , streaming-commons, tls, transformers, unliftio-core + }: + mkDerivation { + pname = "network-conduit-tls"; + version = "1.3.2"; + sha256 = "0zxdsf7isv3l2g58vsvi8iwlrgf85v7ksa8636kr6ffycbhn1zgc"; + libraryHaskellDepends = [ + base bytestring conduit conduit-extra connection data-default-class + network streaming-commons tls transformers unliftio-core + ]; + testHaskellDepends = [ + base bytestring conduit conduit-extra connection HUnit mtl + ]; + description = "Create TLS-aware network code with conduits"; + license = stdenv.lib.licenses.mit; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "network-connection" = callPackage ({ mkDerivation, base, bytestring, containers, network , network-bytestring, stm @@ -149063,8 +149486,8 @@ self: { ({ mkDerivation, base, containers }: mkDerivation { pname = "non-empty-containers"; - version = "0.1.0.0"; - sha256 = "021rfs019kb3h9zz2ycdg7ia65b1hr2rlxzihcdkqywklvxvykxw"; + version = "0.1.1.0"; + sha256 = "1m4js4z27x43bkccbaqnlrmknfdiwqgdvvkfad7r4kgwdmil3mnc"; libraryHaskellDepends = [ base containers ]; license = stdenv.lib.licenses.bsd3; }) {}; @@ -149157,12 +149580,12 @@ self: { }) {}; "nonemptymap" = callPackage - ({ mkDerivation, base, containers }: + ({ mkDerivation, base, containers, semigroupoids }: mkDerivation { pname = "nonemptymap"; - version = "0.0.2.0"; - sha256 = "0h08xki7z69xrni2r6l7b5wyg6sfdm0hfq2l35q50yac83srfs0v"; - libraryHaskellDepends = [ base containers ]; + version = "0.0.4.0"; + sha256 = "0rkdhbg0bps8ws20xspw98fkmbcgzfir9kk5pxwir8x6pwwbfd8h"; + libraryHaskellDepends = [ base containers semigroupoids ]; description = "A NonEmptyMap Implementation"; license = stdenv.lib.licenses.bsd3; }) {}; @@ -150136,8 +150559,8 @@ self: { }: mkDerivation { pname = "nvim-hs"; - version = "1.0.0.1"; - sha256 = "05kqrnzxhydns3iyqk1rhdgx3cyqgcskhfwa1d87hcyx0p4w51pw"; + version = "1.0.0.2"; + sha256 = "00s8anzazzax8kjsa0ciyvx9c5smwb8a81qh625nf2v9pkp7lr20"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -155464,16 +155887,16 @@ self: { }) {}; "parsix" = callPackage - ({ mkDerivation, base, bytestring, containers, fingertree, mtl - , parsers, prettyprinter, prettyprinter-ansi-terminal, QuickCheck - , tasty, tasty-hunit, tasty-quickcheck, text, transformers + ({ mkDerivation, base, containers, fingertree, mtl, parsers + , prettyprinter, prettyprinter-ansi-terminal, QuickCheck, tasty + , tasty-hunit, tasty-quickcheck, text, transformers }: mkDerivation { pname = "parsix"; - version = "0.1.0.1"; - sha256 = "0qpn5vjgp0392nb6nirp92s2g5jxr4jcpg35j0w1mg5ym5ra4mm1"; + version = "0.1.0.2"; + sha256 = "0dg48xycw7dl3700ws9qi49i8095nqag6wr9n1jan2w2gd0vchy1"; libraryHaskellDepends = [ - base bytestring containers fingertree mtl parsers prettyprinter + base containers fingertree mtl parsers prettyprinter prettyprinter-ansi-terminal text transformers ]; testHaskellDepends = [ @@ -157277,6 +157700,25 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "persistable-record_0_6_0_4" = callPackage + ({ mkDerivation, array, base, containers, dlist, names-th + , product-isomorphic, quickcheck-simple, template-haskell + , th-data-compat, transformers + }: + mkDerivation { + pname = "persistable-record"; + version = "0.6.0.4"; + sha256 = "1ygqllybclw9mm0n05vh635wbz6qlsl2yhas3fxr3xhwsrrvwfkd"; + libraryHaskellDepends = [ + array base containers dlist names-th product-isomorphic + template-haskell th-data-compat transformers + ]; + testHaskellDepends = [ base quickcheck-simple ]; + description = "Binding between SQL database values and haskell records"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "persistable-types-HDBC-pg" = callPackage ({ mkDerivation, base, bytestring, convertible, dlist, HDBC , persistable-record, relational-query, relational-query-HDBC @@ -157297,6 +157739,27 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "persistable-types-HDBC-pg_0_0_3_3" = callPackage + ({ mkDerivation, base, bytestring, convertible, dlist, HDBC + , persistable-record, relational-query, relational-query-HDBC + , text-postgresql + }: + mkDerivation { + pname = "persistable-types-HDBC-pg"; + version = "0.0.3.3"; + sha256 = "0m5cx6848s9vxmbrxwv3v9f3vplpayxjddn7j332k3kj3qbdgs4v"; + libraryHaskellDepends = [ + base bytestring convertible dlist HDBC persistable-record + relational-query relational-query-HDBC text-postgresql + ]; + testHaskellDepends = [ + base relational-query relational-query-HDBC text-postgresql + ]; + description = "HDBC and Relational-Record instances of PostgreSQL extended types"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "persistent_2_7_3_1" = callPackage ({ mkDerivation, aeson, attoparsec, base, base64-bytestring , blaze-html, blaze-markup, bytestring, conduit, containers @@ -161542,6 +162005,30 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "pomaps_0_0_1_0" = callPackage + ({ mkDerivation, base, ChasingBottoms, containers, criterion + , deepseq, doctest, ghc-prim, Glob, lattices, random, tasty + , tasty-hspec, tasty-quickcheck, vector + }: + mkDerivation { + pname = "pomaps"; + version = "0.0.1.0"; + sha256 = "1vvvpqr3gnps425mv00scmab0hc8h93ylsiw07vm8cpafwkfxii8"; + libraryHaskellDepends = [ + base containers deepseq ghc-prim lattices + ]; + testHaskellDepends = [ + base ChasingBottoms containers doctest Glob lattices tasty + tasty-hspec tasty-quickcheck + ]; + benchmarkHaskellDepends = [ + base criterion deepseq lattices random vector + ]; + description = "Maps and sets of partial orders"; + license = stdenv.lib.licenses.mit; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "pomodoro" = callPackage ({ mkDerivation, base, bytestring, cereal, directory, filepath , heredoc, libnotify, network, process, time, unix, wx, wxcore @@ -165830,6 +166317,8 @@ self: { pname = "protocol-buffers"; version = "2.4.10"; sha256 = "0rr7yla1gl199hk2zn7jr1p0nq166mi4dm43ild27y6bvrdc2kvk"; + revision = "1"; + editedCabalFile = "04cv52k497nmh04pflmjrl26vlbczvm3mk4qld0zrwqxkk6v0ris"; libraryHaskellDepends = [ array base binary bytestring containers directory filepath mtl parsec syb utf8-string @@ -165838,12 +166327,31 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "protocol-buffers_2_4_11" = callPackage + ({ mkDerivation, array, base, binary, bytestring, containers + , directory, filepath, mtl, parsec, syb, utf8-string + }: + mkDerivation { + pname = "protocol-buffers"; + version = "2.4.11"; + sha256 = "1s41iprw4w6g56phrgali2b59isn2s67nzfwr38yfgib3lm4kjs7"; + libraryHaskellDepends = [ + array base binary bytestring containers directory filepath mtl + parsec syb utf8-string + ]; + description = "Parse Google Protocol Buffer specifications"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "protocol-buffers-descriptor" = callPackage ({ mkDerivation, base, bytestring, containers, protocol-buffers }: mkDerivation { pname = "protocol-buffers-descriptor"; version = "2.4.10"; sha256 = "1w4n0yqf5xhbs5yi0xj8ak268chngklc7sif2s3bjr0dwk7fi5d0"; + revision = "1"; + editedCabalFile = "03b3w0yawnjv5hpprkhj49s1fkj9ib03avyxgv3i9vj0n0ngbiz1"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base bytestring containers protocol-buffers @@ -165852,6 +166360,21 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "protocol-buffers-descriptor_2_4_11" = callPackage + ({ mkDerivation, base, bytestring, containers, protocol-buffers }: + mkDerivation { + pname = "protocol-buffers-descriptor"; + version = "2.4.11"; + sha256 = "06k8sz0i021mizdgh01rx7v08wc767njwppimgmm2hyg6k4bv450"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + base bytestring containers protocol-buffers + ]; + description = "Text.DescriptorProto.Options and code generated from the Google Protocol Buffer specification"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "protocol-buffers-descriptor-fork" = callPackage ({ mkDerivation, base, bytestring, containers , protocol-buffers-fork @@ -170394,8 +170917,8 @@ self: { pname = "rcu"; version = "0.2.2"; sha256 = "0lj88xif38zh1qkpfzyarm36khzavqsl8chjma062b1pvhhlc9lk"; - revision = "2"; - editedCabalFile = "0s9rd1ys6y770xwfgljmrkyw968jqwsa39xpa3x88wzb93qzypmr"; + revision = "3"; + editedCabalFile = "1qyc8jb97mfcmijn825s6mr244mx2kqvam5mm519dm6dyk8kchpa"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ base Cabal cabal-doctest ]; @@ -172572,6 +173095,22 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "regex-tdfa_1_2_3_1" = callPackage + ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl + , parsec, regex-base + }: + mkDerivation { + pname = "regex-tdfa"; + version = "1.2.3.1"; + sha256 = "0l7ajnh4hpgggf2a1r9dg0hx2fy679vd2kada5y7r02hy3nfxala"; + libraryHaskellDepends = [ + array base bytestring containers ghc-prim mtl parsec regex-base + ]; + description = "Replaces/Enhances Text.Regex"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "regex-tdfa-pipes" = callPackage ({ mkDerivation, array, base, lens, monads-tf, pipes, regex-base , regex-tdfa @@ -173139,7 +173678,7 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "relational-query_0_11_3_0" = callPackage + "relational-query_0_11_4_0" = callPackage ({ mkDerivation, array, base, bytestring, containers, dlist , names-th, persistable-record, product-isomorphic , quickcheck-simple, sql-words, template-haskell, text @@ -173147,8 +173686,8 @@ self: { }: mkDerivation { pname = "relational-query"; - version = "0.11.3.0"; - sha256 = "1g7jvhp5vv17hbddc2p6j39gfg638y2b0jjky9jxrcjkww1ii16p"; + version = "0.11.4.0"; + sha256 = "0pai1x1hqk8mn7gqxjrchb7rcv5dc8q4iwiklb8w3band7jwpnf7"; libraryHaskellDepends = [ array base bytestring containers dlist names-th persistable-record product-isomorphic sql-words template-haskell text th-reify-compat @@ -173281,6 +173820,22 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "relational-schemas_0_1_6_2" = callPackage + ({ mkDerivation, base, bytestring, containers, relational-query + , template-haskell, time + }: + mkDerivation { + pname = "relational-schemas"; + version = "0.1.6.2"; + sha256 = "1c578lz7k06clwn92wi3xl20imn8ddivqblxn0vqrnn5hfkfy8jm"; + libraryHaskellDepends = [ + base bytestring containers relational-query template-haskell time + ]; + description = "RDBMSs' schema templates for relational-query"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "relative-date" = callPackage ({ mkDerivation, base, concatenative, datetime, mtl, parsec, time }: @@ -175299,8 +175854,8 @@ self: { }: mkDerivation { pname = "rhine"; - version = "0.4.0.0"; - sha256 = "18fav38bd2ysk8y5s24xxc6v381mag3g2lqpb9qayvcfj2zndx1x"; + version = "0.4.0.1"; + sha256 = "00xmq61bgq84z8kvnjrh30zffm4q108gbxbndfkl6v63jl0346yj"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -175316,13 +175871,13 @@ self: { ({ mkDerivation, base, dunai, gloss, rhine }: mkDerivation { pname = "rhine-gloss"; - version = "0.4.0.0"; - sha256 = "1sidp1f3is889g0kgdcbzpjrqndrvwvq6k713daqlkzarg9wngnj"; + version = "0.4.0.1"; + sha256 = "054f7x6d2gi3ph9iw5fs8qxyl2jwv8q93794zhdkcnyz15371piq"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base dunai gloss rhine ]; executableHaskellDepends = [ base ]; - description = "Wrapper to run reactive programs written in Rhine with Gloss as backend"; + description = "Gloss backend for Rhine"; license = stdenv.lib.licenses.bsd3; hydraPlatforms = stdenv.lib.platforms.none; }) {}; @@ -177900,8 +178455,8 @@ self: { ({ mkDerivation, base, doctest }: mkDerivation { pname = "salve"; - version = "1.0.2"; - sha256 = "0c5022vd2pll27q49s4jq47jip27v1kr417wzip7dw5z3b3dd1ni"; + version = "1.0.3"; + sha256 = "1688sd4zrw8swb61svnjawaq7w85hgvh4ww7zz3yppl40sl82irj"; libraryHaskellDepends = [ base ]; testHaskellDepends = [ base doctest ]; description = "Semantic version numbers and constraints"; @@ -179567,6 +180122,29 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "script-monad" = callPackage + ({ mkDerivation, aeson, aeson-pretty, base, bytestring, http-client + , http-types, lens, lens-aeson, QuickCheck, tasty, tasty-hunit + , tasty-quickcheck, text, time, unordered-containers, vector, wreq + }: + mkDerivation { + pname = "script-monad"; + version = "0.0.1"; + sha256 = "0s1wb3wgkma7ia8mn4fl8jyl74vrx195m37n71fnbi22z56y8k5j"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson aeson-pretty base bytestring http-client http-types lens + lens-aeson QuickCheck text time unordered-containers vector wreq + ]; + executableHaskellDepends = [ base ]; + testHaskellDepends = [ + base bytestring tasty tasty-hunit tasty-quickcheck + ]; + description = "Transformer stack of error, reader, writer, state, and prompt monads"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "scrobble" = callPackage ({ mkDerivation, base, containers, curl, MissingH, network , network-uri, old-locale, pureMD5, time, url @@ -180557,8 +181135,8 @@ self: { pname = "semigroupoids"; version = "5.2.2"; sha256 = "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4"; - revision = "3"; - editedCabalFile = "1k7iq54rkiqrx5kdcc6mc11agqqcnp1hgrw6c6rl3yjybz1vc5y4"; + revision = "4"; + editedCabalFile = "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base base-orphans bifunctors comonad containers contravariant @@ -184341,16 +184919,16 @@ self: { "shake-ats" = callPackage ({ mkDerivation, base, binary, dependency, directory, hashable - , hs2ats, language-ats, microlens, microlens-th, shake, shake-cabal + , hs2ats, language-ats, microlens, shake, shake-c, shake-cabal , shake-ext, text }: mkDerivation { pname = "shake-ats"; - version = "1.8.0.6"; - sha256 = "00887a8dh26w2qj5w0scivrz3qjybbkflf4s135lmrz6s5pb7l6f"; + version = "1.9.0.0"; + sha256 = "0hnqcb79ncklf9zhvl70bxfqzgd19b4vs4angyi8swzmhvpxxizj"; libraryHaskellDepends = [ base binary dependency directory hashable hs2ats language-ats - microlens microlens-th shake shake-cabal shake-ext text + microlens shake shake-c shake-cabal shake-ext text ]; description = "Utilities for building ATS projects with shake"; license = stdenv.lib.licenses.bsd3; @@ -184361,8 +184939,8 @@ self: { ({ mkDerivation, base, cdeps, shake }: mkDerivation { pname = "shake-c"; - version = "0.1.0.0"; - sha256 = "0g6lavs5y62g5dpy1pfpm2bks43kf6i4m1gb9hdrkrz1iysgl209"; + version = "0.3.0.0"; + sha256 = "1ib1090z5vrch5nbx9dyn89yxawwhz2igb0s08sqgn7lawd03vvw"; libraryHaskellDepends = [ base cdeps shake ]; description = "Library for building C code with shake"; license = stdenv.lib.licenses.bsd3; @@ -184423,16 +185001,12 @@ self: { }) {}; "shake-ext" = callPackage - ({ mkDerivation, base, cdeps, composition-prelude, directory, shake - , template-haskell - }: + ({ mkDerivation, base, directory, shake }: mkDerivation { pname = "shake-ext"; - version = "2.12.0.0"; - sha256 = "1yvsywbszvn2vllbzbp8c9c10idaid87wv1qvhz2xq4jw2f8q38h"; - libraryHaskellDepends = [ - base cdeps composition-prelude directory shake template-haskell - ]; + version = "3.0.1.0"; + sha256 = "15n94922a4l74n65w59dj8jjpsv2vamm5lwnkii2hq6s1rpgccnm"; + libraryHaskellDepends = [ base directory shake ]; description = "Helper functions for linting with shake"; license = stdenv.lib.licenses.bsd3; hydraPlatforms = stdenv.lib.platforms.none; @@ -185657,6 +186231,23 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {gdk_x11 = null; gtk_x11 = null;}; + "siggy-chardust" = callPackage + ({ mkDerivation, base, doctest, hlint, smallcheck, tasty + , tasty-hunit, tasty-quickcheck, tasty-smallcheck + }: + mkDerivation { + pname = "siggy-chardust"; + version = "1.0.0"; + sha256 = "0hssby6mak0bq1fqv47hp6rnw51yz1kgzgsmnvh2k9jfq0y0qwwz"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ + base doctest hlint smallcheck tasty tasty-hunit tasty-quickcheck + tasty-smallcheck + ]; + description = "Rounding rationals to significant digits and decimal places"; + license = stdenv.lib.licenses.mpl20; + }) {}; + "sigma-ij" = callPackage ({ mkDerivation, array, base, combinat, containers , optparse-applicative, parsec2, random, time @@ -191814,6 +192405,19 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "sql-words_0_1_6_2" = callPackage + ({ mkDerivation, base, QuickCheck, quickcheck-simple }: + mkDerivation { + pname = "sql-words"; + version = "0.1.6.2"; + sha256 = "0f7bvmz2ppq6pwgi3klxzpilnj899ssrsf52r99g9apqz065lsiz"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base QuickCheck quickcheck-simple ]; + description = "SQL keywords data constructors into OverloadedString"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "sqlcipher" = callPackage ({ mkDerivation, base, bytestring, Cabal, directory, filepath , hspec, openssl, pretty, temporary, time, utf8-string @@ -193209,6 +193813,18 @@ self: { license = stdenv.lib.licenses.mpl20; }) {}; + "starter_0_3_0" = callPackage + ({ mkDerivation, base, fsnotify }: + mkDerivation { + pname = "starter"; + version = "0.3.0"; + sha256 = "14rxrs1gjsm26m7rk4rj9b2389zca0j24kjl7sfznqpxgk99qmpx"; + libraryHaskellDepends = [ base fsnotify ]; + description = "Develop applications without restarts"; + license = stdenv.lib.licenses.mpl20; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "stash" = callPackage ({ mkDerivation, aeson, attoparsec, base, bytestring, directory , hashable, text, vector @@ -199893,17 +200509,18 @@ self: { license = stdenv.lib.licenses.mit; }) {}; - "tasty_1_1_0_1" = callPackage + "tasty_1_1_0_2" = callPackage ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl , optparse-applicative, stm, tagged, unbounded-delays, unix + , wcwidth }: mkDerivation { pname = "tasty"; - version = "1.1.0.1"; - sha256 = "09mbqjak66wynacddn399hh9dqcmgxg4gdn2492g538dj55lmjdw"; + version = "1.1.0.2"; + sha256 = "1q3hsy1a6q8xng3m04hp1m10bwamihani30zi25cjhkhmyl4ads7"; libraryHaskellDepends = [ ansi-terminal async base clock containers mtl optparse-applicative - stm tagged unbounded-delays unix + stm tagged unbounded-delays unix wcwidth ]; description = "Modern and extensible testing framework"; license = stdenv.lib.licenses.mit; @@ -200045,6 +200662,27 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "tasty-golden_2_3_2" = callPackage + ({ mkDerivation, async, base, bytestring, containers, deepseq + , directory, filepath, mtl, optparse-applicative, process, tagged + , tasty, tasty-hunit, temporary, temporary-rc + }: + mkDerivation { + pname = "tasty-golden"; + version = "2.3.2"; + sha256 = "0k3ibjhjc9vcwzrjnl4rnwvfm8l81q347nb7dgvcib6n5wm3s404"; + libraryHaskellDepends = [ + async base bytestring containers deepseq directory filepath mtl + optparse-applicative process tagged tasty temporary + ]; + testHaskellDepends = [ + base directory filepath process tasty tasty-hunit temporary-rc + ]; + description = "Golden tests support for tasty"; + license = stdenv.lib.licenses.mit; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "tasty-groundhog-converters" = callPackage ({ mkDerivation, aeson, base, bimap, bytestring, containers , groundhog, groundhog-converters, groundhog-sqlite, groundhog-th @@ -202900,6 +203538,23 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "text-postgresql_0_0_3_1" = callPackage + ({ mkDerivation, base, dlist, QuickCheck, quickcheck-simple + , transformers, transformers-compat + }: + mkDerivation { + pname = "text-postgresql"; + version = "0.0.3.1"; + sha256 = "1s42a1mq7hz63zfpcv7bl4141vnyrsyd0ir723iph6vmsa46iqn6"; + libraryHaskellDepends = [ + base dlist transformers transformers-compat + ]; + testHaskellDepends = [ base QuickCheck quickcheck-simple ]; + description = "Parser and Printer of PostgreSQL extended types"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "text-printer" = callPackage ({ mkDerivation, base, bytestring, pretty, QuickCheck, semigroups , test-framework, test-framework-quickcheck2, text, text-latin1 @@ -205748,8 +206403,8 @@ self: { }: mkDerivation { pname = "tintin"; - version = "1.9.0"; - sha256 = "0nl2qpj59zavvdjbq565ls2gz4apwh2qq2jrknxsvwfl79jnf8pz"; + version = "1.9.1"; + sha256 = "0i44m49v9vxcasiacrrk6ypqan3j2qw4r9g2m99brmji9kwma2kb"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -208048,8 +208703,8 @@ self: { pname = "trifecta"; version = "1.7.1.1"; sha256 = "13n6a3fdxngnzsjnhfrzigv1c2g0xm6lqkjcnirpc37sd0rpby31"; - revision = "4"; - editedCabalFile = "12dv7mipmqc7ykazjqql6slbgdgi5f6hglw2cbdi6brvkwxk7w9z"; + revision = "5"; + editedCabalFile = "0zlvnmzxx1ax8kx1d0z4jibjy49picz2zxknr8i6pz1gsj89bgrw"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ ansi-terminal ansi-wl-pprint array base blaze-builder blaze-html @@ -208651,8 +209306,8 @@ self: { ({ mkDerivation, base, generics-sop }: mkDerivation { pname = "tuple-sop"; - version = "0.3.0.0"; - sha256 = "1m9xsjnnyavms4hxgdam79vc9c4bf6ssmammmzvvidqvyl9z1g15"; + version = "0.3.1.0"; + sha256 = "0hv0fcz5sw93v1niq2r656wpkiwkg6larld7x9cwk4s98h7qvqgn"; libraryHaskellDepends = [ base generics-sop ]; testHaskellDepends = [ base generics-sop ]; description = "functions on n-ary tuples using generics-sop"; @@ -215212,14 +215867,14 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "vector-sized_1_0_2_0" = callPackage + "vector-sized_1_0_3_0" = callPackage ({ mkDerivation, adjunctions, base, deepseq, distributive , finite-typelits, indexed-list-literals, primitive, vector }: mkDerivation { pname = "vector-sized"; - version = "1.0.2.0"; - sha256 = "0ac9bx5pcf9hbm1i9ibw3x52j0a92j8y7svm4b3d65p85mxqhc69"; + version = "1.0.3.0"; + sha256 = "1mjg8hncv7xd3w7fsdalvhwiwnsr83nxv21njc01bgj891as44bx"; libraryHaskellDepends = [ adjunctions base deepseq distributive finite-typelits indexed-list-literals primitive vector @@ -215576,6 +216231,31 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "vfr-waypoints" = callPackage + ({ mkDerivation, base, checkers, containers, fuzzy, hedgehog, lens + , monoid-subclasses, optparse-applicative, QuickCheck, tasty + , tasty-hedgehog, tasty-hunit, tasty-quickcheck, transformers + }: + mkDerivation { + pname = "vfr-waypoints"; + version = "0.1.0.0"; + sha256 = "0s80vnix20jcrasra5civ2apnqjrnvi2r7ry568r32fhlgag4cr7"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base containers fuzzy lens monoid-subclasses + ]; + executableHaskellDepends = [ + base fuzzy lens optparse-applicative + ]; + testHaskellDepends = [ + base checkers hedgehog lens QuickCheck tasty tasty-hedgehog + tasty-hunit tasty-quickcheck transformers + ]; + description = "VFR waypoints, as published in the AIP (ERSA)"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "vgrep" = callPackage ({ mkDerivation, aeson, async, attoparsec, base, cabal-file-th , containers, directory, doctest, fingertree, generic-deriving @@ -219199,6 +219879,39 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "webdriver-w3c" = callPackage + ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring + , bytestring, containers, directory, exceptions, http-client + , http-types, JuicyPixels, lens, lens-aeson, network-uri, parsec + , QuickCheck, random, scientific, script-monad, SHA, stm, tasty + , tasty-expected-failure, tasty-hunit, tasty-quickcheck, text, time + , unordered-containers, uri-encode, vector, wreq + }: + mkDerivation { + pname = "webdriver-w3c"; + version = "0.0.1"; + sha256 = "0ynidfwhyarbfhiq8m284l6489ribmakx8p8gx6cz7kvh44qa1cv"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson aeson-pretty base base64-bytestring bytestring containers + directory exceptions http-client http-types JuicyPixels lens + lens-aeson network-uri QuickCheck random scientific script-monad + SHA stm tasty tasty-expected-failure text time unordered-containers + uri-encode vector wreq + ]; + executableHaskellDepends = [ base tasty tasty-expected-failure ]; + testHaskellDepends = [ + aeson base base64-bytestring bytestring containers directory + exceptions http-client http-types JuicyPixels lens lens-aeson + parsec QuickCheck random scientific script-monad tasty + tasty-expected-failure tasty-hunit tasty-quickcheck text time + unordered-containers vector wreq + ]; + description = "Bindings to the WebDriver API"; + license = stdenv.lib.licenses.gpl3; + }) {}; + "webex-teams-api" = callPackage ({ mkDerivation, aeson, async, attoparsec, base, bitset-word8 , bytestring, conduit, data-default, hspec, http-conduit @@ -228494,6 +229207,32 @@ self: { license = stdenv.lib.licenses.bsd3; }) {inherit (pkgs) unzip;}; + "zip-archive_0_3_3" = callPackage + ({ mkDerivation, array, base, binary, bytestring, Cabal, containers + , digest, directory, filepath, HUnit, mtl, pretty, process + , temporary, text, time, unix, unzip, zlib + }: + mkDerivation { + pname = "zip-archive"; + version = "0.3.3"; + sha256 = "0kf8xyac168bng8a0za2jwrbss7a4ralvci9g54hnvl0gkkxx2lq"; + isLibrary = true; + isExecutable = true; + setupHaskellDepends = [ base Cabal ]; + libraryHaskellDepends = [ + array base binary bytestring containers digest directory filepath + mtl pretty text time unix zlib + ]; + testHaskellDepends = [ + base bytestring directory filepath HUnit process temporary time + unix + ]; + testToolDepends = [ unzip ]; + description = "Library for creating and modifying zip archives"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {inherit (pkgs) unzip;}; + "zip-conduit" = callPackage ({ mkDerivation, base, bytestring, cereal, conduit, conduit-extra , criterion, digest, directory, filepath, hpc, HUnit, LibZip, mtl @@ -228596,8 +229335,8 @@ self: { pname = "zippers"; version = "0.2.5"; sha256 = "11f0jx0dbm2y9y5hnpakdvk9fmsm3awr2lcxp46dyma6arr7f4id"; - revision = "2"; - editedCabalFile = "03vmfmj38sa6pn858wa4fcbn3b0jw5pcypzv0kls600fgdbjfqbm"; + revision = "3"; + editedCabalFile = "0y0klc2jaj611cjvmqi95dyj9yvribf9xhibn1andrz5rs6ysz3p"; setupHaskellDepends = [ base Cabal cabal-doctest ]; libraryHaskellDepends = [ base lens profunctors semigroupoids semigroups From 48e1d7837a8b00f9eabb1aeee4ee7aa8e112d236 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 25 Jun 2018 20:39:54 +0200 Subject: [PATCH 144/312] haskell-doctest: update override for ghc-8.4.x to latest version --- .../configuration-ghc-8.4.x.nix | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix index db453e66c67..1e48971b6fb 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix @@ -39,23 +39,7 @@ self: super: { unix = null; xhtml = null; - ## Shadowed: - - ## Needs bump to a versioned attribute - ## Issue: https://github.com/sol/doctest/issues/189 - doctest = overrideCabal super.doctest_0_15_0 (drv: { - ## Setup: Encountered missing dependencies: - ## ghc >=7.0 && <8.4 - ## - ## Setup: Encountered missing dependencies: - ## QuickCheck >=2.11.3 - doCheck = false; - }); - - ## Needs bump to a versioned attribute - ## Setup: Encountered missing dependencies: - ## Cabal <2.2 - ## Older versions don't compile. + doctest = dontCheck super.doctest_0_16_0; # tests depend on very recent QuickCheck hackage-db = super.hackage-db_2_0_1; ## Needs bump to a versioned attribute From fb9f0ebc9a6981b35c875b074c07884a8ac4cb61 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 26 Jun 2018 10:07:28 +0200 Subject: [PATCH 145/312] haskell-vector-sized: update override for the latest version --- pkgs/development/haskell-modules/configuration-common.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 439e033acb0..b196b1a9ccd 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1039,7 +1039,7 @@ self: super: { vulkan = super.vulkan.override { vulkan = pkgs.vulkan-loader; }; # Builds only with the latest version of indexed-list-literals. - vector-sized_1_0_2_0 = super.vector-sized_1_0_2_0.override { + vector-sized_1_0_3_0 = super.vector-sized_1_0_3_0.override { indexed-list-literals = self.indexed-list-literals_0_2_1_1; }; From 1b3111e4361fdc337390448b22b4271437e7efc6 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 26 Jun 2018 10:11:33 +0200 Subject: [PATCH 146/312] all-cabal-hashes: update snapshot to Hackage at 2018-06-22T09:51:25Z --- pkgs/data/misc/hackage/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix index a60368e5c6d..d25a165e40c 100644 --- a/pkgs/data/misc/hackage/default.nix +++ b/pkgs/data/misc/hackage/default.nix @@ -1,6 +1,6 @@ { fetchurl }: fetchurl { - url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/db00b74891fcaae598fdcaf3835e274be8f2c082.tar.gz"; - sha256 = "0csvwqnvyg2jg76rr4blm4hm6max10a6as4mnwdz76sliw4092sg"; + url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/dc7b5d4f0ee056ec87a4a5069b3c68bdd316abd6.tar.gz"; + sha256 = "0llycqa2y6ng5bhzb19ya6p83k0chfycpivg9287gzsmj363j934"; } From 8603f343a326b954f7a61ec8f07322f0f8712cf6 Mon Sep 17 00:00:00 2001 From: Sebastien Maret Date: Thu, 31 May 2018 14:00:33 +0200 Subject: [PATCH 147/312] gildas: init at 201806_a --- .../science/astronomy/gildas/clang.patch | 22 +++++ .../science/astronomy/gildas/default.nix | 68 +++++++++++++ .../science/astronomy/gildas/openblas.patch | 96 +++++++++++++++++++ .../astronomy/gildas/return-error-code.patch | 13 +++ .../science/astronomy/gildas/wrapper.patch | 19 ++++ pkgs/top-level/all-packages.nix | 2 + 6 files changed, 220 insertions(+) create mode 100644 pkgs/applications/science/astronomy/gildas/clang.patch create mode 100644 pkgs/applications/science/astronomy/gildas/default.nix create mode 100644 pkgs/applications/science/astronomy/gildas/openblas.patch create mode 100644 pkgs/applications/science/astronomy/gildas/return-error-code.patch create mode 100644 pkgs/applications/science/astronomy/gildas/wrapper.patch diff --git a/pkgs/applications/science/astronomy/gildas/clang.patch b/pkgs/applications/science/astronomy/gildas/clang.patch new file mode 100644 index 00000000000..4d6654a99ae --- /dev/null +++ b/pkgs/applications/science/astronomy/gildas/clang.patch @@ -0,0 +1,22 @@ +diff -ruN gildas-src-jun18a/admin/define-system.sh gildas-src-jun18a.clang/admin/define-system.sh +--- gildas-src-jun18a/admin/define-system.sh 2018-03-12 11:07:57.000000000 +0100 ++++ gildas-src-jun18a.clang/admin/define-system.sh 2018-06-12 14:56:14.000000000 +0200 +@@ -218,13 +218,13 @@ + else + GAG_MACHINE=pc + fi +- if which gcc > /dev/null 2>&1; then +- DEFAULT_CCOMPILER=gcc ++ if which clang > /dev/null 2>&1; then ++ DEFAULT_CCOMPILER=clang + fi +- if which g++ > /dev/null 2>&1; then +- DEFAULT_CXXCOMPILER=g++ +- elif which clang++ > /dev/null 2>&1; then ++ if which clang++ > /dev/null 2>&1; then + DEFAULT_CXXCOMPILER=clang++ ++ elif which g++ > /dev/null 2>&1; then ++ DEFAULT_CXXCOMPILER=g++ + fi + if which ifort > /dev/null 2>&1; then + DEFAULT_FCOMPILER=ifort diff --git a/pkgs/applications/science/astronomy/gildas/default.nix b/pkgs/applications/science/astronomy/gildas/default.nix new file mode 100644 index 00000000000..bd7288f2e9c --- /dev/null +++ b/pkgs/applications/science/astronomy/gildas/default.nix @@ -0,0 +1,68 @@ +{ stdenv, fetchurl, gtk2-x11 , pkgconfig , python27 , gfortran , lesstif +, cfitsio , getopt , perl , groff , which , openblas +}: + +let + python27Env = python27.withPackages(ps: with ps; [ numpy ]); +in + +stdenv.mkDerivation rec { + srcVersion = "jun18a"; + version = "20180601_a"; + name = "gildas-${version}"; + + src = fetchurl { + url = "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.gz"; + sha256 = "0k4x0g69fphb1759cwcw6bbs8imwmq0qwj6zqixxk60skk4n4jvb"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ]; + + buildInputs = [ gtk2-x11 lesstif cfitsio python27Env openblas ]; + + patches = [ ./wrapper.patch ./return-error-code.patch ./openblas.patch ./clang.patch ]; + + configurePhase='' + substituteInPlace admin/wrapper.sh --replace '%%OUT%%' $out + substituteInPlace admin/wrapper.sh --replace '%%PYTHONHOME%%' ${python27Env} + source admin/gildas-env.sh -c gfortran -o openmp -s ${openblas}/lib + echo "gag_doc: $out/share/doc/" >> kernel/etc/gag.dico.lcl + ''; + + buildPhase='' + make depend + make install + ''; + + installPhase='' + mkdir -p $out/bin + cp -a ../gildas-exe-${srcVersion}/* $out + mv $out/$GAG_EXEC_SYSTEM $out/libexec + cp admin/wrapper.sh $out/bin/gildas-wrapper.sh + chmod 755 $out/bin/gildas-wrapper.sh + for i in $out/libexec/bin/* ; do + ln -s $out/bin/gildas-wrapper.sh $out/bin/$(basename "$i") + done + ''; + + meta = { + description = "Radioastronomy data analysis software"; + longDescription = '' + GILDAS is a collection of state-of-the-art software + oriented toward (sub-)millimeter radioastronomical + applications (either single-dish or interferometer). + It is daily used to reduce all data acquired with the + IRAM 30M telescope and Plateau de Bure Interferometer + PDBI (except VLBI observations). GILDAS is easily + extensible. GILDAS is written in Fortran-90, with a + few parts in C/C++ (mainly keyboard interaction, + plotting, widgets).''; + homepage = http://www.iram.fr/IRAMFR/GILDAS/gildas.html; + license = stdenv.lib.licenses.free; + maintainers = [ stdenv.lib.maintainers.bzizou stdenv.lib.maintainers.smaret ]; + platforms = stdenv.lib.platforms.all; + }; + +} diff --git a/pkgs/applications/science/astronomy/gildas/openblas.patch b/pkgs/applications/science/astronomy/gildas/openblas.patch new file mode 100644 index 00000000000..4236b50796c --- /dev/null +++ b/pkgs/applications/science/astronomy/gildas/openblas.patch @@ -0,0 +1,96 @@ +diff -ruN gildas-src-may18a.orig/admin/gildas-env.sh gildas-src-may18a/admin/gildas-env.sh +--- gildas-src-may18a.orig/admin/gildas-env.sh 2018-04-24 18:20:08.000000000 +0200 ++++ gildas-src-may18a/admin/gildas-env.sh 2018-05-04 16:39:18.982253471 +0200 +@@ -430,7 +430,7 @@ + # dot (e.g. so.3 is not counted), because e.g. /usr/lib64/liblapack.so.3 + # is useless and can not be found by the linker on command lines like + # "-L/usr/lib -llapack" +- occurences=`\ls ${2}/${1}* 2> /dev/null | \grep -v "${2}/${1}.*\." | \wc -l` ++ occurences=`\ls -l ${2}/${1}{so,a,h} 2> /dev/null | \wc -l` + if [ ${occurences} -ge 1 ]; then + \return 0 + else +@@ -458,11 +458,9 @@ + SDM_MISSING= + # + for DIR in $GAGENV_SEARCH_PATH; do +- if file_present "liblapack." "${DIR}"; then ++ if file_present "libopenblas." "${DIR}"; then + LAPACK_PRESENT=yes + LAPACK_LIB_DIR=$DIR +- fi +- if file_present "libblas." "${DIR}"; then + BLAS_PRESENT=yes + BLAS_LIB_DIR=$DIR + fi +@@ -493,7 +491,7 @@ + X11_LIB=no + # + for DIR in $INC_PATH; do +- if file_present "X.h" "${DIR}/X11"; then ++ if file_present "X." "${DIR}/X11"; then + X11_INC=yes + X11_INC_DIR=$DIR + fi +diff -ruN gildas-src-may18a.orig/admin/Makefile.build gildas-src-may18a/admin/Makefile.build +--- gildas-src-may18a.orig/admin/Makefile.build 2018-03-19 17:48:07.000000000 +0100 ++++ gildas-src-may18a/admin/Makefile.build 2018-05-04 16:39:18.982253471 +0200 +@@ -398,9 +398,7 @@ + # only the shared libraries are installed (i.e. the corresponding archive + # libraries are missing). + +--lblas: +- +--llapack: ++-lopenblas: + + -lslatec: + +diff -ruN gildas-src-may18a.orig/admin/Makefile.def gildas-src-may18a/admin/Makefile.def +--- gildas-src-may18a.orig/admin/Makefile.def 2018-03-21 17:53:34.000000000 +0100 ++++ gildas-src-may18a/admin/Makefile.def 2018-05-04 16:41:59.233518207 +0200 +@@ -206,7 +206,7 @@ + ########################################################################### + # Other defaults + +-LINEAR = lapack ++LINEAR = openblas + GLOBAL_DIRTY = $(builddir) *~ TAGS ChangeLog* Makefile.bak + + ########################################################################### +@@ -515,7 +515,7 @@ + ########################################################################### + # Kernel libraries + +-LEGACY_LIBS = -lslatec -llapack -lblas ++LEGACY_LIBS = -lslatec -lopenblas + _GAG_LIBS = -lggui -lgcore -lgio -lgfits -lgwcs -lgmath -lgsys -lginc + ifndef GAG_WIN32 + GAG_LIBS = $(_GAG_LIBS) +diff -ruN gildas-src-may18a.orig/legacy/slatec/Makefile gildas-src-may18a/legacy/slatec/Makefile +--- gildas-src-may18a.orig/legacy/slatec/Makefile 2014-12-09 11:31:56.000000000 +0100 ++++ gildas-src-may18a/legacy/slatec/Makefile 2018-05-04 16:39:18.982253471 +0200 +@@ -24,7 +24,7 @@ + U-all.o V-all.o W-all.o X-all.o Y-all.o Z-all.o d1mach.o i1mach.o pimach.o \ + r1mach.o dummy.o P-all.o P-value.o Dp-1vlu.o + +-LIB_DEPENDS = -llapack -lblas ++LIB_DEPENDS = -lopenblas + + ifeq ($(GAG_COMPILER_FKIND),ifc) + OPTION_FFLAGS = +diff -ruN gildas-src-may18a.orig/packages/clic/lib/Makefile gildas-src-may18a/packages/clic/lib/Makefile +--- gildas-src-may18a.orig/packages/clic/lib/Makefile 2018-01-16 11:53:15.000000000 +0100 ++++ gildas-src-may18a/packages/clic/lib/Makefile 2018-05-04 16:39:18.982253471 +0200 +@@ -56,9 +56,9 @@ + sg_line_table.o table_passband.o clic_index.o clic_blank.o + + # Mathematical library dependency +-ifeq ($(LINEAR),lapack) ++ifeq ($(LINEAR),openblas) + LINEAR_LIB_OBJECTS = singular.o mth_lapack.o +- LINEAR_LIB_DEPENDS = -llapack -lblas ++ LINEAR_LIB_DEPENDS = -lopenblas + else + ifeq ($(LINEAR),nag) + LINEAR_LIB_OBJECTS = mth_nag.o diff --git a/pkgs/applications/science/astronomy/gildas/return-error-code.patch b/pkgs/applications/science/astronomy/gildas/return-error-code.patch new file mode 100644 index 00000000000..f0bd7da9354 --- /dev/null +++ b/pkgs/applications/science/astronomy/gildas/return-error-code.patch @@ -0,0 +1,13 @@ +diff --new-file -r -u gildas-src-dec17a.orig/admin/gildas-env.sh gildas-src-dec17a/admin/gildas-env.sh +--- gildas-src-dec17a.orig/admin/gildas-env.sh 2017-10-24 11:39:18.000000000 +0200 ++++ gildas-src-dec17a/admin/gildas-env.sh 2017-12-01 11:17:32.051953670 +0100 +@@ -1010,6 +1010,9 @@ + gagenv_message "$gagenv_errors error(s) and $gagenv_warnings warning(s) detected" + if [ $gagenv_errors -ne 0 ]; then + gagenv_message "GILDAS will not compile" ++ gagenv_clean ++ echo ++ \return 1 + elif [ $gagenv_warnings -ne 0 ]; then + gagenv_message "GILDAS will compile with some optional features disabled" + else diff --git a/pkgs/applications/science/astronomy/gildas/wrapper.patch b/pkgs/applications/science/astronomy/gildas/wrapper.patch new file mode 100644 index 00000000000..2e470a1e9cd --- /dev/null +++ b/pkgs/applications/science/astronomy/gildas/wrapper.patch @@ -0,0 +1,19 @@ +diff --new-file -r -u gildas-src-feb17d.orig/admin/wrapper.sh gildas-src-feb17d/admin/wrapper.sh +--- gildas-src-feb17d.orig/admin/wrapper.sh 1970-01-01 01:00:00.000000000 +0100 ++++ gildas-src-feb17d/admin/wrapper.sh 2017-05-18 21:00:01.660778782 +0200 +@@ -0,0 +1,15 @@ ++#!/bin/sh -e ++ ++export GAG_ROOT_DIR="%%OUT%%" ++export GAG_PATH="${GAG_ROOT_DIR}/etc" ++export GAG_EXEC_SYSTEM="libexec" ++export PYTHONHOME="%%PYTHONHOME%%" ++if [ -z "\$PYTHONPATH" ]; then ++ PYTHONPATH="${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/python" ++else ++ PYTHONPATH="${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/python:${PYTHONPATH}" ++fi ++export PYTHONPATH ++export LD_LIBRARY_PATH=${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/lib/ ++me=`basename $0` ++exec ${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/bin/${me} ${*} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9cae3fa291d..945ad8eff7e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20686,6 +20686,8 @@ with pkgs; fityk = callPackage ../applications/science/misc/fityk { }; + gildas = callPackage ../applications/science/astronomy/gildas { }; + gplates = callPackage ../applications/science/misc/gplates { boost = boost160; cgal = cgal.override { boost = boost160; }; From ba2f45c1829e4a2eff0012cd5f83ec7a9553d475 Mon Sep 17 00:00:00 2001 From: Sebastien Maret Date: Thu, 14 Jun 2018 09:31:51 +0200 Subject: [PATCH 148/312] gildas: use the standard installPhase --- pkgs/applications/science/astronomy/gildas/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/astronomy/gildas/default.nix b/pkgs/applications/science/astronomy/gildas/default.nix index bd7288f2e9c..da575b5cdd4 100644 --- a/pkgs/applications/science/astronomy/gildas/default.nix +++ b/pkgs/applications/science/astronomy/gildas/default.nix @@ -33,10 +33,10 @@ stdenv.mkDerivation rec { buildPhase='' make depend - make install + make ''; - installPhase='' + postInstall='' mkdir -p $out/bin cp -a ../gildas-exe-${srcVersion}/* $out mv $out/$GAG_EXEC_SYSTEM $out/libexec From 501704b13cf5d29ebaa897226f75b4e7914cbbf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 26 Jun 2018 10:20:46 +0100 Subject: [PATCH 149/312] wireguard: 0.0.20180613 -> 0.0.20180625 --- pkgs/tools/networking/wireguard-tools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix index e8f8b425872..4d4a9446b45 100644 --- a/pkgs/tools/networking/wireguard-tools/default.nix +++ b/pkgs/tools/networking/wireguard-tools/default.nix @@ -4,11 +4,11 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "wireguard-tools-${version}"; - version = "0.0.20180613"; + version = "0.0.20180625"; src = fetchzip { url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz"; - sha256 = "0xndf5qxc4s0gsidzm0v4ivara6k2shjbr74xfcdpc0apfgyk2fz"; + sha256 = "1z7iibydj59nzx0jcxabb9k7b6djjz6yi032n66mqr98dh4dlkb7"; }; sourceRoot = "source/src/tools"; From 9f220ebf76c46b4c41d947c7472b0dc6ec93d482 Mon Sep 17 00:00:00 2001 From: volth Date: Tue, 26 Jun 2018 10:08:44 +0000 Subject: [PATCH 150/312] perlPackages.PathTools: 3.47 -> 3.74 (#42591) --- pkgs/top-level/perl-packages.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 44d50aefefc..b77a46513a5 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -12064,10 +12064,13 @@ let self = _self // overrides; _self = with self; { }; PathTools = buildPerlPackage { - name = "PathTools-3.47"; + name = "PathTools-3.74"; + preConfigure = '' + substituteInPlace Cwd.pm --replace '/usr/bin/pwd' '${pkgs.coreutils}/bin/pwd' + ''; src = fetchurl { - url = mirror://cpan/authors/id/S/SM/SMUELLER/PathTools-3.47.tar.gz; - sha256 = "caa8d4b45372b8cb0ef0f6f696efa3a60b0fd394b115cad39a7fbb8f6bd38026"; + url = mirror://cpan/authors/id/X/XS/XSAWYERX/PathTools-3.74.tar.gz; + sha256 = "25724cc54c59a3bfabadec95e72db292c98676bf3632497384e8dc6277936e11"; }; }; From f51c25631456c94cac59c66ef53decd056bcbf01 Mon Sep 17 00:00:00 2001 From: volth Date: Tue, 26 Jun 2018 10:09:22 +0000 Subject: [PATCH 151/312] perlPackages.MHonArc: fix build (#42593) --- pkgs/top-level/perl-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index b77a46513a5..daa351c522e 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -9503,7 +9503,7 @@ let self = _self // overrides; _self = with self; { url = "http://dcssrv1.oit.uci.edu/indiv/ehood/release/MHonArc/tar/${name}.tar.gz"; sha256 = "1xmf26dfwr8achprc3n1pxgl0mkiyr6pf25wq3dqgzqkghrrsxa2"; }; - propagatedBuildInputs = [ ]; + outputs = [ "out" "dev" ]; # no "devdoc" installTargets = "install"; From ea946b06119b67b5d1d60ededcf77ba8ff78e1ce Mon Sep 17 00:00:00 2001 From: volth Date: Tue, 26 Jun 2018 10:12:14 +0000 Subject: [PATCH 152/312] perlPackages: add meta.broken = true; (#42595) mark old and unmaintained by upstream packages as broken --- pkgs/top-level/perl-packages.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index daa351c522e..2018b5065a1 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -13191,6 +13191,7 @@ let self = _self // overrides; _self = with self; { url = "mirror://cpan/authors/id/J/JD/JDUNCAN/${name}.tar.gz"; sha256 = "09c8xb43p1s6ala6g4274az51mf33phyjkp66dpvgkgbi1xfnawp"; }; + meta.broken = true; }; RegexpGrammars = buildPerlModule rec { @@ -14088,6 +14089,7 @@ let self = _self // overrides; _self = with self; { }; buildInputs = [ ArchiveZip_1_53 pkgs.file ]; + meta.broken = true; }; @@ -14107,6 +14109,7 @@ let self = _self // overrides; _self = with self; { license = licenses.gpl3; platforms = platforms.all; maintainers = with maintainers; [ pSub ]; + meta.broken = true; }; }; From 19ce96584a13482c2ae6d24cabeb3eb9c2b8b5cd Mon Sep 17 00:00:00 2001 From: Uli Baum Date: Tue, 26 Jun 2018 12:33:18 +0200 Subject: [PATCH 153/312] git-sync: move to gitAndTools.git-sync By convention, git-related tools in nixpkgs are not added to the top level but bundled under gitAndTools. --- pkgs/applications/version-management/git-and-tools/default.nix | 2 ++ pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index 9a4ef524dde..24da6a71c58 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -95,6 +95,8 @@ rec { git-stree = callPackage ./git-stree { }; + git-sync = callPackage ./git-sync { }; + git2cl = callPackage ./git2cl { }; gitFastExport = callPackage ./fast-export { }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e9596e940e3..e2b28d0207d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16106,8 +16106,6 @@ with pkgs; python = python27; }; - git-sync = callPackage ../applications/version-management/git-and-tools/git-sync { }; - gitolite = callPackage ../applications/version-management/gitolite { }; inherit (gnome3) gitg; From b2831de441dcad63784c8e358de9e3d394248853 Mon Sep 17 00:00:00 2001 From: Chris Hodapp Date: Tue, 26 Jun 2018 09:21:07 -0400 Subject: [PATCH 154/312] yafaray-core: init at v3.3.0 --- pkgs/tools/graphics/yafaray-core/default.nix | 38 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 40 insertions(+) create mode 100644 pkgs/tools/graphics/yafaray-core/default.nix diff --git a/pkgs/tools/graphics/yafaray-core/default.nix b/pkgs/tools/graphics/yafaray-core/default.nix new file mode 100644 index 00000000000..a0de144d907 --- /dev/null +++ b/pkgs/tools/graphics/yafaray-core/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, opencv, zlib +, libxml2, freetype, libjpeg, libtiff, swig, openexr +, ilmbase, boost165 +, withPython ? true, python35 +}: + +stdenv.mkDerivation rec { + + name = "yafaray-core-${version}"; + version = "v3.3.0"; + + src = fetchFromGitHub { + owner = "YafaRay"; + repo = "Core"; + rev = "${version}"; + sha256 = "04p3nlg1rv617qf8v1nzjl6f0w43rvi8w9j6l6ck4bvl77v6cjp6"; + }; + + preConfigure = '' + NIX_CFLAGS_COMPILE+=" -isystem ${ilmbase.dev}/include/OpenEXR" + ''; + + buildInputs = [ + cmake pkgconfig boost165 opencv zlib libxml2 freetype libjpeg libtiff + swig openexr ilmbase + ] ++ stdenv.lib.optional withPython python35; + + meta = with stdenv.lib; { + description = "A free, open source raytracer"; + homepage = http://www.yafaray.org; + maintainers = with maintainers; [ hodapp ]; + license = licenses.lgpl21; + platforms = platforms.linux; + }; + } + +# TODO: Add optional Ruby support +# TODO: Add Qt support? (CMake looks for it, but what for?) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9cae3fa291d..bf973187906 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5932,6 +5932,8 @@ with pkgs; xwinwrap = callPackage ../tools/X11/xwinwrap {}; + yafaray-core = callPackage ../tools/graphics/yafaray-core { }; + yaft = callPackage ../applications/misc/yaft { }; yarn = callPackage ../development/tools/yarn { }; From b845a8129f98560ed43b4e79a7e840a4b0a680ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lengyel=20Bal=C3=A1zs?= Date: Tue, 26 Jun 2018 16:35:47 +0200 Subject: [PATCH 155/312] wine: stable 3.0.1 -> 3.0.2, unstable: 3.9 -> 3.11 --- pkgs/misc/emulators/wine/sources.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix index c55fbbb0b8a..bba06d6f680 100644 --- a/pkgs/misc/emulators/wine/sources.nix +++ b/pkgs/misc/emulators/wine/sources.nix @@ -13,9 +13,9 @@ let fetchurl = args@{url, sha256, ...}: in rec { stable = fetchurl rec { - version = "3.0.1"; + version = "3.0.2"; url = "https://dl.winehq.org/wine/source/3.0/wine-${version}.tar.xz"; - sha256 = "1wr63n70pli83p3rmclr2j4lxzs4ll1cwlpdlaajfrf6v9yhvl5s"; + sha256 = "1zv3nk31s758ghp4795ym3w8l5868c2dllmjx9245qh9ahvp3mya"; ## see http://wiki.winehq.org/Gecko gecko32 = fetchurl rec { @@ -39,16 +39,16 @@ in rec { unstable = fetchurl rec { # NOTE: Don't forget to change the SHA256 for staging as well. - version = "3.9"; + version = "3.11"; url = "https://dl.winehq.org/wine/source/3.x/wine-${version}.tar.xz"; - sha256 = "0ddphvlp9lsjyqc6zckinc36bggpkg925v0x2vqr8nkdjs0w5bfc"; + sha256 = "0zlhkz6aybkr9jg8za9x56fp92q10df0abadn9bsa8ryparr5d15"; inherit (stable) mono gecko32 gecko64; }; staging = fetchFromGitHub rec { # https://github.com/wine-compholio/wine-staging/releases inherit (unstable) version; - sha256 = "022hzh9i0pc063vcdy7ilb1lxlxpzgr4llcb52y2j3gz1psrcyqs"; + sha256 = "0si6mvva4li6cix2p43dgpdg297642l0vipaam0ng4rmgpr92jrf"; owner = "wine-staging"; repo = "wine-staging"; rev = "v${version}"; From 7b01e2b7d6821bb48b9bc8c622af74d735e44a63 Mon Sep 17 00:00:00 2001 From: Sebastien Maret Date: Tue, 26 Jun 2018 17:15:51 +0200 Subject: [PATCH 156/312] gildas: use internal LAPACK instead of OpenBLAS Gildas' uv_fit task segfaults when it uses OpenBLAS. Use internal LAPACK version instead. --- .../science/astronomy/gildas/default.nix | 8 +- .../science/astronomy/gildas/openblas.patch | 96 ------------------- 2 files changed, 4 insertions(+), 100 deletions(-) delete mode 100644 pkgs/applications/science/astronomy/gildas/openblas.patch diff --git a/pkgs/applications/science/astronomy/gildas/default.nix b/pkgs/applications/science/astronomy/gildas/default.nix index da575b5cdd4..bd4587bf227 100644 --- a/pkgs/applications/science/astronomy/gildas/default.nix +++ b/pkgs/applications/science/astronomy/gildas/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, gtk2-x11 , pkgconfig , python27 , gfortran , lesstif -, cfitsio , getopt , perl , groff , which , openblas +, cfitsio , getopt , perl , groff , which }: let @@ -20,14 +20,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ]; - buildInputs = [ gtk2-x11 lesstif cfitsio python27Env openblas ]; + buildInputs = [ gtk2-x11 lesstif cfitsio python27Env ]; - patches = [ ./wrapper.patch ./return-error-code.patch ./openblas.patch ./clang.patch ]; + patches = [ ./wrapper.patch ./return-error-code.patch ./clang.patch ]; configurePhase='' substituteInPlace admin/wrapper.sh --replace '%%OUT%%' $out substituteInPlace admin/wrapper.sh --replace '%%PYTHONHOME%%' ${python27Env} - source admin/gildas-env.sh -c gfortran -o openmp -s ${openblas}/lib + source admin/gildas-env.sh -c gfortran -o openmp echo "gag_doc: $out/share/doc/" >> kernel/etc/gag.dico.lcl ''; diff --git a/pkgs/applications/science/astronomy/gildas/openblas.patch b/pkgs/applications/science/astronomy/gildas/openblas.patch deleted file mode 100644 index 4236b50796c..00000000000 --- a/pkgs/applications/science/astronomy/gildas/openblas.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -ruN gildas-src-may18a.orig/admin/gildas-env.sh gildas-src-may18a/admin/gildas-env.sh ---- gildas-src-may18a.orig/admin/gildas-env.sh 2018-04-24 18:20:08.000000000 +0200 -+++ gildas-src-may18a/admin/gildas-env.sh 2018-05-04 16:39:18.982253471 +0200 -@@ -430,7 +430,7 @@ - # dot (e.g. so.3 is not counted), because e.g. /usr/lib64/liblapack.so.3 - # is useless and can not be found by the linker on command lines like - # "-L/usr/lib -llapack" -- occurences=`\ls ${2}/${1}* 2> /dev/null | \grep -v "${2}/${1}.*\." | \wc -l` -+ occurences=`\ls -l ${2}/${1}{so,a,h} 2> /dev/null | \wc -l` - if [ ${occurences} -ge 1 ]; then - \return 0 - else -@@ -458,11 +458,9 @@ - SDM_MISSING= - # - for DIR in $GAGENV_SEARCH_PATH; do -- if file_present "liblapack." "${DIR}"; then -+ if file_present "libopenblas." "${DIR}"; then - LAPACK_PRESENT=yes - LAPACK_LIB_DIR=$DIR -- fi -- if file_present "libblas." "${DIR}"; then - BLAS_PRESENT=yes - BLAS_LIB_DIR=$DIR - fi -@@ -493,7 +491,7 @@ - X11_LIB=no - # - for DIR in $INC_PATH; do -- if file_present "X.h" "${DIR}/X11"; then -+ if file_present "X." "${DIR}/X11"; then - X11_INC=yes - X11_INC_DIR=$DIR - fi -diff -ruN gildas-src-may18a.orig/admin/Makefile.build gildas-src-may18a/admin/Makefile.build ---- gildas-src-may18a.orig/admin/Makefile.build 2018-03-19 17:48:07.000000000 +0100 -+++ gildas-src-may18a/admin/Makefile.build 2018-05-04 16:39:18.982253471 +0200 -@@ -398,9 +398,7 @@ - # only the shared libraries are installed (i.e. the corresponding archive - # libraries are missing). - ---lblas: -- ---llapack: -+-lopenblas: - - -lslatec: - -diff -ruN gildas-src-may18a.orig/admin/Makefile.def gildas-src-may18a/admin/Makefile.def ---- gildas-src-may18a.orig/admin/Makefile.def 2018-03-21 17:53:34.000000000 +0100 -+++ gildas-src-may18a/admin/Makefile.def 2018-05-04 16:41:59.233518207 +0200 -@@ -206,7 +206,7 @@ - ########################################################################### - # Other defaults - --LINEAR = lapack -+LINEAR = openblas - GLOBAL_DIRTY = $(builddir) *~ TAGS ChangeLog* Makefile.bak - - ########################################################################### -@@ -515,7 +515,7 @@ - ########################################################################### - # Kernel libraries - --LEGACY_LIBS = -lslatec -llapack -lblas -+LEGACY_LIBS = -lslatec -lopenblas - _GAG_LIBS = -lggui -lgcore -lgio -lgfits -lgwcs -lgmath -lgsys -lginc - ifndef GAG_WIN32 - GAG_LIBS = $(_GAG_LIBS) -diff -ruN gildas-src-may18a.orig/legacy/slatec/Makefile gildas-src-may18a/legacy/slatec/Makefile ---- gildas-src-may18a.orig/legacy/slatec/Makefile 2014-12-09 11:31:56.000000000 +0100 -+++ gildas-src-may18a/legacy/slatec/Makefile 2018-05-04 16:39:18.982253471 +0200 -@@ -24,7 +24,7 @@ - U-all.o V-all.o W-all.o X-all.o Y-all.o Z-all.o d1mach.o i1mach.o pimach.o \ - r1mach.o dummy.o P-all.o P-value.o Dp-1vlu.o - --LIB_DEPENDS = -llapack -lblas -+LIB_DEPENDS = -lopenblas - - ifeq ($(GAG_COMPILER_FKIND),ifc) - OPTION_FFLAGS = -diff -ruN gildas-src-may18a.orig/packages/clic/lib/Makefile gildas-src-may18a/packages/clic/lib/Makefile ---- gildas-src-may18a.orig/packages/clic/lib/Makefile 2018-01-16 11:53:15.000000000 +0100 -+++ gildas-src-may18a/packages/clic/lib/Makefile 2018-05-04 16:39:18.982253471 +0200 -@@ -56,9 +56,9 @@ - sg_line_table.o table_passband.o clic_index.o clic_blank.o - - # Mathematical library dependency --ifeq ($(LINEAR),lapack) -+ifeq ($(LINEAR),openblas) - LINEAR_LIB_OBJECTS = singular.o mth_lapack.o -- LINEAR_LIB_DEPENDS = -llapack -lblas -+ LINEAR_LIB_DEPENDS = -lopenblas - else - ifeq ($(LINEAR),nag) - LINEAR_LIB_OBJECTS = mth_nag.o From 8d6502f8ca9bd59931de4d0f7d74c805b34f7d14 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 26 Jun 2018 17:34:34 +0200 Subject: [PATCH 157/312] phonon-backend-vlc: use qt5 by default `minitube` is currently broken transitively due to the broken `phonon-backend-qt4`: https://hydra.nixos.org/build/76523277 Although QT4 is fairly old, this package is still built with `qt4` ATM, however QT5 is available as well. After this change, QT5 will be built by default and in case anybody requires legacy QT4 it has to be enabled explicitly like this: ``` with import { }; phonon-backend-vlc.override { withQt4 = true; } ``` Now the QT5-only build can be used (which fixes `minitube`) and there are no confusions anymore with the build dependencies. Previously `phonon-backend-vlc` and `libsForQt5.phonon-backend-vlc` used `qt4` by default which was likely responsible for broken `minitube`. --- .../development/libraries/phonon/backends/vlc.nix | 15 ++++++++------- pkgs/top-level/all-packages.nix | 5 ++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/phonon/backends/vlc.nix b/pkgs/development/libraries/phonon/backends/vlc.nix index 643e36ba6cd..0487886a896 100644 --- a/pkgs/development/libraries/phonon/backends/vlc.nix +++ b/pkgs/development/libraries/phonon/backends/vlc.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchurl, cmake, phonon, pkgconfig, vlc , extra-cmake-modules, qtbase ? null, qtx11extras ? null, qt4 ? null -, withQt5 ? false +, withQt4 ? false , debug ? false }: @@ -11,11 +11,12 @@ let pname = "phonon-backend-vlc"; in -assert withQt5 -> qtbase != null; -assert withQt5 -> qtx11extras != null; +assert withQt4 -> qt4 != null; +assert !withQt4 -> qtbase != null; +assert !withQt4 -> qtx11extras != null; stdenv.mkDerivation rec { - name = "${pname}-${if withQt5 then "qt5" else "qt4"}-${v}"; + name = "${pname}-${if withQt4 then "qt4" else "qt5"}-${v}"; meta = with stdenv.lib; { homepage = https://phonon.kde.org/; @@ -30,11 +31,11 @@ stdenv.mkDerivation rec { buildInputs = [ phonon vlc ] - ++ (if withQt5 then [ qtbase qtx11extras ] else [ qt4 ]); + ++ (if withQt4 then [ qt4 ] else [ qtbase qtx11extras ]); - nativeBuildInputs = [ cmake pkgconfig ] ++ optional withQt5 extra-cmake-modules; + nativeBuildInputs = [ cmake pkgconfig ] ++ optional (!withQt4) extra-cmake-modules; cmakeFlags = [ "-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}" ] - ++ optional withQt5 "-DPHONON_BUILD_PHONON4QT5=ON"; + ++ optional (!withQt4) "-DPHONON_BUILD_PHONON4QT5=ON"; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 50736caab83..d4a437ebabe 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11192,7 +11192,10 @@ with pkgs; phonon-backend-gstreamer = callPackage ../development/libraries/phonon/backends/gstreamer.nix {}; - phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix {}; + # TODO(@Ma27) get rid of that as soon as QT4 can be dropped + phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix { + withQt4 = true; + }; inherit (callPackage ../development/libraries/physfs { }) physfs_2 From d8560227926cea4d41e4360fd54b819025810eb9 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 26 Jun 2018 17:35:05 +0200 Subject: [PATCH 158/312] tomahawk: mark as broken During `8d6502f8ca9` `phonon-backend-vlc` uses QT5 by default. Rather than fixing this it has been marked as broken as it's currently unmaintained (see c76ad476b0245c474c057b451ba6fec18e7f81f1) and broken since March (https://hydra.nixos.org/build/71873808). For now I've marked it as broken as the last *stable* release is from 2015 (see https://github.com/tomahawk-player/tomahawk/releases/tag/0.8.4). --- pkgs/applications/audio/tomahawk/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/audio/tomahawk/default.nix b/pkgs/applications/audio/tomahawk/default.nix index 4140c5da5a4..78bd4338353 100644 --- a/pkgs/applications/audio/tomahawk/default.nix +++ b/pkgs/applications/audio/tomahawk/default.nix @@ -51,5 +51,6 @@ stdenv.mkDerivation rec { homepage = http://tomahawk-player.org/; license = licenses.gpl3Plus; platforms = platforms.all; + broken = true; # 2018-06-25 }; } From d5de4a2529ca90fb779f828d3d439b0701f1730b Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 26 Jun 2018 10:42:06 -0500 Subject: [PATCH 159/312] glibc: remove unused 2.26 patch series --- .../libraries/glibc/2.26-115to131.diff.gz | Bin 20022 -> 0 bytes .../libraries/glibc/2.26-75.patch.gz | Bin 289084 -> 0 bytes .../libraries/glibc/2.26-75to115.diff.gz | Bin 32865 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 pkgs/development/libraries/glibc/2.26-115to131.diff.gz delete mode 100644 pkgs/development/libraries/glibc/2.26-75.patch.gz delete mode 100644 pkgs/development/libraries/glibc/2.26-75to115.diff.gz diff --git a/pkgs/development/libraries/glibc/2.26-115to131.diff.gz b/pkgs/development/libraries/glibc/2.26-115to131.diff.gz deleted file mode 100644 index 3d866c567a790b088e2446bf2d4048710a19a9eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20022 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 E0A|DcTL1t6 diff --git a/pkgs/development/libraries/glibc/2.26-75.patch.gz b/pkgs/development/libraries/glibc/2.26-75.patch.gz deleted file mode 100644 index e2a8867e4fff6396fd1c1a368929c9f0e93e6d1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289084 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

576z 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

`{56;@>urAG*_%7O8!P$D5A3VnT32zl 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