Skip to content

Conversation

@pmenzel
Copy link
Collaborator

Update with sudo bee update serf-1.3.10-1.

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 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)
@pmenzel Paul Menzel (pmenzel) merged commit 1fe553a into master Oct 23, 2026
@pmenzel Paul Menzel (pmenzel) deleted the rebuild-serf-against-openldap-2.6-and-openssl-3 branch October 23, 2026 18:58
Sign in to join this conversation on GitHub.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant