From nobody@FreeBSD.org  Sun Jun 30 10:26:13 2013
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	by hub.freebsd.org (Postfix) with ESMTP id 9D228CB5
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 30 Jun 2013 10:26:13 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121])
	by mx1.freebsd.org (Postfix) with ESMTP id 753FA1A15
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 30 Jun 2013 10:26:13 +0000 (UTC)
Received: from oldred.freebsd.org ([127.0.1.6])
	by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r5UAQBD6049434
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 30 Jun 2013 10:26:11 GMT
	(envelope-from nobody@oldred.freebsd.org)
Received: (from nobody@localhost)
	by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r5UAQB3R049433;
	Sun, 30 Jun 2013 10:26:11 GMT
	(envelope-from nobody)
Message-Id: <201306301026.r5UAQB3R049433@oldred.freebsd.org>
Date: Sun, 30 Jun 2013 10:26:11 GMT
From: Trond Endrestl <Trond.Endrestol@ximalas.info>
To: freebsd-gnats-submit@FreeBSD.org
Subject: devel/subversion-static fails to link libm and to include serf
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         180121
>Category:       ports
>Synopsis:       devel/subversion-static fails to link libm and to include serf
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    lev
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 30 10:30:00 UTC 2013
>Closed-Date:    Sat Feb 15 12:58:06 UTC 2014
>Last-Modified:  Sat Feb 15 13:00:01 UTC 2014
>Originator:     Trond Endrestl
>Release:        10.0-CURRENT 20130608 snapshot
>Organization:
Private
>Environment:
FreeBSD freebsd-i386-subversion-static-180.bsd.net 10.0-CURRENT FreeBSD 10.0-CURRENT #0: Sat Jun  8 23:48:52 UTC 2013     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
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.
>How-To-Repeat:
Install devel/subversion-static from scratch.
>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.

--- Makefile.orig       2013-06-30 11:26:00.000000000 +0200
+++ Makefile    2013-06-30 11:32:11.000000000 +0200
@@ -23,41 +23,41 @@

 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



--- Makefile.orig       2013-05-12 13:28:46.000000000 +0200
+++ Makefile    2013-06-30 11:39:24.000000000 +0200
@@ -1,14 +1,14 @@
 # $FreeBSD: head/devel/subversion-static/Makefile 317310 2013-05-04 12:21:19Z crees $

 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"


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->lev 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Sun Jun 30 10:30:09 UTC 2013 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=180121 

From: Lev Serebryakov <lev@FreeBSD.org>
To: bug-followup@FreeBSD.org, Trond.Endrestol@ximalas.info
Cc:  
Subject: Re: ports/180121: devel/subversion-static fails to link libm and to include serf
Date: Sat, 13 Jul 2013 19:40:52 +0400

 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>
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/180121: commit references a PR
Date: Sat, 13 Jul 2013 15:37:06 +0000 (UTC)

 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"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/180121: commit references a PR
Date: Sat, 13 Jul 2013 15:37:06 +0000 (UTC)

 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"
 
State-Changed-From-To: open->feedback 
State-Changed-By: lev 
State-Changed-When: Sat Jul 13 15:51:09 UTC 2013 
State-Changed-Why:  

Submitter asked to re-check report and, maybe, send it to other port. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=180121 

From: =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@ximalas.info>
To: bug-followup@freebsd.org
Cc: lev@FreeBSD.org
Subject: Re: ports/180121: devel/subversion-static fails to link libm and to
 include serf
Date: Sun, 14 Jul 2013 09:57:35 +0200 (CEST)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
 
 --598627194-155065653-1373788655=:30583
 Content-Type: TEXT/PLAIN; charset=ISO-8859-1
 Content-Transfer-Encoding: 8BIT
 
 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 Endrestl                     |     Trond.Endrestol@ximalas.info
 ACM, NAS, NUUG, SAGE, USENIX        |   FreeBSD 9.1-S & re-Alpine 2.03
 --598627194-155065653-1373788655=:30583--
State-Changed-From-To: feedback->closed 
State-Changed-By: lev 
State-Changed-When: Sat Feb 15 12:57:03 UTC 2014 
State-Changed-Why:  

Fixed 


http://www.freebsd.org/cgi/query-pr.cgi?pr=180121 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/180121: commit references a PR
Date: Sat, 15 Feb 2014 12:56:30 +0000 (UTC)

 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"
 
>Unformatted:
