lol
1{ lib
2, stdenv
3, fetchFromGitHub
4, python3
5, gettext
6}:
7
8python3.pkgs.buildPythonApplication rec {
9 pname = "linkchecker";
10 version = "10.2.1";
11 format = "pyproject";
12
13 src = fetchFromGitHub {
14 owner = pname;
15 repo = pname;
16 rev = "refs/tags/v${version}";
17 hash = "sha256-z7Qp74cai8GfsxB4n9dSCWQepp0/4PimFiRJQBaVSoo=";
18 };
19
20 SETUPTOOLS_SCM_PRETEND_VERSION = version;
21
22 nativeBuildInputs = [
23 gettext
24 ];
25
26 propagatedBuildInputs = with python3.pkgs; [
27 argcomplete
28 beautifulsoup4
29 configargparse
30 dnspython
31 hatch-vcs
32 hatchling
33 pyopenssl
34 requests
35 ];
36
37 nativeCheckInputs = with python3.pkgs; [
38 parameterized
39 pytestCheckHook
40 ];
41
42 disabledTests = [
43 # test_timeit2 is flakey, and depends sleep being precise to the milisecond
44 "TestLoginUrl"
45 "test_timeit2"
46 ];
47
48 disabledTestPaths = [
49 "tests/checker/telnetserver.py"
50 "tests/checker/test_telnet.py"
51 ] ++ lib.optionals stdenv.isDarwin [
52 "tests/checker/test_content_allows_robots.py"
53 "tests/checker/test_http*.py"
54 "tests/test_network.py"
55 ];
56
57 meta = with lib; {
58 description = "Check websites for broken links";
59 homepage = "https://linkcheck.github.io/linkchecker/";
60 changelog = "https://github.com/linkchecker/linkchecker/releases/tag/v${version}";
61 license = licenses.gpl2Plus;
62 maintainers = with maintainers; [ peterhoeg tweber ];
63 };
64}