With USE=iodbc sci-mathematics/glpk-4.29 has a dependency on dev-db/libiodbc, and when it builds, it wants to #include sql.h and sqlext.h from this package. The libiodbc package puts these files into /usr/include/iodbc, where glpk cannot find them because it does not -I/usr/include/iodbc. However, if you also have dev-db/unixODBC installed, glpk picks up sql.h and sqlext.h from the unixODBC versions of them, because unixODBC puts them into /usr/include/sql.h, etc. The failure is consistent across systems, but as a test, adding -I/usr/include/iodbc to CFLAGS cures the problem.
Hi Ferris, Good you caught this one. I personally never used odbc. If I understand from wikipedia, libiodbc and unixODBC provide the same. If this is the case the dependency could be || too, add an append-cppflags $(pkg-config --cflags libiodbc), only in libodbc case, and probably the flag to odbc. Anyone has an idea why it's not a virtual?
Yes, if I add inherit flag-o-matic to the ebuild then put use iodbc && append-cppflags $(pkg-config --cflags libiodbc) inside the database check, thus: if use mysql || use iodbc; then myconf="--enable-dl" use iodbc && append-cppflags $(pkg-config --cflags libiodbc) fi everything works fine.
Created attachment 161201 [details] glpk-4.29.ebuild.patch I would add something like this instead: either unixODBC or libiodbc.
That works, no matter which odbc is installed.
Ok, fixed in cvs. Thanks.