Den lör 18 juli 2026 kl 17:26 skrev Nathan Hartman <[email protected]
>:

> On Sat, Jul 18, 2026 at 10:20 AM Branko Čibej <[email protected]> wrote:
>
>> On 18. 7. 2026 16:15, Daniel Sahlberg wrote:
>>
>> Hi,
>>
>> When testing 1.15.0-rc3, I stumbled on check-ctypes-python. That
>> currently fails miserably:
>>
>> [[[
>> python: can't open file '/home/dsg/ramdisk/svn_trunk2/none': [Errno 2] No
>> such file or directory
>> sed: can't read subversion/bindings/ctypes-python/svn_all.py: No such
>> file or directory
>> cd
>> /home/dsg/ramdisk_backstorage/svn_trunk2/subversion/bindings/ctypes-python;
>> \
>>   /bin/bash "/home/dsg/ramdisk_backstorage/svn_trunk2/libtool" --tag=CC
>> --silent --mode=execute `for f in
>> /home/dsg/ramdisk_backstorage/svn_trunk2/subversion/*/*.la; do echo -dlopen
>> $f; done` python test/run_all.py
>> Traceback (most recent call last):
>>   File
>> "/home/dsg/ramdisk_backstorage/svn_trunk2/subversion/bindings/ctypes-python/test/run_all.py",
>> line 22, in <module>
>>     import setup_path
>>   File
>> "/home/dsg/ramdisk_backstorage/svn_trunk2/subversion/bindings/ctypes-python/test/setup_path.py",
>> line 31, in <module>
>>     import csvn.core
>>   File
>> "/home/dsg/ramdisk_backstorage/svn_trunk2/subversion/bindings/ctypes-python/csvn/core/__init__.py",
>> line 20, in <module>
>>     import functions
>> ModuleNotFoundError: No module named 'functions'
>> make: *** [Makefile:1050: check-ctypes-python] Error 1
>> ]]]
>>
>> I've started fixing errors one by one and I have a 444 line diff, but I'm
>> no closer to making it work.
>>
>> Given that last substantial commit was somewhere around 2011, this is
>> probably yet another feature we are not maintaining as well as we should. I
>> believe a lot of things have not been updated from Py2 to Py3 standards but
>> it seems to be other stuff as well.
>>
>>
>>
>> Ctypes-python is broken and unmaintained. Because of that, nobody uses it.
>>
>>
>> Is there any advantage having a ctypes-binding over the swig-binding?
>> Otherwise, I think we should axe this one as well - in this particular case
>> (since it currently doesn't work) - I'm on the SIGKILL squad.
>>
>>
>> Theoretically, one can build better bindings with ctypes than Swig,
>> because you get a more "native" mapping of types. But we didn't. I think 15
>> years of brokenness is long enough.
>>
>> -- Brane
>>
>>
> I'm glad there's a good bit of housecleaning going on around here. We've
> accumulated so much cruft over the years, it makes my head spin. +1 to axe
> the ctypes bindings.
>
> Cheers,
> Nathan
>
>
Thanks all! Now I did what I should have done from the start: Searching the
archives.

This was a known issue already when 1.14.0 was released, as pointed out by
Julian, James and Stefan [1]. With that in mind, I went ahead and removed
it in r1936306 and nominated for backport to 1.15.0 in r1936307.

One think I wasn't sure of is an #ifdef in subversion/include/svn_client.h:
[[[
Index: subversion/include/svn_client.h
===================================================================
--- subversion/include/svn_client.h     (revision 1936307)
+++ subversion/include/svn_client.h     (working copy)
@@ -152,7 +152,7 @@
                                apr_pool_t *pool);


-#if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN) ||
defined(CTYPESGEN) || defined(SWIG)
+#if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN) ||
defined(SWIG)
 /**
  * Create and return @a *provider, an authentication provider of type
  * #svn_auth_cred_simple_t that gets/sets information from the user's
@@ -179,7 +179,7 @@
 void
 svn_client_get_windows_simple_provider(svn_auth_provider_object_t
**provider,
                                        apr_pool_t *pool);
-#endif /* WIN32 && !__MINGW32__ || DOXYGEN || CTYPESGEN || SWIG */
+#endif /* WIN32 && !__MINGW32__ || DOXYGEN || SWIG */

 /** Create and return @a *provider, an authentication provider of type
  * #svn_auth_cred_username_t that gets/sets information from a user's
]]]
I left it alone at the moment as I wasn't sure if it would count as public
API in some way.

Cheers,
Daniel

[1] https://lists.apache.org/thread/7mdfqdobv82w7l2jtwjwcszycco3pkkl

Reply via email to