This adopts the packaging pattern already used by mariadb to build a
smaller package containing only the mysql client executables.
Downside: This makes overridability of e.g. version a bit worse, as we
are loosing the finalAttrs overridability machinery in `common`.
This commit was created by a combination of scripts and tools:
- an ast-grep script to prefix things in meta with `lib.`,
- a modified nixf-diagnose / nixf combination to remove unused `with
lib;`, and
- regular nixfmt.
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
They are not doing anything right now. This is in preparation for their
complete removal from the tree.
Note: several changes that affect the derivation inputs (e.g. removal of
references to stub paths in build instructions) were left out. They will
be cleaned up the next iteration and will require special care.
Note: this PR is a result of a mix of ugly regex (not AST) based
automation and some manual labor. For reference, the regex automation
part was hacked in: https://github.com/booxter/nix-clean-apple_sdk
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
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.