The problem here was that to enable pdo-sqlite, the sqlite driver for PHP Data Objects, you had to enable
USE="sqlite". This was fine when there was only one sqlite USE flag. But with both sqlite and sqlite3 selectable, it became an odd choice. PHP Data Objects only fully support sqlite3 in the first place!
So I changed that today and made PDO support for sqlite dependent on
USE="sqlite3". The update should now be on a mirror near you. By the virtue of eblits, it is available for all php-5.3 versions we currently have. Simply remerge php (
USE="-sqlite sqlite3" emerge -v php) to see the effect - an
emerge --depcleanshould now unmerge sqlite-2* if PHP was the last application requiring it.
And while Dessa kindly pointed out to me Bug #249418, which states that
USE="sqlite"should enable either sqlite2 or sqlite3 support and prefer sqlite3 (thus obsoleting the sqlite3 USE flag), I'm still in favor of the current solution.
For one, PHP upstream still enables both sqlite2 and sqlite3 by default. And if you install a Gentoo php without any changes, you'll get sqlite2 and sqlite3, too, because we follow upstreams defaults.
But heads up: future versions of PHP-5.3 will throw
E_DEPRECATEDnotices if you continue to use sqlite2 via
sqlite_open()as per this post. Support for it will be gone in future minor versions (whether they will be named 5.4 or 6...)