Message ID | 43fd6bbd813c17a10caad354c09b94bd42558170.1344706801.git.thomas.petazzoni@free-electrons.com |
---|---|
State | RFC |
Headers | show |
On Saturday 11 August 2012 19:40:37 Thomas Petazzoni wrote: > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > --- > package/Config.in | 1 + > package/libtirpc/Config.in | 12 ++++ > ...able-parts-of-TIRPC-requiring-NIS-support.patch | 70 ++++++++++++++++++++ > ...out-RPC-support-does-not-install-rpcent.h.patch | 26 ++++++++ > ...btirpc-0003-Add-missing-INET6-conditional.patch | 60 +++++++++++++++++ > .../libtirpc-0004-Make-IPv6-support-optional.patch | 43 ++++++++++++ > package/libtirpc/libtirpc.mk | 17 +++++ > 7 files changed, 229 insertions(+) > create mode 100644 package/libtirpc/Config.in > create mode 100644 package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch > create mode 100644 package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch > create mode 100644 package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch > create mode 100644 package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch > create mode 100644 package/libtirpc/libtirpc.mk > > diff --git a/package/Config.in b/package/Config.in > index f308de7..581cccb 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -431,6 +431,7 @@ source "package/libpcap/Config.in" > source "package/libosip2/Config.in" > source "package/librsync/Config.in" > source "package/libsoup/Config.in" > +source "package/libtirpc/Config.in" > source "package/libtorrent/Config.in" > source "package/libupnp/Config.in" > source "package/libvncserver/Config.in" > diff --git a/package/libtirpc/Config.in b/package/libtirpc/Config.in > new file mode 100644 > index 0000000..ed56b88 > --- /dev/null > +++ b/package/libtirpc/Config.in > @@ -0,0 +1,12 @@ > +config BR2_PACKAGE_LIBTIRPC > + bool "libtirpc" > + depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC > + help > + Libtirpc is a port of Suns Transport-Independent RPC library > + to Linux. > + > + http://sourceforge.net/projects/libtirpc/ > + > +config BR2_RPC_SUPPORT_AVAILABLE > + bool > + default y if (BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_PACKAGE_LIBTIRPC) > diff --git a/package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch b/package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch > new file mode 100644 > index 0000000..bdbe021 > --- /dev/null > +++ b/package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch > @@ -0,0 +1,70 @@ > +From f4c022c526ce061dfdd3c46f544a9495a3a3a97e Mon Sep 17 00:00:00 2001 > +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +Date: Sat, 23 Jun 2012 21:57:39 +0200 > +Subject: [PATCH 1/4] Disable parts of TIRPC requiring NIS support > + > +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +--- > + src/Makefile.am | 3 +-- > + src/rpc_soc.c | 2 ++ > + tirpc/rpc/auth.h | 3 +++ > + 3 files changed, 6 insertions(+), 2 deletions(-) > + > +diff --git a/src/Makefile.am b/src/Makefile.am > +index 7ee8cbc..6d36b93 100644 > +--- a/src/Makefile.am > ++++ b/src/Makefile.am > +@@ -49,8 +49,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln > + pmap_prot.c pmap_prot2.c pmap_rmt.c rpc_prot.c rpc_commondata.c \ > + rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \ > + rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_generic.c \ > +- svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \ > +- auth_time.c auth_des.c authdes_prot.c des_crypt.c > ++ svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c > + > + ## XDR > + libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c > +diff --git a/src/rpc_soc.c b/src/rpc_soc.c > +index c678429..27f2136 100644 > +--- a/src/rpc_soc.c > ++++ b/src/rpc_soc.c > +@@ -515,6 +515,7 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult) > + (resultproc_t) rpc_wrap_bcast, "udp"); > + } > + > ++#if 0 > + /* > + * Create the client des authentication object. Obsoleted by > + * authdes_seccreate(). > +@@ -546,6 +547,7 @@ fallback: > + dummy = authdes_seccreate(servername, window, NULL, ckey); > + return (dummy); > + } > ++#endif > + > + /* > + * Create a client handle for a unix connection. Obsoleted by clnt_vc_create() > +diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h > +index 734e6b9..6e7e54e 100644 > +--- a/tirpc/rpc/auth.h > ++++ b/tirpc/rpc/auth.h > +@@ -282,6 +282,8 @@ extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *); > + extern AUTH *authunix_create_default(void); /* takes no parameters */ > + extern AUTH *authnone_create(void); /* takes no parameters */ > + __END_DECLS > ++ > ++#if 0 > + /* > + * DES style authentication > + * AUTH *authsecdes_create(servername, window, timehost, ckey) > +@@ -295,6 +297,7 @@ extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *); > + extern AUTH *authdes_seccreate (const char *, const u_int, const char *, > + const des_block *); > + __END_DECLS > ++#endif > + > + __BEGIN_DECLS > + extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *); > +-- > +1.7.9.5 > + > diff --git a/package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch b/package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch > new file mode 100644 > index 0000000..0798c34 > --- /dev/null > +++ b/package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch > @@ -0,0 +1,26 @@ > +From c91721dc289397dfe38fdae175f4ee37e824667c Mon Sep 17 00:00:00 2001 > +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +Date: Sat, 23 Jun 2012 21:58:07 +0200 > +Subject: [PATCH 2/4] uClibc without RPC support does not install rpcent.h > + > +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +--- > + tirpc/rpc/rpcent.h | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/tirpc/rpc/rpcent.h b/tirpc/rpc/rpcent.h > +index 7fd93d9..df1f5ed 100644 > +--- a/tirpc/rpc/rpcent.h > ++++ b/tirpc/rpc/rpcent.h > +@@ -47,7 +47,7 @@ > + __BEGIN_DECLS > + > + /* These are defined in /usr/include/rpc/netdb.h */ > +-#if 0 > ++#if __UCLIBC__ > + struct rpcent { > + char *r_name; /* name of server for this rpc program */ > + char **r_aliases; /* alias list */ > +-- > +1.7.9.5 > + > diff --git a/package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch b/package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch > new file mode 100644 > index 0000000..64d3da8 > --- /dev/null > +++ b/package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch > @@ -0,0 +1,60 @@ > +From a4852bd653ac917165de1d41b60168cd88dc6672 Mon Sep 17 00:00:00 2001 > +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +Date: Sat, 23 Jun 2012 21:58:36 +0200 > +Subject: [PATCH 3/4] Add missing INET6 conditional > + > +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +--- > + src/rpc_generic.c | 2 ++ > + src/svc_dg.c | 4 ++++ > + 2 files changed, 6 insertions(+) > + > +diff --git a/src/rpc_generic.c b/src/rpc_generic.c > +index 509fb36..2eb91ad 100644 > +--- a/src/rpc_generic.c > ++++ b/src/rpc_generic.c > +@@ -535,7 +535,9 @@ __rpc_nconf2fd_flags(const struct netconfig *nconf, int flags) > + si.si_af == AF_INET6) { ^^^^^^^^ > + int val = 1; > + > ++#ifdef INET6 > + setsockopt(fd, SOL_IPV6, IPV6_V6ONLY, &val, sizeof(val)); > ++#endif Is it evenpossible to have AF_INET6 defined if INET6 is not? If so, is it sensible to do the actual test if it would do nothing because INET6 is not available? I would simply return fd in this case (but that makes for a bigger patch). > + } > + return fd; > + } > +diff --git a/src/svc_dg.c b/src/svc_dg.c > +index 66a56ee..e8faf33 100644 > +--- a/src/svc_dg.c > ++++ b/src/svc_dg.c > +@@ -627,9 +627,11 @@ svc_dg_enable_pktinfo(int fd, const struct __rpc_sockinfo *si) > + (void) setsockopt(fd, SOL_IP, IP_PKTINFO, &val, sizeof(val)); > + break; > + > ++#ifdef INET6 > + case AF_INET6: > + (void) setsockopt(fd, SOL_IPV6, IPV6_PKTINFO, &val, sizeof(val)); > + break; > ++#endif > + } > + } > + > +@@ -667,6 +669,7 @@ svc_dg_valid_pktinfo(struct msghdr *msg) > + } > + break; > + > ++#ifdef INET6 > + case AF_INET6: > + if (cmsg->cmsg_level != SOL_IPV6 > + || cmsg->cmsg_type != IPV6_PKTINFO > +@@ -679,6 +682,7 @@ svc_dg_valid_pktinfo(struct msghdr *msg) > + pkti->ipi6_ifindex = 0; > + } > + break; > ++#endif > + > + default: > + return 0; > +-- > +1.7.9.5 > + > diff --git a/package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch b/package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch > new file mode 100644 > index 0000000..455ad74 > --- /dev/null > +++ b/package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch > @@ -0,0 +1,43 @@ > +From 1f36736733eac5080f3a4f3abd1c3a04ac42f1dd Mon Sep 17 00:00:00 2001 > +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +Date: Sun, 24 Jun 2012 21:40:21 +0200 > +Subject: [PATCH 4/4] Make IPv6 support optional > + > +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > +--- > + configure.ac | 5 +++++ > + src/Makefile.am | 2 +- > + 2 files changed, 6 insertions(+), 1 deletion(-) > + > +diff --git a/configure.ac b/configure.ac > +index 97c6f2c..487ec83 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -22,6 +22,11 @@ AC_PROG_LIBTOOL > + AC_HEADER_DIRENT > + AC_PREFIX_DEFAULT(/usr) > + AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h]) > ++ > ++AC_CHECK_HEADER(netinet/ip6.h, > ++ AC_DEFINE(INET6, 1, [Define to 1 if IPv6 is available]), > ++ [AC_MSG_WARN([no IPv6])]) > ++ > + AC_CHECK_LIB([pthread], [pthread_create]) > + > + > +diff --git a/src/Makefile.am b/src/Makefile.am > +index 6d36b93..6dc259e 100644 > +--- a/src/Makefile.am > ++++ b/src/Makefile.am > +@@ -6,7 +6,7 @@ > + ## anything like that. > + > + > +-INCLUDES = -I$(top_srcdir)/tirpc -DPORTMAP -DINET6 -DVERSION="\"$(VERSION)\"" \ > ++INCLUDES = -I$(top_srcdir)/tirpc -DPORTMAP -DVERSION="\"$(VERSION)\"" \ > + -D_GNU_SOURCE -Wall -pipe > + > + lib_LTLIBRARIES = libtirpc.la > +-- > +1.7.9.5 > + > diff --git a/package/libtirpc/libtirpc.mk b/package/libtirpc/libtirpc.mk > new file mode 100644 > index 0000000..7479077 > --- /dev/null > +++ b/package/libtirpc/libtirpc.mk > @@ -0,0 +1,17 @@ > +############################################################# > +# > +# libtirpc > +# > +############################################################# > + > +LIBTIRPC_VERSION = 0.2.2 > +LIBTIRPC_SOURCE = libtirpc-$(LIBTIRPC_VERSION).tar.bz2 > +LIBTIRPC_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/libtirpc/libtirpc/$(LIBTIRPC_VERSION) > +LIBTIRPC_LICENSE = BSD-3c > +LIBTIRPC_LICENSE_FILES = COPYING > + > +LIBTIRPC_INSTALL_STAGING = YES > +LIBTIRPC_AUTORECONF = YES > +LIBTIRPC_DEPENDENCIES = host-pkg-config > + > +$(eval $(call autotools-package)) Manual says to simply add: $(eval $(autotools-package)) Regards, Yann E. MORIN.
On 08/12/12 17:43, Yann E. MORIN wrote: >> > +diff --git a/src/rpc_generic.c b/src/rpc_generic.c >> > +index 509fb36..2eb91ad 100644 >> > +--- a/src/rpc_generic.c >> > ++++ b/src/rpc_generic.c >> > +@@ -535,7 +535,9 @@ __rpc_nconf2fd_flags(const struct netconfig *nconf, int flags) >> > + si.si_af == AF_INET6) { > ^^^^^^^^ >> > + int val = 1; >> > + >> > ++#ifdef INET6 >> > + setsockopt(fd, SOL_IPV6, IPV6_V6ONLY,&val, sizeof(val)); >> > ++#endif > Is it evenpossible to have AF_INET6 defined if INET6 is not? Yes it is. > If so, is it sensible to do the actual test if it would do nothing because > INET6 is not available? > > I would simply return fd in this case (but that makes for a bigger patch). Actually, it may make more sense to return -EINVAL (or -1 and set errno, or whatever the convention is). But I don't have enough context to verify that. Regards, Arnout BTW, Yann, it would be nice if you'd snip away some of the quoting, to save us all a bit of scrolling. Not everybody has automatic collapsing of quoted text...
On 08/11/12 19:40, Thomas Petazzoni wrote: > Signed-off-by: Thomas Petazzoni<thomas.petazzoni@free-electrons.com> [snip] > diff --git a/package/libtirpc/Config.in b/package/libtirpc/Config.in > new file mode 100644 > index 0000000..ed56b88 > --- /dev/null > +++ b/package/libtirpc/Config.in > @@ -0,0 +1,12 @@ > +config BR2_PACKAGE_LIBTIRPC > + bool "libtirpc" > + depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC > + help > + Libtirpc is a port of Suns Transport-Independent RPC library ^^^^Sun's Regards, Arnout [snip]
diff --git a/package/Config.in b/package/Config.in index f308de7..581cccb 100644 --- a/package/Config.in +++ b/package/Config.in @@ -431,6 +431,7 @@ source "package/libpcap/Config.in" source "package/libosip2/Config.in" source "package/librsync/Config.in" source "package/libsoup/Config.in" +source "package/libtirpc/Config.in" source "package/libtorrent/Config.in" source "package/libupnp/Config.in" source "package/libvncserver/Config.in" diff --git a/package/libtirpc/Config.in b/package/libtirpc/Config.in new file mode 100644 index 0000000..ed56b88 --- /dev/null +++ b/package/libtirpc/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBTIRPC + bool "libtirpc" + depends on !BR2_TOOLCHAIN_HAS_NATIVE_RPC + help + Libtirpc is a port of Suns Transport-Independent RPC library + to Linux. + + http://sourceforge.net/projects/libtirpc/ + +config BR2_RPC_SUPPORT_AVAILABLE + bool + default y if (BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_PACKAGE_LIBTIRPC) diff --git a/package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch b/package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch new file mode 100644 index 0000000..bdbe021 --- /dev/null +++ b/package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch @@ -0,0 +1,70 @@ +From f4c022c526ce061dfdd3c46f544a9495a3a3a97e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Sat, 23 Jun 2012 21:57:39 +0200 +Subject: [PATCH 1/4] Disable parts of TIRPC requiring NIS support + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + src/Makefile.am | 3 +-- + src/rpc_soc.c | 2 ++ + tirpc/rpc/auth.h | 3 +++ + 3 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 7ee8cbc..6d36b93 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -49,8 +49,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln + pmap_prot.c pmap_prot2.c pmap_rmt.c rpc_prot.c rpc_commondata.c \ + rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \ + rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_generic.c \ +- svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \ +- auth_time.c auth_des.c authdes_prot.c des_crypt.c ++ svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c + + ## XDR + libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c +diff --git a/src/rpc_soc.c b/src/rpc_soc.c +index c678429..27f2136 100644 +--- a/src/rpc_soc.c ++++ b/src/rpc_soc.c +@@ -515,6 +515,7 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult) + (resultproc_t) rpc_wrap_bcast, "udp"); + } + ++#if 0 + /* + * Create the client des authentication object. Obsoleted by + * authdes_seccreate(). +@@ -546,6 +547,7 @@ fallback: + dummy = authdes_seccreate(servername, window, NULL, ckey); + return (dummy); + } ++#endif + + /* + * Create a client handle for a unix connection. Obsoleted by clnt_vc_create() +diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h +index 734e6b9..6e7e54e 100644 +--- a/tirpc/rpc/auth.h ++++ b/tirpc/rpc/auth.h +@@ -282,6 +282,8 @@ extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *); + extern AUTH *authunix_create_default(void); /* takes no parameters */ + extern AUTH *authnone_create(void); /* takes no parameters */ + __END_DECLS ++ ++#if 0 + /* + * DES style authentication + * AUTH *authsecdes_create(servername, window, timehost, ckey) +@@ -295,6 +297,7 @@ extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *); + extern AUTH *authdes_seccreate (const char *, const u_int, const char *, + const des_block *); + __END_DECLS ++#endif + + __BEGIN_DECLS + extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *); +-- +1.7.9.5 + diff --git a/package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch b/package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch new file mode 100644 index 0000000..0798c34 --- /dev/null +++ b/package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch @@ -0,0 +1,26 @@ +From c91721dc289397dfe38fdae175f4ee37e824667c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Sat, 23 Jun 2012 21:58:07 +0200 +Subject: [PATCH 2/4] uClibc without RPC support does not install rpcent.h + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + tirpc/rpc/rpcent.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tirpc/rpc/rpcent.h b/tirpc/rpc/rpcent.h +index 7fd93d9..df1f5ed 100644 +--- a/tirpc/rpc/rpcent.h ++++ b/tirpc/rpc/rpcent.h +@@ -47,7 +47,7 @@ + __BEGIN_DECLS + + /* These are defined in /usr/include/rpc/netdb.h */ +-#if 0 ++#if __UCLIBC__ + struct rpcent { + char *r_name; /* name of server for this rpc program */ + char **r_aliases; /* alias list */ +-- +1.7.9.5 + diff --git a/package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch b/package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch new file mode 100644 index 0000000..64d3da8 --- /dev/null +++ b/package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch @@ -0,0 +1,60 @@ +From a4852bd653ac917165de1d41b60168cd88dc6672 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Sat, 23 Jun 2012 21:58:36 +0200 +Subject: [PATCH 3/4] Add missing INET6 conditional + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + src/rpc_generic.c | 2 ++ + src/svc_dg.c | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git a/src/rpc_generic.c b/src/rpc_generic.c +index 509fb36..2eb91ad 100644 +--- a/src/rpc_generic.c ++++ b/src/rpc_generic.c +@@ -535,7 +535,9 @@ __rpc_nconf2fd_flags(const struct netconfig *nconf, int flags) + si.si_af == AF_INET6) { + int val = 1; + ++#ifdef INET6 + setsockopt(fd, SOL_IPV6, IPV6_V6ONLY, &val, sizeof(val)); ++#endif + } + return fd; + } +diff --git a/src/svc_dg.c b/src/svc_dg.c +index 66a56ee..e8faf33 100644 +--- a/src/svc_dg.c ++++ b/src/svc_dg.c +@@ -627,9 +627,11 @@ svc_dg_enable_pktinfo(int fd, const struct __rpc_sockinfo *si) + (void) setsockopt(fd, SOL_IP, IP_PKTINFO, &val, sizeof(val)); + break; + ++#ifdef INET6 + case AF_INET6: + (void) setsockopt(fd, SOL_IPV6, IPV6_PKTINFO, &val, sizeof(val)); + break; ++#endif + } + } + +@@ -667,6 +669,7 @@ svc_dg_valid_pktinfo(struct msghdr *msg) + } + break; + ++#ifdef INET6 + case AF_INET6: + if (cmsg->cmsg_level != SOL_IPV6 + || cmsg->cmsg_type != IPV6_PKTINFO +@@ -679,6 +682,7 @@ svc_dg_valid_pktinfo(struct msghdr *msg) + pkti->ipi6_ifindex = 0; + } + break; ++#endif + + default: + return 0; +-- +1.7.9.5 + diff --git a/package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch b/package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch new file mode 100644 index 0000000..455ad74 --- /dev/null +++ b/package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch @@ -0,0 +1,43 @@ +From 1f36736733eac5080f3a4f3abd1c3a04ac42f1dd Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Sun, 24 Jun 2012 21:40:21 +0200 +Subject: [PATCH 4/4] Make IPv6 support optional + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + configure.ac | 5 +++++ + src/Makefile.am | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 97c6f2c..487ec83 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,6 +22,11 @@ AC_PROG_LIBTOOL + AC_HEADER_DIRENT + AC_PREFIX_DEFAULT(/usr) + AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h]) ++ ++AC_CHECK_HEADER(netinet/ip6.h, ++ AC_DEFINE(INET6, 1, [Define to 1 if IPv6 is available]), ++ [AC_MSG_WARN([no IPv6])]) ++ + AC_CHECK_LIB([pthread], [pthread_create]) + + +diff --git a/src/Makefile.am b/src/Makefile.am +index 6d36b93..6dc259e 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -6,7 +6,7 @@ + ## anything like that. + + +-INCLUDES = -I$(top_srcdir)/tirpc -DPORTMAP -DINET6 -DVERSION="\"$(VERSION)\"" \ ++INCLUDES = -I$(top_srcdir)/tirpc -DPORTMAP -DVERSION="\"$(VERSION)\"" \ + -D_GNU_SOURCE -Wall -pipe + + lib_LTLIBRARIES = libtirpc.la +-- +1.7.9.5 + diff --git a/package/libtirpc/libtirpc.mk b/package/libtirpc/libtirpc.mk new file mode 100644 index 0000000..7479077 --- /dev/null +++ b/package/libtirpc/libtirpc.mk @@ -0,0 +1,17 @@ +############################################################# +# +# libtirpc +# +############################################################# + +LIBTIRPC_VERSION = 0.2.2 +LIBTIRPC_SOURCE = libtirpc-$(LIBTIRPC_VERSION).tar.bz2 +LIBTIRPC_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/libtirpc/libtirpc/$(LIBTIRPC_VERSION) +LIBTIRPC_LICENSE = BSD-3c +LIBTIRPC_LICENSE_FILES = COPYING + +LIBTIRPC_INSTALL_STAGING = YES +LIBTIRPC_AUTORECONF = YES +LIBTIRPC_DEPENDENCIES = host-pkg-config + +$(eval $(call autotools-package))
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- package/Config.in | 1 + package/libtirpc/Config.in | 12 ++++ ...able-parts-of-TIRPC-requiring-NIS-support.patch | 70 ++++++++++++++++++++ ...out-RPC-support-does-not-install-rpcent.h.patch | 26 ++++++++ ...btirpc-0003-Add-missing-INET6-conditional.patch | 60 +++++++++++++++++ .../libtirpc-0004-Make-IPv6-support-optional.patch | 43 ++++++++++++ package/libtirpc/libtirpc.mk | 17 +++++ 7 files changed, 229 insertions(+) create mode 100644 package/libtirpc/Config.in create mode 100644 package/libtirpc/libtirpc-0001-Disable-parts-of-TIRPC-requiring-NIS-support.patch create mode 100644 package/libtirpc/libtirpc-0002-uClibc-without-RPC-support-does-not-install-rpcent.h.patch create mode 100644 package/libtirpc/libtirpc-0003-Add-missing-INET6-conditional.patch create mode 100644 package/libtirpc/libtirpc-0004-Make-IPv6-support-optional.patch create mode 100644 package/libtirpc/libtirpc.mk