1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-09 05:29:32 +00:00

iputils: update to 20161105

We've been using obsolete upstream URI for quite a while; meanwhile
a lot of development has happened

Drop all the patches: they are either changing the code that has been refactored,
or are backports.

Add a new musl fix patch from gentoo.

ping6 and tracepath6 variants have been folded into standard versions.

(From OE-Core rev: 5997981fa2c22609a88b8cbb595dbf7758b2f7c2)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2018-02-01 20:02:08 +02:00
committed by Richard Purdie
parent 5f45587b4d
commit 58ce11215d
8 changed files with 103 additions and 284 deletions
@@ -0,0 +1,93 @@
From c6c5966d9fae27bc2f0a34ab59b999555111bd2d Mon Sep 17 00:00:00 2001
From: Aric Belsito <lluixhi@gmail.com>
Date: Sun, 29 Oct 2017 23:17:03 +0100
Subject: [PATCH] Fix build on MUSL
Add missing AI_IDN and NI_IDN declarations.
Bug: https://bugs.gentoo.org/503914
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
arping.c | 7 +++++++
ping.h | 11 +++++++++++
tracepath.c | 8 ++++++++
traceroute6.c | 4 ++++
4 files changed, 30 insertions(+)
diff --git a/arping.c b/arping.c
index 1a3f40b..531d29d 100644
--- a/arping.c
+++ b/arping.c
@@ -45,6 +45,13 @@ struct sysfs_devattr_values;
#ifdef USE_IDN
#include <idna.h>
#include <locale.h>
+
+#ifndef AI_IDN
+#define AI_IDN 0x0040
+#endif
+#ifndef AI_CANONIDN
+#define AI_CANONIDN 0x0080
+#endif
#endif
#include "SNAPSHOT.h"
diff --git a/ping.h b/ping.h
index 749f3ff..227315f 100644
--- a/ping.h
+++ b/ping.h
@@ -38,6 +38,17 @@
#include <locale.h>
#include <idna.h>
#include <stringprep.h>
+
+#ifndef AI_IDN
+#define AI_IDN 0x0040
+#endif
+#ifndef AI_CANONIDN
+#define AI_CANONIDN 0x0080
+#endif
+#ifndef NI_IDN
+#define NI_IDN 32
+#endif
+
#define getaddrinfo_flags (AI_CANONNAME | AI_IDN | AI_CANONIDN)
#define getnameinfo_flags NI_IDN
#else
diff --git a/tracepath.c b/tracepath.c
index 74a829d..dcec5b9 100644
--- a/tracepath.c
+++ b/tracepath.c
@@ -30,6 +30,14 @@
#ifdef USE_IDN
#include <idna.h>
#include <locale.h>
+
+#ifndef AI_IDN
+#define AI_IDN 0x0040
+#endif
+#ifndef NI_IDN
+#define NI_IDN 32
+#endif
+
#define getnameinfo_flags NI_IDN
#else
#define getnameinfo_flags 0
diff --git a/traceroute6.c b/traceroute6.c
index 48fc5c5..8d1eebf 100644
--- a/traceroute6.c
+++ b/traceroute6.c
@@ -251,6 +251,10 @@
#include <idna.h>
#include <locale.h>
+#ifndef NI_IDN
+#define NI_IDN 32
+#endif
+
#define getnameinfo_flags NI_IDN
#else
#define getnameinfo_flags 0
--
2.15.1
@@ -1,92 +0,0 @@
From be0bb81d72fea4d20da74f4f2236aa145684f332 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 6 Jan 2016 14:14:22 -0800
Subject: [PATCH] Fix header inclusion for musl
Fix errors e.g.
In file included from tracepath.c:17:0:
/usr/include/linux/errqueue.h:33:18:
error: array type has incomplete element type 'struct timespec'
struct timespec ts[3];
^
tracepath.c: In function 'main':
tracepath.c:329:16: error: 'INT_MAX' undeclared (first use in this
function)
overhead, INT_MAX);
^
tracepath.c:329:16: note: each undeclared identifier is reported only
once for each function it appears in
Makefile:131: recipe for target 'tracepath.o' failed
make: *** [tracepath.o] Error 1
ping_common.c: In function 'main_loop':
ping_common.c:756:15: error: 'HZ' undeclared (first use in this
function)
if (1000 % HZ == 0 ? next <= 1000 / HZ : (next < INT_MAX / HZ &&
next * HZ <= 1000)) {
protocols/timed.h is not needed and is absent in musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
clockdiff.c | 1 -
ping_common.c | 1 +
tracepath.c | 2 ++
tracepath6.c | 1 +
4 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/clockdiff.c b/clockdiff.c
index 7c1ea1b..1d6341e 100644
--- a/clockdiff.c
+++ b/clockdiff.c
@@ -14,7 +14,6 @@
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#define TSPTYPES
-#include <protocols/timed.h>
#include <fcntl.h>
#include <netdb.h>
#include <arpa/inet.h>
diff --git a/ping_common.c b/ping_common.c
index 7f82851..3ce699d 100644
--- a/ping_common.c
+++ b/ping_common.c
@@ -2,6 +2,7 @@
#include <ctype.h>
#include <sched.h>
#include <math.h>
+#include <asm-generic/param.h>
int options;
diff --git a/tracepath.c b/tracepath.c
index 89e6d16..c9d6ddd 100644
--- a/tracepath.c
+++ b/tracepath.c
@@ -12,6 +12,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <limits.h>
+#include <time.h>
#include <sys/socket.h>
#include <linux/types.h>
#include <linux/errqueue.h>
diff --git a/tracepath6.c b/tracepath6.c
index 126fadf..9d5745c 100644
--- a/tracepath6.c
+++ b/tracepath6.c
@@ -12,6 +12,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <limits.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/icmp6.h>
--
2.6.4
@@ -1,52 +0,0 @@
From 000629f74908a2a95f6104444c77ad93cf40d62d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 13 Jan 2016 08:50:50 +0000
Subject: [PATCH] Intialize struct elements by name
makes it portable across glibc and musl
Fixes errors
| ping.c: In function 'send_probe':
| ping.c:735:19: warning: initialization makes integer from pointer
without a cast [-Wint-conversion]
| &iov, 1, &cmsg, 0, 0 };
| ^
| ping.c:735:19: note: (near initialization for 'm.__pad1')
| ping.c:735:19: error: initializer element is not computable at load
time
| ping.c:735:19: note: (near initialization for 'm.__pad1')
| make: *** [ping.o] Error 1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
ping.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/ping.c b/ping.c
index 4989760..e67f381 100644
--- a/ping.c
+++ b/ping.c
@@ -731,8 +731,15 @@ int send_probe()
do {
static struct iovec iov = {outpack, 0};
- static struct msghdr m = { &whereto, sizeof(whereto),
- &iov, 1, &cmsg, 0, 0 };
+ static struct msghdr m = {
+ .msg_name = &whereto,
+ .msg_namelen = sizeof(whereto),
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = &cmsg,
+ .msg_controllen = 0,
+ .msg_flags= 0,
+ };
m.msg_controllen = cmsg_len;
iov.iov_len = cc;
--
2.7.0
@@ -1,44 +0,0 @@
arping: fix arping hang if SIGALRM is blocked
Unblock SIGALRM so that the previously called alarm() can prevent
recvfrom() from blocking forever in case the inherited procmask is
blocking SIGALRM and no packet is received.
Upstream-Status: Backport
Reported-by: Rui Prior <rprior@dcc.fc.up.pt>
RH-Bugzilla: #1085971
Signed-off-by: Jan Synacek <jsynacek@redhat.com>
Signed-off-by: Zhenbo Gao <zhenbo.gao@windriver.com>
diff --git a/arping.c.orig b/arping.c
index 35408c1..2098159 100644
--- a/arping.c.orig
+++ b/arping.c
@@ -1215,16 +1215,22 @@ main(int argc, char **argv)
socklen_t alen = sizeof(from);
int cc;
+ sigemptyset(&sset);
+ sigaddset(&sset, SIGALRM);
+ sigaddset(&sset, SIGINT);
+ /* Unblock SIGALRM so that the previously called alarm()
+ * can prevent recvfrom from blocking forever in case the
+ * inherited procmask is blocking SIGALRM and no packet
+ * is received. */
+ sigprocmask(SIG_UNBLOCK, &sset, &osset);
+
if ((cc = recvfrom(s, packet, sizeof(packet), 0,
(struct sockaddr *)&from, &alen)) < 0) {
perror("arping: recvfrom");
continue;
}
- sigemptyset(&sset);
- sigaddset(&sset, SIGALRM);
- sigaddset(&sset, SIGINT);
- sigprocmask(SIG_BLOCK, &sset, &osset);
+ sigprocmask(SIG_BLOCK, &sset, NULL);
recv_pack(packet, cc, (struct sockaddr_ll *)&from);
sigprocmask(SIG_SETMASK, &osset, NULL);
}
@@ -1,15 +0,0 @@
Upstream-Status: Inappropriate [disable feature]
Index: iputils-s20121221/Makefile
===================================================================
--- iputils-s20121221.orig/Makefile
+++ iputils-s20121221/Makefile
@@ -106,7 +106,7 @@ endif
endif
# -------------------------------------
-IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd
+IPV4_TARGETS=tracepath ping clockdiff arping
IPV6_TARGETS=tracepath6 traceroute6 ping6
TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
@@ -1,31 +0,0 @@
Upstream-Status: Pending [from other distro Debian]
Index: iputils-s20121221/tracepath.c
===================================================================
--- iputils-s20121221.orig/tracepath.c
+++ iputils-s20121221/tracepath.c
@@ -370,9 +370,9 @@ main(int argc, char **argv)
}
#endif
- he = gethostbyname(p);
+ he = gethostbyname2(argv[0], AF_INET);
if (he == NULL) {
- herror("gethostbyname");
+ herror("gethostbyname2");
exit(1);
}
Index: iputils-s20121221/ping.c
===================================================================
--- iputils-s20121221.orig/ping.c
+++ iputils-s20121221/ping.c
@@ -279,7 +279,7 @@ main(int argc, char **argv)
#else
idn = target;
#endif
- hp = gethostbyname(idn);
+ hp = gethostbyname2(idn, AF_INET);
if (!hp) {
fprintf(stderr, "ping: unknown host %s\n", target);
exit(2);
@@ -1,27 +0,0 @@
Fix nsgmls path issue
Upstream-Status: Pending
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Index: iputils-s20101006/doc/Makefile
===================================================================
--- iputils-s20101006.orig/doc/Makefile 2011-09-13 20:42:27.000000000 +0800
+++ iputils-s20101006/doc/Makefile 2011-09-13 21:01:52.000000000 +0800
@@ -27,10 +27,15 @@
# docbook2man produces utterly ugly output and I did not find
# any way to customize this but hacking backend perl script a little.
# Well, hence...
+# nsgmls seems append path to search directory according to the sysid path.
+# e.g. if input ../index.db, it would search $search_directory/../ rather than
+# $search_directory, which leads searching failure. Fixing nsgmls probably
+# introduce some side effects, so use this ugly hack: running nsgmls in current
+# directory, and running docbook2man in tmp directory.
$(MANFILES): index.db
@-mkdir tmp.db2man
- @set -e; cd tmp.db2man; nsgmls ../$< | sgmlspl ../docbook2man-spec.pl ; mv $@ ..
+ @set -e; nsgmls $< >tmp.db2man/output; cd tmp.db2man; cat output | sgmlspl ../docbook2man-spec.pl ; mv $@ ..
@-rm -rf tmp.db2man
clean:
@@ -1,7 +1,7 @@
SUMMARY = "Network monitoring tools"
DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \
tracepath, tracepath6, ping, ping6 and arping."
HOMEPAGE = "http://www.skbuff.net/iputils"
HOMEPAGE = "https://github.com/iputils/iputils"
SECTION = "console/network"
LICENSE = "BSD & GPLv2+"
@@ -13,20 +13,13 @@ LIC_FILES_CHKSUM = "file://ping.c;beginline=1;endline=35;md5=f9ceb201733e9a6cf8f
DEPENDS = "gnutls libcap libgcrypt"
SRC_URI = "git://github.com/iputils/iputils \
file://0001-Fix-build-on-MUSL.patch \
"
S = "${WORKDIR}/git"
SRCREV = "bffc0e957b98d626ab4cea218c89251201425442"
SRC_URI = "http://www.skbuff.net/iputils/${BPN}-${PV}.tar.bz2 \
file://debian/use_gethostbyname2.diff \
file://debian/targets.diff \
file://nsgmls-path-fix.patch \
file://0001-Fix-header-inclusion-for-musl.patch \
file://0001-Intialize-struct-elements-by-name.patch \
file://arping-fix-arping-hang-if-SIGALRM-is-blocked.patch \
"
SRC_URI[md5sum] = "8aaa7395f27dff9f57ae016d4bc753ce"
SRC_URI[sha256sum] = "549f58d71951e52b46595829134d4e330642f522f50026917fadc349a54825a1"
UPSTREAM_CHECK_REGEX = "iputils-(?P<pver>s\d+).tar"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)"
EXTRA_OEMAKE = "-e MAKEFLAGS="
@@ -38,11 +31,10 @@ do_install () {
install -m 0755 -d ${D}${base_bindir}
# SUID root programs
install -m 4555 ping ${D}${base_bindir}/ping
install -m 4555 ping6 ${D}${base_bindir}/ping6
install -m 4555 traceroute6 ${D}${base_bindir}/
install -m 4555 clockdiff ${D}${base_bindir}/
# Other programgs
for i in arping tracepath tracepath6; do
for i in arping tracepath; do
install -m 0755 $i ${D}${base_bindir}/
done
}
@@ -54,19 +46,14 @@ ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN}-ping = "ping"
ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
ALTERNATIVE_${PN}-ping6 = "ping6"
ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6"
PACKAGES += "${PN}-ping ${PN}-ping6 ${PN}-arping ${PN}-tracepath ${PN}-tracepath6 ${PN}-traceroute6 ${PN}-clockdiff"
PACKAGES += "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-traceroute6 ${PN}-clockdiff"
ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "${PN}-ping ${PN}-ping6 ${PN}-arping ${PN}-tracepath ${PN}-tracepath6 ${PN}-traceroute6 ${PN}-clockdiff"
RDEPENDS_${PN} += "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-traceroute6 ${PN}-clockdiff"
FILES_${PN} = ""
FILES_${PN}-ping = "${base_bindir}/ping.${BPN}"
FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}"
FILES_${PN}-arping = "${base_bindir}/arping"
FILES_${PN}-tracepath = "${base_bindir}/tracepath"
FILES_${PN}-tracepath6 = "${base_bindir}/tracepath6"
FILES_${PN}-traceroute6 = "${base_bindir}/traceroute6"
FILES_${PN}-clockdiff = "${base_bindir}/clockdiff"