From 65336dc3cf71686e30390270c1c3f07f9c0cc830 Mon Sep 17 00:00:00 2001 From: Millian Poquet Date: Sat, 22 Feb 2020 12:37:36 +0100 Subject: [PATCH 01/29] meson: 0.52.1 -> 0.53.2 https://mesonbuild.com/Release-notes-for-0-53-0.html https://github.com/mesonbuild/meson/releases/tag/0.53.0 https://github.com/mesonbuild/meson/releases/tag/0.53.1 https://github.com/mesonbuild/meson/releases/tag/0.53.2 --- .../tools/build-managers/meson/default.nix | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix index e4d4994a7814..f9f4c344e322 100644 --- a/pkgs/development/tools/build-managers/meson/default.nix +++ b/pkgs/development/tools/build-managers/meson/default.nix @@ -1,6 +1,5 @@ { lib , python3Packages -, fetchpatch , stdenv , writeTextDir , substituteAll @@ -20,11 +19,11 @@ let in python3Packages.buildPythonApplication rec { pname = "meson"; - version = "0.52.1"; + version = "0.53.2"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "02fnrk1fjf3yiix0ak0m9vgbpl4h97fafii5pmw7phmvnlv9fyan"; + sha256 = "Po+DDzMYQ5fC6wtlHsUCrbY97LKJeL3ISzVY1xKEwh8="; }; postFixup = '' @@ -62,14 +61,6 @@ python3Packages.buildPythonApplication rec { src = ./fix-rpath.patch; inherit (builtins) storeDir; }) - - # Fix detecting incorrect compiler in the store path hash. - # https://github.com/NixOS/nixpkgs/issues/73417#issuecomment-554077964 - # https://github.com/mesonbuild/meson/pull/6185 - (fetchpatch { - url = "https://github.com/mesonbuild/meson/commit/972ede1d14fdf17fe5bb8fb99be220f9395c2392.patch"; - sha256 = "19bfsylhpy0b2xv3ks8ac9x3q6vvvyj1wjcy971v9d5f1455xhbb"; - }) ]; setupHook = ./setup-hook.sh; From f150d16ab4bb3d20a72e905562c7b890ab1c425a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 28 Feb 2020 17:47:30 +0000 Subject: [PATCH 02/29] geoclue2: 2.5.5 -> 2.5.6 --- pkgs/development/libraries/geoclue/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix index 8d94dacbb61b..da76c6dfedcf 100644 --- a/pkgs/development/libraries/geoclue/default.nix +++ b/pkgs/development/libraries/geoclue/default.nix @@ -7,14 +7,14 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "geoclue"; - version = "2.5.5"; + version = "2.5.6"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = pname; repo = pname; rev = version; - sha256 = "0a8wmf5v3x4035ixz9jypj7c6qknvs6gjv2zawa3msq1j75rf2r5"; + sha256 = "13fk6n4j74lvcsrg3kwbw1mkxgcr3iy9dnysmy0pclfsym8z5m5m"; }; patches = [ @@ -58,7 +58,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Geolocation framework and some data providers"; - homepage = https://gitlab.freedesktop.org/geoclue/geoclue/wikis/home; + homepage = "https://gitlab.freedesktop.org/geoclue/geoclue/wikis/home"; maintainers = with maintainers; [ raskin ]; platforms = with platforms; linux ++ darwin; license = licenses.lgpl2; From 330fab179866806ca2460917c9012d35217950f5 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 28 Feb 2020 23:49:19 +0000 Subject: [PATCH 03/29] gnome3.libsoup: 2.68.3 -> 2.68.4 --- pkgs/development/libraries/libsoup/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix index 2d2f2da6a399..6925bd2de4b8 100644 --- a/pkgs/development/libraries/libsoup/default.nix +++ b/pkgs/development/libraries/libsoup/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "libsoup"; - version = "2.68.3"; + version = "2.68.4"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"; + sha256 = "151j5dc84gbl6a917pxvd0b372lw5za48n63lyv6llfc48lv2l1d"; }; postPatch = '' @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { meta = { description = "HTTP client/server library for GNOME"; - homepage = https://wiki.gnome.org/Projects/libsoup; + homepage = "https://wiki.gnome.org/Projects/libsoup"; license = stdenv.lib.licenses.gpl2; inherit (glib.meta) maintainers platforms; }; From ad30a304883f5a689f499e47e7ec388265f024f5 Mon Sep 17 00:00:00 2001 From: Benjamin Hipple Date: Sun, 16 Feb 2020 02:33:02 -0500 Subject: [PATCH 04/29] rustPlatform.fetchCargo: handle custom Cargo.lock patchfiles with validation Previously, we would asssert that the lockfiles are consistent during the unpackPhase, but if the pkg has a patch for the lockfile itself then we must wait until the patchPhase is complete to check. This also removes an implicity dependency on the src attribute coming from `fetchzip` / `fetchFromGitHub`, which happens to name the source directory "source". Now we glob for it, so different fetchers will work consistently. --- doc/languages-frameworks/rust.section.md | 10 +- .../science/misc/rink/default.nix | 7 +- .../virtualization/crosvm/default.nix | 5 +- .../virtualization/railcar/default.nix | 10 +- pkgs/build-support/rust/default.nix | 30 +- .../tools/rust/cargo-make/cargo.patch | 1053 +++++++++++++++++ 6 files changed, 1092 insertions(+), 23 deletions(-) create mode 100644 pkgs/development/tools/rust/cargo-make/cargo.patch diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index f23926eee3b6..97dc9e2ff531 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -53,10 +53,12 @@ all crate sources of this package. Currently it is obtained by inserting a fake checksum into the expression and building the package once. The correct checksum can be then take from the failed build. -When the `Cargo.lock`, provided by upstream, is not in sync with the -`Cargo.toml`, it is possible to use `cargoPatches` to update it. All patches -added in `cargoPatches` will also be prepended to the patches in `patches` at -build-time. +Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html) +best practices guide, Rust applications should always commit the `Cargo.lock` +file in git to ensure a reproducible build. However, a few packages do not, and +Nix depends on this file, so if it missing you can use `cargoPatches` to apply +it in the `patchPhase`. Consider sending a PR upstream with a note to the +maintainer describing why it's important to include in the application. Unless `legacyCargoFetcher` is set to `true`, the fetcher will also verify that the `Cargo.lock` file is in sync with the `src` attribute, and will compress the diff --git a/pkgs/applications/science/misc/rink/default.nix b/pkgs/applications/science/misc/rink/default.nix index 4c759308a5c6..1bb74ec17a34 100644 --- a/pkgs/applications/science/misc/rink/default.nix +++ b/pkgs/applications/science/misc/rink/default.nix @@ -10,12 +10,11 @@ rustPlatform.buildRustPackage rec { rev = "v${version}"; sha256 = "0vl996y58a9b62d8sqrpfn2h8qkya7qbg5zqsmy7nxhph1vhbspj"; }; + + # Upstreamed in https://github.com/tiffany352/rink-rs/pull/53 cargoPatches = [ ./cargo-lock.patch ]; - # Delete this on next update; see #79975 for details - legacyCargoFetcher = true; - - cargoSha256 = "0q2g1hkqyzq9lsas4fhsbpk3jn5hikchh6i1jf9c08ca2xm136c2"; + cargoSha256 = "0shlh0m9k0iqxpv9zmiw7a6v197swrvpz9x6qzhximzkdwni9gz9"; buildInputs = [ pkgconfig ]; propagatedBuildInputs = [ openssl gmp ncurses ]; diff --git a/pkgs/applications/virtualization/crosvm/default.nix b/pkgs/applications/virtualization/crosvm/default.nix index 091ea0fa1c54..28614efa7f3b 100644 --- a/pkgs/applications/virtualization/crosvm/default.nix +++ b/pkgs/applications/virtualization/crosvm/default.nix @@ -53,10 +53,7 @@ in ./default-seccomp-policy-dir.diff ]; - # Delete this on next update; see #79975 for details - legacyCargoFetcher = true; - - cargoSha256 = "1d7y07wkliy5qnlyx5zj6ni39avhs3s48sqgvwxm5g5zrahg2a85"; + cargoSha256 = "1s9nfgfqk140hg08i0xzylnrgrx84dqss0vnvhxnydwy9q03nk7r"; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/virtualization/railcar/default.nix b/pkgs/applications/virtualization/railcar/default.nix index 8dd3c270b23d..7b56da0f7bc3 100644 --- a/pkgs/applications/virtualization/railcar/default.nix +++ b/pkgs/applications/virtualization/railcar/default.nix @@ -11,15 +11,11 @@ rustPlatform.buildRustPackage rec { sha256 = "09zn160qxd7760ii6rs5nhr00qmaz49x1plclscznxh9hinyjyh9"; }; - # Delete this on next update; see #79975 for details - legacyCargoFetcher = true; - - cargoSha256 = "1k4y37x783fsd8li17k56vlx5ziwmrz167a0w5mcb9sgyd2kc19a"; - - buildInputs = [ libseccomp ]; - # Submitted upstream https://github.com/oracle/railcar/pull/44 cargoPatches = [ ./cargo-lock.patch ]; + cargoSha256 = "10qxkxpdprl2rcgy52s3q5gyg3i75qmx68rpl7cx1bgjzppfn9c3"; + + buildInputs = [ libseccomp ]; meta = with lib; { description = "Rust implementation of the Open Containers Initiative oci-runtime"; diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 3fdfc0636f94..387c7904db09 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -114,15 +114,37 @@ stdenv.mkDerivation (filteredArgs // { EOF export RUST_LOG=${logLevel} - '' + stdenv.lib.optionalString validateCargoDeps '' - if ! diff source/Cargo.lock $cargoDepsCopy/Cargo.lock ; then + '' + (args.postUnpack or ""); + + # After unpacking and applying patches, check that the Cargo.lock matches our + # src package. Note that we do this after the patchPhase, because the + # patchPhase may create the Cargo.lock if upstream has not shipped one. + postPatch = (args.postPatch or "") + stdenv.lib.optionalString validateCargoDeps '' + cargoDepsLockfile=$NIX_BUILD_TOP/$cargoDepsCopy/Cargo.lock + srcLockfile=$NIX_BUILD_TOP/$sourceRoot/Cargo.lock + + echo "Validating consistency between $srcLockfile and $cargoDepsLockfile" + if ! diff $srcLockfile $cargoDepsLockfile; then + + # If the diff failed, first double-check that the file exists, so we can + # give a friendlier error msg. + if ! [ -e $srcLockfile ]; then + echo "ERROR: Missing Cargo.lock from src. Expected to find it at: $srcLockfile" + exit 1 + fi + + if ! [ -e $cargoDepsLockfile ]; then + echo "ERROR: Missing lockfile from cargo vendor. Expected to find it at: $cargoDepsLockfile" + exit 1 + fi + echo echo "ERROR: cargoSha256 is out of date" echo echo "Cargo.lock is not the same in $cargoDepsCopy" echo echo "To fix the issue:" - echo '1. Use "1111111111111111111111111111111111111111111111111111" as the cargoSha256 value' + echo '1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value' echo "2. Build the derivation and wait it to fail with a hash mismatch" echo "3. Copy the 'got: sha256:' value back into the cargoSha256 field" echo @@ -131,7 +153,7 @@ stdenv.mkDerivation (filteredArgs // { fi '' + '' unset cargoDepsCopy - '' + (args.postUnpack or ""); + ''; configurePhase = args.configurePhase or '' runHook preConfigure diff --git a/pkgs/development/tools/rust/cargo-make/cargo.patch b/pkgs/development/tools/rust/cargo-make/cargo.patch new file mode 100644 index 000000000000..b75a5a298878 --- /dev/null +++ b/pkgs/development/tools/rust/cargo-make/cargo.patch @@ -0,0 +1,1053 @@ +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..fe75e29 +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,1047 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "adler32" ++version = "1.0.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "aho-corasick" ++version = "0.7.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "memchr 2.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ansi_term" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "arrayref" ++version = "0.3.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "arrayvec" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "attohttpc" ++version = "0.11.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl 0.10.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "atty" ++version = "0.2.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "autocfg" ++version = "0.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "autocfg" ++version = "1.0.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "base64" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "bitflags" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "blake2b_simd" ++version = "0.5.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "bytes" ++version = "0.5.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "c2-chacha" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cargo-make" ++version = "0.27.0" ++dependencies = [ ++ "ci_info 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "duckscript 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "duckscriptsdk 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "envmnt 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fern 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "git_info 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "run_script 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rust_info 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ++ "shell2batch 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "cc" ++version = "1.0.50" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "cfg-if" ++version = "0.1.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "chrono" ++version = "0.4.10" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "ci_info" ++version = "0.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "envmnt 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "clap" ++version = "2.33.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "colored" ++version = "1.9.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "constant_time_eq" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "core-foundation" ++version = "0.6.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "core-foundation-sys" ++version = "0.6.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "crc32fast" ++version = "1.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "crossbeam-utils" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "dirs" ++version = "2.0.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "dirs-sys" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "duckscript" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "duckscriptsdk" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "attohttpc 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "duckscript 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "java-properties 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "meval 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "whoami 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "encoding" ++version = "0.2.33" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "encoding-index-japanese" ++version = "1.20141219.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "encoding-index-korean" ++version = "1.20141219.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "encoding-index-simpchinese" ++version = "1.20141219.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "encoding-index-singlebyte" ++version = "1.20141219.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "encoding-index-tradchinese" ++version = "1.20141219.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "encoding_index_tests" ++version = "0.1.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "envmnt" ++version = "0.8.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fern" ++version = "0.5.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "flate2" ++version = "1.0.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "fnv" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "foreign-types" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "foreign-types-shared" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "fs_extra" ++version = "1.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "getrandom" ++version = "0.1.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "git_info" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "glob" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "hermit-abi" ++version = "0.1.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "home" ++version = "0.5.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "http" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "idna" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "indexmap" ++version = "1.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "itoa" ++version = "0.4.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "java-properties" ++version = "1.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "lazy_static" ++version = "1.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "libc" ++version = "0.2.66" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "log" ++version = "0.4.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "matches" ++version = "0.1.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "memchr" ++version = "2.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "meval" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "nom 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "miniz_oxide" ++version = "0.3.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "native-tls" ++version = "0.2.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl 0.10.28 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)", ++ "schannel 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ++ "security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "nom" ++version = "1.2.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "num-integer" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "num-traits" ++version = "0.2.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "openssl" ++version = "0.10.28" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "openssl-probe" ++version = "0.1.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "openssl-sys" ++version = "0.9.54" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ++ "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "percent-encoding" ++version = "2.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "pkg-config" ++version = "0.3.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "ppv-lite86" ++version = "0.2.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "proc-macro2" ++version = "1.0.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "quote" ++version = "1.0.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand" ++version = "0.7.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_chacha" ++version = "0.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_core" ++version = "0.5.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rand_hc" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "redox_syscall" ++version = "0.1.56" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "redox_users" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex" ++version = "1.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "aho-corasick 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr 2.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "regex-syntax" ++version = "0.6.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "remove_dir_all" ++version = "0.5.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "run_script" ++version = "0.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rust-argon2" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "rust_info" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "same-file" ++version = "1.0.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "schannel" ++version = "0.1.17" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "security-framework" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "security-framework-sys" ++version = "0.3.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "semver-parser" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "serde" ++version = "1.0.104" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "serde_derive" ++version = "1.0.104" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "shell2batch" ++version = "0.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "smallvec" ++version = "1.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "strsim" ++version = "0.8.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "syn" ++version = "1.0.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "tempfile" ++version = "3.1.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "textwrap" ++version = "0.11.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "thread_local" ++version = "1.0.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "time" ++version = "0.1.42" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "toml" ++version = "0.5.6" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-bidi" ++version = "0.3.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-normalization" ++version = "0.1.12" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "unicode-width" ++version = "0.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "unicode-xid" ++version = "0.2.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "url" ++version = "2.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "users" ++version = "0.9.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "vcpkg" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "vec_map" ++version = "0.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "walkdir" ++version = "2.3.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "wasi" ++version = "0.9.0+wasi-snapshot-preview1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "whoami" ++version = "0.7.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi" ++version = "0.3.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-i686-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[[package]] ++name = "winapi-util" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++dependencies = [ ++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ++] ++ ++[[package]] ++name = "winapi-x86_64-pc-windows-gnu" ++version = "0.4.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++ ++[metadata] ++"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" ++"checksum aho-corasick 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "743ad5a418686aad3b87fd14c43badd828cf26e214a00f92a384291cf22e1811" ++"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" ++"checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" ++"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" ++"checksum attohttpc 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ac9fd7bdf8ff0a1b9d73b41f95cb189d77528110295c80e3c858bf343db24fa3" ++"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" ++"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" ++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" ++"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" ++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" ++"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" ++"checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" ++"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb" ++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" ++"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" ++"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01" ++"checksum ci_info 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a9c4ad4399f16ccee06f6a62acad539f42de4a80fa21cbe994df1bbb51bee3b9" ++"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" ++"checksum colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8815e2ab78f3a59928fc32e141fbeece88320a240e43f47b2fd64ea3a88a5b3d" ++"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" ++"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" ++"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" ++"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" ++"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" ++"checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" ++"checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" ++"checksum duckscript 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "747bb4e541a0830b4581bffc001045d3dc259683546fbf35a35f47af831634b5" ++"checksum duckscriptsdk 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "799c03843d05bb809ea1ee653c4f9ba9a5ee766c07490cc684cf6b259b68ba94" ++"checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" ++"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" ++"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" ++"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" ++"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" ++"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" ++"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" ++"checksum envmnt 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db101f16134ca37f91a6e30c32d9df5bbfcbe8d926f0c1f03602baf2fc2f7352" ++"checksum fern 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e69ab0d5aca163e388c3a49d284fed6c3d0810700e77c5ae2756a50ec1a4daaa" ++"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f" ++"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" ++"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" ++"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" ++"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" ++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" ++"checksum git_info 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "add3a9c3c08c8905a2165ff06891dd1c3bb32d81b2a32d79528abc9793dfb06f" ++"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" ++"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" ++"checksum home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654" ++"checksum http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b" ++"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" ++"checksum indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" ++"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" ++"checksum java-properties 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "caf4418ade5bde22a283a7f2fb537ea397ec102718f259f2630714e7a5b389fa" ++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" ++"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" ++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" ++"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" ++"checksum memchr 2.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53445de381a1f436797497c61d851644d0e8e88e6140f22872ad33a704933978" ++"checksum meval 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79496a5651c8d57cd033c5add8ca7ee4e3d5f7587a4777484640d9cb60392d9" ++"checksum miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" ++"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" ++"checksum nom 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b8c256fd9471521bcb84c3cdba98921497f1a331cbc15b8030fc63b82050ce" ++"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" ++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" ++"checksum openssl 0.10.28 (registry+https://github.com/rust-lang/crates.io-index)" = "973293749822d7dd6370d6da1e523b0d1db19f06c459134c658b2a4261378b52" ++"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" ++"checksum openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)" = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986" ++"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" ++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" ++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" ++"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548" ++"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" ++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" ++"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" ++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" ++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" ++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" ++"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" ++"checksum regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8" ++"checksum regex-syntax 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b28dfe3fe9badec5dbf0a79a9cccad2cfc2ab5484bdb3e44cbd1ae8b3ba2be06" ++"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" ++"checksum run_script 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "80a217951e2afacc57d3129bd52aeddc550559f5a82f57529a31fc5675bd6621" ++"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" ++"checksum rust_info 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "be941f2b996df7ffaf093366039c9dc182b3ca2e00f3e81df44e08c3611e773d" ++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" ++"checksum schannel 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "507a9e6e8ffe0a4e0ebb9a10293e62fdf7657c06f1b8bb07a8fcf697d2abf295" ++"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df" ++"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895" ++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" ++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" ++"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" ++"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64" ++"checksum shell2batch 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "185a52ee351c1001753c9e3b2eb48c525ff7f51803a4f2cef4365b5c3b743f65" ++"checksum smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc" ++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" ++"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5" ++"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" ++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" ++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" ++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" ++"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" ++"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" ++"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" ++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" ++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" ++"checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" ++"checksum users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf" ++"checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" ++"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" ++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" ++"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" ++"checksum whoami 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "622a663c45e12b7ae198748afb532d0c53d2daea11037312221e26198ca4e8e9" ++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" ++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" ++"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" ++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" From 95e3292eed02942bbb1196dd43f5b191b8a13481 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sat, 29 Feb 2020 20:09:29 +0100 Subject: [PATCH 05/29] wayland-protocols: 1.18 -> 1.20 Release announcements and changelogs: - 1.19: https://lists.freedesktop.org/archives/wayland-devel/2020-February/041267.html - 1.20: https://lists.freedesktop.org/archives/wayland-devel/2020-February/041269.html --- pkgs/development/libraries/wayland/protocols.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/wayland/protocols.nix b/pkgs/development/libraries/wayland/protocols.nix index 8c2823d74b0a..41495b1c2e50 100644 --- a/pkgs/development/libraries/wayland/protocols.nix +++ b/pkgs/development/libraries/wayland/protocols.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "wayland-protocols"; - version = "1.18"; + version = "1.20"; src = fetchurl { url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz"; - sha256 = "1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx"; + sha256 = "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp"; }; nativeBuildInputs = [ pkgconfig ]; From deec2268c9268f936aa9094c620cc145eb8ef18c Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 1 Mar 2020 21:50:41 +0000 Subject: [PATCH 06/29] at-spi2-atk: 2.34.1 -> 2.34.2 --- pkgs/development/libraries/at-spi2-atk/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-atk/default.nix b/pkgs/development/libraries/at-spi2-atk/default.nix index f63a341e26ea..f16b38e3fd84 100644 --- a/pkgs/development/libraries/at-spi2-atk/default.nix +++ b/pkgs/development/libraries/at-spi2-atk/default.nix @@ -16,11 +16,11 @@ stdenv.mkDerivation rec { pname = "at-spi2-atk"; - version = "2.34.1"; + version = "2.34.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "05ncp7s5nddjinffs26mcvpbd63vk1m3cv5y530p3plgfhqgjvbp"; + sha256 = "1w7l4xg00qx3dwhn0zaa64daiv5f073hdvjdxh0mrw7fw37264wh"; }; nativeBuildInputs = [ meson ninja pkgconfig ]; @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "D-Bus bridge for Assistive Technology Service Provider Interface (AT-SPI) and Accessibility Toolkit (ATK)"; - homepage = https://gitlab.gnome.org/GNOME/at-spi2-atk; + homepage = "https://gitlab.gnome.org/GNOME/at-spi2-atk"; license = licenses.lgpl21Plus; maintainers = gnome3.maintainers; platforms = platforms.unix; From 6740593bdd1738aa9771990f88655becc4dc343e Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Mon, 24 Feb 2020 10:32:47 -0500 Subject: [PATCH 07/29] glibc: provide fallback for kernels with missing prlimit64 The current version of glibc implements support for kernels down to 3.2.0 (and we make sure to enable such support with apporopriate --enable-kernel setting). The current RHEL6 operating system is based on a maintained kernel based on 2.6.32 with lots of backports. We provide basic support for this specific kernel by patching glibc to provide an exception for this specific version of kernel. This allows for nixpkgs software distribution to work on RHEL6 and it does so quite well with almost no problems. There are, however, a few syscalls that are missing in the 2.6.32 kernel, one of which is prlimit64. This commit provides a fallback that uses an older {get,set}rlimit syscalls in cases when prlimit64 is not available. This should streamline the experience for nixpkgs users wanting to run it on RHEL6, namely, this fixes one of the tests in findutils. See also discussion in guix: https://lists.gnu.org/archive/html/guix-devel/2018-03/msg00356.html --- pkgs/development/libraries/glibc/common.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index d1ff681097dd..50ee5097d1b8 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -89,6 +89,18 @@ stdenv.mkDerivation ({ less linux-*?/arch/x86/kernel/syscall_table_32.S */ ./allow-kernel-2.6.32.patch + + /* Provide a fallback for missing prlimit64 syscall on RHEL 6 -like + kernels. + + This patch is maintained by @veprbl. If it gives you trouble, feel + free to ping me, I'd be happy to help. + */ + (fetchurl { + url = "https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/patches/glibc-reinstate-prlimit64-fallback.patch?id=eab07e78b691ae7866267fc04d31c7c3ad6b0eeb"; + sha256 = "091bk3kyrx1gc380gryrxjzgcmh1ajcj8s2rjhp2d2yzd5mpd5ps"; + }) + /* Provide utf-8 locales by default, so we can use it in stdenv without depending on our large locale-archive. */ (fetchurl { url = "https://salsa.debian.org/glibc-team/glibc/raw/49767c9f7de4828220b691b29de0baf60d8a54ec/debian/patches/localedata/locale-C.diff"; From 6181bfc353e32e4c8c3db1a1998a85f78a5ae8f1 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Fri, 28 Feb 2020 11:36:13 -0800 Subject: [PATCH 08/29] pythonPackages.setuptools: 44.0.0 -> 45.2.0 --- pkgs/development/python-modules/setuptools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix index 194b90cb42ad..93c6c0ca38e5 100644 --- a/pkgs/development/python-modules/setuptools/default.nix +++ b/pkgs/development/python-modules/setuptools/default.nix @@ -13,7 +13,7 @@ let pname = "setuptools"; - version = "44.0.0"; + version = "45.2.0"; # Create an sdist of setuptools sdist = stdenv.mkDerivation rec { @@ -23,7 +23,7 @@ let owner = "pypa"; repo = pname; rev = "v${version}"; - sha256 = "0z3q0qinyp1rmnxkw3y5f6nbsxhqlfq5k7skfrqa6ymb3zr009y1"; + sha256 = "003iflm3ifjab3g1bnmhpwx1v3vpl4w90vwcvn8jf9449302d0md"; name = "${pname}-${version}-source"; }; From c3c47544e06cc028f1a9b590e7e16edddce8b2ee Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Fri, 28 Feb 2020 11:41:51 -0800 Subject: [PATCH 09/29] python2Packages.setuptools: freeze at 44.0.0 --- .../python-modules/setuptools/44.0.nix | 74 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 5 +- 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/python-modules/setuptools/44.0.nix diff --git a/pkgs/development/python-modules/setuptools/44.0.nix b/pkgs/development/python-modules/setuptools/44.0.nix new file mode 100644 index 000000000000..194b90cb42ad --- /dev/null +++ b/pkgs/development/python-modules/setuptools/44.0.nix @@ -0,0 +1,74 @@ +{ stdenv +, buildPythonPackage +, fetchFromGitHub +, python +, wrapPython +, unzip +, callPackage +, bootstrapped-pip +, lib +, pipInstallHook +, setuptoolsBuildHook +}: + +let + pname = "setuptools"; + version = "44.0.0"; + + # Create an sdist of setuptools + sdist = stdenv.mkDerivation rec { + name = "${pname}-${version}-sdist.tar.gz"; + + src = fetchFromGitHub { + owner = "pypa"; + repo = pname; + rev = "v${version}"; + sha256 = "0z3q0qinyp1rmnxkw3y5f6nbsxhqlfq5k7skfrqa6ymb3zr009y1"; + name = "${pname}-${version}-source"; + }; + + buildPhase = '' + ${python.pythonForBuild.interpreter} bootstrap.py + ${python.pythonForBuild.interpreter} setup.py sdist --formats=gztar + ''; + + installPhase = '' + echo "Moving sdist..." + mv dist/*.tar.gz $out + ''; + }; +in buildPythonPackage rec { + inherit pname version; + # Because of bootstrapping we don't use the setuptoolsBuildHook that comes with format="setuptools" directly. + # Instead, we override it to remove setuptools to avoid a circular dependency. + # The same is done for pip and the pipInstallHook. + format = "other"; + + src = sdist; + + nativeBuildInputs = [ + bootstrapped-pip + (pipInstallHook.override{pip=null;}) + (setuptoolsBuildHook.override{setuptools=null; wheel=null;}) + ]; + + preBuild = lib.strings.optionalString (!stdenv.hostPlatform.isWindows) '' + export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0 + ''; + + pipInstallFlags = [ "--ignore-installed" ]; + + # Adds setuptools to nativeBuildInputs causing infinite recursion. + catchConflicts = false; + + # Requires pytest, causing infinite recursion. + doCheck = false; + + meta = with stdenv.lib; { + description = "Utilities to facilitate the installation of Python packages"; + homepage = https://pypi.python.org/pypi/setuptools; + license = with licenses; [ psfl zpl20 ]; + platforms = python.meta.platforms; + priority = 10; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 53b7eba5f30c..1ce9b7627a93 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -121,7 +121,10 @@ in { recursivePthLoader = callPackage ../development/python-modules/recursive-pth-loader { }; - setuptools = callPackage ../development/python-modules/setuptools { }; + setuptools = if isPy27 then + callPackage ../development/python-modules/setuptools/44.0.nix { } + else + callPackage ../development/python-modules/setuptools { }; vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { }; From 2a019cc48c78814a37873190266fab1cd0d59b4c Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Mon, 2 Mar 2020 13:42:33 -0800 Subject: [PATCH 10/29] python38: 3.8.1 -> 3.8.2 --- pkgs/development/interpreters/python/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 4166fbb7ccf5..1ddd7cd366fa 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -105,10 +105,10 @@ in { sourceVersion = { major = "3"; minor = "8"; - patch = "1"; + patch = "2"; suffix = ""; }; - sha256 = "1s4lwn5vzsajlc88m6hkghsvnjw4d00l2dsgng0m2w6vyqbl32bm"; + sha256 = "1ps5v323cp5czfshqjmbsqw7nvrdpcbk06f62jbzaqik4gfffii6"; inherit (darwin) configd; inherit passthruFun; }; From fe4580359e6402fcdfe75dc4ca3e7d4de846ec33 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Mon, 2 Mar 2020 13:44:08 -0800 Subject: [PATCH 11/29] python39: 3.9.0.a3 -> 3.9.0.a4 --- pkgs/development/interpreters/python/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 1ddd7cd366fa..3cc0eecb1b08 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -119,9 +119,9 @@ in { major = "3"; minor = "9"; patch = "0"; - suffix = "a3"; + suffix = "a4"; }; - sha256 = "09l68jyfhhass3cqyqyp2cv3a3i86qs0x736isidmpbrbxsincva"; + sha256 = "0qzy0wlq0izxk8ii28gy70v138g6xnz9sgsxpyayls2j04l6b5vz"; inherit (darwin) configd; inherit passthruFun; }; From fe898d5f76131477e6fe5bdeda90d07bac682751 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 2 Mar 2020 15:12:42 +0000 Subject: [PATCH 12/29] modemmanager: 1.12.4 -> 1.12.6 --- pkgs/tools/networking/modem-manager/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/networking/modem-manager/default.nix b/pkgs/tools/networking/modem-manager/default.nix index 70107d2c74da..e9d925fb930c 100644 --- a/pkgs/tools/networking/modem-manager/default.nix +++ b/pkgs/tools/networking/modem-manager/default.nix @@ -3,12 +3,12 @@ stdenv.mkDerivation rec { pname = "modem-manager"; - version = "1.12.4"; + version = "1.12.6"; package = "ModemManager"; src = fetchurl { url = "https://www.freedesktop.org/software/${package}/${package}-${version}.tar.xz"; - sha256 = "0nx9b6wfz2r29gb3wgsi5vflycibfhnij5wvc068s6hcbrsn2bc5"; + sha256 = "0k32rjh06p3q9yq054gxya6c7n39bilhi4s23p2hb02iwlz3bcrf"; }; nativeBuildInputs = [ vala gobject-introspection gettext pkgconfig ]; @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "WWAN modem manager, part of NetworkManager"; - homepage = https://www.freedesktop.org/wiki/Software/ModemManager/; + homepage = "https://www.freedesktop.org/wiki/Software/ModemManager/"; license = licenses.gpl2Plus; maintainers = [ ]; platforms = platforms.linux; From 3973a3c79c255db358a82f1ffc88dc2cda0f03d6 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Mon, 2 Mar 2020 09:37:05 -0800 Subject: [PATCH 13/29] python: add pythonRemoveTestsDirHook This will automatically remove a top-level "tests" directory from being installed. --- .../interpreters/python/hooks/default.nix | 8 ++++++++ .../python/hooks/python-remove-tests-dir-hook.sh | 15 +++++++++++++++ .../interpreters/python/mk-python-derivation.nix | 2 ++ pkgs/top-level/python-packages.nix | 2 +- 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/interpreters/python/hooks/python-remove-tests-dir-hook.sh diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index 159637ae9d5f..47690320e81e 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -94,6 +94,14 @@ in rec { name = "python-remove-bin-bytecode-hook"; } ./python-remove-bin-bytecode-hook.sh) {}; + pythonRemoveTestsDirHook = callPackage ({ }: + makeSetupHook { + name = "python-remove-tests-dir-hook"; + substitutions = { + inherit pythonSitePackages; + }; + } ./python-remove-tests-dir-hook.sh) {}; + setuptoolsBuildHook = callPackage ({ setuptools, wheel }: makeSetupHook { name = "setuptools-setup-hook"; diff --git a/pkgs/development/interpreters/python/hooks/python-remove-tests-dir-hook.sh b/pkgs/development/interpreters/python/hooks/python-remove-tests-dir-hook.sh new file mode 100644 index 000000000000..83bea786db6d --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/python-remove-tests-dir-hook.sh @@ -0,0 +1,15 @@ +# Clean up top-level tests directory in site-package installation. +echo "Sourcing python-remove-tests-dir-hook" + +pythonRemoveTestsDir() { + echo "Executing pythonRemoveTestsDir" + + rm -rf $out/@pythonSitePackages@/tests + + echo "Finished executing pythonRemoveTestsDir" +} + +if [ -z "${dontUsePythonRemoveTestsDir-}" ]; then + postFixupHooks+=(pythonRemoveTestsDir) +fi + diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index 020298cc8e9f..180bc63857c2 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -17,6 +17,7 @@ , pythonCatchConflictsHook , pythonImportsCheckHook , pythonRemoveBinBytecodeHook +, pythonRemoveTestsDirHook , setuptoolsBuildHook , setuptoolsCheckHook , wheelUnpackHook @@ -108,6 +109,7 @@ let python wrapPython ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, flit, ...)? + pythonRemoveTestsDirHook ] ++ lib.optionals catchConflicts [ setuptools pythonCatchConflictsHook ] ++ lib.optionals removeBinBytecode [ diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1ce9b7627a93..d260567f1c6c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -108,7 +108,7 @@ in { inherit buildSetupcfg; inherit (callPackage ../development/interpreters/python/hooks { }) - eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook setuptoolsBuildHook setuptoolsCheckHook venvShellHook wheelUnpackHook; + eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook pythonRemoveTestsDirHook setuptoolsBuildHook setuptoolsCheckHook venvShellHook wheelUnpackHook; # helpers From 29fc27b4ac358b5325ad356f90da54adf941e663 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 1 Mar 2020 18:14:36 -0500 Subject: [PATCH 14/29] wrapGAppsHook: Fix #78803 Add to gappsWrapperArgs in preFixupPhases. --- .../setup-hooks/wrap-gapps-hook.sh | 127 +++++++++--------- 1 file changed, 66 insertions(+), 61 deletions(-) diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh index ff0cda7eaf0d..1a46e075dbe7 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh @@ -9,6 +9,37 @@ find_gio_modules() { addEnvHooks "${targetOffset:?}" find_gio_modules +gappsWrapperArgsHook() { + if [ -n "$GDK_PIXBUF_MODULE_FILE" ]; then + gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE") + fi + + if [ -n "$XDG_ICON_DIRS" ]; then + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS") + fi + + if [ -n "$GSETTINGS_SCHEMAS_PATH" ]; then + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH") + fi + + # Check for prefix as well + if [ -d "${prefix:?}/share" ]; then + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$prefix/share") + fi + + if [ -d "$prefix/lib/gio/modules" ] && [ -n "$(ls -A "$prefix/lib/gio/modules")" ]; then + gappsWrapperArgs+=(--prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules") + fi + + for v in ${wrapPrefixVariables:-} GST_PLUGIN_SYSTEM_PATH_1_0 GI_TYPELIB_PATH GRL_PLUGIN_PATH; do + if [ -n "${!v}" ]; then + gappsWrapperArgs+=(--prefix "$v" : "${!v}") + fi + done +} + +preFixupPhases+=" gappsWrapperArgsHook" + wrapGApp() { local program="$1" shift 1 @@ -17,72 +48,46 @@ wrapGApp() { # Note: $gappsWrapperArgs still gets defined even if ${dontWrapGApps-} is set. wrapGAppsHook() { - # guard against running multiple times (e.g. due to propagation) - [ -z "$wrapGAppsHookHasRun" ] || return 0 - wrapGAppsHookHasRun=1 + # guard against running multiple times (e.g. due to propagation) + [ -z "$wrapGAppsHookHasRun" ] || return 0 + wrapGAppsHookHasRun=1 - if [ -n "$GDK_PIXBUF_MODULE_FILE" ]; then - gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE") - fi + if [[ -z "${dontWrapGApps:-}" ]]; then + targetDirsThatExist=() + targetDirsRealPath=() - if [ -n "$XDG_ICON_DIRS" ]; then - gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS") - fi - - if [ -n "$GSETTINGS_SCHEMAS_PATH" ]; then - gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH") - fi - - if [ -d "${prefix:?}/share" ]; then - gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$prefix/share") - fi - - if [ -d "$prefix/lib/gio/modules" ] && [ -n "$(ls -A "$prefix/lib/gio/modules")" ] ; then - gappsWrapperArgs+=(--prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules") - fi - - for v in ${wrapPrefixVariables:-} GST_PLUGIN_SYSTEM_PATH_1_0 GI_TYPELIB_PATH GRL_PLUGIN_PATH; do - if [ -n "${!v}" ]; then - gappsWrapperArgs+=(--prefix "$v" : "${!v}") - fi - done - - if [[ -z "${dontWrapGApps:-}" ]]; then - targetDirsThatExist=() - targetDirsRealPath=() - - # wrap binaries - targetDirs=( "${prefix}/bin" "${prefix}/libexec" ) - for targetDir in "${targetDirs[@]}"; do - if [[ -d "${targetDir}" ]]; then - targetDirsThatExist+=("${targetDir}") - targetDirsRealPath+=("$(realpath "${targetDir}")/") - find "${targetDir}" -type f -executable -print0 \ - | while IFS= read -r -d '' file; do - echo "Wrapping program '${file}'" - wrapGApp "${file}" + # wrap binaries + targetDirs=("${prefix}/bin" "${prefix}/libexec") + for targetDir in "${targetDirs[@]}"; do + if [[ -d "${targetDir}" ]]; then + targetDirsThatExist+=("${targetDir}") + targetDirsRealPath+=("$(realpath "${targetDir}")/") + find "${targetDir}" -type f -executable -print0 | + while IFS= read -r -d '' file; do + echo "Wrapping program '${file}'" + wrapGApp "${file}" + done + fi done - fi - done - # wrap links to binaries that point outside targetDirs - # Note: links to binaries within targetDirs do not need - # to be wrapped as the binaries have already been wrapped - if [[ ${#targetDirsThatExist[@]} -ne 0 ]]; then - find "${targetDirsThatExist[@]}" -type l -xtype f -executable -print0 \ - | while IFS= read -r -d '' linkPath; do - linkPathReal=$(realpath "${linkPath}") - for targetPath in "${targetDirsRealPath[@]}"; do - if [[ "$linkPathReal" == "$targetPath"* ]]; then - echo "Not wrapping link: '$linkPath' (already wrapped)" - continue 2 - fi - done - echo "Wrapping link: '$linkPath'" - wrapGApp "${linkPath}" - done + # wrap links to binaries that point outside targetDirs + # Note: links to binaries within targetDirs do not need + # to be wrapped as the binaries have already been wrapped + if [[ ${#targetDirsThatExist[@]} -ne 0 ]]; then + find "${targetDirsThatExist[@]}" -type l -xtype f -executable -print0 | + while IFS= read -r -d '' linkPath; do + linkPathReal=$(realpath "${linkPath}") + for targetPath in "${targetDirsRealPath[@]}"; do + if [[ "$linkPathReal" == "$targetPath"* ]]; then + echo "Not wrapping link: '$linkPath' (already wrapped)" + continue 2 + fi + done + echo "Wrapping link: '$linkPath'" + wrapGApp "${linkPath}" + done + fi fi - fi } fixupOutputHooks+=(wrapGAppsHook) From 8e4f502fc6a3736f402e320ba7ab3ec630a4cbac Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 4 Mar 2020 21:19:35 +0100 Subject: [PATCH 15/29] glib.setupHook: run glibPreFixupPhase before gappsWrapperArgsHook Since we split wrapGAppsHook and move its variable initialization to preFixupPhases in #81475, it was getting run before glibPreFixupPhase which sets GSETTINGS_SCHEMAS_PATH variable gappsWrapperArgsHook depends on. Let's introduce this ugly hack to ensure glibPreFixupPhase will run before gappsWrapperArgsHook. --- pkgs/development/libraries/glib/setup-hook.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/glib/setup-hook.sh b/pkgs/development/libraries/glib/setup-hook.sh index 37c750b8db66..5d9c330b62eb 100644 --- a/pkgs/development/libraries/glib/setup-hook.sh +++ b/pkgs/development/libraries/glib/setup-hook.sh @@ -24,4 +24,12 @@ glibPreFixupPhase() { addToSearchPath GSETTINGS_SCHEMAS_PATH "${!outputLib}/share/gsettings-schemas/$name" } -preFixupPhases+=" glibPreFixupPhase" + +# gappsWrapperArgsHook expects GSETTINGS_SCHEMAS_PATH variable to be set by this. +# Until we have dependency mechanism in generic builder, we need to use this ugly hack. +if [[ " ${preFixupPhases:-} " =~ " gappsWrapperArgsHook " ]]; then + preFixupPhases+=" " + preFixupPhases="${preFixupPhases/ gappsWrapperArgsHook / glibPreFixupPhase gappsWrapperArgsHook }" +else + preFixupPhases+=" glibPreFixupPhase" +fi From e1831ebea3bcb415800a74fe458f802e63549e1c Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Mon, 12 Aug 2019 18:59:01 -0400 Subject: [PATCH 16/29] gcc: move target-specific runtime libraries to separate output --- pkgs/build-support/cc-wrapper/default.nix | 4 +++- pkgs/development/compilers/gcc/builder.sh | 26 +++++++++++------------ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index b078bf2fbbd3..9bac8feef6d4 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -41,7 +41,9 @@ let libc_bin = if libc == null then null else getBin libc; libc_dev = if libc == null then null else getDev libc; libc_lib = if libc == null then null else getLib libc; - cc_solib = getLib cc; + cc_solib = getLib cc + + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}"; + # The wrapper scripts use 'cat' and 'grep', so we may need coreutils. coreutils_bin = if nativeTools then "" else getBin coreutils; diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh index 07a003691d6b..579378764f0d 100644 --- a/pkgs/development/compilers/gcc/builder.sh +++ b/pkgs/development/compilers/gcc/builder.sh @@ -133,7 +133,7 @@ if test "$noSysDirs" = "1"; then if test "$crossStageStatic" == 1; then # We don't want the gcc build to assume there will be a libc providing - # limits.h in this stagae + # limits.h in this stage makeFlagsArray+=( 'LIMITS_H_TEST=false' ) @@ -203,31 +203,31 @@ postConfigure() { preInstall() { # Make ‘lib64’ symlinks to ‘lib’. if [ -n "$is64bit" -a -z "$enableMultilib" ]; then - mkdir -p "$out/lib" - ln -s lib "$out/lib64" - mkdir -p "$lib/lib" - ln -s lib "$lib/lib64" + mkdir -p "$out/${targetConfig}/lib" + ln -s lib "$out/${targetConfig}/lib64" + mkdir -p "$lib/${targetConfig}/lib" + ln -s lib "$lib/${targetConfig}/lib64" fi } postInstall() { # Move runtime libraries to $lib. - moveToOutput "lib/lib*.so*" "$lib" - moveToOutput "lib/lib*.la" "$lib" - moveToOutput "lib/lib*.dylib" "$lib" + moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "$lib" + moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la" "$lib" + moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "$lib" moveToOutput "share/gcc-*/python" "$lib" - for i in "$lib"/lib/*.{la,py}; do + for i in "$lib/${targetConfig}"/lib/*.{la,py}; do substituteInPlace "$i" --replace "$out" "$lib" done if [ -n "$enableMultilib" ]; then - moveToOutput "lib64/lib*.so*" "$lib" - moveToOutput "lib64/lib*.la" "$lib" - moveToOutput "lib64/lib*.dylib" "$lib" + moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.so*" "$lib" + moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.la" "$lib" + moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.dylib" "$lib" - for i in "$lib"/lib64/*.{la,py}; do + for i in "$lib/${targetConfig}"/lib64/*.{la,py}; do substituteInPlace "$i" --replace "$out" "$lib" done fi From d9feea58aeded06aded50eee7e9d69ebe1086e7e Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Thu, 5 Mar 2020 14:56:52 -0500 Subject: [PATCH 17/29] gcc: remove unneeded RPATH patching --- pkgs/development/compilers/gcc/builder.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh index 579378764f0d..b153687980a0 100644 --- a/pkgs/development/compilers/gcc/builder.sh +++ b/pkgs/development/compilers/gcc/builder.sh @@ -247,13 +247,6 @@ postInstall() { NEW_RPATH=`echo "$PREV_RPATH" | sed 's,:[^:]*bootstrap-tools/lib,,g'` patchelf --set-rpath "$NEW_RPATH" "$i" && echo OK done - - # For some reason the libs retain RPATH to $out - for i in "$lib"/lib/{libtsan,libasan,libubsan}.so.*.*.*; do - PREV_RPATH=`patchelf --print-rpath "$i"` - NEW_RPATH=`echo "$PREV_RPATH" | sed "s,:${out}[^:]*,,g"` - patchelf --set-rpath "$NEW_RPATH" "$i" && echo OK - done fi if type "install_name_tool"; then From 19f7c641cca4e26d15aae76d60c29c77237bbd9a Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Mon, 2 Mar 2020 15:15:46 -0800 Subject: [PATCH 18/29] pythonPackages.cffi: 1.13.2 -> 1.14.0 --- pkgs/development/python-modules/cffi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix index b05aeebf9d4d..6f1e362f8bfa 100644 --- a/pkgs/development/python-modules/cffi/default.nix +++ b/pkgs/development/python-modules/cffi/default.nix @@ -2,11 +2,11 @@ if isPyPy then null else buildPythonPackage rec { pname = "cffi"; - version = "1.13.2"; + version = "1.14.0"; src = fetchPypi { inherit pname version; - sha256 = "599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346"; + sha256 = "1dn279gw5ql8i5n3s5v4rnv96rhhjjfn7xq729qbl5bs2954yf1d"; }; outputs = [ "out" "dev" ]; From ee39e49b680fa654684ebf00b10cf34ca5c49896 Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Mon, 10 Feb 2020 22:28:47 -0500 Subject: [PATCH 19/29] stdenv: update ARM bootstrap tarballs Fixes building glibc 2.30, which requires at least GCC 6. Picked from the following cross-trunk evaluation: https://hydra.nixos.org/eval/1568864 based on nixpkgs commit ac241fb7a57. armv5tel job: https://hydra.nixos.org/build/111556418 armv6l job: https://hydra.nixos.org/build/111556521 armv7l job: https://hydra.nixos.org/build/111556551 --- pkgs/stdenv/linux/bootstrap-files/armv5tel.nix | 8 ++++---- pkgs/stdenv/linux/bootstrap-files/armv6l.nix | 8 ++++---- pkgs/stdenv/linux/bootstrap-files/armv7l.nix | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pkgs/stdenv/linux/bootstrap-files/armv5tel.nix b/pkgs/stdenv/linux/bootstrap-files/armv5tel.nix index 37471e9ce426..c5426431b3ce 100644 --- a/pkgs/stdenv/linux/bootstrap-files/armv5tel.nix +++ b/pkgs/stdenv/linux/bootstrap-files/armv5tel.nix @@ -1,12 +1,12 @@ { busybox = import { - url = http://nixos-arm.dezgeg.me/bootstrap-2017-04-13-1f32d4b4/armv5tel/busybox; - sha256 = "00mxas5xg2j9n1g0q0nklr0dy87qqxk0jja5qz1yi7xl7zzsnpnw"; + url = https://hydra.nixos.org/build/112609163/download/2/busybox; + sha256 = "0dc5471dc6a5f69ad98eb7445f51a61e88aa5792d7a677025bf012bdb513b763"; executable = true; }; bootstrapTools = import { - url = http://nixos-arm.dezgeg.me/bootstrap-2017-04-13-1f32d4b4/armv5tel/bootstrap-tools.tar.xz; - sha256 = "0fhiy9l3mbmlhpkby31c2s63bhjiqx25qqr3wdp8cb7fxz8ayx2f"; + url = https://hydra.nixos.org/build/112609163/download/1/bootstrap-tools.tar.xz; + sha256 = "ca0564eca4eb944649ce10ec70859640427bf2241243af62812b163176487e02"; }; } diff --git a/pkgs/stdenv/linux/bootstrap-files/armv6l.nix b/pkgs/stdenv/linux/bootstrap-files/armv6l.nix index 447189756821..caf7df66cef6 100644 --- a/pkgs/stdenv/linux/bootstrap-files/armv6l.nix +++ b/pkgs/stdenv/linux/bootstrap-files/armv6l.nix @@ -1,12 +1,12 @@ { busybox = import { - url = http://nixos-arm.dezgeg.me/bootstrap-2017-04-13-1f32d4b4/armv6l/busybox; - sha256 = "06n8dy8y2v28yx9ws8x64wxrvn9pszgpd299hc90nv9x21m79jzd"; + url = https://hydra.nixos.org/build/112609441/download/2/busybox; + sha256 = "e6f6aecb675e924a96516f4379445dd2c0ba8b9c438fbfbaa2dc14ccce2802e0"; executable = true; }; bootstrapTools = import { - url = http://nixos-arm.dezgeg.me/bootstrap-2017-04-13-1f32d4b4/armv6l/bootstrap-tools.tar.xz; - sha256 = "1gg2q3sw81vi65g1gmpvx0nnd6hxb76vlz73wfp292m90z1mym7f"; + url = https://hydra.nixos.org/build/112609441/download/1/bootstrap-tools.tar.xz; + sha256 = "7a3f20def1a17ebf0edb5a92c403558429bcc2ac3d931b5e1bd88606cb217778"; }; } diff --git a/pkgs/stdenv/linux/bootstrap-files/armv7l.nix b/pkgs/stdenv/linux/bootstrap-files/armv7l.nix index b97fd9967eae..67bca39eaf68 100644 --- a/pkgs/stdenv/linux/bootstrap-files/armv7l.nix +++ b/pkgs/stdenv/linux/bootstrap-files/armv7l.nix @@ -1,12 +1,12 @@ { busybox = import { - url = http://nixos-arm.dezgeg.me/bootstrap-2017-04-13-1f32d4b4/armv7l/busybox; - sha256 = "187xwzsng5lpak1nanrk88y4mlydmrbhx6la00rrd6kjx376s565"; + url = https://hydra.nixos.org/build/112609103/download/2/busybox; + sha256 = "566a469dac214b31e4abdb0a91d32550bab1be5858d329e1b6074eef05370ca3"; executable = true; }; bootstrapTools = import { - url = http://nixos-arm.dezgeg.me/bootstrap-2017-04-13-1f32d4b4/armv7l/bootstrap-tools.tar.xz; - sha256 = "05ayki2kak3i5lw97qidd5h9jv00dmlhx9h7l771bj331yamyqdn"; + url = https://hydra.nixos.org/build/112609103/download/1/bootstrap-tools.tar.xz; + sha256 = "79fa2d7722aeb856c7c9b62a3fd64b6d261fd6f6bcbac486f0a2a7d823210550"; }; } From 05fc2a35240d4bdae638e273b56a2ff2722a40a9 Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Tue, 18 Feb 2020 22:33:36 -0500 Subject: [PATCH 20/29] unpack-bootstrap-tools: remove obsolete linker script patching The linker scripts no longer contain store paths, so this does nothing. More importantly, libpthread.so is not longer a linker script on ARM, so the patching would corrupt it. --- .../linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh b/pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh index 64583f80fa8f..f394869ea915 100644 --- a/pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh +++ b/pkgs/stdenv/linux/bootstrap-tools/scripts/unpack-bootstrap-tools.sh @@ -35,12 +35,7 @@ for i in $out/lib/librt-*.so $out/lib/libpcre*; do $out/bin/patchelf --set-rpath $out/lib --force-rpath "$i" done -# Fix the libc linker script. export PATH=$out/bin -cat $out/lib/libc.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libc.so.tmp -mv $out/lib/libc.so.tmp $out/lib/libc.so -cat $out/lib/libpthread.so | sed "s|/nix/store/e*-[^/]*/|$out/|g" > $out/lib/libpthread.so.tmp -mv $out/lib/libpthread.so.tmp $out/lib/libpthread.so # Provide some additional symlinks. ln -s bash $out/bin/sh From 7cc68a961d8fac4eee14c7a888f08c915a7c2f51 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sun, 16 Feb 2020 11:17:31 +0100 Subject: [PATCH 21/29] gnupg: apply patch to allow import of key updates without user ids This adds a patch series which allows GnuPG to import updates (revocations and subkeys) from certificates that contain no user ids. This is relevant for refreshing keys from the default keyserver keys.openpgp.org, where only user ids that contain verified email addresses will be distributed, and revoked keys never contain any user ids. This patch series was originally authored and submitted to upstream half a year ago (by me), but now comes from Debian packaging where it's been included since then. Relates to the following upstream issue: https://dev.gnupg.org/T4393 --- pkgs/tools/security/gnupg/22.nix | 3 + ...th-a-good-revocation-but-no-self-sig.patch | 32 +++ ...reviously-known-keys-even-without-UI.patch | 106 +++++++++ ...dd-test-cases-for-import-without-uid.patch | 201 ++++++++++++++++++ 4 files changed, 342 insertions(+) create mode 100644 pkgs/tools/security/gnupg/accept-subkeys-with-a-good-revocation-but-no-self-sig.patch create mode 100644 pkgs/tools/security/gnupg/allow-import-of-previously-known-keys-even-without-UI.patch create mode 100644 pkgs/tools/security/gnupg/tests-add-test-cases-for-import-without-uid.patch diff --git a/pkgs/tools/security/gnupg/22.nix b/pkgs/tools/security/gnupg/22.nix index 9aa92fd6829f..203f50a9c0e9 100644 --- a/pkgs/tools/security/gnupg/22.nix +++ b/pkgs/tools/security/gnupg/22.nix @@ -33,6 +33,9 @@ stdenv.mkDerivation rec { patches = [ ./fix-libusb-include-path.patch ./0001-dirmngr-Only-use-SKS-pool-CA-for-SKS-pool.patch + ./tests-add-test-cases-for-import-without-uid.patch + ./allow-import-of-previously-known-keys-even-without-UI.patch + ./accept-subkeys-with-a-good-revocation-but-no-self-sig.patch ]; postPatch = '' sed -i 's,hkps://hkps.pool.sks-keyservers.net,hkps://keys.openpgp.org,g' \ diff --git a/pkgs/tools/security/gnupg/accept-subkeys-with-a-good-revocation-but-no-self-sig.patch b/pkgs/tools/security/gnupg/accept-subkeys-with-a-good-revocation-but-no-self-sig.patch new file mode 100644 index 000000000000..5cbec92ae683 --- /dev/null +++ b/pkgs/tools/security/gnupg/accept-subkeys-with-a-good-revocation-but-no-self-sig.patch @@ -0,0 +1,32 @@ +From: Vincent Breitmoser +Date: Thu, 13 Jun 2019 21:27:43 +0200 +Subject: gpg: accept subkeys with a good revocation but no self-sig during + import + +* g10/import.c (chk_self_sigs): Set the NODE_GOOD_SELFSIG flag when we +encounter a valid revocation signature. This allows import of subkey +revocation signatures, even in the absence of a corresponding subkey +binding signature. + +-- + +This fixes the remaining test in import-incomplete.scm. + +GnuPG-Bug-id: 4393 +Signed-off-by: Daniel Kahn Gillmor +--- + g10/import.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/g10/import.c b/g10/import.c +index 4fdf248..ee2fed8 100644 +--- a/g10/import.c ++++ b/g10/import.c +@@ -3613,6 +3613,7 @@ chk_self_sigs (ctrl_t ctrl, kbnode_t keyblock, u32 *keyid, int *non_self) + /* It's valid, so is it newer? */ + if (sig->timestamp >= rsdate) + { ++ knode->flag |= NODE_GOOD_SELFSIG; /* Subkey is valid. */ + if (rsnode) + { + /* Delete the last revocation sig since diff --git a/pkgs/tools/security/gnupg/allow-import-of-previously-known-keys-even-without-UI.patch b/pkgs/tools/security/gnupg/allow-import-of-previously-known-keys-even-without-UI.patch new file mode 100644 index 000000000000..723a6952044e --- /dev/null +++ b/pkgs/tools/security/gnupg/allow-import-of-previously-known-keys-even-without-UI.patch @@ -0,0 +1,106 @@ +From: Vincent Breitmoser +Date: Thu, 13 Jun 2019 21:27:42 +0200 +Subject: gpg: allow import of previously known keys, even without UIDs + +* g10/import.c (import_one): Accept an incoming OpenPGP certificate that +has no user id, as long as we already have a local variant of the cert +that matches the primary key. + +-- + +This fixes two of the three broken tests in import-incomplete.scm. + +GnuPG-Bug-id: 4393 +Signed-off-by: Daniel Kahn Gillmor +--- + g10/import.c | 44 +++++++++++--------------------------------- + 1 file changed, 11 insertions(+), 33 deletions(-) + +diff --git a/g10/import.c b/g10/import.c +index 95d419a..4fdf248 100644 +--- a/g10/import.c ++++ b/g10/import.c +@@ -1792,7 +1792,6 @@ import_one_real (ctrl_t ctrl, + size_t an; + char pkstrbuf[PUBKEY_STRING_SIZE]; + int merge_keys_done = 0; +- int any_filter = 0; + KEYDB_HANDLE hd = NULL; + + if (r_valid) +@@ -1829,14 +1828,6 @@ import_one_real (ctrl_t ctrl, + log_printf ("\n"); + } + +- +- if (!uidnode ) +- { +- if (!silent) +- log_error( _("key %s: no user ID\n"), keystr_from_pk(pk)); +- return 0; +- } +- + if (screener && screener (keyblock, screener_arg)) + { + log_error (_("key %s: %s\n"), keystr_from_pk (pk), +@@ -1911,17 +1902,10 @@ import_one_real (ctrl_t ctrl, + } + } + +- if (!delete_inv_parts (ctrl, keyblock, keyid, options ) ) +- { +- if (!silent) +- { +- log_error( _("key %s: no valid user IDs\n"), keystr_from_pk(pk)); +- if (!opt.quiet ) +- log_info(_("this may be caused by a missing self-signature\n")); +- } +- stats->no_user_id++; +- return 0; +- } ++ /* Delete invalid parts, and note if we have any valid ones left. ++ * We will later abort import if this key is new but contains ++ * no valid uids. */ ++ delete_inv_parts (ctrl, keyblock, keyid, options); + + /* Get rid of deleted nodes. */ + commit_kbnode (&keyblock); +@@ -1931,24 +1915,11 @@ import_one_real (ctrl_t ctrl, + { + apply_keep_uid_filter (ctrl, keyblock, import_filter.keep_uid); + commit_kbnode (&keyblock); +- any_filter = 1; + } + if (import_filter.drop_sig) + { + apply_drop_sig_filter (ctrl, keyblock, import_filter.drop_sig); + commit_kbnode (&keyblock); +- any_filter = 1; +- } +- +- /* If we ran any filter we need to check that at least one user id +- * is left in the keyring. Note that we do not use log_error in +- * this case. */ +- if (any_filter && !any_uid_left (keyblock)) +- { +- if (!opt.quiet ) +- log_info ( _("key %s: no valid user IDs\n"), keystr_from_pk (pk)); +- stats->no_user_id++; +- return 0; + } + + /* The keyblock is valid and ready for real import. */ +@@ -2006,6 +1977,13 @@ import_one_real (ctrl_t ctrl, + err = 0; + stats->skipped_new_keys++; + } ++ else if (err && !any_uid_left (keyblock)) ++ { ++ if (!silent) ++ log_info( _("key %s: new key but contains no user ID - skipped\n"), keystr(keyid)); ++ err = 0; ++ stats->no_user_id++; ++ } + else if (err) /* Insert this key. */ + { + /* Note: ERR can only be NO_PUBKEY or UNUSABLE_PUBKEY. */ diff --git a/pkgs/tools/security/gnupg/tests-add-test-cases-for-import-without-uid.patch b/pkgs/tools/security/gnupg/tests-add-test-cases-for-import-without-uid.patch new file mode 100644 index 000000000000..37ddeea22495 --- /dev/null +++ b/pkgs/tools/security/gnupg/tests-add-test-cases-for-import-without-uid.patch @@ -0,0 +1,201 @@ +From: Vincent Breitmoser +Date: Thu, 13 Jun 2019 21:27:41 +0200 +Subject: tests: add test cases for import without uid + +This commit adds a test case that does the following, in order: +- Import of a primary key plus user id +- Check that import of a subkey works, without a user id present in the +imported key +- Check that import of a subkey revocation works, without a user id or +subkey binding signature present in the imported key +- Check that import of a primary key revocation works, without a user id +present in the imported key + +-- + +Note that this test currently fails. The following changesets will +fix gpg so that the tests pass. + +GnuPG-Bug-id: 4393 +Signed-Off-By: Daniel Kahn Gillmor +--- + tests/openpgp/Makefile.am | 1 + + tests/openpgp/import-incomplete.scm | 68 ++++++++++++++++++++++ + .../import-incomplete/primary+revocation.asc | 9 +++ + .../primary+subkey+sub-revocation.asc | 10 ++++ + .../import-incomplete/primary+subkey+sub-sig.asc | 10 ++++ + .../openpgp/import-incomplete/primary+uid-sig.asc | 10 ++++ + tests/openpgp/import-incomplete/primary+uid.asc | 10 ++++ + 7 files changed, 118 insertions(+) + create mode 100755 tests/openpgp/import-incomplete.scm + create mode 100644 tests/openpgp/import-incomplete/primary+revocation.asc + create mode 100644 tests/openpgp/import-incomplete/primary+subkey+sub-revocation.asc + create mode 100644 tests/openpgp/import-incomplete/primary+subkey+sub-sig.asc + create mode 100644 tests/openpgp/import-incomplete/primary+uid-sig.asc + create mode 100644 tests/openpgp/import-incomplete/primary+uid.asc + +diff --git a/tests/openpgp/Makefile.am b/tests/openpgp/Makefile.am +index f6014c9..6423da1 100644 +--- a/tests/openpgp/Makefile.am ++++ b/tests/openpgp/Makefile.am +@@ -78,6 +78,7 @@ XTESTS = \ + gpgv-forged-keyring.scm \ + armor.scm \ + import.scm \ ++ import-incomplete.scm \ + import-revocation-certificate.scm \ + ecc.scm \ + 4gb-packet.scm \ +diff --git a/tests/openpgp/import-incomplete.scm b/tests/openpgp/import-incomplete.scm +new file mode 100755 +index 0000000..727a027 +--- /dev/null ++++ b/tests/openpgp/import-incomplete.scm +@@ -0,0 +1,68 @@ ++#!/usr/bin/env gpgscm ++ ++;; Copyright (C) 2016 g10 Code GmbH ++;; ++;; This file is part of GnuPG. ++;; ++;; GnuPG is free software; you can redistribute it and/or modify ++;; it under the terms of the GNU General Public License as published by ++;; the Free Software Foundation; either version 3 of the License, or ++;; (at your option) any later version. ++;; ++;; GnuPG is distributed in the hope that it will be useful, ++;; but WITHOUT ANY WARRANTY; without even the implied warranty of ++;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++;; GNU General Public License for more details. ++;; ++;; You should have received a copy of the GNU General Public License ++;; along with this program; if not, see . ++ ++(load (in-srcdir "tests" "openpgp" "defs.scm")) ++(setup-environment) ++ ++(call-check `(,(tool 'gpg) --import ,(in-srcdir "tests" "openpgp" "import-incomplete" "primary+uid.asc"))) ++ ++(info "Test import of new subkey, from a certificate without uid") ++(define keyid "573EA710367356BB") ++(call-check `(,(tool 'gpg) --import ,(in-srcdir "tests" "openpgp" "import-incomplete" "primary+subkey+sub-sig.asc"))) ++(tr:do ++ (tr:pipe-do ++ (pipe:gpg `(--list-keys --with-colons ,keyid))) ++ (tr:call-with-content ++ (lambda (c) ++ ;; XXX we do not have a regexp library ++ (unless (any (lambda (line) ++ (and (string-prefix? line "sub:") ++ (string-contains? line "573EA710367356BB"))) ++ (string-split-newlines c)) ++ (exit 1))))) ++ ++(info "Test import of a subkey revocation, from a certificate without uid") ++(define keyid "573EA710367356BB") ++(call-check `(,(tool 'gpg) --import ,(in-srcdir "tests" "openpgp" "import-incomplete" "primary+subkey+sub-revocation.asc"))) ++(tr:do ++ (tr:pipe-do ++ (pipe:gpg `(--list-keys --with-colons ,keyid))) ++ (tr:call-with-content ++ (lambda (c) ++ ;; XXX we do not have a regexp library ++ (unless (any (lambda (line) ++ (and (string-prefix? line "sub:r:") ++ (string-contains? line "573EA710367356BB"))) ++ (string-split-newlines c)) ++ (exit 1))))) ++ ++(info "Test import of revocation, from a certificate without uid") ++(call-check `(,(tool 'gpg) --import ,(in-srcdir "tests" "openpgp" "import-incomplete" "primary+revocation.asc"))) ++(tr:do ++ (tr:pipe-do ++ (pipe:gpg `(--list-keys --with-colons ,keyid))) ++ (tr:call-with-content ++ (lambda (c) ++ ;; XXX we do not have a regexp library ++ (unless (any (lambda (line) ++ (and (string-prefix? line "pub:r:") ++ (string-contains? line "0843DA969AA8DAFB"))) ++ (string-split-newlines c)) ++ (exit 1))))) ++ +diff --git a/tests/openpgp/import-incomplete/primary+revocation.asc b/tests/openpgp/import-incomplete/primary+revocation.asc +new file mode 100644 +index 0000000..6b7b608 +--- /dev/null ++++ b/tests/openpgp/import-incomplete/primary+revocation.asc +@@ -0,0 +1,9 @@ ++-----BEGIN PGP PUBLIC KEY BLOCK----- ++Comment: [E] primary key, revocation signature over primary (no user ID) ++ ++mDMEXNmUGRYJKwYBBAHaRw8BAQdA75R8VlchvmEd2Iz/8l07RoKUaUPDB71Ao1zZ ++631VAN2IeAQgFggAIBYhBLRpj5W82H/gSMzKKQhD2paaqNr7BQJc2ZQZAh0AAAoJ ++EAhD2paaqNr7qAwA/2jBUpnN0BxwRO/4CrxvrLIsL+C9aSXJUOTv8XkP4lvtAQD3 ++XsDFfFNgEueiTfF7HtOGt5LPmRqVvUpQSMVgJJW6CQ== ++=tM90 ++-----END PGP PUBLIC KEY BLOCK----- +diff --git a/tests/openpgp/import-incomplete/primary+subkey+sub-revocation.asc b/tests/openpgp/import-incomplete/primary+subkey+sub-revocation.asc +new file mode 100644 +index 0000000..83a51a5 +--- /dev/null ++++ b/tests/openpgp/import-incomplete/primary+subkey+sub-revocation.asc +@@ -0,0 +1,10 @@ ++-----BEGIN PGP PUBLIC KEY BLOCK----- ++Comment: [D] primary key, subkey, subkey revocation (no user ID) ++ ++mDMEXNmUGRYJKwYBBAHaRw8BAQdA75R8VlchvmEd2Iz/8l07RoKUaUPDB71Ao1zZ ++631VAN24OARc2ZQhEgorBgEEAZdVAQUBAQdABsd5ha0AWXdXcSmfeiWIfrNcGqQK ++j++lwwWDAOlkVicDAQgHiHgEKBYIACAWIQS0aY+VvNh/4EjMyikIQ9qWmqja+wUC ++XNmnkAIdAgAKCRAIQ9qWmqja+ylaAQDmIKf86BJEq4OpDqU+V9D+wn2cyuxbyWVQ ++3r9LiL9qNwD/QAjyrhSN8L3Mfq+wdTHo5i0yB9ZCCpHLXSbhCqfWZwQ= ++=dwx2 ++-----END PGP PUBLIC KEY BLOCK----- +diff --git a/tests/openpgp/import-incomplete/primary+subkey+sub-sig.asc b/tests/openpgp/import-incomplete/primary+subkey+sub-sig.asc +new file mode 100644 +index 0000000..dc47a02 +--- /dev/null ++++ b/tests/openpgp/import-incomplete/primary+subkey+sub-sig.asc +@@ -0,0 +1,10 @@ ++-----BEGIN PGP PUBLIC KEY BLOCK----- ++Comment: [B] primary key, subkey, subkey binding sig (no user ID) ++ ++mDMEXNmUGRYJKwYBBAHaRw8BAQdA75R8VlchvmEd2Iz/8l07RoKUaUPDB71Ao1zZ ++631VAN24OARc2ZQhEgorBgEEAZdVAQUBAQdABsd5ha0AWXdXcSmfeiWIfrNcGqQK ++j++lwwWDAOlkVicDAQgHiHgEGBYIACAWIQS0aY+VvNh/4EjMyikIQ9qWmqja+wUC ++XNmUIQIbDAAKCRAIQ9qWmqja++vFAP98G1L+1/rWTGbsnxOAV2RocBYIroAvsbkR ++Ly6FdP8YNwEA7jOgT05CoKIe37MstpOz23mM80AK369Ca3JMmKKCQgg= ++=xuDu ++-----END PGP PUBLIC KEY BLOCK----- +diff --git a/tests/openpgp/import-incomplete/primary+uid-sig.asc b/tests/openpgp/import-incomplete/primary+uid-sig.asc +new file mode 100644 +index 0000000..134607d +--- /dev/null ++++ b/tests/openpgp/import-incomplete/primary+uid-sig.asc +@@ -0,0 +1,10 @@ ++-----BEGIN PGP PUBLIC KEY BLOCK----- ++Comment: [C] primary key and self-sig expiring in 2024 (no user ID) ++ ++mDMEXNmUGRYJKwYBBAHaRw8BAQdA75R8VlchvmEd2Iz/8l07RoKUaUPDB71Ao1zZ ++631VAN2IlgQTFggAPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBLRpj5W8 ++2H/gSMzKKQhD2paaqNr7BQJc2ZR1BQkJZgHcAAoJEAhD2paaqNr79soA/0lWkUsu ++3NLwgbni6EzJxnTzgeNMpljqNpipHAwfix9hAP93AVtFdC8g7hdUZxawobl9lnSN ++9ohXOEBWvdJgVv2YAg== ++=KWIK ++-----END PGP PUBLIC KEY BLOCK----- +diff --git a/tests/openpgp/import-incomplete/primary+uid.asc b/tests/openpgp/import-incomplete/primary+uid.asc +new file mode 100644 +index 0000000..055f300 +--- /dev/null ++++ b/tests/openpgp/import-incomplete/primary+uid.asc +@@ -0,0 +1,10 @@ ++-----BEGIN PGP PUBLIC KEY BLOCK----- ++Comment: [A] primary key, user ID, and self-sig expiring in 2021 ++ ++mDMEXNmUGRYJKwYBBAHaRw8BAQdA75R8VlchvmEd2Iz/8l07RoKUaUPDB71Ao1zZ ++631VAN20CHRlc3Qga2V5iJYEExYIAD4WIQS0aY+VvNh/4EjMyikIQ9qWmqja+wUC ++XNmUGQIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRAIQ9qWmqja +++0G1AQDdQiwhXxjXLMqoth+D4SigVHTJK8ORwifzsy3UE7mPGwD/aZ67XbAF/lgI ++kv2O1Jo0u9BL9RNNF+L0DM7rAFbfMAs= ++=1eII ++-----END PGP PUBLIC KEY BLOCK----- From 297f755012dfa9c4bea5110eb756d01dbc5dd957 Mon Sep 17 00:00:00 2001 From: Felix Tenley Date: Sat, 15 Feb 2020 11:50:43 +0100 Subject: [PATCH 22/29] libvdpau: 1.2 -> 1.3 adds support for VP9 decoding --- pkgs/development/libraries/libvdpau/default.nix | 17 ++++++++--------- .../libraries/libvdpau/installdir.patch | 9 +++++++++ 2 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 pkgs/development/libraries/libvdpau/installdir.patch diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix index e6a57f1e38c4..977081e0ecf6 100644 --- a/pkgs/development/libraries/libvdpau/default.nix +++ b/pkgs/development/libraries/libvdpau/default.nix @@ -1,28 +1,27 @@ -{ stdenv, fetchurl, pkgconfig, xorg, mesa }: +{ stdenv, fetchurl, pkgconfig, xorg, mesa, meson, ninja }: stdenv.mkDerivation rec { pname = "libvdpau"; - version = "1.2"; + version = "1.3"; src = fetchurl { - url = "https://gitlab.freedesktop.org/vdpau/libvdpau/uploads/14b620084c027d546fa0b3f083b800c6/${pname}-${version}.tar.bz2"; - sha256 = "6a499b186f524e1c16b4f5b57a6a2de70dfceb25c4ee546515f26073cd33fa06"; + url = "https://gitlab.freedesktop.org/vdpau/libvdpau/-/archive/${version}/${pname}-${version}.tar.bz2"; + sha256 = "b5a52eeac9417edbc396f26c40591ba5df0cd18285f68d84614ef8f06196e50e"; }; + patches = [ ./installdir.patch ]; outputs = [ "out" "dev" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ meson ninja pkgconfig ]; buildInputs = with xorg; [ xorgproto libXext ]; propagatedBuildInputs = [ xorg.libX11 ]; - configureFlags = stdenv.lib.optional stdenv.isLinux - "--with-module-dir=${mesa.drivers.driverLink}/lib/vdpau"; + mesonFlags = stdenv.lib.optional stdenv.isLinux + [ "-Dmoduledir=${mesa.drivers.driverLink}/lib/vdpau" ]; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lX11"; - installFlags = [ "moduledir=$(out)/lib/vdpau" ]; - meta = with stdenv.lib; { homepage = https://people.freedesktop.org/~aplattner/vdpau/; description = "Library to use the Video Decode and Presentation API for Unix (VDPAU)"; diff --git a/pkgs/development/libraries/libvdpau/installdir.patch b/pkgs/development/libraries/libvdpau/installdir.patch new file mode 100644 index 000000000000..859715f70d39 --- /dev/null +++ b/pkgs/development/libraries/libvdpau/installdir.patch @@ -0,0 +1,9 @@ +--- a/trace/meson.build 2020-02-15 16:34:58.698832000 +0100 ++++ b/trace/meson.build 2020-02-15 16:39:05.359952802 +0100 +@@ -4,5 +4,5 @@ + dependencies : libdl, + version : '1.0.0', + install : true, +- install_dir : moduledir, ++ install_dir : get_option('prefix') + '/lib/libvdpau', + ) From efc1e24565b4a8738892d23b0e3f76061a336a5f Mon Sep 17 00:00:00 2001 From: Felix Tenley Date: Sat, 15 Feb 2020 18:14:56 +0100 Subject: [PATCH 23/29] vdpauinfo: 1.0 -> 1.3 --- pkgs/tools/X11/vdpauinfo/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/X11/vdpauinfo/default.nix b/pkgs/tools/X11/vdpauinfo/default.nix index 153ff45d2a70..c0956fb1dec4 100644 --- a/pkgs/tools/X11/vdpauinfo/default.nix +++ b/pkgs/tools/X11/vdpauinfo/default.nix @@ -1,11 +1,12 @@ { stdenv, fetchurl, pkgconfig, libvdpau }: stdenv.mkDerivation rec { - name = "vdpauinfo-1.0"; + pname = "vdpauinfo"; + version = "1.3"; src = fetchurl { - url = "https://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz"; - sha256 = "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20"; + url = "https://gitlab.freedesktop.org/vdpau/vdpauinfo/uploads/6fa9718c507ef0fb6966170ef55344bf/${pname}-${version}.tar.gz"; + sha256 = "0s6jdadnycyd1agsnfx7hrf17hmipasx1fpmppd4m1z6i9sp1i6g"; }; nativeBuildInputs = [ pkgconfig ]; From bb0d036002eadcf1080bdcc258074c5a7a8693a4 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Thu, 13 Feb 2020 22:29:33 +1000 Subject: [PATCH 24/29] ncurses: 6.1-20190112 -> 6.2 https://invisible-island.net/ncurses/announce-6.2.html --- pkgs/development/libraries/ncurses/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index 540ea71abfb8..8b91246b6fdc 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -14,17 +14,17 @@ stdenv.mkDerivation rec { # Note the revision needs to be adjusted. - version = "6.1-20190112"; + version = "6.2"; name = "ncurses-${version}" + lib.optionalString (abiVersion == "5") "-abi5-compat"; # We cannot use fetchFromGitHub (which calls fetchzip) # because we need to be able to use fetchurlBoot. src = let # Note the version needs to be adjusted. - rev = "acb4184f8f69fddd052a3daa8c8675f4bf8ce369"; + rev = "v${version}"; in fetchurl { url = "https://github.com/mirror/ncurses/archive/${rev}.tar.gz"; - sha256 = "1z8v63cj2y7dxf4m1api8cvk0ns9frif9c60m2sxhibs06pjy4q0"; + sha256 = "15r2456g0mlq2q7gh2z52vl6zv6y0z8sdchrs80kg4idqd8sm8fd"; }; patches = lib.optional (!stdenv.cc.isClang) ./clang.patch; From 4e085866902a33d6989fab6fe444dda062f755ba Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Mon, 10 Feb 2020 14:52:49 +0100 Subject: [PATCH 25/29] gdb: 8.3.1 -> 9.1 See https://www.gnu.org/software/gdb/download/ANNOUNCEMENT for release information --- .../tools/misc/gdb/darwin-target-match.patch | 2 +- .../tools/misc/gdb/debug-info-from-env.patch | 33 ++++++++++++------- pkgs/development/tools/misc/gdb/default.nix | 13 ++++++-- pkgs/top-level/all-packages.nix | 1 + 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/pkgs/development/tools/misc/gdb/darwin-target-match.patch b/pkgs/development/tools/misc/gdb/darwin-target-match.patch index 1328d919503a..978a67950569 100644 --- a/pkgs/development/tools/misc/gdb/darwin-target-match.patch +++ b/pkgs/development/tools/misc/gdb/darwin-target-match.patch @@ -1,6 +1,6 @@ --- a/configure 2017-06-05 00:51:26.000000000 +0900 +++ b/configure 2018-03-06 23:12:58.000000000 +0900 -@@ -3603,7 +3603,7 @@ +@@ -3644,7 +3644,7 @@ noconfigdirs="$noconfigdirs ld gprof" noconfigdirs="$noconfigdirs sim target-rda" ;; diff --git a/pkgs/development/tools/misc/gdb/debug-info-from-env.patch b/pkgs/development/tools/misc/gdb/debug-info-from-env.patch index 499b61ba8696..de59bd2d17bb 100644 --- a/pkgs/development/tools/misc/gdb/debug-info-from-env.patch +++ b/pkgs/development/tools/misc/gdb/debug-info-from-env.patch @@ -1,15 +1,24 @@ -Initialize debug-file-directory from NIX_DEBUG_INFO_DIRS, a colon-separated list -of directories with separate debugging information files. - ---- a/gdb/main.c -+++ b/gdb/main.c -@@ -556,3 +556,8 @@ captured_main_1 (struct captured_main_args *context) +diff -ur a/gdb/main.c b/gdb/main.c +--- a/gdb/main.c 2020-02-08 13:50:14.000000000 +0100 ++++ b/gdb/main.c 2020-02-24 10:02:07.731806739 +0100 +@@ -567,9 +567,17 @@ + gdb_sysroot = xstrdup (TARGET_SYSROOT_PREFIX); + } -- debug_file_directory = relocate_gdb_directory (DEBUGDIR, -+ debug_file_directory = getenv("NIX_DEBUG_INFO_DIRS"); -+ +- debug_file_directory +- = xstrdup (relocate_gdb_directory (DEBUGDIR, +- DEBUGDIR_RELOCATABLE).c_str ()); ++ debug_file_directory = getenv ("NIX_DEBUG_INFO_DIRS"); + if (debug_file_directory != NULL) -+ debug_file_directory = xstrdup(debug_file_directory); ++ // This might be updated later using ++ // $ set debug-file-directory /to/some/path ++ // which will use xfree. We must then have a xmallocated ++ // copy of the string that can be xfeed later. ++ debug_file_directory = xstrdup (debug_file_directory); + else -+ debug_file_directory = relocate_gdb_directory (DEBUGDIR, - DEBUGDIR_RELOCATABLE); ++ debug_file_directory ++ = xstrdup (relocate_gdb_directory (DEBUGDIR, ++ DEBUGDIR_RELOCATABLE).c_str ()); + + gdb_datadir = relocate_gdb_directory (GDB_DATADIR, + GDB_DATADIR_RELOCATABLE); diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index e125b7418f6b..baaba6245701 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -18,7 +18,7 @@ let basename = "gdb-${version}"; - version = "8.3.1"; + version = "9.1"; in assert pythonSupport -> python3 != null; @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnu/gdb/${basename}.tar.xz"; - sha256 = "1i2pjwaafrlz7wqm40b4znr77ai32rjsxkpl2az38yyarpbv8m8y"; + sha256 = "0dqp1p7w836iwijg1zb4a784n0j4pyjiw5v6h8fg5lpx6b40x7k9"; }; postPatch = if stdenv.isDarwin then '' @@ -65,6 +65,13 @@ stdenv.mkDerivation rec { # TODO(@Ericson2314): Always pass "--target" and always prefix. configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target"; + # GDB have to be built out of tree. + preConfigure = '' + mkdir _build + cd _build + ''; + configureScript = "../configure"; + configureFlags = with stdenv.lib; [ "--enable-targets=all" "--enable-64-bit-bfd" "--disable-install-libbfd" @@ -100,6 +107,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.gpl3Plus; platforms = with platforms; linux ++ cygwin ++ darwin; - maintainers = with maintainers; [ pierron globin ]; + maintainers = with maintainers; [ pierron globin lsix ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7134e930a694..2680f8b776e1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10791,6 +10791,7 @@ in gdb = callPackage ../development/tools/misc/gdb { guile = null; + readline = readline80; }; jhiccup = callPackage ../development/tools/java/jhiccup { }; From 023ef3d1a4d8f078e99fdb8214355f516f321c74 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 5 Mar 2020 08:53:05 +0000 Subject: [PATCH 26/29] libevdev: 1.8.0 -> 1.9.0 --- pkgs/development/libraries/libevdev/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix index 7a61437b5eee..1ee03db568b1 100644 --- a/pkgs/development/libraries/libevdev/default.nix +++ b/pkgs/development/libraries/libevdev/default.nix @@ -2,18 +2,18 @@ stdenv.mkDerivation rec { pname = "libevdev"; - version = "1.8.0"; + version = "1.9.0"; src = fetchurl { url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz"; - sha256 = "04a2klvii0in9ln8r85mk2cm73jq8ry2m3yzmf2z8xyjxzjcmlr0"; + sha256 = "17pb5375njb1r05xmk0r57a2j986ihglh2n5nqcylbag4rj8mqg7"; }; buildInputs = [ python3 ]; meta = with stdenv.lib; { description = "Wrapper library for evdev devices"; - homepage = http://www.freedesktop.org/software/libevdev/doc/latest/index.html; + homepage = "http://www.freedesktop.org/software/libevdev/doc/latest/index.html"; license = licenses.mit; platforms = platforms.linux; maintainers = [ maintainers.amorsillo ]; From a1f22cb2bfbf9c0fdd27dfda8bd4a41fae7d1ce4 Mon Sep 17 00:00:00 2001 From: Cole Mickens Date: Tue, 3 Mar 2020 18:30:39 -0800 Subject: [PATCH 27/29] libva: 2.5.0 -> 2.6.1 --- pkgs/development/libraries/libva/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix index 7aba75a1d235..0d00c9cb253d 100644 --- a/pkgs/development/libraries/libva/default.nix +++ b/pkgs/development/libraries/libva/default.nix @@ -6,14 +6,14 @@ stdenv.mkDerivation rec { name = "libva-${lib.optionalString minimal "minimal-"}${version}"; - version = "2.5.0"; + version = "2.6.1"; # update libva-utils and vaapiIntel as well src = fetchFromGitHub { owner = "01org"; repo = "libva"; rev = version; - sha256 = "0pys6blkh8ayxmxgfh7qrjzzcrzzn14z5d8q4a34ffqk90b6r93z"; + sha256 = "1x34kf38p5rf52bf54ljr9f7knnbilm7kbszqnfk3lzsqrfc7r2g"; }; outputs = [ "dev" "out" ]; From 43ccb035b910d73259717d76370ad4ee6d654014 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 3 Mar 2020 23:12:12 +0000 Subject: [PATCH 28/29] vim: 8.2.0227 -> 8.2.0343 --- pkgs/applications/editors/vim/common.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix index e5ee1da75801..03b7d57b49dc 100644 --- a/pkgs/applications/editors/vim/common.nix +++ b/pkgs/applications/editors/vim/common.nix @@ -1,12 +1,12 @@ { lib, fetchFromGitHub }: rec { - version = "8.2.0227"; + version = "8.2.0343"; src = fetchFromGitHub { owner = "vim"; repo = "vim"; rev = "v${version}"; - sha256 = "1yi7l2yd214iv6i8pr52m272mlzps5v3h6xdgr1770xfz4y1yc0h"; + sha256 = "063i52h8v7f87zamrw2ph057f0x2nzwf1s0izrm2psy41cyf4wa3"; }; enableParallelBuilding = true; @@ -22,7 +22,7 @@ rec { meta = with lib; { description = "The most popular clone of the VI editor"; - homepage = http://www.vim.org; + homepage = "http://www.vim.org"; license = licenses.vim; maintainers = with maintainers; [ lovek323 equirosa ]; platforms = platforms.unix; From 8d72e6bd5fa8fb40f7aafe955c2ec888231b846b Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sat, 29 Feb 2020 12:43:41 -0500 Subject: [PATCH 29/29] util-linux: use $bin output for umount MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This wasn’t updated when adding the bin output. --- pkgs/os-specific/linux/util-linux/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index c66b4cbab830..baaa90e431ba 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { substituteInPlace include/pathnames.h \ --replace "/bin/login" "${shadow}/bin/login" substituteInPlace sys-utils/eject.c \ - --replace "/bin/umount" "$out/bin/umount" + --replace "/bin/umount" "$bin/bin/umount" ''; # !!! It would be better to obtain the path to the mount helpers