Rev 1916: Merge keychain improvements. in file:///data/jelmer/bzr-svn/trunk/
Jelmer Vernooij
jelmer at samba.org
Sun Sep 21 23:19:48 BST 2008
At file:///data/jelmer/bzr-svn/trunk/
------------------------------------------------------------
revno: 1916
revision-id: jelmer at samba.org-20080921221936-zd6rmu2mkno82bvm
parent: jelmer at samba.org-20080921135104-x10559n0jryl35es
parent: jelmer at samba.org-20080921221845-cjr9vjqsy3tf99nh
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Mon 2008-09-22 00:19:36 +0200
message:
Merge keychain improvements.
modified:
AUTHORS AUTHORS-20060508114718-4c90c0062645106d
ra.c ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
setup.py setup.py-20060502115218-86950492da22353f
------------------------------------------------------------
revno: 1669.1.48
revision-id: jelmer at samba.org-20080921221845-cjr9vjqsy3tf99nh
parent: jelmer at samba.org-20080921221814-uoa6x7yy40axzo3e
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-09-22 00:18:45 +0200
message:
Remove unnecessary check.
modified:
setup.py setup.py-20060502115218-86950492da22353f
------------------------------------------------------------
revno: 1669.1.47
revision-id: jelmer at samba.org-20080921221814-uoa6x7yy40axzo3e
parent: jelmer at samba.org-20080921130529-vdziwdvh5emt7jof
parent: bahamut at macstorm.org-20080921220000-tboft1k0cm9d3j6o
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-09-22 00:18:14 +0200
message:
Merge check for keychain provider, simplified a bit.
modified:
AUTHORS AUTHORS-20060508114718-4c90c0062645106d
ra.c ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
setup.py setup.py-20060502115218-86950492da22353f
------------------------------------------------------------
revno: 1669.5.2
revision-id: bahamut at macstorm.org-20080921220000-tboft1k0cm9d3j6o
parent: bahamut at macstorm.org-20080921215522-ig0y802bltge8y32
committer: Jean-Francois Roy <bahamut at macstorm.org>
branch nick: keychain-check
timestamp: Sun 2008-09-21 15:00:00 -0700
message:
- Fixed a function doc comment error.
modified:
setup.py setup.py-20060502115218-86950492da22353f
------------------------------------------------------------
revno: 1669.5.1
revision-id: bahamut at macstorm.org-20080921215522-ig0y802bltge8y32
parent: jelmer at samba.org-20080921130529-vdziwdvh5emt7jof
committer: Jean-Francois Roy <bahamut at macstorm.org>
branch nick: keychain-check
timestamp: Sun 2008-09-21 14:55:22 -0700
message:
- Added a built-time check for availability of the Keychain authentication provider on Mac OS X.
added:
keychain_provider_check.c keychain_provider_ch-20080921215437-sw04velxau7v3fp8-1
modified:
ra.c ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
setup.py setup.py-20060502115218-86950492da22353f
=== modified file 'AUTHORS'
--- a/AUTHORS 2008-08-31 18:31:05 +0000
+++ b/AUTHORS 2008-09-21 22:18:14 +0000
@@ -37,6 +37,7 @@
Gustavo Niemeyer
Martin Pool
Garrett Rooney
+Jean-Francois Roy
Johan Rydberg
Peter Samuelson
Mark Shuttleworth
=== modified file 'ra.c'
--- a/ra.c 2008-09-21 13:31:05 +0000
+++ b/ra.c 2008-09-21 22:19:36 +0000
@@ -2785,7 +2785,7 @@
#endif
#endif
-#if defined(DARWIN)
+#if defined(SVN_KEYCHAIN_PROVIDER_AVAILABLE)
static PyObject *get_keychain_simple_provider(PyObject* self)
{
AuthProviderObject *auth = PyObject_New(AuthProviderObject, &AuthProvider_Type);
@@ -2809,7 +2809,7 @@
{ "get_windows_ssl_server_trust_provider", (PyCFunction)get_windows_ssl_server_trust_provider, METH_NOARGS, NULL },
#endif
#endif
-#if defined(DARWIN)
+#if defined(SVN_KEYCHAIN_PROVIDER_AVAILABLE)
{ "get_keychain_simple_provider", (PyCFunction)get_keychain_simple_provider, METH_NOARGS, NULL },
#endif
{ "get_username_prompt_provider", (PyCFunction)get_username_prompt_provider, METH_VARARGS, NULL },
=== modified file 'setup.py'
--- a/setup.py 2008-09-21 13:51:04 +0000
+++ b/setup.py 2008-09-21 22:19:36 +0000
@@ -106,6 +106,24 @@
raise Exception("Subversion development files not found. "
"Please set SVN_PREFIX or (SVN_LIBRARY_PATH and SVN_HEADER_PATH) environment variable. ")
+def is_keychain_provider_available():
+ """
+ Checks for the availability of the Keychain simple authentication provider in Subversion by compiling a simple test program.
+ """
+ abd = apr_build_data()
+ sbd = svn_build_data()
+ gcc_command_args = ['gcc'] + ['-I' + inc for inc in sbd[0]] + ['-L' + lib for lib in sbd[1]] + ['-I' + abd[0], '-lsvn_subr-1', '-x', 'c', '-']
+ (gcc_in, gcc_out, gcc_err) = os.popen3(gcc_command_args)
+ gcc_in.write("""
+#include <svn_auth.h>
+int main(int argc, const char* arv[]) {
+ svn_auth_get_keychain_simple_provider(NULL, NULL);
+}
+""")
+ gcc_in.close()
+ gcc_out.read()
+ return (gcc_out.close() is None)
+
class VersionQuery(object):
def __init__(self, filename):
self.filename = filename
@@ -218,6 +236,12 @@
kwargs["libraries"] = extra_libs
# APR needs WIN32 defined.
kwargs["define_macros"] = [("WIN32", None)]
+ if sys.platform == 'darwin':
+ # on Mac OS X, we need to check for Keychain availability
+ if is_keychain_provider_available():
+ if "define_macros" not in kwargs:
+ kwargs["define_macros"] = []
+ kwargs["define_macros"].extend((('DARWIN', None), ('SVN_KEYCHAIN_PROVIDER_AVAILABLE', '1')))
return Extension("bzrlib.plugins.svn.%s" % name, *args, **kwargs)
More information about the bazaar-commits
mailing list