Stefan Sperling <s...@elego.de> writes: > On Wed, Feb 08, 2012 at 07:01:48PM +0200, Daniel Shahaf wrote: >> So, you are saying that there is no legitimate/supported scenario in >> which the .py and .so are out of sync with each other? And that code >> written for a library version that has the symbol will return a normal >> error (eg, AttributeError in Python) when run against a library version >> (such as 1.7.2) that doesn't have the symbol? >> >> (I'm talking about the .so here; it's not clear to me whether your >> reference to hasattr() checked the existence of the symbol in the .py >> library file or in the .so library file.) >> >> In these cases it seems to me that we might be able to backport this. >> Stefan? > > I have no idea :)
I think the problem is that in Python one has to write: if hasattr(core, 'svn_auth_set_gnome_keyring_unlock_prompt_func'): core.svn_auth_set_gnome_keyring_unlock_prompt_func(ctx.auth_baton, prompt_func_gnome_keyring_prompt) If called unconditionally: core.svn_auth_set_gnome_keyring_unlock_prompt_func(ctx.auth_baton, prompt_func_gnome_keyring_prompt) it will work with 1.7.3 and fail with 1.7.2. In Ruby the magic is: if Svn::Ext::Core.respond_to?(:svn_auth_set_gnome_keyring_unlock_prompt_func) Svn::Ext::Core::svn_auth_set_gnome_keyring_unlock_prompt_func(ctx.auth_baton, gnome_keyring_prompt) and I suppose Perl might have something similar. I think that means this is not suitable for a backport. -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com