From 8ae1075b487082709852324456eb2f19194157f3 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sun, 28 Dec 2014 06:47:04 +0100 Subject: [PATCH] traceroute: use our LDFLAGS in native builds; unbreak musl build. --- srcpkgs/traceroute/patches/musl.patch | 358 ++++++++++++++++++++++++++ srcpkgs/traceroute/template | 4 +- 2 files changed, 360 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/traceroute/patches/musl.patch diff --git a/srcpkgs/traceroute/patches/musl.patch b/srcpkgs/traceroute/patches/musl.patch new file mode 100644 index 00000000000..22d8112d01a --- /dev/null +++ b/srcpkgs/traceroute/patches/musl.patch @@ -0,0 +1,358 @@ +--- traceroute/csum.c 2013-07-19 16:47:55.000000000 +0200 ++++ traceroute/csum.c 2014-12-28 06:31:08.164629774 +0100 +@@ -12,11 +12,11 @@ + #include "traceroute.h" + + +-u_int16_t in_csum (const void *ptr, size_t len) { +- const u_int16_t *p = (const u_int16_t *) ptr; ++uint16_t in_csum (const void *ptr, size_t len) { ++ const uint16_t *p = (const uint16_t *) ptr; + size_t nw = len / 2; + unsigned int sum = 0; +- u_int16_t res; ++ uint16_t res; + + while (nw--) sum += *p++; + +--- traceroute/extension.c 2013-07-14 16:29:08.000000000 +0200 ++++ traceroute/extension.c 2014-12-28 06:31:08.164629774 +0100 +@@ -14,16 +14,16 @@ struct icmp_ext_header { + unsigned int reserved:4; + unsigned int version:4; + #endif +- u_int8_t reserved1; +- u_int16_t checksum; ++ uint8_t reserved1; ++ uint16_t checksum; + } __attribute__ ((packed)); + + + struct icmp_ext_object { +- u_int16_t length; +- u_int8_t class; +- u_int8_t c_type; +- u_int8_t data[0]; ++ uint16_t length; ++ uint8_t class; ++ uint8_t c_type; ++ uint8_t data[0]; + }; + + #define MPLS_CLASS 1 +@@ -49,7 +49,7 @@ static int try_extension (probe *pb, cha + if (iext->version != 2) return -1; + + if (iext->checksum && +- in_csum (iext, len) != (u_int16_t) ~0 ++ in_csum (iext, len) != (uint16_t) ~0 + ) return -1; + + buf += sizeof (*iext); +@@ -60,7 +60,7 @@ static int try_extension (probe *pb, cha + struct icmp_ext_object *obj = (struct icmp_ext_object *) buf; + size_t objlen = ntohs (obj->length); + size_t data_len; +- u_int32_t *ui = (u_int32_t *) obj->data; ++ uint32_t *ui = (uint32_t *) obj->data; + int i, n; + + if (objlen < sizeof (*obj) || +@@ -68,7 +68,7 @@ static int try_extension (probe *pb, cha + ) return -1; + + data_len = objlen - sizeof (*obj); +- if (data_len % sizeof (u_int32_t)) ++ if (data_len % sizeof (uint32_t)) + return -1; /* must be 32bit rounded... */ + + n = data_len / sizeof (*ui); +@@ -85,7 +85,7 @@ static int try_extension (probe *pb, cha + do_snprintf (curr, end, "MPLS:"); + + for (i = 0; i < n; i++, ui++) { +- u_int32_t mpls = ntohl (*ui); ++ uint32_t mpls = ntohl (*ui); + + do_snprintf (curr, end, "%sL=%u,E=%u,S=%u,T=%u", + i ? "/" : "", +--- traceroute/mod-dccp.c 2013-11-19 16:51:53.000000000 +0100 ++++ traceroute/mod-dccp.c 2014-12-28 06:31:08.166629774 +0100 +@@ -30,7 +30,7 @@ static unsigned int dest_port = 0; + static int raw_sk = -1; + static int last_ttl = 0; + +-static u_int8_t buf[1024]; /* enough, enough... */ ++static uint8_t buf[1024]; /* enough, enough... */ + static size_t csum_len = 0; + static struct dccp_hdr *dh = NULL; + static struct dccp_hdr_ext *dhe = NULL; +@@ -51,8 +51,8 @@ static int dccp_init (const sockaddr_any + int af = dest->sa.sa_family; + sockaddr_any src; + socklen_t len; +- u_int8_t *ptr; +- u_int16_t *lenp; ++ uint8_t *ptr; ++ uint16_t *lenp; + + + dest_addr = *dest; +@@ -117,10 +117,10 @@ static int dccp_init (const sockaddr_any + ptr += len; + } + +- lenp = (u_int16_t *) ptr; +- ptr += sizeof (u_int16_t); +- *((u_int16_t *) ptr) = htons ((u_int16_t) IPPROTO_DCCP); +- ptr += sizeof (u_int16_t); ++ lenp = (uint16_t *) ptr; ++ ptr += sizeof (uint16_t); ++ *((uint16_t *) ptr) = htons ((uint16_t) IPPROTO_DCCP); ++ ptr += sizeof (uint16_t); + + + /* Construct DCCP header */ +@@ -153,7 +153,7 @@ static int dccp_init (const sockaddr_any + if (csum_len > sizeof (buf)) + error ("impossible"); /* paranoia */ + +- len = ptr - (u_int8_t *) dh; ++ len = ptr - (uint8_t *) dh; + if (len & 0x03) error ("impossible"); /* as >>2 ... */ + + *lenp = htons (len); +@@ -232,7 +232,7 @@ static probe *dccp_check_reply (int sk, + char *buf, size_t len) { + probe *pb; + struct dccp_hdr *ndh = (struct dccp_hdr *) buf; +- u_int16_t sport, dport; ++ uint16_t sport, dport; + + + if (len < 8) return NULL; /* too short */ +--- traceroute/mod-icmp.c 2014-11-12 00:55:56.000000000 +0100 ++++ traceroute/mod-icmp.c 2014-12-28 06:31:08.167629774 +0100 +@@ -20,8 +20,8 @@ + + + static sockaddr_any dest_addr = {{ 0, }, }; +-static u_int16_t seq = 1; +-static u_int16_t ident = 0; ++static uint16_t seq = 1; ++static uint16_t ident = 0; + + static char *data; + static size_t *length_p; +@@ -173,7 +173,7 @@ static probe *icmp_check_reply (int sk, + char *buf, size_t len) { + int af = dest_addr.sa.sa_family; + int type; +- u_int16_t recv_id, recv_seq; ++ uint16_t recv_id, recv_seq; + probe *pb; + + +--- traceroute/mod-tcp.c 2013-03-27 15:01:15.000000000 +0100 ++++ traceroute/mod-tcp.c 2014-12-28 06:35:44.165642089 +0100 +@@ -26,6 +26,37 @@ + #define IP_MTU 14 + #endif + ++#ifndef TCPOPT_NOP ++# define TCPOPT_NOP 1 ++#endif ++#ifndef TCPOPT_MAXSEG ++# define TCPOPT_MAXSEG 2 ++#endif ++#ifndef TCPOPT_WINDOW ++# define TCPOPT_WINDOW 3 ++#endif ++#ifndef TCPOPT_SACK_PERMITTED ++# define TCPOPT_SACK_PERMITTED 4 ++#endif ++#ifndef TCPOPT_SACK ++# define TCPOPT_SACK 5 ++#endif ++#ifndef TCPOPT_TIMESTAMP ++# define TCPOPT_TIMESTAMP 8 ++#endif ++ ++#ifndef TCPOLEN_MAXSEG ++# define TCPOLEN_MAXSEG 4 ++#endif ++#ifndef TCPOLEN_WINDOW ++# define TCPOLEN_WINDOW 3 ++#endif ++#ifndef TCPOLEN_SACK_PERMITTED ++# define TCPOLEN_SACK_PERMITTED 2 ++#endif ++#ifndef TCPOLEN_TIMESTAMP ++# define TCPOLEN_TIMESTAMP 10 ++#endif + + static sockaddr_any dest_addr = {{ 0, }, }; + static unsigned int dest_port = 0; +@@ -33,11 +64,11 @@ static unsigned int dest_port = 0; + static int raw_sk = -1; + static int last_ttl = 0; + +-static u_int8_t buf[1024]; /* enough, enough... */ ++static uint8_t buf[1024]; /* enough, enough... */ + static size_t csum_len = 0; + static struct tcphdr *th = NULL; + +-#define TH_FLAGS(TH) (((u_int8_t *) (TH))[13]) ++#define TH_FLAGS(TH) (((uint8_t *) (TH))[13]) + #define TH_FIN 0x01 + #define TH_SYN 0x02 + #define TH_RST 0x04 +@@ -164,7 +195,7 @@ static CLIF_option tcp_options[] = { + static int check_sysctl (const char *name) { + int fd, res; + char buf[sizeof (SYSCTL_PREFIX) + strlen (name) + 1]; +- u_int8_t ch; ++ uint8_t ch; + + strcpy (buf, SYSCTL_PREFIX); + strcat (buf, name); +@@ -191,8 +222,8 @@ static int tcp_init (const sockaddr_any + sockaddr_any src; + int mtu; + socklen_t len; +- u_int8_t *ptr; +- u_int16_t *lenp; ++ uint8_t *ptr; ++ uint16_t *lenp; + + + dest_addr = *dest; +@@ -286,10 +317,10 @@ static int tcp_init (const sockaddr_any + ptr += len; + } + +- lenp = (u_int16_t *) ptr; +- ptr += sizeof (u_int16_t); +- *((u_int16_t *) ptr) = htons ((u_int16_t) IPPROTO_TCP); +- ptr += sizeof (u_int16_t); ++ lenp = (uint16_t *) ptr; ++ ptr += sizeof (uint16_t); ++ *((uint16_t *) ptr) = htons ((uint16_t) IPPROTO_TCP); ++ ptr += sizeof (uint16_t); + + + /* Construct TCP header */ +@@ -309,13 +340,13 @@ static int tcp_init (const sockaddr_any + + /* Build TCP options */ + +- ptr = (u_int8_t *) (th + 1); ++ ptr = (uint8_t *) (th + 1); + + if (flags & TH_SYN) { + *ptr++ = TCPOPT_MAXSEG; /* 2 */ + *ptr++ = TCPOLEN_MAXSEG; /* 4 */ +- *((u_int16_t *) ptr) = htons (mss ? mss : mtu); +- ptr += sizeof (u_int16_t); ++ *((uint16_t *) ptr) = htons (mss ? mss : mtu); ++ ptr += sizeof (uint16_t); + } + + if (flags & FL_TSTAMP) { +@@ -330,10 +361,10 @@ static int tcp_init (const sockaddr_any + *ptr++ = TCPOPT_TIMESTAMP; /* 8 */ + *ptr++ = TCPOLEN_TIMESTAMP; /* 10 */ + +- *((u_int32_t *) ptr) = random_seq (); /* really! */ +- ptr += sizeof (u_int32_t); +- *((u_int32_t *) ptr) = (flags & TH_ACK) ? random_seq () : 0; +- ptr += sizeof (u_int32_t); ++ *((uint32_t *) ptr) = random_seq (); /* really! */ ++ ptr += sizeof (uint32_t); ++ *((uint32_t *) ptr) = (flags & TH_ACK) ? random_seq () : 0; ++ ptr += sizeof (uint32_t); + } + else if (flags & FL_SACK) { + *ptr++ = TCPOPT_NOP; /* 1 */ +@@ -355,7 +386,7 @@ static int tcp_init (const sockaddr_any + if (csum_len > sizeof (buf)) + error ("impossible"); /* paranoia */ + +- len = ptr - (u_int8_t *) th; ++ len = ptr - (uint8_t *) th; + if (len & 0x03) error ("impossible"); /* as >>2 ... */ + + *lenp = htons (len); +@@ -436,7 +467,7 @@ static probe *tcp_check_reply (int sk, i + char *buf, size_t len) { + probe *pb; + struct tcphdr *tcp = (struct tcphdr *) buf; +- u_int16_t sport, dport; ++ uint16_t sport, dport; + + + if (len < 8) return NULL; /* too short */ +--- traceroute/mod-udp.c 2013-12-14 15:51:44.000000000 +0100 ++++ traceroute/mod-udp.c 2014-12-28 06:31:08.172629774 +0100 +@@ -71,7 +71,7 @@ static int udp_init (const sockaddr_any + dest_addr = *dest; + + if (!port_seq) port_seq = DEF_UDP_PORT; +- dest_addr.sin.sin_port = htons ((u_int16_t) port_seq); ++ dest_addr.sin.sin_port = htons ((uint16_t) port_seq); + + fill_data (packet_len_p); + +@@ -107,7 +107,7 @@ static int udplite_init (const sockaddr_ + dest_addr = *dest; + + if (!port_seq) port_seq = DEF_UDP_PORT; /* XXX: Hmmm... */ +- dest_addr.sin.sin_port = htons ((u_int16_t) port_seq); ++ dest_addr.sin.sin_port = htons ((uint16_t) port_seq); + + protocol = IPPROTO_UDPLITE; + +--- traceroute/traceroute.c 2014-11-12 04:33:00.000000000 +0100 ++++ traceroute/traceroute.c 2014-12-28 06:32:30.278633438 +0100 +@@ -52,6 +52,12 @@ + #define IPV6_PMTUDISC_PROBE 3 + #endif + ++#ifndef AI_IDN ++#define AI_IDN 0 ++#endif ++#ifndef NI_IDN ++#define NI_IDN 0 ++#endif + + #define MAX_HOPS 255 + #define MAX_PROBES 10 +@@ -325,7 +331,7 @@ static void init_ip_options (void) { + rth->ip6r_type = ipv6_rthdr_type; + rth->ip6r_segleft = num_gateways; + +- *((u_int32_t *) (rth + 1)) = 0; ++ *((uint32_t *) (rth + 1)) = 0; + + in6 = (struct in6_addr *) (rtbuf + 8); + for (i = 0; i < num_gateways; i++) +@@ -606,7 +612,7 @@ int main (int argc, char *argv[]) { + htonl (((tos & 0xff) << 20) | (flow_label & 0x000fffff)); + + if (src_port) { +- src_addr.sin.sin_port = htons ((u_int16_t) src_port); ++ src_addr.sin.sin_port = htons ((uint16_t) src_port); + src_addr.sa.sa_family = af; + } + +--- traceroute/traceroute.h 2013-11-19 15:46:11.000000000 +0100 ++++ traceroute/traceroute.h 2014-12-28 06:31:08.180629775 +0100 +@@ -92,7 +92,7 @@ const char *get_as_path (const char *que + int raw_can_connect (void); + + unsigned int random_seq (void); +-u_int16_t in_csum (const void *ptr, size_t len); ++uint16_t in_csum (const void *ptr, size_t len); + + + void tr_register_module (tr_module *module); diff --git a/srcpkgs/traceroute/template b/srcpkgs/traceroute/template index b4a8bd1783c..95cd62e5959 100644 --- a/srcpkgs/traceroute/template +++ b/srcpkgs/traceroute/template @@ -1,7 +1,7 @@ # Template file for 'traceroute' pkgname=traceroute version=2.0.21 -revision=1 +revision=2 short_desc="Traces the route taken by packets over an IPv4/IPv6 network" maintainer="Juan RP " license="GPL-2" @@ -13,7 +13,7 @@ do_build() { if [ "$CROSS_BUILD" ]; then make LDFLAGS="-L${wrksrc}/libsupp $LDFLAGS" CFLAGS="$CFLAGS" CROSS=${XBPS_CROSS_TRIPLET}- ${makejobs} else - make CFLAGS="$CFLAGS" ${makejobs} + make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" ${makejobs} fi } do_install() {