package/dhcpcd: fix build without fork
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Mon, 13 Jul 2020 09:01:40 +0000 (11:01 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Mon, 13 Jul 2020 19:49:50 +0000 (21:49 +0200)
- Add a patch to fix build without fork in src/dhcpcd.c. This
  regression was introduced in upstream commit
  3063ebb6c8ac7c96196fa923cdd5f7c0384de23b, which was merged in dhcpcd
  9.0.0. Therefore, Buildroot is affected since we bumped from 8.0.3
  to 9.1.4 in commit 809f548e79c6c099f1fa3e3728d90842be7059a7, which
  was applied after 2020.05

- Disable privsep as it unconditionally uses fork (privsep has been
  enabled by default since version 9.0.0 and
  https://github.com/rsmarples/dhcpcd/commit/3a4c2e5604d72151b06ed365aa71493740a3ad75)

Fixes:

 - http://autobuild.buildroot.org/results/9fcc88abedcb8a02946f37837dcf4fff02f66c23

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/dhcpcd/0001-src-dhcpcd.c-fix-build-without-fork.patch [new file with mode: 0644]
package/dhcpcd/dhcpcd.mk

diff --git a/package/dhcpcd/0001-src-dhcpcd.c-fix-build-without-fork.patch b/package/dhcpcd/0001-src-dhcpcd.c-fix-build-without-fork.patch
new file mode 100644 (file)
index 0000000..07e6d64
--- /dev/null
@@ -0,0 +1,36 @@
+From 13e475d9847bf7d6a6af62397f67eb269e27613e Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Mon, 13 Jul 2020 10:43:51 +0200
+Subject: [PATCH] src/dhcpcd.c: fix build without fork
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Upstream status: https://github.com/rsmarples/dhcpcd/pull/17]
+---
+ src/dhcpcd.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/dhcpcd.c b/src/dhcpcd.c
+index ee585aa4..b597a5c0 100644
+--- a/src/dhcpcd.c
++++ b/src/dhcpcd.c
+@@ -336,7 +336,7 @@ dhcpcd_daemonise(struct dhcpcd_ctx *ctx)
+ #ifdef THERE_IS_NO_FORK
+       eloop_timeout_delete(ctx->eloop, handle_exit_timeout, ctx);
+       errno = ENOSYS;
+-      return 0;
++      return;
+ #else
+       int i;
+       unsigned int logopts = loggetopts();
+@@ -2211,7 +2211,7 @@ printpidfile:
+       ps_init(&ctx);
+ #endif
+-#ifdef USE_SIGNALS
++#if defined(USE_SIGNALS) && !defined(THERE_IS_NO_FORK)
+       if (pipe(sigpipe) == -1) {
+               logerr("pipe");
+               goto exit_failure;
+-- 
+2.27.0
+
index a40696924c89db065935f3ff040cbc42702760d9..0dcd36f3695fa2a37ffd50dc82cf9ad0d8dca1f7 100644 (file)
@@ -16,7 +16,7 @@ DHCPCD_CONFIG_OPTS += --enable-static
 endif
 
 ifeq ($(BR2_USE_MMU),)
-DHCPCD_CONFIG_OPTS += --disable-fork
+DHCPCD_CONFIG_OPTS += --disable-fork --disable-privsep
 endif
 
 define DHCPCD_CONFIGURE_CMDS