diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2023-08-19 13:32:42 +0200 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2023-09-24 15:10:49 +0200 |
commit | d00a220853e808e2fcc9b951628645e779d56db6 (patch) | |
tree | fea3ff5400bbe071c590c6ef98d2d2614568c613 /pkgs/applications/radio | |
parent | e86152986c6e6c563ced037c91403318d5a8b447 (diff) | |
download | nixlib-d00a220853e808e2fcc9b951628645e779d56db6.tar nixlib-d00a220853e808e2fcc9b951628645e779d56db6.tar.gz nixlib-d00a220853e808e2fcc9b951628645e779d56db6.tar.bz2 nixlib-d00a220853e808e2fcc9b951628645e779d56db6.tar.lz nixlib-d00a220853e808e2fcc9b951628645e779d56db6.tar.xz nixlib-d00a220853e808e2fcc9b951628645e779d56db6.tar.zst nixlib-d00a220853e808e2fcc9b951628645e779d56db6.zip |
direwolf: fix build w/ glibc-2.38
Failing Hydra build: https://hydra.nixos.org/build/230546596
Diffstat (limited to 'pkgs/applications/radio')
-rw-r--r-- | pkgs/applications/radio/direwolf/default.nix | 2 | ||||
-rw-r--r-- | pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch | 89 |
2 files changed, 91 insertions, 0 deletions
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix index d3c01aff7695..463ac0b50af9 100644 --- a/pkgs/applications/radio/direwolf/default.nix +++ b/pkgs/applications/radio/direwolf/default.nix @@ -14,6 +14,8 @@ stdenv.mkDerivation rec { sha256 = "0xmz64m02knbrpasfij4rrq53ksxna5idxwgabcw4n2b1ig7pyx5"; }; + patches = [ ./fix-strlcpy-usage.patch ]; + nativeBuildInputs = [ cmake ]; strictDeps = true; diff --git a/pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch b/pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch new file mode 100644 index 000000000000..9f43415114cb --- /dev/null +++ b/pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch @@ -0,0 +1,89 @@ +strlcpy is now part of glibc, so there's absolutely no reason for a custom implementation, especially +one with printf debugging. Hence, removing all of that. + +See also https://hydra.nixos.org/build/230546596 +See glibc commit 454a20c8756c9c1d55419153255fc7692b3d2199 + +diff --git a/external/misc/strlcpy.c b/external/misc/strlcpy.c +index ff18800..b1cb443 100644 +--- a/external/misc/strlcpy.c ++++ b/external/misc/strlcpy.c +@@ -56,65 +56,3 @@ + + #include "textcolor.h" + +-/* +- * Copy src to string dst of size siz. At most siz-1 characters +- * will be copied. Always NUL terminates (unless siz == 0). +- * Returns strlen(src); if retval >= siz, truncation occurred. +- */ +- +-#if DEBUG_STRL +-size_t strlcpy_debug(char *__restrict__ dst, const char *__restrict__ src, size_t siz, const char *file, const char *func, int line) +-#else +-size_t strlcpy_debug(char *__restrict__ dst, const char *__restrict__ src, size_t siz) +-#endif +-{ +- char *d = dst; +- const char *s = src; +- size_t n = siz; +- size_t retval; +- +-#if DEBUG_STRL +- if (dst == NULL) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("ERROR: strlcpy dst is NULL. (%s %s %d)\n", file, func, line); +- return (0); +- } +- if (src == NULL) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("ERROR: strlcpy src is NULL. (%s %s %d)\n", file, func, line); +- return (0); +- } +- if (siz == 1 || siz == 4) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("Suspicious strlcpy siz. Is it using sizeof a pointer variable? (%s %s %d)\n", file, func, line); +- } +-#endif +- +- /* Copy as many bytes as will fit */ +- if (n != 0 && --n != 0) { +- do { +- if ((*d++ = *s++) == 0) +- break; +- } while (--n != 0); +- } +- +- /* Not enough room in dst, add NUL and traverse rest of src */ +- if (n == 0) { +- if (siz != 0) +- *d = '\0'; /* NUL-terminate dst */ +- while (*s++) +- ; +- } +- +- retval = s - src - 1; /* count does not include NUL */ +- +-#if DEBUG_STRL +- if (retval >= siz) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("WARNING: strlcpy result length %d exceeds maximum length %d. (%s %s %d)\n", +- (int)retval, (int)(siz-1), file, func, line); +- } +-#endif +- return (retval); +-} +- +diff --git a/src/direwolf.h b/src/direwolf.h +index efc329b..22eb748 100644 +--- a/src/direwolf.h ++++ b/src/direwolf.h +@@ -294,7 +294,7 @@ char *strcasestr(const char *S, const char *FIND); + #define HAVE_STRLCPY 1 + + +-#define DEBUG_STRL 1 ++#define DEBUG_STRL 0 + + #if DEBUG_STRL + |