diff --git a/pkgs/applications/version-management/guitone/default.nix b/pkgs/applications/version-management/guitone/default.nix deleted file mode 100644 index d78023d8468f..000000000000 --- a/pkgs/applications/version-management/guitone/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchmtn, qt4, qmake4Hook, pkg-config, graphviz }: - -let version = "1.0-mtn-head"; in -stdenv.mkDerivation { - pname = "guitone"; - inherit version; - - #src = fetchurl { - # url = "${meta.homepage}/count.php/from=default/${version}/${name}.tgz"; - # sha256 = "08kcyar6p6v5z4dq6q6c1dhyxc2jj49qcd6lj3rdn1rb9hz4n7ms"; - #}; - - src = fetchmtn { - dbs = ["mtn://code.monotone.ca/guitone"]; - selector = "3a728afdbd3943b1d86c2a249b1e2ede7bf64c27"; - sha256 = "01vs8m00phs5pl75mjkpdarynfpkqrg0qf4rsn95czi3q6nxiaq5"; - branch = "net.venge.monotone.guitone"; - }; - - patches = [ ./parallel-building.patch ]; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ qt4 qmake4Hook graphviz ]; - - qmakeFlags = [ "guitone.pro" ]; - - meta = { - description = "Qt4 based GUI for monotone"; - homepage = "https://guitone.thomaskeller.biz"; - downloadPage = "https://code.monotone.ca/p/guitone/"; - license = lib.licenses.gpl3; - inherit (qt4.meta) platforms; - }; -} diff --git a/pkgs/applications/version-management/guitone/parallel-building.patch b/pkgs/applications/version-management/guitone/parallel-building.patch deleted file mode 100644 index f0e924cbfb81..000000000000 --- a/pkgs/applications/version-management/guitone/parallel-building.patch +++ /dev/null @@ -1,7 +0,0 @@ -Without this `make tmp/AttributesView.o` fails with -src/view/dialogs/AddEditAttribute.h:22:35: fatal error: ui_add_edit_attribute.h: No such file or directory ---- a/guitone.pro -+++ b/guitone.pro -@@ -215 +215,2 @@ help.commands = @echo Available targets: $${QMAKE_EXTRA_TARGETS} - QMAKE_EXTRA_TARGETS += help -+CONFIG += depend_includepath diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix index 55513031fcf6..1caf183fef80 100644 --- a/pkgs/development/python-modules/aiohomekit/default.nix +++ b/pkgs/development/python-modules/aiohomekit/default.nix @@ -6,19 +6,22 @@ , poetry-core , pytest-aiohttp , pytestCheckHook +, pythonOlder , zeroconf }: buildPythonPackage rec { pname = "aiohomekit"; - version = "0.6.3"; + version = "0.6.4"; format = "pyproject"; + disabled = pythonOlder "3.7"; + src = fetchFromGitHub { owner = "Jc2k"; repo = pname; rev = version; - sha256 = "sha256-XBinbhYUB9BuQxxmWfZUw276uNam4DgBpiCAjT7KDlg="; + sha256 = "sha256-+W1nsJsiVL4hjtNUyKOsQNyX0Bki/C1FvmoD2OCwqeM="; }; nativeBuildInputs = [ @@ -41,7 +44,9 @@ buildPythonPackage rec { "tests/test_ip_pairing.py" ]; - pythonImportsCheck = [ "aiohomekit" ]; + pythonImportsCheck = [ + "aiohomekit" + ]; meta = with lib; { description = "Python module that implements the HomeKit protocol"; diff --git a/pkgs/development/python-modules/airthings-cloud/default.nix b/pkgs/development/python-modules/airthings-cloud/default.nix index ca80f38c899d..8315847683d0 100644 --- a/pkgs/development/python-modules/airthings-cloud/default.nix +++ b/pkgs/development/python-modules/airthings-cloud/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "airthings-cloud"; - version = "0.0.1"; + version = "0.1.0"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "Danielhiversen"; repo = "pyAirthings"; rev = version; - sha256 = "08cbysx5p9k8hzr6sdykx91j0gx8x15b8807338dsl3qx8nhfb8j"; + sha256 = "sha256-sqHNK6biSWso4uOYimzU7PkEn0uP5sHAaPGsS2vSMNY="; }; propagatedBuildInputs = [ @@ -28,7 +28,9 @@ buildPythonPackage rec { # Project has no tests doCheck = false; - pythonImportsCheck = [ "airthings" ]; + pythonImportsCheck = [ + "airthings" + ]; meta = with lib; { description = "Python module for Airthings"; diff --git a/pkgs/development/python-modules/hatasmota/default.nix b/pkgs/development/python-modules/hatasmota/default.nix index e746c4c24850..6bb6e460f554 100644 --- a/pkgs/development/python-modules/hatasmota/default.nix +++ b/pkgs/development/python-modules/hatasmota/default.nix @@ -3,17 +3,21 @@ , buildPythonPackage , fetchFromGitHub , voluptuous +, pythonOlder }: buildPythonPackage rec { pname = "hatasmota"; - version = "0.2.21"; + version = "0.3.0"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "emontnemery"; repo = pname; rev = version; - sha256 = "sha256-mtn/r6pvHeGMLkvUP4w6CT+2+viLna4Vvn9RFMEmqts="; + sha256 = "sha256-KPFnlw6rk+jDKs8Ss/34lIt0MsAQGernCyyF1ImRylA="; }; propagatedBuildInputs = [ @@ -24,7 +28,9 @@ buildPythonPackage rec { # Project has no tests doCheck = false; - pythonImportsCheck = [ "hatasmota" ]; + pythonImportsCheck = [ + "hatasmota" + ]; meta = with lib; { description = "Python module to help parse and construct Tasmota MQTT messages"; diff --git a/pkgs/development/python-modules/luftdaten/default.nix b/pkgs/development/python-modules/luftdaten/default.nix index 71daa4bdbfa4..c8ca8254b363 100644 --- a/pkgs/development/python-modules/luftdaten/default.nix +++ b/pkgs/development/python-modules/luftdaten/default.nix @@ -1,20 +1,41 @@ -{ lib, buildPythonPackage, isPy3k, fetchPypi, aiohttp, async-timeout }: +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, poetry-core +, httpx +, pytest-asyncio +, pytest-httpx +, pytestCheckHook +}: buildPythonPackage rec { pname = "luftdaten"; - version = "0.6.5"; + version = "0.7.1"; + format = "pyproject"; - disabled = !isPy3k; + disabled = pythonOlder "3.8"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-5SFb+psULyg9UKVY3oJPNLF3TGS/W+Bxoj79iTzReL4="; + src = fetchFromGitHub { + owner = "home-assistant-ecosystem"; + repo = "python-luftdaten"; + rev = version; + sha256 = "sha256-76Y5TJet0WtzYXuK8Og0rmpsUIlXK7b37oesh+MliU8="; }; - propagatedBuildInputs = [ aiohttp async-timeout ]; + nativeBuildInputs = [ + poetry-core + ]; - # No tests implemented - doCheck = false; + propagatedBuildInputs = [ + httpx + ]; + + checkInputs = [ + pytest-asyncio + pytest-httpx + pytestCheckHook + ]; pythonImportsCheck = [ "luftdaten" ]; @@ -22,6 +43,6 @@ buildPythonPackage rec { description = "Python API for interacting with luftdaten.info"; homepage = "https://github.com/home-assistant-ecosystem/python-luftdaten"; license = licenses.mit; - maintainers = with maintainers; [ dotlambda ]; + maintainers = with maintainers; [ dotlambda fab ]; }; } diff --git a/pkgs/development/python-modules/mypy-boto3-s3/default.nix b/pkgs/development/python-modules/mypy-boto3-s3/default.nix index c45ccaca013d..426d0e6942d6 100644 --- a/pkgs/development/python-modules/mypy-boto3-s3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3-s3/default.nix @@ -8,13 +8,13 @@ buildPythonPackage rec { pname = "mypy-boto3-s3"; - version = "1.20.1"; + version = "1.20.12"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "sha256-RnWlDiXol074gikg8i449rx4ENG7Ac7kz9lMi12rkuw="; + sha256 = "sha256-J0EqIMSQEvev8sZ1XLgxPD68xlgPtlRTW/yBPyrekFQ="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix index ca8af15b53ee..2534ebcedf91 100644 --- a/pkgs/development/python-modules/plugwise/default.nix +++ b/pkgs/development/python-modules/plugwise/default.nix @@ -19,13 +19,14 @@ buildPythonPackage rec { pname = "plugwise"; - version = "0.14.5"; + version = "0.15.2"; + format = "setuptools"; src = fetchFromGitHub { owner = pname; repo = "python-plugwise"; rev = "v${version}"; - sha256 = "1kwks87raxs04dvnpmpn8l1cbzg5yb5nyinaqzxdsc6al83isbik"; + sha256 = "sha256-VmLQ3L9FTHgdRPYmMg7ZoUApLEGKd5NANrSofhP1OQY="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix index 7b14497fce14..f4b244b5ea67 100644 --- a/pkgs/development/python-modules/pychromecast/default.nix +++ b/pkgs/development/python-modules/pychromecast/default.nix @@ -1,27 +1,45 @@ -{ lib, fetchPypi, buildPythonPackage, requests, zeroconf, protobuf, casttube, isPy3k }: +{ lib +, buildPythonPackage +, casttube +, fetchPypi +, isPy3k +, protobuf +, requests +, zeroconf +}: buildPythonPackage rec { - pname = "PyChromecast"; - version = "9.3.1"; - - src = fetchPypi { - inherit pname version; - sha256 = "a1d6807ae0fc455aaeecd2def87c31bb86679a2920cacfa7910db9c9db5085d4"; - }; + pname = "pychromecast"; + version = "10.1.1"; + format = "setuptools"; disabled = !isPy3k; - propagatedBuildInputs = [ requests zeroconf protobuf casttube ]; + src = fetchPypi { + pname = "PyChromecast"; + inherit version; + sha256 = "sha256-M6R9VRrotvkxKVZIKOcuf03LJsn4gSMohwzzAO5FQ48="; + }; + + propagatedBuildInputs = [ + casttube + protobuf + requests + zeroconf + ]; # no tests available doCheck = false; - pythonImportsCheck = [ "pychromecast" ]; + + pythonImportsCheck = [ + "pychromecast" + ]; meta = with lib; { description = "Library for Python to communicate with the Google Chromecast"; - homepage = "https://github.com/home-assistant-libs/pychromecast"; - license = licenses.mit; + homepage = "https://github.com/home-assistant-libs/pychromecast"; + license = licenses.mit; maintainers = with maintainers; [ abbradar ]; - platforms = platforms.unix; + platforms = platforms.unix; }; } diff --git a/pkgs/development/python-modules/pycocotools/default.nix b/pkgs/development/python-modules/pycocotools/default.nix index a6cdf877a07b..fa75d02c6101 100644 --- a/pkgs/development/python-modules/pycocotools/default.nix +++ b/pkgs/development/python-modules/pycocotools/default.nix @@ -7,12 +7,12 @@ buildPythonPackage rec { pname = "pycocotools"; - version = "2.0.2"; + version = "2.0.3"; format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "06hz0iz4kqxhqby4j7bah8l41kg68bb118jawp172i4vg497lw94"; + sha256 = "sha256-OCkCSTABN3EVZSGkuNtLOu9ZBVbPo6jdP6sCfTmyFeE="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix index fa6009b8eb76..cf2325633fba 100644 --- a/pkgs/development/python-modules/pysma/default.nix +++ b/pkgs/development/python-modules/pysma/default.nix @@ -4,28 +4,33 @@ , buildPythonPackage , fetchPypi , jmespath -, async-timeout +, pythonOlder }: buildPythonPackage rec { pname = "pysma"; - version = "0.6.8"; + version = "0.6.9"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - sha256 = "9490d72596db64d339aefee56940e058fddb52c2f0f5d5cce3c39ef94f39dbb9"; + sha256 = "sha256-2ZU3UjDNo+fpnYK4WlYSu7XqkbpcK7Xz5cUKDABhwdk="; }; propagatedBuildInputs = [ aiohttp - async-timeout attrs jmespath ]; # pypi does not contain tests and GitHub archive not available doCheck = false; - pythonImportsCheck = [ "pysma" ]; + + pythonImportsCheck = [ + "pysma" + ]; meta = with lib; { description = "Python library for interacting with SMA Solar's WebConnect"; diff --git a/pkgs/development/python-modules/pysmartthings/default.nix b/pkgs/development/python-modules/pysmartthings/default.nix index e8a295c319c4..8e97570a2c78 100644 --- a/pkgs/development/python-modules/pysmartthings/default.nix +++ b/pkgs/development/python-modules/pysmartthings/default.nix @@ -4,17 +4,21 @@ , fetchFromGitHub , pytest-asyncio , pytestCheckHook +, pythonOlder }: buildPythonPackage rec { pname = "pysmartthings"; - version = "0.7.6"; + version = "0.7.7"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "andrewsayre"; repo = pname; rev = version; - sha256 = "0m91lfzdbmq6qv6bihd278psi9ghldxpa1d0dsbii2zf338188qj"; + sha256 = "sha256-AzAiMn88tRRPwMpwSnKoS1XUERHbKz0sVm/TjcbTsGs="; }; propagatedBuildInputs = [ @@ -26,7 +30,14 @@ buildPythonPackage rec { pytestCheckHook ]; - pythonImportsCheck = [ "pysmartthings" ]; + postPatch = '' + substituteInPlace setup.py \ + --replace "aiohttp>=3.8.0,<4.0.0" "aiohttp<=4.0.0" + ''; + + pythonImportsCheck = [ + "pysmartthings" + ]; meta = with lib; { description = "Python library for interacting with the SmartThings cloud API"; diff --git a/pkgs/development/python-modules/pythonegardia/default.nix b/pkgs/development/python-modules/pythonegardia/default.nix index 318059d2466f..7ce66f221fb2 100644 --- a/pkgs/development/python-modules/pythonegardia/default.nix +++ b/pkgs/development/python-modules/pythonegardia/default.nix @@ -1,25 +1,44 @@ { lib , buildPythonPackage -, fetchPypi +, fetchFromGitHub +, fetchpatch , requests +, pythonOlder }: buildPythonPackage rec { pname = "pythonegardia"; version = "1.0.51"; + format = "setuptools"; - src = fetchPypi { - inherit pname version; - sha256 = "b99217e34c59bfae059db400acef99d3d32237d13da6fdce9e0d4decc9a07e61"; + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "jeroenterheerdt"; + repo = "python-egardia"; + rev = "v${version}"; + sha256 = "7HindS++jcV3GRn/SKoTMpVOchOnLojy/TY0HZjtyD8="; }; propagatedBuildInputs = [ requests ]; + patches = [ + # Adjust search path, https://github.com/jeroenterheerdt/python-egardia/pull/33 + (fetchpatch { + name = "search-path.patch"; + url = "https://github.com/jeroenterheerdt/python-egardia/commit/6b7bf5b7b2211e3557e0f438586b9d03b9bae440.patch"; + sha256 = "wUSfmF0SrKCITQJJsHgkGgPZFouaB/zbVqupK6fARHY="; + }) + ]; + # Project has no tests, only two test file for manual interaction doCheck = false; - pythonImportsCheck = [ "pythonegardia" ]; + + pythonImportsCheck = [ + "pythonegardia" + ]; meta = with lib; { description = "Python interface with Egardia/Woonveilig alarms"; diff --git a/pkgs/development/python-modules/requests-cache/default.nix b/pkgs/development/python-modules/requests-cache/default.nix index ca6cb7d23075..21732ed3a956 100644 --- a/pkgs/development/python-modules/requests-cache/default.nix +++ b/pkgs/development/python-modules/requests-cache/default.nix @@ -55,10 +55,19 @@ buildPythonPackage rec { timeout-decorator ]; - # Integration tests require local DBs - pytestFlagsArray = [ "tests/unit" ]; + pytestFlagsArray = [ + # Integration tests require local DBs + "tests/unit" + ]; - pythonImportsCheck = [ "requests_cache" ]; + disabledTests = [ + # Tests are flaky in the sandbox + "test_remove_expired_responses" + ]; + + pythonImportsCheck = [ + "requests_cache" + ]; meta = with lib; { description = "Persistent cache for requests library"; diff --git a/pkgs/development/python-modules/screenlogicpy/default.nix b/pkgs/development/python-modules/screenlogicpy/default.nix index 1032f6256bb6..c8663478d882 100644 --- a/pkgs/development/python-modules/screenlogicpy/default.nix +++ b/pkgs/development/python-modules/screenlogicpy/default.nix @@ -7,14 +7,16 @@ buildPythonPackage rec { pname = "screenlogicpy"; - version = "0.4.3"; + version = "0.5.0"; + format = "setuptools"; + disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "dieselrabbit"; repo = pname; rev = "v${version}"; - sha256 = "0v0nbwz0w2m7kzvcl0fh2v2rk5ldsq22siyxq6d401pkpzwih25c"; + sha256 = "sha256-ApT89JcXrRKr+YnyEPAG3enwrfgYn7LeUmBbbmh/DPI="; }; checkInputs = [ @@ -24,10 +26,15 @@ buildPythonPackage rec { disabledTests = [ # Tests require network access "test_gateway_discovery" + "test_async_discovery" + "test_gateway" + "test_async" "test_asyncio_gateway_discovery" ]; - pythonImportsCheck = [ "screenlogicpy" ]; + pythonImportsCheck = [ + "screenlogicpy" + ]; meta = with lib; { description = "Python interface for Pentair Screenlogic devices"; diff --git a/pkgs/development/python-modules/seaborn/default.nix b/pkgs/development/python-modules/seaborn/default.nix index a57acebb4ad2..d1095b199972 100644 --- a/pkgs/development/python-modules/seaborn/default.nix +++ b/pkgs/development/python-modules/seaborn/default.nix @@ -1,15 +1,19 @@ { lib , buildPythonPackage -, pythonOlder , fetchPypi -, nose -, pandas , matplotlib +, pytestCheckHook +, numpy +, pandas +, pythonOlder +, scipy }: buildPythonPackage rec { pname = "seaborn"; version = "0.11.2"; + format = "setuptools"; + disabled = pythonOlder "3.6"; src = fetchPypi { @@ -17,16 +21,20 @@ buildPythonPackage rec { sha256 = "cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6"; }; - checkInputs = [ nose ]; - propagatedBuildInputs = [ pandas matplotlib ]; + propagatedBuildInputs = [ + matplotlib + numpy + pandas + scipy + ]; - checkPhase = '' - nosetests -v - ''; + checkInputs = [ + pytestCheckHook + ]; - # Computationally very demanding tests - doCheck = false; - pythonImportsCheck= [ "seaborn" ]; + pythonImportsCheck= [ + "seaborn" + ]; meta = { description = "Statisitical data visualization"; diff --git a/pkgs/development/python-modules/simplisafe-python/default.nix b/pkgs/development/python-modules/simplisafe-python/default.nix index 624b63ada618..27c68dcab3e6 100644 --- a/pkgs/development/python-modules/simplisafe-python/default.nix +++ b/pkgs/development/python-modules/simplisafe-python/default.nix @@ -4,6 +4,7 @@ , asynctest , backoff , buildPythonPackage +, docutils , fetchFromGitHub , poetry-core , pytest-aiohttp @@ -18,22 +19,26 @@ buildPythonPackage rec { pname = "simplisafe-python"; - version = "2021.10.0"; + version = "2021.11.2"; format = "pyproject"; - disabled = pythonOlder "3.7"; + + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "bachya"; repo = pname; rev = version; - sha256 = "sha256-J0uMlczR7y5wDchaOjp5d3Vf36WfRmt7d51koGiNHBk="; + sha256 = "sha256-5X2qvrACV9OTVYSZYxFncFOgrgywKvVDbC6IVFnJBtw="; }; - nativeBuildInputs = [ poetry-core ]; + nativeBuildInputs = [ + poetry-core + ]; propagatedBuildInputs = [ aiohttp backoff + docutils pytz types-pytz voluptuous @@ -48,15 +53,25 @@ buildPythonPackage rec { pytestCheckHook ]; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace 'docutils = "<0.18"' 'docutils = "*"' + ''; + disabledTests = [ # simplipy/api.py:253: InvalidCredentialsError "test_request_error_failed_retry" "test_update_error" ]; - disabledTestPaths = [ "examples/" ]; + disabledTestPaths = [ + # Ignore the examples as they are prefixed with test_ + "examples/" + ]; - pythonImportsCheck = [ "simplipy" ]; + pythonImportsCheck = [ + "simplipy" + ]; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/tensorflow-estimator/default.nix b/pkgs/development/python-modules/tensorflow-estimator/default.nix index dd3b4641beaf..5ad6d0ab6e55 100644 --- a/pkgs/development/python-modules/tensorflow-estimator/default.nix +++ b/pkgs/development/python-modules/tensorflow-estimator/default.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "tensorflow-estimator"; - version = "2.4.0"; + version = "2.7.0"; format = "wheel"; src = fetchPypi { pname = "tensorflow_estimator"; inherit version format; - sha256 = "1w0pkcslm6934qqd6m5gxyjdlnb4pbl47k6s99wsh6dyvvr7nysv"; + hash = "sha256-MltaIkhkN5JCt7dsaYfKVEI5voJXnTPmjsfCvaV6vJ0="; }; propagatedBuildInputs = [ mock numpy absl-py ]; diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix index c14a90e0953e..c57147c8ff7f 100644 --- a/pkgs/development/python-modules/tensorflow/bin.nix +++ b/pkgs/development/python-modules/tensorflow/bin.nix @@ -42,15 +42,11 @@ assert ! (stdenv.isDarwin && cudaSupport); let packages = import ./binary-hashes.nix; - metadataPatch = ./relax-dependencies-metadata.patch; - patch = ./relax-dependencies.patch; in buildPythonPackage { pname = "tensorflow" + lib.optionalString cudaSupport "-gpu"; inherit (packages) version; format = "wheel"; - disabled = pythonAtLeast "3.9"; - src = let pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion; platform = if stdenv.isDarwin then "mac" else "linux"; @@ -93,13 +89,18 @@ in buildPythonPackage { pushd dist wheel unpack --dest unpacked ./*.whl + rm ./*.whl ( cd unpacked/tensorflow* - # relax too strict versions in setup.py - patch -p 1 < ${patch} - cd *.dist-info - # relax too strict versions in *.dist-info/METADATA - patch -p 3 < ${metadataPatch} + # Adjust dependency requirements: + # - Relax gast version requirement that doesn't match what we have packaged + # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet + # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now. + sed -i *.dist-info/METADATA \ + -e "s/Requires-Dist: gast.*/Requires-Dist: gast/" \ + -e "/Requires-Dist: libclang/d" \ + -e "/Requires-Dist: keras/d" \ + -e "/Requires-Dist: tensorflow-io-gcs-filesystem/d" ) wheel pack ./unpacked/tensorflow* diff --git a/pkgs/development/python-modules/tensorflow/binary-hashes.nix b/pkgs/development/python-modules/tensorflow/binary-hashes.nix index 4485e2b61451..4b2f9d528407 100644 --- a/pkgs/development/python-modules/tensorflow/binary-hashes.nix +++ b/pkgs/development/python-modules/tensorflow/binary-hashes.nix @@ -1,39 +1,39 @@ { -version = "2.4.0"; -linux_py_36_cpu = { - url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp36-cp36m-manylinux2010_x86_64.whl"; - sha256 = "0pn0cjf50q0xsv6k0vihrz22kr392anznvdhxv80gk52c6lcgmsc"; -}; +version = "2.7.0"; linux_py_37_cpu = { - url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp37-cp37m-manylinux2010_x86_64.whl"; - sha256 = "0mdd83c0invqfy58qmpa3hk4yml5ic7wlwggyd5wpikadlv8vq89"; + url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl"; + sha256 = "1irw4ri1fbxbj251cnjbr12gxsyj2k30asxjfxjpxhc9b0cchhx0"; }; linux_py_38_cpu = { - url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp38-cp38-manylinux2010_x86_64.whl"; - sha256 = "1mm1yz9aj3v6fxfpxh7wy37rvsncr0b5y6glqlcxmhr6mqfp8k6d"; + url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl"; + sha256 = "11a1rimr998lvvjdg03rqr8h2h7x6bbd4gyv74biwgaxmjczvjdj"; }; -linux_py_36_gpu = { - url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp36-cp36m-manylinux2010_x86_64.whl"; - sha256 = "113iygiq2kmj97g0glhcqng6rhl3rrj1iqw5xj1d5hla8xjy8cfv"; +linux_py_39_cpu = { + url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl"; + sha256 = "0x1zzmgq7hl2k98p8870h0yhaik39nc1ckvxirjx8simpj8ghsbp"; }; linux_py_37_gpu = { - url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp37-cp37m-manylinux2010_x86_64.whl"; - sha256 = "19ap8xx2j5nbmnqv5rzf1ryfvw2fbs6bm0fxjqrvhc3jxys6yqqs"; + url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl"; + sha256 = "1x5yyxzkly9gdyhcfq4x7w7sqqxh6cw5qnfwbvzj5349xwrm63wi"; }; linux_py_38_gpu = { - url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp38-cp38-manylinux2010_x86_64.whl"; - sha256 = "0ly3cinzj6j3b547sw8bd3p774khn3b14cgrj7nvfrz668d3f89x"; + url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl"; + sha256 = "0prxa8yc6lbq62vnh8cw6dhcrnkdjih62kbg6pbw4gmgcbf6v6fg"; }; -mac_py_36_cpu = { - url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp36-cp36m-macosx_10_14_x86_64.whl"; - sha256 = "1b5ld1wj48l1i5s3vk8db5m578zdg4xfl0m1lc8w5lx1vi4cwsjp"; +linux_py_39_gpu = { + url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl"; + sha256 = "0jjv8vm20d0airml68bxhassp4yg09rcz2a39aa511cz8mavj0l6"; }; mac_py_37_cpu = { - url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp37-cp37m-macosx_10_14_x86_64.whl"; - sha256 = "1mgfyjgcwvx5jzawrpfnbch5sqw7kpnzp35rfxj22kwdsl28r47r"; + url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp37-cp37m-macosx_10_11_x86_64.whl"; + sha256 = "1gr95ck0h4wzhdacjfhkzxdw4zglm85fc54swqhyzzv1f5n9vw8j"; }; mac_py_38_cpu = { - url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp38-cp38-macosx_10_14_x86_64.whl"; - sha256 = "034qh0nk786wxzma58179g086x479c3pd9vi8v8p26grs6f2fm0p"; + url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp38-cp38-macosx_10_11_x86_64.whl"; + sha256 = "1h3qlvlrwyvxynh5flvyqk7grbvyqc21ljqhlvds436hpn2kqrgb"; +}; +mac_py_39_cpu = { + url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp39-cp39-macosx_10_11_x86_64.whl"; + sha256 = "0pyj1p2yik6ysdqn8n6cz1nqni0s9xx51ifmvdx4dl3hrzp86jz2"; }; } diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix index e088dec77994..2f8af0692342 100644 --- a/pkgs/development/python-modules/tensorflow/default.nix +++ b/pkgs/development/python-modules/tensorflow/default.nix @@ -4,7 +4,7 @@ , buildPythonPackage, pythonOlder, python # Python libraries , numpy, tensorflow-tensorboard_2, absl-py -, setuptools, wheel, keras-preprocessing, google-pasta +, setuptools, wheel, Keras, keras-preprocessing, google-pasta , opt-einsum, astunparse, h5py , termcolor, grpcio, six, wrapt, protobuf, tensorflow-estimator_2 , dill, flatbuffers-python, tblib, typing-extensions @@ -28,7 +28,7 @@ , avx2Support ? stdenv.hostPlatform.avx2Support , fmaSupport ? stdenv.hostPlatform.fmaSupport # Darwin deps -, Foundation, Security +, Foundation, Security, cctools, llvmPackages_11 }: assert cudaSupport -> cudatoolkit != null @@ -72,7 +72,7 @@ let tfFeature = x: if x then "1" else "0"; - version = "2.4.2"; + version = "2.7.0"; variant = if cudaSupport then "-gpu" else ""; pname = "tensorflow${variant}"; @@ -102,7 +102,82 @@ let wrapt ]); - bazel-build = buildBazelPackage { + rules_cc_darwin_patched = stdenv.mkDerivation { + name = "rules_cc-${pname}-${version}"; + + src = _bazel-build.deps; + + prePatch = "pushd rules_cc"; + patches = [ + # https://github.com/bazelbuild/rules_cc/issues/122 + (fetchpatch { + name = "tensorflow-rules_cc-libtool-path.patch"; + url = "https://github.com/bazelbuild/rules_cc/commit/8c427ab30bf213630dc3bce9d2e9a0e29d1787db.diff"; + sha256 = "sha256-C4v6HY5+jm0ACUZ58gBPVejCYCZfuzYKlHZ0m2qDHCk="; + }) + + # https://github.com/bazelbuild/rules_cc/pull/124 + (fetchpatch { + name = "tensorflow-rules_cc-install_name_tool-path.patch"; + url = "https://github.com/bazelbuild/rules_cc/commit/156497dc89100db8a3f57b23c63724759d431d05.diff"; + sha256 = "sha256-NES1KeQmMiUJQVoV6dS4YGRxxkZEjOpFSCyOq9HZYO0="; + }) + ]; + postPatch = "popd"; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mv rules_cc/ "$out" + + runHook postInstall + ''; + }; + llvm-raw_darwin_patched = stdenv.mkDerivation { + name = "llvm-raw-${pname}-${version}"; + + src = _bazel-build.deps; + + prePatch = "pushd llvm-raw"; + patches = [ + # Fix a vendored config.h that requires the 10.13 SDK + ./llvm_bazel_fix_macos_10_12_sdk.patch + ]; + postPatch = '' + touch {BUILD,WORKSPACE} + popd + ''; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mv llvm-raw/ "$out" + + runHook postInstall + ''; + }; + bazel-build = if stdenv.isDarwin then _bazel-build.overrideAttrs (prev: { + bazelBuildFlags = prev.bazelBuildFlags ++ [ + "--override_repository=rules_cc=${rules_cc_darwin_patched}" + "--override_repository=llvm-raw=${llvm-raw_darwin_patched}" + ]; + preBuild = '' + export AR="${cctools}/bin/libtool" + ''; + }) else _bazel-build; + + _bazel-build = (buildBazelPackage.override (lib.optionalAttrs stdenv.isDarwin { + # clang 7 fails to emit a symbol for + # __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the + # translation units, so the build fails at link time + stdenv = llvmPackages_11.stdenv; + })) { name = "${pname}-${version}"; bazel = bazel_3; @@ -110,22 +185,9 @@ let owner = "tensorflow"; repo = "tensorflow"; rev = "v${version}"; - sha256 = "07a2y05hixch1bjag5pzw3p1m7bdj3bq4gdvmsfk2xraz49b1pi8"; + sha256 = "sha256-n7jRDPeXsyq4pEWSWmOCas4c8VsArIKlCuwvSU/Ro/c="; }; - patches = [ - # included from 2.6.0 onwards - (fetchpatch { - name = "fix-numpy-1.20-notimplementederror.patch"; - url = "https://github.com/tensorflow/tensorflow/commit/b258941525f496763d4277045b6513c815720e3a.patch"; - sha256 = "19f9bzrcfsynk11s2hqvscin5c65zf7r6g3nb10jnimw79vafiry"; - }) - # Relax too strict Python packages versions dependencies. - ./relax-dependencies.patch - # Add missing `io_bazel_rules_docker` dependency. - ./workspace.patch - ]; - # On update, it can be useful to steal the changes from gentoo # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow @@ -206,7 +268,6 @@ let "opt_einsum_archive" "org_sqlite" "pasta" - "pcre" "png" "pybind11" "six_archive" @@ -295,9 +356,12 @@ let fetchAttrs = { # cudaSupport causes fetch of ncclArchive, resulting in different hashes sha256 = if cudaSupport then - "10m6qj3kchgxfgb6qh59vc51knm9r9pkng8bf90h00dnggvv8234" + "sha256-GIBs1BAUuefwlavu7dr9rFb4n1A3uwnvvCAvsBnSSqQ=" else - "04a98yrp09nd0p17k0jbzkgjppxs0yma7m5zkfrwgvr4g0w71v68"; + if stdenv.isDarwin then + "sha256-156eOnnjk+wzIiGLd6k/+SAgm4AyImsV/qBsHFlxe+k=" + else + "sha256-Fj/wWapsre55VctJ1k1kcYKAn3uDCMPN5rVX8y76ypM="; }; buildAttrs = { @@ -355,6 +419,18 @@ in buildPythonPackage { src = bazel-build.python; + # Adjust dependency requirements: + # - Relax gast version requirement that doesn't match what we have packaged + # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet + # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now. + postPatch = '' + sed -i setup.py \ + -e "s/'gast[^']*',/'gast',/" \ + -e "/'libclang[^']*',/d" \ + -e "/'keras[^']*',/d" \ + -e "/'tensorflow-io-gcs-filesystem[^']*',/d" + ''; + # Upstream has a pip hack that results in bin/tensorboard being in both tensorflow # and the propagated input tensorflow-tensorboard, which causes environment collisions. # Another possibility would be to have tensorboard only in the buildInputs @@ -402,6 +478,7 @@ in buildPythonPackage { # Actual tests are slow and impure. # TODO try to run them anyway # TODO better test (files in tensorflow/tools/ci_build/builds/*test) + checkInputs = [ Keras ]; checkPhase = '' ${python.interpreter} <=3.9.2) --Requires-Dist: six (~=1.15.0) --Requires-Dist: termcolor (~=1.1.0) --Requires-Dist: typing-extensions (~=3.7.4) --Requires-Dist: wheel (~=0.35) --Requires-Dist: wrapt (~=1.12.1) --Requires-Dist: gast (==0.3.3) --Requires-Dist: tensorboard (~=2.4) --Requires-Dist: tensorflow-estimator (<2.5.0,>=2.4.0rc0) --Requires-Dist: grpcio (~=1.32.0) -+Requires-Dist: absl-py -+Requires-Dist: astunparse -+Requires-Dist: flatbuffers -+Requires-Dist: google-pasta -+Requires-Dist: h5py -+Requires-Dist: keras-preprocessing -+Requires-Dist: numpy -+Requires-Dist: opt-einsum -+Requires-Dist: protobuf -+Requires-Dist: six -+Requires-Dist: termcolor -+Requires-Dist: typing-extensions -+Requires-Dist: wheel -+Requires-Dist: wrapt -+Requires-Dist: gast -+Requires-Dist: tensorboard -+Requires-Dist: tensorflow-estimator -+Requires-Dist: grpcio - - [![Python](https://img.shields.io/pypi/pyversions/tensorflow.svg?style=plastic)](https://badge.fury.io/py/tensorflow) - [![PyPI](https://badge.fury.io/py/tensorflow.svg)](https://badge.fury.io/py/tensorflow) \ No newline at end of file diff --git a/pkgs/development/python-modules/tensorflow/relax-dependencies.patch b/pkgs/development/python-modules/tensorflow/relax-dependencies.patch deleted file mode 100644 index b26c1e95a645..000000000000 --- a/pkgs/development/python-modules/tensorflow/relax-dependencies.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py -index 65133afdafe..8ef6364ff7e 100644 ---- a/tensorflow/tools/pip_package/setup.py -+++ b/tensorflow/tools/pip_package/setup.py -@@ -75,23 +75,23 @@ if '--project_name' in sys.argv: - # comment the versioning scheme. - # NOTE: Please add test only packages to `TEST_PACKAGES` below. - REQUIRED_PACKAGES = [ -- 'absl-py ~= 0.10', -- 'astunparse ~= 1.6.3', -- 'flatbuffers ~= 1.12.0', -- 'google_pasta ~= 0.2', -- 'h5py ~= 2.10.0', -- 'keras_preprocessing ~= 1.1.2', -- 'numpy ~= 1.19.2', -- 'opt_einsum ~= 3.3.0', -+ 'absl-py >= 0.10', -+ 'astunparse >= 1.6.3', -+ 'flatbuffers >= 1.12.0', -+ 'google_pasta >= 0.2', -+ 'h5py >= 2.10.0', -+ 'keras_preprocessing >= 1.1.2', -+ 'numpy >= 1.19.1', -+ 'opt_einsum >= 3.3.0', - 'protobuf >= 3.9.2', -- 'six ~= 1.15.0', -- 'termcolor ~= 1.1.0', -- 'typing_extensions ~= 3.7.4', -- 'wheel ~= 0.35', -- 'wrapt ~= 1.12.1', -+ 'six >= 1.15.0', -+ 'termcolor >= 1.1.0', -+ 'typing_extensions >= 3.7.4', -+ 'wheel >= 0.34.2', -+ 'wrapt >= 1.12.1', - # These packages needs to be pinned exactly as newer versions are - # incompatible with the rest of the ecosystem -- 'gast == 0.3.3', -+ 'gast >= 0.3.3', - # TensorFlow ecosystem packages that TF exposes API for - # These need to be in sync with the existing TF version - # They are updated during the release process -@@ -118,7 +118,7 @@ if 'tf_nightly' in project_name: - # BoringSSL support. - # See https://github.com/tensorflow/tensorflow/issues/17882. - if sys.byteorder == 'little': -- REQUIRED_PACKAGES.append('grpcio ~= 1.32.0') -+ REQUIRED_PACKAGES.append('grpcio >= 1.31.0') - - - # Packages which are only needed for testing code. diff --git a/pkgs/development/python-modules/tensorflow/workspace.patch b/pkgs/development/python-modules/tensorflow/workspace.patch deleted file mode 100644 index 15a527815ec3..000000000000 --- a/pkgs/development/python-modules/tensorflow/workspace.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/WORKSPACE b/WORKSPACE -index 9db1d9b80eb..c46f13f4ca4 100644 ---- a/WORKSPACE -+++ b/WORKSPACE -@@ -12,6 +12,13 @@ http_archive( - ], - ) - -+http_archive( -+ name = "io_bazel_rules_docker", -+ sha256 = "1698624e878b0607052ae6131aa216d45ebb63871ec497f26c67455b34119c80", -+ strip_prefix = "rules_docker-0.15.0", -+ urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.15.0/rules_docker-v0.15.0.tar.gz"], -+) -+ - # Load tf_repositories() before loading dependencies for other repository so - # that dependencies like com_google_protobuf won't be overridden. - load("//tensorflow:workspace.bzl", "tf_repositories") diff --git a/pkgs/development/python-modules/zigpy-znp/default.nix b/pkgs/development/python-modules/zigpy-znp/default.nix index f8413d9aa17f..74295782a4a6 100644 --- a/pkgs/development/python-modules/zigpy-znp/default.nix +++ b/pkgs/development/python-modules/zigpy-znp/default.nix @@ -18,13 +18,16 @@ buildPythonPackage rec { pname = "zigpy-znp"; - version = "0.5.4"; + version = "0.6.1"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "zigpy"; repo = pname; rev = "v${version}"; - sha256 = "0jki9qmjazh0by02c0w17dyaz0nl3gzjiy064mj6pi502d175831"; + sha256 = "sha256-Dj8gduDyE3JpcNwzXmDjZLbX0QmUQmptuAKRBQJkdaA="; }; propagatedBuildInputs = [ @@ -46,7 +49,9 @@ buildPythonPackage rec { asynctest ]; - pythonImportsCheck = [ "zigpy_znp" ]; + pythonImportsCheck = [ + "zigpy_znp" + ]; meta = with lib; { description = "Python library for zigpy which communicates with TI ZNP radios"; diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix index 70763446293e..e5f590b14323 100644 --- a/pkgs/development/python-modules/zigpy/default.nix +++ b/pkgs/development/python-modules/zigpy/default.nix @@ -15,13 +15,16 @@ buildPythonPackage rec { pname = "zigpy"; - version = "0.39.0"; + version = "0.41.0"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "zigpy"; repo = "zigpy"; rev = version; - sha256 = "sha256-cR63xzx62ZKCXJENoksJTwEU8vGL8HtdIN3+5OqIL1Y="; + sha256 = "sha256-6B5JquShUhW2EudkhCD1s5eJLJU1q1HmX7C/avoI7vU="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix index feed2f73ca17..5b18c09f15a8 100644 --- a/pkgs/development/python-modules/zwave-js-server-python/default.nix +++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix @@ -9,15 +9,16 @@ buildPythonPackage rec { pname = "zwave-js-server-python"; - version = "0.31.3"; - disabled = pythonOlder "3.8"; + version = "0.33.0"; + format = "setuptools"; + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = pname; rev = version; - sha256 = "sha256-mOcaxt8pc+d7qBoDtwCsDWoVs3Hw17v5WDKgzIW1WzY="; + sha256 = "sha256-0hAksizQSIOg+hbSq/OZqFqlBBdpa0bSf+puWfD9TSg="; }; propagatedBuildInputs = [ @@ -29,7 +30,9 @@ buildPythonPackage rec { pytestCheckHook ]; - pythonImportsCheck = [ "zwave_js_server" ]; + pythonImportsCheck = [ + "zwave_js_server" + ]; meta = with lib; { description = "Python wrapper for zwave-js-server"; diff --git a/pkgs/servers/sql/mariadb/connector-c/default.nix b/pkgs/servers/sql/mariadb/connector-c/default.nix index 0767828461fe..745031e8a4cd 100644 --- a/pkgs/servers/sql/mariadb/connector-c/default.nix +++ b/pkgs/servers/sql/mariadb/connector-c/default.nix @@ -31,6 +31,13 @@ stdenv.mkDerivation { substituteInPlace mariadb_config/mariadb_config.c.in \ --replace '-I%s/@INSTALL_INCLUDEDIR@' "-I$dev/include" \ --replace '-L%s/@INSTALL_LIBDIR@' "-L$out/lib/mariadb" + '' + lib.optionalString stdenv.hostPlatform.isStatic '' + # Disables all dynamic plugins + substituteInPlace cmake/plugins.cmake \ + --replace 'if(''${CC_PLUGIN_DEFAULT} STREQUAL "DYNAMIC")' 'if(''${CC_PLUGIN_DEFAULT} STREQUAL "INVALID")' + # Force building static libraries + substituteInPlace libmariadb/CMakeLists.txt \ + --replace 'libmariadb SHARED' 'libmariadb STATIC' ''; # The cmake setup-hook uses $out/lib by default, this is not the case here. diff --git a/pkgs/tools/graphics/graphviz/2.32.nix b/pkgs/tools/graphics/graphviz/2.32.nix deleted file mode 100644 index 544949f33b71..000000000000 --- a/pkgs/tools/graphics/graphviz/2.32.nix +++ /dev/null @@ -1,5 +0,0 @@ -import ./base.nix { - rev = "10c3c34c5198beacfba950764f34960c6884a34f"; - version = "2.32.0"; - sha256 = "18b2wnz6xk8hndy7dlr1vn9vziyryyflh747n9966778gmh8bick"; -} diff --git a/pkgs/tools/graphics/graphviz/base.nix b/pkgs/tools/graphics/graphviz/base.nix deleted file mode 100644 index 53c231aa49bc..000000000000 --- a/pkgs/tools/graphics/graphviz/base.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ rev, sha256, version }: - -{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, cairo, expat, flex -, fontconfig, gd, gettext, gts, libdevil, libjpeg, libpng, libtool, pango, bash -, bison, fetchpatch, xorg, ApplicationServices, python3, withXorg ? true -}: - -let - inherit (lib) optional optionals optionalString; - raw_patch = - # https://gitlab.com/graphviz/graphviz/issues/1367 CVE-2018-10196 - fetchpatch { - name = "CVE-2018-10196.patch"; - url = "https://gitlab.com/graphviz/graphviz/uploads/30f8f0b00e357c112ac35fb20241604a/p.diff"; - sha256 = "074qx6ch9blrnlilmz7p96fkiz2va84x2fbqdza5k4808rngirc7"; - excludes = [ "tests/*" ]; # we don't run them and they don't apply - }; - # the patch needs a small adaption for older versions - patchToUse = if lib.versionAtLeast version "2.37" then raw_patch else - stdenv.mkDerivation { - inherit (raw_patch) name; - buildCommand = "sed s/dot_root/agroot/g ${raw_patch} > $out"; - }; - # 2.42 has the patch included - patches = optional (lib.versionOlder version "2.42") patchToUse - ++ optionals (lib.versionOlder version "2.46.0") [ - (fetchpatch { - name = "CVE-2020-18032.patch"; - url = "https://gitlab.com/graphviz/graphviz/-/commit/784411ca3655c80da0f6025ab20634b2a6ff696b.patch"; - sha256 = "1nkw9ism8lkfvxsp5fh95i2l5s5cbjsidbb3g1kjfv10rxkyb41m"; - }) - ] ++ [ - # Fix cross. - # https://gitlab.com/graphviz/graphviz/-/merge_requests/2281 - (fetchpatch { - url = "https://gitlab.com/graphviz/graphviz/-/commit/0cdb89acbb0caf5baf3d04a8821c9d0dfe065ea8.patch"; - sha256 = "130mqlxzhzaz3vp4ccaq7z7fd9q6vjxmimz70g8y818igsbb13rf"; - }) - ]; -in - -stdenv.mkDerivation { - pname = "graphviz"; - inherit version; - - src = fetchFromGitLab { - owner = "graphviz"; - repo = "graphviz"; - inherit sha256 rev; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - python3 - bison - flex - ]; - - buildInputs = [ - libpng libjpeg expat fontconfig gd gts libdevil pango bash - ] ++ optionals withXorg (with xorg; [ libXrender libXaw libXpm ]) - ++ optionals stdenv.isDarwin [ ApplicationServices ]; - - hardeningDisable = [ "fortify" ]; - - CPPFLAGS = lib.optionalString (withXorg && stdenv.isDarwin) - "-I${cairo.dev}/include/cairo"; - - configureFlags = [ - "--with-ltdl-lib=${libtool.lib}/lib" - "--with-ltdl-include=${libtool}/include" - ] ++ lib.optional (xorg == null) "--without-x"; - - inherit patches; - - postPatch = '' - for f in $(find . -name Makefile.in); do - substituteInPlace $f --replace "-lstdc++" "-lc++" - done - ''; - - # '' - # substituteInPlace rtest/rtest.sh \ - # --replace "/bin/ksh" "${mksh}/bin/mksh" - # ''; - - doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs - - preAutoreconf = "./autogen.sh"; - - postFixup = optionalString withXorg '' - substituteInPlace $out/bin/dotty --replace '`which lefty`' $out/bin/lefty - substituteInPlace $out/bin/vimdot \ - --replace /usr/bin/vi '$(command -v vi)' \ - --replace /usr/bin/vim '$(command -v vim)' \ - --replace /usr/bin/vimdot $out/bin/vimdot \ - ''; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://graphviz.org"; - description = "Graph visualization tools"; - license = licenses.epl10; - platforms = platforms.unix; - maintainers = with maintainers; [ bjornfor raskin ]; - }; -} diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix index 6dc9e1861ac8..e2c5f9f63fc5 100644 --- a/pkgs/tools/graphics/graphviz/default.nix +++ b/pkgs/tools/graphics/graphviz/default.nix @@ -1,5 +1,114 @@ -import ./base.nix rec { - rev = "3425dae078262591d04fec107ec71ab010651852"; # use rev as tags have disappeared before +{ lib +, stdenv +, fetchFromGitLab +, autoreconfHook +, pkg-config +, cairo +, expat +, flex +, fontconfig +, gd +, gts +, libdevil +, libjpeg +, libpng +, libtool +, pango +, bash +, bison +, fetchpatch +, xorg +, ApplicationServices +, python3 +, withXorg ? true +}: + +let + inherit (lib) optional optionals optionalString; +in +stdenv.mkDerivation { + pname = "graphviz"; version = "2.49.3"; - sha256 = "1qvyjly7r1ihacdvxq0r59l4csr09sc05palpshzqsiz2wb1izk0"; + + src = fetchFromGitLab { + owner = "graphviz"; + repo = "graphviz"; + # use rev as tags have disappeared before + rev = "3425dae078262591d04fec107ec71ab010651852"; + sha256 = "1qvyjly7r1ihacdvxq0r59l4csr09sc05palpshzqsiz2wb1izk0"; + }; + + patches = [ + # Fix cross. + # https://gitlab.com/graphviz/graphviz/-/merge_requests/2281 + # Remove when version > 2.49.3. + (fetchpatch { + url = "https://gitlab.com/graphviz/graphviz/-/commit/0cdb89acbb0caf5baf3d04a8821c9d0dfe065ea8.patch"; + sha256 = "130mqlxzhzaz3vp4ccaq7z7fd9q6vjxmimz70g8y818igsbb13rf"; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + python3 + bison + flex + ]; + + buildInputs = [ + libpng + libjpeg + expat + fontconfig + gd + gts + libdevil + pango + bash + ] ++ optionals withXorg (with xorg; [ libXrender libXaw libXpm ]) + ++ optionals stdenv.isDarwin [ ApplicationServices ]; + + hardeningDisable = [ "fortify" ]; + + configureFlags = [ + "--with-ltdl-lib=${libtool.lib}/lib" + "--with-ltdl-include=${libtool}/include" + ] ++ lib.optional (xorg == null) "--without-x"; + + enableParallelBuilding = true; + + CPPFLAGS = lib.optionalString (withXorg && stdenv.isDarwin) + "-I${cairo.dev}/include/cairo"; + + # '' + # substituteInPlace rtest/rtest.sh \ + # --replace "/bin/ksh" "${mksh}/bin/mksh" + # ''; + + doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs + + postPatch = '' + for f in $(find . -name Makefile.in); do + substituteInPlace $f --replace "-lstdc++" "-lc++" + done + ''; + + preAutoreconf = "./autogen.sh"; + + postFixup = optionalString withXorg '' + substituteInPlace $out/bin/dotty --replace '`which lefty`' $out/bin/lefty + substituteInPlace $out/bin/vimdot \ + --replace /usr/bin/vi '$(command -v vi)' \ + --replace /usr/bin/vim '$(command -v vim)' \ + --replace /usr/bin/vimdot $out/bin/vimdot \ + ''; + + meta = with lib; { + homepage = "https://graphviz.org"; + description = "Graph visualization tools"; + license = licenses.epl10; + platforms = platforms.unix; + maintainers = with maintainers; [ bjornfor raskin ]; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b474693eb9fc..28df21d91ac3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5968,14 +5968,6 @@ with pkgs; libdevil = libdevil-nox; }; - /* Readded by Michael Raskin. There are programs in the wild - * that do want 2.32 but not 2.0 or 2.36. Please give a day's notice for - * objections before removal. The feature is libgraph. - */ - graphviz_2_32 = (callPackage ../tools/graphics/graphviz/2.32.nix { - inherit (darwin.apple_sdk.frameworks) ApplicationServices; - }).overrideAttrs(x: { configureFlags = x.configureFlags ++ ["--with-cgraph=no"];}); - grin = callPackage ../tools/text/grin { }; ripgrep = callPackage ../tools/text/ripgrep { @@ -16367,6 +16359,8 @@ with pkgs; geoclue2 = callPackage ../development/libraries/geoclue {}; + geoclue2-with-demo-agent = geoclue2.override { withDemoAgent = true; }; + geocode-glib = callPackage ../development/libraries/geocode-glib {}; geoipWithDatabase = makeOverridable (callPackage ../development/libraries/geoip) { @@ -25680,10 +25674,6 @@ with pkgs; guardian-agent = callPackage ../tools/networking/guardian-agent { }; - guitone = callPackage ../applications/version-management/guitone { - graphviz = graphviz_2_32; - }; - gv = callPackage ../applications/misc/gv { }; gvisor = callPackage ../applications/virtualization/gvisor { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 120b16eb5695..a827f8a9394d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9230,6 +9230,7 @@ in { tensorflow-bin = self.tensorflow-bin_2; tensorflow-build_2 = callPackage ../development/python-modules/tensorflow { + inherit (pkgs.darwin) cctools; cudaSupport = pkgs.config.cudaSupport or false; cudatoolkit = pkgs.cudatoolkit_11_0; cudnn = pkgs.cudnn_cudatoolkit_11_0;