devel/subversion-static fails to link libm resulting in isnan() being undefined. This could very well be a problem with devel/apr1. devel/subversion-static fails to include serf. neon is replaced by serf but devel/subversion-static/Makefile doesn't reflect this change in the list of slave options. Fix: Apply these two patches. The first one is for devel/subversion-static/work/subversion-1.8.0/Makefile. The second is for devel/subversion-static/Makefile. top_builddir = . top_srcdir = . abs_builddir = /usr/ports/workdirs/usr/ports/devel/subversion-static/work/subversion-1.8.0 abs_srcdir = /usr/ports/workdirs/usr/ports/devel/subversion-static/work/subversion-1.8.0 VPATH = . SVN_RA_LIB_DEPS = $(RA_LOCAL_DEPS) $(RA_SVN_DEPS) SVN_RA_LIB_INSTALL_DEPS = install-ramod-lib SVN_RA_LIB_LINK = $(RA_LOCAL_LINK) $(RA_SVN_LINK) SVN_FS_LIB_DEPS = $(FS_FS_DEPS) SVN_FS_LIB_INSTALL_DEPS = install-fsmod-lib SVN_FS_LIB_LINK = $(FS_FS_LINK) SWIG_SRC_DIR = $(abs_srcdir)/subversion/bindings/swig SWIG_BUILD_DIR = $(abs_builddir)/subversion/bindings/swig SCHEMA_DIR = subversion/svn/schema -SVN_APR_LIBS = -L/usr/local/lib -lapr-1 -lcrypt -pthread +SVN_APR_LIBS = -L/usr/local/lib -lapr-1 -lcrypt -pthread -lm SVN_APRUTIL_LIBS = -L/usr/local/lib -laprutil-1 -ldb-4.2 -lgdbm -lexpat -liconv SVN_APR_MEMCACHE_LIBS = SVN_DB_LIBS = SVN_GPG_AGENT_LIBS = @SVN_GPG_AGENT_LIBS@ SVN_GNOME_KEYRING_LIBS = SVN_KWALLET_LIBS = SVN_MAGIC_LIBS = -lmagic SVN_SASL_LIBS = SVN_SERF_LIBS = SVN_SQLITE_LIBS = -L/usr/local/lib -lsqlite3 SVN_XML_LIBS = -lexpat SVN_ZLIB_LIBS = -lz LIBS = -lintl prefix = /usr/local exec_prefix = ${prefix} libdir = ${exec_prefix}/lib fsmod_libdir = ${exec_prefix}/lib ramod_libdir = ${exec_prefix}/lib PKGNAMESUFFIX= -static CONFLICTS_INSTALL= ${PORTNAME}-[0-9]* LATEST_LINK= ${PORTNAME}${PKGNAMESUFFIX} OPTIONS_EXCLUDE= ${OPTIONS_DEFINE} -OPTIONS_SLAVE= NEON STATIC FREEBSD_TEMPLATE ENHANCED_KEYWORD +OPTIONS_SLAVE= SERF STATIC FREEBSD_TEMPLATE ENHANCED_KEYWORD MASTERDIR= ${.CURDIR}/../subversion PKGMESSAGE= ${.CURDIR}/pkg-message .include "${MASTERDIR}/Makefile"--RQXjKsPryVhKAuzN0m6WMSJvEdEdFTjhMeNPyrQxeRFCmRjh Content-Type: text/plain; name="file.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="file.diff" --- Makefile.orig 2013-06-30 11:26:00.000000000 +0200 +++ Makefile 2013-06-30 11:32:11.000000000 +0200 @@ -23,41 +23,41 @@ How-To-Repeat: Install devel/subversion-static from scratch.
Responsible Changed From-To: freebsd-ports-bugs->lev Over to maintainer (via the GNATS Auto Assign Tool)
Author: lev Date: Sat Jul 13 15:36:50 2013 New Revision: 322938 URL: http://svnweb.freebsd.org/changeset/ports/322938 Log: (1) Fix subversion-static port to use SERF. (2) Backport fix of issue #4383: problems with symbolic-link WC. (3) Backport change r1500762 (no isue # found): conflict between GPG Agent and other password stories. (4) Fix error message when Subversion is configured with BDB abd APR is not. PR: ports/179807, ports/180121, ports/180121 Submitted by: [3] eugen@grosbein.pp.ru Added: head/devel/subversion/files/patch-fix4383 (contents, props changed) head/devel/subversion/files/patch-subversion--libsvn_subr--gpg_agent.c (contents, props changed) Modified: head/devel/subversion-static/Makefile head/devel/subversion/Makefile head/devel/subversion/Makefile.common Modified: head/devel/subversion-static/Makefile ============================================================================== --- head/devel/subversion-static/Makefile Sat Jul 13 15:33:23 2013 (r322937) +++ head/devel/subversion-static/Makefile Sat Jul 13 15:36:50 2013 (r322938) @@ -3,10 +3,10 @@ PKGNAMESUFFIX= -static CONFLICTS_INSTALL= ${PORTNAME}-[0-9]* -LATEST_LINK= ${PORTNAME}${PKGNAMESUFFIX} +LATEST_LINK= ${PORTNAME}${PKGNAMESUFFIX} OPTIONS_EXCLUDE= ${OPTIONS_DEFINE} -OPTIONS_SLAVE= NEON STATIC FREEBSD_TEMPLATE ENHANCED_KEYWORD +OPTIONS_SLAVE= FREEBSD_TEMPLATE P4_STYLE_MARKERS SERF STATIC MASTERDIR= ${.CURDIR}/../subversion PKGMESSAGE= ${.CURDIR}/pkg-message Modified: head/devel/subversion/Makefile ============================================================================== --- head/devel/subversion/Makefile Sat Jul 13 15:33:23 2013 (r322937) +++ head/devel/subversion/Makefile Sat Jul 13 15:36:50 2013 (r322938) @@ -15,9 +15,10 @@ MAN8= svnserve.8 TXT_DOCS= BUGS CHANGES COMMITTERS INSTALL README -OPTIONS_DEFINE= BDB BOOK GNOME_KEYRING KDE_KWALLET MAINTAINER_DEBUG \ - MOD_DAV_SVN P4_STYLE_MARKERS FREEBSD_TEMPLATE SASL \ - SERF STATIC SVNSERVE_WRAPPER TEST TOOLS \ +OPTIONS_DEFINE= BDB BOOK DOCS GNOME_KEYRING KDE_KWALLET \ + MAINTAINER_DEBUG MOD_DAV_SVN NLS P4_STYLE_MARKERS \ + FREEBSD_TEMPLATE SASL SERF STATIC SVNSERVE_WRAPPER \ + TEST TOOLS OPTIONS_DEFAULT=P4_STYLE_MARKERS FREEBSD_TEMPLATE SERF @@ -212,8 +213,8 @@ pre-configure: @BDB_VERSION=`${APR_APU_DIR}/${APU_CONFIG} --db-version`; \ if [ "$${BDB_VERSION}" != "4" -a "$${BDB_VERSION}" != "5" ] ; then \ ${ECHO_MSG} "" ; \ - ${ECHO_MSG} 'You should build `'"${APR_PORT}' with Berkeley DB (4 or 5) support to use subversion with it." ; \ - ${ECHO_MSG} 'Please rebuild `'"${APR_PORT}' with option "'`'"${OPT_NAME}' and try again." ; \ + ${ECHO_MSG} 'You should build `'"devel/apr1' with Berkeley DB (4 or 5) support to use subversion with it." ; \ + ${ECHO_MSG} 'Please rebuild `'"devel/apr1' with option "'`'"${OPT_NAME}' and try again." ; \ ${ECHO_MSG} "" ; \ ${ECHO_MSG} "Or you can disable Berkeley DB support. Only 'fs' repository backend will be available." ; \ ${ECHO_MSG} "" ; \ Modified: head/devel/subversion/Makefile.common ============================================================================== --- head/devel/subversion/Makefile.common Sat Jul 13 15:33:23 2013 (r322937) +++ head/devel/subversion/Makefile.common Sat Jul 13 15:36:50 2013 (r322938) @@ -3,7 +3,7 @@ PORTNAME= subversion PORTVERSION= 1.8.0 -PORTREVISION?= 2 +PORTREVISION?= 3 CATEGORIES+= devel MASTER_SITES= ${MASTER_SITE_APACHE:S/$/:main/} \ ${MASTER_SITE_LOCAL:S/$/:book/} Added: head/devel/subversion/files/patch-fix4383 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/subversion/files/patch-fix4383 Sat Jul 13 15:36:50 2013 (r322938) @@ -0,0 +1,77 @@ +Index: subversion/libsvn_wc/wc_db_wcroot.c +=================================================================== +--- subversion/libsvn_wc/wc_db_wcroot.c (revision 1496006) ++++ subversion/libsvn_wc/wc_db_wcroot.c (revision 1496007) +@@ -434,6 +434,8 @@ + svn_boolean_t always_check = FALSE; + int wc_format = 0; + const char *adm_relpath; ++ /* Non-NULL if WCROOT is found through a symlink: */ ++ const char *symlink_wcroot_abspath = NULL; + + /* ### we need more logic for finding the database (if it is located + ### outside of the wcroot) and then managing all of that within DB. +@@ -611,6 +613,7 @@ + if (found_wcroot) + break; + ++ symlink_wcroot_abspath = local_abspath; + SVN_ERR(read_link_target(&local_abspath, local_abspath, + scratch_pool)); + try_symlink_as_dir: +@@ -632,6 +635,7 @@ + local_abspath = svn_dirent_dirname(local_abspath, scratch_pool); + + moved_upwards = TRUE; ++ symlink_wcroot_abspath = NULL; + + /* Is the parent directory recorded in our hash? */ + found_wcroot = svn_hash_gets(db->dir_data, local_abspath); +@@ -669,7 +673,10 @@ + (ie. where we found it). */ + + err = svn_wc__db_pdh_create_wcroot(wcroot, +- apr_pstrdup(db->state_pool, local_abspath), ++ apr_pstrdup(db->state_pool, ++ symlink_wcroot_abspath ++ ? symlink_wcroot_abspath ++ : local_abspath), + sdb, wc_id, FORMAT_FROM_SDB, + db->verify_format, db->enforce_empty_wq, + db->state_pool, scratch_pool); +@@ -737,7 +744,10 @@ + } + + SVN_ERR(svn_wc__db_pdh_create_wcroot(wcroot, +- apr_pstrdup(db->state_pool, local_abspath), ++ apr_pstrdup(db->state_pool, ++ symlink_wcroot_abspath ++ ? symlink_wcroot_abspath ++ : local_abspath), + NULL, UNKNOWN_WC_ID, wc_format, + db->verify_format, db->enforce_empty_wq, + db->state_pool, scratch_pool)); +@@ -809,6 +819,7 @@ + scratch_pool)); + if (resolved_kind == svn_node_dir) + { ++ symlink_wcroot_abspath = original_abspath; + SVN_ERR(read_link_target(&local_abspath, original_abspath, + scratch_pool)); + /* This handle was opened in this function but is not going +@@ -826,6 +837,15 @@ + apr_pstrdup(db->state_pool, local_dir_abspath), + *wcroot); + ++ /* If the WCROOT was found through a symlink pointing at the root of ++ * the WC, its cache entry is now keyed on the link's target path. ++ * Cache the WCROOT under the symlink's path as well. Otherwise, future ++ * wcroot queries for the symlink path would construct a fresh wcroot. */ ++ if (symlink_wcroot_abspath) ++ svn_hash_sets(db->dir_data, ++ apr_pstrdup(db->state_pool, symlink_wcroot_abspath), ++ *wcroot); ++ + /* Did we traverse up to parent directories? */ + if (!moved_upwards) + { Added: head/devel/subversion/files/patch-subversion--libsvn_subr--gpg_agent.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/subversion/files/patch-subversion--libsvn_subr--gpg_agent.c Sat Jul 13 15:36:50 2013 (r322938) @@ -0,0 +1,145 @@ +--- subversion/libsvn_subr/gpg_agent.c 2013/07/08 14:27:14 1500761 ++++ subversion/libsvn_subr/gpg_agent.c 2013/07/08 14:29:04 1500762 +@@ -156,42 +156,28 @@ + return (strncmp(buf, "OK", 2) == 0); + } + +-/* Implementation of svn_auth__password_get_t that retrieves the password +- from gpg-agent */ ++ ++/* Locate a running GPG Agent, and return an open file descriptor ++ * for communication with the agent in *NEW_SD. If no running agent ++ * can be found, set *NEW_SD to -1. */ + static svn_error_t * +-password_get_gpg_agent(svn_boolean_t *done, +- const char **password, +- apr_hash_t *creds, +- const char *realmstring, +- const char *username, +- apr_hash_t *parameters, +- svn_boolean_t non_interactive, +- apr_pool_t *pool) ++find_running_gpg_agent(int *new_sd, apr_pool_t *pool) + { +- int sd; ++ char *buffer; + char *gpg_agent_info = NULL; ++ const char *socket_name = NULL; ++ const char *request = NULL; + const char *p = NULL; + char *ep = NULL; +- char *buffer; +- +- apr_array_header_t *socket_details; +- const char *request = NULL; +- const char *cache_id = NULL; +- struct sockaddr_un addr; +- const char *tty_name; +- const char *tty_type; +- const char *lc_ctype; +- const char *display; +- const char *socket_name = NULL; +- svn_checksum_t *digest = NULL; +- char *password_prompt; +- char *realm_prompt; ++ int sd; + +- *done = FALSE; ++ *new_sd = -1; + + gpg_agent_info = getenv("GPG_AGENT_INFO"); + if (gpg_agent_info != NULL) + { ++ apr_array_header_t *socket_details; ++ + socket_details = svn_cstring_split(gpg_agent_info, ":", TRUE, + pool); + socket_name = APR_ARRAY_IDX(socket_details, 0, const char *); +@@ -201,6 +187,8 @@ + + if (socket_name != NULL) + { ++ struct sockaddr_un addr; ++ + addr.sun_family = AF_UNIX; + strncpy(addr.sun_path, socket_name, sizeof(addr.sun_path) - 1); + addr.sun_path[sizeof(addr.sun_path) - 1] = '\0'; +@@ -273,6 +261,44 @@ + return SVN_NO_ERROR; + } + ++ *new_sd = sd; ++ return SVN_NO_ERROR; ++} ++ ++/* Implementation of svn_auth__password_get_t that retrieves the password ++ from gpg-agent */ ++static svn_error_t * ++password_get_gpg_agent(svn_boolean_t *done, ++ const char **password, ++ apr_hash_t *creds, ++ const char *realmstring, ++ const char *username, ++ apr_hash_t *parameters, ++ svn_boolean_t non_interactive, ++ apr_pool_t *pool) ++{ ++ int sd; ++ const char *p = NULL; ++ char *ep = NULL; ++ char *buffer; ++ const char *request = NULL; ++ const char *cache_id = NULL; ++ const char *tty_name; ++ const char *tty_type; ++ const char *lc_ctype; ++ const char *display; ++ svn_checksum_t *digest = NULL; ++ char *password_prompt; ++ char *realm_prompt; ++ ++ *done = FALSE; ++ ++ SVN_ERR(find_running_gpg_agent(&sd, pool)); ++ if (sd == -1) ++ return SVN_NO_ERROR; ++ ++ buffer = apr_palloc(pool, BUFFER_SIZE); ++ + /* Send TTY_NAME to the gpg-agent daemon. */ + tty_name = getenv("GPG_TTY"); + if (tty_name != NULL) +@@ -388,8 +414,8 @@ + password in GPG Agent if that's how this particular integration + worked. But it isn't. GPG Agent stores the password provided by + the user via the pinentry program immediately upon its provision +- (and regardless of its accuracy as passwords go), so there's +- nothing really to do here. */ ++ (and regardless of its accuracy as passwords go), so we just need ++ to check if a usable GPG Agent exists. */ + static svn_error_t * + password_set_gpg_agent(svn_boolean_t *done, + apr_hash_t *creds, +@@ -400,7 +426,21 @@ + svn_boolean_t non_interactive, + apr_pool_t *pool) + { +- *done = TRUE; ++ int sd; ++ const char *tty_name; ++ ++ *done = FALSE; ++ ++ SVN_ERR(find_running_gpg_agent(&sd, pool)); ++ if (sd == -1) ++ return SVN_NO_ERROR; ++ ++ close(sd); ++ ++ /* Also ensure that GPG_TTY is set in the evironment. ++ * If it isn't set the user won't be prompted by the agent. */ ++ tty_name = getenv("GPG_TTY"); ++ *done = (tty_name != NULL); + + return SVN_NO_ERROR; + } _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Hello, Bug-followup. I could not reproduce bug wirh `-lm' on FreeBSD 9, it looks like FreeBSD 10-specific problem. Anyway, could you report this to devel/apr1 maintainers, as it looks like apr problem, not subversion-specific -- these libraries are output of `apr-1-config' command. SERF problem fixed & commited, thanks! -- // Black Lion AKA Lev Serebryakov <lev@FreeBSD.org>
State Changed From-To: open->feedback Submitter asked to re-check report and, maybe, send it to other port.
On Sat, 13 Jul 2013 15:51-0000, lev@FreeBSD.org wrote: > Submitter asked to re-check report and, maybe, send it to other port. One thing is surely strange: the very same devel/apr1 links perfectly with the dynamically linked subversion, but not with the statically linked subversion unless we also link libm. If you care to wade through long reams of script(1) output, I have a couple of text files available at this URL: http://ximalas.info/~trond/subversion-static-vs-dynamic/ Granted the 10.0-CURRENT is the research vessel of FreeBSD, this hiccup with devel/subversion-static, devel/apr1 and libm probably won't matter until 10.0 becomes ready for production use. -- ---------------------------------------------------------------------- Trond Endrestøl | Trond.Endrestol@ximalas.info ACM, NAS, NUUG, SAGE, USENIX | FreeBSD 9.1-S & re-Alpine 2.03
Author: lev Date: Sat Feb 15 12:56:16 2014 New Revision: 344380 URL: http://svnweb.freebsd.org/changeset/ports/344380 QAT: https://qat.redports.org/buildarchive/r344380/ Log: (1) Make possible to build subversion with db6. (2) Fix and STAGEfy subversion-static. (3) Allow not to override/deinstall modified svnserve script if it is used. PR: ports/185005, ports/180121, ports/181340, ports/186446, ports/186764 Modified: head/devel/subversion-static/Makefile head/devel/subversion/Makefile head/devel/subversion/Makefile.common head/devel/subversion/pkg-plist Modified: head/devel/subversion-static/Makefile ============================================================================== --- head/devel/subversion-static/Makefile Sat Feb 15 12:50:46 2014 (r344379) +++ head/devel/subversion-static/Makefile Sat Feb 15 12:56:16 2014 (r344380) @@ -11,5 +11,13 @@ OPTIONS_SLAVE= FREEBSD_TEMPLATE P4_STYL MASTERDIR= ${.CURDIR}/../subversion PKGMESSAGE= ${.CURDIR}/pkg-message -NO_STAGE= yes +# Set these by hands, as options are undefined +PLIST_SUB+= TOOLS="@comment " \ + SVNSERVE_WRAPPER="@comment " \ + GNOME_KEYRING="@comment " \ + KDE_KWALLET="@comment " \ + BDB="@comment " \ + MOD_DAV_SVN="@comment " \ + NLS="@comment " + .include "${MASTERDIR}/Makefile" Modified: head/devel/subversion/Makefile ============================================================================== --- head/devel/subversion/Makefile Sat Feb 15 12:50:46 2014 (r344379) +++ head/devel/subversion/Makefile Sat Feb 15 12:56:16 2014 (r344380) @@ -62,8 +62,10 @@ EXTRA_PATCHES+= ${PATCHDIR}/extra-patch- .if ${PORT_OPTIONS:MSVNSERVE_WRAPPER} SUB_LIST+= SVNSERVE_BIN_EXT=".bin" +PLIST_SUB+= NO_SVNSERVE_WRAPPER="@comment " .else SUB_LIST+= SVNSERVE_BIN_EXT="" +PLIST_SUB+= NO_SVNSERVE_WRAPPER="" .endif .if ${PORT_OPTIONS:MMOD_DAV_SVN} @@ -87,6 +89,7 @@ USES+= gettext:build . endif . if ${PORT_OPTIONS:MBDB} BDB_BUILD_DEPENDS= yes +.else . endif OLD_LIB_DEPENDS:= ${LIB_DEPENDS:S!^!${LOCALBASE}/lib/!:C!(\.so|\.[0-9]+)?:!.a:!} BUILD_DEPENDS+= ${OLD_LIB_DEPENDS} @@ -96,6 +99,12 @@ PLIST_SUB+= DYNAMIC_ENABLED="@comment " PLIST_SUB+= DYNAMIC_ENABLED="" .endif +.if ${PORT_OPTIONS:MBDB} +CONFIGURE_ARGS+= --enable-bdb6 +.else +CONFIGURE_ARGS+= --without-berkeley-db +.endif + .if make(repository) WITH_REPOSITORY_CREATION= yes .endif @@ -193,12 +202,10 @@ post-install: ${MKREPOS_TARGET} .endif @${MKDIR} ${STAGEDIR}${DATADIR} (cd ${WRKSRC}/tools.examples && ${TAR} --exclude '*.in' -cf - * | ${TAR} -C ${STAGEDIR}${DATADIR} -xof - ) - @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} - .if ${PORT_OPTIONS:MSVNSERVE_WRAPPER} - @${INSTALL_SCRIPT} ${FILESDIR}/svnserve.wrapper ${STAGEDIR}${PREFIX}/bin/svnserve + @${INSTALL_SCRIPT} ${FILESDIR}/svnserve.wrapper ${STAGEDIR}${PREFIX}/bin/svnserve.sample .endif # =============================================================================== Modified: head/devel/subversion/Makefile.common ============================================================================== --- head/devel/subversion/Makefile.common Sat Feb 15 12:50:46 2014 (r344379) +++ head/devel/subversion/Makefile.common Sat Feb 15 12:56:16 2014 (r344380) @@ -3,7 +3,7 @@ PORTNAME= subversion PORTVERSION= 1.8.5 -PORTREVISION?= 1 +PORTREVISION?= 2 CATEGORIES+= devel MASTER_SITES= ${MASTER_SITE_APACHE} DIST_SUBDIR= subversion18 Modified: head/devel/subversion/pkg-plist ============================================================================== --- head/devel/subversion/pkg-plist Sat Feb 15 12:50:46 2014 (r344379) +++ head/devel/subversion/pkg-plist Sat Feb 15 12:56:16 2014 (r344380) @@ -13,8 +13,11 @@ bin/svnlook bin/svnmucc %%TOOLS%%bin/svnraisetreeconflict bin/svnrdump -bin/svnserve +%%NO_SVNSERVE_WRAPPER%%bin/svnserve +%%SVNSERVE_WRAPPER%%@unexec if cmp -s %D/bin/svnserve.sample %D/bin/svnserve; then rm -r %D/bin/svnserve; fi %%SVNSERVE_WRAPPER%%bin/svnserve.bin +%%SVNSERVE_WRAPPER%%bin/svnserve.sample +%%SVNSERVE_WRAPPER%%@exec if [ ! -f %D/bin/svnserve ] ; then cp -p %D/%F %B/bin/svnserve; fi bin/svnsync bin/svnversion include/subversion-1/mod_authz_svn.h _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: feedback->closed Fixed