uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
76
pkgs/development/libraries/gmp/4.3.2.nix
Normal file
76
pkgs/development/libraries/gmp/4.3.2.nix
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
{ lib, stdenv, fetchurl, m4, cxx ? true }:
|
||||
|
||||
let self = stdenv.mkDerivation rec {
|
||||
pname = "gmp";
|
||||
version = "4.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/gmp/gmp-${version}.tar.bz2";
|
||||
sha256 = "0x8prpqi9amfcmi7r4zrza609ai9529pjaq0h4aw51i867064qck";
|
||||
};
|
||||
|
||||
#outputs TODO: split $cxx due to libstdc++ dependency
|
||||
# maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added
|
||||
# - see #5855 for related discussion
|
||||
outputs = [ "out" "dev" "info" ];
|
||||
passthru.static = self.out;
|
||||
|
||||
nativeBuildInputs = [ m4 ];
|
||||
|
||||
# Prevent the build system from using sub-architecture-specific
|
||||
# instructions (e.g., SSE2 on i686).
|
||||
#
|
||||
# This is not a problem for Apple machines, which are all alike. In
|
||||
# addition, `configfsf.guess' would return `i386-apple-darwin10.2.0' on
|
||||
# `x86_64-darwin', leading to a 32-bit ABI build, which is undesirable.
|
||||
preConfigure =
|
||||
if !stdenv.isDarwin
|
||||
then "ln -sf configfsf.guess config.guess"
|
||||
else ''echo "Darwin host is `./config.guess`."'';
|
||||
|
||||
configureFlags = [
|
||||
(lib.enableFeature cxx "cxx")
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
"ac_cv_build=x86_64-apple-darwin13.4.0"
|
||||
"ac_cv_host=x86_64-apple-darwin13.4.0"
|
||||
];
|
||||
|
||||
# The test t-lucnum_ui fails (on Linux/x86_64) when built with GCC 4.8.
|
||||
# Newer versions of GMP don't have that issue anymore.
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
branch = "4";
|
||||
description = "GNU multiple precision arithmetic library";
|
||||
|
||||
longDescription =
|
||||
'' GMP is a free library for arbitrary precision arithmetic, operating
|
||||
on signed integers, rational numbers, and floating point numbers.
|
||||
There is no practical limit to the precision except the ones implied
|
||||
by the available memory in the machine GMP runs on. GMP has a rich
|
||||
set of functions, and the functions have a regular interface.
|
||||
|
||||
The main target applications for GMP are cryptography applications
|
||||
and research, Internet security applications, algebra systems,
|
||||
computational algebra research, etc.
|
||||
|
||||
GMP is carefully designed to be as fast as possible, both for small
|
||||
operands and for huge operands. The speed is achieved by using
|
||||
fullwords as the basic arithmetic type, by using fast algorithms,
|
||||
with highly optimised assembly code for the most common inner loops
|
||||
for a lot of CPUs, and by a general emphasis on speed.
|
||||
|
||||
GMP is faster than any other bignum library. The advantage for GMP
|
||||
increases with the operand sizes for many operations, since GMP uses
|
||||
asymptotically faster algorithms.
|
||||
'';
|
||||
|
||||
homepage = "https://gmplib.org/";
|
||||
license = lib.licenses.lgpl3Plus;
|
||||
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.all;
|
||||
badPlatforms = [ "x86_64-darwin" ];
|
||||
};
|
||||
};
|
||||
in self
|
||||
20
pkgs/development/libraries/gmp/5.1.3-CVE-2021-43618.patch
Normal file
20
pkgs/development/libraries/gmp/5.1.3-CVE-2021-43618.patch
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
Based on https://gmplib.org/repo/gmp-6.2/raw-rev/561a9c25298e,
|
||||
adapted for 5.x by ris
|
||||
|
||||
diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c
|
||||
--- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100
|
||||
+++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200
|
||||
@@ -81,8 +81,11 @@
|
||||
|
||||
abs_csize = ABS (csize);
|
||||
|
||||
+ if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8))
|
||||
+ return 0; /* Bit size overflows */
|
||||
+
|
||||
/* round up to a multiple of limbs */
|
||||
- abs_xsize = (abs_csize*8 + GMP_NUMB_BITS-1) / GMP_NUMB_BITS;
|
||||
+ abs_xsize = ((mp_bitcnt_t)abs_csize*8 + GMP_NUMB_BITS-1) / GMP_NUMB_BITS;
|
||||
|
||||
if (abs_xsize != 0)
|
||||
{
|
||||
|
||||
85
pkgs/development/libraries/gmp/5.1.x.nix
Normal file
85
pkgs/development/libraries/gmp/5.1.x.nix
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
{ lib, stdenv, fetchurl, m4
|
||||
, cxx ? true
|
||||
, withStatic ? stdenv.hostPlatform.isStatic
|
||||
}:
|
||||
|
||||
let inherit (lib) optional; in
|
||||
|
||||
let self = stdenv.mkDerivation rec {
|
||||
pname = "gmp";
|
||||
version = "5.1.3";
|
||||
|
||||
src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
|
||||
urls = [ "mirror://gnu/gmp/gmp-${version}.tar.bz2" "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" ];
|
||||
sha256 = "0q5i39pxrasgn9qdxzpfbwhh11ph80p57x6hf48m74261d97j83m";
|
||||
};
|
||||
|
||||
#outputs TODO: split $cxx due to libstdc++ dependency
|
||||
# maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added
|
||||
# - see #5855 for related discussion
|
||||
outputs = [ "out" "dev" "info" ];
|
||||
passthru.static = self.out;
|
||||
|
||||
nativeBuildInputs = [ m4 ];
|
||||
|
||||
patches = [
|
||||
./5.1.3-CVE-2021-43618.patch
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
./need-size-t.patch
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--with-pic"
|
||||
(lib.enableFeature cxx "cxx")
|
||||
# Build a "fat binary", with routines for several sub-architectures
|
||||
# (x86), except on Solaris where some tests crash with "Memory fault".
|
||||
# See <https://hydra.nixos.org/build/2760931>, for instance.
|
||||
#
|
||||
# no darwin because gmp uses ASM that clang doesn't like
|
||||
(lib.enableFeature (!stdenv.isSunOS && stdenv.hostPlatform.isx86) "fat")
|
||||
# The config.guess in GMP tries to runtime-detect various
|
||||
# ARM optimization flags via /proc/cpuinfo (and is also
|
||||
# broken on multicore CPUs). Avoid this impurity.
|
||||
"--build=${stdenv.buildPlatform.config}"
|
||||
] ++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions"
|
||||
++ optional (stdenv.isDarwin && stdenv.is64bit) "ABI=64"
|
||||
;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
dontDisableStatic = withStatic;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gmplib.org/";
|
||||
description = "GNU multiple precision arithmetic library";
|
||||
license = licenses.gpl3Plus;
|
||||
|
||||
longDescription =
|
||||
'' GMP is a free library for arbitrary precision arithmetic, operating
|
||||
on signed integers, rational numbers, and floating point numbers.
|
||||
There is no practical limit to the precision except the ones implied
|
||||
by the available memory in the machine GMP runs on. GMP has a rich
|
||||
set of functions, and the functions have a regular interface.
|
||||
|
||||
The main target applications for GMP are cryptography applications
|
||||
and research, Internet security applications, algebra systems,
|
||||
computational algebra research, etc.
|
||||
|
||||
GMP is carefully designed to be as fast as possible, both for small
|
||||
operands and for huge operands. The speed is achieved by using
|
||||
fullwords as the basic arithmetic type, by using fast algorithms,
|
||||
with highly optimised assembly code for the most common inner loops
|
||||
for a lot of CPUs, and by a general emphasis on speed.
|
||||
|
||||
GMP is faster than any other bignum library. The advantage for GMP
|
||||
increases with the operand sizes for many operations, since GMP uses
|
||||
asymptotically faster algorithms.
|
||||
'';
|
||||
|
||||
platforms = platforms.all;
|
||||
badPlatforms = [ "x86_64-darwin" ];
|
||||
};
|
||||
};
|
||||
in self
|
||||
19
pkgs/development/libraries/gmp/6.2.1-CVE-2021-43618.patch
Normal file
19
pkgs/development/libraries/gmp/6.2.1-CVE-2021-43618.patch
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
https://gmplib.org/repo/gmp-6.2/raw-rev/561a9c25298e
|
||||
|
||||
diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c
|
||||
--- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100
|
||||
+++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200
|
||||
@@ -88,8 +88,11 @@
|
||||
|
||||
abs_csize = ABS (csize);
|
||||
|
||||
+ if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8))
|
||||
+ return 0; /* Bit size overflows */
|
||||
+
|
||||
/* round up to a multiple of limbs */
|
||||
- abs_xsize = BITS_TO_LIMBS (abs_csize*8);
|
||||
+ abs_xsize = BITS_TO_LIMBS ((mp_bitcnt_t) abs_csize * 8);
|
||||
|
||||
if (abs_xsize != 0)
|
||||
{
|
||||
|
||||
92
pkgs/development/libraries/gmp/6.x.nix
Normal file
92
pkgs/development/libraries/gmp/6.x.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{ lib, stdenv, fetchurl, m4
|
||||
, cxx ? !stdenv.hostPlatform.useAndroidPrebuilt && !stdenv.hostPlatform.isWasm
|
||||
, buildPackages
|
||||
, withStatic ? stdenv.hostPlatform.isStatic
|
||||
}:
|
||||
|
||||
# Note: this package is used for bootstrapping fetchurl, and thus
|
||||
# cannot use fetchpatch! All mutable patches (generated by GitHub or
|
||||
# cgit) that are needed here should be included directly in Nixpkgs as
|
||||
# files.
|
||||
|
||||
let inherit (lib) optional; in
|
||||
|
||||
let self = stdenv.mkDerivation rec {
|
||||
pname = "gmp${lib.optionalString cxx "-with-cxx"}";
|
||||
version = "6.2.1";
|
||||
|
||||
src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
|
||||
urls = [ "mirror://gnu/gmp/gmp-${version}.tar.bz2" "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" ];
|
||||
sha256 = "0z2ddfiwgi0xbf65z4fg4hqqzlhv0cc6hdcswf3c6n21xdmk5sga";
|
||||
};
|
||||
|
||||
patches = [ ./6.2.1-CVE-2021-43618.patch ];
|
||||
|
||||
#outputs TODO: split $cxx due to libstdc++ dependency
|
||||
# maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added
|
||||
# - see #5855 for related discussion
|
||||
outputs = [ "out" "dev" "info" ];
|
||||
passthru.static = self.out;
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
nativeBuildInputs = [ m4 ];
|
||||
|
||||
configureFlags = [
|
||||
"--with-pic"
|
||||
(lib.enableFeature cxx "cxx")
|
||||
# Build a "fat binary", with routines for several sub-architectures
|
||||
# (x86), except on Solaris where some tests crash with "Memory fault".
|
||||
# See <https://hydra.nixos.org/build/2760931>, for instance.
|
||||
#
|
||||
# no darwin because gmp uses ASM that clang doesn't like
|
||||
(lib.enableFeature (!stdenv.isSunOS && stdenv.hostPlatform.isx86) "fat")
|
||||
# The config.guess in GMP tries to runtime-detect various
|
||||
# ARM optimization flags via /proc/cpuinfo (and is also
|
||||
# broken on multicore CPUs). Avoid this impurity.
|
||||
"--build=${stdenv.buildPlatform.config}"
|
||||
] ++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions"
|
||||
++ optional (stdenv.isDarwin && stdenv.is64bit) "ABI=64"
|
||||
# to build a .dll on windows, we need --disable-static + --enable-shared
|
||||
# see https://gmplib.org/manual/Notes-for-Particular-Systems.html
|
||||
++ optional (!withStatic && stdenv.hostPlatform.isWindows) "--disable-static --enable-shared"
|
||||
++ optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) "--disable-assembly";
|
||||
|
||||
doCheck = true; # not cross;
|
||||
|
||||
dontDisableStatic = withStatic;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gmplib.org/";
|
||||
description = "GNU multiple precision arithmetic library";
|
||||
license = licenses.gpl3Plus;
|
||||
|
||||
longDescription =
|
||||
'' GMP is a free library for arbitrary precision arithmetic, operating
|
||||
on signed integers, rational numbers, and floating point numbers.
|
||||
There is no practical limit to the precision except the ones implied
|
||||
by the available memory in the machine GMP runs on. GMP has a rich
|
||||
set of functions, and the functions have a regular interface.
|
||||
|
||||
The main target applications for GMP are cryptography applications
|
||||
and research, Internet security applications, algebra systems,
|
||||
computational algebra research, etc.
|
||||
|
||||
GMP is carefully designed to be as fast as possible, both for small
|
||||
operands and for huge operands. The speed is achieved by using
|
||||
fullwords as the basic arithmetic type, by using fast algorithms,
|
||||
with highly optimised assembly code for the most common inner loops
|
||||
for a lot of CPUs, and by a general emphasis on speed.
|
||||
|
||||
GMP is faster than any other bignum library. The advantage for GMP
|
||||
increases with the operand sizes for many operations, since GMP uses
|
||||
asymptotically faster algorithms.
|
||||
'';
|
||||
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.vrthra ];
|
||||
};
|
||||
};
|
||||
in self
|
||||
18
pkgs/development/libraries/gmp/need-size-t.patch
Normal file
18
pkgs/development/libraries/gmp/need-size-t.patch
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
diff --git a/gmp-h.in b/gmp-h.in
|
||||
index 7deb67a..240d663 100644
|
||||
--- a/gmp-h.in
|
||||
+++ b/gmp-h.in
|
||||
@@ -46,13 +46,11 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
|
||||
#ifndef __GNU_MP__
|
||||
#define __GNU_MP__ 5
|
||||
|
||||
-#define __need_size_t /* tell gcc stddef.h we only want size_t */
|
||||
#if defined (__cplusplus)
|
||||
#include <cstddef> /* for size_t */
|
||||
#else
|
||||
#include <stddef.h> /* for size_t */
|
||||
#endif
|
||||
-#undef __need_size_t
|
||||
|
||||
/* Instantiated by configure. */
|
||||
#if ! defined (__GMP_WITHIN_CONFIGURE)
|
||||
Loading…
Add table
Add a link
Reference in a new issue