Open swt2c opened 1 year ago
Sorry, no time to install OpenSuSE and debug this right now, so I wonder if you already know where does libdir
value come from? For me it's defined just as ${exec_prefix}/lib
with exec_prefix
being just prefix
by default, but overridden to the build directory by wx-config-inplace
. How does it end up being .../lib64
instead?
I also see this code in configure
where we decide to use lib64
on any 64-bit Linux system without /usr/lib/x86_64-linux-gnu
(can you confirm that openSUSE indeed doesn't have it?):
and I wonder if it (still) makes sense to do this, i.e. if lib64
is really still used, as I think it might have been a transient thing during 32-to-64 bit transition and by now everybody is back to just using lib
. Or maybe not?
Okay, so the lib64
value is not coming from wx, but from an autoconf "site configuration" file (they set CONFIG_SITE environment variable) that gets sourced when you run autoconf. I've attached it because I'm not sure where to link to it.
This is enough to reproduce the problem (it's basically what happens in that site configuration file):
../configure --libdir='${exec_prefix}/lib64'
In fact, given that, we can probably at least work around this in wxPython's build by just running:
./configure --libdir='${exec_prefix}/lib'
But it looks like we really ought to be using lib64
if they specifically set libdir
like this, shouldn't we? Or it doesn't really matter for the directory we create under the build one?
But it looks like we really ought to be using
lib64
if they specifically setlibdir
like this, shouldn't we? Or it doesn't really matter for the directory we create under the build one?
That would probably be ideal, yeah. Do you have any idea where in configure that directory gets created? :-) The only mkdir
I could find was in a Windows section, so that couldn't be it.
It's implicitly created by AC_CONFIG_FILES()
and AC_CONFIG_COMMANDS()
in configure.ac
, so all lib
s there should be replaced. The problem is that I'm not exactly sure what to replace them with: I don't know if $libdir
is defined there (and if it is, we can't use it directly, we need to use just its last component, i.e. ${libdir##*/}
).
Thanks for that pointer. I guess the other possibility is for wx-config-inplace.in
to change things back to lib
, if that's possible.
However, I'm thinking this may not really be a very high priority issue. After all, this issue seems like it should have existed for 10+ years but no openSUSE users have reported it before (other than via wxPython).
Reproduced in Tumbleweed. Please remove the Leap
in the title.
It really shouldn't be difficult to fix this, if anybody can test the solution proposed above there or at least tell me what $libdir
value is, it would be nice.
How and where should one check the value of $libdir
?
For me it's defined just as
${exec_prefix}/lib
withexec_prefix
being justprefix
by default, but overridden to the build directory bywx-config-inplace
. How does it end up being.../lib64
instead?
In config.status
in the build directory I find S["libdir"]="${exec_prefix}/lib64"
and S["exec_prefix"]="${prefix}"
with prefix
being the build directory.
I also see this code in
configure
where we decide to uselib64
on any 64-bit Linux system without/usr/lib/x86_64-linux-gnu
(can you confirm that openSUSE indeed doesn't have it?):
I can confirm that openSUSE doesn't have a directory /usr/lib/x86_64-linux-gnu/
.
I checked this on openSUSE Leap 42.3, openSUSE Leap 15.5 and openSUSE Tumbleweed.
Description
The in-place wx-config sets (at least) the include path incorrectly on openSUSE Leap. See below for the mismatch between
lib
andlib64
.It's not immediately clear the best way to fix this. Should (can?) the in-place wx-config override the libdir? Or should wx use
lib64
as the directory name if that's what the libdir is configured as?To reproduce this:
site-config
which sets environment variables)Platform and version information
config.log