During the Subversion 1.8 upgrade I accidentally broke gnome keyring support. Specifically, the libsvn_auth_gnome_keyring library fails to dlopen() because the ports infrastructure appends a custom version to the soname, while Subversion expects a different name. Patch Subversion to look for the right name.
Register the -gnome-keyring subpackage as a test dependency to make auth-tests pass (which check for this exact problem). Also, move SUBST_CMD execution into post-patch so the result of 'make patch' matches what will be conigured/compiled. ok? Index: Makefile =================================================================== RCS file: /cvs/ports/devel/subversion/Makefile,v retrieving revision 1.129 diff -u -p -r1.129 Makefile --- Makefile 25 Nov 2013 17:08:06 -0000 1.129 +++ Makefile 20 Jan 2014 13:17:21 -0000 @@ -9,6 +9,7 @@ COMMENT-gnome-keyring= GNOME keyring sup VERSION= 1.8.5 DISTNAME= subversion-${VERSION} +REVISION-main = 0 PKGNAME-main= ${DISTNAME} FULLPKGNAME-perl= p5-SVN-${VERSION} FULLPKGPATH-perl= devel/subversion,-perl @@ -175,14 +176,17 @@ CONFIGURE_ARGS+=--without-apxs .endif TEST_DEPENDS=${MODPY_RUN_DEPENDS} -SUBST_VARS+= LOCALBASE +TEST_DEPENDS+= ${FULLPKGNAME-gnome-keyring}:${BUILD_PKGPATH},-gnome-keyring +SUBST_VARS+= LOCALBASE SO_VERSION pre-patch: @ln -s ${MODPY_BIN} ${WRKDIR}/bin/python -pre-configure: +post-patch: @${SUBST_CMD} ${WRKSRC}/Makefile.in ${WRKSRC}/configure.ac \ ${WRKSRC}/subversion/libsvn_subr/auth.c + +pre-configure: @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \ AUTOCONF_VERSION=${AUTOCONF_VERSION} ./autogen.sh Index: patches/patch-subversion_libsvn_subr_auth_c =================================================================== RCS file: patches/patch-subversion_libsvn_subr_auth_c diff -N patches/patch-subversion_libsvn_subr_auth_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-subversion_libsvn_subr_auth_c 20 Jan 2014 13:11:21 -0000 @@ -0,0 +1,15 @@ +$OpenBSD$ +--- subversion/libsvn_subr/auth.c.orig Mon Jan 20 14:02:33 2014 ++++ subversion/libsvn_subr/auth.c Mon Jan 20 14:11:07 2014 +@@ -454,9 +454,9 @@ svn_auth_get_platform_specific_provider(svn_auth_provi + const char *library_label, *library_name; + const char *provider_function_name, *version_function_name; + library_name = apr_psprintf(pool, +- "libsvn_auth_%s-%d.so.%d", ++ "libsvn_auth_%s-%d.so.%s", + provider_name, +- SVN_VER_MAJOR, SVN_SOVERSION); ++ SVN_VER_MAJOR, "${SO_VERSION}"); + library_label = apr_psprintf(pool, "svn_%s", provider_name); + provider_function_name = apr_psprintf(pool, + "svn_auth_get_%s_%s_provider",