nixpkgs/pkgs/by-name/yt/yt-dlg/package.nix
adisbladis e0816431a2 treewide: Pass self when overriding Python
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.
2024-08-03 12:18:56 +12:00

59 lines
1.3 KiB
Nix

{
lib,
python3,
fetchFromGitHub,
fetchPypi
}:
let
python3' =
(python3.override {
packageOverrides = final: prev: {
wxpython = prev.wxpython.overrideAttrs rec {
version = "4.2.0";
src = fetchPypi {
pname = "wxPython";
inherit version;
hash = "sha256-ZjzrxFCdfl0RNRiGX+J093+VQ0xdV7w4btWNZc7thsc=";
};
};
};
});
python3Packages = python3'.pkgs;
in
python3Packages.buildPythonApplication rec {
pname = "yt-dlg";
version = "1.8.5";
src = fetchFromGitHub {
owner = "oleksis";
repo = "youtube-dl-gui";
rev = "v${version}";
hash = "sha256-W1ZlArmM+Ro5MF/rB88me/PD79dJA4v188mPbMd8Kow=";
};
pyproject = true;
build-system = with python3Packages; [
setuptools
wheel
];
dependencies = with python3Packages; [
pypubsub
wxpython
];
postInstall = ''
install -Dm444 yt-dlg.desktop -t $out/share/applications
cp -r youtube_dl_gui/data/* $out/share
'';
meta = {
description = "Cross platform front-end GUI of the popular youtube-dl written in wxPython";
homepage = "https://oleksis.github.io/youtube-dl-gui";
license = lib.licenses.unlicense;
mainProgram = "yt-dlg";
maintainers = with lib.maintainers; [ quantenzitrone ];
};
}