mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-28 02:40:50 +00:00
Merge branch 'staging-20.09' into release-20.09
It's not that far from finishing on Hydra: https://hydra.nixos.org/eval/1674846 (It should finish soon, and we seem unlikely to require more urgent rebuilds for 20.09.)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
{ stdenv, fetchurl, nss, python3
|
||||
, blacklist ? []
|
||||
, includeEmail ? false
|
||||
|
||||
# Used for tests only
|
||||
, runCommand
|
||||
@@ -17,12 +18,18 @@ let
|
||||
sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
|
||||
};
|
||||
|
||||
version = "3.66";
|
||||
|
||||
underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "nss-cacert-${nss.version}";
|
||||
name = "nss-cacert-${version}";
|
||||
|
||||
src = nss.src;
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/nss-${version}.tar.gz";
|
||||
sha256 = "1jfdnh5l4k57r2vb07s06hqi7m2qzk0d9x25lsdsrw3cflx9x9w9";
|
||||
};
|
||||
|
||||
outputs = [ "out" "unbundled" ];
|
||||
|
||||
@@ -36,6 +43,10 @@ stdenv.mkDerivation {
|
||||
EOF
|
||||
|
||||
cat ${certdata2pem} > certdata2pem.py
|
||||
${optionalString includeEmail ''
|
||||
# Disable CAs used for mail signing
|
||||
substituteInPlace certdata2pem.py --replace \[\'CKA_TRUST_EMAIL_PROTECTION\'\] '''
|
||||
''}
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
@@ -59,6 +70,7 @@ stdenv.mkDerivation {
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
passthru.tests = {
|
||||
# Test that building this derivation with a blacklist works, and that UTF-8 is supported.
|
||||
blacklist-utf8 = let
|
||||
|
||||
42
pkgs/data/misc/cacert/update.sh
Executable file
42
pkgs/data/misc/cacert/update.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nix common-updater-scripts jq
|
||||
|
||||
# Build both the cacert package and an overriden version where we use the source attribute of NSS.
|
||||
# Cacert and NSS are both from the same upstream sources. They are decoupled as
|
||||
# the cacert output only cares about a few infrequently changing files in the
|
||||
# sources while the NSS source code changes frequently.
|
||||
#
|
||||
# By having cacert on a older source revision that produces the same
|
||||
# certificate output as a newer version we can avoid large amounts of
|
||||
# unnecessary rebuilds.
|
||||
#
|
||||
# As of this writing there are a few magnitudes more packages depending on
|
||||
# cacert than on nss.
|
||||
#
|
||||
# If the current nixpkgs revision contains the attribute `nss_latest` that will
|
||||
# be used instead of `nss`. This is done to help the stable branch maintenance
|
||||
# where (usually) after branch-off during the first Firefox upgrade that
|
||||
# requries a new NSS version that attribute is introduced.
|
||||
# By having this change in the unstable branch we can safely carry it from
|
||||
# release to release without requiring more backport churn on those doing the
|
||||
# stable maintenance.
|
||||
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR="$(dirname "$0")/../../../.."
|
||||
|
||||
|
||||
CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
|
||||
PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.overrideAttrs (_: { inherit (nss_pkg) src version; })).out")
|
||||
|
||||
# Check the hash of the etc subfolder
|
||||
# We can't check the entire output as that contains the nix-support folder
|
||||
# which contains the output path itself.
|
||||
CURRENT_HASH=$(nix-hash "$CURRENT_PATH/etc")
|
||||
PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc")
|
||||
|
||||
if [[ "$CURRENT_HASH" != "$PATCHED_HASH" ]]; then
|
||||
NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss.version" | jq -r .)
|
||||
update-source-version cacert "$NSS_VERSION"
|
||||
fi
|
||||
@@ -13,6 +13,19 @@ stdenv.mkDerivation rec {
|
||||
owner = pname;
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch { # https://github.com/lz4/lz4/pull/972
|
||||
name = "CVE-2021-3520.patch";
|
||||
url = "https://github.com/lz4/lz4/commit/8301a21773ef61656225e264f4f06ae14462bca7.patch";
|
||||
sha256 = "0r1cwpqdkdc8im0pf2r5jp7mwwn69xcw405rrk7rc0mpjcp5ydfk";
|
||||
})
|
||||
(fetchpatch { # https://github.com/lz4/lz4/pull/973
|
||||
name = "avoid-null-pointer-dereference.patch";
|
||||
url = "https://github.com/lz4/lz4/commit/29a6a1f4941e7243241fe00d6c13b749fd6b60c2.patch";
|
||||
sha256 = "0v5yl5hd3qrfm3xm7m06j4b21qwllb4cqkjn2az7x1vnzqgpf8y7";
|
||||
})
|
||||
];
|
||||
|
||||
# TODO(@Ericson2314): Separate binaries and libraries
|
||||
outputs = [ "bin" "out" "dev" ];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user