#55661 closed defect (fixed)
libiodbc has hard conflict against unixODBC
Reported by: | spodzone (Tim Haynes) | Owned by: | nerdling (Jeremy Lavergne) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | cooljeanius (Eric Gallager) | |
Port: | libiodbc unixODBC |
Description (last modified by mf2k (Frank Schima))
sh/scr, psammite 4:20PM libiodbc/ % port info libiodbc|grep -Ei '3.52|conflict' libiodbc @3.52.12 (devel) Conflicts with: unixODBC
This conflict causes a lot of unnecessary pain - I want to install both digiKam (with a load of dependencies through all of KDE to libiodbc) and Saga GIS (wants unixODBC).
There is a simple workaround: invoke ./configure --includedir=DIR --disable-libodbc
This will move the conflicting header files and disable the creation of libodbc.so.
Change History (10)
comment:1 Changed 7 years ago by mf2k (Frank Schima)
Description: | modified (diff) |
---|---|
Keywords: | odbc driver manager unixODBC conflict removed |
comment:2 Changed 7 years ago by mf2k (Frank Schima)
Port: | unixODBC added |
---|
comment:3 Changed 7 years ago by mf2k (Frank Schima)
Owner: | set to nerdling |
---|---|
Status: | new → assigned |
comment:4 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
This was partially addressed in [c175b9ba889d42decf33b787906eb70801265031/macports-ports] but see comments at https://lists.macports.org/pipermail/macports-dev/2018-May/038837.html about additional changes that are still needed.
comment:5 Changed 4 years ago by nerdling (Jeremy Lavergne)
Status: | assigned → accepted |
---|
Referring to Ryan's email that had issues with the code:
+variant libodbc description {install extra libodbc.so library} {
+ configure.args-replace --disable-libodbc --enable-libodbc
+}
This variant appears to install the file libodbc.a, not libodbc.so.
libiodbc has these specific configuration flags, whose specific language was used for the variant descriptions:
--enable-libodbc install extra libodbc.so library (default) --disable-libodbc do not install extra libodbc.so library
I agree it appears to actually create a .a
file as seen below and will swap the extension in our messaging, however I don't doubt that this file still created the reported conflict.
Enable creates these lib/lib*
files:
work/destroot/opt/local/lib/libiodbc.2.dylib work/destroot/opt/local/lib/libiodbc.a work/destroot/opt/local/lib/libiodbc.dylib work/destroot/opt/local/lib/libiodbcinst.2.dylib work/destroot/opt/local/lib/libiodbcinst.a work/destroot/opt/local/lib/libiodbcinst.dylib
Disable creates these lib/lib*
files:
work/destroot/opt/local/lib/libiodbc.2.dylib work/destroot/opt/local/lib/libiodbc.a work/destroot/opt/local/lib/libiodbc.dylib work/destroot/opt/local/lib/libiodbcinst.2.dylib work/destroot/opt/local/lib/libiodbcinst.a work/destroot/opt/local/lib/libiodbcinst.dylib work/destroot/opt/local/lib/libodbc.a
comment:6 Changed 4 years ago by nerdling (Jeremy Lavergne)
Unfortunately, the header files still appear to conflict regardless of the variant. So only degree of conflict is conditional, and these ports will always conflict.
% sudo port -Nstu install current -libodbc ---> Computing dependencies for libiodbc ---> Fetching distfiles for libiodbc ---> Attempting to fetch iODBC-3.52.13.tar.gz from https://github.com/openlink/iODBC/tarball/v3.52.13 ---> Verifying checksums for libiodbc ---> Extracting libiodbc Warning: The following existing file was hidden from the build system by trace mode: /private/var/select/sh ---> Applying patches to libiodbc Warning: The following existing file was hidden from the build system by trace mode: /private/var/select/sh ---> Configuring libiodbc Warning: The following existing files were hidden from the build system by trace mode: /opt/local/bin/ggrep /opt/local/bin/gmkdir /opt/local/bin/gsed /opt/local/bin/pkg-config /private/var/select/sh ---> Building libiodbc Warning: The following existing file was hidden from the build system by trace mode: /private/var/select/sh ---> Staging libiodbc into destroot Warning: The following existing files were hidden from the build system by trace mode: /private/var/select/sh /var/root/.CFUserTextEncoding ---> Installing libiodbc @3.52.13_1+x11 ---> Activating libiodbc @3.52.13_1+x11 Error: Failed to activate libiodbc: Image error: /opt/local/include/odbcinst.h is being used by the active unixODBC port. Please deactivate this port first, or use 'port -f activate libiodbc' to force the activation.
comment:7 Changed 4 years ago by nerdling (Jeremy Lavergne)
Ah, and now I see the --includedir=DIR
part now that I'm not focusing on the email that was elsewhere.
Do we have any preference for a replacement includedir just to avoid this conflict?
comment:8 Changed 4 years ago by nerdling (Jeremy Lavergne)
Eh, I'll just try using ${prefix}/include/${name}
.
comment:9 Changed 4 years ago by nerdling (Jeremy Lavergne)
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:10 Changed 11 months ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
In the future, please use WikiFormatting and Cc the port maintainers (
port info --maintainers libiodbc
), if any.