Den ons 4 nov. 2026 kl 20:02 skrev Ivan Zhakov <[email protected]>:

> On Mon, 4 Jul 2022 at 21:49, Daniel Sahlberg <[email protected]>
> wrote:
>
>> Den mån 4 juli 2022 kl 17:09 skrev Bert Huijben <[email protected]>:
>>
>>> That line will add the ./configure time dependencies (or gen-make.py for
>>> Windows). The dependencies on our own libraries are added by the ‘libs =’
>>> line right above.
>>>
>>
>> The libs at issue (libsvn_delta and libsvn_subr) are already in libs. The
>> problem seems to be that the linker is looking for these libs in the
>> install location ($PREFIX/lib) and they are not installed there when it
>> tries to link libsvn_ra_serf.
>>
>> libsvn_delta and libsvn_subr seems to be installed by install-fsmod-lib.
>>
>>  If you don’t get these, then it is most likely because the files don’t
>>> exist/aren’t build at the right time, and in that case you need to use a
>>> different make target, like you already suggested.
>>>
>>
>> I tried to change the dependency to $(SVN_RA_LIB_INSTALL_DEPS) (as with
>> libsvn_ra a few lines above), however I get a warning about a circular
>> dependency. I could also depend directly on install-fsmod but I'm not sure
>> this is better.
>>
>> Adding more and more unneeded dependencies will make things far harder to
>>> diagnose in the future, so we should remove strange inner dependencies for
>>> just a specific environment, or use the proper systems if we ever want to
>>> be able to find bugs in this space.
>>>
>>
>> Agreed. Thanks for taking your time to explain!
>>
>> Can you take the time to check the reproduction receipt to see if there
>> is anything obvious missing? I'm doing this in a fairly clean Ubuntu 21.10
>> (in particular, with no SVN packages installed - I removed them before
>> making the tests and I use the freshly built client whenever need to access
>> the repo).
>>
>> Would it be better to factor out libsvn_delta and libsvn_subr to their
>> own install target and make everything else depend on this new target?
>> (Grasping for straws here!)
>>
>> Hi Daniel,
>
> I am also confused by this change: libsvn_ra_serf is unrelated
> to SVN_FS_LIB_INSTALL_DEPS. Maybe we have the problem, but the fix doesn't
> look right.
>
> I would suggest that we either investigate the root cause of the problem
> or revert the change.
>

Hi,

I must admit that I don't fully understand the build system but I've tried
to dig into this today. (Full disclosure, I've been using a fair bit of
GPT-6 Luna in VSCode to dig around this and explain things. The patch below
is also generated by GPT-6 Luna).

As I understand the problem, libsvn_ra_serf is depending on libsvn_subr and
libsvn_delta to be built and installed before libsvn_ra_serf can be build.
They were previously installed by the fsmod-lib step and thus the "easy"
solution was to install that first.

What I've tried to do is to break out libsvn_subr and libsvn_delta to a
separate target and install that first. The below patch seems to work:

[[[
Index: Makefile.in
===================================================================
--- Makefile.in (revision 1940171)
+++ Makefile.in (working copy)
@@ -64,6 +64,7 @@
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 libdir = @libdir@
+support_libdir = @libdir@
 fsmod_libdir = @libdir@
 ramod_libdir = @libdir@
 gnome_keyring_libdir = @libdir@
@@ -315,6 +316,7 @@

 INSTALL = @INSTALL@
 INSTALL_LIB = $(LIBTOOL) --mode=install $(INSTALL)
+INSTALL_SUPPORT_LIB = $(INSTALL_LIB)
 INSTALL_FSMOD_LIB = $(INSTALL_LIB)
 INSTALL_RAMOD_LIB = $(INSTALL_LIB)
 INSTALL_APR_MEMCACHE_LIB = $(INSTALL_LIB)
Index: build.conf
===================================================================
--- build.conf  (revision 1940171)
+++ build.conf  (working copy)
@@ -262,7 +262,7 @@
 [libsvn_delta]
 description = Subversion Delta Library
 type = lib
-install = fsmod-lib
+install = support-lib
 path = subversion/libsvn_delta
 libs = libsvn_subr aprutil apriconv apr zlib
 msvc-export = svn_delta.h private/svn_editor.h private/svn_delta_private.h
@@ -342,7 +342,8 @@
 path = subversion/libsvn_ra_serf
 install = serf-lib
 libs = libsvn_delta libsvn_subr aprutil apriconv apr serf zlib
-add-install-deps = $(SVN_FS_LIB_INSTALL_DEPS)
+add-deps = install-support-lib
+add-install-deps = install-support-lib
 msvc-export = ../libsvn_ra_serf/ra_init.h ../libsvn_ra_serf/ra_serf.h

 # Accessing repositories via SVN
@@ -376,7 +377,7 @@
 [libsvn_subr]
 description = Subversion General Utility Library
 type = lib
-install = fsmod-lib
+install = support-lib
 path = subversion/libsvn_subr
 sources = *.c lz4/*.c
 libs = aprutil apriconv apr xml zlib apr_memcache
]]]

I'm fine to update build.conf in this way or any other way (but please give
me pointers where to start looking!).

Now, with the change above, make install-fsmod-lib fail. Seems like it
would also require add-deps or add-install-deps.

Kind regards,
Daniel

Reply via email to