summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/python-openstackclient/git@git.tavy.me:nixos
diff options
context:
space:
mode:
authorMoritz Heidkamp <moritz@twoticketsplease.de>2025-08-14 11:09:09 +0200
committerMoritz Heidkamp <moritz@twoticketsplease.de>2025-08-14 20:12:06 +0200
commita49ee8d7de0f5bdaa307c139d24f4a396c77ad20 (patch)
tree0c0e2c2a7caa96bfee8fe48bc6ca57635a5a816f /pkgs/development/python-modules/python-openstackclient/git@git.tavy.me:nixos
parent4ff3ec314ae5edd6d6739efe93efe18542d07802 (diff)
chickenPackages.chickenEggs: Preserve version info
Most eggs in the canonical repository don't declare a `version` property in their `.egg` files. This is because it's provided implicitly when using `chicken-install` to retrieve them. Quoting from [the manual](https://wiki.call-cc.org/man/5/Egg%20specification%20format#version): > Eggs from remote egg servers are automatically versioned - the version is part of the protocol to retrieve the egg and does not have to be specified in the .egg file. Since we don't use `chicken-install` to retrieve eggs, this leaves us with a version of "unknown" in most cases, e.g.: $ nix-shell -p chickenPackages.chickenEggs.json-abnf chickenPackages.chicken --run chicken-status abnf ...................................................... version: unknown iset ...................................................... version: unknown json-abnf ................................................. version: unknown lexgen .................................................... version: unknown regex ......................................................... version: 2.0 srfi-1 .................................................... version: unknown srfi-127 .................................................. version: unknown srfi-69 ................................................... version: unknown utf8 ...................................................... version: unknown This is usually not an issue unless another egg declares a minimum required version dependency on an egg with missing version info. In this case, `chicken-install` will fill in "0.0.0" as a fallback and the check will fail. This has so far been worked around patches (see e.g. #346004 or #358455). This patch addresses the root cause by following the documentation's recommendation: > Eggs installed from local directories (see below) should explicitly specify a version. To do that, `eggDerivation` now simply always adds the version to the generated `.egg-info` file. This has the added benefit of correcting potentially inconsistent version declarations in `.egg` files. Note that we cannot patch the original `.egg` file because not all released egg versions match [the stricter version format validation which currently applies there](https://bugs.call-cc.org/ticket/1855). The patch also changes the signature of `eggDerivation` to allow passing in `pname` and `version` instead of `name` to allow for easy access to the egg version. However, for backwards compatibility, the old `name` argument is also still supported. As a result, the aforementioned overrides are removed again and some additional eggs can be marked as unbroken again. And finally, this is the output of the above `chicken-status` call with the patch applied: $ nix-shell -p chickenPackages.chickenEggs.json-abnf chickenPackages.chicken --run chicken-status abnf .......................................................... version: 8.3 iset .......................................................... version: 2.2 json-abnf ..................................................... version: 7.0 lexgen ........................................................ version: 8.2 regex ......................................................... version: 2.0 srfi-1 ...................................................... version: 0.5.1 srfi-127 ...................................................... version: 1.3 srfi-69 ..................................................... version: 0.4.3 utf8 ........................................................ version: 3.6.3
Diffstat (limited to 'pkgs/development/python-modules/python-openstackclient/git@git.tavy.me:nixos')
0 files changed, 0 insertions, 0 deletions