Bug 279205 - emulators/wine: missing runtime dependency on libodbc.so
Summary: emulators/wine: missing runtime dependency on libodbc.so
Status: Closed Works As Intended
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Gerald Pfeifer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-21 20:31 UTC by Didier Garcin
Modified: 2024-06-30 11:19 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Didier Garcin 2024-05-21 20:31:03 UTC
wine64's complaint :

0024:err:winediag:load_odbc failed to open library "libodbc.so": Shared object "libodbc.so" not found, required by "wine64.bin"
Comment 1 Gerald Pfeifer freebsd_committer freebsd_triage 2024-06-23 14:11:27 UTC
How did you obtain or create the wine package you are using?

Is it possible you built on a system where some ODBC port/package
was present and then installed on a system where that is not the
case?

(If not, is there anything special in your setup? This is the first
time I hear about this, so other users do not appear to be affected.)


For Wine 9.9 and later, so what emulators/wine-devel is tracking,
an explicit configure option has been added which I plan on using
there, like many of the other --without-foobar configure options.

For Wine 9.0, so emulators/wine, there is no such option yet.
Comment 2 Didier Garcin 2024-06-26 10:15:11 UTC
(In reply to Gerald Pfeifer from comment #1)

I've just installed from package repository.

I didn't installed odbc until the error message appears.

Thank you for your attention.

Have a nice day.
Comment 3 Gerald Pfeifer freebsd_committer freebsd_triage 2024-06-29 12:34:19 UTC
Hm, you did not advise on my original question:

  If not, is there anything special in your setup? This is the first
  time I hear about this, so other users do not appear to be affected.

And how does the problem manifest for you? I looked at the code in
Wine 9.0, and libodbc.so is loaded dynamically, not by the loader
upon startup, but Wine itself with error handling.

Is it just the message, or more, that you ran into?


I'll shortly commit a change to explicitly build --without-odbc to the
wine-devel port, something Wine 9.0 does not offer yet, and will then
close this report. 

(Also updating the bug summary to actually refer to the reported issue.)
Comment 4 commit-hook freebsd_committer freebsd_triage 2024-06-29 14:44:18 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=30b748b441647600bf05c8d34e9e420909cbd922

commit 30b748b441647600bf05c8d34e9e420909cbd922
Author:     Gerald Pfeifer <gerald@FreeBSD.org>
AuthorDate: 2024-06-29 14:40:37 +0000
Commit:     Gerald Pfeifer <gerald@FreeBSD.org>
CommitDate: 2024-06-29 14:43:29 +0000

    emulators/wine-devel: Configure --without-odbc

    This is new functionality since upstream commit af3a8fa27b from
    May 10. We want to be explicit (either way) for the sake of builds
    being reproducible and predictable.

    PR:             279205

 emulators/wine-devel/Makefile | 2 ++
 1 file changed, 2 insertions(+)
Comment 5 Didier Garcin 2024-06-29 20:43:37 UTC
(In reply to Gerald Pfeifer from comment #3)

What I can say, it was just this message, I faced out (nothing more affected me) that disappeared after installing odbc.
Comment 6 Gerald Pfeifer freebsd_committer freebsd_triage 2024-06-29 21:50:10 UTC
(In reply to Didier Garcin from comment #5)
> What I can say, it was just this message, I faced out (nothing
> more affected me) that disappeared after installing odbc.

Got it. What happens is that Wine 9.0 (and versions until the upstream
commit af3a8fa27b from May 10) checks whether libodbc.so is present at
run time: If it is, it uses it where appropriate. If it is not, it issues
the message you have been seeing.

When emulators/wine is updated to Wine 10.0 (probably in early 2025)
this will change along the lines of where emulators/wine-devel is now:
an explicit configuration option.
Comment 7 Didier Garcin 2024-06-30 11:19:00 UTC
(In reply to Gerald Pfeifer from comment #6)

Maybe, it is without consequence but as it was reported as an error, I thought it was useful to signal it.

Now, thanks to you, we have the last word of the story.