diff options
author | Lev A. Serebryakov <lev@FreeBSD.org> | 2013-07-24 17:18:50 +0000 |
---|---|---|
committer | Lev A. Serebryakov <lev@FreeBSD.org> | 2013-07-24 17:18:50 +0000 |
commit | c24d6a1a61bc43b7f8c5afd37dfb9c2fadffbf4e (patch) | |
tree | 6b43a42cf6eeaa4e66bf99a6a975279b69459fa3 /devel/subversion | |
parent | 721986acee2d17f9180bb417bbb447aef7ffcdec (diff) | |
download | ports-c24d6a1a61bc43b7f8c5afd37dfb9c2fadffbf4e.tar.gz ports-c24d6a1a61bc43b7f8c5afd37dfb9c2fadffbf4e.zip |
Notes
Diffstat (limited to 'devel/subversion')
-rw-r--r-- | devel/subversion/Makefile | 12 | ||||
-rw-r--r-- | devel/subversion/Makefile.common | 4 | ||||
-rw-r--r-- | devel/subversion/distinfo | 4 | ||||
-rw-r--r-- | devel/subversion/files/patch-fix4383 | 77 | ||||
-rw-r--r-- | devel/subversion/files/patch-subversion--libsvn_subr--gpg_agent.c | 145 |
5 files changed, 16 insertions, 226 deletions
diff --git a/devel/subversion/Makefile b/devel/subversion/Makefile index 9895c19f25e5..97c30770babf 100644 --- a/devel/subversion/Makefile +++ b/devel/subversion/Makefile @@ -119,6 +119,14 @@ BUILD_DEPENDS+= ${OLD_LIB_DEPENDS} LIB_DEPENDS= .endif +TOOLS_STATIC_BINARIES= client-side/svn-bench/svn-bench server-side/svnauthz \ + server-side/fsfs-stats \ + server-side/svn-populate-node-origins-index \ + server-side/svnauthz-validate \ + server-side/svn-rep-sharing-stats dev/fsfs-reorg \ + dev/svnraisetreeconflict/svnraisetreeconflict \ + dev/fsfs-access-map diff/diff3 diff/diff diff/diff4 + pre-everything:: @${ECHO_MSG} "" .if ${PORT_OPTIONS:MBDB} @@ -256,6 +264,10 @@ post-install: ${MKREPOS_TARGET} .endif .endif @${MKDIR} ${DATADIR} +.if ${PORT_OPTIONS:MSTATIC} + cd ${WRKSRC}/tools ; \ + ${RM} ${TOOLS_STATIC_BINARIES} +.endif cd ${WRKSRC}/tools ; \ ${TAR} --exclude '*.in' --exclude '.libs' --exclude '*.o' --exclude '*.lo' --exclude '*.la' --exclude='*.slo' -cf - * | ${TAR} -C ${DATADIR} -xf - # ugly hack to remove libtool scripts ... diff --git a/devel/subversion/Makefile.common b/devel/subversion/Makefile.common index 602b35f4d519..3feae0902c97 100644 --- a/devel/subversion/Makefile.common +++ b/devel/subversion/Makefile.common @@ -2,8 +2,8 @@ # $FreeBSD$ PORTNAME= subversion -PORTVERSION= 1.8.0 -PORTREVISION?= 3 +PORTVERSION= 1.8.1 +PORTREVISION?= 0 CATEGORIES+= devel MASTER_SITES= ${MASTER_SITE_APACHE:S/$/:main/} \ ${MASTER_SITE_LOCAL:S/$/:book/} diff --git a/devel/subversion/distinfo b/devel/subversion/distinfo index a0e51c4024d3..66b25ab72465 100644 --- a/devel/subversion/distinfo +++ b/devel/subversion/distinfo @@ -1,5 +1,5 @@ -SHA256 (subversion18/subversion-1.8.0.tar.bz2) = a470803293a8aced445cff0f7b24b95ad276600af55d4b24b1e196fd2de87f10 -SIZE (subversion18/subversion-1.8.0.tar.bz2) = 6711904 +SHA256 (subversion18/subversion-1.8.1.tar.bz2) = faaaaedba25777331e761884598af1dd9fe33631d6415b2e0ba5348867c4edb4 +SIZE (subversion18/subversion-1.8.1.tar.bz2) = 6770843 SHA256 (subversion18/svn-book-html-r4515.tar.bz2) = 666cef147abc9b917a6bb6527da4f4869221d793126289c715f002bfb2baa508 SIZE (subversion18/svn-book-html-r4515.tar.bz2) = 473182 SHA256 (subversion18/svn-book-r4515.pdf) = 962d524ae2c861ec48a45723c484f4f5e1826ee2f9ccfe58b07b96af67b0bf5e diff --git a/devel/subversion/files/patch-fix4383 b/devel/subversion/files/patch-fix4383 deleted file mode 100644 index 94ea0914a3b8..000000000000 --- a/devel/subversion/files/patch-fix4383 +++ /dev/null @@ -1,77 +0,0 @@ -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) - { diff --git a/devel/subversion/files/patch-subversion--libsvn_subr--gpg_agent.c b/devel/subversion/files/patch-subversion--libsvn_subr--gpg_agent.c deleted file mode 100644 index a14a96d46b9c..000000000000 --- a/devel/subversion/files/patch-subversion--libsvn_subr--gpg_agent.c +++ /dev/null @@ -1,145 +0,0 @@ ---- 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; - } |