On Thu, Jun 6, 2019 at 4:15 AM Graham Leggett <minf...@sharp.fm> wrote:

> On 06 Jun 2019, at 10:38, Branko Čibej <br...@apache.org> wrote:
>
> $ lsb_release -a
> No LSB modules are available.
> Distributor ID: Ubuntu
> Description: Ubuntu 18.04.2 LTS
> Release: 18.04
> Codename: bionic
> $ apt-cache search aprutil
> libaprutil1 - Apache Portable Runtime Utility Library
> libaprutil1-dbd-sqlite3 - Apache Portable Runtime Utility Library -
> SQLite3 Driver
> libaprutil1-dbg - Apache Portable Runtime Utility Library - Debugging
> Symbols
> libaprutil1-dev - Apache Portable Runtime Utility Library - Development
> Headers
> libaprutil1-ldap - Apache Portable Runtime Utility Library - LDAP Driver
> libaprutil1-dbd-mysql - Apache Portable Runtime Utility Library - MySQL
> Driver
> libaprutil1-dbd-odbc - Apache Portable Runtime Utility Library - ODBC
> Driver
> libaprutil1-dbd-pgsql - Apache Portable Runtime Utility Library -
> PostgreSQL Driver
> $ apt-cache show libaprutil1
> Package: libaprutil1
> [...]
> Depends: libapr1 (>= 1.6.2), libc6 (>= 2.25), libdb5.3, libexpat1 (>=
> 2.0.1), libgdbm5 (>= 1.14), libssl1.1 (>= 1.1.0)
> […]
>
>
> That looks like a packaging bug. This is on CentOS7:
>
> [minfrin@chandler ~]$ ldd /usr/lib64/libapr-1.so.0.6.3
> linux-vdso.so.1 =>  (0x00007ffee65c1000)
> libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f8d24138000)
> librt.so.1 => /lib64/librt.so.1 (0x00007f8d23f30000)
> libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f8d23cf9000)
> libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8d23add000)
> libdl.so.2 => /lib64/libdl.so.2 (0x00007f8d238d9000)
> libc.so.6 => /lib64/libc.so.6 (0x00007f8d2350c000)
> /lib64/ld-linux-x86-64.so.2 (0x00007f8d24578000)
> libfreebl3.so => /lib64/libfreebl3.so (0x00007f8d23309000)
>
> [minfrin@chandler ~]$ ldd /usr/lib64/libaprutil-1.so.0
> linux-vdso.so.1 =>  (0x00007ffd83171000)
> libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f2813501000)
> libapr-1.so.0 => /lib64/libapr-1.so.0 (0x00007f28132c6000)
> libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f28130c1000)
> librt.so.1 => /lib64/librt.so.1 (0x00007f2812eb9000)
> libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f2812c82000)
> libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2812a66000)
> libdl.so.2 => /lib64/libdl.so.2 (0x00007f2812862000)
> libc.so.6 => /lib64/libc.so.6 (0x00007f2812495000)
> /lib64/ld-linux-x86-64.so.2 (0x00007f2813962000)
> libfreebl3.so => /lib64/libfreebl3.so (0x00007f2812292000)
>
> I specifically object to libexpat, libssl, libdb and libgdm being on
> this dependency list ... the latter two are just bloat, but the former
> two create all sorts of problems for any project that happens to use
> either of them directly.
>
> +1.
>
> Looking at the archeology, this problem was identified years ago, and each
> successive addition has been properly modularised. What was needed was to
> go back and modularise the earliest additions.
>

 It seems the latest additions are the only problem on apr-2.0;

$ ldd libapr-2.so
linux-vdso.so.1 (0x00007fc16a217000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fc16a136000)
librt.so.1 => /lib64/librt.so.1 (0x00007fc16a12c000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fc16a0f0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc16a0ce000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc16a0c8000)
libssl.so.1.1 => /opt/openssl111/lib/libssl.so.1.1 (0x00007fc16a034000)
libcrypto.so.1.1 => /opt/openssl111/lib/libcrypto.so.1.1
(0x00007fc169d48000)
libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fc169bde000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc169a18000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc16a218000)
libz.so.1 => /lib64/libz.so.1 (0x00007fc1699fe000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fc1699d5000)
libm.so.6 => /lib64/libm.so.6 (0x00007fc169851000)

That would be a problem. Please fix, both yourself, and Nick. Also curious
where libz/lzma arrived from, I'm guessing libxml2, because libssl 1.1.1
build no longer includes compression by default.

We have a second problem, someone colored the names in a very inappropriate
way;

[wrowe@hub apr-2]$ ls *.so
apr_crypto_openssl-2.so
apr_crypto_openssl.so
apr_dbd_mysql-2.so
apr_dbd_mysql.so
apr_dbd_odbc-2.so
apr_dbd_odbc.so
apr_dbd_pgsql-2.so
apr_dbd_pgsql.so
apr_dbd_sqlite3-2.so
apr_dbd_sqlite3.so
apr_dbm_db-2.so
apr_dbm_db.so
apr_dbm_gdbm-2.so
apr_dbm_gdbm.so
apr_dbm_ndbm-2.so
apr_dbm_ndbm.so

There is zero excuse for coloring the names by apr -2 epoch which are
enclosed in a directory explicitly named 'apr-2/'. And absolutely absurd to
have two different aliases, period, which would then conflict with their -1
brethren. This needs to be reverted and solved as apr/apr_foo-2.so or as
apr-2/apr_foo.so.

Now for the real fun, with the exception of the borked -lssl/-crypto,
almost everything has successfully been isolated to their respective
sub-components. I'm sure some of you would be interested, this is a
shortlist of some autodetected components on our build on a modern Fedora;

[wrowe@hub apr-2]$ for f in *-2.so; do echo "$f dependencies;"; ldd $f; done
apr_crypto_openssl-2.so dependencies;
linux-vdso.so.1 (0x00007ffd60359000)
libssl.so.1.1 => /opt/openssl111/lib/libssl.so.1.1 (0x00007f95c75eb000)
libcrypto.so.1.1 => /opt/openssl111/lib/libcrypto.so.1.1
(0x00007f95c7301000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f95c727a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f95c70b4000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f95c70ae000)
/lib64/ld-linux-x86-64.so.2 (0x00007f95c7688000)

apr_dbd_mysql-2.so dependencies;
linux-vdso.so.1 (0x00007ffdd8dfc000)
libmariadb.so.3 => /lib64/libmariadb.so.3 (0x00007f914df66000)
libz.so.1 => /lib64/libz.so.1 (0x00007f914df4c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f914df46000)
libm.so.6 => /lib64/libm.so.6 (0x00007f914ddc2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f914dda0000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f914dd0a000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f914da29000)
libc.so.6 => /lib64/libc.so.6 (0x00007f914d863000)
/lib64/ld-linux-x86-64.so.2 (0x00007f914e029000)

apr_dbd_odbc-2.so dependencies;
linux-vdso.so.1 (0x00007ffe29883000)
libodbc.so.2 => /lib64/libodbc.so.2 (0x00007f73ec2a1000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f73ec27f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f73ec0b9000)
libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f73ec0ad000)
/lib64/ld-linux-x86-64.so.2 (0x00007f73ec385000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f73ec0a7000)

apr_dbd_pgsql-2.so dependencies;
linux-vdso.so.1 (0x00007fffcf8f5000)
libpq.so.5 => /lib64/libpq.so.5 (0x00007fe0f9cb3000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe0f9c91000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe0f9acb000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007fe0f9a35000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007fe0f9756000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fe0f9704000)
libldap_r-2.4.so.2 => /lib64/libldap_r-2.4.so.2 (0x00007fe0f96a9000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe0f9d6e000)
libz.so.1 => /lib64/libz.so.1 (0x00007fe0f968f000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fe0f9689000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fe0f9598000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fe0f957a000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fe0f9573000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fe0f955f000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fe0f9559000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fe0f953f000)
liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fe0f952d000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fe0f950e000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe0f94df000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fe0f94a3000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fe0f9414000)

apr_dbd_sqlite3-2.so dependencies;
linux-vdso.so.1 (0x00007fff70fb9000)
libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007fc7813ef000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc7813cd000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc781207000)
libm.so.6 => /lib64/libm.so.6 (0x00007fc781083000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc78107d000)
libz.so.1 => /lib64/libz.so.1 (0x00007fc781063000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc781572000)

apr_dbm_db-2.so dependencies;
linux-vdso.so.1 (0x00007ffe5c298000)
libdb-5.3.so => /lib64/libdb-5.3.so (0x00007f0a94855000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0a94833000)
libc.so.6 => /lib64/libc.so.6 (0x00007f0a9466d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0a94a85000)

apr_dbm_gdbm-2.so dependencies;
linux-vdso.so.1 (0x00007ffef6263000)
libgdbm.so.6 => /lib64/libgdbm.so.6 (0x00007f82cf46a000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f82cf448000)
libc.so.6 => /lib64/libc.so.6 (0x00007f82cf282000)
/lib64/ld-linux-x86-64.so.2 (0x00007f82cf4e7000)

apr_dbm_ndbm-2.so dependencies;
linux-vdso.so.1 (0x00007ffed5d3a000)
libdb-5.3.so => /lib64/libdb-5.3.so (0x00007f7a7f41b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7a7f3f9000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7a7f233000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7a7f64b000)

Reply via email to