Otherwise references to the Python interpreter inside the set are wrong, as demonstrated by:
``` nix
with import <nixpkgs> { };
let
python' = python3.override {
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the _non_ overriden requests.
And the same with `self`:
```
with import <nixpkgs> { };
let
python' = python3.override {
self = python';
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the overriden requests.
This can manifest itself as file collisions when constructing environments or as subtly incorrect dependency graphs.
Pretix is not yet compatible with newer releases, and it shows when
visiting `/control/settings/history`, which ends in a trace with a db
field that was introduced in 2.4.0:
> django.db.utils.ProgrammingError: column pretixapi_oauthapplication.hash_client_secret does not exist
Pretix wants to build locales according to the user configuration, which
does not exist in our case and leads to certain languages not being
built.
As our packages are immutable, the user config will never be able to
influence them and we therefore must enable all languages at build time.
Closes: #297708
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.