← Back to team overview

maria-developers team mailing list archive

IRC log of hingo and cafuego about the deb packages still named "mysql"


----------  Forwarded Message  ----------

Subject: IRC log of hingo and cafuego about the deb packages still named "mysql"
Date: Friday 28 May 2010
From: Henrik Ingo <hingo@xxxxxxxxxxxx>
To: maria-developers@xxxxxxxxxxxxxxxxxxx

Archiving this here for later reference.

The background is that current MariaDB packaging (which is based on ourdelta)
still has a few packages called mysql-something instead of mariadb-something.
This works for ourdelta, but since you obviously cannot have 2 identically
named packages in the same repository, this is a showstopper for getting
MariaDB into Debian.

My gut feeling of the below is that this is a bug in apt. If there is one
package called mysql-common (which is one of the problematic packages) and one
called mariadb-common that Provides: mysql-common, then if user chooses to
install mariadb-* and uninstall mysql-*, apt should be happy and let the user
do that.

[12:54:43] <hingo> cafuego?
[12:55:24] <evil_steve> is the six foot something dutch guy in the corner
nursing the fruitiest, girliest drink in the place.
[12:56:20] <capitol> ^^
[13:03:57] <cafuego> hingo: yes?
[13:04:16] <hingo> cafuego: You are the one doing the ourdelta deb packages?
[13:04:30] <cafuego> Yup
[13:08:30] <-- monk-eeee (~monk-
eeee@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) has quit (Quit: Computer has
gone to sleep)
[13:13:06] --> monk-eeee (~monk-
eeee@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) has joined #ourdelta
[13:14:42] <hingo> Oh sorry, I drifted off...
[13:15:27] <hingo> So, I was looking into some old emails and returned to the
fact we ship a "mysql-common" package with MariaDB.
[13:16:00] <hingo> Arjen says this is because some other debian package is
"hard-coded" to depend on that, but he is never able to remember more details.
Do you?
[13:17:01] <hingo> Details such as 1) do you remember which packages in debian
break if we rename it to mariadb-common and 2) since packages do "depends" and
"provides", how is it even possible to depend on the package name so that it
cannot be solved with a provides:?
[13:17:11] <hingo> cafuego ^
[13:37:32] <-- monk-eeee (~monk-
eeee@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) has quit (Quit: Computer has
gone to sleep)
[13:43:18] <cafuego> hingo: ummm... i think it was perl-dbi or somesuch
[13:44:16] <cafuego> hingo: The problem was that Provides can't be versioned,
so the distro pkg always wins.
[13:44:43] <hingo> cafuego: Ok, that makes more sense.
[13:45:01] <cafuego> hingo: A friend suggested sticking an empty mysql-common
package in and upping the epoch on that so the distro always loses :-)
[13:45:38] <hingo> cafuego: So perl-dbi depends always on a specific version.
[13:45:55] <cafuego> hingo: No, but it always grabs the newest version.
[13:46:09] <cafuego> I think, let me check
[13:46:36] <cafuego> wrong pkg
[13:47:38] <cafuego> libdbd-mysql-perl
[13:48:13] <cafuego> On my box that has a versioned depend on
libmysqlclient15off (>= 5.0.27-1)
[13:48:25] <hingo> cafuego: yes, but that is perl-dbi in commonspeak :-)
[13:48:34] <cafuego> ;-)
[13:48:53] <cafuego> So unless I stick libmysqlclient15off in my pkg it'll
always keep the distro version.
[13:49:01] <cafuego> a provides won't do it :-(
[13:49:16] <hingo> cafuego: So not actually mysql-common as such, just that
[13:49:41] <cafuego> Yeah I think so. It's been a while since I worked in it.
[13:49:45] <cafuego> s/in/on/
[13:50:15] <cafuego> The client won't install without libdbd-mysql-perl and
libdbd-mysql-perl won't install wtihout libmysqlclient15off
[13:50:43] --> monk-eeee (~monk-
eeee@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) has joined #ourdelta
[13:51:03] <hingo> cafuego: So why is the package name relevant at all then?
it depends on a file name of a library. Can't the package name be called
[13:51:15] <cafuego> hingo: sorry?
[13:51:27] <cafuego> hingo: I'm only talking pkg names here.
[13:51:41] <hingo> the package name is mysql-common
[13:51:54] <cafuego> So with my maria 5.1.42-mariadb68 package
[13:53:01] <hingo> 	mysql-common_5.1.42-mariadb68_all.deb
[13:53:22] <cafuego> mariadb-client-5.1 depends on libdbd-mysql-perl (which is
provided by the distro, and thus I can't edit its depends) depends on
libmysqlclient16 (>= 5.1.21-1)
[13:54:02] <cafuego> if I create libmariadbclient16 witha  Provides:
libmysqlclient16 the distro will NOT install that in preference
[13:54:12] <hingo> Ok, I get the libmysqlclient packages. I was speaking about
mysql-common in http://mirror.ourdelta.org/deb/dists/lenny/mariadb-ourdelta/
[13:55:52] <cafuego> AH yep. So something depends on libmysqlclient15off
[13:57:00] <cafuego> I don't think I have a lenny box handy :-/
[13:57:18] <hingo> But libmysqlclient15off is a separate package?
[13:57:22] <cafuego> yes
[13:57:43] <cafuego> that's the name of the pkg provided by the distro, that
would override a Provides in the maria packages
[13:59:38] <hingo> cafuego: I'm confused. mariadb-common does not contain
libmysqlclient15off or any other libmysqlclient.
[13:59:39] <cafuego> There's 134 packages in Lenny that depend on
[14:00:02] <hingo> I mean of course mysql-common from the mariadb repo.
[14:00:47] <cafuego> I swear I had a good reason at the time ;-)
[14:01:38] <cafuego> Oh that's right.
[14:01:40] <hingo> Ok. I can see how there could be a similar reason as for
libmysqlclient* problems. You kind of answered my second question anyway.
[14:01:56] <cafuego> Packages depend on libmysqlclient15off and
libmysqlclient15off depends on mysql-common.
[14:02:09] <hingo> ok.
[14:02:24] <hingo> Yes, of course.
[14:02:44] <cafuego> libmysqlclient15off has a versioned depend, so a provides
line in mariadb-common doesn't override that
[14:03:21] <cafuego> I think I got stuck in circular depependency land and
yelled at my machine a lot. Then I decided to just not rename everything :-)
[14:03:36] <hingo> Hmm... I bet that versioned depend isn't really necessary.
It's just a .cnf file there...
[14:04:08] <cafuego> hingo: probably, but it's a distro pkg so I can't change
it without actually providing a package of that name anyway.
[14:04:25] <hingo> cafuego: No, of course.
[14:04:40] <cafuego> So it went into the "currently unfixable" basket
[14:04:45] <cafuego> Well
[14:05:25] <cafuego> It's easily fixable as long as I don't expect users to
want to simply 'aptitude upgrade', but instead download depdns and manually
install them with dpkg.
[14:05:50] <hingo> cafuego: Btw, do you have an idea why RPM based systems
avoid this same problem? For them it works with a Provides?
[14:06:11] <hingo> cafuego: No we of course want to support apt-get/aptitude.
[14:06:33] <hingo> cafuego: We are looking into getting MariaDB into Debian
itself, but then we cannot have 2 packages with the same name.
[14:07:18] <cafuego> Ah yes.
[14:07:46] <cafuego> Well, in *theory* they shouldn't have that awful depend
in squeeze
[14:07:47] <hingo> This smells apt bug to me actually.
Henrik Ingo
Project Manager and COO, Monty Program Ab
hingo@xxxxxxxxxxxx, skype:henrik.ingo, +358405697354

What's up with MariaDB?


email: henrik.ingo@xxxxxxxxxxxxx
tel:   +358-40-5697354
www:   www.avoinelama.fi/~hingo
book:  www.openlife.cc