Skip to contentSkip to conversation

netkit-rpc: Link libtirpc on musl

PATCH New Khem Raj 2 participants 3 messages Sep 4, 2017 – Sep 6, 2017

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

PATCH 1/2 netkit-rpc: Link libtirpc on musl

---
 meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb | 4 ++++
 1 file changed, 4 insertions(+)
meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb +4 -0
index 75ec07cfe..9487fdc2c 100644
@@ -4,12 +4,15 @@ SECTION = "net"
 LICENSE = "SPL-1.0"
 LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89"
 
+DEPENDS_append_libc-musl = " libtirpc"
 SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \
            file://gcc4.patch \
            file://0001-rpcgen-Fix-printf-formats.patch \
            "
 SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642"
 SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b"
+CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
+LIBS_append_libc-musl = " -ltirpc"
 
 do_configure () {
     ./configure --prefix=${prefix}
@@ -18,6 +21,7 @@ do_configure () {
     echo "LD=${LD}" >> MCONFIG
     echo "CFLAGS=${CFLAGS}" >> MCONFIG
     echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
+    echo "LIBS=${LIBS}" >> MCONFIG
 }
 
 do_compile () {
Signature · 1 line
2.14.1
author
#1 lore raw

PATCH v2 2/2 ndisc6: Fix build with clang and update to latest on git

Change recipe to git and http protocol
Pass PERL variable to configure
Add patches to fix VLAIS
Re-organize structure of recipe

---
 .../0001-replace-VLAIS-with-malloc-free-pair.patch | 124 +++++++++++++++++++++
 .../ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch     |  30 +++++
 .../ndisc6/{ndisc6_1.0.3.bb => ndisc6_git.bb}      |  48 ++++----
 3 files changed, 180 insertions(+), 22 deletions(-)
 create mode 100644 meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch
 create mode 100644 meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch
 rename meta-networking/recipes-support/ndisc6/{ndisc6_1.0.3.bb => ndisc6_git.bb} (86%)
meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch new file +124 -0
new file mode 100644
index 000000000..dc58b5b79
@@ -0,0 +1,124 @@
+From 3a7d5396e633e6c02a4583be7faf3d79d0d33748 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Thu, 31 Aug 2017 11:14:41 -0700
+Subject: [PATCH 1/2] replace VLAIS with malloc/free pair
+
+Makes it compatible with non-gnu compilers
+
+Signed-off-by: Khem Raj <[email protected]>
+---
+Upstream-Status: Pending
+
+ src/trace-icmp.c |  7 +++++--
+ src/trace-tcp.c  | 14 ++++++++++----
+ src/trace-udp.c  |  7 +++++--
+ 3 files changed, 20 insertions(+), 8 deletions(-)
+
+diff --git a/src/trace-icmp.c b/src/trace-icmp.c
+index 842938e..c76cb54 100644
+--- a/src/trace-icmp.c
++++ b/src/trace-icmp.c
+@@ -43,16 +43,19 @@ send_echo_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ 	struct
+ 	{
+ 		struct icmp6_hdr ih;
+-		uint8_t payload[plen - sizeof (struct icmp6_hdr)];
++		uint8_t *payload;
+ 	} packet;
+ 	memset (&packet, 0, plen);
++	packet.payload = malloc(plen - sizeof (struct icmp6_hdr));
+ 
+ 	packet.ih.icmp6_type = ICMP6_ECHO_REQUEST;
+ 	packet.ih.icmp6_id = htons (getpid ());
+ 	packet.ih.icmp6_seq = htons ((ttl << 8) | (n & 0xff));
+ 	(void)port;
+ 
+-	return send_payload (fd, &packet.ih, plen, ttl);
++	ssize_t ret = send_payload (fd, &packet.ih, plen, ttl);
++	free(packet.payload);
++	return ret;
+ }
+ 
+ 
+diff --git a/src/trace-tcp.c b/src/trace-tcp.c
+index 940f918..62d22ff 100644
+--- a/src/trace-tcp.c
++++ b/src/trace-tcp.c
+@@ -54,10 +54,11 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ 	struct
+ 	{
+ 		struct tcphdr th;
+-		uint8_t payload[plen - sizeof (struct tcphdr)];
++		uint8_t *payload;
+ 	} packet;
+ 
+ 	memset (&packet, 0, sizeof (packet));
++	packet.payload = malloc(plen - sizeof (struct tcphdr));
+ 	packet.th.th_sport = sport;
+ 	packet.th.th_dport = port;
+ 	packet.th.th_seq = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ());
+@@ -65,7 +66,9 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ 	packet.th.th_flags = TH_SYN | (ecn ? (TH_ECE | TH_CWR) : 0);
+ 	packet.th.th_win = htons (TCP_WINDOW);
+ 
+-	return send_payload (fd, &packet, plen, ttl);
++	ssize_t ret = send_payload (fd, &packet, plen, ttl);
++	free(packet.payload);
++	return ret;
+ }
+ 
+ 
+@@ -131,10 +134,11 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ 	struct
+ 	{
+ 		struct tcphdr th;
+-		uint8_t payload[plen - sizeof (struct tcphdr)];
++		uint8_t *payload;
+ 	} packet;
+ 
+ 	memset (&packet, 0, sizeof (packet));
++	packet.payload = malloc(plen - sizeof (struct tcphdr));
+ 	packet.th.th_sport = sport;
+ 	packet.th.th_dport = port;
+ 	packet.th.th_ack = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ());
+@@ -142,7 +146,9 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ 	packet.th.th_flags = TH_ACK;
+ 	packet.th.th_win = htons (TCP_WINDOW);
+ 
+-	return send_payload (fd, &packet, plen, ttl);
++	ssize_t ret = send_payload (fd, &packet, plen, ttl);
++	free(packet.payload);
++	return ret;
+ }
+ 
+ 
+diff --git a/src/trace-udp.c b/src/trace-udp.c
+index 4adde6b..a6cbb07 100644
+--- a/src/trace-udp.c
++++ b/src/trace-udp.c
+@@ -46,9 +46,10 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ 	struct
+ 	{
+ 		struct udphdr uh;
+-		uint8_t payload[plen - sizeof (struct udphdr)];
++		uint8_t *payload;
+ 	} packet;
+ 	memset (&packet, 0, plen);
++	packet.payload = malloc(plen - sizeof (struct udphdr));
+ 
+ 	(void)n;
+ 	packet.uh.uh_sport = sport;
+@@ -61,7 +62,9 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
+ 	/*if (plen > sizeof (struct udphdr))
+ 		packet.payload[0] = (uint8_t)ttl;*/
+ 
+-	return send_payload (fd, &packet, plen, ttl);
++	ssize_t ret = send_payload (fd, &packet, plen, ttl);
++	free(packet.payload);
++	return ret;
+ }
+ 
+ 
+-- 
+2.14.1
+
meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch new file +30 -0
new file mode 100644
index 000000000..3cc2ba80c
@@ -0,0 +1,30 @@
+From 2a50154fbce38fd36be7e14f5cd4a8b03c65c72f Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Thu, 31 Aug 2017 11:15:37 -0700
+Subject: [PATCH 2/2] Do not undef _GNU_SOURCE
+
+There are functions from tcp.h which are under _GNU_SOURCE
+in musl
+
+Signed-off-by: Khem Raj <[email protected]>
+---
+Upstream-Status: Pending
+
+ src/trace-tcp.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/trace-tcp.c b/src/trace-tcp.c
+index 62d22ff..380008e 100644
+--- a/src/trace-tcp.c
++++ b/src/trace-tcp.c
+@@ -21,7 +21,6 @@
+ # include <config.h>
+ #endif
+ 
+-#undef _GNU_SOURCE
+ #define _DEFAULT_SOURCE 1
+ 
+ #include <string.h>
+-- 
+2.14.1
+
meta-networking/recipes-support/ndisc6/ndisc6_git.bb renamed from meta-networking/recipes-support/ndisc6/ndisc6_1.0.3.bb +26 -22

63 lines not on this page · raw message

Signature · 1 line
2.14.1
#2 lore raw

Re: [meta-networking][PATCH V2 2/2] ndisc6: Fix build with clang and update to latest on git

v2 fetches ok, but fails to build:

http://errors.yoctoproject.org/Errors/Details/155160/

Quoted 285 lines · Khem Raj

Change recipe to git and http protocol Pass PERL variable to configure Add patches to fix VLAIS Re-organize structure of recipe

---
 .../0001-replace-VLAIS-with-malloc-free-pair.patch | 124
+++++++++++++++++++++
 .../ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch     |  30 +++++
 .../ndisc6/{ndisc6_1.0.3.bb => ndisc6_git.bb}      |  48 ++++----
 3 files changed, 180 insertions(+), 22 deletions(-)
 create mode 100644 meta-networking/recipes-support/ndisc6/ndisc6/0001-
replace-VLAIS-with-malloc-free-pair.patch
 create mode 100644 meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-
not-undef-_GNU_SOURCE.patch
 rename meta-networking/recipes-support/ndisc6/{ndisc6_1.0.3.bb =>

ndisc6_git.bb} (86%)

(quoted diff) +0 -0

replace-VLAIS-with-malloc-free-pair.patch b/meta-networking/recipes- support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch new file mode 100644
index 000000000..dc58b5b79

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +0 -0

replace-VLAIS-with-malloc-free-pair.patch

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +21 -0
@@ -0,0 +1,124 @@
+From 3a7d5396e633e6c02a4583be7faf3d79d0d33748 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Thu, 31 Aug 2017 11:14:41 -0700
+Subject: [PATCH 1/2] replace VLAIS with malloc/free pair
+
+Makes it compatible with non-gnu compilers
+
+Signed-off-by: Khem Raj <[email protected]>
+---
+Upstream-Status: Pending
+
+ src/trace-icmp.c |  7 +++++--
+ src/trace-tcp.c  | 14 ++++++++++----
+ src/trace-udp.c  |  7 +++++--
+ 3 files changed, 20 insertions(+), 8 deletions(-)
+
+diff --git a/src/trace-icmp.c b/src/trace-icmp.c
+index 842938e..c76cb54 100644
+--- a/src/trace-icmp.c
++++ b/src/trace-icmp.c
+@@ -43,16 +43,19 @@ send_echo_probe (int fd, unsigned ttl, unsigned n,

size_t plen, uint16_t port)

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +26 -0
+       struct
+       {
+               struct icmp6_hdr ih;
+-              uint8_t payload[plen - sizeof (struct icmp6_hdr)];
++              uint8_t *payload;
+       } packet;
+       memset (&packet, 0, plen);
++      packet.payload = malloc(plen - sizeof (struct icmp6_hdr));
+
+       packet.ih.icmp6_type = ICMP6_ECHO_REQUEST;
+       packet.ih.icmp6_id = htons (getpid ());
+       packet.ih.icmp6_seq = htons ((ttl << 8) | (n & 0xff));
+       (void)port;
+
+-      return send_payload (fd, &packet.ih, plen, ttl);
++      ssize_t ret = send_payload (fd, &packet.ih, plen, ttl);
++      free(packet.payload);
++      return ret;
+ }
+
+
+diff --git a/src/trace-tcp.c b/src/trace-tcp.c
+index 940f918..62d22ff 100644
+--- a/src/trace-tcp.c
++++ b/src/trace-tcp.c
+@@ -54,10 +54,11 @@ send_syn_probe (int fd, unsigned ttl, unsigned n,

size_t plen, uint16_t port)

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +12 -0
+       struct
+       {
+               struct tcphdr th;
+-              uint8_t payload[plen - sizeof (struct tcphdr)];
++              uint8_t *payload;
+       } packet;
+
+       memset (&packet, 0, sizeof (packet));
++      packet.payload = malloc(plen - sizeof (struct tcphdr));
+       packet.th.th_sport = sport;
+       packet.th.th_dport = port;
+       packet.th.th_seq = htonl ((ttl << 24) | (n << 16) |

(uint16_t)getpid ());
+@@ -65,7 +66,9 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +11 -0
+       packet.th.th_flags = TH_SYN | (ecn ? (TH_ECE | TH_CWR) : 0);
+       packet.th.th_win = htons (TCP_WINDOW);
+
+-      return send_payload (fd, &packet, plen, ttl);
++      ssize_t ret = send_payload (fd, &packet, plen, ttl);
++      free(packet.payload);
++      return ret;
+ }
+
+
+@@ -131,10 +134,11 @@ send_ack_probe (int fd, unsigned ttl, unsigned n,

size_t plen, uint16_t port)

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +12 -0
+       struct
+       {
+               struct tcphdr th;
+-              uint8_t payload[plen - sizeof (struct tcphdr)];
++              uint8_t *payload;
+       } packet;
+
+       memset (&packet, 0, sizeof (packet));
++      packet.payload = malloc(plen - sizeof (struct tcphdr));
+       packet.th.th_sport = sport;
+       packet.th.th_dport = port;
+       packet.th.th_ack = htonl ((ttl << 24) | (n << 16) |

(uint16_t)getpid ());
+@@ -142,7 +146,9 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +15 -0
+       packet.th.th_flags = TH_ACK;
+       packet.th.th_win = htons (TCP_WINDOW);
+
+-      return send_payload (fd, &packet, plen, ttl);
++      ssize_t ret = send_payload (fd, &packet, plen, ttl);
++      free(packet.payload);
++      return ret;
+ }
+
+
+diff --git a/src/trace-udp.c b/src/trace-udp.c
+index 4adde6b..a6cbb07 100644
+--- a/src/trace-udp.c
++++ b/src/trace-udp.c
+@@ -46,9 +46,10 @@ send_udp_probe (int fd, unsigned ttl, unsigned n,

size_t plen, uint16_t port)

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +12 -0
+       struct
+       {
+               struct udphdr uh;
+-              uint8_t payload[plen - sizeof (struct udphdr)];
++              uint8_t *payload;
+       } packet;
+       memset (&packet, 0, plen);
++      packet.payload = malloc(plen - sizeof (struct udphdr));
+
+       (void)n;
+       packet.uh.uh_sport = sport;
+@@ -61,7 +62,9 @@ send_udp_probe (int fd, unsigned ttl, unsigned n,

size_t plen, uint16_t port)

meta-networking/recipes-support/ndisc6/ndisc6/0001- new file +13 -0
+       /*if (plen > sizeof (struct udphdr))
+               packet.payload[0] = (uint8_t)ttl;*/
+
+-      return send_payload (fd, &packet, plen, ttl);
++      ssize_t ret = send_payload (fd, &packet, plen, ttl);
++      free(packet.payload);
++      return ret;
+ }
+
+
+--
+2.14.1
+
meta-networking/recipes-support/ndisc6/ndisc6/0002-Do- renamed from meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch +0 -0

not-undef-_GNU_SOURCE.patch
new file mode 100644
index 000000000..3cc2ba80c

meta-networking/recipes-support/ndisc6/ndisc6/0002-Do- new file +0 -0

not-undef-_GNU_SOURCE.patch

meta-networking/recipes-support/ndisc6/ndisc6/0002-Do- new file +30 -0
@@ -0,0 +1,30 @@
+From 2a50154fbce38fd36be7e14f5cd4a8b03c65c72f Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Thu, 31 Aug 2017 11:15:37 -0700
+Subject: [PATCH 2/2] Do not undef _GNU_SOURCE
+
+There are functions from tcp.h which are under _GNU_SOURCE
+in musl
+
+Signed-off-by: Khem Raj <[email protected]>
+---
+Upstream-Status: Pending
+
+ src/trace-tcp.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/trace-tcp.c b/src/trace-tcp.c
+index 62d22ff..380008e 100644
+--- a/src/trace-tcp.c
++++ b/src/trace-tcp.c
+@@ -21,7 +21,6 @@
+ # include <config.h>
+ #endif
+
+-#undef _GNU_SOURCE
+ #define _DEFAULT_SOURCE 1
+
+ #include <string.h>
+--
+2.14.1
+
meta-networking/recipes-support/ndisc6/ndisc6_git.bb renamed from meta-networking/recipes-support/ndisc6/ndisc6_1.0.3.bb +0 -0
similarity index 86%
rename from meta-networking/recipes-support/ndisc6/ndisc6_1.0.3.bb
rename to meta-networking/recipes-support/ndisc6/ndisc6_git.bb
index 6bc0531b9..e1ab3ae76 100644
@@ -3,22 +3,32 @@ IPv6 networks, including ndisc6, rdisc6, tcptraceroute6

and traceroute6."
SECTION = "net"
HOMEPAGE = "http://www.remlab.net/ndisc6/" LICENSE = "GPL-2.0"

meta-networking/recipes-support/ndisc6/ndisc6_git.bb renamed from meta-networking/recipes-support/ndisc6/ndisc6_1.0.3.bb +1 -10
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to
-# perform the actual trace operation.
-RDEPENDS_${PN}-tcptraceroute6 = "${PN}-rltraceroute6"
-RDEPENDS_${PN}-tracert6 = "${PN}-rltraceroute6"
-RDEPENDS_${PN}-misc += "perl"
-
-SRC_URI = "http://www.remlab.net/files/ndisc6/ndisc6-${PV}.tar.bz2 \
-"
-SRC_URI[md5sum] = "21afdaa3a5a5c1ce50eb7f2b7d795989"
-SRC_URI[sha256sum] = "0f41d6caf5f2edc1a12924956ae8b1

d372e3b426bd7b11eed7d38bc974eec821"

meta-networking/recipes-support/ndisc6/ndisc6_git.bb renamed from meta-networking/recipes-support/ndisc6/ndisc6_1.0.3.bb +25 -13
+PV = "1.0.4+git${SRCPV}"
+SRCREV = "4c794b5512d23c649def1f94a684225dcbb6ac3e"
+SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http \
+           file://0001-replace-VLAIS-with-malloc-free-pair.patch \
+           file://0002-Do-not-undef-_GNU_SOURCE.patch \
+           "
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+S = "${WORKDIR}/git"
 
 inherit autotools gettext
 
+EXTRA_OECONF += "PERL=${USRBINPATH}/perl"
+
+do_configure_prepend() {
+    ${S}/autogen.sh
+}
+
+do_install_append () {
+    rm -rf ${D}${localstatedir}
+    # Enable SUID bit for applications that need it
+    chmod 4555 ${D}${bindir}/rltraceroute6
+    chmod 4555 ${D}${bindir}/ndisc6
+    chmod 4555 ${D}${bindir}/rdisc6
+}
 ALLOW_EMPTY_${PN} = "1"
 
 # Split into seperate packages since we normal don't want them all
@@ -49,15 +59,9 @@ or IPv4."
 DESCRITPION_${PN}-rdnssd       = "Daemon to autoconfigure the list of DNS
 \
 servers through slateless IPv6 autoconfiguration."
 
-# We do not run perl during the build, but only use it on the target.
-do_configure_prepend() {
-    export PERL="/usr/bin/perl"
-}
+# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to
+# perform the actual trace operation.
+RDEPENDS_${PN}-tcptraceroute6 = "${PN}-rltraceroute6"
+RDEPENDS_${PN}-tracert6 = "${PN}-rltraceroute6"
+RDEPENDS_${PN}-misc += "perl"
 
-do_install_append () {
-    rm -rf ${D}${localstatedir}
-    # Enable SUID bit for applications that need it
-    chmod 4555 ${D}${bindir}/rltraceroute6
-    chmod 4555 ${D}${bindir}/ndisc6
-    chmod 4555 ${D}${bindir}/rdisc6
-}
--

2.14.1

--
_______________________________________________
Openembedded-devel mailing list [email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel