nixpkgs/pkgs/by-name/ar/archivebox/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

105 lines
2.6 KiB
Nix

{ lib
, stdenv
, python3
, fetchFromGitHub
, fetchPypi
, curl
, wget
, git
, ripgrep
, postlight-parser
, readability-extractor
, chromium
, yt-dlp
}:
let
python = python3.override {
self = python;
packageOverrides = self: super: {
django = super.django_3.overridePythonAttrs (old: rec {
version = "3.1.14";
src = old.src.override {
inherit version;
hash = "sha256-cqSloTaiFMOc8BbM3Wtp4qoIx0ecZtk/OpteS7nYo0c=";
};
meta = old.meta // {
knownVulnerabilities = [
"CVE-2021-45115"
"CVE-2021-45116"
"CVE-2021-45452"
"CVE-2022-23833"
"CVE-2022-22818"
"CVE-2022-28347"
"CVE-2022-28346"
];
};
});
django-extensions = super.django-extensions.overridePythonAttrs (old: rec {
version = "3.1.5";
src = fetchFromGitHub {
inherit version;
owner = "django-extensions";
repo = "django-extensions";
rev = "e43f383dae3a35237e42f6acfe1207a8e7e7bdf5";
hash = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM=";
};
# possibly a real issue, but that version is not supported anymore
doCheck = false;
});
};
};
in
python.pkgs.buildPythonApplication rec {
pname = "archivebox";
version = "0.7.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-hdBUEX2tOWN2b11w6aG3x7MP7KQTj4Rwc2w8XvABGf4=";
};
nativeBuildInputs = with python.pkgs; [
pdm-backend
];
propagatedBuildInputs = with python.pkgs; [
croniter
dateparser
django
django-extensions
ipython
mypy-extensions
python-crontab
requests
w3lib
yt-dlp
];
makeWrapperArgs = [
"--set USE_NODE True" # used through dependencies, not needed explicitly
"--set READABILITY_BINARY ${lib.meta.getExe readability-extractor}"
"--set MERCURY_BINARY ${lib.meta.getExe postlight-parser}"
"--set CURL_BINARY ${lib.meta.getExe curl}"
"--set RIPGREP_BINARY ${lib.meta.getExe ripgrep}"
"--set WGET_BINARY ${lib.meta.getExe wget}"
"--set GIT_BINARY ${lib.meta.getExe git}"
"--set YOUTUBEDL_BINARY ${lib.meta.getExe yt-dlp}"
] ++ (if (lib.meta.availableOn stdenv.hostPlatform chromium) then [
"--set CHROME_BINARY ${chromium}/bin/chromium-browser"
] else [
"--set-default USE_CHROME False"
]);
meta = with lib; {
description = "Open source self-hosted web archiving";
homepage = "https://archivebox.io";
license = licenses.mit;
maintainers = with maintainers; [ siraben viraptor ];
platforms = platforms.unix;
};
}