diff mbox

[OpenWrt-Devel] xtables-addons: build: fix configure compatiblity with POSIX shells

Message ID c2add639fad3fe3a406f33f604f3658f94cc11c8.1459884415.git.mschiffer@universe-factory.net
State Accepted
Headers show

Commit Message

Matthias Schiffer April 5, 2016, 7:26 p.m. UTC
Fixes build with /bin/sh pointing to certain versions of dash (for example
on Void Linux).

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
---
 ...-configure-compatiblity-with-POSIX-shells.patch | 51 ++++++++++++++++++++++
 .../patches/002-fix-kernel-version-detection.patch | 12 ++---
 2 files changed, 57 insertions(+), 6 deletions(-)
 create mode 100644 package/network/utils/xtables-addons/patches/001-build-fix-configure-compatiblity-with-POSIX-shells.patch
diff mbox

Patch

diff --git a/package/network/utils/xtables-addons/patches/001-build-fix-configure-compatiblity-with-POSIX-shells.patch b/package/network/utils/xtables-addons/patches/001-build-fix-configure-compatiblity-with-POSIX-shells.patch
new file mode 100644
index 0000000..e0b11b5
--- /dev/null
+++ b/package/network/utils/xtables-addons/patches/001-build-fix-configure-compatiblity-with-POSIX-shells.patch
@@ -0,0 +1,51 @@ 
+From f07a0a5cb8b3c5e1aee8b30c7fa21ccfbf24a95a Mon Sep 17 00:00:00 2001
+Message-Id: <f07a0a5cb8b3c5e1aee8b30c7fa21ccfbf24a95a.1459880505.git.mschiffer@universe-factory.net>
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Fri, 1 Apr 2016 22:24:00 +0200
+Subject: [PATCH] build: fix configure compatiblity with POSIX shells
+
+The kernel version detection code uses some bashisms, which makes the build
+fail on Debian systems where /bin/sh links to dash. Replace with POSIX-
+conforming commands at the cost of requiring awk.
+---
+ configure.ac | 24 +++++++++---------------
+ 1 file changed, 9 insertions(+), 15 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 82a1355..5a5ea57 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -44,21 +44,15 @@ regular_CFLAGS="-Wall -Waggregate-return -Wmissing-declarations \
+ 
+ if test -n "$kbuilddir"; then
+ 	AC_MSG_CHECKING([kernel version that we will build against])
+-	krel="$(make -sC "$kbuilddir" M=$PWD kernelrelease)";
+-	kmajor="${krel%%[[^0-9]]*}";
+-	kmajor="$(($kmajor+0))";
+-	krel="${krel:${#kmajor}}";
+-	krel="${krel#.}";
+-	kminor="${krel%%[[^0-9]]*}";
+-	kminor="$(($kminor+0))";
+-	krel="${krel:${#kminor}}";
+-	krel="${krel#.}";
+-	kmicro="${krel%%[[^0-9]]*}";
+-	kmicro="$(($kmicro+0))";
+-	krel="${krel:${#kmicro}}";
+-	krel="${krel#.}";
+-	kstable="${krel%%[[^0-9]]*}";
+-	kstable="$(($kstable+0))";
++	krel="$(make -sC "$kbuilddir" M=$PWD kernelrelease | $AWK -v 'FS=[[^0-9.]]' '{print $1; exit}')";
++	save_IFS=$IFS;
++	IFS='.';
++	set x $krel;
++	IFS=$save_IFS;
++	kmajor="$(($2+0))";
++	kminor="$(($3+0))";
++	kmicro="$(($4+0))";
++	kstable="$(($5+0))";
+ 	if test -z "$kmajor" -o -z "$kminor" -o -z "$kmicro"; then
+ 		echo "WARNING: Version detection did not succeed. Continue at own luck.";
+ 	else
+-- 
+2.8.0
+
diff --git a/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch b/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch
index e4101ad..6a7a099 100644
--- a/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch
+++ b/package/network/utils/xtables-addons/patches/002-fix-kernel-version-detection.patch
@@ -1,11 +1,11 @@ 
 --- a/configure.ac
 +++ b/configure.ac
-@@ -44,7 +44,7 @@ regular_CFLAGS="-Wall -Waggregate-return
+@@ -44,7 +44,7 @@ regular_CFLAGS="-Wall -Waggregate-return -Wmissing-declarations \
  
  if test -n "$kbuilddir"; then
  	AC_MSG_CHECKING([kernel version that we will build against])
--	krel="$(make -sC "$kbuilddir" M=$PWD kernelrelease)";
-+	krel="$(make -sC "$kbuilddir" M=$PWD kernelversion)";
- 	kmajor="${krel%%[[^0-9]]*}";
- 	kmajor="$(($kmajor+0))";
- 	krel="${krel:${#kmajor}}";
+-	krel="$(make -sC "$kbuilddir" M=$PWD kernelrelease | $AWK -v 'FS=[[^0-9.]]' '{print $1; exit}')";
++	krel="$(make -sC "$kbuilddir" M=$PWD kernelversion | $AWK -v 'FS=[[^0-9.]]' '{print $1; exit}')";
+ 	save_IFS=$IFS;
+ 	IFS='.';
+ 	set x $krel;