From 3a158da8e82f13a0e9108767f118be7579f27248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 22 Mar 2020 15:45:49 +0100 Subject: [PATCH 1/4] conan: Reformat inputs list --- .../tools/build-managers/conan/default.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix index 59b1b14ac5f..281945dd02b 100644 --- a/pkgs/development/tools/build-managers/conan/default.nix +++ b/pkgs/development/tools/build-managers/conan/default.nix @@ -50,9 +50,22 @@ in newPython.pkgs.buildPythonApplication rec { }; propagatedBuildInputs = with newPython.pkgs; [ - colorama deprecation distro fasteners bottle - future node-semver patch pygments pluginbase - pyjwt pylint pyyaml requests six tqdm + bottle + colorama + deprecation + distro + fasteners + future + node-semver + patch + pluginbase + pygments + pyjwt + pylint + pyyaml + requests + six + tqdm ]; checkInputs = [ From 03d5611ae0dbd43b1738b0a266499f17ff566fbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 22 Mar 2020 16:03:44 +0100 Subject: [PATCH 2/4] conan: Remove unnecessary patching. The pluginbase dependency is now pinned further up with commit 244fcfc8 - conan: pin pluginbase to 0.7 --- pkgs/development/tools/build-managers/conan/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix index 281945dd02b..c216efc0f52 100644 --- a/pkgs/development/tools/build-managers/conan/default.nix +++ b/pkgs/development/tools/build-managers/conan/default.nix @@ -88,8 +88,6 @@ in newPython.pkgs.buildPythonApplication rec { ''; 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" ''; From 3e60781f53e36f2fcc61ca63c133cfe3bb440aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 22 Mar 2020 16:33:40 +0100 Subject: [PATCH 3/4] pythonPackages.patch-ng: Init at 1.17.2. Newer versions of `conan` need it. Adding @HaoZeke as maintainer (is Conan maintainer). --- .../python-modules/patch-ng/default.nix | 22 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/development/python-modules/patch-ng/default.nix diff --git a/pkgs/development/python-modules/patch-ng/default.nix b/pkgs/development/python-modules/patch-ng/default.nix new file mode 100644 index 00000000000..726df160929 --- /dev/null +++ b/pkgs/development/python-modules/patch-ng/default.nix @@ -0,0 +1,22 @@ +{ stdenv +, buildPythonPackage +, fetchurl +}: + +buildPythonPackage rec { + version = "1.17.2"; # note: `conan` package may require a hardcoded one + pname = "patch-ng"; + + src = fetchurl { + url = "mirror://pypi/p/${pname}/${pname}-${version}.tar.gz"; + sha256 = "02nadk70sk51liv0qav88kx8rzfdjc1x52023zayanz44kkcjl2i"; + }; + + meta = with stdenv.lib; { + description = "Library to parse and apply unified diffs."; + homepage = "https://github.com/conan-io/python-patch"; + license = licenses.mit; + maintainers = with maintainers; [ HaoZeke ]; + }; + +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f23f961e241..8833c1b9b7c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4764,6 +4764,8 @@ in { patch = callPackage ../development/python-modules/patch { }; + patch-ng = callPackage ../development/python-modules/patch-ng { }; + pathos = callPackage ../development/python-modules/pathos { }; patsy = callPackage ../development/python-modules/patsy { }; From f460e62d9b367a0bfd71148ef34f44421d0e82cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Sun, 22 Mar 2020 16:34:55 +0100 Subject: [PATCH 4/4] conan: 1.12.3 -> 1.23.0 * remove pinned dependencies where nixpkgs provides a version in the acceptable range * disable tests; they are no longer in the Pypi archive, see https://github.com/conan-io/conan/issues/4563 --- .../tools/build-managers/conan/default.nix | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix index c216efc0f52..5990208b645 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,31 +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; [ bottle colorama + dateutil deprecation distro fasteners future + jinja2 node-semver - patch + patch-ng pluginbase pygments pyjwt - pylint + pylint # Not in `requirements.txt` but used in hooks, see https://github.com/conan-io/conan/pull/6152 pyyaml requests six tqdm + urllib3 ]; checkInputs = [ @@ -81,11 +82,11 @@ 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.txt \