#1104998 unixodbc-dev: unixodbc_conf.h picks up fakeroot LD path

Package:
unixodbc-dev
Source:
unixodbc-dev
Description:
ODBC libraries for Unix (development files)
Submitter:
Chris Hofstaedtler
Date:
2025-09-01 11:39:03 UTC
Severity:
normal
#1104998#5
Date:
2025-05-09 14:42:51 UTC
From:
To:
Hi,

/usr/include/aarch64-linux-gnu/unixODBC/unixodbc_conf.h contains:
#define LT_DLSEARCH_PATH "/lib:/usr/lib:/usr/local/lib/aarch64-linux-gnu:/lib/aarch64-linux-gnu:/usr/lib/aarch64-linux-gnu:/usr/lib/aarch64-linux-gnu/libfakeroot:/usr/local/lib"

Apparently it picks up the LD_LIBRARY_PATH modification done by
fakeroot. But this library path is wrong at runtime.

Please fix the build to not include the libfakeroot directory.

Best,
Chris

#1104998#10
Date:
2025-05-12 12:12:12 UTC
From:
To:
Hi Chris,

* Chris Hofstaedtler <zeha@debian.org> [2025-05-09 16:42]:

I think it should be enough to rebuild this package with a recent dpkg
that no longer uses fakeroot by default with Rules-Requires-Root: (but I
did not test this).

This was discussed in #debian-devel today:

13:38 <hmc> libtool's autoconf picks up LD_LIBRARY_PATH via LT_SYS_DLSEARCH_PATH
13:40 <hmc> in this case, unixodbc_conf.h is a private header.
13:42 <hmc> (it indicates how unixodbc was built)

And I found a number of packages with the same diff:

gerris
libapr1-dev (with other changes)
libdiagnostics-dev
libotf2-trace-dev (with other changes)
librep-dev
libtool-bin
pinball-dev
proftpd-core (with other changes)
r-base-core (with other changes and log size limit)

So maybe this should be reassigned to autoconf?

Cheers Jochen

#1104998#15
Date:
2025-05-12 16:26:11 UTC
From:
To:
* Jochen Sprickerhof <jspricke@debian.org> [250512 14:12]:

Maybe, maybe not. I'm guessing the packages themselves control if
they let the build-time library path end up in their header or
binary files.

If so, I don't think autoconf can do much about it.

Chris

#1104998#20
Date:
2025-09-01 06:06:08 UTC
From:
To:
* Chris Hofstaedtler <zeha@debian.org> [2025-05-12 18:26]:

I have updated the buildd chroot generation script to no longer install
fakeroot by default and asked for binNMUs for all bug pinball-dev (is R³
binary-targets) and verified that this reproduces now. I still think it
would be better to not expose the build time LD_LIBRARY_PATH in the
installed unixodbc_conf.h but that is probably minor, so closing this.

Cheers Jochen

#1104998#25
Date:
2025-09-01 11:37:35 UTC
From:
To:
Thanks for this work.

As indicated in an early response, unixodbc_conf.h is a private header
and indicates how unixodbc was built.

I'll probably patch out the LD_LIBRARY_PATH line at the next upload. In
fact, it might be easier to avoid shipping the header.

Hugh