uclibc: add a upstream patch to fix vlc runtime issues
authorWaldemar Brodkorb <wbx@openadk.org>
Fri, 5 Feb 2016 06:33:49 +0000 (07:33 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 5 Feb 2016 20:56:50 +0000 (21:56 +0100)
IDN related declaration without implementation is a bad idea.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch [new file with mode: 0644]

diff --git a/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch b/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch
new file mode 100644 (file)
index 0000000..c1985ef
--- /dev/null
@@ -0,0 +1,54 @@
+From 5e9a78c8a839381add6faa61e196e6dad9143163 Mon Sep 17 00:00:00 2001
+From: Thomas Claveirole <thomas.claveirole@green-communications.fr>
+Date: Tue, 2 Feb 2016 12:13:09 +0100
+Subject: [PATCH] include/netdb.h: Do not define IDN-related flags.
+
+getaddrinfo() does not implement IDN encoding, and always fail when
+provided an IDN flag (e.g., AI_IDN) with EAI_BADFLAGS.  Some packages
+(such as the VLC media player) check for AI_IDN before they use it;
+providing an unimplemented AI_IDN in the libc makes these package
+fail.  As a result they make calls to getaddrinfo() with AI_IDN that
+always fail while they could have made successful calls without AI_IDN
+instead.
+
+Thus, do not define IDN flags: it is better not to compile rather than
+to compile a code that always fail.
+
+Signed-off-by: Thomas Claveirole <thomas.claveirole@green-communications.fr>
+Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
+---
+ include/netdb.h |   11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/include/netdb.h b/include/netdb.h
+index a636b5f..95abe95 100644
+--- a/include/netdb.h
++++ b/include/netdb.h
+@@ -627,16 +627,6 @@ struct addrinfo
+ # define AI_ALL               0x0010  /* Return IPv4 mapped and IPv6 addresses.  */
+ # define AI_ADDRCONFIG        0x0020  /* Use configuration of this host to choose
+                                  returned address type..  */
+-# ifdef __USE_GNU
+-#  define AI_IDN      0x0040  /* IDN encode input (assuming it is encoded
+-                                 in the current locale's character set)
+-                                 before looking it up. */
+-#  define AI_CANONIDN 0x0080  /* Translate canonical name from IDN format. */
+-#  define AI_IDN_ALLOW_UNASSIGNED 0x0100 /* Don't reject unassigned Unicode
+-                                          code points.  */
+-#  define AI_IDN_USE_STD3_ASCII_RULES 0x0200 /* Validate strings according to
+-                                              STD3 rules.  */
+-# endif
+ # define AI_NUMERICSERV       0x0400  /* Don't use name resolution.  */
+ /* Error values for `getaddrinfo' function.  */
+@@ -658,7 +648,6 @@ struct addrinfo
+ #  define EAI_NOTCANCELED -102        /* Request not canceled.  */
+ #  define EAI_ALLDONE   -103  /* All requests done.  */
+ #  define EAI_INTR      -104  /* Interrupted by a signal.  */
+-#  define EAI_IDN_ENCODE  -105        /* IDN encoding failed.  */
+ # endif
+ # ifdef __USE_MISC
+-- 
+1.7.10.4
+