Checkout Tools
  • last updated 3 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Use libsecret to implement the GNOME Keyring provider by default

instead of libgnome-keyring. The GNOME project have deprecated

libgnome-keyring and libsecret is the preferred replacement. The old

implementation using libgnome-keyring can still be chosen at configure

time. Both implementations read and write passwords that can be used

by the other implementation.

The configure option '--with-gnome-keyring' now controls the new

implementation while the option '--with-old-gnome-keyring' controls

the previous implementation.

* build/ac-macros/libsecret.m4: New, provides --with-gnome-keyring.

* configure.ac: Change --with-gnome-keyring to --with-old-gnome-keyring

and disable by default.

* aclocal.m4: Include libsecret.m4.

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c: Add new

libsecret implementation conditional on SVN_HAVE_LIBSECRET, make old

code conditional on SVN_HAVE_GNOME_KEYRING,

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Make already conditional

code depend on SVN_HAVE_LIBSECRET.

* subversion/include/svn_auth.h

(SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC,

SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON): Deprecate.

* subversion/include/private/svn_cmdline_private.h

(svn_cmdline__auth_gnome_keyring_unlock_prompt): Deprecate.

* subversion/libsvn_subr/prompt.c

(svn_cmdline__auth_gnome_keyring_unlock_prompt): Make conditional.

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Make already conditional

code depend on SVN_HAVE_LIBSECRET.

  1. … 8 more files in changeset.
Make the latest auth test work with --disable-plaintext-password-storage.

* subversion/tests/libsvn_subr/auth-test.c

(test_save_cleartext): When plaintext-password storage is disabled at

configure time, the test expects no calls at all to the provider.

Following up on r1665886, add regression test on how the prompt function

is called based on the settings in both the auth and slave auth baton.

* subversion/tests/libsvn_subr/auth-test.c

(plaintext_baton_t): New struct.

(plaintext_prompt_cb): New function.

(test_save_cleartext): New function.

(test_list): Add test_save_cleartext.

Use SVN_TEST_STRING_ASSERT() in a few more C tests to improve error

reporting.

* subversion/tests/libsvn_diff/parse-diff-test.c

(test_parse_property_diff): Use SVN_TEST_STRING_ASSERT.

* subversion/tests/libsvn_subr/auth-test.c

(cleanup_callback,

test_auth_clear): Use SVN_TEST_STRING_ASSERT.

* subversion/tests/libsvn_wc/conflict-data-test.c

(test_parse_property_diff): Use SVN_TEST_STRING_ASSERT.

  1. … 2 more files in changeset.
Make the C tests work with the --enable-optimize configure option.

Because the main() function used to be defined in libsvn_test,

the -flto option (which performs rather aggressive link-time

optimizations) would cause the linker to remove all "unreferenced"

static functions ... which includes all the actual tests.

Which this change, main() is now defined in each test driver.

* subversion/tests/svn_test.h

(test_funcs, svn_test_max_threads): Remove external declarations.

(svn_test_main): New prototype for the (existing-but-renamed) test driver.

(SVN_TEST_MAIN): Bolierplate macro that generates a main() implementation.

* subversion/tests/svn_test_main.c

(svn_test_main): Renamed from 'main', and takes two extra parameters,

'max_threads' and 'test_funcs'. Propagates test_funcs to get_array_size,

do_test_num and do_tests_concurrently.

(get_array_size, do_test_num,

test_params_t, test_thread, do_tests_concurrently): Require a test_funcs

parameter. All uses updated.

* subversion/tests/libsvn_client/client-test.c,

subversion/tests/libsvn_client/mtcc-test.c,

subversion/tests/libsvn_delta/random-test.c,

subversion/tests/libsvn_delta/window-test.c,

subversion/tests/libsvn_diff/diff-diff3-test.c,

subversion/tests/libsvn_diff/parse-diff-test.c,

subversion/tests/libsvn_fs/fs-test.c,

subversion/tests/libsvn_fs/locks-test.c,

subversion/tests/libsvn_fs_base/

subversion/tests/libsvn_fs_base/changes-test.c,

subversion/tests/libsvn_fs_base/fs-base-test.c,

subversion/tests/libsvn_fs_base/strings-reps-test.c,

subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c,

subversion/tests/libsvn_fs_x/fs-x-pack-test.c,

subversion/tests/libsvn_fs_x/string-table-test.c,

subversion/tests/libsvn_ra/ra-test.c,

subversion/tests/libsvn_ra_local/ra-local-test.c,

subversion/tests/libsvn_repos/repos-test.c,

subversion/tests/libsvn_subr/auth-test.c,

subversion/tests/libsvn_subr/cache-test.c,

subversion/tests/libsvn_subr/checksum-test.c,

subversion/tests/libsvn_subr/compat-test.c,

subversion/tests/libsvn_subr/config-test.c,

subversion/tests/libsvn_subr/crypto-test.c,

subversion/tests/libsvn_subr/dirent_uri-test.c,

subversion/tests/libsvn_subr/error-code-test.c,

subversion/tests/libsvn_subr/error-test.c,

subversion/tests/libsvn_subr/hashdump-test.c,

subversion/tests/libsvn_subr/io-test.c,

subversion/tests/libsvn_subr/mergeinfo-test.c,

subversion/tests/libsvn_subr/named_atomic-test.c,

subversion/tests/libsvn_subr/opt-test.c,

subversion/tests/libsvn_subr/packed-data-test.c,

subversion/tests/libsvn_subr/path-test.c,

subversion/tests/libsvn_subr/prefix-string-test.c,

subversion/tests/libsvn_subr/priority-queue-test.c,

subversion/tests/libsvn_subr/revision-test.c,

subversion/tests/libsvn_subr/root-pools-test.c,

subversion/tests/libsvn_subr/skel-test.c,

subversion/tests/libsvn_subr/spillbuf-test.c,

subversion/tests/libsvn_subr/sqlite-test.c,

subversion/tests/libsvn_subr/stream-test.c,

subversion/tests/libsvn_subr/string-test.c,

subversion/tests/libsvn_subr/subst_translate-test.c,

subversion/tests/libsvn_subr/time-test.c,

subversion/tests/libsvn_subr/translate-test.c,

subversion/tests/libsvn_subr/utf-test.c,

subversion/tests/libsvn_wc/conflict-data-test.c,

subversion/tests/libsvn_wc/db-test.c,

subversion/tests/libsvn_wc/entries-compat.c,

subversion/tests/libsvn_wc/op-depth-test.c,

subversion/tests/libsvn_wc/pristine-store-test.c,

subversion/tests/libsvn_wc/wc-queries-test.c,

subversion/tests/libsvn_wc/wc-test.c:

(max_threads): Renamed from svn_test_max_threads and made static.

(test_funcs): Made static.

(SVN_TEST_MAIN): Expanded boilerplate main() function.

  1. … 54 more files in changeset.
Add "--parallel" option to our C tests.

Besides shaving off a few seconds off our total test execution time,

parallel execution also stresses our code and the tests themselves

harder. It uncovers things like improperly separated working sets

that make post-failure analysis harder.

Parallel mode is only available with APR 1.3+ and threads enabled.

The option will simply be ignored in other configurations. Further

limitations are cleanups being delayed to after all tests completed

and segfaults not being intercepted.

Some tests can't be executed in parallel. Therefore, we introduce

svn_test_max_threads a simple upper limit to the number of threads

supported that each test must define alongside the test_funcs array.

This patch sets it to "1" in many cases because the tests are so

small that multi-threaded execution is simply not worth it.

* build/run_tests.py

(TestHarness._run_c_test): Pass --parallel option to the individual

test applications.

* subversion/tests/svn_test.h

(svn_test_max_threads): Declare new external setting to be set by

every test application.

* subversion/tests/svn_test_main.c

(parallel): New command line option presence flag.

(parallel_opt,

cl_options): Declare the new "--parallel" option.

(svn_test_add_dir_cleanup): Synchronize shared pool access since

this might be called from multiple

threads at the same time.

(log_results): Result logger function factored out from do_test_num

to be shared between serialized and parallel test

execution code.

(do_test_num): Use that new function.

(test_params_t,

test_thread,

do_tests_concurrently): Threads, their parameter and the thread

starter for thread-pooled test execution.

(main): Handle the new option.

Call concurrent execution when in PARALLEL mode.

* subversion/tests/libsvn_delta/random-test.c

subversion/tests/libsvn_subr/named_atomic-test.c

(svn_test_max_threads): These tests don't support concurrent execution.

* subversion/tests/libsvn_delta/random-test.c

subversion/tests/libsvn_delta/window-test.c

subversion/tests/libsvn_diff/parse-diff-test.c

subversion/tests/libsvn_ra_local/ra-local-test.c

subversion/tests/libsvn_ra/ra-test.c

subversion/tests/libsvn_subr/auth-test.c

subversion/tests/libsvn_subr/cache-test.c

subversion/tests/libsvn_subr/checksum-test.c

subversion/tests/libsvn_subr/compat-test.c

subversion/tests/libsvn_subr/config-test.c

subversion/tests/libsvn_subr/crypto-test.c

subversion/tests/libsvn_subr/dirent_uri-test.c

subversion/tests/libsvn_subr/error-code-test.c

subversion/tests/libsvn_subr/error-test.c

subversion/tests/libsvn_subr/hashdump-test.c

subversion/tests/libsvn_subr/mergeinfo-test.c

subversion/tests/libsvn_subr/named_atomic-test.c

subversion/tests/libsvn_subr/opt-test.c

subversion/tests/libsvn_subr/packed-data-test.c

subversion/tests/libsvn_subr/path-test.c

subversion/tests/libsvn_subr/prefix-string-test.c

subversion/tests/libsvn_subr/priority-queue-test.c

subversion/tests/libsvn_subr/revision-test.c

subversion/tests/libsvn_subr/root-pools-test.c

subversion/tests/libsvn_subr/skel-test.c

subversion/tests/libsvn_subr/spillbuf-test.c

subversion/tests/libsvn_subr/sqlite-test.c

subversion/tests/libsvn_subr/stream-test.c

subversion/tests/libsvn_subr/string-test.c

subversion/tests/libsvn_subr/subst_translate-test.c

subversion/tests/libsvn_subr/time-test.c

subversion/tests/libsvn_subr/utf-test.c

subversion/tests/libsvn_wc/conflict-data-test.c

subversion/tests/libsvn_wc/wc-queries-test.c:

(svn_test_max_threads): These are too small to benefit from multi-threading.

* subversion/tests/libsvn_client/client-test.c

subversion/tests/libsvn_diff/diff-diff3-test.c

subversion/tests/libsvn_fs_base/changes-test.c

subversion/tests/libsvn_fs_base/fs-base-test.c

subversion/tests/libsvn_fs_base/strings-reps-test.c

subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

subversion/tests/libsvn_fs/fs-test.c

subversion/tests/libsvn_fs/locks-test.c

subversion/tests/libsvn_fs_x/fs-x-pack-test.c

subversion/tests/libsvn_fs_x/string-table-test.c

subversion/tests/libsvn_repos/repos-test.c

subversion/tests/libsvn_subr/io-test.c

subversion/tests/libsvn_subr/translate-test.c

subversion/tests/libsvn_wc/db-test.c

subversion/tests/libsvn_wc/op-depth-test.c

subversion/tests/libsvn_wc/wc-test.c

(svn_test_max_threads): Set concurrency limit to whatever various test

runs suggested as the most efficient value.

* subversion/tests/libsvn_wc/entries-compat.c

subversion/tests/libsvn_wc/pristine-store-test.c

(svn_test_max_threads): Set concurrency limit to "unbounded".

  1. … 54 more files in changeset.
Following up on r1534153, fix initializing the ssl provider for server

certificates and the code that tests the platform specific handling.

The reason this wasn't detected is that in general certificates are now

accepted via the root authority, instead of per certificate.

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_client_providers): Store provider in list.

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Update assumption and error message.

  1. … 1 more file in changeset.
* subversion/tests/libsvn_subr/auth-test.c (test_funcs):

Unconditionally mark test_auth_clear as a passing test, it does pass when

SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE is defined.

Unignore some svn_error_t * returns, via tools/dev/warn-ignored-err.sh.

* subversion/libsvn_ra_serf/serf.c (load_config, svn_ra_serf__open),

* subversion/libsvn_subr/prompt.c (prompt),

* subversion/tests/libsvn_subr/auth-test.c (cleanup_callback):

Don't ignore errors.

* subversion/svn/svn.c

(sub_main): Explicitly clear or handle errors from svn_cl__help().

  1. … 3 more files in changeset.
Finish issue #4346 ("svn_auth_cleanup_walk() API and friends needs a

rethink").

Reenvision the svn_auth_cleanup_walk() function and plumbing as a

generic config-based credential walker that includes the ability to

trigger a deletion. This seems better match for the extent and

limitations of the implementation, which is but a mere convenience

wrapper around the management of Subversion's config-based auth store

and was never remotely related to "providers" or even "the auth

subsystem" in a meaningful way. Morever, by associating this logic

with a specific auth store (our config-based stuff), we can introduce

new auth stores (e.g., an encrypted store) without being tied to this

API.

(Don't hate me, rhuijben.)

* subversion/include/svn_auth.h

(svn_auth_cleanup_func_t, svn_auth_cleanup_walk): Removed.

(svn_auth_forget_credentials): New function.

* subversion/include/svn_config.h

(svn_config_auth_walk_func_t): Was svn_auth_cleanup_func_t(),

but trades the disinteresting 'provider' parameter for a 'hash'

parameter.

(svn_config_walk_auth_data): Was svn_auth.h:svn_auth_cleanup_walk(),

but drops the 'auth_baton' parameter in favor of 'config_dir' to

avoid the pretense that the auth_baton's registered providers even

matter. Also, provides all auth data via the callback now (which

is not strictly "cleanup" focused.

* subversion/libsvn_subr/config_auth.c

(svn_config_walk_auth_data): New function, a merge of

svn_auth_cleanup_walk() and svn_auth__simple_cleanup_walk(), but

which accepts a 'config_dir' instead of an 'auth_baton'.

* subversion/libsvn_subr/simple_providers.c

(svn_auth__simple_cleanup_walk): Merged into svn_config_cleanup_auth_data().

* subversion/libsvn_subr/auth.h

(svn_auth__simple_cleanup_walk): Removed unused prototype.

* subversion/libsvn_subr/auth.c

(make_cache_key): New helper.

(svn_auth_first_credentials): Use make_cache_key().

(svn_auth_forget_credentials): New function.

(svn_auth_cleanup_walk): Merged into svn_config_cleanup_auth_data().

* subversion/tests/libsvn_subr/auth-test.c

(cleanup_callback): Adjust to new prototype. Call

svn_auth_forget_credentials(), too.

(test_auth_clear): Add some comments, and track API changes.

  1. … 6 more files in changeset.
* subversion/tests/libsvn_subr/auth-test.c

(cleanup_callback, test_auth_clear): Follow our convention of

performing explicit comparisons of strcmp()'s return value.

* subversion/tests/libsvn_subr/auth-test.c

(cleanup_callback): Reverse sense of string compare to fix auth-test 2.

* subversion/tests/libsvn_subr/auth-test.c

(test_auth_clear): Add comment.

Resolve issue #2775, by providing an api that allows removing cached

credentials for our api users.

As our credentials are keyed by 'realm' and the exact format

is provider specific I added a simple iterator over the cached

credentials, so a client can provide a UI on top, or simply guess

which ones to delete by checking if they contain a specific url.

* subversion/include/svn_auth.h

(svn_auth_cleanup_callback): New typedef.

(svn_auth_cleanup_walk): New function.

* subversion/libsvn_subr/auth.c

(includes): Add auth.h

(svn_auth_cleanup_walk): New function.

* subversion/libsvn_subr/auth.h

(svn_auth__file_path): New function.

(svn_auth__simple_cleanup_walk): New function.

* subversion/libsvn_subr/config_auth.c

(auth_file_path): Rename to ...

(svn_auth__file_path): ... this and make library public.

(svn_config_read_auth_data): Update caller.

(svn_config_write_auth_data): Update caller.

* subversion/libsvn_subr/simple_providers.c

(includes): Add several.

(svn_auth__simple_cleanup_walk): New function.

* subversion/tests/libsvn_subr/auth-test.c

(includes): Add svn_auth_private.h.

(cleanup_callback): New function.

(test_auth_clear): Extend to verify the credential is really gone.

  1. … 5 more files in changeset.
* subversion/tests/libsvn_subr/auth-test.c

(test_auth_clear): New function. This triggers the issue fixed in r1443556.

(test_funcs): Add test_auth_clear.

* everywhere: Add missing SVN_ERR() wraps.

(This is a semiautomated commit: I added 'warn_unused_result' attributes,

compiled, then used a macro to add the SVN_ERR() wraps.)

  1. … 12 more files in changeset.
* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Now that gpg-agent support is

linked into libsvn_subr, this test will find it if SVN_HAVE_GPG_AGENT

is defined. Adjust test expectations accordingly.

Fix error leaks.

* everywhere:

Add missing SVN_ERR() calls.

* subversion/libsvn_repos/load-fs-vtable.c

(make_node_baton): Return an svn_error_t *.

(new_node_record): Track return type change.

* subversion/svnadmin/main.c (main),

subversion/svndumpfilter/main.c (main),

subversion/svnlook/main.c (main),

subversion/svnrdump/svnrdump.c (main),

subversion/svnsync/main.c (main):

Use SVN_INT_ERR() around subcommand_help() or help_cmd().

  1. … 34 more files in changeset.
Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.

* NOTICE:

Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.

* LICENSE: New.

* COPYING,

subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.
Replace deprecated test func macros in the C tests. This eliminates the need

to do the following dance in every test function:

*msg = "foo";

if (msg_only)

return SVN_NO_ERROR;

This does not remove the deprecated symbols from svn_test.h; I plan to do it

in a follow up commit.

[ in subversion/tests ]

* libsvn_client/client-test.c,

libsvn_delta/random-test.c,

libsvn_delta/range-index-test.h,

libsvn_delta/window-test.c,

libsvn_diff/diff-diff3-test.c,

libsvn_diff/parse-diff-test.c,

libsvn_fs/fs-test.c,

libsvn_fs/locks-test.c,

libsvn_fs_base/changes-test.c,

libsvn_fs_base/fs-base-test.c,

libsvn_fs_base/key-test.c,

libsvn_fs_base/strings-reps-test.c,

libsvn_fs_fs/fs-pack-test.c,

libsvn_ra_local/ra-local-test.c,

libsvn_repos/repos-test.c,

libsvn_subr/auth-test.c,

libsvn_subr/cache-test.c,

libsvn_subr/checksum-test.c,

libsvn_subr/compat-test.c,

libsvn_subr/config-test.c,

libsvn_subr/dirent_uri-test.c,

libsvn_subr/error-test.c,

libsvn_subr/hashdump-test.c,

libsvn_subr/mergeinfo-test.c,

libsvn_subr/opt-test.c,

libsvn_subr/path-test.c,

libsvn_subr/revision-test.c,

libsvn_subr/skel-test.c,

libsvn_subr/stream-test.c,

libsvn_subr/string-test.c,

libsvn_subr/target-test.c,

libsvn_subr/time-test.c,

libsvn_subr/translate-test.c,

libsvn_subr/utf-test.c,

libsvn_wc/tree-conflict-data-test.c:

Do the above described transformation.

  1. … 34 more files in changeset.
More svn:eol-style fun.

* subversion/libsvn_subr/sqlite.c,

subversion/libsvn_subr/sqlite3_c.h,

subversion/libsvn_auth_gnome_keyring/version.c,

subversion/bindings/ctypes-python/setup.py,

subversion/bindings/ctypes-python/csvn/repos.py,

subversion/bindings/ctypes-python/csvn/ext/__init__.py,

subversion/bindings/ctypes-python/csvn/ext/callback_receiver.py,

subversion/bindings/ctypes-python/csvn/ext/listmixin.py,

subversion/bindings/ctypes-python/csvn/txn.py,

subversion/bindings/ctypes-python/csvn/__init__.py,

subversion/bindings/ctypes-python/csvn/core/__init__.py,

subversion/bindings/ctypes-python/csvn/auth.py,

subversion/bindings/ctypes-python/examples/example.py,

subversion/bindings/ctypes-python/examples/trunkify.py,

subversion/bindings/ctypes-python/examples/log.py,

subversion/bindings/ctypes-python/examples/mucc.py,

subversion/bindings/swig/ruby/svn/synchronizer.rb,

subversion/bindings/swig/ruby/svn/commit-mailer.rb,

subversion/bindings/swig/svn_diff.i,

subversion/tests/libsvn_wc/tree-conflict-data-test.c,

subversion/tests/libsvn_subr/auth-test.c,

subversion/tests/libsvn_delta/window-test.c,

subversion/tests/cmdline/resolved_tests.py,

subversion/svn/tree-conflicts.c,

subversion/svn/tree-conflicts.h,

subversion/include/private/svn_sqlite.h,

subversion/libsvn_wc/crop.c,

subversion/libsvn_wc/tree_conflicts.c,

subversion/libsvn_wc/tree_conflicts.h,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_auth_kwallet/version.c:

All of these textual types should have the svn:eol-style properties set to

'native', so do it.

  1. … 30 more files in changeset.
Follow-up to r34977, r35055 and r35112:

Pass unlock prompt function for GNOME Keyring providers by authentication

baton parameters. Simplify some functions. Fix a segmentation fault which

was causing failure of auth-test.

* subversion/include/svn_auth.h

(svn_auth_unlock_provider_func_t): Delete.

(svn_auth_get_platform_specific_provider): Delete 'pb', 'prompt_func' and

'command_line' arguments.

(svn_auth_get_platform_specific_client_providers): Delete 'pb', 'prompt_func'

and 'command_line' arguments.

(SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC): Define.

(SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_BATON): Define.

(svn_auth_get_gnome_keyring_simple_provider): Delete 'unlock_prompt_func'

and 'prompt_baton' arguments.

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Fix segmentation fault which was

happening when we were calling svn_auth_get_gnome_keyring_simple_provider()

and 'command_line' was FALSE, because the symbol of that function was

earlier cast to svn_auth_simple_provider_func_t, while that function was

actually of type svn_auth_unlock_provider_func_t. Delete 'pb', 'prompt_func'

and 'command_line' arguments.

(svn_auth_get_platform_specific_client_providers): Delete 'pb', 'prompt_func'

and 'command_line' arguments. Update calls to

svn_auth_get_platform_specific_provider().

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Update calls to

svn_auth_get_platform_specific_client_providers() and

svn_auth_get_platform_specific_provider().

Set SVN_AUTH_PARAM_GNOME_KEYRING_UNLOCK_PROMPT_FUNC with value of

svn_cmdline_auth_unlock_prompt() in authentication baton parameters.

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

(unlock_prompt_provider_baton_t): Delete.

(callback_done): Fix indentation.

(get_default_keyring_name): Delete needless parenthesis around returned value.

(gnome_keyring_simple_first_creds): Retrieve unlock prompt function and

unlock prompt baton from authentication baton parameters.

(gnome_keyring_simple_save_creds): Retrieve unlock prompt function and

unlock prompt baton from authentication baton parameters.

(svn_auth_get_gnome_keyring_simple_provider): Delete 'unlock_prompt_func' and

'unlock_prompt_baton' arguments. Don't set '*provider->provider_baton'.

* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::getContext): Update calls to

svn_auth_get_platform_specific_client_providers() and

svn_auth_get_platform_specific_provider().

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Update calls to

svn_auth_get_platform_specific_provider() and

svn_auth_get_platform_specific_client_providers().

  1. … 5 more files in changeset.
Follow up r35112.

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Pass required parameters for prompt

baton, prompt function and command line option for keychain services and

windows, since they are added in r35112 which broke the build in these

platforms.

Found by: markphip

Follow up r35055.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): For platform specific providers pass prompt

function.

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Change signature and include logic

to accept prompt function and a boolean to indicate whether we are called

from command line.

(svn_auth_get_platform_specific_client_providers): Same as above.

* subversion/include/svn_auth.h

(svn_auth_get_platform_specific_provider): Reflect above changes.

(svn_auth_get_platform_specific_client_providers): Reflect above changes.

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Modify to accomodate above changes.

Suggested by: rhuijben

arfrever

julianfoad

hwright

  1. … 3 more files in changeset.
* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Fix test expectations.

Follow-up to r34399:

Support the 'password-stores' configuration option in

svn_auth_get_platform_specific_client_providers().

* subversion/include/svn_auth.h

(svn_auth_get_platform_specific_client_providers): Add 'config' argument.

(svn_auth_get_platform_specific_provider,

svn_auth_get_platform_specific_client_providers): Delete partially

misleading information from doc string.

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_client_providers): Add 'config' argument.

Use the 'password-stores' configuration option from 'config' to determine

order of the platform-specific authentication providers.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Update call to

svn_auth_get_platform_specific_client_providers().

* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::getContext): Update call to

svn_auth_get_platform_specific_client_providers().

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Update call to

svn_auth_get_platform_specific_client_providers().

  1. … 4 more files in changeset.
Greatly simplify how to get a list of available platform-specific auth

providers.

* subversion/libsvn_subr/auth.c,

* subversion/include/svn_auth.h

(svn_auth_get_platform_specific_client_providers): Added.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton):

* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::getContext): Use the new function added above.

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Test the new function added above.

  1. … 4 more files in changeset.
To complete issue #2489, implement secure client certificate passphrase

caching for Windows CryptoAPI.

* subversion/include/private/svn_auth_private.h

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): Update documentation

to note that it is used by the windows cryptoapi store.

(svn_auth__ssl_client_cert_pw_get): Add passphrase getter for use by the

Windows crypto provider.

(svn_auth__ssl_client_cert_pw_set): Add passphrase setter for use by the

Windows crypto provider.

* subversion/include/svn_auth.h

(svn_auth_get_windows_ssl_client_cert_pw_provider): Add Windows Crypto api

ssl client certificate passphrase provider.

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Handle requests for windows

ssl_client_cert_pw.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Register Windows Crypto api ssl client

certificate passphrase provider in the auth batton.

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c

(simple_passphrase_get): Renamed to ...

(svn_auth__ssl_client_cert_pw_get): .... and remove static to allow reuse

by the Windows Crypto api implementation.

(simple_passphrase_set): Renamed to ...

svn_auth__ssl_client_cert_pw_set): ... and remove static to allow reuse

by the Windows Crypto api implementation.

(svn_auth__ssl_client_cert_pw_file_save_creds_helper): Mark that passphrases

saved by the Windows Crypto api are encrypted to remove the confirmation

prompt.

(ssl_client_cert_pw_file_first_credentials,

ssl_client_cert_pw_file_save_credentials): Update references to

simple_passphrase_*.

* subversion/libsvn_subr/win32_crypto.c

(windows_ssl_client_cert_pw_encrypter,

windows_ssl_client_cert_pw_decrypter,

windows_ssl_client_cert_pw_first_creds,

windows_ssl_client_cert_pw_save_creds,

windows_ssl_client_cert_pw_provider): Add ssl client certificate passphrase

provider, forwarding caching and save requests to the file provider like

the simple provider.

(svn_auth_get_windows_ssl_client_cert_pw_provider): Add registration function

for the Windows Crypto api ssl client certificate passphrase provider.

* subversion/tests/libsvn_subr/auth-test.c

(test_platform_specific_auth_providers): Test registration of the CryptoApi

provider via svn_auth_get_platform_specific_provider.

  1. … 6 more files in changeset.
Follow-up to r34085:

* subversion/libsvn_subr/auth.c

(svn_auth_get_platform_specific_provider): Rename local constant.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_create_auth_baton): Consistently use SVN_ERR() and improve

indentation.

* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::getContext): Consistently use SVN_JNI_ERR() and improve

indentation.

* subversion/tests/libsvn_subr/auth-test.c: Fix copyright year.

  1. … 3 more files in changeset.