diff options
Diffstat (limited to 'pkgs/development/tools/build-managers/conan/default.nix')
-rw-r--r-- | pkgs/development/tools/build-managers/conan/default.nix | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix index 59b1b14ac5fa..5990208b645b 100644 --- a/pkgs/development/tools/build-managers/conan/default.nix +++ b/pkgs/development/tools/build-managers/conan/default.nix @@ -1,5 +1,17 @@ { lib, python3, git, pkgconfig }: +# Note: +# Conan has specific dependency demanands; check +# https://github.com/conan-io/conan/blob/master/conans/requirements.txt +# https://github.com/conan-io/conan/blob/master/conans/requirements_server.txt +# on the release branch/commit we're packaging. +# +# Two approaches are used here to deal with that: +# Pinning the specific versions it wants in `newPython`, +# and using `substituteInPlace conans/requirements.txt ...` +# in `postPatch` to allow newer versions when we know +# (e.g. from changelogs) that they are compatible. + let newPython = python3.override { packageOverrides = self: super: { distro = super.distro.overridePythonAttrs (oldAttrs: rec { @@ -16,20 +28,6 @@ let newPython = python3.override { sha256 = "1dv6mjsm67l1razcgmq66riqmsb36wns17mnipqr610v0z0zf5j0"; }; }); - future = super.future.overridePythonAttrs (oldAttrs: rec { - version = "0.16.0"; - src = oldAttrs.src.override { - inherit version; - sha256 = "1nzy1k4m9966sikp0qka7lirh8sqrsyainyf8rk97db7nwdfv773"; - }; - }); - tqdm = super.tqdm.overridePythonAttrs (oldAttrs: rec { - version = "4.28.1"; - src = oldAttrs.src.override { - inherit version; - sha256 = "1fyybgbmlr8ms32j7h76hz5g9xc6nf0644mwhc40a0s5k14makav"; - }; - }); pluginbase = super.pluginbase.overridePythonAttrs (oldAttrs: rec { version = "0.7"; src = oldAttrs.src.override { @@ -41,18 +39,34 @@ let newPython = python3.override { }; in newPython.pkgs.buildPythonApplication rec { - version = "1.12.3"; + version = "1.23.0"; pname = "conan"; src = newPython.pkgs.fetchPypi { inherit pname version; - sha256 = "1cnfy9b57apps4bfai6r67g0mrvgnqa154z9idv0kf93k1nvx53g"; + sha256 = "06jnmgvzdyxjpcmyj1804mlq6b842jvvbsngsamdy976sqws870g"; }; propagatedBuildInputs = with newPython.pkgs; [ - colorama deprecation distro fasteners bottle - future node-semver patch pygments pluginbase - pyjwt pylint pyyaml requests six tqdm + bottle + colorama + dateutil + deprecation + distro + fasteners + future + jinja2 + node-semver + patch-ng + pluginbase + pygments + pyjwt + pylint # Not in `requirements.txt` but used in hooks, see https://github.com/conan-io/conan/pull/6152 + pyyaml + requests + six + tqdm + urllib3 ]; checkInputs = [ @@ -68,15 +82,13 @@ in newPython.pkgs.buildPythonApplication rec { webtest ]); - checkPhase = '' - export HOME=$TMPDIR - pytest conans/test/{utils,unittests} \ - -k 'not SVN and not ToolsNetTest' - ''; + # Conan 1.14.0 has removed all tests from the Pypi source dist: + # https://github.com/conan-io/conan/pull/4713 + # We have recommended they be added back: + # https://github.com/conan-io/conan/issues/4563#issuecomment-602225083 + doCheck = false; postPatch = '' - substituteInPlace conans/requirements_server.txt \ - --replace "pluginbase>=0.5, < 1.0" "pluginbase>=0.5" substituteInPlace conans/requirements.txt \ --replace "PyYAML>=3.11, <3.14.0" "PyYAML" ''; |