On 24. 5. 26 22:12, Daniel Sahlberg wrote:
Den sön 24 maj 2026 kl 03:20 skrev Branko Čibej <[email protected]>:

    On 24. 5. 26 02:52, [email protected] wrote:
    Author: brane
    Date: Sun May 24 00:52:17 2026
    New Revision: 1934546

    Log:
    Add svnbrowse to the autotools build.

    Building svnbrowse is optional and can be enabled with --enable-svnbrowse.
    When enabled, --with-ncurses can be used to find the ncurses installation.
    [...]


    This was a bit of an adventure, during which I found a bug in one
    of the Makefile generator's templates ... Anyway, svnbrowse works
    on my Mac, and by "works" I mean it doesn't crash immediately and
    it does browse the remote repository. Nice.


Thanks for doing this!

I tried it out on Ubuntu 26.04 (in WSL) but it failed with a link error related to apr_palloc:
[[[
if true ; then cd subversion/svnbrowse && /bin/bash "/home/dsg/svn_trunk4/libtool" --tag=CC --silent --mode=link gcc  -g3 -fno-omit-frame-pointer -fno-inline -DSVN_DEBUG -DAP_DEBUG -L/home/dsg/bin/lib/pkgconfig/../../lib   -rpath /home/dsg/bin/lib  -o svnbrowse  model.lo svnbrowse.lo ../../subversion/libsvn_client/libsvn_client-1.la <http://libsvn_client-1.la> ../../subversion/libsvn_ra/libsvn_ra-1.la <http://libsvn_ra-1.la> ../../subversion/libsvn_subr/libsvn_subr-1.la <http://libsvn_subr-1.la> ../../subversion/libsvn_delta/libsvn_delta-1.la <http://libsvn_delta-1.la> -lncurses -ltinfo  ; else echo "fake" > subversion/svnbrowse/svnbrowse ; fi /usr/bin/x86_64-linux-gnu-ld.bfd: .libs/model.o: undefined reference to symbol 'apr_palloc' /usr/bin/x86_64-linux-gnu-ld.bfd: /usr/lib/x86_64-linux-gnu/libapr-1.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [build-outputs.mk:1204 <http://build-outputs.mk:1204>: subversion/svnbrowse/svnbrowse] Error 1
]]]

As usual, I'm way out of my depth but in the spirit of "fake it 'till you make it" I patched build.conf like this:
[[[
Index: build.conf
===================================================================
--- build.conf  (revision 1934566)
+++ build.conf  (working copy)
@@ -229,7 +229,7 @@
 # 'when' is ignored without 'compile-cmd'
 compile-cmd = $(LT_COMPILE) -o $@ -c
 path = subversion/svnbrowse
-libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta ncurses
+libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta ncurses apr
 install = tui

 # Support for GNOME Keyring
]]]

Is this required or did I mess something else up?

This is definitely required. If you look at other targets in build.conf that use APR functions directly, you'll find they all explicitly list APR(-Util) as a dependency. I'm surprised this worked on macOS; looks like it's a feature of the linker that it uses indirect dependencies. I expect this must be the case on Windows, too? Or does the CMake build always add apr and apr-util to the link dependencies?

-- Brane

Reply via email to