[OE-core] [OE-Core][PATCH] net-tools: Ensure quilt only operates on local patches

Alex Kiernan alex.kiernan at gmail.com
Thu Aug 2 14:42:29 UTC 2018


When net-tools is built and the local patches haven't been applied, then
`quilt pop -a` will climb parent directories attempting to find a
{patches/.pc} directory; if this succeeds then we end up popping off
some completely unrelated patches from a parent directory.

Ensure that we do have a local patches directory and then turn off the
directory climbing so that we avoid this problem.

Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
---
I've been chasing this for an age...

I have a checkout that looks like this:

./poky
./meta-openembeded
./patches
./build

etc.

Inside patches I've got a quilt patch set which are backports from master which
I need for sumo.

I've had a problem for a while where some of those were getting reverted and
I've finally tracked it down to net-tools, which ends up reverting patches
which are unrelated to it. This happens when bitbake hasn't applied the patches
yet and so quilt ends up climbing parent directories until it finds something
it can reverse.

 meta/recipes-extended/net-tools/net-tools_1.60-26.bb | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-extended/net-tools/net-tools_1.60-26.bb b/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
index 5657fd8..a4e3285 100644
--- a/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
+++ b/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
@@ -48,7 +48,16 @@ PARALLEL_MAKE = ""
 # up all previously applied patches in the start
 nettools_do_patch() {
 	cd ${S}
-	quilt pop -a || true
+	# it's important that we only pop the existing patches when they've
+	# been applied, otherwise quilt will climb the directory tree
+	# and reverse out some completely different set of patches
+	if [ -d ${S}/patches ]; then
+		# whilst this is the default directory, doing it like this
+		# defeats the directory climbing that quilt will otherwise
+		# do; note the directory must exist to defeat this, hence
+		# the test inside which we operate
+		QUILT_PATCHES=${S}/patches quilt pop -a
+	fi
 	if [ -d ${S}/.pc-nettools ]; then
 		rm -rf ${S}/.pc
 		mv ${S}/.pc-nettools ${S}/.pc
-- 
2.7.4




More information about the Openembedded-core mailing list