> On Nov 1, 2015, at 12:57 PM, Peter Rosin <peda@xxxxxxxxxxxxxx> wrote: > > > On 2015-11-01 11:51, Andreas Radke wrote: >> Am Sat, 31 Oct 2015 15:51:54 -0400 >> schrieb Steve Dickson <SteveD@xxxxxxxxxx>: >> >>> Hello, >>> >>> The 1.0.1 version of libtirpc has just been release. >>> >>> In this release the SONAME has been changed to 3.0.0 to >>> reflect a number of changes in the API. Those changes >>> were needed to make the Linux version of libtirpc >>> more compatible with other implementations >> This break rpcbind recompilation: >> >> src/rpcb_svc_com.c: In function 'handle_reply': >> src/rpcb_svc_com.c:1298:6: error: 'SVCXPRT {aka struct __rpc_svcxprt}' >> has no member named 'xp_auth' xprt->xp_auth = &svc_auth_none; >> ^ >> In file included from /usr/include/tirpc/rpc/rpc.h:62:0, >> from src/rpcb_svc_com.c:48: >> src/rpcb_svc_com.c:1300:22: error: 'SVCXPRT {aka struct __rpc_svcxprt}' >> has no member named 'xp_auth' SVCAUTH_DESTROY(xprt->xp_auth); >> ^ >> /usr/include/tirpc/rpc/svc_auth.h:63:7: note: in definition of macro >> 'SVCAUTH_DESTROY' ((*((auth)->svc_ah_ops->svc_ah_destroy))(auth)) >> ^ >> src/rpcb_svc_com.c:1300:22: error: 'SVCXPRT {aka struct __rpc_svcxprt}' >> has no member named 'xp_auth' SVCAUTH_DESTROY(xprt->xp_auth); >> ^ >> /usr/include/tirpc/rpc/svc_auth.h:63:43: note: in definition of macro >> 'SVCAUTH_DESTROY' ((*((auth)->svc_ah_ops->svc_ah_destroy))(auth)) >> ^ >> src/rpcb_svc_com.c:1301:6: error: 'SVCXPRT {aka struct __rpc_svcxprt}' >> has no member named 'xp_auth' xprt->xp_auth = NULL; >> ^ >> Makefile:481: recipe for target 'src/rpcb_svc_com.o' failed >> make: *** [src/rpcb_svc_com.o] Error 1 >> make: *** Waiting for unfinished jobs.... >> ==> ERROR: A failure occurred in build(). >> >> Do you have a fix? >> > > Should be as simple as (not even compile-tested): > > diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c > index 4ae93f1..38f163f 100644 > --- a/src/rpcb_svc_com.c > +++ b/src/rpcb_svc_com.c > @@ -1295,10 +1295,8 @@ handle_reply(int fd, SVCXPRT *xprt) > a.rmt_localvers = fi->versnum; > > xprt_set_caller(xprt, fi); > - xprt->xp_auth = &svc_auth_none; > + SVC_XP_AUTH(xprt) = svc_auth_none; > svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (char *) &a); > - SVCAUTH_DESTROY(xprt->xp_auth); > - xprt->xp_auth = NULL; > done: > if (buffer) > free(buffer); > > But that breaks compatibility with earlier libtirpc of course… > #if defined(SVC_XP_AUTH) SVC_XP_AUTH(xprt) = svc_auth_none; #else . . . #endif But I wonder if that’s even necessary now. See rpcbind commit 86036582c001. -- Chuck Lever chucklever@xxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html