You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/09/11 18:54:21 UTC
svn commit: r1521935 [1/6] - in /subversion/branches/1.7.x-issue4153: ./
build/ac-macros/ contrib/hook-scripts/ doc/
subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/types/
subversion/bindings/javahl/src/or...
Author: breser
Date: Wed Sep 11 16:54:18 2013
New Revision: 1521935
URL: http://svn.apache.org/r1521935
Log:
Do a syncup merge on the 1.7.x-issue4153 branch.
Modified:
subversion/branches/1.7.x-issue4153/ (props changed)
subversion/branches/1.7.x-issue4153/CHANGES (contents, props changed)
subversion/branches/1.7.x-issue4153/STATUS
subversion/branches/1.7.x-issue4153/autogen.sh
subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4
subversion/branches/1.7.x-issue4153/configure.ac
subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl
subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl
subversion/branches/1.7.x-issue4153/doc/doxygen.conf
subversion/branches/1.7.x-issue4153/get-deps.sh
subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp
subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp
subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java
subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java
subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i
subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg
subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
subversion/branches/1.7.x-issue4153/subversion/include/private/svn_adler32.h (props changed)
subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h
subversion/branches/1.7.x-issue4153/subversion/include/private/svn_string_private.h (props changed)
subversion/branches/1.7.x-issue4153/subversion/include/private/svn_temp_serializer.h (props changed)
subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h
subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/delete.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/externals.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/merge.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/repos_diff_summarize.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/status.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_client/update.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_diff/diff_file.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_diff/parse-diff.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_fs/fs-loader.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/rep-cache.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/temp_serializer.c (props changed)
subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/temp_serializer.h (props changed)
subversion/branches/1.7.x-issue4153/subversion/libsvn_fs_fs/tree.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/fetch.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/props.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/ra_neon.h
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_neon/util.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/commit.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/options.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/ra_serf.h
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_serf/util.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_ra_svn/client.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_repos/authz.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_repos/dump.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_repos/load-fs-vtable.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/adler32.c (props changed)
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/dirent_uri.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/hash.c (props changed)
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/io.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/macos_keychain.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/nls.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/opt.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/simple_providers.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/subst.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/svn_base64.c (props changed)
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/svn_cache_config.c (contents, props changed)
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/svn_temp_serializer.c (props changed)
subversion/branches/1.7.x-issue4153/subversion/libsvn_subr/win32_crypto.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/adm_ops.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/diff_editor.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/diff_local.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/update_editor.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/util.c
subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db_wcroot.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/deadprops.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/liveprops.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/lock.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/mirror.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/mod_dav_svn.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/log.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/update.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/repos.c
subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/version.c
subversion/branches/1.7.x-issue4153/subversion/po/es.po
subversion/branches/1.7.x-issue4153/subversion/po/pt_BR.po
subversion/branches/1.7.x-issue4153/subversion/po/zh_CN.po
subversion/branches/1.7.x-issue4153/subversion/po/zh_TW.po
subversion/branches/1.7.x-issue4153/subversion/svn/log-cmd.c
subversion/branches/1.7.x-issue4153/subversion/svn/main.c (contents, props changed)
subversion/branches/1.7.x-issue4153/subversion/svnrdump/load_editor.c
subversion/branches/1.7.x-issue4153/subversion/svnrdump/svnrdump.h
subversion/branches/1.7.x-issue4153/subversion/svnrdump/util.c
subversion/branches/1.7.x-issue4153/subversion/svnserve/main.c (contents, props changed)
subversion/branches/1.7.x-issue4153/subversion/svnserve/serve.c
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/authz_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/basic_tests.py (props changed)
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/blame_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/diff_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/externals_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/merge_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/patch_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/revert_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/special_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svnrdump_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/ (props changed)
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/sandbox.py
subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/update_tests.py
subversion/branches/1.7.x-issue4153/subversion/tests/libsvn_diff/diff-diff3-test.c
subversion/branches/1.7.x-issue4153/subversion/tests/libsvn_fs/fs-test.c
subversion/branches/1.7.x-issue4153/subversion/tests/libsvn_subr/dirent_uri-test.c
subversion/branches/1.7.x-issue4153/tools/client-side/svnmucc/svnmucc.c (contents, props changed)
Propchange: subversion/branches/1.7.x-issue4153/
------------------------------------------------------------------------------
Merged /subversion/branches/1.7.x-r1475724:r1475743-1482192
Merged /subversion/branches/1.7.x:r1392817-1521932
Merged /subversion/branches/1.7.x-r1352031:r1431725-1435017
Merged /subversion/branches/1.7.x-r1482759:r1483584-1485046
Merged /subversion/branches/1.7.x-issue4257:r1454456-1461404
Merged /subversion/branches/1.7.x-r1427278:r1433724-1485338
Merged /subversion/branches/1.7.x-issue4270:r1433737-1485341
Merged /subversion/branches/1.7.x-issue4306:r1438872-1514941
Merged /subversion/branches/1.7.x-r1388975:r1392898-1393044
Merged /subversion/branches/1.7.x-gssapi-solaris10:r1453164-1515067
Merged /subversion/branches/1.7.x-r1242759:r1372522-1393041
Merged /subversion/branches/1.7.x-issue4340:r1461589-1485180
Merged /subversion/trunk:r1237779,1242759,1242770,1242794,1295418,1344864-1344865,1344869,1345740,1351117,1352031,1380175,1382843,1383466,1383946,1388975,1389851,1389878,1390653,1392502,1392599,1393061,1393156,1393165,1393542,1393551,1393598,1394519,1396285,1398100,1399174,1401915,1402417,1402421,1403258,1403583,1403588,1403691,1403964,1403982,1405922,1407131,1407812,1408650,1409146,1409939,1410106,1410203,1419670-1419681,1421011,1421103,1421380,1421541,1422053,1422100,1423585,1423646,1423837,1423840,1423848,1424977,1425368,1426138,1426264,1426752,1426830,1427197,1427210,1427278,1429201,1434128,1434405,1434414,1434418,1434435,1434476,1434750,1435361,1438602,1438683,1441810,1443763,1443929,1445753,1451678,1452617,1452780,1452967,1453780,1454088,1454217,1455352,1458341,1459599,1461278,1461562,1461580,1461701,1461743,1462293,1462300,1462302,1462321,1462334,1465975,1476359,1477730,1481010,1481627,1482282,1483781,1485350,1490684,1503528,1507044,1512432,1512471-1512472,1513463,1513472,15
14763,1515119,1515237,1515992,1515997,1516023-1516024,1516051-1516052,1516565
Merged /subversion/branches/1.7.x-r1423646:r1423647-1424282
Merged /subversion/branches/1.7.x-r1389851:r1389853-1392834
Merged /subversion/branches/1.7.x-r1401915:r1401934-1407349
Merged /subversion/branches/1.7.x-r1407131:r1407164-1419607
Merged /subversion/branches/1.7.x-r1426752:r1426753-1485335
Merged /subversion/branches/1.7.x-r1481010:r1481034-1482194
Merged /subversion/branches/1.7.x-issue4408:r1512143-1514943
Merged /subversion/branches/1.7.x-neon-properr:r1440619-1461944
Merged /subversion/branches/1.7.x-r1389878:r1389879-1393126
Merged /subversion/branches/1.7.x-issue4263:r1423588-1434547
Merged /subversion/branches/1.7.x-r1398325:r1398353-1398633
Merged /subversion/branches/1.7.x-r1507044:r1507300-1511568
Merged /subversion/branches/1.7.x-r1461743:r1461745-1482189
Merged /subversion/branches/1.7.x-r1399174:r1399176-1403964
Merged /subversion/branches/1.7.x-issue4332:r1453478-1460963
Modified: subversion/branches/1.7.x-issue4153/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/CHANGES?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/CHANGES (original)
+++ subversion/branches/1.7.x-issue4153/CHANGES Wed Sep 11 16:54:18 2013
@@ -1,3 +1,197 @@
+Version 1.7.13
+(29 Aug 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.13
+
+ User-visible changes:
+ - General
+ * merge: fix bogus mergeinfo with conflicting file merges (issue #4306)
+ * diff: fix duplicated path component in '--summarize' output (issue #4408)
+ * ra_serf: ignore case when checking certificate common names (r1514763)
+
+ - Server-side bugfixes:
+ * svnserve: fix creation of pid files (r1516556)
+ * mod_dav_svn: better status codes for commit failures (r1490684)
+ * mod_dav_svn: do not map requests to filesystem (r1512432 et al)
+
+ Developer-visible changes:
+ - General:
+ * support linking against gssapi on Solaris 10 (r1515068)
+ * don't use uninitialized variable to produce an error code (r1482282)
+
+ - Bindings:
+ * swig-pl: fix SVN::Client not honoring config file settings (r150744)
+ * swig-pl & swig-py: disable unusable svn_fs_set_warning_func (r1515119)
+
+
+Version 1.7.12
+(Not released, see changes for 1.7.13.)
+
+
+Version 1.7.11
+(23 Jul 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.11
+
+ User-visible changes:
+ - General
+ * translation updates for Simplified Chinese
+
+ - Server-side bugfixes:
+ * mod_dav_svn: fix incorrect path canonicalization (r1503528)
+ See CVE-2013-4131, and descriptive advisory at
+ http://subversion.apache.org/security/CVE-2013-4131-advisory.txt
+
+ - Other tool improvements and bugfixes:
+ * fix argument processing in contrib hook scripts (r1485350)
+ See CVE-2013-2088, and descriptive advisory at
+ http://subversion.apache.org/security/CVE-2013-2088-advisory.txt
+
+ Developer-visible changes:
+ - Bindings:
+ * javahl: fix bug in error constructing code (r1405922)
+
+
+Version 1.7.10
+(30 May 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.10
+
+ User-visible changes:
+ - Client-side bugfixes:
+ * fix 'svn revert' "no such table: revert_list" spurious error (issue #4168)
+ * fix 'svn diff' doesn't show some locally added files (issue #3797)
+ * fix changelist filtering when --changelist values aren't UTF8 (r1475724)
+ * fix 'svn diff --git' shows wrong copyfrom (issue #4294)
+ * fix 'svn diff -x-w' shows wrong changes (issues #4133 and #4270, r1427278)
+ * fix 'svn blame' sometimes shows every line as modified (issue #4034)
+ * fix regression in 'svn status -u' output for externals (r1434750)
+ * fix file permissions change on commit of file with keywords (issue #4331)
+ * improve some fatal error messages (r1465975)
+ * fix externals not removed when working copy is made shallow (issue #3741)
+
+ - Server-side bugfixes:
+ * fix FSFS repository corruption due to newline in filename (issue #4340)
+ See CVE-2013-1968, and descriptive advisory at
+ http://subversion.apache.org/security/CVE-2013-1968-advisory.txt
+ * fix svnserve exiting when a client connection is aborted (r1482759)
+ See CVE-2013-2112, and descriptive advisory at
+ http://subversion.apache.org/security/CVE-2013-2112-advisory.txt
+ * fix svnserve memory use after clear (issue #4365)
+ * fix repository corruption on power/disk failure on Windows (r1483781)
+
+ Developer-visible changes
+ - General:
+ * make get-deps.sh compatible with Solaris /bin/sh (r1451678)
+ * fix infinite recursion bug in get-deps.sh (r1421541, r1424977)
+ * fix uninitialised output parameter of svn_fs_commit_txn() (r1461743)
+
+ - Bindings:
+ * fix JavaHL thread-safety bug (r1476359)
+
+
+Version 1.7.9
+(04 Apr 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.9
+ User-visible changes
+ - Client-side bugfixes:
+ * improved error messages about svn:date and svn:author props. (r1440620)
+ * fix local_relpath assertion (issue #4257)
+ * fix memory leak in `svn log` over svn:// (r1458341)
+ * fix incorrect authz failure when using neon http library (issue #4332)
+ * fix segfault when using kwallet (r1421103)
+
+ - Server-side bugfixes:
+ See CVE-2013-1845, CVE-2013-1846, CVE-2013-1847, CVE-2013-1849,
+ and CVE-2013-1884, and descriptive advisories at
+ http://subversion.apache.org/security/
+ * svnserve will log the replayed rev not the low-water rev. (r1461278)
+ * mod_dav_svn will omit some property values for activity urls (r1453780)
+ * fix an assertion in mod_dav_svn when acting as a proxy on / (issue #4272)
+ * improve memory usage when committing properties in mod_dav_svn (r1443929)
+ * fix svnrdump to load dump files with non-LF line endings (issue #4263)
+ * fix assertion when rep-cache is inaccessible (r1422100)
+ * improved logic in mod_dav_svn's implementation of lock. (r1455352)
+ * avoid executing unnecessary code in log with limit (r1459599)
+
+ Developer-visible changes:
+ - General:
+ * fix an assertion in dav_svn_get_repos_path() on Windows (r1425368)
+ * fix get-deps.sh to correctly download zlib (r13520131)
+ * doxygen docs will now ignore prefixes when producing the index (r1429201)
+ * fix get-deps.sh on freebsd (r1423646)
+
+ - Bindings:
+ * javahl status api now respects the ignoreExternals boolean (r1435361)
+
+
+Version 1.7.8
+(17 Dec 2012, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.8
+ User-visible changes
+ - Client- and server-side bugfixes:
+ * Fix typos in pt_BR, es and zh_TW translations (r1402417, r1402421)
+
+ - Client-side bugfixes:
+ * fix crash with --username option on Windows (r1396285)
+ * add missing attributes to "svn log -v --xml" output (r1398100)
+ * fix svn patch ignoring hunks after no trailing newline (r1399174)
+ * fix hang with ra_serf during error processing (r1403583)
+ * ignore file externals with mergeinfo when merging (r1401915)
+ * fix "svnmucc cp" segfault with a missing last argument (issue #4079)
+ * fix conflict handling on symlinks (issue #4091)
+
+ - Server-side bugfixes:
+ * properly detect threading availability (r1398325)
+ * fix "svnadmin load --bypass-prop-validation" (r1237779)
+ * fix parsing of [groupsfoo] sections in authz file (issue #3531)
+ * add Vary: header to GET responses to improve cacheability (r1390653)
+ * fix fs_fs to cleanup after failed rep transmission (r1403964, et al)
+ * fix mod_dav_svn to complain about revisions > HEAD (r1403588)
+
+ Developer-visible changes:
+ - General:
+ * fix incorrect status returned by 1.6 API (r1403258)
+ * fix compilation with g++ 4.7 (r1345740)
+ * fix svn_uri_get_file_url_from_dirent on Windows (r1409146)
+
+
+Version 1.7.7
+(09 Oct 2012, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.7
+ User-visible changes
+ - Client- and server-side bugfixes:
+ * fix memory read bug (r137614)
+ * update Chinese translation
+
+ - Client-side bugfixes:
+ * fix issues with applying Git patch files (r1374800, et al)
+ * fix status does not descend into dir externals after upgrade (issue #4016)
+ * fix file externals don't update with old mod_dav_svn (issue #4224)
+ * fix external diff tool duplicates Index: lines with 'svn diff' (r1380697)
+ * fix GNOME keyring library fails with very old glib (r1378847)
+ * fix unknown password stores in config file cause error (r1375052)
+ * fix assertions in ra_serf running against server root (r1365519, et al)
+ * fix ra_serf checkout/export aborts early on Windows (issue #4174)
+
+ - Server-side bugfixes:
+ * fix an assert with SVNAutoVersioning in mod_dav_svn (issue #4231)
+ * fix unbounded memory use with SVNPathAuthz short_circuit (r1387943)
+ * fix svndumpfilter exclude --targets requires leading slash (issue #4234)
+ * fix connection ttl for memcache should be 50 seconds (r1391641)
+ * stabilize order of paths in dumpfiles with APR 1.4.6 (r1344864, et al)
+
+ Developer-visible changes:
+ - General:
+ * print "All tests successful" at the end of 'make check' (r1375089)
+ * fix sandbox violation in a test (r1371282)
+ * fix tests fail when running within a format 30 WC (r1391188, et al)
+ * fix return value of svn_client_update4() incorrect (r1380295)
+ * fix make check summary missing test failures (r1390965)
+ * fix build does not fail when apache httpd is not available (r1374198)
+
+ - Bindings:
+ * fix swig-pl build fails with swig 2.0.7 and newer. (r1389658)
+ * fix swig-py runtime problems with swig 2.0.5 and newer (r1351117)
+
+
Version 1.7.6
(15 Aug 2012, from /branches/1.7.x)
http://svn.apache.org/repos/asf/subversion/tags/1.7.6
@@ -8,7 +202,7 @@ http://svn.apache.org/repos/asf/subversi
- Client-side bugfixes:
* Fix "svn status -u --depth empty FILE" (r1348822, r1349215)
* Fix example output of 'svn help status' (issue #3962)
- * svn propset of svn:eol-style might not notice related text changes (r1353572)
+ * propset of svn:eol-style might not notice related text changes (r1353572)
* sort output of 'svn propget -R' (r1355699)
* sort output of 'svn proplist' (r1355698)
* sort output of 'svn status' (r1341012)
@@ -437,6 +631,72 @@ the 1.6 release: http://subversion.apac
* fix type mapping of svn_txdelta_window_t in python bindings (issue #3688)
+Version 1.6.23
+(30 May 2013, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.23
+
+ User-visible changes
+ - Server-side bugfixes:
+ * fix FSFS repository corruption due to newline in filename (issue #4340)
+ * fix svnserve exiting when a client connection is aborted (r1482759)
+ See CVE-2013-2112, and descriptive advisory at
+ http://subversion.apache.org/security/CVE-2013-2112-advisory.txt
+
+ - Other tool improvements and bugfixes:
+ * fix argument processing in contrib hook scripts (r1485350)
+
+
+Version 1.6.22
+(Not released, see changes for 1.6.23.)
+
+
+Version 1.6.21
+(04 Apr 2013, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.21
+
+ User-visible changes
+ - Server-side bugfixes:
+ * mod_dav_svn will omit some property values for activity urls (r1453780)
+ * improve memory usage when committing properties in mod_dav_svn (r1443929)
+ * fix mod_dav_svn runs pre-revprop-change twice (issue #3085)
+ * fixed: post-revprop-change errors cancel commit (issue #2990)
+ * improved logic in mod_dav_svn's implementation of lock. (r1455352)
+
+ Developer-visible changes:
+ - General:
+ * fix a compatibility issue with g++ 4.7 (r1345740)
+
+
+Version 1.6.20
+(04 Jan 2013, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.20
+
+ User-visible changes
+ - Client- and server-side bugfixes:
+ * Fix typos in pt_BR, es and zh_TW translations (r1402417)
+
+ - Server-side bugfixes:
+ * add Vary: header to GET responses to improve cacheability (r1390653)
+ * fix fs_fs to cleanup after failed rep transmission (r1403964, et al)
+ * fix an assert with SVNAutoVersioning in mod_dav_svn (issue #4231)
+
+
+Version 1.6.19
+(10 Sep 2012, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.19
+
+ - Client-side bugfixes:
+ * handle missing svn:date reported by svnserve gracefully (r1306111)
+
+ - Server-side bugfixes:
+ * fix possible server hang if a hook script fails to start (r1330410)
+ * fix write-through proxy commit regression introduced in 1.6.17 (r1088602)
+ * partial sync drops properties when converting to adds (issue #4184)
+
+ - Developer-visible changes:
+ * fix the testsuite to avoid FAILs on APR hash order (r1230714, et al)
+
+
Version 1.6.18
(29 Mar 2012, from /branches/1.6.x)
http://svn.apache.org/repos/asf/subversion/tags/1.6.18
@@ -554,7 +814,7 @@ http://svn.apache.org/repos/asf/subversi
* improve some swig parameter mapping (r984565, r1035745)
* improve test accuracy over dav (r991534, r877814)
* create fails.log for test runs (r964349)
- * improve detection of 'svnversion' when buildling (r877219, et al)
+ * improve detection of 'svnversion' when building (r877219, et al)
* don't violate API layering in dumpstream logic (issue #3733)
* don't report working copy installs as switched (r1033921)
Propchange: subversion/branches/1.7.x-issue4153/CHANGES
------------------------------------------------------------------------------
Merged /subversion/trunk/CHANGES:r1370777-1485430,1485497,1485501,1485508,1503795,1503850,1515237,1515992,1515997,1516023-1516024,1516051-1516052,1516565
Merged /subversion/branches/1.7.x-r1423646/CHANGES:r1423647-1424282
Merged /subversion/branches/1.7.x/CHANGES:r1392817-1521932
Modified: subversion/branches/1.7.x-issue4153/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/STATUS?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/STATUS (original)
+++ subversion/branches/1.7.x-issue4153/STATUS Wed Sep 11 16:54:18 2013
@@ -10,25 +10,12 @@ See http://subversion.apache.org/docs/co
for details on how release lines and voting work, what kinds of bugs can
delay a release, etc.
-Status of 1.7.7:
+Status of 1.7.14:
Candidate changes:
==================
- * r1242759, r1242770, r1242794, r1380175, r1392599
- Fix various issues with GNOME and KDE keyring providers, especially
- as regards how their interact with --non-interactive mode. Fixes
- issues #4110 ("kwallet not used with --non-interactive") and #4112
- ("gnome keyring --non-interactive fail with password on disk").
- Justification:
- Fixes user-reported problem which significantly limits
- usabilility in certain environments.
- Branch:
- ^/subversion/branches/1.7.x-r1242759
- Votes:
- +1: philip (without r1392599), cmpilato (without r1392599), breser
-
- * r1306275, and too many other revisions to list here
+ * r1306275, and other revisions
New diff support code for added/deleted files and directories.
Fixes issue #4153, "svn log --diff" on moved file gives "not found",
and other problems.
@@ -39,6 +26,8 @@ Candidate changes:
with the paradigm that the target of an editor drive may never have more
than one path component (which according to cmpilato is an API violation).
Notes:
+ Conflict in diff_tests.py can be interactively resolved with:
+ (m) merge -> 21 (your version first, then theirs) -> r (resolved)
Please read the branch and related trunk log messages for detailed notes
about these changes.
Branch:
@@ -46,66 +35,133 @@ Candidate changes:
Votes:
+1: stsp
- * ^/subversion/branches/1.7.x-commit-performance
- r1337118, r1337281, r1337374, r1337377, r1337392, r1337394, r1337485
- Use the working copy status walker as a first filter to find committable
- nodes.
- Justification:
- Huge performance boost. Especially on NFS.
+ * r1426762
+ Fix issue #4283, When the identical suffix starts at chunk boundary, "svn
+ diff" produces incorrect diff.
+ Justification:
+ Without this patch the identical suffix might show up as an added or
+ deleted suffix of a file.
+ Depends: (conflicts, doesn't compile)
Notes:
- Backports the status walker framework. Many other parts are backportable
- too, but this branch delivers the plumbing.
- [JAF] We might want to include some of the subsequent updates to this
- code, such as: r1337403, r1337475, r1337736, r1338059, r1338338.
- Votes:
- +0: rhuijben (I would like to see some test results before backporting)
-
- * r1341060
- Sort output of 'svn import'
- Notes: Needs a backport branch, noted here for completeness.
- Votes:
- +0: stsp (pending a proper conflict-free backport)
- -0: julianfoad (Nice behaviour enhancement but what's the justification
- for back-porting this on its own without similar for other
- commands? The log msg says it was done to maintain stable output
- with APR 1.4.6 random hash order, but it wasn't stable before
- that because the order the directory entries were read into the
- hash, and so the order of multiple keys in one bucket, was not
- controlled.)
+ Will probably conflict if r1426752 and/or r1427278 are merged to
+ 1.7.x, because they all add a test to the testlist in diff-diff3-test.c.
+ Votes:
+ +1: rhuijben, jcorvel
+ +0: stsp (doesn't compile, undefined reference to `svn_stringbuf_insert')
- * r1389851
- Fix commit from multiple working copies nested within a parent WC.
+ * r1435635, r1435714, r1435722, r1435737
+ When svn update removes a switched subtree because it was deleted in the
+ target revision, it would be nice if a future update would bring back
+ the originally node that existed before switching. (Issue #4295)
Justification:
- Prevents error when trying commit from multiple nested WCs.
- Fixes a test failure on 1.7.x when run within a format 30 WC.
+ After this operation the working copy doesn't match the repository
+ without obviouse way to recover.
+ Notes:
+ The real fix is in r1435722. The other revisions tweak the test that
+ also triggered a different revision on trunk.
Branch:
- ^/subversion/branches/1.7.x-r1389851
+ ^/subversion/branches/1.7.x-issue-4295
Votes:
- +1: stsp, breser
+ +1: rhuijben
+ +0: stsp (nice fix, but backport doesn't compile)
- * r1389878
- Fix working copy access via symlink to WC nested within a format 30 WC.
+ * r1438879
+ Make 'show-diff' at the interactive conflict prompt show nicer diffs.
Justification:
- Fixes two test failures on 1.7.x when run within a format 30 WC.
- Notes:
- Depends on r1389499 backport for passing tests.
+ 'show-diff' produces unreadable diffs in some cases, especially with
+ conflicts recorded during merges.
Branch:
- ^/subversion/branches/1.7.x-r1389878
+ ^/subversion/branches/1.7.x-r1438879
+ Votes:
+ +1: stsp
+ +0: rhuijben (Shouldn't we provide a three way diff instead of guessing
+ a base to show a one way diff against based on the
+ operation?
+
+ I would prefer to have show-diff always work against
+ the local pristine version, instead of sometimes against
+ their or their-old (src-left) version, as that is the final
+ change I would commit.)
+
+ * r1461760
+ Additional fix related to issue #4340, "filenames containing \n corrupt
+ FSFS repositories"
+ Justification:
+ This change makes libsvn_repos block filenames containing control
+ characters. Control characters in filenames have always been rejected
+ by libsvn_client, but client-side software bypassing libsvn_client
+ could still commit such filenames. Control characters in filenames
+ can cause problems not just in FSFS but also in dump files, unidiff,
+ and possibly elsewhere. It is a good idea to make the client and
+ server consistent.
+ See discussion linked from issue #4340 for more information.
+ Branch:
+ ^/subversion/branches/1.7.x-issue4340-repos
+ Votes:
+ +1: stsp
+ -0: danielsh (restrictions not suitable for introduction in patch release;
+ dev@ thread started 2013/05/10 9pm)
+
+ * r1516806
+ Do not look at the hostname part of an URI when checking that
+ the schema data is canonical.
+ Justification:
+ As reported on dev@, "svn co file://./" and similar commands abort
+ instead of returning an error that the URL is invalid. This was
+ caused by svn_uri_is_canonical treating the hostname "." as a path
+ segment. After this change, svn_uri_is_canonicall correctly
+ determines that the URL is (syntactically) canonical, and the
+ commands later faile with a normal error in the RA layer, which
+ validates the semantics of the hostname.
Votes:
- +1: stsp, breser
+ +1: brane
+ * r1518184
+ Fix an of-by-one error in the fspath calculations of libsvn_ra_local,
+ for the specific case where a repository is placed in a Windows drive
+ root.
+ Justification:
+ Improves correctness. Resolves user reported problem.
+ Votes:
+ +1: rhuijben
+
+ * r1520529, r1520532, r1520539
+ Properly re-canonicalize urls read from xml based entries files.
+ Justification:
+ The canonicalization rules have been changed since 1.3 and while
+ we fixed the newer entries file parsing we forgot the xml based
+ entries. Fixes a client assert.
+ Votes:
+ +1: rhuijben, philip
+
+ * ^/subversion/branches/1.7.x-issue4421
+ Fix Issue #4421
+ Justification:
+ Segfaults are bad.
+ Changes: diff: Fix crash with diff --summarize (issue #4421)
+ Notes:
+ This is straight to 1.7.x change since 1.8.x has a different diff
+ implementation without this problem. It's not reasonable to backport
+ that to 1.7.x.
+ Votes:
+ +1: breser
+ +0: stsp (wondering whether the r1306275 group would fix the same issue)
Veto-blocked changes:
=====================
+ * r1409804
+ Add a delimiter between the two chains in svn_error_compose_create().
+ Justification:
+ Allow users to tell where the second error chain starts -- avoids
+ misrepresentation that the first error is caused by the second.
+ Votes:
+ -0: rhuijben (I'm not sure if this should be in a patch release and the
+ stacktrace where this refers to is maintainer only)
+ +1: danielsh (err->file and err->line are only in maintainer builds.
+ this is about err->message which is valid in all builds)
+ -1: stsp (not a bug fix, changes output in a patch release)
+
Approved changes:
=================
- * r1344864, r1344865, r1344869
- Sort list of deleted paths in dump file output. See issue #4134.
- Justification:
- Reproducible output with APR 1.4.6.
- Notes:
- Merge with --accept=tc.
- Votes:
- +1: stsp, cmpilato, breser
Modified: subversion/branches/1.7.x-issue4153/autogen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/autogen.sh?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/autogen.sh (original)
+++ subversion/branches/1.7.x-issue4153/autogen.sh Wed Sep 11 16:54:18 2013
@@ -140,6 +140,9 @@ if test -n "$RELEASE_MODE"; then
# Build the SWIG-related files
make -f autogen-standalone.mk autogen-swig
+
+ # Remove the .swig_checked file
+ rm -f .swig_checked
fi
if test -n "$SKIP_DEPS"; then
Modified: subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4 (original)
+++ subversion/branches/1.7.x-issue4153/build/ac-macros/gssapi.m4 Wed Sep 11 16:54:18 2013
@@ -54,6 +54,17 @@ AC_DEFUN(SVN_LIB_RA_SERF_GSSAPI,
CFLAGS=""
SVN_GSSAPI_INCLUDES="`$KRB5_CONFIG --cflags`"
SVN_GSSAPI_LIBS="`$KRB5_CONFIG --libs gssapi`"
+ if test $? -ne 0; then
+ dnl Some platforms e.g. Solaris 10 don't support the gssapi argument
+ dnl and need krb5 instead. Since it doesn't tell us about gssapi
+ dnl we have to guess. So let's try -lgss and /usr/include/gassapi
+ SVN_GSSAPI_INCLUDES="$SVN_GSSAPI_INCLUDES -I/usr/include/gssapi"
+ SVN_GSSAPI_LIBS="`$KRB5_CONFIG --libs krb5` -lgss"
+ if test $? -ne 0; then
+ dnl Both k5b-config commands failed.
+ AC_MSG_ERROR([krb5-config returned an error])
+ fi
+ fi
SVN_GSSAPI_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($SVN_GSSAPI_LIBS)`"
CPPFLAGS="$CPPFLAGS $SVN_GSSAPI_INCLUDES"
CFLAGS="$old_CFLAGS"
Modified: subversion/branches/1.7.x-issue4153/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/configure.ac?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/configure.ac (original)
+++ subversion/branches/1.7.x-issue4153/configure.ac Wed Sep 11 16:54:18 2013
@@ -532,7 +532,7 @@ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
CPPFLAGS="$old_CPPFLAGS"
-dnl D-Bus (required for support for KWallet and GNOME Keyring) -------------------
+dnl D-Bus (required for support for KWallet) -------------------
if test -n "$PKG_CONFIG"; then
AC_MSG_CHECKING([for D-Bus .pc file])
@@ -582,31 +582,27 @@ if test "$with_gnome_keyring" != "no"; t
if test "$svn_enable_shared" = "yes"; then
if test "$APR_HAS_DSO" = "yes"; then
if test -n "$PKG_CONFIG"; then
- if test "$HAVE_DBUS" = "yes"; then
- AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
- if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
+ AC_MSG_CHECKING([for GLib and GNOME Keyring .pc files])
+ if $PKG_CONFIG --exists glib-2.0 gnome-keyring-1; then
+ AC_MSG_RESULT([yes])
+ old_CPPFLAGS="$CPPFLAGS"
+ SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
+ CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
+ AC_CHECK_HEADER(gnome-keyring.h, with_gnome_keyring=yes, with_gnome_keyring=no)
+ AC_MSG_CHECKING([for GNOME Keyring])
+ if test "$with_gnome_keyring" = "yes"; then
AC_MSG_RESULT([yes])
- old_CPPFLAGS="$CPPFLAGS"
- SVN_GNOME_KEYRING_INCLUDES="$DBUS_CPPFLAGS `$PKG_CONFIG --cflags glib-2.0 gnome-keyring-1`"
- CPPFLAGS="$CPPFLAGS $SVN_GNOME_KEYRING_INCLUDES"
- AC_CHECK_HEADER(gnome-keyring.h, with_gnome_keyring=yes, with_gnome_keyring=no)
- AC_MSG_CHECKING([for GNOME Keyring])
- if test "$with_gnome_keyring" = "yes"; then
- AC_MSG_RESULT([yes])
- AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1],
- [Is GNOME Keyring support enabled?])
- CPPFLAGS="$old_CPPFLAGS"
- SVN_GNOME_KEYRING_LIBS="$DBUS_LIBS `$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
- else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot find GNOME Keyring])
- fi
+ AC_DEFINE([SVN_HAVE_GNOME_KEYRING], [1],
+ [Is GNOME Keyring support enabled?])
+ CPPFLAGS="$old_CPPFLAGS"
+ SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
else
AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files])
+ AC_MSG_ERROR([cannot find GNOME Keyring])
fi
else
- AC_MSG_ERROR([cannot find D-Bus])
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([cannot find GLib and GNOME Keyring .pc files])
fi
else
AC_MSG_ERROR([cannot find pkg-config])
Modified: subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl (original)
+++ subversion/branches/1.7.x-issue4153/contrib/hook-scripts/check-mime-type.pl Wed Sep 11 16:54:18 2013
@@ -120,7 +120,7 @@ foreach my $path ( @files_added )
# Parse the complete list of property values of the file $path to extract
# the mime-type and eol-style
foreach my $prop (&read_from_process($svnlook, 'proplist', $repos, '-t',
- $txn, '--verbose', $path))
+ $txn, '--verbose', '--', $path))
{
if ($prop =~ /^\s*svn:mime-type : (\S+)/)
{
@@ -187,7 +187,7 @@ sub safe_read_from_pipe
croak "$0: safe_read_from_pipe passed no arguments.\n";
}
print "Running @_\n";
- my $pid = open(SAFE_READ, '-|');
+ my $pid = open(SAFE_READ, '-|', @_);
unless (defined $pid)
{
die "$0: cannot fork: $!\n";
Modified: subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl (original)
+++ subversion/branches/1.7.x-issue4153/contrib/hook-scripts/svn-keyword-check.pl Wed Sep 11 16:54:18 2013
@@ -141,7 +141,7 @@ sub check {
return 1;
} else {
my @keywords = get_svnkeywords($file);
- my $fh = _pipe("$svnlook cat $flag $value $repos $file");
+ my $fh = _pipe($svnlook, qw/cat/, $flag, $value, $repos, '--', $file);
while (my $line = <$fh>) {
foreach my $keyword (@keywords) {
if ($line =~ m/$keyword/) {
@@ -168,7 +168,7 @@ sub file_is_binary {
return 0;
}
if (has_svn_property($file, "svn:mime-type")) {
- my ($mimetype) = read_from_process("$svnlook propget $flag $value $repos svn:mime-type $file");
+ my ($mimetype) = read_from_process($svnlook, qw/propget/, $flag, $value, $repos, 'svn:mime-type', '--', $file);
chomp($mimetype);
$mimetype =~ s/^\s*(.*)/$1/;
if ($mimetype =~ m/^text\//) {
@@ -186,7 +186,7 @@ sub file_is_binary {
# Return a list of svn:keywords on a file
sub get_svnkeywords {
my $file = shift;
- my @lines = read_from_process("$svnlook propget $flag $value $repos svn:keywords $file");
+ my @lines = read_from_process($svnlook, qw/propget/, $flag, $value, $repos, 'svn:keywords', '--', $file);
my @returnlines;
foreach my $line (@lines) {
$line =~ s/\s+/ /;
@@ -199,7 +199,7 @@ sub get_svnkeywords {
sub has_svn_property {
my $file = shift;
my $keyword = shift;
- my @proplist = read_from_process("$svnlook proplist $flag $value $repos $file");
+ my @proplist = read_from_process($svnlook, qw/proplist/, $flag, $value, $repos, '--', $file);
foreach my $prop (@proplist) {
chomp($prop);
if ($prop =~ m/\b$keyword\b/) {
@@ -241,7 +241,7 @@ sub safe_read_from_pipe {
# Return the filehandle as a glob so we can loop over it elsewhere.
sub _pipe {
local *SAFE_READ;
- my $pid = open(SAFE_READ, '-|');
+ my $pid = open(SAFE_READ, '-|', @_);
unless (defined $pid) {
die "$0: cannot fork: $!\n";
}
Modified: subversion/branches/1.7.x-issue4153/doc/doxygen.conf
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/doc/doxygen.conf?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/doc/doxygen.conf (original)
+++ subversion/branches/1.7.x-issue4153/doc/doxygen.conf Wed Sep 11 16:54:18 2013
@@ -754,7 +754,7 @@ COLS_IN_ALPHA_INDEX = 5
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
-IGNORE_PREFIX =
+IGNORE_PREFIX = svn_ SVN_
#---------------------------------------------------------------------------
# configuration options related to the HTML output
Modified: subversion/branches/1.7.x-issue4153/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/get-deps.sh?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/get-deps.sh (original)
+++ subversion/branches/1.7.x-issue4153/get-deps.sh Wed Sep 11 16:54:18 2013
@@ -27,11 +27,13 @@ APR=apr-1.4.5
APR_UTIL=apr-util-1.3.12
NEON=neon-0.29.6
SERF=serf-0.7.2
-ZLIB=zlib-1.2.5
+ZLIB=zlib-1.2.8
SQLITE_VERSION=3.7.6.3
-SQLITE=sqlite-amalgamation-$(printf %u%02u%02u%02u $(echo $SQLITE_VERSION | sed -e "s/\./ /g"))
+SQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'`
+SQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST`
-HTTPD=httpd-2.2.19
+
+HTTPD=httpd-2.2.25
APR_ICONV=apr-iconv-1.2.1
BASEDIR=`pwd`
@@ -89,10 +91,10 @@ get_serf() {
get_zlib() {
cd $TEMPDIR
- $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.bz2
+ $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.gz
cd $BASEDIR
- bzip2 -dc $TEMPDIR/$ZLIB.tar.bz2 | tar -xf -
+ gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf -
mv $ZLIB zlib
}
@@ -119,8 +121,12 @@ get_deps() {
done
if [ $# -gt 0 ]; then
- for target; do
- get_$target || usage
+ for target in "$@"; do
+ if [ "$target" != "deps" ]; then
+ get_$target || usage
+ else
+ usage
+ fi
done
else
get_apr
Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/JNIUtil.cpp Wed Sep 11 16:54:18 2013
@@ -376,7 +376,7 @@ JNIUtil::putErrorsInTrace(svn_error_t *e
return;
char *tmp_path;
- char *path = svn_relpath_dirname(err->file, err->pool);
+ char *path = svn_dirent_dirname(err->file, err->pool);
while (tmp_path = strchr(path, '/'))
*tmp_path = '.';
@@ -384,7 +384,7 @@ JNIUtil::putErrorsInTrace(svn_error_t *e
if (isJavaExceptionThrown())
return;
- jstring jfileName = makeJString(svn_relpath_basename(err->file, err->pool));
+ jstring jfileName = makeJString(svn_dirent_basename(err->file, err->pool));
if (isJavaExceptionThrown())
return;
Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/native/SVNClient.cpp Wed Sep 11 16:54:18 2013
@@ -168,8 +168,8 @@ SVNClient::status(const char *path, svn_
SVN_JNI_ERR(svn_client_status5(&youngest, ctx, checkedPath.c_str(),
&rev,
depth,
- getAll, onServer, noIgnore, FALSE,
- ignoreExternals,
+ getAll, onServer, noIgnore, ignoreExternals,
+ FALSE,
changelists.array(subPool),
StatusCallback::callback, callback,
subPool.getPool()), );
Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java Wed Sep 11 16:54:18 2013
@@ -51,7 +51,11 @@ public class LogDate implements java.io.
{
throw new ParseException("String is not a valid Subversion date", 0);
}
- Date date = formatter.parse(datestr.substring(0, 23) + " UTC");
+ Date date;
+ synchronized(formatter)
+ {
+ date = formatter.parse(datestr.substring(0, 23) + " UTC");
+ }
this.cachedString = datestr;
cachedDate = Calendar.getInstance(UTC);
cachedDate.setTime(date);
Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java Wed Sep 11 16:54:18 2013
@@ -53,7 +53,11 @@ public class LogDate implements java.io.
{
throw new ParseException("String is not a valid Subversion date", 0);
}
- Date date = formatter.parse(datestr.substring(0, 23) + " UTC");
+ Date date;
+ synchronized(formatter)
+ {
+ date = formatter.parse(datestr.substring(0, 23) + " UTC");
+ }
this.cachedString = datestr;
cachedDate = Calendar.getInstance(UTC);
cachedDate.setTime(date);
Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/swig/core.i Wed Sep 11 16:54:18 2013
@@ -350,12 +350,17 @@
*/
#ifdef SWIGPYTHON
%typemap(in) (char *buffer, apr_size_t *len) ($*2_type temp) {
- if (!PyInt_Check($input)) {
+ if (PyLong_Check($input)) {
+ temp = PyLong_AsLong($input);
+ }
+ else if (PyInt_Check($input)) {
+ temp = PyInt_AsLong($input);
+ }
+ else {
PyErr_SetString(PyExc_TypeError,
"expecting an integer for the buffer size");
SWIG_fail;
}
- temp = PyInt_AsLong($input);
if (temp < 0) {
PyErr_SetString(PyExc_ValueError,
"buffer size must be a positive integer");
Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/swig/include/svn_types.swg Wed Sep 11 16:54:18 2013
@@ -901,6 +901,12 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
$2 = (void *)baton;
}
#endif
+#ifdef SWIGPERL
+%ignore svn_fs_set_warning_func;
+#endif
+#ifdef SWIGPYTHON
+%ignore svn_fs_set_warning_func;
+#endif
/* -----------------------------------------------------------------------
svn_stream_t interoperability with language native io handles
Modified: subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Wed Sep 11 16:54:18 2013
@@ -114,9 +114,9 @@ static apr_hash_t *svn_swig_pl_to_hash(S
h = (HV *)SvRV(source);
cnt = hv_iterinit(h);
while (cnt--) {
- SV* item = hv_iternextsv(h, &key, &retlen);
- void *val = cv(item, ctx, pool);
- apr_hash_set(hash, key, APR_HASH_KEY_STRING, val);
+ SV* item = hv_iternextsv(h, &key, &retlen);
+ void *val = cv(item, ctx, pool);
+ apr_hash_set(hash, apr_pstrmemdup(pool, key, retlen), retlen, val);
}
return hash;
Propchange: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_adler32.h
------------------------------------------------------------------------------
Merged /subversion/trunk/subversion/include/private/svn_adler32.h:r1423646
Merged /subversion/branches/1.7.x/subversion/include/private/svn_adler32.h:r1338667-1521932
Merged /subversion/branches/1.7.x-r1423646/subversion/include/private/svn_adler32.h:r1423647-1424282
Modified: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/1.7.x-issue4153/subversion/include/private/svn_auth_private.h Wed Sep 11 16:54:18 2013
@@ -52,9 +52,12 @@ extern "C" {
from an external store, using REALMSTRING and USERNAME as keys.
(The behavior is undefined if REALMSTRING or USERNAME are NULL.)
If NON_INTERACTIVE is set, the user must not be involved in the
- retrieval process. POOL is used for any necessary allocation. */
-typedef svn_boolean_t (*svn_auth__password_get_t)
- (const char **password,
+ retrieval process. Set *DONE to TRUE if a password was stored
+ in *PASSWORD, to FALSE otherwise. POOL is used for any necessary
+ allocation. */
+typedef svn_error_t * (*svn_auth__password_get_t)
+ (svn_boolean_t *done,
+ const char **password,
apr_hash_t *creds,
const char *realmstring,
const char *username,
@@ -65,10 +68,12 @@ typedef svn_boolean_t (*svn_auth__passwo
/* A function that stores PASSWORD (or some encrypted version thereof)
either directly in CREDS, or externally using REALMSTRING and USERNAME
as keys into the external store. If NON_INTERACTIVE is set, the user
- must not be involved in the storage process. POOL is used for any
- necessary allocation. */
-typedef svn_boolean_t (*svn_auth__password_set_t)
- (apr_hash_t *creds,
+ must not be involved in the storage process. Set *DONE to TRUE if the
+ password was store, to FALSE otherwise. POOL is used for any necessary
+ allocation. */
+typedef svn_error_t * (*svn_auth__password_set_t)
+ (svn_boolean_t *done,
+ apr_hash_t *creds,
const char *realmstring,
const char *username,
const char *password,
@@ -110,8 +115,9 @@ svn_auth__simple_save_creds_helper(svn_b
/* Implementation of svn_auth__password_get_t that retrieves
the plaintext password from CREDS when USERNAME matches the stored
credentials. */
-svn_boolean_t
-svn_auth__simple_password_get(const char **password,
+svn_error_t *
+svn_auth__simple_password_get(svn_boolean_t *done,
+ const char **password,
apr_hash_t *creds,
const char *realmstring,
const char *username,
@@ -121,8 +127,9 @@ svn_auth__simple_password_get(const char
/* Implementation of svn_auth__password_set_t that stores
the plaintext password in CREDS. */
-svn_boolean_t
-svn_auth__simple_password_set(apr_hash_t *creds,
+svn_error_t *
+svn_auth__simple_password_set(svn_boolean_t *done,
+ apr_hash_t *creds,
const char *realmstring,
const char *username,
const char *password,
@@ -168,8 +175,9 @@ svn_auth__ssl_client_cert_pw_file_save_c
/* This implements the svn_auth__password_get_t interface.
Set **PASSPHRASE to the plaintext passphrase retrieved from CREDS;
ignore other parameters. */
-svn_boolean_t
-svn_auth__ssl_client_cert_pw_get(const char **passphrase,
+svn_error_t *
+svn_auth__ssl_client_cert_pw_get(svn_boolean_t *done,
+ const char **passphrase,
apr_hash_t *creds,
const char *realmstring,
const char *username,
@@ -179,8 +187,9 @@ svn_auth__ssl_client_cert_pw_get(const c
/* This implements the svn_auth__password_set_t interface.
Store PASSPHRASE in CREDS; ignore other parameters. */
-svn_boolean_t
-svn_auth__ssl_client_cert_pw_set(apr_hash_t *creds,
+svn_error_t *
+svn_auth__ssl_client_cert_pw_set(svn_boolean_t *done,
+ apr_hash_t *creds,
const char *realmstring,
const char *username,
const char *passphrase,
Propchange: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_string_private.h
------------------------------------------------------------------------------
Merged /subversion/branches/1.7.x/subversion/include/private/svn_string_private.h:r1338667-1521932
Merged /subversion/branches/1.7.x-r1423646/subversion/include/private/svn_string_private.h:r1423647-1424282
Merged /subversion/trunk/subversion/include/private/svn_string_private.h:r1423646
Propchange: subversion/branches/1.7.x-issue4153/subversion/include/private/svn_temp_serializer.h
------------------------------------------------------------------------------
Merged /subversion/branches/1.7.x-r1423646/subversion/include/private/svn_temp_serializer.h:r1423647-1424282
Merged /subversion/trunk/subversion/include/private/svn_temp_serializer.h:r1423646
Merged /subversion/branches/1.7.x/subversion/include/private/svn_temp_serializer.h:r1338667-1521932
Modified: subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h (original)
+++ subversion/branches/1.7.x-issue4153/subversion/include/svn_version.h Wed Sep 11 16:54:18 2013
@@ -71,7 +71,7 @@ extern "C" {
*
* @since New in 1.1.
*/
-#define SVN_VER_PATCH 7
+#define SVN_VER_PATCH 14
/** @deprecated Provided for backward compatibility with the 1.0 API. */
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c Wed Sep 11 16:54:18 2013
@@ -38,7 +38,6 @@
#include "svn_private_config.h"
#include <glib.h>
-#include <dbus/dbus.h>
#include <gnome-keyring.h>
@@ -230,10 +229,60 @@ unlock_gnome_keyring(const char *keyring
return TRUE;
}
-/* Implementation of password_get_t that retrieves the password
+
+/* There is a race here: this ensures keyring is unlocked just now,
+ but will it still be unlocked when we use it? */
+static svn_error_t *
+ensure_gnome_keyring_is_unlocked(svn_boolean_t non_interactive,
+ apr_hash_t *parameters,
+ apr_pool_t *scratch_pool)
+{
+ const char *default_keyring = get_default_keyring_name(scratch_pool);
+
+ if (! non_interactive)
+ {
+ svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
+ apr_hash_get(parameters,
+ SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
+ APR_HASH_KEY_STRING);
+ void *unlock_prompt_baton =
+ apr_hash_get(parameters,
+ SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
+ APR_HASH_KEY_STRING);
+
+ char *keyring_password;
+
+ if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
+ {
+ SVN_ERR((*unlock_prompt_func)(&keyring_password,
+ default_keyring,
+ unlock_prompt_baton,
+ scratch_pool));
+
+ /* If keyring is locked give up and try the next provider. */
+ if (! unlock_gnome_keyring(default_keyring, keyring_password,
+ scratch_pool))
+ return SVN_NO_ERROR;
+ }
+ }
+ else
+ {
+ if (check_keyring_is_locked(default_keyring))
+ {
+ return svn_error_create(SVN_ERR_AUTHN_CREDS_UNAVAILABLE, NULL,
+ _("GNOME Keyring is locked and "
+ "we are non-interactive"));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Implementation of svn_auth__password_get_t that retrieves the password
from GNOME Keyring. */
-static svn_boolean_t
-password_get_gnome_keyring(const char **password,
+static svn_error_t *
+password_get_gnome_keyring(svn_boolean_t *done,
+ const char **password,
apr_hash_t *creds,
const char *realmstring,
const char *username,
@@ -244,13 +293,10 @@ password_get_gnome_keyring(const char **
char *default_keyring = NULL;
GnomeKeyringResult result;
GList *items;
- svn_boolean_t ret = FALSE;
- if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
- return FALSE;
+ *done = FALSE;
- if (! gnome_keyring_is_available())
- return FALSE;
+ SVN_ERR(ensure_gnome_keyring_is_unlocked(non_interactive, parameters, pool));
default_keyring = get_default_keyring_name(pool);
@@ -278,7 +324,7 @@ password_get_gnome_keyring(const char **
if (len > 0)
{
*password = apr_pstrmemdup(pool, item->password, len);
- ret = TRUE;
+ *done = TRUE;
}
}
gnome_keyring_network_password_list_free(items);
@@ -294,13 +340,14 @@ password_get_gnome_keyring(const char **
free(default_keyring);
- return ret;
+ return SVN_NO_ERROR;
}
-/* Implementation of password_set_t that stores the password in
+/* Implementation of svn_auth__password_set_t that stores the password in
GNOME Keyring. */
-static svn_boolean_t
-password_set_gnome_keyring(apr_hash_t *creds,
+static svn_error_t *
+password_set_gnome_keyring(svn_boolean_t *done,
+ apr_hash_t *creds,
const char *realmstring,
const char *username,
const char *password,
@@ -312,11 +359,9 @@ password_set_gnome_keyring(apr_hash_t *c
GnomeKeyringResult result;
guint32 item_id;
- if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
- return FALSE;
+ *done = FALSE;
- if (! gnome_keyring_is_available())
- return FALSE;
+ SVN_ERR(ensure_gnome_keyring_is_unlocked(non_interactive, parameters, pool));
default_keyring = get_default_keyring_name(pool);
@@ -344,7 +389,8 @@ password_set_gnome_keyring(apr_hash_t *c
free(default_keyring);
- return result == GNOME_KEYRING_RESULT_OK;
+ *done = (result == GNOME_KEYRING_RESULT_OK);
+ return SVN_NO_ERROR;
}
/* Get cached encrypted credentials from the simple provider's cache. */
@@ -356,43 +402,6 @@ simple_gnome_keyring_first_creds(void **
const char *realmstring,
apr_pool_t *pool)
{
- svn_boolean_t non_interactive = apr_hash_get(parameters,
- SVN_AUTH_PARAM_NON_INTERACTIVE,
- APR_HASH_KEY_STRING) != NULL;
- const char *default_keyring = get_default_keyring_name(pool);
- if (! non_interactive)
- {
- svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
- apr_hash_get(parameters,
- SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
- APR_HASH_KEY_STRING);
- void *unlock_prompt_baton =
- apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
- APR_HASH_KEY_STRING);
-
- char *keyring_password;
-
- if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
- {
- SVN_ERR((*unlock_prompt_func)(&keyring_password,
- default_keyring,
- unlock_prompt_baton,
- pool));
-
- /* If keyring is locked give up and try the next provider. */
- if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
- return SVN_NO_ERROR;
- }
- }
- else
- {
- if (check_keyring_is_locked(default_keyring))
- {
- return svn_error_create(SVN_ERR_AUTHN_CREDS_UNAVAILABLE, NULL,
- _("GNOME Keyring is locked and "
- "we are non-interactive"));
- }
- }
return svn_auth__simple_first_creds_helper
(credentials,
iter_baton, provider_baton,
@@ -411,43 +420,6 @@ simple_gnome_keyring_save_creds(svn_bool
const char *realmstring,
apr_pool_t *pool)
{
- svn_boolean_t non_interactive = apr_hash_get(parameters,
- SVN_AUTH_PARAM_NON_INTERACTIVE,
- APR_HASH_KEY_STRING) != NULL;
- const char *default_keyring = get_default_keyring_name(pool);
- if (! non_interactive)
- {
- svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
- apr_hash_get(parameters,
- SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
- APR_HASH_KEY_STRING);
- void *unlock_prompt_baton =
- apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
- APR_HASH_KEY_STRING);
-
- char *keyring_password;
-
- if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
- {
- SVN_ERR((*unlock_prompt_func)(&keyring_password,
- default_keyring,
- unlock_prompt_baton,
- pool));
-
- /* If keyring is locked give up and try the next provider. */
- if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
- return SVN_NO_ERROR;
- }
- }
- else
- {
- if (check_keyring_is_locked(default_keyring))
- {
- return svn_error_create(SVN_ERR_AUTHN_CREDS_NOT_SAVED, NULL,
- _("GNOME Keyring is locked and "
- "we are non-interactive"));
- }
- }
return svn_auth__simple_save_creds_helper
(saved, credentials,
provider_baton, parameters,
@@ -522,43 +494,6 @@ ssl_client_cert_pw_gnome_keyring_first_c
const char *realmstring,
apr_pool_t *pool)
{
- svn_boolean_t non_interactive = apr_hash_get(parameters,
- SVN_AUTH_PARAM_NON_INTERACTIVE,
- APR_HASH_KEY_STRING) != NULL;
- const char *default_keyring = get_default_keyring_name(pool);
- if (! non_interactive)
- {
- svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
- apr_hash_get(parameters,
- SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
- APR_HASH_KEY_STRING);
- void *unlock_prompt_baton =
- apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
- APR_HASH_KEY_STRING);
-
- char *keyring_password;
-
- if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
- {
- SVN_ERR((*unlock_prompt_func)(&keyring_password,
- default_keyring,
- unlock_prompt_baton,
- pool));
-
- /* If keyring is locked give up and try the next provider. */
- if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
- return SVN_NO_ERROR;
- }
- }
- else
- {
- if (check_keyring_is_locked(default_keyring))
- {
- return svn_error_create(SVN_ERR_AUTHN_CREDS_UNAVAILABLE, NULL,
- _("GNOME Keyring is locked and "
- "we are non-interactive"));
- }
- }
return svn_auth__ssl_client_cert_pw_file_first_creds_helper
(credentials,
iter_baton, provider_baton,
@@ -578,43 +513,6 @@ ssl_client_cert_pw_gnome_keyring_save_cr
const char *realmstring,
apr_pool_t *pool)
{
- svn_boolean_t non_interactive = apr_hash_get(parameters,
- SVN_AUTH_PARAM_NON_INTERACTIVE,
- APR_HASH_KEY_STRING) != NULL;
- const char *default_keyring = get_default_keyring_name(pool);
- if (! non_interactive)
- {
- svn_auth_gnome_keyring_unlock_prompt_func_t unlock_prompt_func =
- apr_hash_get(parameters,
- SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,
- APR_HASH_KEY_STRING);
- void *unlock_prompt_baton =
- apr_hash_get(parameters, SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON,
- APR_HASH_KEY_STRING);
-
- char *keyring_password;
-
- if (unlock_prompt_func && check_keyring_is_locked(default_keyring))
- {
- SVN_ERR((*unlock_prompt_func)(&keyring_password,
- default_keyring,
- unlock_prompt_baton,
- pool));
-
- /* If keyring is locked give up and try the next provider. */
- if (! unlock_gnome_keyring(default_keyring, keyring_password, pool))
- return SVN_NO_ERROR;
- }
- }
- else
- {
- if (check_keyring_is_locked(default_keyring))
- {
- return svn_error_create(SVN_ERR_AUTHN_CREDS_NOT_SAVED, NULL,
- _("GNOME Keyring is locked and "
- "we are non-interactive"));
- }
- }
return svn_auth__ssl_client_cert_pw_file_save_creds_helper
(saved, credentials,
provider_baton, parameters,
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_auth_kwallet/kwallet.cpp Wed Sep 11 16:54:18 2013
@@ -60,6 +60,9 @@
/* KWallet simple provider, puts passwords in KWallet */
/*-----------------------------------------------------------------------*/
+static int q_argc = 1;
+static char q_argv0[] = "svn"; // Build non-const char * from string constant
+static char *q_argv[] = { q_argv0 };
static const char *
get_application_name(apr_hash_t *parameters,
@@ -181,8 +184,9 @@ kwallet_terminate(void *data)
/* Implementation of svn_auth__password_get_t that retrieves
the password from KWallet. */
-static svn_boolean_t
-kwallet_password_get(const char **password,
+static svn_error_t *
+kwallet_password_get(svn_boolean_t *done,
+ const char **password,
apr_hash_t *creds,
const char *realmstring,
const char *username,
@@ -190,25 +194,32 @@ kwallet_password_get(const char **passwo
svn_boolean_t non_interactive,
apr_pool_t *pool)
{
- if (non_interactive)
+ QString wallet_name = get_wallet_name(parameters);
+
+ *done = FALSE;
+
+ if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
{
- return FALSE;
+ return SVN_NO_ERROR;
}
- if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
+ if (non_interactive)
{
- return FALSE;
+ if (!KWallet::Wallet::isOpen(wallet_name))
+ return SVN_NO_ERROR;
+
+ /* There is a race here: the wallet was open just now, but will
+ it still be open when we come to use it below? */
}
QCoreApplication *app;
if (! qApp)
{
- int argc = 1;
- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+ int argc = q_argc;
+ app = new QCoreApplication(argc, q_argv);
}
- KCmdLineArgs::init(1,
- (char *[1]) {(char *) "svn"},
+ KCmdLineArgs::init(q_argc, q_argv,
get_application_name(parameters, pool),
"subversion",
ki18n(get_application_name(parameters, pool)),
@@ -216,8 +227,6 @@ kwallet_password_get(const char **passwo
ki18n("Version control system"),
KCmdLineArgs::CmdLineArgKDE);
KComponentData component_data(KCmdLineArgs::aboutData());
- svn_boolean_t ret = FALSE;
- QString wallet_name = get_wallet_name(parameters);
QString folder = QString::fromUtf8("Subversion");
QString key =
QString::fromUtf8(username) + "@" + QString::fromUtf8(realmstring);
@@ -238,21 +247,23 @@ kwallet_password_get(const char **passwo
*password = apr_pstrmemdup(pool,
q_password.toUtf8().data(),
q_password.size());
- ret = TRUE;
+ *done = TRUE;
}
}
}
}
- apr_pool_cleanup_register(pool, parameters, kwallet_terminate, NULL);
+ apr_pool_cleanup_register(pool, parameters, kwallet_terminate,
+ apr_pool_cleanup_null);
- return ret;
+ return SVN_NO_ERROR;
}
/* Implementation of svn_auth__password_set_t that stores
the password in KWallet. */
-static svn_boolean_t
-kwallet_password_set(apr_hash_t *creds,
+static svn_error_t *
+kwallet_password_set(svn_boolean_t *done,
+ apr_hash_t *creds,
const char *realmstring,
const char *username,
const char *password,
@@ -260,25 +271,32 @@ kwallet_password_set(apr_hash_t *creds,
svn_boolean_t non_interactive,
apr_pool_t *pool)
{
- if (non_interactive)
+ QString wallet_name = get_wallet_name(parameters);
+
+ *done = FALSE;
+
+ if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
{
- return FALSE;
+ return SVN_NO_ERROR;
}
- if (! dbus_bus_get(DBUS_BUS_SESSION, NULL))
+ if (non_interactive)
{
- return FALSE;
+ if (!KWallet::Wallet::isOpen(wallet_name))
+ return SVN_NO_ERROR;
+
+ /* There is a race here: the wallet was open just now, but will
+ it still be open when we come to use it below? */
}
QCoreApplication *app;
if (! qApp)
{
- int argc = 1;
- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+ int argc = q_argc;
+ app = new QCoreApplication(argc, q_argv);
}
- KCmdLineArgs::init(1,
- (char *[1]) {(char *) "svn"},
+ KCmdLineArgs::init(q_argc, q_argv,
get_application_name(parameters, pool),
"subversion",
ki18n(get_application_name(parameters, pool)),
@@ -286,9 +304,7 @@ kwallet_password_set(apr_hash_t *creds,
ki18n("Version control system"),
KCmdLineArgs::CmdLineArgKDE);
KComponentData component_data(KCmdLineArgs::aboutData());
- svn_boolean_t ret = FALSE;
QString q_password = QString::fromUtf8(password);
- QString wallet_name = get_wallet_name(parameters);
QString folder = QString::fromUtf8("Subversion");
KWallet::Wallet *wallet = get_wallet(wallet_name, parameters);
if (wallet)
@@ -307,14 +323,15 @@ kwallet_password_set(apr_hash_t *creds,
+ QString::fromUtf8(realmstring);
if (wallet->writePassword(key, q_password) == 0)
{
- ret = TRUE;
+ *done = TRUE;
}
}
}
- apr_pool_cleanup_register(pool, parameters, kwallet_terminate, NULL);
+ apr_pool_cleanup_register(pool, parameters, kwallet_terminate,
+ apr_pool_cleanup_null);
- return ret;
+ return SVN_NO_ERROR;
}
/* Get cached encrypted credentials from the simple provider's cache. */
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_client/blame.c Wed Sep 11 16:54:18 2013
@@ -675,28 +675,41 @@ svn_client_blame5(const char *target,
SVN_ERR(svn_wc_status3(&status, ctx->wc_ctx, target_abspath_or_url, pool,
pool));
- if (status->text_status != svn_wc_status_normal)
+ if (status->text_status != svn_wc_status_normal
+ || (status->prop_status != svn_wc_status_normal
+ && status->prop_status != svn_wc_status_none))
{
- apr_hash_t *props;
svn_stream_t *wcfile;
- svn_string_t *keywords;
svn_stream_t *tempfile;
+ svn_opt_revision_t rev;
+ svn_boolean_t normalize_eols = FALSE;
const char *temppath;
- apr_hash_t *kw = NULL;
- SVN_ERR(svn_wc_prop_list2(&props, ctx->wc_ctx, target_abspath_or_url,
- pool, pool));
- SVN_ERR(svn_stream_open_readonly(&wcfile, target, pool, pool));
-
- keywords = apr_hash_get(props, SVN_PROP_KEYWORDS,
- APR_HASH_KEY_STRING);
+ if (status->prop_status != svn_wc_status_none)
+ {
+ const svn_string_t *eol_style;
+ SVN_ERR(svn_wc_prop_get2(&eol_style, ctx->wc_ctx,
+ target_abspath_or_url,
+ SVN_PROP_EOL_STYLE,
+ pool, pool));
+
+ if (eol_style)
+ {
+ svn_subst_eol_style_t style;
+ const char *eol;
+ svn_subst_eol_style_from_value(&style, &eol, eol_style->data);
- if (keywords)
- SVN_ERR(svn_subst_build_keywords2(&kw, keywords->data, NULL, NULL,
- 0, NULL, pool));
+ normalize_eols = (style == svn_subst_eol_style_native);
+ }
+ }
- wcfile = svn_subst_stream_translated(wcfile, "\n", TRUE, kw, FALSE,
- pool);
+ rev.kind = svn_opt_revision_working;
+ SVN_ERR(svn_client__get_normalized_stream(&wcfile, ctx->wc_ctx,
+ target_abspath_or_url, &rev,
+ FALSE, normalize_eols,
+ ctx->cancel_func,
+ ctx->cancel_baton,
+ pool, pool));
SVN_ERR(svn_stream_open_unique(&tempfile, &temppath, NULL,
svn_io_file_del_on_pool_cleanup,
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_client/client.h Wed Sep 11 16:54:18 2013
@@ -947,7 +947,11 @@ svn_client__export_externals(apr_hash_t
/* Perform status operations on each external in EXTERNAL_MAP, a const char *
local_abspath of all externals mapping to the const char* defining_abspath.
- All other options are the same as those passed to svn_client_status(). */
+ All other options are the same as those passed to svn_client_status().
+
+ If ANCHOR_ABSPATH and ANCHOR-RELPATH are not null, use them to provide
+ properly formatted relative paths
+ */
svn_error_t *
svn_client__do_external_status(svn_client_ctx_t *ctx,
apr_hash_t *external_map,
@@ -955,9 +959,11 @@ svn_client__do_external_status(svn_clien
svn_boolean_t get_all,
svn_boolean_t update,
svn_boolean_t no_ignore,
+ const char *anchor_abspath,
+ const char *anchor_relpath,
svn_client_status_func_t status_func,
void *status_baton,
- apr_pool_t *pool);
+ apr_pool_t *scratch_pool);
/* Baton type for svn_wc__external_info_gatherer(). */
typedef struct svn_client__external_func_baton_t
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c?rev=1521935&r1=1521934&r2=1521935&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_client/commit.c Wed Sep 11 16:54:18 2013
@@ -1189,6 +1189,7 @@ svn_client_commit5(const apr_array_heade
const char *log_msg;
const char *base_abspath;
const char *base_url;
+ const char *ra_session_wc;
apr_array_header_t *rel_targets;
apr_array_header_t *lock_targets;
apr_array_header_t *locks_obtained;
@@ -1390,9 +1391,19 @@ svn_client_commit5(const apr_array_heade
cb.info = &commit_info;
cb.pool = pool;
+ /* When committing from multiple WCs, get the RA editor from
+ * the first WC, rather than the BASE_ABSPATH. The BASE_ABSPATH
+ * might be an unrelated parent of nested working copies.
+ * We don't support commits to multiple repositories so using
+ * the first WC to get the RA session is safe. */
+ if (lock_targets->nelts > 1)
+ ra_session_wc = APR_ARRAY_IDX(lock_targets, 0, const char *);
+ else
+ ra_session_wc = base_abspath;
+
cmt_err = svn_error_trace(
get_ra_editor(&ra_session, &editor, &edit_baton, ctx,
- base_url, base_abspath, log_msg,
+ base_url, ra_session_wc, log_msg,
commit_items, revprop_table, TRUE, lock_tokens,
keep_locks, capture_commit_info,
&cb, pool));