When reworking the percona package naming towards the two release
streams "innovation" and "lts", I did not anticipate the case that two
releases are long-term supported in parallel, and that the latest
Innovation release is end-of-life and replaced by a more recent lts.
Hence, the first-level attribute names now reflect the package
major-minor versions again, augmented by attribute names pointing to
respective lts and innovation releases.
In preparation for the deprecation of `stdenv.isX`.
These shorthands are not conducive to cross-compilation because they
hide the platforms.
Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way
One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059
There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.
```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
I encountered errors when attempting to run Vitess which calls out to
mysqld_safe[1]. Several utilities are needed in order for it to run e.g.
grep, sed, env, ps, date, hostname, etc.
Additionally, if ps, kill, and grep aren't available to
scripts/CMakeLists.txt, mysqld_start can end up getting generated with
syntax errors as FIND_PROC will be substituted into the script template
as an empty string[2][3].
The presence of systemd in percona-server_innovation seems to prevent
mysqld_multi from being built on Linux so it gets patched conditionally.
This same patch could be applied to MySQL if desired.
[1]: https://github.com/vitessio/vitess/blob/v20.0.1/go/vt/mysqlctl/mysqld.go#L363-L369
[2]: 79c1086e82/scripts/CMakeLists.txt (L255)
[3]: 79c1086e82/scripts/mysqld_safe.sh (L869)
In accordance to the upstream release cycle, we now provide 2 flavours
of the percona mysql ecosystem. The default is the LTS variant,
additionally there is now the floating `percona-server_innovation`
always pointing to the most recent regular release.
- mentioned in release notes
- adapted all depending tests and tools (xtrabackup)
This release belongs to the "innovation" release track of Percona,
making it likely to diverge over time from the LTS release. Hence I just
created a separate packaging expression for this.