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>

Reply via email to