From 5a6e57f25134e7fa9a1b339f57230b6f67791610 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Thu, 22 Oct 2026 16:47:24 +0200 Subject: [PATCH 1/2] serf: Rebuild against OpenLDAP 2.6 and OpenSSL 3 serf 1.3.10-0 links OpenSSL 1.1 and, through apu-1-config, OpenLDAP 2.4: $ readelf -d /usr/lib/libserf-1.so.1.3.0 | grep -E 'ssl|crypto|ldap|lber' 0x0000000000000001 (NEEDED) Shared library: [libssl.so.1.1] 0x0000000000000001 (NEEDED) Shared library: [libcrypto.so.1.1] 0x0000000000000001 (NEEDED) Shared library: [libldap-2.4.so.2] 0x0000000000000001 (NEEDED) Shared library: [liblber-2.4.so.2] serf 1.3.10 supports OpenSSL 3, so rebuild it against OpenSSL 3.6.2 and apr-util 1.6.5, which links OpenLDAP 2.6.10. Increment revision to 1. Assisted-by: claude-opus-5.5 (Claude Code) --- serf.be0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serf.be0 b/serf.be0 index 179e9d0ab..a09b4e30f 100755 --- a/serf.be0 +++ b/serf.be0 @@ -1,6 +1,6 @@ #!/usr/bin/env beesh -# BEE_VERSION serf-1.3.10-0 +# BEE_VERSION serf-1.3.10-1 # more info: https://serf.apache.org From 4159482a9d5a37c1f2936db80f56f653a34d32fd Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Fri, 23 Oct 2026 12:18:24 +0200 Subject: [PATCH 2/2] serf: Link with --as-needed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit serf takes its link flags from `apu-1-config --libs`, which lists the OpenLDAP libraries because apr-util is built with `--with-ldap`, even though the LDAP code lives in the separately loaded module apr_ldap-1.so: $ apu-1-config --libs -lldap -llber -lexpat serf does not call any of them: $ nm -D --undefined-only /usr/lib/libserf-1.so.1.3.0 | grep -ciE 'ldap|ber_' 0 Still, libserf-1.so.1 records them as NEEDED, so every OpenLDAP soname change forces a serf rebuild, and removing openldap-libonly_compat would break serf and with it svn for every repository. Pass `-Wl,--as-needed` through SConstruct’s LINKFLAGS variable. SCons places it before the libraries (`$SHLINKFLAGS` = `$LINKFLAGS -shared` precedes `$_LIBFLAGS` in `$SHLINKCOM`), and SConstruct saves the variables in .saved_config, so the `scons install` run reuses them. Assisted-by: claude-opus-5.5 (Claude Code) --- serf.be0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serf.be0 b/serf.be0 index a09b4e30f..72dc13e0d 100755 --- a/serf.be0 +++ b/serf.be0 @@ -46,7 +46,7 @@ mee_build() { start_cmd virtualenv2 venv0 . venv0/bin/activate start_cmd pip install scons - start_cmd scons PREFIX=$PREFIX + start_cmd scons PREFIX=$PREFIX LINKFLAGS=-Wl,--as-needed # start_cmd scons check }