shellinabox: fix build on musl
authorOlivier Singla <olivier.singla@gmail.com>
Thu, 4 Aug 2016 01:47:12 +0000 (21:47 -0400)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 4 Aug 2016 20:38:14 +0000 (22:38 +0200)
This commit fixes the build of shellinabox with the musl C library,
which requires two changes:

 - A patch to include <sys/ttydefaults.h>, which is needed to get the
   definitions of TTYDEF_*

 - A hack to workaround what seems to be a problem in musl itself (musl
   does #define utmp utmpx, which causes some symbol conflicts down the
   road). Since anyway the utmpx implementation is just a set of stubs
   in musl, we simply make shellinabox believe that <utmpx.h> is not
   available by passing the appropriate variable. The musl issue has
   been reported at http://www.openwall.com/lists/musl/2016/08/04/8.

Fixes:

  http://autobuild.buildroot.net/results/1847cab964957da3c9bf4911a5ad3602b3c82431/

Signed-off-by: Olivier Singla <olivier.singla@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/shellinabox/0002-launcher.c-include-sys-ttydefaults.h.patch [new file with mode: 0644]
package/shellinabox/shellinabox.mk

diff --git a/package/shellinabox/0002-launcher.c-include-sys-ttydefaults.h.patch b/package/shellinabox/0002-launcher.c-include-sys-ttydefaults.h.patch
new file mode 100644 (file)
index 0000000..caa5456
--- /dev/null
@@ -0,0 +1,27 @@
+From c8d9df500b1ca83ad6da9b6055549adaba6ee0d3 Mon Sep 17 00:00:00 2001
+From: Olivier Singla <olivier.singla@gmail.com>
+Date: Thu, 4 Aug 2016 22:05:08 +0200
+Subject: [PATCH] launcher.c: include <sys/ttydefaults.h>
+
+This include is needed to get the definition of TTYDEF_*.
+
+Signed-off-by: Olivier Singla <olivier.singla@gmail.com>
+---
+ shellinabox/launcher.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/shellinabox/launcher.c b/shellinabox/launcher.c
+index 2bac171..c8ba6cb 100644
+--- a/shellinabox/launcher.c
++++ b/shellinabox/launcher.c
+@@ -66,6 +66,7 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ #include <sys/utsname.h>
++#include <sys/ttydefaults.h>
+ #include <termios.h>
+ #include <unistd.h>
+-- 
+2.7.4
+
index e4e0b0667f7bce9af42dcec4006a0352e2508dd6..1173ef7d1ca89c1ae568e1faeb976c00c063c067 100644 (file)
@@ -20,4 +20,10 @@ SHELLINABOX_CONF_OPTS = \
        --disable-runtime-loading \
        --enable-ssl
 
+# musl's implementation of utmpx is a dummy one, and some aspects of
+# it cause build failures in shellinabox
+ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
+SHELLINABOX_CONF_ENV += ac_cv_header_utmpx_h=no
+endif
+
 $(eval $(autotools-package))