biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / hotdoc / default.nix
blob4f58f961b9f84ba508ce7c49e686630fdf5fc982
1 { lib
2 , stdenv
3 , buildPythonApplication
4 , fetchpatch
5 , fetchPypi
6 , pytestCheckHook
7 , pkg-config
8 , cmake
9 , flex
10 , glib
11 , json-glib
12 , libxml2
13 , appdirs
14 , dbus-deviation
15 , faust-cchardet
16 , feedgen
17 , lxml
18 , networkx
19 , pkgconfig
20 , pyyaml
21 , schema
22 , setuptools
23 , toposort
24 , wheezy-template
25 , llvmPackages
26 , gst_all_1
29 buildPythonApplication rec {
30   pname = "hotdoc";
31   version = "0.15";
32   format = "setuptools";
34   src = fetchPypi {
35     inherit pname version;
36     hash = "sha256-sfQ/iBd1Z+YqnaOg8j32rC2iucdiiK3Tff9NfYFnQyc=";
37   };
39   patches = [
40     (fetchpatch {
41       name = "fix-test-hotdoc.patch";
42       url = "https://github.com/hotdoc/hotdoc/commit/d2415a520e960a7b540742a0695b699be9189540.patch";
43       hash = "sha256-9ORZ91c+/oRqEp2EKXjKkz7u8mLnWCq3uPsc3G4NB9E=";
44     })
45   ];
47   nativeBuildInputs = [
48     pkg-config
49     cmake
50     flex
51   ];
53   buildInputs = [
54     glib
55     json-glib
56     libxml2.dev
57   ];
59   propagatedBuildInputs = [
60     appdirs
61     dbus-deviation
62     faust-cchardet
63     feedgen
64     lxml
65     networkx
66     pkgconfig
67     pyyaml
68     schema
69     setuptools  # for pkg_resources
70     toposort
71     wheezy-template
72   ];
74   nativeCheckInputs = [
75     pytestCheckHook
76   ];
78   # CMake is used to build CMARK, but the build system is still python
79   dontUseCmakeConfigure = true;
81   # Ensure C+GI+GST extensions are built and can be imported
82   pythonImportsCheck = [
83     "hotdoc.extensions.c.c_extension"
84     "hotdoc.extensions.gi.gi_extension"
85     "hotdoc.extensions.gst.gst_extension"
86   ];
88   # Run the tests by package instead of current dir
89   pytestFlagsArray = [ "--pyargs" "hotdoc" ];
91   disabledTests = [
92     # Test does not correctly handle path normalization for test comparison
93     "test_cli_overrides"
94   ] ++ lib.optionals stdenv.isDarwin [
95     # Test does not correctly handle absolute /home paths on Darwin (even fake ones)
96     "test_index"
97   ];
99   # Hardcode libclang paths
100   postPatch = ''
101     substituteInPlace hotdoc/extensions/c/c_extension.py \
102       --replace "shutil.which('llvm-config')" 'True' \
103       --replace "subprocess.check_output(['llvm-config', '--version']).strip().decode()" '"${lib.versions.major llvmPackages.libclang.version}"' \
104       --replace "subprocess.check_output(['llvm-config', '--prefix']).strip().decode()" '"${llvmPackages.libclang.lib}"' \
105       --replace "subprocess.check_output(['llvm-config', '--libdir']).strip().decode()" '"${llvmPackages.libclang.lib}/lib"'
106   '';
108   # Make pytest run from a temp dir to have it pick up installed package for cmark
109   preCheck = ''
110     pushd $TMPDIR
111   '';
112   postCheck = ''
113     popd
114   '';
116   passthru.tests = {
117     inherit (gst_all_1) gstreamer gst-plugins-base;
118   };
120   meta = with lib; {
121     description = "The tastiest API documentation system";
122     homepage = "https://hotdoc.github.io/";
123     license = [ licenses.lgpl21Plus ];
124     maintainers = with maintainers; [ lilyinstarlight ];
125   };