From 3dfe4b6f756b5e6fc5ecf5ddf3533c39c644c7f7 Mon Sep 17 00:00:00 2001 From: Pawel Pekala Date: Fri, 21 Feb 2014 22:30:51 +0000 Subject: [PATCH] - Fix build with clang, now no gcc is required on 10+ [1] - Adapt it to new RAW socket behavior introduced in 10.0 [1] - Support staging [1] - Convert to new options framework - Respect CFLAGS PR: ports/186127 [1] Submitted by: Olivier Cochard-Labbe --- net/pimdd/Makefile | 20 ++++++++------------ net/pimdd/files/patch-Makefile | 13 +++++++++++-- net/pimdd/files/patch-igmp.c | 14 ++++++++++++++ net/pimdd/files/patch-pim_proto.c | 11 +++++++++++ 4 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 net/pimdd/files/patch-igmp.c create mode 100644 net/pimdd/files/patch-pim_proto.c diff --git a/net/pimdd/Makefile b/net/pimdd/Makefile index 4bba72913a1d..2963a9d59f9b 100644 --- a/net/pimdd/Makefile +++ b/net/pimdd/Makefile @@ -3,6 +3,7 @@ PORTNAME= pimdd PORTVERSION= 0.2.1.0 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= http://antc.uoregon.edu/PIMDM/ DISTNAME= pimd-dense @@ -11,7 +12,6 @@ MAINTAINER= ports@FreeBSD.org COMMENT= UO Dense Protocol-Independent Multicast (PIM-DM) daemon for IPv4 MAKE_ARGS+= CC="${CC}" -USE_GCC= any NO_MAN= yes @@ -20,22 +20,18 @@ PLIST_FILES= sbin/pimdd \ PORTDOCS= pimd-dense.html README CHANGES RELEASE.NOTES -NO_STAGE= yes -.include +OPTIONS_DEFINE= DOCS EXTRA_PATCHES= ${FILESDIR}/extra-patch-defs.h post-patch: ${REINPLACE_CMD} -e 's|/etc/pimd.conf|${PREFIX}/etc/pimd.conf|g' ${WRKSRC}/pathnames.h + ${REINPLACE_CMD} -e 's|-Wall -g|${CFLAGS}|' ${WRKSRC}/Makefile do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/pimdd ${PREFIX}/sbin/pimdd - ${INSTALL_DATA} ${WRKSRC}/pimdd.conf ${PREFIX}/etc/pimdd.conf.sample -.if !defined(NOPORTDOCS) - ${MKDIR} ${DOCSDIR} -.for i in ${PORTDOCS} - ${INSTALL_MAN} ${WRKSRC}/${i} ${DOCSDIR}/${i} -.endfor -.endif + ${INSTALL_PROGRAM} ${WRKSRC}/pimdd ${STAGEDIR}${PREFIX}/sbin/pimdd + ${INSTALL_DATA} ${WRKSRC}/pimdd.conf ${STAGEDIR}${PREFIX}/etc/pimdd.conf.sample + ${MKDIR} ${STAGEDIR}${DOCSDIR} + (cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}) -.include +.include diff --git a/net/pimdd/files/patch-Makefile b/net/pimdd/files/patch-Makefile index df7f0e9d9b2a..9e68a532833c 100644 --- a/net/pimdd/files/patch-Makefile +++ b/net/pimdd/files/patch-Makefile @@ -1,5 +1,14 @@ ---- Makefile.orig Fri Sep 29 11:53:31 2006 -+++ Makefile Fri Sep 29 11:53:50 2006 +--- Makefile.orig 1999-11-30 18:58:53.000000000 +0100 ++++ Makefile 2013-09-08 09:39:18.947517833 +0200 +@@ -53,7 +53,7 @@ + # Support for Resource Reservations), currently used by RSVP. + RSRRDEF= -DRSRR + +-CC = gcc ++#CC = gcc + MCAST_INCLUDE= -Iinclude + LDFLAGS= + @@ -63,7 +63,7 @@ #CONFIGCONFIGCONFIG ### Compilation flags for different platforms. Uncomment only one of them diff --git a/net/pimdd/files/patch-igmp.c b/net/pimdd/files/patch-igmp.c new file mode 100644 index 000000000000..bc6ea80785c6 --- /dev/null +++ b/net/pimdd/files/patch-igmp.c @@ -0,0 +1,14 @@ +--- igmp.c.orig 2014-01-22 00:05:49.560452946 +0100 ++++ igmp.c 2014-01-22 00:06:57.098508699 +0100 +@@ -168,7 +168,11 @@ + #ifdef RAW_INPUT_IS_RAW + ipdatalen = ntohs(ip->ip_len) - iphdrlen; + #else ++ #if __FreeBSD_version >= 1000000 ++ ipdatalen = ip->ip_len - iphdrlen; ++ #else + ipdatalen = ip->ip_len; ++ #endif + #endif + if (iphdrlen + ipdatalen != recvlen) { + log(LOG_WARNING, 0, diff --git a/net/pimdd/files/patch-pim_proto.c b/net/pimdd/files/patch-pim_proto.c new file mode 100644 index 000000000000..c53844747ec0 --- /dev/null +++ b/net/pimdd/files/patch-pim_proto.c @@ -0,0 +1,11 @@ +--- pim_proto.c.orig 2014-01-26 12:48:37.048478574 +0100 ++++ pim_proto.c 2014-01-26 12:51:08.180470630 +0100 +@@ -669,7 +669,7 @@ + "\tPRUNE src %s, group %s - scheduling delayed join", + inet_fmt(source, s1), inet_fmt(group, s2)); + +- schedule_delayed_join(mrtentry_ptr, uni_target_addr); ++ schedule_delayed_join(mrtentry_ptr, uni_target_addr.unicast_addr); + } + } +