From d0b88b606754cccb39b536dc921af268a1ef3ee8 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Sun, 28 Aug 2016 22:56:16 +0200
Subject: [PATCH] Revert "opkg: disable the use of vfork for the host build"

This reverts commit 02e3c718e9ad0c14aa3cf359ba2a4763e81df805.

Currently the vfork() code path in opkg is broken and relies on unsupported
ftello() / fseeko() operations on pipes - we need to restructure the code
before we can reconsider this approach.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
 package/system/opkg/Makefile                  |  2 +-
 .../system/opkg/patches/280-use-vfork.patch   | 19 +++++++------------
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/package/system/opkg/Makefile b/package/system/opkg/Makefile
index 446463ec85..67ceb7cafc 100644
--- a/package/system/opkg/Makefile
+++ b/package/system/opkg/Makefile
@@ -109,7 +109,7 @@ endef
 
 Package/opkg-smime/conffiles = $(Package/opkg/conffiles)
 
-TARGET_CFLAGS += -ffunction-sections -fdata-sections -DOPKG_USE_VFORK=1
+TARGET_CFLAGS += -ffunction-sections -fdata-sections
 EXTRA_CFLAGS += $(TARGET_CPPFLAGS)
 
 CONFIGURE_ARGS += \
diff --git a/package/system/opkg/patches/280-use-vfork.patch b/package/system/opkg/patches/280-use-vfork.patch
index fc6058a701..1c46f52b02 100644
--- a/package/system/opkg/patches/280-use-vfork.patch
+++ b/package/system/opkg/patches/280-use-vfork.patch
@@ -1,25 +1,20 @@
 --- a/libbb/gz_open.c
 +++ b/libbb/gz_open.c
-@@ -29,7 +29,12 @@
+@@ -29,7 +29,7 @@
  #include <unistd.h>
  #include "libbb.h"
  
-+#ifdef OPKG_USE_VFORK
-+static const int gz_use_vfork = OPKG_USE_VFORK;
-+#else
- static int gz_use_vfork;
-+#endif
-+
+-static int gz_use_vfork;
++static const int gz_use_vfork = 1;
  
  FILE *
  gz_open(FILE *compressed_file, int *pid)
-@@ -38,7 +43,9 @@ gz_open(FILE *compressed_file, int *pid)
+@@ -38,8 +38,6 @@ gz_open(FILE *compressed_file, int *pid)
  	off_t floc;
  	int cfile = -1;
  
-+#ifndef OPKG_USE_VFORK
- 	gz_use_vfork = (getenv("OPKG_USE_VFORK") != NULL);
-+#endif
- 
+-	gz_use_vfork = (getenv("OPKG_USE_VFORK") != NULL);
+-
  	if (gz_use_vfork) {
  		/* Create a new file descriptor for the input stream
+ 		 * (it *must* be associated with a file), and lseek()
-- 
2.30.2