Unverified Commit e4d894be authored by Fabian Affolter's avatar Fabian Affolter Committed by GitHub
Browse files

Merge pull request #218078 from fabaff/conan-bump

conan: 1.53.0 -> 2.0.0 
parents 6d394a58 7ce7852e
Loading
Loading
Loading
Loading
+52 −53
Original line number Diff line number Diff line
{ lib, stdenv, python3, fetchFromGitHub, git, pkg-config }:
{ lib
, stdenv
, fetchFromGitHub
, git
, pkg-config
, python3
, zlib
}:

# Note:
# Conan has specific dependency demands; 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: {
    node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec {
      version = "0.6.1";
      src = oldAttrs.src.override {
        inherit version;
        sha256 = "1dv6mjsm67l1razcgmq66riqmsb36wns17mnipqr610v0z0zf5j0";
      };
    });
    distro = super.distro.overridePythonAttrs (oldAttrs: rec {
      version = "1.5.0";
      src = oldAttrs.src.override {
        inherit version;
        hash = "sha256-Dlh1auOPvY/DAg1UutuOrhfFudy+04ixe7Vbilko35I=";
      };
    });
  };
};

in newPython.pkgs.buildPythonApplication rec {
  version = "1.53.0";
python3.pkgs.buildPythonApplication rec {
  pname = "conan";
  version = "2.0.0";
  format = "setuptools";

  src = fetchFromGitHub {
    owner = "conan-io";
    repo = "conan";
    rev = version;
    hash = "sha256-2DNDNdZO1D30egOiYa3qw8F2xsUTBOm/CHv07v5OrC8=";
    rev = "refs/tags/${version}";
    hash = "sha256-yx/MO5QAVKnGraQXJitXxaZooLtBqa+L04s73DwiE14=";
  };

  propagatedBuildInputs = with newPython.pkgs; [
  propagatedBuildInputs = with python3.pkgs; [
    bottle
    colorama
    python-dateutil
    deprecation
    distro
    fasteners
    future
    jinja2
    node-semver
    patch-ng
    pluginbase
    pygments
@@ -59,33 +33,58 @@ in newPython.pkgs.buildPythonApplication rec {
    pylint # Not in `requirements.txt` but used in hooks, see https://github.com/conan-io/conan/pull/6152
    pyyaml
    requests
    six
    tqdm
    urllib3
  ] ++ lib.optionals stdenv.isDarwin [ idna cryptography pyopenssl ];
  ] ++ lib.optionals stdenv.isDarwin [
    idna
    cryptography
    pyopenssl
  ];

  nativeCheckInputs = [
    pkg-config
    git
  ] ++ (with newPython.pkgs; [
    codecov
    pkg-config
    zlib
  ] ++ (with python3.pkgs; [
    mock
    nose
    parameterized
    pytest-xdist
    pytestCheckHook
    webtest
  ]);

  # TODO: reenable tests now that we fetch tests w/ the source from GitHub.
  # Not enabled right now due to time constraints/failing tests that I didn't have time to track down
  doCheck = false;
  pythonImportsCheck = [
    "conan"
  ];

  pytestFlagsArray = [
    "-n"
    "$NIX_BUILD_CORES"
  ];

  postPatch = ''
    substituteInPlace conans/requirements.txt --replace 'PyYAML>=3.11, <6.0' 'PyYAML>=3.11'
  '';
  disabledTests = [
    # Tests require network access
    "TestFTP"
  ];

  disabledTestPaths = [
    # Requires cmake, meson, autotools, apt-get, etc.
    "conans/test/functional/command/new_test.py"
    "conans/test/functional/command/test_install_deploy.py"
    "conans/test/functional/layout/test_editable_cmake.py"
    "conans/test/functional/layout/test_in_subfolder.py"
    "conans/test/functional/layout/test_source_folder.py"
    "conans/test/functional/toolchains/"
    "conans/test/functional/tools_versions_test.py"
    "conans/test/functional/tools/system/package_manager_test.py"
    "conans/test/functional/util/test_cmd_args_to_string.py"
    "conans/test/unittests/tools/env/test_env_files.py"
  ];

  meta = with lib; {
    homepage = "https://conan.io";
    description = "Decentralized and portable C/C++ package manager";
    homepage = "https://conan.io";
    changelog = "https://github.com/conan-io/conan/releases/tag/${version}";
    license = licenses.mit;
    maintainers = with maintainers; [ HaoZeke ];
  };