mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-30 16:10:36 +00:00
pcre: drop
The package is considered end of life and was last maintainted in 2015. We spent the 26.11 cycle working on removing our reliance on it and this is the final stretch.
This commit is contained in:
@@ -1,101 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
updateAutotoolsGnuConfigScriptsHook,
|
||||
pcre,
|
||||
windows ? null,
|
||||
# Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51
|
||||
enableJit ? !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64),
|
||||
variant ? null,
|
||||
}:
|
||||
|
||||
assert lib.elem variant [
|
||||
null
|
||||
"cpp"
|
||||
"pcre32"
|
||||
];
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname =
|
||||
"pcre"
|
||||
+ lib.optionalString (variant == "cpp") "-cpp"
|
||||
+ lib.optionalString (variant != "cpp" && variant != null) variant;
|
||||
version = "8.45";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/project/pcre/pcre/${version}/pcre-${version}.tar.bz2";
|
||||
sha256 = "sha256-Ta5v3NK7C7bDe1+Xwzwr6VTadDmFNpzdrDVG4yGL/7g=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"bin"
|
||||
"dev"
|
||||
"out"
|
||||
"doc"
|
||||
"man"
|
||||
];
|
||||
|
||||
hardeningDisable = lib.optional enableJit "shadowstack";
|
||||
|
||||
configureFlags = [
|
||||
"--enable-unicode-properties"
|
||||
"--disable-cpp"
|
||||
]
|
||||
++ lib.optional enableJit "--enable-jit=auto"
|
||||
++ lib.optional (variant != null) "--enable-${variant}";
|
||||
|
||||
patches = [
|
||||
# https://bugs.exim.org/show_bug.cgi?id=2173
|
||||
./stacksize-detection.patch
|
||||
|
||||
# Fix segfaults & tests on powerpc64
|
||||
(fetchpatch {
|
||||
name = "sljit-ppc-icache-flush.patch";
|
||||
url = "https://github.com/void-linux/void-packages/raw/d286e231ee680875ad8e80f90ea62e46f5edd812/srcpkgs/pcre/patches/ppc-icache-flush.patch";
|
||||
hash = "sha256-pttmKwihLzKrAV6O4qVLp2pu4NwNJEFS/9Id8/b3nAU=";
|
||||
})
|
||||
];
|
||||
|
||||
# necessary to build on FreeBSD native pending inclusion of
|
||||
# https://git.savannah.gnu.org/cgit/config.git/commit/?id=e4786449e1c26716e3f9ea182caf472e4dbc96e0
|
||||
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
|
||||
|
||||
preCheck = ''
|
||||
patchShebangs RunGrepTest
|
||||
'';
|
||||
|
||||
doCheck =
|
||||
!(with stdenv.hostPlatform; isCygwin || isFreeBSD) && stdenv.hostPlatform == stdenv.buildPlatform;
|
||||
# XXX: test failure on Cygwin
|
||||
# we are running out of stack on both freeBSDs on Hydra
|
||||
|
||||
postFixup = ''
|
||||
moveToOutput bin/pcre-config "$dev"
|
||||
''
|
||||
+ lib.optionalString (variant != null) ''
|
||||
ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.{so.*.*.*,*dylib,*a}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.pcre.org/";
|
||||
description = "Library for Perl Compatible Regular Expressions";
|
||||
license = lib.licenses.bsd3;
|
||||
|
||||
longDescription = ''
|
||||
The PCRE library is a set of functions that implement regular
|
||||
expression pattern matching using the same syntax and semantics as
|
||||
Perl 5. PCRE has its own native API, as well as a set of wrapper
|
||||
functions that correspond to the POSIX regular expression API. The
|
||||
PCRE library is free, even for building proprietary software.
|
||||
'';
|
||||
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = [ ];
|
||||
pkgConfigModules = [
|
||||
"libpcre"
|
||||
"libpcreposix"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
diff --git a/pcre_exec.c b/pcre_exec.c
|
||||
--- a/pcre_exec.c
|
||||
+++ b/pcre_exec.c
|
||||
@@ -509,6 +509,12 @@
|
||||
(e.g. stopped by repeated call or recursion limit)
|
||||
*/
|
||||
|
||||
+#ifdef __GNUC__
|
||||
+static int
|
||||
+match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode,
|
||||
+ PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb,
|
||||
+ unsigned int rdepth) __attribute__((noinline,noclone));
|
||||
+#endif
|
||||
static int
|
||||
match(REGISTER PCRE_PUCHAR eptr, REGISTER const pcre_uchar *ecode,
|
||||
PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb,
|
||||
@@ -2088,6 +2088,7 @@ mapAliases {
|
||||
pcmciaUtils = warnAlias "'pcmciaUtils' has been renamed to 'pcmciautils'" pcmciautils; # Added 2026-02-12
|
||||
pcp = throw "'pcp' has been removed because the upstream repo was archived and it hasn't been updated since 2021"; # Added 2025-09-23
|
||||
pcre16 = throw "'pcre16' has been removed because it is obsolete. Consider migrating to 'pcre2' instead."; # Added 2025-05-29
|
||||
pcre = throw "'pcre' has been removed because it is end of life and was not updated upstream since 2015"; # Added 2026-10-25
|
||||
pcre-cpp = throw "'pcre-cpp' has been removed because it is obsolete. Consider migrating to 'pcre2' instead."; # Added 2026-10-20
|
||||
pcsctools = throw "'pcsctools' has been renamed to/replaced by 'pcsc-tools'"; # Converted to throw 2025-10-27
|
||||
pcsx2-bin = throw "pcsx2-bin has been removed as it only supported x86_64-darwin"; # Added 2026-06-26
|
||||
|
||||
Reference in New Issue
Block a user