www-servers/lighttpd: correct USE="-ipv6" behavior
authorDaniel Campbell <zlg@gentoo.org>
Tue, 7 Nov 2017 09:38:11 +0000 (01:38 -0800)
committerDaniel Campbell <zlg@gentoo.org>
Tue, 7 Nov 2017 09:47:39 +0000 (01:47 -0800)
Thanks to nicorac & upstream for the patch, to Oschtan for reporting,
and Felix Janda for the lead.

Closes: https://bugs.gentoo.org/636650
Package-Manager: Portage-2.3.13, Repoman-2.3.4

www-servers/lighttpd/files/lighttpd-1.4.47-3d257ec3-respect-HAVE_IPV6.patch [new file with mode: 0644]
www-servers/lighttpd/lighttpd-1.4.47.ebuild

diff --git a/www-servers/lighttpd/files/lighttpd-1.4.47-3d257ec3-respect-HAVE_IPV6.patch b/www-servers/lighttpd/files/lighttpd-1.4.47-3d257ec3-respect-HAVE_IPV6.patch
new file mode 100644 (file)
index 0000000..7916ac0
--- /dev/null
@@ -0,0 +1,31 @@
+Backport upstream fixes for Gentoo bug #636650
+
+Original upstream commit message:
+
+Author: nicorac <claudio.nicora@gmail.com>
+Date:   Wed Oct 25 16:48:24 2017 +0200
+
+    [core] fix build --disable-ipv6 (fixes #2832)
+    
+    x-ref:
+      "Build error on systems without IPV6 support (regression from 1.4.46)"
+      https://redmine.lighttpd.net/issues/2832
+    
+    github: closes #87
+
+--- a/src/network.c
++++ b/src/network.c
+@@ -77,9 +77,13 @@ static void network_host_normalize_addr_str(buffer *host, sock_addr *addr) {
+     if (addr->plain.sa_family == AF_INET6)
+         buffer_append_string_len(host, CONST_STR_LEN("]"));
+     if (addr->plain.sa_family != AF_UNIX) {
++      #ifdef HAVE_IPV6
+         unsigned short port = (addr->plain.sa_family == AF_INET)
+           ? ntohs(addr->ipv4.sin_port)
+           : ntohs(addr->ipv6.sin6_port);
++      #else
++        unsigned short port = ntohs(addr->ipv4.sin_port);
++      #endif
+         buffer_append_string_len(host, CONST_STR_LEN(":"));
+         buffer_append_int(host, (int)port);
+     }
index 69a3db322f697b51ceada63407318a4f8741911d..7267b9187d2d5121571ae290072d5d2bdf776cbc 100644 (file)
@@ -51,6 +51,10 @@ RDEPEND="${CDEPEND}
        selinux? ( sec-policy/selinux-apache )
 "
 
+PATCHES=(
+       "${FILESDIR}/${P}-3d257ec3-respect-HAVE_IPV6.patch"
+)
+
 # update certain parts of lighttpd.conf based on conditionals
 update_config() {
        local config="${D}/etc/lighttpd/lighttpd.conf"