nixpkgs/pkgs/development/python-modules/jinja2/default.nix
Maximilian Bosch cd72014a87 python3.pkgs.jinja2: don't build offline documentation by default
E.g. `systemd` fails like this:

    last 25 log lines:
    > Checking for function "blkid_probe_set_hint" with dependency blkid: YES
    > Run-time dependency libkmod found: YES 30
    > Run-time dependency xencontrol found: NO (tried pkgconfig and cmake)
    > Run-time dependency libmicrohttpd found: NO (tried pkgconfig and cmake)
    > Checking for function "crypt_activate_by_token_pin" : NO
    > Run-time dependency libiptc found: NO (tried pkgconfig and cmake)
    > Run-time dependency libqrencode found: NO (tried pkgconfig and cmake)
    > Run-time dependency gnutls found: NO (tried pkgconfig and cmake)
    > Run-time dependency openssl found: NO (tried pkgconfig, system and cmake)
    > Run-time dependency p11-kit-1 found: NO (tried pkgconfig and cmake)
    > Run-time dependency tss2-esys tss2-rc tss2-mu found: NO (tried pkgconfig and cmake)
    > Run-time dependency libdw found: NO (tried pkgconfig and cmake)
    > Run-time dependency zlib found: NO (tried pkgconfig, cmake and system)
    > Library bz2 found: NO
    > Run-time dependency liblzma found: NO (tried pkgconfig and cmake)
    > Run-time dependency libzstd found: NO (tried pkgconfig and cmake)
    > Run-time dependency xkbcommon found: NO (tried pkgconfig and cmake)
    > Run-time dependency libpcre2-8 found: NO (tried pkgconfig and cmake)
    > Run-time dependency dbus-1 found: NO (tried pkgconfig and cmake)
    > Message: default-dnssec cannot be set to yes or allow-downgrade openssl and gcrypt are disabled. Setting default-dnssec to no.
    > Program python3 (jinja2) found: NO
    >
    > meson.build:1949:15: ERROR: python3 is missing modules: jinja2

Upon trying more packages I realized that this is not the only one (it
appears to be related to `python3.withPackages` in some cases).

For now, flip the default to unbreak a lot of stuff and remove the
`enableDocumentation = false;` hacks from a bunch of other packages.
2023-04-30 08:51:32 -04:00

70 lines
1.7 KiB
Nix

{ lib
, stdenv
, buildPythonPackage
, pythonOlder
, fetchPypi
, babel
, markupsafe
, pytestCheckHook
, sphinxHook
, pallets-sphinx-themes
, sphinxcontrib-log-cabinet
, sphinx-issues
, enableDocumentation ? false
}:
buildPythonPackage rec {
pname = "Jinja2";
version = "3.1.2";
outputs = [ "out" ] ++ lib.optional enableDocumentation "doc";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-MTUacCpAip51laj8YVD8P0O7a/fjGXcMvA2535Q36FI=";
};
patches = lib.optionals enableDocumentation [ ./patches/import-order.patch ];
propagatedBuildInputs = [
babel
markupsafe
];
nativeBuildInputs = lib.optionals enableDocumentation [
sphinxHook
sphinxcontrib-log-cabinet
pallets-sphinx-themes
sphinx-issues
];
# Multiple tests run out of stack space on 32bit systems with python2.
# See https://github.com/pallets/jinja/issues/1158
doCheck = !stdenv.is32bit;
nativeCheckInputs = [
pytestCheckHook
];
pytestFlagsArray = [
# Avoid failure due to deprecation warning
# Fixed in https://github.com/python/cpython/pull/28153
# Remove after cpython 3.9.8
"-p no:warnings"
];
meta = with lib; {
homepage = "https://jinja.palletsprojects.com/";
description = "Stand-alone template engine";
license = licenses.bsd3;
longDescription = ''
Jinja is a fast, expressive, extensible templating engine. Special
placeholders in the template allow writing code similar to Python
syntax. Then the template is passed data to render the final document.
an optional sandboxed environment.
'';
maintainers = with maintainers; [ pierron ];
};
}