gmp5: drop

It is not maintained upstream and there is no remaining usages in
nixpkgs.
This commit is contained in:
Thomas Gerbet 2024-10-28 14:34:34 +01:00
parent 186411877a
commit 5df8b35ce0
4 changed files with 1 additions and 108 deletions

View File

@ -1,20 +0,0 @@
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)
{

View File

@ -1,87 +0,0 @@
{ 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.hostPlatform.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.hostPlatform.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.hostPlatform.isDarwin) "CPPFLAGS=-fexceptions"
++ optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.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" ];
# never built on aarch64-darwin since first introduction in nixpkgs
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
};
};
in self

View File

@ -401,6 +401,7 @@ mapAliases {
gfortran48 = throw "'gfortran48' has been removed from nixpkgs"; # Added 2024-09-10
gfortran49 = throw "'gfortran49' has been removed from nixpkgs"; # Added 2024-09-11
ghostwriter = libsForQt5.kdeGear.ghostwriter; # Added 2023-03-18
gmp5 = throw "'gmp5' has been removed as it is unmaintained. Consider using 'gmp' instead"; # Added 2024-10-28
gmpc = throw "'gmpc' has been removed due to lack of maintenance upstream. Consider using 'plattenalbum' instead"; # Added 2024-09-14
gmtk = throw "'gmtk' has been removed due to lack of maintenance upstream"; # Added 2024-09-14
gmtp = throw "'gmtp' has been removed due to lack of maintenance upstream. Consider using 'gnome-music' instead"; # Added 2024-09-14

View File

@ -19791,7 +19791,6 @@ with pkgs;
gmm = callPackage ../development/libraries/gmm { };
gmp4 = callPackage ../development/libraries/gmp/4.3.2.nix { }; # required by older GHC versions
gmp5 = callPackage ../development/libraries/gmp/5.1.x.nix { };
gmp6 = callPackage ../development/libraries/gmp/6.x.nix { };
gmp = gmp6;
gmpxx = gmp.override { cxx = true; };