diff options
45 files changed, 1743 insertions, 198 deletions
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/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; 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"; }; - cargoPatches = [ ./cargo-lock.patch ]; - # Delete this on next update; see #79975 for details - legacyCargoFetcher = true; + # Upstreamed in https://github.com/tiffany352/rink-rs/pull/53 + cargoPatches = [ ./cargo-lock.patch ]; - 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/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/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/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 - - 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 - - if [ -d "${prefix:?}/share" ]; then - gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$prefix/share") - fi + # guard against running multiple times (e.g. due to propagation) + [ -z "$wrapGAppsHookHasRun" ] || return 0 + wrapGAppsHookHasRun=1 - if [ -d "$prefix/lib/gio/modules" ] && [ -n "$(ls -A "$prefix/lib/gio/modules")" ] ; then - gappsWrapperArgs+=(--prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules") - fi + if [[ -z "${dontWrapGApps:-}" ]]; then + targetDirsThatExist=() + targetDirsRealPath=() - 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) diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh index 07a003691d6b..b153687980a0 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 @@ -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 diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 4166fbb7ccf5..3cc0eecb1b08 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; }; @@ -119,9 +119,9 @@ in { major = "3"; minor = "9"; patch = "0"; - suffix = "a3"; + suffix = "a4"; }; - sha256 = "09l68jyfhhass3cqyqyp2cv3a3i86qs0x736isidmpbrbxsincva"; + sha256 = "0qzy0wlq0izxk8ii28gy70v138g6xnz9sgsxpyayls2j04l6b5vz"; inherit (darwin) configd; inherit passthruFun; }; 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/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; 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; 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 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"; 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 ]; 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; }; 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" ]; 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', + ) 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; 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 ]; 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" ]; 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/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"; }; 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; 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/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" 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 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 <nix/fetchurl.nix> { - 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 <nix/fetchurl.nix> { - 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 <nix/fetchurl.nix> { - 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 <nix/fetchurl.nix> { - 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 <nix/fetchurl.nix> { - 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 <nix/fetchurl.nix> { - 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"; }; } 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 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 ]; 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; 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 <look@my.amazin.horse> +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 <dkg@fifthhorseman.net> +--- + 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 <look@my.amazin.horse> +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 <dkg@fifthhorseman.net> +--- + 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 <look@my.amazin.horse> +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 <dkg@fifthhorseman.net> +--- + 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 <http://www.gnu.org/licenses/>. ++ ++(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----- diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5574d0cc76aa..f748b141f103 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10802,6 +10802,7 @@ in gdb = callPackage ../development/tools/misc/gdb { guile = null; + readline = readline80; }; jhiccup = callPackage ../development/tools/java/jhiccup { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 29fbf3cd8a14..1e3510d004b0 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 @@ -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 { }; |