At file:///data/jelmer/bzr-svn/trunk/

------------------------------------------------------------
revno: 1916
revision-id: [EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
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: [EMAIL PROTECTED]
    parent: [EMAIL PROTECTED]
    committer: Jelmer Vernooij <[EMAIL PROTECTED]>
    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: [EMAIL PROTECTED]
    parent: [EMAIL PROTECTED]
    parent: [EMAIL PROTECTED]
    committer: Jelmer Vernooij <[EMAIL PROTECTED]>
    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: [EMAIL PROTECTED]
    parent: [EMAIL PROTECTED]
    committer: Jean-Francois Roy <[EMAIL PROTECTED]>
    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: [EMAIL PROTECTED]
    parent: [EMAIL PROTECTED]
    committer: Jean-Francois Roy <[EMAIL PROTECTED]>
    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)
 
 


-- 
bazaar-commits mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/bazaar-commits

Reply via email to