summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2016-03-07 16:49:42 +0100
committerLars Wendler <polynomial-c@gentoo.org>2016-03-07 16:50:12 +0100
commitf300a385b4d4a54333b686d25db2a652360e3ac9 (patch)
tree38a2f836d6cfba0c0f11d18c9290104b3c6b6f70 /net-misc
parentMerge remote-tracking branch 'remotes/Whissi/gentoo-bug-576708' (diff)
downloadgentoo-f300a385b4d4a54333b686d25db2a652360e3ac9.tar.gz
gentoo-f300a385b4d4a54333b686d25db2a652360e3ac9.tar.bz2
gentoo-f300a385b4d4a54333b686d25db2a652360e3ac9.zip
net-misc/iputils: Replaced two patches with upstream equivalents.
Package-Manager: portage-2.2.27 Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Diffstat (limited to 'net-misc')
-rw-r--r--net-misc/iputils/files/iputils-20150815-defines_and_libs.patch28
-rw-r--r--net-misc/iputils/files/iputils-20150815-handle_single_protocol_system.patch70
-rw-r--r--net-misc/iputils/files/iputils-20150815-ping6_crypto.patch29
-rw-r--r--net-misc/iputils/files/iputils-20150815-ping_default_ipv4.patch65
-rw-r--r--net-misc/iputils/iputils-20150815-r1.ebuild8
5 files changed, 102 insertions, 98 deletions
diff --git a/net-misc/iputils/files/iputils-20150815-defines_and_libs.patch b/net-misc/iputils/files/iputils-20150815-defines_and_libs.patch
new file mode 100644
index 000000000000..4def93546bfa
--- /dev/null
+++ b/net-misc/iputils/files/iputils-20150815-defines_and_libs.patch
@@ -0,0 +1,28 @@
+From ba739daf98450fe725569724eefc64a2afdeb909 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pavel=20=C5=A0imerda?= <psimerda@redhat.com>
+Date: Thu, 20 Aug 2015 16:16:14 +0200
+Subject: [PATCH] ping: fix defines and libs in Makefile
+
+---
+ Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 9b0b70f..4eea516 100644
+--- a/Makefile
++++ b/Makefile
+@@ -153,10 +153,10 @@ DEF_clockdiff = $(DEF_CAP)
+ LIB_clockdiff = $(LIB_CAP)
+
+ # ping / ping6
+-DEF_ping_common = $(DEF_CAP) $(DEF_IDN)
+-DEF_ping6_common = $(DEF_CAP) $(DEF_IDN)
+-DEF_ping = $(DEF_CAP) $(DEF_IDN) $(DEF_WITHOUT_IFADDRS)
+-LIB_ping = $(LIB_CAP) $(LIB_IDN) $(LIB_RESOLV)
++DEF_ping = $(DEF_CAP) $(DEF_IDN) $(DEF_CRYPTO) $(DEF_WITHOUT_IFADDRS)
++DEF_ping_common = $(DEF_ping)
++DEF_ping6_common = $(DEF_ping)
++LIB_ping = $(LIB_CAP) $(LIB_IDN) $(LIB_CRYPTO) $(LIB_RESOLV)
+
+ ping: ping_common.o ping6_common.o
+ ping.o ping_common.o ping6_common.o: ping.h in6_flowlabel.h
diff --git a/net-misc/iputils/files/iputils-20150815-handle_single_protocol_system.patch b/net-misc/iputils/files/iputils-20150815-handle_single_protocol_system.patch
new file mode 100644
index 000000000000..1bf98cc5339b
--- /dev/null
+++ b/net-misc/iputils/files/iputils-20150815-handle_single_protocol_system.patch
@@ -0,0 +1,70 @@
+From 9fd870a4bac0b8b2070c38452f378ef1eb7d460a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pavel=20=C5=A0imerda?= <psimerda@redhat.com>
+Date: Fri, 21 Aug 2015 00:55:56 +0200
+Subject: [PATCH] ping: handle single protocol systems
+
+---
+ ping.c | 28 ++++++++++++++++++----------
+ 1 file changed, 18 insertions(+), 10 deletions(-)
+
+diff --git a/ping.c b/ping.c
+index ec9708e..95a10a7 100644
+--- a/ping.c
++++ b/ping.c
+@@ -110,26 +110,26 @@ static struct sockaddr_in source = { .sin_family = AF_INET };
+ static char *device;
+ static int pmtudisc = -1;
+
+-static void create_socket(socket_st *sock, int family, int socktype, int protocol)
++static void create_socket(socket_st *sock, int family, int socktype, int protocol, int requisite)
+ {
+ errno = 0;
+
+ sock->fd = socket(family, socktype, protocol);
+
+- /* Fallback to raw socket when ping socket failed */
+- if (sock->fd == -1 && socktype == SOCK_DGRAM) {
++ /* Attempt creating a raw socket when ping socket failed */
++ if (sock->fd == -1 && errno != EAFNOSUPPORT && socktype == SOCK_DGRAM) {
+ if (options & F_VERBOSE)
+ fprintf(stderr, "ping: socket: %s, attempting raw socket...\n", strerror(errno));
+- create_socket(sock, family, SOCK_RAW, protocol);
++ create_socket(sock, family, SOCK_RAW, protocol, requisite);
+ return;
+ }
+
+ if (sock->fd == -1) {
+- if (socktype == SOCK_RAW)
+- fprintf(stderr, "ping: socket: %s (raw socket required by specified options).\n", strerror(errno));
+- else
++ if (requisite || errno != EAFNOSUPPORT || options & F_VERBOSE)
+ fprintf(stderr, "ping: socket: %s\n", strerror(errno));
+- exit(2);
++ if (requisite)
++ exit(2);
++ return;
+ }
+
+ sock->socktype = socktype;
+@@ -442,11 +442,19 @@ main(int argc, char **argv)
+ /* Create sockets */
+ enable_capability_raw();
+ if (hints.ai_family != AF_INET6)
+- create_socket(&sock4, AF_INET, hints.ai_socktype, IPPROTO_ICMP);
++ create_socket(&sock4, AF_INET, hints.ai_socktype, IPPROTO_ICMP, hints.ai_family == AF_INET);
+ if (hints.ai_family != AF_INET)
+- create_socket(&sock6, AF_INET6, hints.ai_socktype, IPPROTO_ICMPV6);
++ create_socket(&sock6, AF_INET6, hints.ai_socktype, IPPROTO_ICMPV6, sock4.fd == -1);
+ disable_capability_raw();
+
++ /* Limit address family on single-protocol systems */
++ if (hints.ai_family == AF_UNSPEC) {
++ if (sock4.fd == -1)
++ hints.ai_family = AF_INET6;
++ else if (sock6.fd == -1)
++ hints.ai_family = AF_INET;
++ }
++
+ /* Set socket options */
+ if (settos)
+ set_socket_option(&sock4, IPPROTO_IP, IP_TOS, &settos, sizeof settos);
diff --git a/net-misc/iputils/files/iputils-20150815-ping6_crypto.patch b/net-misc/iputils/files/iputils-20150815-ping6_crypto.patch
deleted file mode 100644
index 1e236eed1f1e..000000000000
--- a/net-misc/iputils/files/iputils-20150815-ping6_crypto.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a45b719645960c9bacb430e452192d6ffac5be19 Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Thu, 20 Aug 2015 13:43:47 +0200
-Subject: [PATCH] Let ping6 use crypto if enabled.
-
-Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index e34be5b..d4cb6c0 100644
---- a/Makefile
-+++ b/Makefile
-@@ -159,9 +159,9 @@ LIB_clockdiff = $(LIB_CAP)
-
- # ping / ping6
- DEF_ping_common = $(DEF_CAP) $(DEF_IDN)
--DEF_ping6_common = $(DEF_CAP) $(DEF_IDN)
-+DEF_ping6_common = $(DEF_CAP) $(DEF_IDN) $(DEF_CRYPTO)
- DEF_ping = $(DEF_CAP) $(DEF_IDN) $(DEF_WITHOUT_IFADDRS) $(DEF_IPV4)
--LIB_ping = $(LIB_CAP) $(LIB_IDN) $(LIB_RESOLV)
-+LIB_ping = $(LIB_CAP) $(LIB_IDN) $(LIB_RESOLV) $(LIB_CRYPTO)
-
- ping: ping_common.o ping6_common.o
- ping.o ping_common.o ping6_common.o: ping.h in6_flowlabel.h
---
-2.5.0
-
diff --git a/net-misc/iputils/files/iputils-20150815-ping_default_ipv4.patch b/net-misc/iputils/files/iputils-20150815-ping_default_ipv4.patch
deleted file mode 100644
index 71d32f0f4aa6..000000000000
--- a/net-misc/iputils/files/iputils-20150815-ping_default_ipv4.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 8d4d34eea9fbd25d0103975f366799764bbc4a2f Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Thu, 20 Aug 2015 11:47:22 +0200
-Subject: [PATCH] Add possibility to make ping use IPv4 by default.
-
-Using ping with a linux kernel without IPv6 capability yields to the
-following problem:
-
-> ping www.google.de
-ping: socket: Address family not supported by protocol (raw socket
-required by specified options).
->
-
-because ping is using IPv6 by default when -4 option is omitted.
-
-Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
----
- Makefile | 7 ++++++-
- ping.c | 5 +++++
- 2 files changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 8b37c42..e34be5b 100644
---- a/Makefile
-+++ b/Makefile
-@@ -114,6 +114,11 @@ ifeq ($(ENABLE_PING6_RTHDR),RFC3542)
- endif
- endif
-
-+# DEFAULT TO IPV4
-+ifneq ($(IPV4_DEFAULT),no)
-+ DEF_IPV4 = -DIPV4_DEFAULT
-+endif
-+
- # -------------------------------------
- TARGETS=ping tracepath tracepath6 traceroute6 clockdiff rdisc arping tftpd rarpd
-
-@@ -155,7 +160,7 @@ LIB_clockdiff = $(LIB_CAP)
- # ping / ping6
- DEF_ping_common = $(DEF_CAP) $(DEF_IDN)
- DEF_ping6_common = $(DEF_CAP) $(DEF_IDN)
--DEF_ping = $(DEF_CAP) $(DEF_IDN) $(DEF_WITHOUT_IFADDRS)
-+DEF_ping = $(DEF_CAP) $(DEF_IDN) $(DEF_WITHOUT_IFADDRS) $(DEF_IPV4)
- LIB_ping = $(LIB_CAP) $(LIB_IDN) $(LIB_RESOLV)
-
- ping: ping_common.o ping6_common.o
-diff --git a/ping.c b/ping.c
-index ec9708e..a08a03e 100644
---- a/ping.c
-+++ b/ping.c
-@@ -439,6 +439,11 @@ main(int argc, char **argv)
-
- target = argv[argc-1];
-
-+#ifdef IPV4_DEFAULT
-+ if (hints.ai_family == AF_UNSPEC)
-+ hints.ai_family = AF_INET;
-+#endif
-+
- /* Create sockets */
- enable_capability_raw();
- if (hints.ai_family != AF_INET6)
---
-2.5.0
-
diff --git a/net-misc/iputils/iputils-20150815-r1.ebuild b/net-misc/iputils/iputils-20150815-r1.ebuild
index a23f1b9e39e6..52279639c76b 100644
--- a/net-misc/iputils/iputils-20150815-r1.ebuild
+++ b/net-misc/iputils/iputils-20150815-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@@ -7,7 +7,7 @@
# building stages, and when the jade/sgml packages are broken (which
# seems to be more common than would be nice).
-EAPI="4"
+EAPI=5
inherit flag-o-matic eutils toolchain-funcs fcaps
if [[ ${PV} == "99999999" ]] ; then
@@ -58,8 +58,8 @@ S=${WORKDIR}/${PN}-s${PV}
PATCHES=(
"${FILESDIR}/021109-uclibc-no-ether_ntohost.patch"
- "${FILESDIR}/${PN}-20150815-ping_default_ipv4.patch"
- "${FILESDIR}/${PN}-20150815-ping6_crypto.patch"
+ "${FILESDIR}/${PN}-20150815-defines_and_libs.patch"
+ "${FILESDIR}/${PN}-20150815-handle_single_protocol_system.patch"
)
src_prepare() {