0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

Merge #179844: staging-next 2022-07-01

This commit is contained in:
Vladimír Čunát 2022-07-08 09:31:25 +02:00
commit b39924fc77
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
77 changed files with 928 additions and 542 deletions

View file

@ -1,6 +1,6 @@
# Perl {#sec-language-perl} # Perl {#sec-language-perl}
## Running perl programs on the shell {#ssec-perl-running} ## Running Perl programs on the shell {#ssec-perl-running}
When executing a Perl script, it is possible you get an error such as `./myscript.pl: bad interpreter: /usr/bin/perl: no such file or directory`. This happens when the script expects Perl to be installed at `/usr/bin/perl`, which is not the case when using Perl from nixpkgs. You can fix the script by changing the first line to: When executing a Perl script, it is possible you get an error such as `./myscript.pl: bad interpreter: /usr/bin/perl: no such file or directory`. This happens when the script expects Perl to be installed at `/usr/bin/perl`, which is not the case when using Perl from nixpkgs. You can fix the script by changing the first line to:
@ -35,15 +35,16 @@ Perl packages from CPAN are defined in [pkgs/top-level/perl-packages.nix](https:
```nix ```nix
ClassC3 = buildPerlPackage rec { ClassC3 = buildPerlPackage rec {
name = "Class-C3-0.21"; pname = "Class-C3";
version = "0.21";
src = fetchurl { src = fetchurl {
url = "mirror://cpan/authors/id/F/FL/FLORA/${name}.tar.gz"; url = "mirror://cpan/authors/id/F/FL/FLORA/${pname}-${version}.tar.gz";
sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz"; sha256 = "1bl8z095y4js66pwxnm7s853pi9czala4sqc743fdlnk27kq94gz";
}; };
}; };
``` ```
Note the use of `mirror://cpan/`, and the `${name}` in the URL definition to ensure that the name attribute is consistent with the source that were actually downloading. Perl packages are made available in `all-packages.nix` through the variable `perlPackages`. For instance, if you have a package that needs `ClassC3`, you would typically write Note the use of `mirror://cpan/`, and the `pname` and `version` in the URL definition to ensure that the `pname` attribute is consistent with the source that were actually downloading. Perl packages are made available in `all-packages.nix` through the variable `perlPackages`. For instance, if you have a package that needs `ClassC3`, you would typically write
```nix ```nix
foo = import ../path/to/foo.nix { foo = import ../path/to/foo.nix {
@ -72,10 +73,11 @@ So what does `buildPerlPackage` do? It does the following:
{ buildPerlPackage, fetchurl, db }: { buildPerlPackage, fetchurl, db }:
buildPerlPackage rec { buildPerlPackage rec {
name = "BerkeleyDB-0.36"; pname = "BerkeleyDB";
version = "0.36";
src = fetchurl { src = fetchurl {
url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz"; url = "mirror://cpan/authors/id/P/PM/PMQS/${pname}-${version}.tar.gz";
sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1"; sha256 = "07xf50riarb60l1h6m2dqmql8q5dij619712fsgw7ach04d8g3z1";
}; };
@ -90,9 +92,10 @@ Dependencies on other Perl packages can be specified in the `buildInputs` and `p
```nix ```nix
ClassC3Componentised = buildPerlPackage rec { ClassC3Componentised = buildPerlPackage rec {
name = "Class-C3-Componentised-1.0004"; pname = "Class-C3-Componentised";
version = "1.0004";
src = fetchurl { src = fetchurl {
url = "mirror://cpan/authors/id/A/AS/ASH/${name}.tar.gz"; url = "mirror://cpan/authors/id/A/AS/ASH/${pname}-${version}.tar.gz";
sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1"; sha256 = "0xql73jkcdbq4q9m0b0rnca6nrlvf5hyzy8is0crdk65bynvs8q1";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -111,7 +114,7 @@ ImageExifTool = buildPerlPackage {
version = "11.50"; version = "11.50";
src = fetchurl { src = fetchurl {
url = "https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-11.50.tar.gz"; url = "https://www.sno.phy.queensu.ca/~phil/exiftool/${pname}-${version}.tar.gz";
sha256 = "0d8v48y94z8maxkmw1rv7v9m0jg2dc8xbp581njb6yhr7abwqdv3"; sha256 = "0d8v48y94z8maxkmw1rv7v9m0jg2dc8xbp581njb6yhr7abwqdv3";
}; };
@ -139,9 +142,10 @@ This program takes a Perl module name, looks it up on CPAN, fetches and unpacks
```ShellSession ```ShellSession
$ nix-generate-from-cpan XML::Simple $ nix-generate-from-cpan XML::Simple
XMLSimple = buildPerlPackage rec { XMLSimple = buildPerlPackage rec {
name = "XML-Simple-2.22"; pname = "XML-Simple";
version = "2.22";
src = fetchurl { src = fetchurl {
url = "mirror://cpan/authors/id/G/GR/GRANTM/${name}.tar.gz"; url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.22.tar.gz";
sha256 = "b9450ef22ea9644ae5d6ada086dc4300fa105be050a2030ebd4efd28c198eb49"; sha256 = "b9450ef22ea9644ae5d6ada086dc4300fa105be050a2030ebd4efd28c198eb49";
}; };
propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ]; propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ];

View file

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, kompose }: { lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, kompose, git }:
buildGoModule rec { buildGoModule rec {
pname = "kompose"; pname = "kompose";
@ -13,7 +13,7 @@ buildGoModule rec {
vendorSha256 = "sha256-OR5U2PnebO0a+lwU09Dveh0Yxk91cmSRorTxQIO5lHc="; vendorSha256 = "sha256-OR5U2PnebO0a+lwU09Dveh0Yxk91cmSRorTxQIO5lHc=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles git ];
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" ];

View file

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchFromGitHub }: { lib, buildGoModule, fetchFromGitHub, git }:
buildGoModule rec { buildGoModule rec {
pname = "gitbatch"; pname = "gitbatch";
@ -15,7 +15,15 @@ buildGoModule rec {
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" ];
checkFlags = [ "-short" ]; nativeBuildInputs = [
git # required by unit tests
];
preCheck = ''
HOME=$(mktemp -d)
# Disable tests requiring network access to gitlab.com
buildFlagsArray+=("-run" "[^(Test(Run|Start|(Fetch|Pull)With(Go|)Git))]")
'';
meta = with lib; { meta = with lib; {
description = "Running git UI commands"; description = "Running git UI commands";

View file

@ -20,7 +20,7 @@ let
blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist); blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings); extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
srcVersion = "3.77"; srcVersion = "3.80";
version = if nssOverride != null then nssOverride.version else srcVersion; version = if nssOverride != null then nssOverride.version else srcVersion;
meta = with lib; { meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html"; homepage = "https://curl.haxx.se/docs/caextract.html";
@ -35,7 +35,7 @@ let
src = if nssOverride != null then nssOverride.src else fetchurl { src = if nssOverride != null then nssOverride.src else fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz"; url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
sha256 = "1pfy33b51914sivqyaxdwfd930hzb77gm07z4f57hnyk5xddypl2"; sha256 = "sha256-wL8f0sfimmsCswliK6r8RD7skMiTS7FV2ku5iYh4S2o=";
}; };
dontBuild = true; dontBuild = true;

View file

@ -53,11 +53,11 @@ with lib;
with builtins; with builtins;
let majorVersion = "10"; let majorVersion = "10";
version = "${majorVersion}.3.0"; version = "${majorVersion}.4.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform; inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches = [ ./gcc10-asan-glibc-2.34.patch ] patches = [ ]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch ++ optional noSysDirs ../no-sys-dirs.patch
++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch
@ -73,8 +73,6 @@ let majorVersion = "10";
# Obtain latest patch with ../update-mcfgthread-patches.sh # Obtain latest patch with ../update-mcfgthread-patches.sh
++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
++ [ ../libsanitizer-no-cyclades.patch ]
++ optional (buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch { ++ optional (buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch {
url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch"; url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch";
sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA="; sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA=";
@ -95,7 +93,7 @@ stdenv.mkDerivation ({
src = fetchurl { src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz"; url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "0i6378ig6h397zkhd7m4ccwjx5alvzrf2hm27p1pzwjhlv0h9x34"; sha256 = "1wg4xdizkksmwi66mvv2v4pk3ja8x64m7v9gzhykzd3wrmdpsaf9";
}; };
inherit patches; inherit patches;

View file

@ -1,70 +0,0 @@
From 950bac27d63c1c2ac3a6ed867692d6a13f21feb3 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Sat, 17 Apr 2021 11:27:14 +0200
Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
glibc 2.34 and later, so
static const uptr kAltStackSize = SIGSTKSZ * 4;
needs dynamic initialization, but is used by a function called indirectly
from .preinit_array and therefore before the variable is constructed.
This results in using 0 size instead and all asan instrumented programs
die with:
==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
Here is a cherry-pick from upstream to fix this.
2021-04-17 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/100114
* sanitizer_common/sanitizer_posix_libcdep.cpp: Cherry-pick
llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
(cherry picked from commit d9f462fb372fb02da032cefd6b091d7582c425ae)
---
.../sanitizer_common/sanitizer_posix_libcdep.cpp | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
index 304b3a01a08..ac88fbe074e 100644
--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) {
#if !SANITIZER_GO
// TODO(glider): different tools may require different altstack size.
-static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough.
+static uptr GetAltStackSize() {
+ // SIGSTKSZ is not enough.
+ static const uptr kAltStackSize = SIGSTKSZ * 4;
+ return kAltStackSize;
+}
void SetAlternateSignalStack() {
stack_t altstack, oldstack;
@@ -180,10 +184,9 @@ void SetAlternateSignalStack() {
// TODO(glider): the mapped stack should have the MAP_STACK flag in the
// future. It is not required by man 2 sigaltstack now (they're using
// malloc()).
- void* base = MmapOrDie(kAltStackSize, __func__);
- altstack.ss_sp = (char*) base;
+ altstack.ss_size = GetAltStackSize();
+ altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
altstack.ss_flags = 0;
- altstack.ss_size = kAltStackSize;
CHECK_EQ(0, sigaltstack(&altstack, nullptr));
}
@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() {
stack_t altstack, oldstack;
altstack.ss_sp = nullptr;
altstack.ss_flags = SS_DISABLE;
- altstack.ss_size = kAltStackSize; // Some sane value required on Darwin.
+ altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin.
CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
}
--
2.27.0

View file

@ -12,7 +12,8 @@ assert stdenv.targetPlatform == stdenv.hostPlatform;
let let
useLLVM = !stdenv.targetPlatform.isx86; useLLVM = !stdenv.targetPlatform.isx86;
useNcurses6 = stdenv.hostPlatform.system == "x86_64-linux"; useNcurses6 = stdenv.hostPlatform.system == "x86_64-linux"
|| (with stdenv.hostPlatform; isPower64 && isLittleEndian);
ourNcurses = if useNcurses6 then ncurses6 else ncurses5; ourNcurses = if useNcurses6 then ncurses6 else ncurses5;
@ -73,6 +74,10 @@ stdenv.mkDerivation rec {
url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz"; url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
sha256 = "0s9188vhhgf23q3rjarwhbr524z6h2qga5xaaa2pma03sfqvvhfz"; sha256 = "0s9188vhhgf23q3rjarwhbr524z6h2qga5xaaa2pma03sfqvvhfz";
}; };
powerpc64le-linux = {
url = "https://downloads.haskell.org/~ghc/${version}/ghc-${version}-powerpc64le-fedora29-linux.tar.xz";
sha256 = "sha256-tWSsJdPVrCiqDyIKzpBt5DaXb3b6j951tCya584kWs4=";
};
}.${stdenv.hostPlatform.system} }.${stdenv.hostPlatform.system}
or (throw "cannot bootstrap GHC on this platform")); or (throw "cannot bootstrap GHC on this platform"));
@ -211,7 +216,7 @@ stdenv.mkDerivation rec {
meta = rec { meta = rec {
license = lib.licenses.bsd3; license = lib.licenses.bsd3;
platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"]; platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "powerpc64le-linux" ];
# build segfaults, use ghc8102Binary which has proper musl support instead # build segfaults, use ghc8102Binary which has proper musl support instead
broken = stdenv.hostPlatform.isMusl; broken = stdenv.hostPlatform.isMusl;
maintainers = with lib.maintainers; [ maintainers = with lib.maintainers; [

View file

@ -178,12 +178,22 @@ let
exclude+='\)' exclude+='\)'
buildGoDir() { buildGoDir() {
local d; local cmd; local cmd="$1" dir="$2"
cmd="$1"
d="$2"
. $TMPDIR/buildFlagsArray . $TMPDIR/buildFlagsArray
declare -a flags
flags+=($buildFlags "''${buildFlagsArray[@]}")
flags+=(''${tags:+-tags=${lib.concatStringsSep "," tags}})
flags+=(''${ldflags:+-ldflags="$ldflags"})
flags+=("-v" "-p" "$NIX_BUILD_CORES")
if [ "$cmd" = "test" ]; then
flags+=($checkFlags)
fi
local OUT local OUT
if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then
if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
echo "$OUT" >&2 echo "$OUT" >&2
return 1 return 1
@ -241,7 +251,7 @@ let
runHook preCheck runHook preCheck
for pkg in $(getGoDirs test); do for pkg in $(getGoDirs test); do
buildGoDir test $checkFlags "$pkg" buildGoDir test "$pkg"
done done
runHook postCheck runHook postCheck

View file

@ -160,12 +160,22 @@ let
exclude+='\)' exclude+='\)'
buildGoDir() { buildGoDir() {
local d; local cmd; local cmd="$1" dir="$2"
cmd="$1"
d="$2"
. $TMPDIR/buildFlagsArray . $TMPDIR/buildFlagsArray
declare -a flags
flags+=($buildFlags "''${buildFlagsArray[@]}")
flags+=(''${tags:+-tags=${lib.concatStringsSep "," tags}})
flags+=(''${ldflags:+-ldflags="$ldflags"})
flags+=("-v" "-p" "$NIX_BUILD_CORES")
if [ "$cmd" = "test" ]; then
flags+=($checkFlags)
fi
local OUT local OUT
if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then
if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
echo "$OUT" >&2 echo "$OUT" >&2
return 1 return 1
@ -225,7 +235,7 @@ let
runHook preCheck runHook preCheck
for pkg in $(getGoDirs test); do for pkg in $(getGoDirs test); do
buildGoDir test $checkFlags "$pkg" buildGoDir test "$pkg"
done done
runHook postCheck runHook postCheck

View file

@ -16,13 +16,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libopenmpt"; pname = "libopenmpt";
version = "0.6.3"; version = "0.6.4";
outputs = [ "out" "dev" "bin" ]; outputs = [ "out" "dev" "bin" ];
src = fetchurl { src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz"; url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
sha256 = "pBCv63zVlwsWuabOfazPSVsaXpEhqdZELeDAKP1Uols="; sha256 = "4J+4RcMpJwCnrBPDsx1mns072+vL/hMo66I3bOvkAWI=";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -45,11 +45,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "glib"; pname = "glib";
version = "2.72.2"; version = "2.72.3";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "eNWZoTPbp/4gNt+o24+2Exq5ZCeD/JV4sHogmVJS0t4="; sha256 = "Sjmi9iS4US1QDVhAFz7af6hfUcEJBS6ugGrOzoXTRfA=";
}; };
patches = optionals stdenv.isDarwin [ patches = optionals stdenv.isDarwin [

View file

@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
sha256 = "tztkOg1Wl9HzltdDFEjoht2AVmh4lXjj4aKCd8lShDU="; sha256 = "tztkOg1Wl9HzltdDFEjoht2AVmh4lXjj4aKCd8lShDU=";
}; };
patches = [
# Pull fix pending upstream inclusion for parallel builds
# https://sourceforge.net/p/gnu-efi/patches/84/
(fetchurl {
name = "parallel-build.patch";
url = "https://sourceforge.net/p/gnu-efi/patches/84/attachment/0001-lib-Makefile-add-.o-file-dependency-on-libsubdirs-ta.patch";
sha256 = "sha256-+2UwV2lopdB/tazib1BLzO1E3GgB1L8dZsSQKWVoLwA=";
})
];
buildInputs = [ pciutils ]; buildInputs = [ pciutils ];
hardeningDisable = [ "stackprotector" ]; hardeningDisable = [ "stackprotector" ];

View file

@ -47,6 +47,9 @@ stdenv.mkDerivation rec {
./python-310-detection-without-distutils.patch ./python-310-detection-without-distutils.patch
# Find correct version string for Python >= 3.10, https://dev.gnupg.org/D546 # Find correct version string for Python >= 3.10, https://dev.gnupg.org/D546
./python-find-version-string-above-310.patch ./python-find-version-string-above-310.patch
# Fix a test after disallowing compressed signatures in gpg (PR #180336)
./test_t-verify_double-plaintext.patch
# Disable python tests on Darwin as they use gpg (see configureFlags below) # Disable python tests on Darwin as they use gpg (see configureFlags below)
] ++ lib.optional stdenv.isDarwin ./disable-python-tests.patch ] ++ lib.optional stdenv.isDarwin ./disable-python-tests.patch
# Fix _AC_UNDECLARED_WARNING for autoconf>=2.70 # Fix _AC_UNDECLARED_WARNING for autoconf>=2.70

View file

@ -0,0 +1,31 @@
--- a/tests/gpg/t-verify.c
+++ b/tests/gpg/t-verify.c
@@ -304,7 +304,7 @@
err = gpgme_data_new (&text);
fail_if_err (err);
err = gpgme_op_verify (ctx, sig, NULL, text);
- if (gpgme_err_code (err) != GPG_ERR_BAD_DATA)
+ if (gpgme_err_code (err) == GPG_ERR_NO_ERROR)
{
fprintf (stderr, "%s:%i: Double plaintext message not detected\n",
PGM, __LINE__);
--- a/lang/python/tests/t-verify.py
+++ b/lang/python/tests/t-verify.py
@@ -142,7 +142,7 @@
c.op_verify(sig, None, text)
except Exception as e:
assert type(e) == gpg.errors.GPGMEError
- assert e.getcode() == gpg.errors.BAD_DATA
+ assert e.getcode() != gpg.errors.NO_ERROR
else:
assert False, "Expected an error but got none."
@@ -178,7 +178,7 @@
try:
c.verify(double_plaintext_sig)
except gpg.errors.GPGMEError as e:
- assert e.getcode() == gpg.errors.BAD_DATA
+ assert e.getcode() != gpg.errors.NO_ERROR
else:
assert False, "Expected an error but got none."

View file

@ -1,15 +1,15 @@
{ lib, stdenv, fetchzip, yasm, perl, cmake, pkg-config, python3 { lib, stdenv, fetchzip, yasm, perl, cmake, pkg-config, python3
, enableButteraugli ? false, libjxl # Broken , enableButteraugli ? true, libjxl
, enableVmaf ? true, libvmaf , enableVmaf ? true, libvmaf
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libaom"; pname = "libaom";
version = "3.3.0"; version = "3.4.0";
src = fetchzip { src = fetchzip {
url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz"; url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz";
sha256 = "sha256-g6QkKLrk+SH1s5fRmseAQMmM6y4QwmKmVDPxdbqGmwg="; sha256 = "sha256-NgzpVxQmsgOPzKkGpJIJrLiNQcruhpEoCi/CYJx5b3A=";
stripRoot = false; stripRoot = false;
}; };

View file

@ -48,6 +48,17 @@ stdenv.mkDerivation rec {
url = "https://github.com/libjxl/libjxl/commit/204f87a5e4d684544b13900109abf040dc0b402b.patch"; url = "https://github.com/libjxl/libjxl/commit/204f87a5e4d684544b13900109abf040dc0b402b.patch";
sha256 = "sha256-DoAaYWLmQ+R9GZbHMTYGe0gBL9ZesgtB+2WhmbARna8="; sha256 = "sha256-DoAaYWLmQ+R9GZbHMTYGe0gBL9ZesgtB+2WhmbARna8=";
}) })
# fix build with asciidoc wrapped in shell script
(fetchpatch {
url = "https://github.com/libjxl/libjxl/commit/b8ec58c58c6281987f42ebec892f513824c0cc0e.patch";
hash = "sha256-g8U+YVhLfgSHJ+PWJgvVOI66+FElJSC8IgSRodNnsMw=";
})
(fetchpatch {
url = "https://github.com/libjxl/libjxl/commit/ca8e276aacf63a752346a6a44ba673b0af993237.patch";
excludes = [ "AUTHORS" ];
hash = "sha256-9VXy1LdJ0JhYbCGPNMySpnGLBxUrr8BYzE+oU3LnUGw=";
})
]; ];
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -21,13 +21,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libsoup"; pname = "libsoup";
version = "3.0.6"; version = "3.0.7";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-tF1Z+EC5rPm7Rf1FhU4+9nL1fjq5V0AcOtjXUCrCPaY="; sha256 = "sha256-69+QzzWZwRrLtoGKnZ4/ydLGjlbrgpuTlilyaD4b98g=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -4,12 +4,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "liburing"; pname = "liburing";
version = "2.1"; # remove patch when updating version = "2.2";
src = fetchgit { src = fetchgit {
url = "http://git.kernel.dk/${pname}"; url = "http://git.kernel.dk/${pname}";
rev = "liburing-${version}"; rev = "liburing-${version}";
sha256 = "sha256-7wSpKqjIdQeOdsQu4xN3kFHV49n6qQ3xVbjUcY1tmas="; sha256 = "sha256-M/jfxZ+5DmFvlAt8sbXrjBTPf2gLd9UyTNymtjD+55g";
}; };
separateDebugInfo = true; separateDebugInfo = true;
@ -43,15 +43,6 @@ stdenv.mkDerivation rec {
cp ./examples/ucontext-cp $bin/bin/io_uring-ucontext-cp cp ./examples/ucontext-cp $bin/bin/io_uring-ucontext-cp
''; '';
# fix for compilation on 32-bit ARM, merged by upstream but not released; remove when
# upstream releases an update
patches = lib.optional stdenv.isAarch32 [
(fetchpatch {
url = "https://github.com/axboe/liburing/commit/e75a6cfa085fc9b5dbf5140fc1efb5a07b6b829e.diff";
sha256 = "sha256-qQEQXYm5mkws2klLxwuuoPSPRkpP1s6tuylAAEp7+9E=";
})
];
meta = with lib; { meta = with lib; {
description = "Userspace library for the Linux io_uring API"; description = "Userspace library for the Linux io_uring API";
homepage = "https://git.kernel.dk/cgit/liburing/"; homepage = "https://git.kernel.dk/cgit/liburing/";

View file

@ -6,16 +6,20 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pcre2"; pname = "pcre2";
version = "10.40"; version = "10.40";
src = fetchurl { src = fetchurl {
url = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-${version}/pcre2-${version}.tar.bz2"; url = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-${version}/pcre2-${version}.tar.bz2";
hash = "sha256-FOS4PEeDkz3BfpZDGOYyT3yuG8ddjzx5vGlp8AwVnWg="; hash = "sha256-FOS4PEeDkz3BfpZDGOYyT3yuG8ddjzx5vGlp8AwVnWg=";
}; };
# Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51
configureFlags = [ configureFlags = [
"--enable-pcre2-16" "--enable-pcre2-16"
"--enable-pcre2-32" "--enable-pcre2-32"
] ++ lib.optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto"; # only enable jit on supported platforms which excludes Apple Silicon, see https://github.com/zherczeg/sljit/issues/51
"--enable-jit=auto"
# fix pcre jit in systemd units that set MemoryDenyWriteExecute=true like gitea
"--enable-jit-sealloc"
];
outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ]; outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
@ -24,7 +28,7 @@ stdenv.mkDerivation rec {
''; '';
meta = with lib; { meta = with lib; {
homepage = "http://www.pcre.org/"; homepage = "https://www.pcre.org/";
description = "Perl Compatible Regular Expressions"; description = "Perl Compatible Regular Expressions";
license = licenses.bsd3; license = licenses.bsd3;
maintainers = with maintainers; [ ttuegel ]; maintainers = with maintainers; [ ttuegel ];

View file

@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
url = "https://github.com/OSGeo/PROJ/commit/6f1a3c4648bf06862dca0b3725cbb3b7ee0284e3.diff"; url = "https://github.com/OSGeo/PROJ/commit/6f1a3c4648bf06862dca0b3725cbb3b7ee0284e3.diff";
sha256 = "0gapny0a9c3r0x9szjgn86sspjrrf4vwbija77b17w6ci5cq4pdf"; sha256 = "0gapny0a9c3r0x9szjgn86sspjrrf4vwbija77b17w6ci5cq4pdf";
}) })
./tests-sqlite-3.39.patch
]; ];
postPatch = lib.optionalString (version == "7.2.1") '' postPatch = lib.optionalString (version == "7.2.1") ''

View file

@ -0,0 +1,13 @@
Drop tests that time out with newest sqlite.
https://github.com/OSGeo/PROJ/issues/3254
--- a/test/cli/CMakeLists.txt
+++ b/test/cli/CMakeLists.txt
@@ -16 +15,0 @@
-proj_add_test_script_sh("testprojinfo" PROJINFO_BIN)
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -144,3 +143,0 @@
-add_test(NAME proj_test_cpp_api COMMAND proj_test_cpp_api)
-set_property(TEST proj_test_cpp_api
- PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})

View file

@ -15,13 +15,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "re2"; pname = "re2";
version = "2022-04-01"; version = "2022-06-01";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "re2"; repo = "re2";
rev = version; rev = version;
sha256 = "sha256-ywmXIAyVWYMKBOsAndcq7dFYpn9ZgNz5YWTPjylXxsk="; sha256 = "sha256-UontAjOXpnPcOgoFHjf+1WSbCR7h58/U7nn4meT200Y=";
}; };
preConfigure = '' preConfigure = ''
@ -33,11 +33,6 @@ stdenv.mkDerivation rec {
buildFlags = lib.optionals stdenv.hostPlatform.isStatic [ "static" ]; buildFlags = lib.optionals stdenv.hostPlatform.isStatic [ "static" ];
enableParallelBuilding = true; enableParallelBuilding = true;
# Broken when shared/static are tested in parallel:
# cp: cannot create regular file 'obj/testinstall.cc': File exists
# make: *** [Makefile:334: static-testinstall] Error 1
# Will be fixed by https://code-review.googlesource.com/c/re2/+/59830
enableParallelChecking = false;
preCheck = "patchShebangs runtests"; preCheck = "patchShebangs runtests";
doCheck = true; doCheck = true;

View file

@ -12,13 +12,13 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sqlite${optionalString interactive "-interactive"}"; pname = "sqlite${optionalString interactive "-interactive"}";
version = "3.38.5"; version = "3.39.0";
# nixpkgs-update: no auto update # nixpkgs-update: no auto update
# NB! Make sure to update ./tools.nix src (in the same directory). # NB! Make sure to update ./tools.nix src (in the same directory).
src = fetchurl { src = fetchurl {
url = "https://sqlite.org/2022/sqlite-autoconf-${archiveVersion version}.tar.gz"; url = "https://sqlite.org/2022/sqlite-autoconf-${archiveVersion version}.tar.gz";
sha256 = "sha256-WvB96YK6ZY/ZGgMXDJRfmclx9pVbx53zJmVENz45hpw="; sha256 = "sha256-6QvK723VgT/N7k6Gf2tl88m/0K7A8QF/nzu84eTtCeI=";
}; };
outputs = [ "bin" "dev" "out" ]; outputs = [ "bin" "dev" "out" ];

View file

@ -4,12 +4,12 @@ let
archiveVersion = import ./archive-version.nix lib; archiveVersion = import ./archive-version.nix lib;
mkTool = { pname, makeTarget, description, homepage, mainProgram }: stdenv.mkDerivation rec { mkTool = { pname, makeTarget, description, homepage, mainProgram }: stdenv.mkDerivation rec {
inherit pname; inherit pname;
version = "3.38.5"; version = "3.39.0";
# nixpkgs-update: no auto update # nixpkgs-update: no auto update
src = assert version == sqlite.version; fetchurl { src = assert version == sqlite.version; fetchurl {
url = "https://sqlite.org/2022/sqlite-src-${archiveVersion version}.zip"; url = "https://sqlite.org/2022/sqlite-src-${archiveVersion version}.zip";
sha256 = "sha256-ZQO7WeOeyGYwg2lpQOyBjNVVUZbmylQ9QClEDMp7ANk="; sha256 = "sha256-s1hfN90Qbbs9RsjBei0nX5pLh9+MRQm9LWpbQAMkJuY=";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];

View file

@ -38,6 +38,14 @@ stdenv.mkDerivation rec {
sha256 = "Wtb1vJd4Hr9V7NaUfNSuf/QZJRZYDRC9g4Dx3UcZbtI="; sha256 = "Wtb1vJd4Hr9V7NaUfNSuf/QZJRZYDRC9g4Dx3UcZbtI=";
}; };
patches = [
./fix-test-order.patch
];
postPatch = ''
patchShebangs utils/data-generators/cc/generate
'';
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
@ -78,10 +86,6 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
postPatch = ''
patchShebangs utils/data-generators/cc/generate
'';
preCheck = '' preCheck = ''
# (tracker-store:6194): Tracker-CRITICAL **: 09:34:07.722: Cannot initialize database: Could not open sqlite3 database:'/homeless-shelter/.cache/tracker/meta.db': unable to open database file # (tracker-store:6194): Tracker-CRITICAL **: 09:34:07.722: Cannot initialize database: Could not open sqlite3 database:'/homeless-shelter/.cache/tracker/meta.db': unable to open database file
export HOME=$(mktemp -d) export HOME=$(mktemp -d)

View file

@ -0,0 +1,9 @@
diff --git a/tests/libtracker-data/algebra/filter-scope-1.rq b/tests/libtracker-data/algebra/filter-scope-1.rq
index 7ee5a24ad..a8cd89ca9 100644
--- a/tests/libtracker-data/algebra/filter-scope-1.rq
+++ b/tests/libtracker-data/algebra/filter-scope-1.rq
@@ -7,3 +7,4 @@ SELECT ?v ?w ?v2
OPTIONAL { :x :p ?v2 FILTER(?v = 1) }
}
}
+ORDER BY ?v ?w ?v2

View file

@ -27,27 +27,16 @@
, ... , ...
}@attrs: }@attrs:
assert attrs?pname -> attrs?version; lib.throwIf (attrs ? name) "buildPerlPackage: `name` (\"${attrs.name}\") is deprecated, use `pname` and `version` instead"
assert attrs?pname -> !(attrs?name);
lib.warnIf (attrs ? name) "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
(let (let
defaultMeta = { defaultMeta = {
homepage = "https://metacpan.org/release/${lib.getName attrs}"; # TODO: phase-out `attrs.name` homepage = "https://metacpan.org/dist/${attrs.pname}";
mainProgram = attrs.pname or (builtins.parseDrvName attrs.name).name; inherit (perl.meta) platforms;
platforms = perl.meta.platforms;
}; };
cleanedAttrs = builtins.removeAttrs attrs [ package = stdenv.mkDerivation (attrs // {
"meta" "builder" "version" "pname" "fullperl" name = "perl${perl.version}-${attrs.pname}-${attrs.version}";
"buildInputs" "nativeBuildInputs" "buildInputs"
"PERL_AUTOINSTALL" "AUTOMATED_TESTING" "PERL_USE_UNSAFE_INC"
];
package = stdenv.mkDerivation ({
pname = "perl${perl.version}-${lib.getName attrs}"; # TODO: phase-out `attrs.name`
version = lib.getVersion attrs; # TODO: phase-out `attrs.name`
builder = ./builder.sh; builder = ./builder.sh;
@ -60,6 +49,6 @@ lib.warnIf (attrs ? name) "builtPerlPackage: `name' (\"${attrs.name}\") is depre
inherit PERL_AUTOINSTALL AUTOMATED_TESTING PERL_USE_UNSAFE_INC; inherit PERL_AUTOINSTALL AUTOMATED_TESTING PERL_USE_UNSAFE_INC;
meta = defaultMeta // (attrs.meta or { }); meta = defaultMeta // (attrs.meta or { });
} // cleanedAttrs); });
in toPerlModule package) in toPerlModule package)

View file

@ -4,7 +4,6 @@
, fetchPypi , fetchPypi
, fetchpatch , fetchpatch
, python , python
, glibcLocales
, pkg-config , pkg-config
, gdb , gdb
, numpy , numpy
@ -24,12 +23,13 @@ let
; ;
in buildPythonPackage rec { in buildPythonPackage rec {
pname = "Cython"; pname = "cython";
version = "0.29.28"; version = "0.29.30";
src = fetchPypi { src = fetchPypi {
inherit pname version; pname = "Cython";
sha256 = "sha256-1vrCNCgCww5RQmgo/ghP9N6xszhzZ8+Yl2uy5ktvjkU="; inherit version;
sha256 = "sha256-IjW2Laj+b6i5lCLI5YPy+5XhQ4Z9M3tcdeS5oahl+eM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -40,7 +40,6 @@ in buildPythonPackage rec {
gdb numpy ncurses gdb numpy ncurses
]; ];
buildInputs = [ glibcLocales ];
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";
patches = [ patches = [

View file

@ -2,12 +2,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "babel"; pname = "babel";
version = "2.10.1"; version = "2.10.3";
src = fetchPypi { src = fetchPypi {
pname = "Babel"; pname = "Babel";
inherit version; inherit version;
sha256 = "sha256-mK6soIYTPvs+HiqtA5aYdJDIQlkp3bz+BVAYT9xUzRM="; sha256 = "sha256-dhRVNxHul0kPcyEm3Ad/jQrghOvGqW4j2xSCr6vbLFE=";
}; };
propagatedBuildInputs = [ pytz ]; propagatedBuildInputs = [ pytz ];

View file

@ -7,7 +7,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "certifi"; pname = "certifi";
version = "2022.05.18.1"; version = "2022.06.15";
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
@ -15,7 +15,7 @@ buildPythonPackage rec {
owner = pname; owner = pname;
repo = "python-certifi"; repo = "python-certifi";
rev = version; rev = version;
sha256 = "sha256-uDNVzKcT45mz0zXBwPkttKV21fEcgbRamE3+QutNLjA="; sha256 = "sha256-CKO8wF5FMGLIZbTd7YrKE9OWV9MbfQ2+BMc5IPk1FFU=";
}; };
checkInputs = [ checkInputs = [

View file

@ -4,6 +4,7 @@
, fetchPypi , fetchPypi
, pytestCheckHook , pytestCheckHook
, cachetools , cachetools
, cryptography
, flask , flask
, freezegun , freezegun
, mock , mock
@ -32,6 +33,7 @@ buildPythonPackage rec {
]; ];
checkInputs = [ checkInputs = [
cryptography
flask flask
freezegun freezegun
mock mock
@ -46,21 +48,11 @@ buildPythonPackage rec {
"google.oauth2" "google.oauth2"
]; ];
disabledTests = lib.optionals stdenv.isDarwin [ disabledTestPaths = [
"test_request_with_timeout_success" # Disable tests related to pyopenssl
"test_request_with_timeout_failure" "tests/transport/test__mtls_helper.py"
"test_request_headers" "tests/transport/test_requests.py"
"test_request_error" "tests/transport/test_urllib3.py"
"test_request_basic"
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
# E MemoryError: Cannot allocate write+execute memory for ffi.callback().
# You might be running on a system that prevents this.
# For more information, see https://cffi.readthedocs.io/en/latest/using.html#callbacks
"test_configure_mtls_channel_with_callback"
"test_configure_mtls_channel_with_metadata"
"TestDecryptPrivateKey"
"TestMakeMutualTlsHttp"
"TestMutualTlsAdapter"
]; ];
meta = with lib; { meta = with lib; {

View file

@ -14,14 +14,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "jsonschema"; pname = "jsonschema";
version = "4.6.0"; version = "4.6.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-nWOXukpsC/AwBzYFf2SePhLsvAfT6BoNrLct5OmAGVc="; sha256 = "sha256-7CgC5qN1F/CdR9m6EHlHWJrh0l/1V7kl2DoyH8KqXTs=";
}; };
postPatch = '' postPatch = ''

View file

@ -8,11 +8,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycares"; pname = "pycares";
version = "4.1.2"; version = "4.2.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-A0kL4Oe1GgyAc/h3vsNH7/MQA/ZPV9lRjUGdk2lFKDc="; sha256 = "sha256-c1tPdf0PWVxOkYTaGM2Hc39GvIGmTqQfTtzitraNRtI=";
}; };
buildInputs = [ buildInputs = [

View file

@ -11,14 +11,14 @@ let
in in
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycryptodome"; pname = "pycryptodome";
version = "3.14.1"; version = "3.15.0";
format = "setuptools"; format = "setuptools";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Legrandin"; owner = "Legrandin";
repo = "pycryptodome"; repo = "pycryptodome";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-0GjpKNyALe2Q1R3dEjeAEn6E8hxYDic/vbN1YkVaUfs="; hash = "sha256-SPRoAfwP1MFlVzZsVWmXDWUY5Yje7eg7d+9zJhZNXrw=";
}; };
postPatch = '' postPatch = ''

View file

@ -1,6 +1,6 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchpatch , pythonOlder
, fetchPypi , fetchPypi
, pytest , pytest
, pytest-asyncio , pytest-asyncio
@ -10,24 +10,20 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pytest-mock"; pname = "pytest-mock";
version = "3.7.0"; version = "3.8.1";
disabled = pythonOlder "3.7";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-URK9ksyfGG7pbhqS78hJaepJSTnDrq05xQ9CHEzGlTQ="; hash = "sha256-LG11bV07+Y4ugHl6lZyn+B9Hnn0fX1cWEbD91tF0UkA=";
}; };
patches = [
(fetchpatch {
# pytest7 compatbilitya
url = "https://github.com/pytest-dev/pytest-mock/commit/0577f1ad051fb8d0da94ea22dcb02346d74064b2.patch";
hash = "sha256-eim4v7U8Mjigr462bXI0pKH/M0ANBzSRc0lT4RpbZ0w=";
})
];
nativeBuildInputs = [ setuptools-scm ]; nativeBuildInputs = [ setuptools-scm ];
propagatedBuildInputs = [ buildInputs = [
pytest pytest
]; ];
@ -36,18 +32,13 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
]; ];
disabledTests = [
# output of pytest has changed
"test_used_with_"
"test_plain_stopall"
];
pythonImportsCheck = [ "pytest_mock" ]; pythonImportsCheck = [ "pytest_mock" ];
meta = with lib; { meta = with lib; {
description = "Thin-wrapper around the mock package for easier use with pytest"; description = "Thin wrapper around the mock package for easier use with pytest";
homepage = "https://github.com/pytest-dev/pytest-mock"; homepage = "https://github.com/pytest-dev/pytest-mock";
license = with licenses; [ mit ]; changelog = "https://github.com/pytest-dev/pytest-mock/blob/v${version}/CHANGELOG.rst";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ]; maintainers = with maintainers; [ dotlambda ];
}; };
} }

View file

@ -1,64 +1,79 @@
From 208fe98f10c580a5a2fb6a8cfdd56de109073925 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Sat, 17 Jul 2021 18:36:27 +0200
Subject: [PATCH] hardcode path to libgomp
---
omp/__init__.py | 40 ++++------------------------------------
1 file changed, 4 insertions(+), 36 deletions(-)
diff --git a/omp/__init__.py b/omp/__init__.py diff --git a/omp/__init__.py b/omp/__init__.py
index bddae3063..9ba3678d8 100644 index 3801d1c8c..a93a74d6f 100644
--- a/omp/__init__.py --- a/omp/__init__.py
+++ b/omp/__init__.py +++ b/omp/__init__.py
@@ -69,43 +69,11 @@ class OpenMP(object): @@ -48,72 +48,8 @@ class OpenMP(object):
return ['omp', 'gomp', 'iomp5']
def init_not_msvc(self): def init_not_msvc(self):
""" Find OpenMP library and try to load if using ctype interface. """ - """ Find OpenMP library and try to load if using ctype interface. """
- # find_library() does not search automatically LD_LIBRARY_PATH - # find_library() does not automatically search LD_LIBRARY_PATH
- paths = os.environ.get('LD_LIBRARY_PATH', '').split(':') - # until Python 3.6+, so we explicitly add it.
+ libgomp_path = "@gomp@" - # LD_LIBRARY_PATH is used on Linux, while macOS uses DYLD_LIBRARY_PATH
- # and DYLD_FALLBACK_LIBRARY_PATH.
- for libomp_name in self.get_libomp_names(): - env_vars = []
- if cxx is None or sys.platform == 'win32': - if sys.platform == 'darwin':
- # Note: Clang supports -print-file-name, but not yet for - env_vars = ['DYLD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH']
- # clang-cl as of v12.0.0 (April '21)
- continue
-
- cmd = [cxx, '-print-file-name=' + libomp_name]
- # the subprocess can fail in various ways in that case just give up
- try:
- path = os.path.dirname(check_output(cmd).decode().strip())
- if path:
- paths.append(path)
- except (OSError, CalledProcessError):
- pass
-
- # Try to load find libgomp shared library using loader search dirs
- libgomp_path = find_library("gomp")
-
- # Try to use custom paths if lookup failed
- for path in paths:
- if libgomp_path:
- break
- path = path.strip()
- if os.path.isdir(path):
- libgomp_path = find_library(os.path.join(str(path), "libgomp"))
-
- if not libgomp_path:
- raise ImportError("I can't find a shared library for libgomp,"
- " you may need to install it or adjust the "
- "LD_LIBRARY_PATH environment variable.")
- else: - else:
- # Load the library (shouldn't fail with an absolute path right?) - env_vars = ['LD_LIBRARY_PATH']
- self.libomp = ctypes.CDLL(libgomp_path) -
- self.version = 45 - paths = []
+ # Load the library (shouldn't fail with an absolute path right?) - for env_var in env_vars:
+ self.libomp = ctypes.CDLL(libgomp_path) - env_paths = os.environ.get(env_var, '')
- if env_paths:
- paths.extend(env_paths.split(os.pathsep))
-
-
- libomp_names = self.get_libomp_names()
-
- if cxx is not None:
- for libomp_name in libomp_names:
- cmd = [cxx,
- '-print-file-name=lib{}{}'.format(
- libomp_name,
- get_shared_lib_extension())]
- # The subprocess can fail in various ways, including because it
- # doesn't support '-print-file-name'. In that case just give up.
- try:
- output = check_output(cmd,
- stderr=DEVNULL)
- path = os.path.dirname(output.decode().strip())
- if path:
- paths.append(path)
- except (OSError, CalledProcessError):
- pass
-
-
- for libomp_name in libomp_names:
- # Try to load find libomp shared library using loader search dirs
- libomp_path = find_library(libomp_name)
-
- # Try to use custom paths if lookup failed
- if not libomp_path:
- for path in paths:
- candidate_path = os.path.join(
- path,
- 'lib{}{}'.format(libomp_name,
- get_shared_lib_extension()))
- if os.path.isfile(candidate_path):
- libomp_path = candidate_path
- break
-
- # Load the library
- if libomp_path:
- try:
- self.libomp = ctypes.CDLL(libomp_path)
- except OSError:
- raise ImportError("found openMP library '{}' but couldn't load it. "
- "This may happen if you are cross-compiling.".format(libomp_path))
- self.version = 45
- return
-
- raise ImportError("I can't find a shared library for libomp, you may need to install it "
- "or adjust the {} environment variable.".format(env_vars[0]))
-
+ self.libomp = ctypes.CDLL("@gomp@")
+ self.version = 45 + self.version = 45
def __getattr__(self, name): def __getattr__(self, name):
""" """
--
2.32.0

View file

@ -3,7 +3,6 @@
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, openmp , openmp
, pytest-runner
, ply , ply
, networkx , networkx
, decorator , decorator
@ -11,8 +10,6 @@
, six , six
, numpy , numpy
, beniget , beniget
, pytestCheckHook
, scipy
, isPy3k , isPy3k
, substituteAll , substituteAll
}: }:
@ -22,13 +19,13 @@ let
in buildPythonPackage rec { in buildPythonPackage rec {
pname = "pythran"; pname = "pythran";
version = "0.9.12"; version = "0.11.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "serge-sans-paille"; owner = "serge-sans-paille";
repo = "pythran"; repo = "pythran";
rev = version; rev = version;
sha256 = "sha256-lQbVq4K/Q8RzlFhE+l3HPCmUGmauXawcKe31kfbUHsI="; sha256 = "sha256-F9gUZOTSuiqvfGoN4yQqwUg9mnCeBntw5eHO7ZnjpzI=";
}; };
patches = [ patches = [
@ -39,10 +36,6 @@ in buildPythonPackage rec {
}) })
]; ];
nativeBuildInputs = [
pytest-runner
];
propagatedBuildInputs = [ propagatedBuildInputs = [
ply ply
networkx networkx
@ -62,14 +55,7 @@ in buildPythonPackage rec {
"pythran.spec" "pythran.spec"
]; ];
checkInputs = [ # Test suite is huge and has a circular dependency on scipy.
pytestCheckHook
numpy
scipy
];
# Test suite is huge.
# Also, in the future scipy will rely on it resulting in a circular test dependency
doCheck = false; doCheck = false;
disabled = !isPy3k; disabled = !isPy3k;
@ -79,5 +65,4 @@ in buildPythonPackage rec {
homepage = "https://github.com/serge-sans-paille/pythran"; homepage = "https://github.com/serge-sans-paille/pythran";
license = lib.licenses.bsd3; license = lib.licenses.bsd3;
}; };
} }

View file

@ -17,12 +17,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "requests"; pname = "requests";
version = "2.28.0"; version = "2.28.1";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-1WhyOn69JYddjR6vXfoGjNL8gZSy5IPXsffIGRjb7Gs="; hash = "sha256-fFWZsQL+3apmHIJsVqtP7ii/0X9avKHrvj5/GdfJeYM=";
}; };
patches = [ patches = [

View file

@ -3,6 +3,7 @@
, fetchPypi , fetchPypi
, packaging , packaging
, tomli , tomli
, setuptools
, lib , lib
}: }:
@ -19,6 +20,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [ propagatedBuildInputs = [
packaging packaging
tomli tomli
setuptools
]; ];
pythonImportsCheck = [ pythonImportsCheck = [

View file

@ -13,11 +13,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "SQLAlchemy"; pname = "SQLAlchemy";
version = "1.4.37"; version = "1.4.39";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-Noj5LGLbbF3yaOImSJEHjxfsuR4xQbQA8uKND3V5beo="; hash = "sha256-gZSJYDh1O0awigsK6JpdgMiX+2Ad1R4kPtVyDx8VXSc=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -119,7 +119,8 @@ buildPythonPackage rec {
pyhamcrest pyhamcrest
] ]
++ passthru.optional-dependencies.conch ++ passthru.optional-dependencies.conch
++ passthru.optional-dependencies.tls; # not supported on aarch64-darwin: https://github.com/pyca/pyopenssl/issues/873
++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) passthru.optional-dependencies.tls;
checkPhase = '' checkPhase = ''
export SOURCE_DATE_EPOCH=315532800 export SOURCE_DATE_EPOCH=315532800

View file

@ -4,16 +4,16 @@
, buildPythonPackage , buildPythonPackage
, certifi , certifi
, cryptography , cryptography
, python-dateutil
, fetchPypi , fetchPypi
, isPyPy
, idna , idna
, isPyPy
, mock , mock
, pyopenssl , pyopenssl
, pysocks , pysocks
, pytest-freezegun , pytest-freezegun
, pytest-timeout , pytest-timeout
, pytestCheckHook , pytestCheckHook
, python-dateutil
, tornado , tornado
, trustme , trustme
}: }:
@ -30,7 +30,7 @@ buildPythonPackage rec {
# FIXME: remove backwards compatbility hack # FIXME: remove backwards compatbility hack
propagatedBuildInputs = passthru.optional-dependencies.brotli propagatedBuildInputs = passthru.optional-dependencies.brotli
++ passthru.optional-dependencies.secure; ++ passthru.optional-dependencies.socks;
checkInputs = [ checkInputs = [
python-dateutil python-dateutil
@ -65,6 +65,7 @@ buildPythonPackage rec {
passthru.optional-dependencies = { passthru.optional-dependencies = {
brotli = if isPyPy then [ brotlicffi ] else [ brotli ]; brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
# Use carefully since pyopenssl is not supported aarch64-darwin
secure = [ certifi cryptography idna pyopenssl ]; secure = [ certifi cryptography idna pyopenssl ];
socks = [ pysocks ]; socks = [ pysocks ];
}; };

View file

@ -1,23 +1,19 @@
diff --git a/Utilities/cmcurl/CMakeLists.txt b/Utilities/cmcurl/CMakeLists.txt
index 9eef01aaf0..d141d4086c 100644
--- a/Utilities/cmcurl/CMakeLists.txt --- a/Utilities/cmcurl/CMakeLists.txt
+++ b/Utilities/cmcurl/CMakeLists.txt +++ b/Utilities/cmcurl/CMakeLists.txt
@@ -537,12 +537,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") @@ -391,13 +391,6 @@ if(ENABLE_IPV6 AND NOT WIN32)
message(FATAL_ERROR "CoreFoundation framework not found")
endif()
- find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT ENABLE_ARES)
- if(NOT SYSTEMCONFIGURATION_FRAMEWORK) set(use_core_foundation ON)
- message(FATAL_ERROR "SystemConfiguration framework not found")
- endif()
- -
- list(APPEND CURL_LIBS "-framework CoreFoundation" "-framework SystemConfiguration") - find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration")
+ list(APPEND CURL_LIBS "-framework CoreFoundation") - if(NOT SYSTEMCONFIGURATION_FRAMEWORK)
- message(FATAL_ERROR "SystemConfiguration framework not found")
- endif()
-
- list(APPEND CURL_LIBS "-framework SystemConfiguration")
endif()
endif()
if(CMAKE_USE_SECTRANSP)
find_library(SECURITY_FRAMEWORK "Security")
diff --git a/Utilities/cmcurl/lib/curl_setup.h b/Utilities/cmcurl/lib/curl_setup.h
index 554dcc1e67..059f14e632 100644
--- a/Utilities/cmcurl/lib/curl_setup.h --- a/Utilities/cmcurl/lib/curl_setup.h
+++ b/Utilities/cmcurl/lib/curl_setup.h +++ b/Utilities/cmcurl/lib/curl_setup.h
@@ -257,11 +257,7 @@ @@ -257,11 +257,7 @@
@ -32,8 +28,6 @@ index 554dcc1e67..059f14e632 100644
#endif #endif
#ifdef USE_LWIPSOCK #ifdef USE_LWIPSOCK
diff --git a/Utilities/cmcurl/lib/hostip.c b/Utilities/cmcurl/lib/hostip.c
index 117caa2957..9f7c709e44 100644
--- a/Utilities/cmcurl/lib/hostip.c --- a/Utilities/cmcurl/lib/hostip.c
+++ b/Utilities/cmcurl/lib/hostip.c +++ b/Utilities/cmcurl/lib/hostip.c
@@ -68,10 +68,6 @@ @@ -68,10 +68,6 @@
@ -47,7 +41,7 @@ index 117caa2957..9f7c709e44 100644
#if defined(CURLRES_SYNCH) && \ #if defined(CURLRES_SYNCH) && \
defined(HAVE_ALARM) && defined(SIGALRM) && defined(HAVE_SIGSETJMP) defined(HAVE_ALARM) && defined(SIGALRM) && defined(HAVE_SIGSETJMP)
/* alarm-based timeouts can only be used with all the dependencies satisfied */ /* alarm-based timeouts can only be used with all the dependencies satisfied */
@@ -653,23 +649,6 @@ enum resolve_t Curl_resolv(struct Curl_easy *data, @@ -661,23 +657,6 @@ enum resolve_t Curl_resolv(struct Curl_easy *data,
return CURLRESOLV_ERROR; return CURLRESOLV_ERROR;
} }

View file

@ -1,62 +1,91 @@
{ stdenv, lib, fetchurl, pkg-config { lib
, bzip2, curlMinimal, expat, libarchive, xz, zlib, libuv, rhash , stdenv
, buildPackages , buildPackages
# darwin attributes , bzip2
, curlMinimal
, expat
, fetchurl
, libarchive
, libuv
, ncurses
, openssl
, pkg-config
, qtbase
, rhash
, sphinx
, texinfo
, wrapQtAppsHook
, xz
, zlib
, SystemConfiguration , SystemConfiguration
, ps , ps
, isBootstrap ? false , isBootstrap ? false
, useOpenSSL ? !isBootstrap
, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin) , useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
, useOpenSSL ? !isBootstrap, openssl , uiToolkits ? [] # can contain "ncurses" and/or "qt5"
, useNcurses ? false, ncurses , buildDocs ? !(isBootstrap || (uiToolkits == []))
, withQt5 ? false, qtbase, wrapQtAppsHook
, buildDocs ? (!isBootstrap && (useNcurses || withQt5)), sphinx, texinfo
}: }:
let
cursesUI = lib.elem "ncurses" uiToolkits;
qt5UI = lib.elem "qt5" uiToolkits;
in
# Accepts only "ncurses" and "qt5" as possible uiToolkits
assert lib.subtractLists [ "ncurses" "qt5" ] uiToolkits == [];
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cmake" pname = "cmake"
+ lib.optionalString isBootstrap "-boot" + lib.optionalString isBootstrap "-boot"
+ lib.optionalString useNcurses "-cursesUI" + lib.optionalString cursesUI "-cursesUI"
+ lib.optionalString withQt5 "-qt5UI"; + lib.optionalString qt5UI "-qt5UI";
version = "3.22.3"; version = "3.23.2";
src = fetchurl { src = fetchurl {
url = "https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz"; url = "https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
sha256 = "sha256-n4RpFm+UVTtpeKFu4pIn7Emi61zrYIJ13sQNiuDRtaA="; sha256 = "sha256-8xa0AFNGb5pBat+YHv2kGxYMqFnpf2pIS0R+opn/Jqo=";
}; };
patches = [ patches = [
# Don't search in non-Nix locations such as /usr, but do search in our libc. # Don't search in non-Nix locations such as /usr, but do search in our libc.
./search-path.patch ./001-search-path.diff
# Don't depend on frameworks. # Don't depend on frameworks.
./application-services.patch ./002-application-services.diff
# Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d
./libuv-application-services.patch ./003-libuv-application-services.diff
]
] ++ lib.optional stdenv.isCygwin ./3.2.2-cygwin.patch ++ lib.optional stdenv.isCygwin ./004-cygwin.diff
# Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51 # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51
++ lib.optional (stdenv.isDarwin && isBootstrap) ./remove-systemconfiguration-dep.patch ++ lib.optional (stdenv.isDarwin && isBootstrap) ./005-remove-systemconfiguration-dep.diff
# On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG. # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG.
++ lib.optional stdenv.isDarwin ./darwin-always-set-runtime-c-flag.patch; ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff;
outputs = [ "out" ] outputs = [ "out" ] ++ lib.optionals buildDocs [ "man" "info" ];
++ lib.optionals buildDocs [ "man" "info" ];
setOutputFlags = false; setOutputFlags = false;
setupHook = ./setup-hook.sh; setupHook = ./setup-hook.sh;
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ setupHook pkg-config ] nativeBuildInputs = [
++ lib.optionals buildDocs [ texinfo ] pkg-config
++ lib.optionals withQt5 [ wrapQtAppsHook ]; setupHook
]
++ lib.optionals buildDocs [ texinfo ]
++ lib.optionals qt5UI [ wrapQtAppsHook ];
buildInputs = lib.optionals useSharedLibraries [ bzip2 curlMinimal expat libarchive xz zlib libuv rhash ] buildInputs = lib.optionals useSharedLibraries [
++ lib.optional useOpenSSL openssl bzip2
++ lib.optional useNcurses ncurses curlMinimal
++ lib.optional withQt5 qtbase expat
++ lib.optional (stdenv.isDarwin && !isBootstrap) SystemConfiguration; libarchive
xz
zlib
libuv
rhash
]
++ lib.optional useOpenSSL openssl
++ lib.optional cursesUI ncurses
++ lib.optional qt5UI qtbase
++ lib.optional (stdenv.isDarwin && !isBootstrap) SystemConfiguration;
propagatedBuildInputs = lib.optional stdenv.isDarwin ps; propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
@ -73,18 +102,21 @@ stdenv.mkDerivation rec {
configureFlags = [ configureFlags = [
"CXXFLAGS=-Wno-elaborated-enum-base" "CXXFLAGS=-Wno-elaborated-enum-base"
"--docdir=share/doc/${pname}${version}" "--docdir=share/doc/${pname}${version}"
] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup ] ++ (if useSharedLibraries
++ lib.optional withQt5 "--qt-gui" then [ "--no-system-jsoncpp" "--system-libs" ]
else [ "--no-system-libs" ]) # FIXME: cleanup
++ lib.optional qt5UI "--qt-gui"
++ lib.optionals buildDocs [ ++ lib.optionals buildDocs [
"--sphinx-build=${sphinx}/bin/sphinx-build" "--sphinx-build=${sphinx}/bin/sphinx-build"
"--sphinx-man"
"--sphinx-info" "--sphinx-info"
"--sphinx-man"
] ]
# Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568 # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568
++ lib.optionals stdenv.hostPlatform.is32bit [ ++ lib.optionals stdenv.hostPlatform.is32bit [
"CFLAGS=-D_FILE_OFFSET_BITS=64" "CFLAGS=-D_FILE_OFFSET_BITS=64"
"CXXFLAGS=-D_FILE_OFFSET_BITS=64" "CXXFLAGS=-D_FILE_OFFSET_BITS=64"
] ++ [ ]
++ [
"--" "--"
# We should set the proper `CMAKE_SYSTEM_NAME`. # We should set the proper `CMAKE_SYSTEM_NAME`.
# http://www.cmake.org/Wiki/CMake_Cross_Compiling # http://www.cmake.org/Wiki/CMake_Cross_Compiling
@ -100,7 +132,7 @@ stdenv.mkDerivation rec {
"-DCMAKE_USE_OPENSSL=${if useOpenSSL then "ON" else "OFF"}" "-DCMAKE_USE_OPENSSL=${if useOpenSSL then "ON" else "OFF"}"
# Avoid depending on frameworks. # Avoid depending on frameworks.
"-DBUILD_CursesDialog=${if useNcurses then "ON" else "OFF"}" "-DBUILD_CursesDialog=${if cursesUI then "ON" else "OFF"}"
]; ];
# make install attempts to use the just-built cmake # make install attempts to use the just-built cmake
@ -118,19 +150,19 @@ stdenv.mkDerivation rec {
doCheck = false; # fails doCheck = false; # fails
meta = with lib; { meta = with lib; {
broken = (withQt5 && stdenv.isDarwin);
homepage = "https://cmake.org/"; homepage = "https://cmake.org/";
changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/release/${lib.versions.majorMinor version}.html"; description = "Cross-platform, open-source build system generator";
description = "Cross-Platform Makefile Generator";
longDescription = '' longDescription = ''
CMake is an open-source, cross-platform family of tools designed to CMake is an open-source, cross-platform family of tools designed to build,
build, test and package software. CMake is used to control the software test and package software. CMake is used to control the software
compilation process using simple platform and compiler independent compilation process using simple platform and compiler independent
configuration files, and generate native makefiles and workspaces that configuration files, and generate native makefiles and workspaces that can
can be used in the compiler environment of your choice. be used in the compiler environment of your choice.
''; '';
platforms = platforms.all; changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/release/${lib.versions.majorMinor version}.html";
maintainers = with maintainers; [ ttuegel lnl7 ];
license = licenses.bsd3; license = licenses.bsd3;
maintainers = with maintainers; [ ttuegel lnl7 AndersonTorres ];
platforms = platforms.all;
broken = (qt5UI && stdenv.isDarwin);
}; };
} }

View file

@ -14,7 +14,7 @@ ninjaBuildPhase() {
) )
echoCmd 'build flags' "${flagsArray[@]}" echoCmd 'build flags' "${flagsArray[@]}"
ninja "${flagsArray[@]}" | cat TERM=dumb ninja "${flagsArray[@]}"
runHook postBuild runHook postBuild
} }
@ -33,7 +33,7 @@ ninjaInstallPhase() {
) )
echoCmd 'install flags' "${flagsArray[@]}" echoCmd 'install flags' "${flagsArray[@]}"
ninja "${flagsArray[@]}" | cat TERM=dumb ninja "${flagsArray[@]}"
runHook postInstall runHook postInstall
} }
@ -67,7 +67,7 @@ ninjaCheckPhase() {
) )
echoCmd 'check flags' "${flagsArray[@]}" echoCmd 'check flags' "${flagsArray[@]}"
ninja "${flagsArray[@]}" | cat TERM=dumb ninja "${flagsArray[@]}"
fi fi
runHook postCheck runHook postCheck

View file

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchFromGitHub, makeWrapper }: { lib, buildGoModule, fetchFromGitHub, makeWrapper, stdenv }:
buildGoModule rec { buildGoModule rec {
pname = "delve"; pname = "delve";
@ -17,7 +17,19 @@ buildGoModule rec {
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
checkFlags = [ "-short" ]; hardeningDisable = [ "fortify" ];
preCheck = ''
XDG_CONFIG_HOME=$(mktemp -d)
'';
# Disable tests on Darwin as they require various workarounds.
#
# - Tests requiring local networking fail with or without sandbox,
# even with __darwinAllowLocalNetworking allowed.
# - CGO_FLAGS warnings break tests' expected stdout/stderr outputs.
# - DAP test binaries exit prematurely.
doCheck = !stdenv.isDarwin;
postInstall = '' postInstall = ''
# fortify source breaks build since delve compiles with -O0 # fortify source breaks build since delve compiles with -O0

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "doxygen"; pname = "doxygen";
version = "1.9.3"; version = "1.9.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "doxygen"; owner = "doxygen";
repo = "doxygen"; repo = "doxygen";
rev = "Release_${lib.replaceStrings [ "." ] [ "_" ] version}"; rev = "Release_${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "1xfsv31ffrv03qhxlscav0r5mdi3qz4654ib9cq35rvmxfj999bw"; sha256 = "sha256-Dnr8d+ngSBkgL/BITvsvoERAHQyEXCoQDltbnQ2nXKM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "autoconf-archive"; pname = "autoconf-archive";
version = "2021.02.19"; version = "2022.02.11";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/autoconf-archive/autoconf-archive-${version}.tar.xz"; url = "mirror://gnu/autoconf-archive/autoconf-archive-${version}.tar.xz";
sha256 = "sha256-6KbrnSjdy6j/7z+iEWUyOem/I5q6agGmt8/Hzq7GnL0="; sha256 = "sha256-eKYbYR4u61WongOY4M44e8r1f+LdU8b+QnEw93etHow=";
}; };
strictDeps = true; strictDeps = true;

View file

@ -26,6 +26,10 @@ stdenv.mkDerivation rec {
substituteInPlace src/luarocks/core/cfg.lua --subst-var-by 'darwinMinVersion' '${stdenv.targetPlatform.darwinMinVersion}' substituteInPlace src/luarocks/core/cfg.lua --subst-var-by 'darwinMinVersion' '${stdenv.targetPlatform.darwinMinVersion}'
''; '';
# Manually written ./configure does not support --build= or --host=:
# Error: Unknown flag: --build=x86_64-unknown-linux-gnu
configurePlatforms = [ ];
preConfigure = '' preConfigure = ''
lua -e "" || { lua -e "" || {
luajit -e "" && { luajit -e "" && {

View file

@ -36,8 +36,7 @@ stdenv.mkDerivation {
strictDeps = true; strictDeps = true;
enableParallelBuilding = true; enableParallelBuilding = true;
# We need a native compiler to build perl XS extensions # A native compiler is needed to build tools needed at build time
# when cross-compiling.
depsBuildBuild = [ buildPackages.stdenv.cc perl ]; depsBuildBuild = [ buildPackages.stdenv.cc perl ];
buildInputs = [ xz.bin bash libintl ] buildInputs = [ xz.bin bash libintl ]
@ -45,6 +44,9 @@ stdenv.mkDerivation {
++ optional interactive ncurses; ++ optional interactive ncurses;
configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ] configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ]
# Perl XS modules are difficult to cross-compile and texinfo has pure Perl
# fallbacks.
++ optional crossBuildTools "--enable-perl-xs=no"
++ lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk"; ++ lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk";
installFlags = [ "TEXMF=$(out)/texmf-dist" ]; installFlags = [ "TEXMF=$(out)/texmf-dist" ];
@ -62,6 +64,13 @@ stdenv.mkDerivation {
"XFAIL_TESTS=test_scripts/layout_formatting_fr_icons.sh" "XFAIL_TESTS=test_scripts/layout_formatting_fr_icons.sh"
]; ];
postFixup = optionalString crossBuildTools ''
for f in "$out"/bin/{pod2texi,texi2any}; do
substituteInPlace "$f" \
--replace ${buildPackages.perl}/bin/perl ${perl}/bin/perl
done
'';
meta = { meta = {
homepage = "https://www.gnu.org/software/texinfo/"; homepage = "https://www.gnu.org/software/texinfo/";
description = "The GNU documentation system"; description = "The GNU documentation system";

View file

@ -7,11 +7,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "alsa-lib"; pname = "alsa-lib";
version = "1.2.6.1"; version = "1.2.7.1";
src = fetchurl { src = fetchurl {
url = "mirror://alsa/lib/${pname}-${version}.tar.bz2"; url = "mirror://alsa/lib/${pname}-${version}.tar.bz2";
hash = "sha256-rVgpk9Us21+xWaC+q2CmrFfqsMwb34XcTbbWGX8CMz8="; hash = "sha256-BG3ELfz60mkhe+BZVGhhN+XnOX8wQTcvjG3NfXlGHmE=";
}; };
patches = [ patches = [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "alsa-plugins"; pname = "alsa-plugins";
version = "1.2.6"; version = "1.2.7.1";
src = fetchurl { src = fetchurl {
url = "mirror://alsa/plugins/${pname}-${version}.tar.bz2"; url = "mirror://alsa/plugins/${pname}-${version}.tar.bz2";
sha256 = "sha256-BogYpLVdjAKdqgABXYU9RRE/VrIkt8ZOHhF5iMglsqA="; hash = "sha256-jDN4FJVLt8FnRWczpgRhQqKTHxLsy6PsKkrmGKNDJRE=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "alsa-ucm-conf"; pname = "alsa-ucm-conf";
version = "1.2.6.3"; version = "1.2.7.1";
src = fetchurl { src = fetchurl {
url = "mirror://alsa/lib/${pname}-${version}.tar.bz2"; url = "mirror://alsa/lib/${pname}-${version}.tar.bz2";
sha256 = "sha256-uKA6o4emJKL2XtwgG/d3QhGQtgUpqSCHZGgjr72Wxc0="; hash = "sha256-rFsqEnV4Pv8H4cs0w2xsWYd0JnmjQAN1B8BKncHSLKw=";
}; };
dontBuild = true; dontBuild = true;

View file

@ -7,14 +7,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ell"; pname = "ell";
version = "0.50"; version = "0.51";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchgit { src = fetchgit {
url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
rev = version; rev = version;
sha256 = "sha256-LQAbE/pAKjVFsn9FjIbvY6sTBcVBdi4LCOnDVZ/WGV0="; sha256 = "sha256-UGc6msj+V3U7IzquD4+KDLWt1vUxdV2Qm9Y0FOmsqtc=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -6,11 +6,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "iproute2"; pname = "iproute2";
version = "5.17.0"; version = "5.18.0";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz"; url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
sha256 = "bjhPG0LHXhqdqsV4Zto33P+QkJC6huslpudk2niTZg4="; sha256 = "W6PUZNUcjCg1UNUH/6w9EPeuxYe3xmsMy2lQZDZGOJ4=";
}; };
patches = [ patches = [

View file

@ -24,6 +24,11 @@ stdenv.mkDerivation rec {
url = "https://git.netfilter.org/iptables/patch/?id=f319389525b066b7dc6d389c88f16a0df3b8f189"; url = "https://git.netfilter.org/iptables/patch/?id=f319389525b066b7dc6d389c88f16a0df3b8f189";
sha256 = "sha256-rOxCEWZoI8Ac5fQDp286YHAwvreUAoDVAbomboKrGyM="; sha256 = "sha256-rOxCEWZoI8Ac5fQDp286YHAwvreUAoDVAbomboKrGyM=";
}) })
# fix Musl build
(fetchpatch {
url = "https://git.netfilter.org/iptables/patch/?id=0e7cf0ad306cdf95dc3c28d15a254532206a888e";
sha256 = "18mnvqfxzd7ifq3zjb4vyifcyadpxdi8iqcj8wsjgw23n49lgrbj";
})
]; ];
outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ];

View file

@ -12,12 +12,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "iwd"; pname = "iwd";
version = "1.27"; version = "1.28";
src = fetchgit { src = fetchgit {
url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git"; url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
rev = version; rev = version;
sha256 = "sha256-gN9+9Cc6zjZBXDhcHBH5wyucO5/vL7bKSLWM5laFqaA="; sha256 = "sha256-UAhgmXTbCgxja8nniexr6+jkzHIOMn9k1Cp8oMuskk0=";
}; };
outputs = [ "out" "man" "doc" ] outputs = [ "out" "man" "doc" ]

View file

@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_CFLAGS_COMPILE = "-Wno-error";
enableParallelBuilding = true;
passthru = { inherit se_url; }; passthru = { inherit se_url; };
meta = with lib; { meta = with lib; {

View file

@ -1,5 +1,5 @@
{ stdenv, lib, fetchurl, pkg-config, perl { stdenv, lib, fetchurl, pkg-config, perl
, libjpeg, udev , argp-standalone, libjpeg, udev
, withUtils ? true , withUtils ? true
, withGUI ? true, alsa-lib, libX11, qtbase, libGLU, wrapQtAppsHook , withGUI ? true, alsa-lib, libX11, qtbase, libGLU, wrapQtAppsHook
}: }:
@ -35,7 +35,9 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config perl ] ++ lib.optional withQt wrapQtAppsHook; nativeBuildInputs = [ pkg-config perl ] ++ lib.optional withQt wrapQtAppsHook;
buildInputs = [ udev ] ++ lib.optionals withQt [ alsa-lib libX11 qtbase libGLU ]; buildInputs = [ udev ]
++ lib.optional (!stdenv.hostPlatform.isGnu) argp-standalone
++ lib.optionals withQt [ alsa-lib libX11 qtbase libGLU ];
propagatedBuildInputs = [ libjpeg ]; propagatedBuildInputs = [ libjpeg ];

View file

@ -304,15 +304,18 @@ in
binutils coreutils gnugrep binutils coreutils gnugrep
perl patchelf linuxHeaders gnum4 bison libidn2 libunistring; perl patchelf linuxHeaders gnum4 bison libidn2 libunistring;
${localSystem.libc} = getLibc prevStage; ${localSystem.libc} = getLibc prevStage;
# Link GCC statically against GMP etc. This makes sense because gcc-unwrapped =
# these builds of the libraries are only used by GCC, so it let makeStaticLibrariesAndMark = pkg:
# reduces the size of the stdenv closure. lib.makeOverridable (pkg.override { stdenv = self.makeStaticLibraries self.stdenv; })
gmp = super.gmp.override { stdenv = self.makeStaticLibraries self.stdenv; }; .overrideAttrs (a: { pname = "${a.pname}-stage3"; });
mpfr = super.mpfr.override { stdenv = self.makeStaticLibraries self.stdenv; }; in super.gcc-unwrapped.override {
libmpc = super.libmpc.override { stdenv = self.makeStaticLibraries self.stdenv; }; # Link GCC statically against GMP etc. This makes sense because
isl_0_20 = super.isl_0_20.override { stdenv = self.makeStaticLibraries self.stdenv; }; # these builds of the libraries are only used by GCC, so it
gcc-unwrapped = super.gcc-unwrapped.override { # reduces the size of the stdenv closure.
isl = isl_0_20; gmp = makeStaticLibrariesAndMark super.gmp;
mpfr = makeStaticLibrariesAndMark super.mpfr;
libmpc = makeStaticLibrariesAndMark super.libmpc;
isl = makeStaticLibrariesAndMark super.isl_0_20;
# Use a deterministically built compiler # Use a deterministically built compiler
# see https://github.com/NixOS/nixpkgs/issues/108475 for context # see https://github.com/NixOS/nixpkgs/issues/108475 for context
reproducibleBuild = true; reproducibleBuild = true;
@ -336,7 +339,7 @@ in
# because gcc (since JAR support) already depends on zlib, and # because gcc (since JAR support) already depends on zlib, and
# then if we already have a zlib we want to use that for the # then if we already have a zlib we want to use that for the
# other purposes (binutils and top-level pkgs) too. # other purposes (binutils and top-level pkgs) too.
inherit (prevStage) gettext gnum4 bison gmp perl texinfo zlib linuxHeaders libidn2 libunistring; inherit (prevStage) gettext gnum4 bison perl texinfo zlib linuxHeaders libidn2 libunistring;
${localSystem.libc} = getLibc prevStage; ${localSystem.libc} = getLibc prevStage;
binutils = super.binutils.override { binutils = super.binutils.override {
# Don't use stdenv's shell but our own # Don't use stdenv's shell but our own
@ -347,6 +350,14 @@ in
}; };
}; };
# force gmp to rebuild so we have the option of dynamically linking
# libgmp without creating a reference path from:
# stage5.gcc -> stage4.coreutils -> stage3.glibc -> bootstrap
gmp = lib.makeOverridable (super.gmp.override { stdenv = self.stdenv; }).overrideAttrs (a: { pname = "${a.pname}-stage4"; });
# coreutils gets rebuilt both here and also in the final stage; we rename this one to avoid confusion
coreutils = super.coreutils.overrideAttrs (a: { pname = "${a.pname}-stage4"; });
gcc = lib.makeOverridable (import ../../build-support/cc-wrapper) { gcc = lib.makeOverridable (import ../../build-support/cc-wrapper) {
nativeTools = false; nativeTools = false;
nativeLibc = false; nativeLibc = false;
@ -417,7 +428,7 @@ in
# Simple executable tools # Simple executable tools
concatMap (p: [ (getBin p) (getLib p) ]) [ concatMap (p: [ (getBin p) (getLib p) ]) [
gzip bzip2 xz bash binutils.bintools coreutils diffutils findutils gzip bzip2 xz bash binutils.bintools coreutils diffutils findutils
gawk gnumake gnused gnutar gnugrep gnupatch patchelf ed file gawk gmp gnumake gnused gnutar gnugrep gnupatch patchelf ed file
] ]
# Library dependencies # Library dependencies
++ map getLib ( ++ map getLib (

View file

@ -18,7 +18,11 @@ buildGoModule rec {
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ libusb1 ]; buildInputs = [ libusb1 ];
checkFlags = [ "-short" ]; preCheck = ''
# Only run tests under mtp/encoding_test.go
# Other tests require an Android deviced attached over USB.
buildFlagsArray+=("-run" "Test(Encode|Decode|Variant).*")
'';
meta = with lib; { meta = with lib; {
description = "A simple FUSE filesystem for mounting Android devices as a MTP device"; description = "A simple FUSE filesystem for mounting Android devices as a MTP device";

View file

@ -39,6 +39,11 @@ stdenv.mkDerivation rec {
sha256 = "sha256-YaH0ENeLp+fzelpPUObRMgrKMzdUhKMlXt3xejhYBCM="; sha256 = "sha256-YaH0ENeLp+fzelpPUObRMgrKMzdUhKMlXt3xejhYBCM=";
}; };
patches = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
# Workaround for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51433
./disable-seek-hole.patch
];
postPatch = '' postPatch = ''
# The test tends to fail on btrfs, f2fs and maybe other unusual filesystems. # The test tends to fail on btrfs, f2fs and maybe other unusual filesystems.
sed '2i echo Skipping dd sparse test && exit 77' -i ./tests/dd/sparse.sh sed '2i echo Skipping dd sparse test && exit 77' -i ./tests/dd/sparse.sh

View file

@ -0,0 +1,43 @@
diff --git a/src/copy.c b/src/copy.c
index cb9018f93..2a4ccc061 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -502,7 +502,7 @@ write_zeros (int fd, off_t n_bytes)
return true;
}
-#ifdef SEEK_HOLE
+#if 0
/* Perform an efficient extent copy, if possible. This avoids
the overhead of detecting holes in hole-introducing/preserving
copy, and thus makes copying sparse files much more efficient.
@@ -1095,7 +1095,7 @@ infer_scantype (int fd, struct stat const *sb,
&& ST_NBLOCKS (*sb) < sb->st_size / ST_NBLOCKSIZE))
return PLAIN_SCANTYPE;
-#ifdef SEEK_HOLE
+#if 0
scan_inference->ext_start = lseek (fd, 0, SEEK_DATA);
if (0 <= scan_inference->ext_start)
return LSEEK_SCANTYPE;
@@ -1377,7 +1377,7 @@ copy_reg (char const *src_name, char const *dst_name,
off_t n_read;
bool wrote_hole_at_eof = false;
if (! (
-#ifdef SEEK_HOLE
+#if 0
scantype == LSEEK_SCANTYPE
? lseek_copy (source_desc, dest_desc, buf, buf_size, hole_size,
scan_inference.ext_start, src_open_sb.st_size,
diff --git a/tests/seek-data-capable b/tests/seek-data-capable
index cc6372214..6e7a9ec1e 100644
--- a/tests/seek-data-capable
+++ b/tests/seek-data-capable
@@ -1,5 +1,7 @@
import sys, os, errno, platform
+sys.exit(1)
+
# Pass an _empty_ file
if len(sys.argv) != 2:
sys.exit(1)

View file

@ -15,7 +15,8 @@ buildGoModule rec {
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" ];
checkFlags = [ "-short" ]; # Almost all tests require non-local networking, trying to resolve githubusercontent.com.
doCheck = false;
meta = with lib; { meta = with lib; {
homepage = "https://github.com/tj/mmake"; homepage = "https://github.com/tj/mmake";

View file

@ -15,11 +15,11 @@ assert guiSupport -> pinentry != null && enableMinimal == false;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnupg"; pname = "gnupg";
version = "2.3.4"; version = "2.3.6";
src = fetchurl { src = fetchurl {
url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2"; url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
sha256 = "sha256-80aOyvsdf5rXtR/R23rr8XzridLvqKBc8vObTUBUAq4="; sha256 = "sha256-Iff+L8XC8hQYSrBQl37HqOME5Yv64qsJj+xp+Pq9qcE=";
}; };
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];
@ -34,6 +34,12 @@ stdenv.mkDerivation rec {
./tests-add-test-cases-for-import-without-uid.patch ./tests-add-test-cases-for-import-without-uid.patch
./allow-import-of-previously-known-keys-even-without-UI.patch ./allow-import-of-previously-known-keys-even-without-UI.patch
./accept-subkeys-with-a-good-revocation-but-no-self-sig.patch ./accept-subkeys-with-a-good-revocation-but-no-self-sig.patch
# Patch from upstream 34c649b36013, https://dev.gnupg.org/T6027
./CVE-2022-34903-g10-fix-garbled-status-messages-in-NOTATION_DATA.patch
# Patch for DoS vuln from https://seclists.org/oss-sec/2022/q3/27
./v3-0001-Disallow-compressed-signatures-and-certificates.patch
]; ];
postPatch = '' postPatch = ''
sed -i 's,\(hkps\|https\)://keyserver.ubuntu.com,hkps://keys.openpgp.org,g' configure configure.ac doc/dirmngr.texi doc/gnupg.info-1 sed -i 's,\(hkps\|https\)://keyserver.ubuntu.com,hkps://keys.openpgp.org,g' configure configure.ac doc/dirmngr.texi doc/gnupg.info-1

View file

@ -0,0 +1,45 @@
commit 34c649b3601383cd11dbc76221747ec16fd68e1b
Author: Werner Koch <wk@gnupg.org>
Date: 2022-06-14 11:33:27 +0200
g10: Fix garbled status messages in NOTATION_DATA
* g10/cpr.c (write_status_text_and_buffer): Fix off-by-one
--
Depending on the escaping and line wrapping the computed remaining
buffer length could be wrong. Fixed by always using a break to
terminate the escape detection loop. Might have happened for all
status lines which may wrap.
GnuPG-bug-id: T6027
diff --git a/g10/cpr.c b/g10/cpr.c
index 9bfdd3c34..fa8005d6f 100644
--- a/g10/cpr.c
+++ b/g10/cpr.c
@@ -372,20 +372,15 @@ write_status_text_and_buffer (int no, const char *string,
}
first = 0;
}
- for (esc=0, s=buffer, n=len; n && !esc; s++, n--)
+ for (esc=0, s=buffer, n=len; n; s++, n--)
{
if (*s == '%' || *(const byte*)s <= lower_limit
|| *(const byte*)s == 127 )
esc = 1;
if (wrap && ++count > wrap)
- {
- dowrap=1;
- break;
- }
- }
- if (esc)
- {
- s--; n++;
+ dowrap=1;
+ if (esc || dowrap)
+ break;
}
if (s != buffer)
es_fwrite (buffer, s-buffer, 1, statusfp);

View file

@ -0,0 +1,216 @@
From 459b61fa21db755d6c879c3ef9ab85b3d1786c9f Mon Sep 17 00:00:00 2001
From: Demi Marie Obenour <demi () invisiblethingslab com>
Date: Fri, 27 May 2022 19:51:19 -0400
Subject: [PATCH GnuPG v3] Disallow compressed signatures and certificates
Compressed packets have significant attack surface, due to the potential
for both denial of service (zip bombs and the like) and for code
execution via memory corruption vulnerabilities in the decompressor.
Furthermore, I am not aware of any implementation that uses them in keys
or detached signatures. Therefore, disallow their use in such contexts
entirely. This includes signatures that are part of a cleartext-signed
message.
When parsing detached signatures, forbid any packet that is not a
signature or marker packet. When parsing keys, return an error when
encountering a compressed packet, instead of decompressing the packet.
Furthermore, certificates, keys, and signatures are not allowed to
contain partial-length or indeterminate-length packets. Reject those in
parse_packet, rather than activating the partial-length filter code.
This is not (yet) implemented for cleartext-signed messages, as these
messages are internally represented as inline-signed messages.
GnuPG-bug-id: T5993
Signed-off-by: Demi Marie Obenour <demiobenour () gmail com>
---
g10/import.c | 18 ++----------------
g10/mainproc.c | 24 +++++++++++++++++++++---
g10/packet.h | 2 ++
g10/parse-packet.c | 44 +++++++++++++++++++++++++++++++++++++++++++-
4 files changed, 68 insertions(+), 20 deletions(-)
diff --git a/g10/import.c b/g10/import.c
index bb0bf67934a8316130cde182cd43d56353e0171d..a8136351f6f7dae8c65634ed8e1c242d323e2009 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1042,22 +1042,8 @@ read_block( IOBUF a, unsigned int options,
switch (pkt->pkttype)
{
case PKT_COMPRESSED:
- if (check_compress_algo (pkt->pkt.compressed->algorithm))
- {
- rc = GPG_ERR_COMPR_ALGO;
- goto ready;
- }
- else
- {
- compress_filter_context_t *cfx = xmalloc_clear( sizeof *cfx );
- pkt->pkt.compressed->buf = NULL;
- if (push_compress_filter2 (a, cfx,
- pkt->pkt.compressed->algorithm, 1))
- xfree (cfx); /* e.g. in case of compression_algo NONE. */
- }
- free_packet (pkt, &parsectx);
- init_packet(pkt);
- break;
+ rc = GPG_ERR_UNEXPECTED;
+ goto ready;
case PKT_RING_TRUST:
/* Skip those packets unless we are in restore mode. */
diff --git a/g10/mainproc.c b/g10/mainproc.c
index af11877aa257e46662c42b6ff573ee01c3ad1547..3629fc921b742afd131e8d8e2664b201095990f0 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -152,6 +152,7 @@ add_onepass_sig (CTX c, PACKET *pkt)
{
kbnode_t node;
+ log_assert(!(c->sigs_only && c->signed_data.used));
if (c->list) /* Add another packet. */
add_kbnode (c->list, new_kbnode (pkt));
else /* Insert the first one. */
@@ -1076,8 +1077,16 @@ proc_compressed (CTX c, PACKET *pkt)
int rc;
/*printf("zip: compressed data packet\n");*/
- if (c->sigs_only)
- rc = handle_compressed (c->ctrl, c, zd, proc_compressed_cb, c);
+ if ( literals_seen )
+ {
+ log_error ("Compressed packet follows literal data packet\n");
+ rc = GPG_ERR_UNEXPECTED;
+ }
+ else if ( c->sigs_only )
+ {
+ log_assert(!c->signed_data.used);
+ rc = handle_compressed (c->ctrl, c, zd, proc_compressed_cb, c);
+ }
else if( c->encrypt_only )
rc = handle_compressed (c->ctrl, c, zd, proc_encrypt_cb, c);
else
@@ -1596,6 +1605,7 @@ do_proc_packets (CTX c, iobuf_t a)
c->iobuf = a;
init_packet(pkt);
init_parse_packet (&parsectx, a);
+ parsectx.sigs_only = c->sigs_only && c->signed_data.used;
while ((rc=parse_packet (&parsectx, pkt)) != -1)
{
any_data = 1;
@@ -1607,6 +1617,12 @@ do_proc_packets (CTX c, iobuf_t a)
if (gpg_err_code (rc) == GPG_ERR_INV_PACKET
&& opt.list_packets == 0)
break;
+
+ if (gpg_err_code (rc) == GPG_ERR_UNEXPECTED)
+ {
+ write_status_text( STATUS_UNEXPECTED, "0" );
+ goto leave;
+ }
continue;
}
newpkt = -1;
@@ -1644,7 +1660,9 @@ do_proc_packets (CTX c, iobuf_t a)
case PKT_COMPRESSED: rc = proc_compressed (c, pkt); break;
case PKT_ONEPASS_SIG: newpkt = add_onepass_sig (c, pkt); break;
case PKT_GPG_CONTROL: newpkt = add_gpg_control (c, pkt); break;
- default: newpkt = 0; break;
+ default:
+ log_assert(!c->signed_data.used);
+ newpkt = 0; break;
}
}
else if (c->encrypt_only)
diff --git a/g10/packet.h b/g10/packet.h
index 5a14015a16c872fe7b0b15468598daf7a05ffc02..82dfe786b46051491e7015e64441678140defa9e 100644
--- a/g10/packet.h
+++ b/g10/packet.h
@@ -657,6 +657,7 @@ struct parse_packet_ctx_s
int free_last_pkt; /* Indicates that LAST_PKT must be freed. */
int skip_meta; /* Skip ring trust packets. */
unsigned int n_parsed_packets; /* Number of parsed packets. */
+ int sigs_only; /* Only accept detached signature packets */
};
typedef struct parse_packet_ctx_s *parse_packet_ctx_t;
@@ -667,6 +668,7 @@ typedef struct parse_packet_ctx_s *parse_packet_ctx_t;
(a)->free_last_pkt = 0; \
(a)->skip_meta = 0; \
(a)->n_parsed_packets = 0; \
+ (a)->sigs_only = 0; \
} while (0)
#define deinit_parse_packet(a) do { \
diff --git a/g10/parse-packet.c b/g10/parse-packet.c
index cea1f7ebc5daec3863ae963c1ab25500f86796fe..dca66ff427ea6778e536782ec6bda83584877342 100644
--- a/g10/parse-packet.c
+++ b/g10/parse-packet.c
@@ -738,6 +738,20 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos,
case PKT_ENCRYPTED_MDC:
case PKT_ENCRYPTED_AEAD:
case PKT_COMPRESSED:
+ if (ctx->sigs_only)
+ {
+ log_error (_("partial length packet of type %d in detached"
+ " signature\n"), pkttype);
+ rc = gpg_error (GPG_ERR_UNEXPECTED);
+ goto leave;
+ }
+ if (onlykeypkts)
+ {
+ log_error (_("partial length packet of type %d in keyring\n"),
+ pkttype);
+ rc = gpg_error (GPG_ERR_UNEXPECTED);
+ goto leave;
+ }
iobuf_set_partial_body_length_mode (inp, c & 0xff);
pktlen = 0; /* To indicate partial length. */
partial = 1;
@@ -775,6 +789,20 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos,
rc = gpg_error (GPG_ERR_INV_PACKET);
goto leave;
}
+ else if (ctx->sigs_only)
+ {
+ log_error (_("indeterminate length packet of type %d in detached"
+ " signature\n"), pkttype);
+ rc = gpg_error (GPG_ERR_UNEXPECTED);
+ goto leave;
+ }
+ else if (onlykeypkts)
+ {
+ log_error (_("indeterminate length packet of type %d in"
+ " keyring\n"), pkttype);
+ rc = gpg_error (GPG_ERR_UNEXPECTED);
+ goto leave;
+ }
}
else
{
@@ -828,7 +856,21 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos,
goto leave;
}
- if (with_uid && pkttype == PKT_USER_ID)
+ if (ctx->sigs_only)
+ switch (pkttype)
+ {
+ case PKT_SIGNATURE:
+ case PKT_MARKER:
+ break;
+ default:
+ log_error(_("Packet type %d not allowed in detached signature\n"),
+ pkttype);
+ iobuf_skip_rest (inp, pktlen, partial);
+ *skip = 1;
+ rc = GPG_ERR_UNEXPECTED;
+ goto leave;
+ }
+ else if (with_uid && pkttype == PKT_USER_ID)
/* If ONLYKEYPKTS is set to 2, then we never skip user id packets,
even if DO_SKIP is set. */
;
--
2.36.1

View file

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchFromGitHub }: { lib, buildGoModule, fetchFromGitHub, coreutils }:
buildGoModule rec { buildGoModule rec {
pname = "skeema"; pname = "skeema";
@ -17,6 +17,29 @@ buildGoModule rec {
ldflags = [ "-s" "-w" ]; ldflags = [ "-s" "-w" ];
preCheck = ''
# Disable tests requiring network access to gitlab.com
buildFlagsArray+=("-run" "[^(Test(ParseDir(Symlinks|))|DirRelPath)]")
# Fix tests expecting /usr/bin/printf and /bin/echo
substituteInPlace skeema_cmd_test.go \
--replace /usr/bin/printf "${coreutils}/bin/printf"
substituteInPlace internal/fs/dir_test.go \
--replace /bin/echo "${coreutils}/bin/echo" \
--replace /usr/bin/printf "${coreutils}/bin/printf"
substituteInPlace internal/applier/ddlstatement_test.go \
--replace /bin/echo "${coreutils}/bin/echo"
substituteInPlace internal/util/shellout_unix_test.go \
--replace /bin/echo "${coreutils}/bin/echo" \
--replace /usr/bin/printf "${coreutils}/bin/printf"
substituteInPlace internal/util/shellout_unix_test.go \
--replace /bin/echo "${coreutils}/bin/echo"
'';
checkFlags = [ "-short" ]; checkFlags = [ "-short" ];
meta = with lib; { meta = with lib; {

View file

@ -21,6 +21,14 @@ buildGoModule rec {
checkFlags = [ "-short" ]; checkFlags = [ "-short" ];
# Integration tests rely on Ginkgo but fail.
# Related: https://github.com/onsi/ginkgo/issues/602
#
# Disable integration tests.
preCheck = ''
buildFlagsArray+=("-run" "[^(TestIntegration)]")
'';
meta = with lib; { meta = with lib; {
description = "A simple CLI templating tool written in golang"; description = "A simple CLI templating tool written in golang";
homepage = "https://github.com/noqcks/gucci"; homepage = "https://github.com/noqcks/gucci";

View file

@ -1,39 +1,39 @@
{ fetchurl, lib, stdenv, python3 { fetchurl, lib, stdenv, python3
, fetchFromGitHub, autoreconfHook , fetchFromGitHub, autoreconfHook
, installShellFiles
, enableStandardFeatures ? false , enableStandardFeatures ? false
, sourceHighlight ? null , sourceHighlight
, highlight ? null , highlight
, pygments ? null , pygments
, graphviz ? null , graphviz
, texlive ? null , texlive
, dblatexFull ? null , dblatexFull
, libxslt ? null , libxslt
, w3m ? null , w3m
, lynx ? null , lynx
, imagemagick ? null , imagemagick
, lilypond ? null , lilypond
, libxml2 ? null , libxml2
, docbook_xml_dtd_45 ? null , docbook_xml_dtd_45
, docbook_xsl_ns ? null , docbook_xsl_ns
, docbook_xsl ? null , docbook_xsl
, fop ? null , fop
# TODO: Package this: , epubcheck
#, epubcheck ? null , gnused
, gnused ? null , coreutils
, coreutils ? null
# if true, enable all the below filters and backends # if true, enable all the below filters and backends
, enableExtraPlugins ? false , enableExtraPlugins ? false
# unzip is needed to extract filter and backend plugins # unzip is needed to extract filter and backend plugins
, unzip ? null , unzip
# filters # filters
, enableDitaaFilter ? false, jre ? null , enableDitaaFilter ? false, jre
, enableMscgenFilter ? false, mscgen ? null , enableMscgenFilter ? false, mscgen
, enableDiagFilter ? false, blockdiag ? null, seqdiag ? null, actdiag ? null, nwdiag ? null , enableDiagFilter ? false, blockdiag, seqdiag, actdiag, nwdiag
, enableQrcodeFilter ? false, qrencode ? null , enableQrcodeFilter ? false, qrencode
, enableMatplotlibFilter ? false, matplotlib ? null, numpy ? null , enableMatplotlibFilter ? false, matplotlib, numpy
, enableAafigureFilter ? false, aafigure ? null, recursivePthLoader ? null , enableAafigureFilter ? false, aafigure, recursivePthLoader
# backends # backends
, enableDeckjsBackend ? false , enableDeckjsBackend ? false
, enableOdfBackend ? false , enableOdfBackend ? false
@ -44,38 +44,6 @@
, buildPackages , buildPackages
}: }:
assert enableStandardFeatures ->
sourceHighlight != null &&
highlight != null &&
pygments != null &&
graphviz != null &&
texlive != null &&
dblatexFull != null &&
libxslt != null &&
w3m != null &&
lynx != null &&
imagemagick != null &&
lilypond != null &&
libxml2 != null &&
docbook_xml_dtd_45 != null &&
docbook_xsl_ns != null &&
docbook_xsl != null &&
(fop != null || !enableJava) &&
# TODO: Package this:
# epubcheck != null &&
gnused != null &&
coreutils != null;
# filters
assert enableExtraPlugins || enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter || enableAafigureFilter -> unzip != null;
assert (enableExtraPlugins && enableJava) || enableDitaaFilter -> jre != null;
assert enableExtraPlugins || enableMscgenFilter -> mscgen != null;
assert enableExtraPlugins || enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null;
assert enableExtraPlugins || enableMatplotlibFilter -> matplotlib != null && numpy != null;
assert enableExtraPlugins || enableAafigureFilter -> aafigure != null && recursivePthLoader != null;
# backends
assert enableExtraPlugins || enableDeckjsBackend || enableOdfBackend -> unzip != null;
let let
_enableDitaaFilter = (enableExtraPlugins && enableJava) || enableDitaaFilter; _enableDitaaFilter = (enableExtraPlugins && enableJava) || enableDitaaFilter;
@ -144,26 +112,24 @@ let
sha256 = "08ya4bskygzqkfqwjllpg31qc5k08xp2k78z9b2480g8y57bfy10"; sha256 = "08ya4bskygzqkfqwjllpg31qc5k08xp2k78z9b2480g8y57bfy10";
}; };
in in python3.pkgs.buildPythonApplication rec {
stdenv.mkDerivation rec {
pname = "asciidoc" pname = "asciidoc"
+ lib.optionalString enableStandardFeatures "-full" + lib.optionalString enableStandardFeatures "-full"
+ lib.optionalString enableExtraPlugins "-with-plugins"; + lib.optionalString enableExtraPlugins "-with-plugins";
version = "9.1.0"; version = "10.2.0";
# Note: a substitution to improve reproducibility should be updated once 10.0.0 is
# released. See the comment in `patchPhase` for more information.
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "asciidoc"; owner = "asciidoc-py";
repo = "asciidoc-py3"; repo = "asciidoc-py";
rev = version; rev = version;
sha256 = "1clf1axkns23wfmh48xfspzsnw04pjh4mq1pshpzvj0cwxhz0yaq"; hash = "sha256-TqC0x9xB6e2d6Wc9bgnlqgZVOmYHmUUKfE/CKAiEtag=";
}; };
strictDeps = true; nativeBuildInputs = [
nativeBuildInputs = [ python3 unzip autoreconfHook ]; autoreconfHook
buildInputs = [ python3 ]; installShellFiles
unzip
];
# install filters early, so their shebangs are patched too # install filters early, so their shebangs are patched too
postPatch = with lib; '' postPatch = with lib; ''
@ -230,22 +196,22 @@ stdenv.mkDerivation rec {
-e "s|twopi|${graphviz}/bin/twopi|g" \ -e "s|twopi|${graphviz}/bin/twopi|g" \
-e "s|circo|${graphviz}/bin/circo|g" \ -e "s|circo|${graphviz}/bin/circo|g" \
-e "s|fdp|${graphviz}/bin/fdp|g" \ -e "s|fdp|${graphviz}/bin/fdp|g" \
-i "filters/graphviz/graphviz2png.py" -i "asciidoc/resources/filters/graphviz/graphviz2png.py"
sed -e "s|run('latex|run('${texlive}/bin/latex|g" \ sed -e "s|run('latex|run('${texlive}/bin/latex|g" \
-e "s|cmd = 'dvipng'|cmd = '${texlive}/bin/dvipng'|g" \ -e "s|cmd = 'dvipng'|cmd = '${texlive}/bin/dvipng'|g" \
-e "s|cmd = 'dvisvgm'|cmd = '${texlive}/bin/dvisvgm'|g" \ -e "s|cmd = 'dvisvgm'|cmd = '${texlive}/bin/dvisvgm'|g" \
-i "filters/latex/latex2img.py" -i "asciidoc/resources/filters/latex/latex2img.py"
sed -e "s|run('abc2ly|run('${lilypond}/bin/abc2ly|g" \ sed -e "s|run('abc2ly|run('${lilypond}/bin/abc2ly|g" \
-e "s|run('lilypond|run('${lilypond}/bin/lilypond|g" \ -e "s|run('lilypond|run('${lilypond}/bin/lilypond|g" \
-e "s|run('convert|run('${imagemagick.out}/bin/convert|g" \ -e "s|run('convert|run('${imagemagick.out}/bin/convert|g" \
-i "filters/music/music2png.py" -i "asciidoc/resources/filters/music/music2png.py"
sed -e 's|filter="source-highlight|filter="${sourceHighlight}/bin/source-highlight|' \ sed -e 's|filter="source-highlight|filter="${sourceHighlight}/bin/source-highlight|' \
-e 's|filter="highlight|filter="${highlight}/bin/highlight|' \ -e 's|filter="highlight|filter="${highlight}/bin/highlight|' \
-e 's|filter="pygmentize|filter="${pygments}/bin/pygmentize|' \ -e 's|filter="pygmentize|filter="${pygments}/bin/pygmentize|' \
-i "filters/source/source-highlight-filter.conf" -i "asciidoc/resources/filters/source/source-highlight-filter.conf"
# ENV is custom environment passed to programs that a2x invokes. Here we # ENV is custom environment passed to programs that a2x invokes. Here we
# use it to work around an impurity in the tetex package; tetex tools # use it to work around an impurity in the tetex package; tetex tools
@ -260,55 +226,45 @@ stdenv.mkDerivation rec {
-e "s|^W3M =.*|W3M = '${w3m}/bin/w3m'|" \ -e "s|^W3M =.*|W3M = '${w3m}/bin/w3m'|" \
-e "s|^LYNX =.*|LYNX = '${lynx}/bin/lynx'|" \ -e "s|^LYNX =.*|LYNX = '${lynx}/bin/lynx'|" \
-e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \ -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \
-e "s|^EPUBCHECK =.*|EPUBCHECK = 'nixpkgs_is_missing_epubcheck'|" \ -e "s|^EPUBCHECK =.*|EPUBCHECK = '${epubcheck}/bin/epubcheck'|" \
-i a2x.py -i asciidoc/a2x.py
'' else '' '' else ''
sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl_ns}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml')|" \ sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl_ns}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml')|" \
-e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \ -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \
-e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \ -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \
-i a2x.py -i asciidoc/a2x.py
'') + '' '') + ''
patchShebangs --host \
asciidoc.py \
a2x.py \
tests/testasciidoc.py \
filters/code/code-filter.py \
filters/latex/latex2img.py \
filters/music/music2png.py \
filters/unwraplatex.py \
filters/graphviz/graphviz2png.py
# Hardcode the path to its own asciidoc.
# This helps with cross-compilation.
substituteInPlace a2x.py \
--replace "find_executable(ASCIIDOC)" "'${placeholder "out"}/bin/asciidoc'"
# Note: this substitution will not work in the planned 10.0.0 release:
#
# https://github.com/asciidoc/asciidoc-py3/commit/dfffda23381014481cd13e8e9d8f131e1f93f08a
#
# Update this substitution to:
#
# --replace "python3 -m asciidoc.a2x" "python3 -m asciidoc.a2x -a revdate=01/01/1980"
substituteInPlace Makefile.in \
--replace "python3 a2x.py" "python3 a2x.py -a revdate=01/01/1980"
# Fix tests # Fix tests
for f in $(grep -R --files-with-matches "2002-11-25") ; do for f in $(grep -R --files-with-matches "2002-11-25") ; do
substituteInPlace $f --replace "2002-11-25" "1970-01-01" substituteInPlace $f --replace "2002-11-25" "1980-01-02"
substituteInPlace $f --replace "00:37:42" "00:00:01" substituteInPlace $f --replace "00:37:42" "00:00:00"
done done
'' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
# We want to use asciidoc from the build platform to build the documentation. # We want to use asciidoc from the build platform to build the documentation.
substituteInPlace Makefile.in \ substituteInPlace Makefile.in \
--replace "python3 a2x.py" "python3 ${buildPackages.asciidoc}/bin/a2x.py" --replace "python3 -m asciidoc.a2x" "${buildPackages.asciidoc}/bin/a2x"
''; '';
preInstall = "mkdir -p $out/etc/vim"; postBuild = ''
makeFlags = lib.optional stdenv.isCygwin "DESTDIR=/."; make manpages
'';
checkInputs = [ sourceHighlight ]; postInstall = ''
doCheck = true; installManPage doc/asciidoc.1 doc/a2x.1 doc/testasciidoc.1
'';
checkInputs = with python3.pkgs; [
pytest
pytest-mock
];
checkPhase = ''
runHook preCheck
make test
runHook postCheck
'';
meta = with lib; { meta = with lib; {
description = "Text-based document generation system"; description = "Text-based document generation system";
@ -325,9 +281,10 @@ stdenv.mkDerivation rec {
sourceProvenance = with sourceTypes; [ sourceProvenance = with sourceTypes; [
fromSource fromSource
] ++ lib.optional _enableDitaaFilter binaryBytecode; ] ++ lib.optional _enableDitaaFilter binaryBytecode;
homepage = "http://www.methods.co.nz/asciidoc/"; homepage = "https://asciidoc-py.github.io/";
changelog = "https://github.com/asciidoc-py/asciidoc-py/blob/${src.rev}/CHANGELOG.adoc";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = [ maintainers.bjornfor ]; maintainers = with maintainers; [ bjornfor dotlambda ];
}; };
} }

View file

@ -4601,21 +4601,17 @@ with pkgs;
arpoison = callPackage ../tools/networking/arpoison { }; arpoison = callPackage ../tools/networking/arpoison { };
asciidoc = callPackage ../tools/typesetting/asciidoc { asciidoc = callPackage ../tools/typesetting/asciidoc {
inherit (python3.pkgs) matplotlib numpy aafigure recursivePthLoader; inherit (python3.pkgs) pygments matplotlib numpy aafigure recursivePthLoader;
texlive = texlive.combine { inherit (texlive) scheme-minimal dvipng; };
w3m = w3m-batch;
enableStandardFeatures = false; enableStandardFeatures = false;
}; };
asciidoc-full = asciidoc.override { asciidoc-full = asciidoc.override {
inherit (python3.pkgs) pygments;
texlive = texlive.combine { inherit (texlive) scheme-minimal dvipng; };
w3m = w3m-batch;
enableStandardFeatures = true; enableStandardFeatures = true;
}; };
asciidoc-full-with-plugins = asciidoc.override { asciidoc-full-with-plugins = asciidoc.override {
inherit (python3.pkgs) pygments;
texlive = texlive.combine { inherit (texlive) scheme-minimal dvipng; };
w3m = w3m-batch;
enableStandardFeatures = true; enableStandardFeatures = true;
enableExtraPlugins = true; enableExtraPlugins = true;
}; };
@ -15527,20 +15523,27 @@ with pkgs;
ctmg = callPackage ../tools/security/ctmg { }; ctmg = callPackage ../tools/security/ctmg { };
cmake = libsForQt5.callPackage ../development/tools/build-managers/cmake { cmake = callPackage ../development/tools/build-managers/cmake {
inherit (darwin.apple_sdk.frameworks) SystemConfiguration; inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
inherit (libsForQt5) qtbase wrapQtAppsHook;
}; };
cmakeMinimal = libsForQt5.callPackage ../development/tools/build-managers/cmake { cmakeMinimal = callPackage ../development/tools/build-managers/cmake {
isBootstrap = true; isBootstrap = true;
qtbase = null;
wrapQtAppsHook = null;
# There is no SystemConfiguration in bootstrapTools, so this version gets # There is no SystemConfiguration in bootstrapTools, so this version gets
# patched to remove that dependency. # patched to remove that dependency.
SystemConfiguration = null; SystemConfiguration = null;
}; };
cmakeCurses = cmake.override { useNcurses = true; }; cmakeCurses = cmake.override {
uiToolkits = [ "ncurses" ];
};
cmakeWithGui = cmakeCurses.override { withQt5 = true; }; cmakeWithGui = cmake.override {
uiToolkits = [ "ncurses" "qt5" ];
};
cmake-format = python3Packages.callPackage ../development/tools/cmake-format { }; cmake-format = python3Packages.callPackage ../development/tools/cmake-format { };
@ -21042,23 +21045,6 @@ with pkgs;
sphinx = with python3Packages; toPythonApplication sphinx; sphinx = with python3Packages; toPythonApplication sphinx;
# A variation of sphinx that is only suitable for offline use as it excludes
# pyopenssl, which is broken on aarch64-darwin.
# https://github.com/NixOS/nixpkgs/issues/175875
sphinx_offline =
if !(stdenv.buildPlatform.isDarwin && stdenv.buildPlatform.isAarch64)
then sphinx
else
sphinx.override (o: {
requests = pkgsBuildTarget.python3Packages.requests.override (o: {
urllib3 = pkgsBuildTarget.python3Packages.urllib3.overrideAttrs (o: {
# urllib3 adds the optional pyopenssl to propagatedBuildInputs
# pkgs/development/python-modules/urllib3/default.nix
propagatedBuildInputs = [];
});
});
});
sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild; sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild;
sphinx-serve = with python3Packages; toPythonApplication sphinx-serve; sphinx-serve = with python3Packages; toPythonApplication sphinx-serve;
@ -23452,7 +23438,7 @@ with pkgs;
# latest 6.8 mysteriously fails to parse '@headings single': # latest 6.8 mysteriously fails to parse '@headings single':
# https://lists.gnu.org/archive/html/bug-texinfo/2021-09/msg00011.html # https://lists.gnu.org/archive/html/bug-texinfo/2021-09/msg00011.html
texinfo = texinfo6_7; texinfo = buildPackages.texinfo6_7;
}; };
gpm-ncurses = gpm.override { inherit ncurses; }; gpm-ncurses = gpm.override { inherit ncurses; };

View file

@ -49,8 +49,6 @@ let
# Use this rather than `rec { ... }` below for sake of overlays. # Use this rather than `rec { ... }` below for sake of overlays.
inherit (pkgs.haskell) compiler packages; inherit (pkgs.haskell) compiler packages;
sphinx = buildPackages.sphinx_offline;
in { in {
lib = haskellLibUncomposable; lib = haskellLibUncomposable;
@ -99,7 +97,7 @@ in {
packages.ghc8102Binary packages.ghc8102Binary
else else
packages.ghc865Binary; packages.ghc865Binary;
inherit sphinx; inherit (buildPackages.python3Packages) sphinx;
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7; buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7;
llvmPackages = pkgs.llvmPackages_7; llvmPackages = pkgs.llvmPackages_7;
}; };
@ -110,9 +108,12 @@ in {
# Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
if stdenv.isAarch64 || stdenv.isAarch32 then if stdenv.isAarch64 || stdenv.isAarch32 then
packages.ghc8107BinaryMinimal packages.ghc8107BinaryMinimal
else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
# to my (@a-m-joseph) knowledge there are no newer official binaries for this platform
packages.ghc865Binary
else else
packages.ghc8107Binary; packages.ghc8107Binary;
inherit sphinx; inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until # Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and # https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved. # https://github.com/xattr/xattr/issues/55 are solved.
@ -126,9 +127,11 @@ in {
# the oldest ghc with aarch64-darwin support is 8.10.5 # the oldest ghc with aarch64-darwin support is 8.10.5
if stdenv.isAarch64 || stdenv.isAarch32 then if stdenv.isAarch64 || stdenv.isAarch32 then
packages.ghc8107BinaryMinimal packages.ghc8107BinaryMinimal
else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
packages.ghc8107
else else
packages.ghc8107Binary; packages.ghc8107Binary;
inherit sphinx; inherit (buildPackages.python3Packages) sphinx;
inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr; inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr;
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12; buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
llvmPackages = pkgs.llvmPackages_12; llvmPackages = pkgs.llvmPackages_12;
@ -138,9 +141,11 @@ in {
# aarch64 ghc8107Binary exceeds max output size on hydra # aarch64 ghc8107Binary exceeds max output size on hydra
if stdenv.isAarch64 || stdenv.isAarch32 then if stdenv.isAarch64 || stdenv.isAarch32 then
packages.ghc8107BinaryMinimal packages.ghc8107BinaryMinimal
else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
packages.ghc8107
else else
packages.ghc8107Binary; packages.ghc8107Binary;
inherit sphinx; inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until # Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and # https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved. # https://github.com/xattr/xattr/issues/55 are solved.
@ -149,8 +154,12 @@ in {
llvmPackages = pkgs.llvmPackages_12; llvmPackages = pkgs.llvmPackages_12;
}; };
ghcHEAD = callPackage ../development/compilers/ghc/head.nix { ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
bootPkgs = packages.ghc8107Binary; bootPkgs =
inherit sphinx; if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
packages.ghc8107
else
packages.ghc8107Binary;
inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until # Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and # https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved. # https://github.com/xattr/xattr/issues/55 are solved.