Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 40045 - dev-db/libiodbc badly broken.
Summary: dev-db/libiodbc badly broken.
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All All
: Highest critical (vote)
Assignee: Michael Imhof (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 39932
  Show dependency tree
 
Reported: 2004-02-01 00:54 UTC by Robin Johnson
Modified: 2004-03-04 05:20 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
new ebuild for 3.51.2 (libiodbc-3.51.2.ebuild,949 bytes, text/plain)
2004-03-04 04:06 UTC, Tim Haynes (RETIRED)
Details
patch to avoid falling foul of sandbox constraints (libiodbc-3.51.2_install_symlink.diff,978 bytes, patch)
2004-03-04 04:06 UTC, Tim Haynes (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-02-01 00:54:17 UTC
Hey Tantive, your libiodbc package is badly broken:
1. installs in /usr/local
2. the .la files references the value of $D !
3. configure checks for GTK, which is nowhere in DEPEND or USE to allow USE=-gtk.
Comment 1 Michael Imhof (RETIRED) gentoo-dev 2004-02-01 04:29:59 UTC
bumped version to -r1

1. fixed. set prefix and exec-prefix
2. fixed. found no other way than tweaking the paths inside the .la's with sed.
3. fixed. Added IUSE=gtk", DEPEND on gtk is use is set, building with gtk support if gtk, else gtk and the check for gtk are disabled.

Hope this helps.
Comment 2 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-02-01 17:28:28 UTC
no, your fix didn't improve it much at all.
i've bumped it to -r2 with nearly everything fixed.

1. installing in /usr/local is NOT correct, it should be in /usr
2. ${D} shouldn't be used in src_compile, only in src_install ! this is where the .la gets the wrong value

the only problem remaining, is that libiodbc installs headers that overwrite headers from unixODBC, and the headers are very similar, but vary in a way that breaks some things.
Comment 3 Tim Haynes (RETIRED) gentoo-dev 2004-02-16 03:55:03 UTC
Hi,

I write in my capacity as webmaster@iodbc.org. Your ebuild is still broken - the SRC_URI won't work since I rejigged the website layout back in January some time:

SRC_URI="http://www.iodbc.org/downloads/iODBC/${P}.tar.gz"

I also raised the initial ebuild script, where the conflict with unixODBC was avoided by installing into /opt instead of /usr at all. Hence I think there has been a lack of communication here with the mysql guys, as that's where my bug was reassigned - see:

http://bugs.gentoo.org/show_bug.cgi?id=34831
Comment 4 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-02-16 04:55:07 UTC
piglet: ok, lets get this solved properly.
1. are iodbc and unixodbc mutually exclusive?
2. based on #1, will things like openldap, php, kde build against both of them?

if they are mutually exclusive, lets make a virtual out of them having blocking on the others and be done with it.

if not, and it looks like that will be the case
as the only common filenames between them are:
/usr/include/sql.h
/usr/include/sqlext.h
/usr/include/sqltypes.h
/usr/include/sqlucode.h

PostgreSQL just happens to have those files as well and was destroying the files from UnixODBC and causing problems before, so I moved them out of the with the support of the PostgreSQL herd.

Lets look at the configure scripts of things that depend on libiodbc / unixODBC, and move both sets of headers out of /usr/include and into /usr/include/something-based-on-$PN/.

/opt is not the right place for compiled packages anyway, it's generally intended for binary packages.
Comment 5 Tim Haynes (RETIRED) gentoo-dev 2004-02-16 06:01:31 UTC
> 1. are iodbc and unixodbc mutually exclusive?

Not really. Both implement the ODBC 3.x API on *nix platforms. Both have a GUI (qt with unixodbc, gtk with iodbc) for configuring things. 

The areas of overlap are:
both provide the sql.h (and related) header files;
both require an odbc.ini to operate, and may conflict if they both provide a default sample.

2. I've not tested openldap and kde against iODBC. However, I was the one who went around building support-modules for Perl, PHP, Ruby and Python against iODBC in order to write the *-HOWTO documents on www.iodbc.org, so I know there's a lot of things that do work well with the iODBC implementation. And, of course, if building an application against iODBC causes bugs, we have mailing-lists and stuff to help out.

I like the idea of a virtual package "odbc-driver-manager" (that being the functionality provided) - maybe with USE=iodbc to determine a user's preference one way or the other?

And I agree, dumping in /opt/iodbc/ wasn't necessarily the prettiest of solutions, just the most expedient for me to get something out quickly, so there's plenty of willingness for negotiation there. But as long as iodbc-config is in PATH at the time, it'll generate the correct CFLAGS and LDFLAGS anyway.
Comment 6 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-02-17 23:57:50 UTC
lets do the move first, then see about a virtual afterwards.

config files:
/etc/iodbc/
(unixODBC already uses /etc/unixODBC/)

header files:
/usr/include/iodbc/

there may be some cases where people want both of them installed, so lets keep that viable for the moment.
Comment 7 Tim Haynes (RETIRED) gentoo-dev 2004-02-18 01:16:11 UTC
Sounds good to me.

While I'm passing: I'm expecting to annoucne a 3.51.2 release in the next couple of days (give or take), too.
Comment 8 Tim Haynes (RETIRED) gentoo-dev 2004-02-20 02:08:06 UTC
Update: we're working on a version with "layouts", so there will be a configure --with-layout=gentoo (and various other things), that uses the directories previously agreed here. This should save a bit of work in the ebuild :)

This will be present in the upcoming 3.51.2.
Comment 9 Tim Haynes (RETIRED) gentoo-dev 2004-03-04 04:01:54 UTC
3.51.2 is now out and available. I'm attaching a new ebuild and a required diff (goes in the files/ directory) - this resolves the layout back into /usr, avoids conflicts in sql*.h, uses /etc/iodbc/odbc.ini by default.

Would someone like to test this and commit?
Comment 10 Tim Haynes (RETIRED) gentoo-dev 2004-03-04 04:06:17 UTC
Created attachment 26837 [details]
new ebuild for 3.51.2
Comment 11 Tim Haynes (RETIRED) gentoo-dev 2004-03-04 04:06:41 UTC
Created attachment 26838 [details, diff]
patch to avoid falling foul of sandbox constraints
Comment 12 Michael Imhof (RETIRED) gentoo-dev 2004-03-04 05:20:57 UTC
Checked your ebuild in.
Thanks for your help.

Closing this bug.