summaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim@guixotic.coop>2025-07-21 00:25:52 +0900
committerMaxim Cournoyer <maxim@guixotic.coop>2025-07-22 00:42:19 +0900
commit788b0339d4e05e2b5ab67c60f2a1f81e446cf3f7 (patch)
treefe6d5decf149acaee87be2224eae0e6634fef7a5 /gnu/packages/patches
parent7cd121433b79bf69ab0e7990ef3ccff1bebf6945 (diff)
gnu: opendht: Fix build with GCC 14.
* gnu/packages/patches/opendht-nanosleep.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/networking.scm (opendht) [source]: Apply it. Change-Id: I14589dba3a99ae51bb522ffdbe2a1390c74aa75a
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/opendht-nanosleep.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/gnu/packages/patches/opendht-nanosleep.patch b/gnu/packages/patches/opendht-nanosleep.patch
new file mode 100644
index 0000000000..42b1b24c34
--- /dev/null
+++ b/gnu/packages/patches/opendht-nanosleep.patch
@@ -0,0 +1,61 @@
+Upstream-status: merged with commit ccec6c2f6770484278b25c3335d4bd8882bc4c87
+
+diff --git a/configure.ac b/configure.ac
+index b54d5b49..584b0179 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -83,6 +83,7 @@ case "${host_os}" in
+ ;;
+ linux*)
+ SYS=linux
++ CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200809L"
+ ;;
+ darwin*)
+ SYS=darwin
+diff --git a/src/compat/msvc/unistd.h b/src/compat/msvc/unistd.h
+index d43d4796..abcc1c61 100644
+--- a/src/compat/msvc/unistd.h
++++ b/src/compat/msvc/unistd.h
+@@ -50,4 +50,6 @@
+ typedef int mode_t;
+ #include <BaseTsd.h>
+
++#define nanosleep(x) Sleep((x) / 1000000)
++
+ #endif
+diff --git a/tools/dhtcnode.c b/tools/dhtcnode.c
+index cdb04714..f78a7f7f 100644
+--- a/tools/dhtcnode.c
++++ b/tools/dhtcnode.c
+@@ -24,12 +24,17 @@
+ #include <stdlib.h>
+ #include <stdatomic.h>
+ #include <inttypes.h>
++#include <time.h>
+
+ #include <getopt.h>
+ #include <readline/readline.h>
+ #include <readline/history.h>
+ #include <arpa/inet.h>
+
++#ifdef _WIN32
++#include <windows.h>
++#endif
++
+ struct op_context {
+ dht_runner* runner;
+ atomic_bool stop;
+@@ -287,7 +292,12 @@ int main(int argc, char **argv)
+
+ // Wait until shutdown callback is called
+ while (!atomic_load(&ctx.stop)) {
+- usleep(10000);
++#ifdef _WIN32
++ Sleep(10); // 10ms
++#else
++ struct timespec ts = {0, 10000000}; // 10ms
++ nanosleep(&ts, NULL);
++#endif
+ }
+ dht_runner_delete(runner);
+ return EXIT_SUCCESS;