svn commit: r1936775 - in subversion/branches/1.15.x: . build build/ac-macros notes subversion/bindings/ctypes-python subversion/bindings/ctypes-python/csvn subversion/bindings/ctypes-python/examples subversion/bindings/ctypes-python/test tools/dist

[email protected] Sat, 01 Aug 2026 04:01:00 -0000
Newsgroups gmane.comp.version-control.subversion.svn
Message-ID <178555686085.973888.320662680159480246@svn03-he-fi>
Author: svn-role
Date: Sat Aug  1 04:01:00 2026
New Revision: 1936775

Log:
Merge the r1936306 group from trunk:

* r1936306, r1936315
  Remove the ctypes bindings code.
  Justification:
    Ctypes bindings don't work with Python 3 (and has not worked for at
    least 6 years).
  Votes:
    +1: dsahlberg, ivan, kotkov

Replaced:
   subversion/branches/1.15.x/subversion/bindings/ctypes-python/README
      - copied unchanged from r1936315, subversion/trunk/subversion/bindings/ctypes-python/README
Deleted:
   subversion/branches/1.15.x/build/ac-macros/ctypesgen.m4
   subversion/branches/1.15.x/build/run_ctypesgen.sh
   subversion/branches/1.15.x/subversion/bindings/ctypes-python/TODO
   subversion/branches/1.15.x/subversion/bindings/ctypes-python/csvn/
   subversion/branches/1.15.x/subversion/bindings/ctypes-python/examples/
   subversion/branches/1.15.x/subversion/bindings/ctypes-python/setup.py
   subversion/branches/1.15.x/subversion/bindings/ctypes-python/test/
Modified:
   subversion/branches/1.15.x/   (props changed)
   subversion/branches/1.15.x/INSTALL
   subversion/branches/1.15.x/Makefile.in
   subversion/branches/1.15.x/STATUS
   subversion/branches/1.15.x/aclocal.m4.in
   subversion/branches/1.15.x/configure.ac
   subversion/branches/1.15.x/notes/object-model.txt
   subversion/branches/1.15.x/tools/dist/rat-excludes

Modified: subversion/branches/1.15.x/INSTALL
==============================================================================
--- subversion/branches/1.15.x/INSTALL	Sat Aug  1 04:00:36 2026	(r1936774)
+++ subversion/branches/1.15.x/INSTALL	Sat Aug  1 04:01:00 2026	(r1936775)
@@ -482,7 +482,6 @@ I.    INTRODUCTION
       In more detail, Python is required to do any of the following:
 
       * Use the SWIG Python bindings.
-      * Use the ctypes Python bindings.
       * Use hook scripts coded in Python.
       * Build Subversion from a tarball on Unix-like systems and run
         Subversion's test suite as described in section II.B.
@@ -491,7 +490,6 @@ I.    INTRODUCTION
         Subversion's own repository (whether or not running the test
         suite).
       * Build the SWIG Python bindings.
-      * Build the ctypes Python bindings.
       * Testing as described in section III.D.
 
       The Python bindings are used by:
@@ -579,19 +577,7 @@ I.    INTRODUCTION
       then pass the '--with-gnome-keyring' option to `configure`.
 
 
-      20. Ctypesgen  (OPTIONAL)
-
-      Ctypesgen is Python wrapper generator for ctypes. It is used to generate
-      a part of Subversion Ctypes Python bindings (CSVN). If you want to build
-      CSVN, then pass the '--with-ctypesgen' option to `configure`. If ctypesgen.py
-      is installed in a non-standard place, then use:
-
-          --with-ctypesgen=/path/to/ctypesgen.py
-
-      For more information on CSVN, see subversion/bindings/ctypes-python/README.
-
-
-      21. libmagic (OPTIONAL)
+      20. libmagic (OPTIONAL)
 
       Subversion's configure script attempts to find libmagic automatically.
       If it is installed in a non-standard location, then use:
@@ -613,7 +599,7 @@ I.    INTRODUCTION
         --with-libmagic
 
 
-      22. LZ4 (OPTIONAL)
+      21. LZ4 (OPTIONAL)
 
       Subversion uses LZ4 compression library version r129 or above. Configure
       will attempt to locate the system library by default using pkg-config
@@ -627,7 +613,7 @@ I.    INTRODUCTION
         --with-lz4=internal
 
 
-      23. py3c (OPTIONAL)
+      22. py3c (OPTIONAL)
 
       Subversion uses the Python 3 Compatibility Layer for C
       Extensions (py3c) library when building the Python language

Modified: subversion/branches/1.15.x/Makefile.in
==============================================================================
--- subversion/branches/1.15.x/Makefile.in	Sat Aug  1 04:00:36 2026	(r1936774)
+++ subversion/branches/1.15.x/Makefile.in	Sat Aug  1 04:01:00 2026	(r1936775)
@@ -165,9 +165,6 @@ SWIG_RB_TEST_VERBOSE = @SWIG_RB_TEST_VER
 SWIG_RB_RI_DATADIR = $(DESTDIR)$(datadir)/ri/$(RUBY_MAJOR).$(RUBY_MINOR)/site
 SWIG_RB_ERRMSG = @SWIG_RB_ERRMSG@
 
-CTYPESGEN = @CTYPESGEN@
-CTYPES_PYTHON_SRC_DIR = $(abs_srcdir)/subversion/bindings/ctypes-python
-
 JAVAHL_JAR=subversion/bindings/javahl/svn-javahl.jar
 JAVAHL_INCLUDES= @JNI_INCLUDES@ -I$(abs_builddir)/subversion/bindings/javahl/include
 
@@ -455,7 +452,7 @@ fast-clean: doc-clean
           fi                                                         \
         done
 	echo $(CLEAN_FILES) | xargs rm -f --
-	for d in $(CTYPES_PYTHON_SRC_DIR) $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) \
+	for d in $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) \
 		$(abs_srcdir)/build $(top_srcdir)/subversion/tests/cmdline; \
 	do \
 	  test -e $$d || continue; \
@@ -883,12 +880,12 @@ install-man:
 install-swig-py: install-swig-py-lib
 install-swig-rb: install-swig-rb-lib
 
-clean-bindings: clean-swig clean-ctypes-python clean-javahl
+clean-bindings: clean-swig clean-javahl
 
 extraclean-bindings: clean-swig extraclean-swig-headers \
 			extraclean-swig-py extraclean-swig-rb \
 			extraclean-swig-pl \
-			clean-ctypes-python clean-javahl \
+			clean-javahl \
 
 clean-swig: clean-swig-headers clean-swig-py clean-swig-rb clean-swig-pl
 	@rm -f .swig_checked
@@ -1030,29 +1027,6 @@ extraclean-swig-rb: clean-swig-rb
 install-swig-rb-doc:
 	$(RDOC) --all --ri --op "$(SWIG_RB_RI_DATADIR)" "$(SWIG_RB_SRC_DIR)/svn"
 
-# ctypes-python make targets
-ctypes-python: local-all
-	$(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)" "$(CPP)"
-
-install-ctypes-python: ctypes-python
-	cd $(CTYPES_PYTHON_SRC_DIR); \
-	  $(PYTHON) setup.py install --prefix="$(DESTDIR)$(prefix)"
-
-check-ctypes-python: ctypes-python
-	cd $(CTYPES_PYTHON_SRC_DIR); \
-	  $(LT_EXECUTE) $(PYTHON) test/run_all.py
-
-# If any of those files exists, run ctypes' 'setup.py clean'.  We don't run
-# it otherwise because it spams stdout+stderr; see r1479326.
-clean-ctypes-python:
-	cd $(CTYPES_PYTHON_SRC_DIR);            \
-	  for b in build csvn/core/functions.py svn_all.py svn_all2.py ; do \
-	    if [ -e "$$b" ] ; then              \
-	      $(PYTHON) setup.py clean --all;   \
-	      break;                            \
-	    fi;                                 \
-	  done
-
 # manually describe a dependency, which we won't otherwise detect
 subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-metadata.sql
 subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-checks.sql

Modified: subversion/branches/1.15.x/STATUS
==============================================================================
--- subversion/branches/1.15.x/STATUS	Sat Aug  1 04:00:36 2026	(r1936774)
+++ subversion/branches/1.15.x/STATUS	Sat Aug  1 04:01:00 2026	(r1936775)
@@ -67,14 +67,6 @@ Veto-blocked changes:
 Approved changes:
 =================
 
-* r1936306, r1936315
-  Remove the ctypes bindings code.
-  Justification:
-    Ctypes bindings don't work with Python 3 (and has not worked for at
-    least 6 years).
-  Votes:
-    +1: dsahlberg, ivan, kotkov
-
 * r1936304
   cmake: Follow-up to r1935776, fix all tests via run_tests.py failing
   with SVN_TEST_CHECK_XML_SCHEMA=OFF.

Modified: subversion/branches/1.15.x/aclocal.m4.in
==============================================================================
--- subversion/branches/1.15.x/aclocal.m4.in	Sat Aug  1 04:00:36 2026	(r1936774)
+++ subversion/branches/1.15.x/aclocal.m4.in	Sat Aug  1 04:01:00 2026	(r1936775)
@@ -39,7 +39,6 @@ sinclude(build/ac-macros/ax_boost_base.m
 sinclude(build/ac-macros/ax_boost_unit_test_framework.m4)
 sinclude(build/ac-macros/berkeley-db.m4)
 sinclude(build/ac-macros/compiler.m4)
-sinclude(build/ac-macros/ctypesgen.m4)
 sinclude(build/ac-macros/java.m4)
 sinclude(build/ac-macros/sasl.m4)
 sinclude(build/ac-macros/serf.m4)

Modified: subversion/branches/1.15.x/configure.ac
==============================================================================
--- subversion/branches/1.15.x/configure.ac	Sat Aug  1 04:00:36 2026	(r1936774)
+++ subversion/branches/1.15.x/configure.ac	Sat Aug  1 04:01:00 2026	(r1936775)
@@ -1564,8 +1564,6 @@ AC_ARG_VAR(SWIG_RB_FEATURES, [SWIG featu
 AC_ARG_VAR(SWIG_PL_FEATURES, [SWIG feature flags specific to Perl bindings])
 AC_ARG_VAR(SWIG_PY_FEATURES, [SWIG feature flags specific to Python bindings])
 
-SVN_CHECK_CTYPESGEN
-
 dnl decide whether we want to link against the RA/FS libraries
 AC_ARG_ENABLE(runtime-module-search,
 AS_HELP_STRING([--enable-runtime-module-search],

Modified: subversion/branches/1.15.x/notes/object-model.txt
==============================================================================
--- subversion/branches/1.15.x/notes/object-model.txt	Sat Aug  1 04:00:36 2026	(r1936774)
+++ subversion/branches/1.15.x/notes/object-model.txt	Sat Aug  1 04:01:00 2026	(r1936775)
@@ -38,8 +38,8 @@ bindings languages, and allows for a sin
 documentation.  Several other projects have successfully implemented such
 a model, inclding wxWidgets[6] and MapServer[7].  There have even been
 past proposals within Subversion[8], but no real progress has been made.
-(The exception is the python c-types bindings[9], which have yet to be merged
-to trunk.)
+(The exception was the python c-types bindings[9], which existed between
+1.6 and 1.14, removed in 1.15)
 
 
 Requirements
@@ -167,4 +167,5 @@ Notes
 [6] http://www.wxwidgets.org/
 [7] http://mapserver.gis.umn.edu/
 [8] http://svn.haxx.se/dev/archive-2003-10/0215.shtml
-[9] http://svn.apache.org/repos/asf/subversion/branches/ctypes-python-bindings/
+[9] http://svn.apache.org/repos/asf/subversion/trunk/subversion/bindings/ctypes-python,
+before r1936298

Copied: subversion/branches/1.15.x/subversion/bindings/ctypes-python/README (from r1936315, subversion/trunk/subversion/bindings/ctypes-python/README)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ subversion/branches/1.15.x/subversion/bindings/ctypes-python/README	Sat Aug  1 04:01:00 2026	(r1936775, copy of r1936315, subversion/trunk/subversion/bindings/ctypes-python/README)
@@ -0,0 +1,6 @@
+This directory used to contain a ctypes based Python binding, however it
+was unmaintained and didn't work for Python3. Therefore, it was removed 
+in r1936306 (before the release of Subversion 1.15.0).
+
+If you want to see them or work with them, you can check them out from an
+earlier revision.

Modified: subversion/branches/1.15.x/tools/dist/rat-excludes
==============================================================================
--- subversion/branches/1.15.x/tools/dist/rat-excludes	Sat Aug  1 04:00:36 2026	(r1936774)
+++ subversion/branches/1.15.x/tools/dist/rat-excludes	Sat Aug  1 04:01:00 2026	(r1936775)
@@ -25,10 +25,6 @@ subversion/libsvn_ra_svn/protocol
 subversion/bindings/javahl/doc/index.html
 subversion/bindings/swig/python/tests/trac/__init__.py
 subversion/bindings/swig/python/tests/trac/versioncontrol/__init__.py
-subversion/bindings/ctypes-python/TODO
-subversion/bindings/ctypes-python/test/test.dumpfile
-subversion/bindings/ctypes-python/csvn/__init__.py
-subversion/bindings/ctypes-python/csvn/ext/__init__.py
 subversion/tests/cmdline/svntest/err.py
 tools/buildbot/master/public_html/buildbot.css
 tools/dist/rat-excludes