-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
innotop/percona-toolkit pull installtion leaves p5-DBD-mysql client broken. #22
Comments
The current workaround is to prefer one of the p5-DBD-* packages by preinstalling e.g. p5-DBD-mysql56. The only other way around I can think of is to build innotop prefixed for each flavor (e.g. mysql56-innotop or innotop-mysql56). |
Yes this is the work around I am currently using with the logic held in a puppet module to ensure the correct p5-DBD is installed before innotop/percona-toolkit. Gory if/else here in case it's useful to anyone else https://gist.github.com/stevenwilliamson/c10bc2125c573b1c6058 (Slightly different issue but related) The deps are little surprising though, i would not envisage that by default on a fresh system if I installed just innotop
It would result in pulling in the full percona-cluster server, when it's perfectly acceptable to install just innotop and p5-DBD-mysql. innotop/percona-toolkit will connect to remote MySQL instances. p5-DBD-{variants} should only require a mysql client library and not depend on a full server install? |
The cluster packages are monolithic. And the regexp is evaluated in a mere alphabetic manner I'm afraid, i.e. the Percona cluster is regarded as the "most recent. F.
|
I'll revisit next week though, maybe I can think of something. We're going an extra mile compared to upstream pkgsrc, building all possible flavors side by side, which is why we're getting a bigger burn here.
|
Steps to reproduce:
This results in output:
And then trying to run innotop
The Issue
The same issue is present in percona-toolkit. The issue is the regexp dependency they both share https://github.com/joyent/pkgsrc-joyent/blob/master/innotop/Makefile#L15
If no p5-DBD has been installed pkgsrc always attempt to satisfy that dep by installing percona-cluster-DBD. This in turn also attempt to install percona-cluster-server which then fails due to conflicts with the already installed mysql-server.
pkgin log file
Im not sure what the fix should be here, but it is suboptimal at the moment. The issue is there isn't enough information present at package install time for pkgsrc to pick the correct p5-DBD package to fulfil the dependency. As the correct package can only be determined by inspecting what is already installed.
Having deps evaluated at runtime supporting some kind of conditional could be a solution:
if "mysql-server" installed; p5-dep = p5-dep-variant1
if "percona-server" install; p5-dep = p5-dep-variant2
This might not be the best solution and would require a lot of effort on the face of it.
The text was updated successfully, but these errors were encountered: