Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 556364 - [php] Warn users about the change in the meaning of mysql USE flag
Summary: [php] Warn users about the change in the meaning of mysql USE flag
Status: RESOLVED DUPLICATE of bug 481190
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: PHP Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-30 23:31 UTC by .
Modified: 2016-07-12 15:06 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description . 2015-07-30 23:31:35 UTC
In 5.4 slot, mysql flag means enabling or disabling mysql_* functions which are deprecated as of PHP 5.5. In 5.5 and 5.6 slots this flag replaced mysqlnd flag found in 5.4 slot. Without further notice.

This "tiny" change caused my upgraded PHP to lack PDO_mysql - cornerstone of all web apps (together with mysqli).

It'd be nice if such changes never happened in stable slots and if they did, then I'd like to read about it in eselect news or somewhere else.
Comment 1 Brian Evans (RETIRED) gentoo-dev 2015-07-31 01:18:27 UTC
(In reply to rindeal from comment #0)
> In 5.4 slot, mysql flag means enabling or disabling mysql_* functions which
> are deprecated as of PHP 5.5. In 5.5 and 5.6 slots this flag replaced
> mysqlnd flag found in 5.4 slot. Without further notice.
> 

I think you misinterpreted things.

The mysqlnd flag was replace with libmysqlclient USE.
What this means is that mysqlnd is always on unless libmysqlclient is set and then links to libmysqlclient.so
Comment 2 . 2015-07-31 08:36:05 UTC
Unfortunately no, I didn't.

This is what happens with "mysqli -mysql":
`--without-mysql --with-mysqli=mysqlnd --without-mysql-sock --without-pdo-mysql`

And this with "mysqli mysql":
`--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-pdo-mysql=mysqlnd`
Comment 3 Michael Orlitzky gentoo-dev 2016-07-12 15:06:35 UTC
I'm going to mark this one a dupe of #481190 because they have the same underlying cause. USE flags are supposed to be "feature" flags, but when there are multiple implementations of the same thing (with critical differences) like there are with PHP, it's not always possible to make (for example) USE=mysql just "enable mysql support."

We know the flags interact in weird ways, but at this point, if we change them, then everyone's web servers are going to break. I don't want to do that without a good reason (php-8.x?).

If/when we do, I think we can simplify things by having flags for each database driver. Right now, you need to set both USE=pdo and USE=mysql to get pdo-mysql, and this is confusing when there's also a "mysql" driver. Even though it violates the "USE flags are for features" mantra, changing them all to e.g. USE=pdo-mysql would simplify the ebuild and make things a lot less confusing.

*** This bug has been marked as a duplicate of bug 481190 ***