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)