Hi, On 2021/02/17 0:04, Lev Serebryakov wrote: > > Update to 1.14.1 break out-of-tree build of python bindings (with python > 3.7). > 1.14.0 works with same options, makefiles, etc. 1.14.1 fails to build > bindings when libraries are installed and swig is not installed (bindings are > built as separate ntity, not together with subversion libraries themselves): >
Even subversion libraries are installed, 'make check-swig-py' needs subversion libraries in build tree. Those will be built before building bindings if they were not built yet. > --- check-swig-py --- > if [ "LD_LIBRARY_PATH" = "DYLD_LIBRARY_PATH" ]; then for d in > /wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/libsvn_swig_py > > /wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/../../../libsvn_*; > do if [ -n "$DYLD_LIBRARY_PATH" ]; then > LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$d/.libs"; else > LD_LIBRARY_PATH="$d/.libs"; fi; done; export LD_LIBRARY_PATH; fi; cd > /wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python; > /usr/local/bin/python3.7 > /wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/tests/run_all.py > Traceback (most recent call last): > File > "/wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/tests/run_all.py", > line 23, in <module> > import mergeinfo, core, client, delta, checksum, pool, fs, ra, wc, > repository, \ > File > "/wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/tests/mergeinfo.py", > line 22, in <module> > from svn import core, repos, fs > File > "/wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/svn/core.py", > line 26, in <module> > from libsvn.core import * > File > "/wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/libsvn/core.py", > line 26, in <module> > from . import _core > ImportError: cannot import name '_core' from 'libsvn' > (/wrkdirs/usr/ports/devel/py-subversion/work-py37/subversion-1.14.1/subversion/bindings/swig/python/libsvn/__init__.py) > *** [check-swig-py] Error code 1 > I tried to reproduce, but I couldn't reproduce the issue. Did there exist subversion/bindings/swig/python/.libs/_core.so? How about subversion/libsvn_client/.libs/libsvn_client-1.so.0, etc? I did below on FreeBSD 12.2: [[[ tar xpf /usr/ports/distfiles/subversion-1.14.1.tar.bz2 mkdir out-of-tree-svn-1.14.1 cd out-of-tree-svn-1.14.1 env PYTHON=/usr/local/bin/python3.7 sh ../subversion-1.14.1/configure \ --with-sqlite=/usr/local \ --with-expat=/usr/local/include:/usr/local/lib:expat --without-swig \ --with-apr=/usr/local/bin/apr-1-config \ --with-apr-util=/usr/local/bin/apu-1-config \ --without-gnome-keyring --without-kwallet \ --with-apxs=/usr/local/sbin/apxs \ --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man \ --infodir=/usr/local/info --with-py3c=/usr/local make check-swig-py ]]] and it passed the test. (Note: if source tree subversion-1.14.1 is not clean, "make swig-py" stopped with error before building Python bindings.) Result of ldd _core.so: [[[ $ ldd subversion/bindings/swig/python/.libs/_core.so subversion/bindings/swig/python/.libs/_core.so: libsvn_swig_py-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/bindings/swig/python/libsvn_swig_py/.libs/libsvn_swig_py-1.so.0 (0x80071d000) libsvn_client-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_client/.libs/libsvn_client-1.so.0 (0x800734000) libsvn_wc-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_wc/.libs/libsvn_wc-1.so.0 (0x800e00000) libsvn_diff-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_diff/.libs/libsvn_diff-1.so.0 (0x8007c0000) libsvn_ra-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_ra/.libs/libsvn_ra-1.so.0 (0x8007da000) libsvn_ra_local-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so.0 (0x8007ea000) libsvn_repos-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_repos/.libs/libsvn_repos-1.so.0 (0x800ea9000) libsvn_fs-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_fs/.libs/libsvn_fs-1.so.0 (0x800ee8000) libsvn_fs_fs-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so.0 (0x800ef8000) libsvn_fs_x-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so.0 (0x800f4b000) libsvn_fs_base-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so.0 (0x800fbf000) libdb-5.3.so.0 => /usr/local/lib/libdb-5.3.so.0 (0x800fef000) libsvn_fs_util-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so.0 (0x8007f6000) libsvn_ra_svn-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so.0 (0x801197000) libsvn_ra_serf-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so.0 (0x8011bf000) libserf-1.so.1 => /usr/local/lib/libserf-1.so.1 (0x8011f3000) libsvn_delta-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_delta/.libs/libsvn_delta-1.so.0 (0x801211000) libsvn_subr-1.so.0 => /home/staff7/work/out-of-tree-svn-1.14.1/subversion/libsvn_subr/.libs/libsvn_subr-1.so.0 (0x801232000) libaprutil-1.so.0 => /usr/local/lib/libaprutil-1.so.0 (0x8012c7000) libexpat.so.1 => /usr/local/lib/libexpat.so.1 (0x8012f8000) libz.so.6 => /lib/libz.so.6 (0x801325000) libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0 (0x801341000) libmagic.so.4 => /usr/lib/libmagic.so.4 (0x8014e5000) liblz4.so.1 => /usr/local/lib/liblz4.so.1 (0x80150f000) libutf8proc.so.2 => /usr/local/lib/libutf8proc.so.2 (0x80153d000) libapr-1.so.0 => /usr/local/lib/libapr-1.so.0 (0x801592000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x8015d3000) libthr.so.3 => /lib/libthr.so.3 (0x8015e1000) libc.so.7 => /lib/libc.so.7 (0x80024e000) libssl.so.111 => /usr/lib/libssl.so.111 (0x80160e000) libcrypto.so.111 => /lib/libcrypto.so.111 (0x8016a6000) libcrypt.so.5 => /lib/libcrypt.so.5 (0x801998000) libgdbm.so.6 => /usr/local/lib/libgdbm.so.6 (0x8019b9000) libm.so.5 => /lib/libm.so.5 (0x8019ca000) ]]] Cheers, -- Yasuhito FUTATSUKI <futat...@yf.bsclub.org>