diff --git a/pkgs/development/python-modules/torch/bin.nix b/pkgs/development/python-modules/torch/bin.nix index a10be3732efa..4ecaac16be18 100644 --- a/pkgs/development/python-modules/torch/bin.nix +++ b/pkgs/development/python-modules/torch/bin.nix @@ -28,7 +28,7 @@ let pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion; srcs = import ./binary-hashes.nix version; unsupported = throw "Unsupported system"; - version = "2.3.1"; + version = "2.4.0"; in buildPythonPackage { inherit version; @@ -102,7 +102,9 @@ buildPythonPackage { # # This is a quick hack to add `libnvrtc` to the runpath so that torch can find # it when it is needed at runtime. - extraRunpaths = lib.optionals stdenv.hostPlatform.isLinux [ "${lib.getLib cudaPackages.cuda_nvrtc}/lib" ]; + extraRunpaths = lib.optionals stdenv.hostPlatform.isLinux [ + "${lib.getLib cudaPackages.cuda_nvrtc}/lib" + ]; postPhases = lib.optionals stdenv.isLinux [ "postPatchelfPhase" ]; postPatchelfPhase = '' while IFS= read -r -d $'\0' elf ; do @@ -120,7 +122,7 @@ buildPythonPackage { pythonImportsCheck = [ "torch" ]; - passthru.tests = callPackage ./tests.nix {}; + passthru.tests = callPackage ./tests.nix { }; meta = { description = "PyTorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration"; diff --git a/pkgs/development/python-modules/torch/binary-hashes.nix b/pkgs/development/python-modules/torch/binary-hashes.nix index 8d41a4c1eeca..8a2cbc2ffa9c 100644 --- a/pkgs/development/python-modules/torch/binary-hashes.nix +++ b/pkgs/development/python-modules/torch/binary-hashes.nix @@ -7,81 +7,81 @@ version: builtins.getAttr version { - "2.3.1" = { + "2.4.0" = { x86_64-linux-38 = { - name = "torch-2.3.1-cp38-cp38-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp38-cp38-linux_x86_64.whl"; - hash = "sha256-TkEPNC/YbHO+oO0kVQnV/15od72lSySfdaM9U1yHfy8="; + name = "torch-2.4.0-cp38-cp38-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torch-2.4.0%2Bcu121-cp38-cp38-linux_x86_64.whl"; + hash = "sha256-ikebcXQK+SpOG5kEW+qDHz2nMYfIw+PSErHm/jkxWyE="; }; x86_64-linux-39 = { - name = "torch-2.3.1-cp39-cp39-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp39-cp39-linux_x86_64.whl"; - hash = "sha256-3+phA2LA4qX/KNMi1qpl1l4D4TNJlhGaWjdwx9GCGsQ="; + name = "torch-2.4.0-cp39-cp39-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torch-2.4.0%2Bcu121-cp39-cp39-linux_x86_64.whl"; + hash = "sha256-iIObriuWfdOFeaqwu6lRDpKxHau8Th3V5jDF/WVfXac="; }; x86_64-linux-310 = { - name = "torch-2.3.1-cp310-cp310-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp310-cp310-linux_x86_64.whl"; - hash = "sha256-8N610vkypo7VRiW6FA7dvyryK+l47hm5tjyYat1kJbI="; + name = "torch-2.4.0-cp310-cp310-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torch-2.4.0%2Bcu121-cp310-cp310-linux_x86_64.whl"; + hash = "sha256-KL+6CE3KUqBsRl160PPMNyw1/FA/PquIHMF6X9gpFOc="; }; x86_64-linux-311 = { - name = "torch-2.3.1-cp311-cp311-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp311-cp311-linux_x86_64.whl"; - hash = "sha256-kl40rwkFBipItPgtDmZWNBrU1iaDSmqCRe9OruU3XJg="; + name = "torch-2.4.0-cp311-cp311-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torch-2.4.0%2Bcu121-cp311-cp311-linux_x86_64.whl"; + hash = "sha256-qf/zLTZeDHS2kJSAVIsuKRMUogStsptrtvLG0z+L4mw="; }; x86_64-linux-312 = { - name = "torch-2.3.1-cp312-cp312-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp312-cp312-linux_x86_64.whl"; - hash = "sha256-s8WG9Ksl6D7//M+5cHnpEyUym8IoFmVVxLuTlXdT1Oo="; + name = "torch-2.4.0-cp312-cp312-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torch-2.4.0%2Bcu121-cp312-cp312-linux_x86_64.whl"; + hash = "sha256-SaxVpkl93W0M3VG16ifY6+IMknMHeFXpyW6w3CifB8M="; }; aarch64-darwin-38 = { - name = "torch-2.3.1-cp38-none-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp38-none-macosx_11_0_arm64.whl"; - hash = "sha256-vuC9M9xYqo/Ip1J4dum5oOgSrQgSIFSlv/LOWr8AWxA="; + name = "torch-2.4.0-cp38-none-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp38-none-macosx_11_0_arm64.whl"; + hash = "sha256-OvTeKmGPsGXnhATEuieoGKe3lX6u/yjGxmzn+1BLaLg="; }; aarch64-darwin-39 = { - name = "torch-2.3.1-cp39-none-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp39-none-macosx_11_0_arm64.whl"; - hash = "sha256-K7WveAxVvmj+EA/rBSjS7eus4dVcsuNR3nNYCbpzkes="; + name = "torch-2.4.0-cp39-none-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp39-none-macosx_11_0_arm64.whl"; + hash = "sha256-iUD8i5ekxh/bXUajaPIfSjpWKheHnpMutRpexiMQyzE="; }; aarch64-darwin-310 = { - name = "torch-2.3.1-cp310-none-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp310-none-macosx_11_0_arm64.whl"; - hash = "sha256-fAmpQ2J3hChIS8+ZX2AEsElSEGruDvRf8LS6tIT1SY0="; + name = "torch-2.4.0-cp310-none-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp310-none-macosx_11_0_arm64.whl"; + hash = "sha256-aFQYq5NzDvvucVKIIf9UAFWWlw3Ul78DyJIE+34/cd4="; }; aarch64-darwin-311 = { - name = "torch-2.3.1-cp311-none-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp311-none-macosx_11_0_arm64.whl"; - hash = "sha256-p91O04itHz1QK/CUU9X+WWx7Eh3n4M+soeIBd4Lpu6w="; + name = "torch-2.4.0-cp311-none-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp311-none-macosx_11_0_arm64.whl"; + hash = "sha256-8Wm06m3JOzozMZYR/MR9wUBuTdU5hE3L0t7EwbluFm0="; }; aarch64-darwin-312 = { - name = "torch-2.3.1-cp312-none-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp312-none-macosx_11_0_arm64.whl"; - hash = "sha256-PDM9wuvBiVYVFO2gboHfIr+Ptk4jhHRrLLnwT5bR1Mg="; + name = "torch-2.4.0-cp312-none-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp312-none-macosx_11_0_arm64.whl"; + hash = "sha256-karwC/4f+kTcW1KAnZqVEp/KECEuyjrCZCDrEXJ8Yog="; }; aarch64-linux-38 = { - name = "torch-2.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - hash = "sha256-O3wUmPkE9n6x4zHy6+h0J3GiznG57pvAHelnJX6IHH0="; + name = "torch-2.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + hash = "sha256-nrqD+Kj5hUL5F+OQAMkD8VRlWs9jdcBzz81DBqFU64A="; }; aarch64-linux-39 = { - name = "torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - hash = "sha256-22v/S6YnO1muRD3gS1rcNtakC7KJiGYTO/8tUvJ26v4="; + name = "torch-2.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + hash = "sha256-J4akfI2N7BdvxnnSqrmm9UnCVFJRC0llCrE0E1JmujM="; }; aarch64-linux-310 = { - name = "torch-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - hash = "sha256-ZUT98pAYZowKbUobzJVZgsGtpwgGKBsBDLqTvc+9zyI="; + name = "torch-2.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + hash = "sha256-fBWeidTs8IQD+dE3PVVEIiQLmxFGoKGRKQadw1enKys="; }; aarch64-linux-311 = { - name = "torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - hash = "sha256-Kq8ON3NMvF/mv8yBraNuy7iZ1N2+E0mL2EqsqKkchig="; + name = "torch-2.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + hash = "sha256-OBacsPHmcnw9rI2si5pI0HKkn2Q7kIqZFV7x2Bthves="; }; aarch64-linux-312 = { - name = "torch-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; - hash = "sha256-d9LeGklaHAf1ksM4oNWS5VzAudL4ADCeRqDqLA46KRk="; + name = "torch-2.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torch-2.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"; + hash = "sha256-7IY1E1C716vqNDb6b0Iws7C793oibkS6RhhA4gT8zXE="; }; }; } diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix index afc1fd6e74e1..bd6b1b262837 100644 --- a/pkgs/development/python-modules/torch/default.nix +++ b/pkgs/development/python-modules/torch/default.nix @@ -99,7 +99,7 @@ let setBool = v: if v then "1" else "0"; - # https://github.com/pytorch/pytorch/blob/v2.0.1/torch/utils/cpp_extension.py#L1744 + # https://github.com/pytorch/pytorch/blob/v2.4.0/torch/utils/cpp_extension.py#L1953 supportedTorchCudaCapabilities = let real = [ @@ -119,6 +119,7 @@ let "8.7" "8.9" "9.0" + "9.0a" ]; ptx = lists.map (x: "${x}+PTX") real; in @@ -206,13 +207,14 @@ let # In particular, this triggered warnings from cuda's `aliases.nix` "Magma cudaPackages does not match cudaPackages" = cudaSupport && (effectiveMagma.cudaPackages.cudaVersion != cudaPackages.cudaVersion); - "Rocm support is currently broken because `rocmPackages.hipblaslt` is unpackaged. (2024-06-09)" = rocmSupport; + "Rocm support is currently broken because `rocmPackages.hipblaslt` is unpackaged. (2024-06-09)" = + rocmSupport; }; in buildPythonPackage rec { pname = "torch"; # Don't forget to update torch-bin to the same version. - version = "2.3.1"; + version = "2.4.0"; pyproject = true; disabled = pythonOlder "3.8.0"; @@ -230,11 +232,16 @@ buildPythonPackage rec { repo = "pytorch"; rev = "refs/tags/v${version}"; fetchSubmodules = true; - hash = "sha256-vpgtOqzIDKgRuqdT8lB/g6j+oMIH1RPxdbjtlzZFjV8="; + hash = "sha256-s49rtarGNNFpnNG+kfJtZLE8ND53Ma201I0cOjeFSts="; }; patches = - lib.optionals cudaSupport [ ./fix-cmake-cuda-toolkit.patch ] + [ + # Allow setting PYTHON_LIB_REL_PATH with an environment variable. + # https://github.com/pytorch/pytorch/pull/128419 + ./passthrough-python-lib-rel-path.patch + ] + ++ lib.optionals cudaSupport [ ./fix-cmake-cuda-toolkit.patch ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ # pthreadpool added support for Grand Central Dispatch in April # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO) @@ -279,11 +286,12 @@ buildPythonPackage rec { 'message(FATAL_ERROR "Found NCCL header version and library version' \ 'message(WARNING "Found NCCL header version and library version' '' - # Remove PyTorch's FindCUDAToolkit.cmake and to use CMake's default. - # We do not remove the entirety of cmake/Modules_CUDA_fix because we need FindCUDNN.cmake. + # Remove PyTorch's FindCUDAToolkit.cmake and use CMake's default. + # NOTE: Parts of pytorch rely on unmaintained FindCUDA.cmake with custom patches to support e.g. + # newer architectures (sm_90a). We do want to delete vendored patches, but have to keep them + # until https://github.com/pytorch/pytorch/issues/76082 is addressed + lib.optionalString cudaSupport '' rm cmake/Modules/FindCUDAToolkit.cmake - rm -rf cmake/Modules_CUDA_fix/{upstream,FindCUDA.cmake} '' # error: no member named 'aligned_alloc' in the global namespace; did you mean simply 'aligned_alloc' # This lib overrided aligned_alloc hence the error message. Tltr: his function is linkable but not in header. @@ -375,6 +383,10 @@ buildPythonPackage rec { USE_SYSTEM_NCCL = USE_NCCL; USE_STATIC_NCCL = USE_NCCL; + # Set the correct Python library path, broken since + # https://github.com/pytorch/pytorch/commit/3d617333e + PYTHON_LIB_REL_PATH = "${placeholder "out"}/${python.sitePackages}"; + # Suppress a weird warning in mkl-dnn, part of ideep in pytorch # (upstream seems to have fixed this in the wrong place?) # https://github.com/intel/mkl-dnn/commit/8134d346cdb7fe1695a2aa55771071d455fae0bc @@ -466,9 +478,7 @@ buildPythonPackage rec { libcusolver libcusparse ] - ++ lists.optionals (cudaPackages ? cudnn) [ - cudnn - ] + ++ lists.optionals (cudaPackages ? cudnn) [ cudnn ] ++ lists.optionals useSystemNccl [ # Some platforms do not support NCCL (i.e., Jetson) nccl # Provides nccl.h AND a static copy of NCCL! diff --git a/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch b/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch index 45587d3fe7b9..9767d8fee308 100644 --- a/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch +++ b/pkgs/development/python-modules/torch/fix-cmake-cuda-toolkit.patch @@ -1,51 +1,15 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9194e520bb0..d05fdcfb6cb 100644 +index c4cd4b2c2a..e983b21353 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1160,10 +1160,6 @@ if(BUILD_SHARED_LIBS) - ${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix - DESTINATION share/cmake/Caffe2/ - COMPONENT dev) -- install(FILES -- ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUDAToolkit.cmake -- DESTINATION share/cmake/Caffe2/ -- COMPONENT dev) - install(FILES - ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUSPARSELT.cmake - DESTINATION share/cmake/Caffe2/ -diff --git a/cmake/public/cuda.cmake b/cmake/public/cuda.cmake -index c7595774d81..4fc43771810 100644 ---- a/cmake/public/cuda.cmake -+++ b/cmake/public/cuda.cmake -@@ -61,9 +61,15 @@ find_package(CUDAToolkit REQUIRED) - cmake_policy(POP) - - if(NOT CMAKE_CUDA_COMPILER_VERSION VERSION_EQUAL CUDAToolkit_VERSION) -- message(FATAL_ERROR "Found two conflicting CUDA versions:\n" -- "V${CMAKE_CUDA_COMPILER_VERSION} in '${CUDA_INCLUDE_DIRS}' and\n" -- "V${CUDAToolkit_VERSION} in '${CUDAToolkit_INCLUDE_DIRS}'") -+ if(CUDA_INCLUDE_DIRS IN_LIST CUDAToolkit_INCLUDE_DIR) -+ message(STATUS "CUDA_INCLUDE_DIRS is a substring of CUDAToolkit_INCLUDE_DIR. " -+ "Setting CUDA_INCLUDE_DIRS to CUDAToolkit_INCLUDE_DIR.") -+ set(CUDA_INCLUDE_DIRS "${CUDAToolkit_INCLUDE_DIR}") -+ else() -+ message(FATAL_ERROR "Found two conflicting CUDA installs:\n" -+ "V${CMAKE_CUDA_COMPILER_VERSION} in '${CUDA_INCLUDE_DIRS}' and\n" -+ "V${CUDAToolkit_VERSION} in '${CUDAToolkit_INCLUDE_DIR}'") -+ endif() - endif() - - if(NOT TARGET CUDA::nvToolsExt) -diff --git a/tools/setup_helpers/cmake.py b/tools/setup_helpers/cmake.py -index fb19b66dfba..3f83bef32fe 100644 ---- a/tools/setup_helpers/cmake.py -+++ b/tools/setup_helpers/cmake.py -@@ -207,6 +207,8 @@ class CMake: - "BUILDING_WITH_TORCH_LIBS", - "CUDA_HOST_COMPILER", - "CUDA_NVCC_EXECUTABLE", -+ "CUDAToolkit_ROOT", -+ "CUDAToolkit_INCLUDE_DIR", - "CUDA_SEPARABLE_COMPILATION", - "CUDNN_LIBRARY", - "CUDNN_INCLUDE_DIR", +@@ -1319,10 +1319,6 @@ if(BUILD_SHARED_LIBS) + DIRECTORY ${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix + DESTINATION share/cmake/Caffe2/ + COMPONENT dev) +- install( +- FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUDAToolkit.cmake +- DESTINATION share/cmake/Caffe2/ +- COMPONENT dev) + install( + FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUSPARSELT.cmake + DESTINATION share/cmake/Caffe2/ diff --git a/pkgs/development/python-modules/torch/passthrough-python-lib-rel-path.patch b/pkgs/development/python-modules/torch/passthrough-python-lib-rel-path.patch new file mode 100644 index 000000000000..629a0495c00e --- /dev/null +++ b/pkgs/development/python-modules/torch/passthrough-python-lib-rel-path.patch @@ -0,0 +1,12 @@ +diff --git a/tools/setup_helpers/cmake.py b/tools/setup_helpers/cmake.py +index 5481ce46031c..d50d9d547399 100644 +--- a/tools/setup_helpers/cmake.py ++++ b/tools/setup_helpers/cmake.py +@@ -231,6 +231,7 @@ def generate( + "SELECTED_OP_LIST", + "TORCH_CUDA_ARCH_LIST", + "TRACING_BASED", ++ "PYTHON_LIB_REL_PATH", + ) + } + ) diff --git a/pkgs/development/python-modules/torchaudio/bin.nix b/pkgs/development/python-modules/torchaudio/bin.nix index 44205578a38d..31b119a26406 100644 --- a/pkgs/development/python-modules/torchaudio/bin.nix +++ b/pkgs/development/python-modules/torchaudio/bin.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "torchaudio"; - version = "2.3.1"; + version = "2.4.0"; format = "wheel"; src = diff --git a/pkgs/development/python-modules/torchaudio/binary-hashes.nix b/pkgs/development/python-modules/torchaudio/binary-hashes.nix index bce74eff052e..53004bc2c0b9 100644 --- a/pkgs/development/python-modules/torchaudio/binary-hashes.nix +++ b/pkgs/development/python-modules/torchaudio/binary-hashes.nix @@ -7,81 +7,81 @@ version: builtins.getAttr version { - "2.3.1" = { + "2.4.0" = { x86_64-linux-38 = { - name = "torchaudio-2.3.1-cp38-cp38-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp38-cp38-linux_x86_64.whl"; - hash = "sha256-4QoP0bNR6EnnzZ4ekw3KP/uMow+WI5vqEx8YP2WUXNs="; + name = "torchaudio-2.4.0-cp38-cp38-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchaudio-2.4.0%2Bcu121-cp38-cp38-linux_x86_64.whl"; + hash = "sha256-HbbFZ4nETaygQRxSMYg6d3Omqxbx6uSrXrUzRt71RTw="; }; x86_64-linux-39 = { - name = "torchaudio-2.3.1-cp39-cp39-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp39-cp39-linux_x86_64.whl"; - hash = "sha256-bOv8CdkcpAPASLnPKuPWS09UzzGghYTQ0/v3+VAewNw="; + name = "torchaudio-2.4.0-cp39-cp39-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchaudio-2.4.0%2Bcu121-cp39-cp39-linux_x86_64.whl"; + hash = "sha256-5wG1xXOR9ApLTdWQtt8eGt+83GwT6zfEW+Kay4pz5vQ="; }; x86_64-linux-310 = { - name = "torchaudio-2.3.1-cp310-cp310-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp310-cp310-linux_x86_64.whl"; - hash = "sha256-C0I/SuM1bxH2cj6MdyCKw/k2Gk+UHkzAjYbDLBN1lLw="; + name = "torchaudio-2.4.0-cp310-cp310-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchaudio-2.4.0%2Bcu121-cp310-cp310-linux_x86_64.whl"; + hash = "sha256-R+F2Pr3UEID6Otlv9OTyKHgxz6jd51IzrRMpxhOr2lA="; }; x86_64-linux-311 = { - name = "torchaudio-2.3.1-cp311-cp311-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp311-cp311-linux_x86_64.whl"; - hash = "sha256-LZE2vzybarltxC8m9suDbUXRFfV2bhav9Sg1yOfN5WU="; + name = "torchaudio-2.4.0-cp311-cp311-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchaudio-2.4.0%2Bcu121-cp311-cp311-linux_x86_64.whl"; + hash = "sha256-KcjEOkm0MDZnvyDNhcP26borSg+0tqrsLgKzstbMbOo="; }; x86_64-linux-312 = { - name = "torchaudio-2.3.1-cp312-cp312-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp312-cp312-linux_x86_64.whl"; - hash = "sha256-sAdz3eOqMNmxuYh1ZQQo+/tp/jC5jrtc7/vY/GHegSU="; + name = "torchaudio-2.4.0-cp312-cp312-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchaudio-2.4.0%2Bcu121-cp312-cp312-linux_x86_64.whl"; + hash = "sha256-gTwbojelvYBZo0BOav9xtc09SXmtCV3PreFZJoCFUDE="; }; aarch64-darwin-38 = { - name = "torchaudio-2.3.1-cp38-cp38-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp38-cp38-macosx_11_0_arm64.whl"; - hash = "sha256-zkXgWs1URpbGpvAj1P6GFK3ldRV5mhEDskGOhUg41KU="; + name = "torchaudio-2.4.0-cp38-cp38-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp38-cp38-macosx_11_0_arm64.whl"; + hash = "sha256-/D+OzW8Lv8ZU07xSdWp8o1nx2ItPoCkOHNt2OjExt7k="; }; aarch64-darwin-39 = { - name = "torchaudio-2.3.1-cp39-cp39-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp39-cp39-macosx_11_0_arm64.whl"; - hash = "sha256-NujAtlMlccJ6CKQNrkKM00ryJQB/FbzXcnJkO2JmuB0="; + name = "torchaudio-2.4.0-cp39-cp39-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp39-cp39-macosx_11_0_arm64.whl"; + hash = "sha256-H9ZwyAjjIsEBlXoHZR4pk1+G7DiSQ8DEOiTt16GFSEE="; }; aarch64-darwin-310 = { - name = "torchaudio-2.3.1-cp310-cp310-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp310-cp310-macosx_11_0_arm64.whl"; - hash = "sha256-H5E0sn5afwweMzgvwP4njlNpV2jLCvAujSK1AGx0oq0="; + name = "torchaudio-2.4.0-cp310-cp310-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp310-cp310-macosx_11_0_arm64.whl"; + hash = "sha256-cz6dhZuI2r7+rwCOOrK4x4hbKUZgaLS3mkJ2a+RhnkY="; }; aarch64-darwin-311 = { - name = "torchaudio-2.3.1-cp311-cp311-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp311-cp311-macosx_11_0_arm64.whl"; - hash = "sha256-AZhPODmMpemOz7/q+3KuWyEx0LuKpGS1d3rds+SCaHc="; + name = "torchaudio-2.4.0-cp311-cp311-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp311-cp311-macosx_11_0_arm64.whl"; + hash = "sha256-rLz5Ep/8/OgIJU4sv/EDNjxQXOBu1MQjGz9DahBnnU0="; }; aarch64-darwin-312 = { - name = "torchaudio-2.3.1-cp312-cp312-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp312-cp312-macosx_11_0_arm64.whl"; - hash = "sha256-XjZoVCCgehdhRunW4PqCJRmPEm4WegB4VTj4U4B+LUM="; + name = "torchaudio-2.4.0-cp312-cp312-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp312-cp312-macosx_11_0_arm64.whl"; + hash = "sha256-rhOpXvb6vK2w7/NthfUEjXBHSi6XBPqchumQPLzsDUo="; }; aarch64-linux-38 = { - name = "torchaudio-2.3.1-cp38-cp38-manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp38-cp38-linux_aarch64.whl"; - hash = "sha256-n9D0u8P9WF+9fZdqmI/m54P8suDbnXDaxg9AvgcsZQQ="; + name = "torchaudio-2.4.0-cp38-cp38-manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp38-cp38-linux_aarch64.whl"; + hash = "sha256-1/6efy/oJQ/eB7IDVsRNdw1fqjyid6vc2jr31IQEj7o="; }; aarch64-linux-39 = { - name = "torchaudio-2.3.1-cp39-cp39-manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp39-cp39-linux_aarch64.whl"; - hash = "sha256-TjvKIy+CDGoPpTlEJAdsxRn64yKI5/9vbWi9cXlNw1Q="; + name = "torchaudio-2.4.0-cp39-cp39-manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp39-cp39-linux_aarch64.whl"; + hash = "sha256-yECJTeEqbdPqV8uw0AhhI6qkgAG6Otme9xT+AJ6ujrk="; }; aarch64-linux-310 = { - name = "torchaudio-2.3.1-cp310-cp310-manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp310-cp310-linux_aarch64.whl"; - hash = "sha256-a1fnc6rXJ0PVCmSnQCoGy4vfzHCe/G2MJkKdlA5niOI="; + name = "torchaudio-2.4.0-cp310-cp310-manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp310-cp310-linux_aarch64.whl"; + hash = "sha256-F8tz1DNncdRVzY3ai0iRMHpTRriQpOax1Lc9VlJY/uE="; }; aarch64-linux-311 = { - name = "torchaudio-2.3.1-cp311-cp311-manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp311-cp311-linux_aarch64.whl"; - hash = "sha256-yMcnyDQYJb0Y2RAXxMAPNrU7CPIXbNub3LDe8cRQsh0="; + name = "torchaudio-2.4.0-cp311-cp311-manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp311-cp311-linux_aarch64.whl"; + hash = "sha256-vpacCUZts14Nebiwnf9myu27lWm0LJA6LV4Nsq92Djw="; }; aarch64-linux-312 = { - name = "torchaudio-2.3.1-cp312-cp312-manylinux2014_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp312-cp312-linux_aarch64.whl"; - hash = "sha256-Qq9sekMOYmjywCjgYHjUE5ErXsbvoooJfr3Tw8eWWd8="; + name = "torchaudio-2.4.0-cp312-cp312-manylinux2014_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchaudio-2.4.0-cp312-cp312-linux_aarch64.whl"; + hash = "sha256-U00ZB7slLs0rqeHWHP9yIP1mCQ5j33s8EJzqd6GdTLg="; }; }; } diff --git a/pkgs/development/python-modules/torchaudio/default.nix b/pkgs/development/python-modules/torchaudio/default.nix index 3252a5b19cfa..f736036b1350 100644 --- a/pkgs/development/python-modules/torchaudio/default.nix +++ b/pkgs/development/python-modules/torchaudio/default.nix @@ -72,14 +72,14 @@ let in buildPythonPackage rec { pname = "torchaudio"; - version = "2.3.1"; + version = "2.4.0"; pyproject = true; src = fetchFromGitHub { owner = "pytorch"; repo = "audio"; rev = "refs/tags/v${version}"; - hash = "sha256-PYaqRNKIhQ1DnFRZYyJJfBszVM2Bmu7A/lvvzJ6lL3g="; + hash = "sha256-ltBPoFDA7GS9XRHyWeTRn1YTVqdaE/38KnkG4fp7Th8="; }; patches = [ ./0001-setup.py-propagate-cmakeFlags.patch ]; diff --git a/pkgs/development/python-modules/torchvision/bin.nix b/pkgs/development/python-modules/torchvision/bin.nix index d796159cbb9f..27dd914d7700 100644 --- a/pkgs/development/python-modules/torchvision/bin.nix +++ b/pkgs/development/python-modules/torchvision/bin.nix @@ -17,7 +17,7 @@ let pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion; srcs = import ./binary-hashes.nix version; unsupported = throw "Unsupported system"; - version = "0.18.1"; + version = "0.19.0"; in buildPythonPackage { inherit version; diff --git a/pkgs/development/python-modules/torchvision/binary-hashes.nix b/pkgs/development/python-modules/torchvision/binary-hashes.nix index c3283f1c90b6..177a3ae30a99 100644 --- a/pkgs/development/python-modules/torchvision/binary-hashes.nix +++ b/pkgs/development/python-modules/torchvision/binary-hashes.nix @@ -7,81 +7,81 @@ version: builtins.getAttr version { - "0.18.1" = { + "0.19.0" = { x86_64-linux-38 = { - name = "torchvision-0.18.1-cp38-cp38-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp38-cp38-linux_x86_64.whl"; - hash = "sha256-ruiWHcuKQY6S0G1LPpr1KYcpOkjBQjHDxQyO6jdB5BI="; + name = "torchvision-0.19.0-cp38-cp38-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchvision-0.19.0%2Bcu121-cp38-cp38-linux_x86_64.whl"; + hash = "sha256-5GynSUL5Of12jXr29wqhfAciLKj6abBXtAi05u29bys="; }; x86_64-linux-39 = { - name = "torchvision-0.18.1-cp39-cp39-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp39-cp39-linux_x86_64.whl"; - hash = "sha256-Hr9du9869EbITkK68u2+sb1vsMydO0kBr5acg5HRSl4="; + name = "torchvision-0.19.0-cp39-cp39-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchvision-0.19.0%2Bcu121-cp39-cp39-linux_x86_64.whl"; + hash = "sha256-R2KGR72zWQyauWXvtwhTMA1eHGh1lRHumUpvH5fywSM="; }; x86_64-linux-310 = { - name = "torchvision-0.18.1-cp310-cp310-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp310-cp310-linux_x86_64.whl"; - hash = "sha256-6VulosYWk5KB4Bur8RZk1tFyXoG7pX74H4HD5X5NQVE="; + name = "torchvision-0.19.0-cp310-cp310-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchvision-0.19.0%2Bcu121-cp310-cp310-linux_x86_64.whl"; + hash = "sha256-XuEDx+tH+LCIN+DkixePfsyR12nSthJAuQy1qi0Gznc="; }; x86_64-linux-311 = { - name = "torchvision-0.18.1-cp311-cp311-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp311-cp311-linux_x86_64.whl"; - hash = "sha256-KyrsLGjguhf57tiSF5b6Lbx6ST3qejtF0lwFWtQXSGg="; + name = "torchvision-0.19.0-cp311-cp311-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchvision-0.19.0%2Bcu121-cp311-cp311-linux_x86_64.whl"; + hash = "sha256-NpTVJ7SPribGrEpDWWC4tXk9YcXxQgtr77lLM8mm/Ng="; }; x86_64-linux-312 = { - name = "torchvision-0.18.1-cp312-cp312-linux_x86_64.whl"; - url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp312-cp312-linux_x86_64.whl"; - hash = "sha256-zo1bmSBW8GQKOe9XNDQuQ8pKgBVH3if7jbwwVdk0WUc="; + name = "torchvision-0.19.0-cp312-cp312-linux_x86_64.whl"; + url = "https://download.pytorch.org/whl/cu121/torchvision-0.19.0%2Bcu121-cp312-cp312-linux_x86_64.whl"; + hash = "sha256-9M7FuSc1N6VG5V6eCI++01kM+2kn+IFX1K/s7iPBJek="; }; aarch64-darwin-38 = { - name = "torchvision-0.18.1-cp38-cp38-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp38-cp38-macosx_11_0_arm64.whl"; - hash = "sha256-scOGT6k3jIi86K0O81mfTyU5eJfOYS4cJFx0uXCS814="; + name = "torchvision-0.19.0-cp38-cp38-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp38-cp38-macosx_11_0_arm64.whl"; + hash = "sha256-hU6WehapQJ6UG1u+WqNXsj9xWLzLneNa4g/UlF8F7NE="; }; aarch64-darwin-39 = { - name = "torchvision-0.18.1-cp39-cp39-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp39-cp39-macosx_11_0_arm64.whl"; - hash = "sha256-l1uFlMD1KIh1QIrLt0lG7qeGxbAI0SnA0EXQ6tI3Qrw="; + name = "torchvision-0.19.0-cp39-cp39-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp39-cp39-macosx_11_0_arm64.whl"; + hash = "sha256-3RJ5Vx1LaNWlPZt6Na7fkcTLHgsICZ9qHv+nsluMlec="; }; aarch64-darwin-310 = { - name = "torchvision-0.18.1-cp310-cp310-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp310-cp310-macosx_11_0_arm64.whl"; - hash = "sha256-PmlOVLBUja2ZwSr2vwyOTzNQE305Hc0ZryKhxfiTIrM="; + name = "torchvision-0.19.0-cp310-cp310-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp310-cp310-macosx_11_0_arm64.whl"; + hash = "sha256-7IdO+F3LJMaeYA9uJ2r4ksgM3j/9rrcnXv2kYyQrwqg="; }; aarch64-darwin-311 = { - name = "torchvision-0.18.1-cp311-cp311-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp311-cp311-macosx_11_0_arm64.whl"; - hash = "sha256-gLXXlN0P26eHrcIvGjZ6Xq1FIydoZHPLJg3ZQ2S8VqY="; + name = "torchvision-0.19.0-cp311-cp311-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp311-cp311-macosx_11_0_arm64.whl"; + hash = "sha256-2/OqcaOJkkT8iEMD7TxGBKFggk/vrHfoIxelRj78HZs="; }; aarch64-darwin-312 = { - name = "torchvision-0.18.1-cp312-cp312-macosx_11_0_arm64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp312-cp312-macosx_11_0_arm64.whl"; - hash = "sha256-K+bwv3xFXImlGh27b2aNNsbtxHn0mskS10XRDfVxVlc="; + name = "torchvision-0.19.0-cp312-cp312-macosx_11_0_arm64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp312-cp312-macosx_11_0_arm64.whl"; + hash = "sha256-wJ747RhPqHf2JRtiAibnT2grjx1rNBRWQo1JVbjZxnA="; }; aarch64-linux-38 = { - name = "torchvision-0.18.1-cp38-cp38-linux_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp38-cp38-linux_aarch64.whl"; - hash = "sha256-lybDFqJQHfhQPlpdxGpjGv1MUVqViXLlt/e5yH0hJcA="; + name = "torchvision-0.19.0-cp38-cp38-linux_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp38-cp38-linux_aarch64.whl"; + hash = "sha256-B5ppbgsstS5L4wr6jps9fSgPAqK1/+3X6CH6Hv0aWo0="; }; aarch64-linux-39 = { - name = "torchvision-0.18.1-cp39-cp39-linux_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp39-cp39-linux_aarch64.whl"; - hash = "sha256-VL/NNSq7OW1cnCN9IAFnwXi9E2BRsTjh6O9GzjZ8J3M="; + name = "torchvision-0.19.0-cp39-cp39-linux_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp39-cp39-linux_aarch64.whl"; + hash = "sha256-X5pZjc+CvfyORDbOdHY7OHfavsOzP5RhO5Tt4T4+Te4="; }; aarch64-linux-310 = { - name = "torchvision-0.18.1-cp310-cp310-linux_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp310-cp310-linux_aarch64.whl"; - hash = "sha256-Vz/1I8c5QF7bCF9ly1kvSC0oow4psL5MS6CAQLOueF8="; + name = "torchvision-0.19.0-cp310-cp310-linux_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp310-cp310-linux_aarch64.whl"; + hash = "sha256-1GfUNABf0Foieiunr0xZG7Z+bUqXu9Bu2o2oP0Pp/Qc="; }; aarch64-linux-311 = { - name = "torchvision-0.18.1-cp311-cp311-linux_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp311-cp311-linux_aarch64.whl"; - hash = "sha256-zrmTqILxrnrjc+05wo1+PoAiBbDlmn7YTvQCjwu6jX8="; + name = "torchvision-0.19.0-cp311-cp311-linux_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp311-cp311-linux_aarch64.whl"; + hash = "sha256-Tmqk+j8Lw1mfoHHBSeZRo+a91nyRYXlEePn5FHHEBqI="; }; aarch64-linux-312 = { - name = "torchvision-0.18.1-cp312-cp312-linux_aarch64.whl"; - url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp312-cp312-linux_aarch64.whl"; - hash = "sha256-E9JNkE9l5i1moeDEH67GMLwZOGe4pKARZnaeio6N+Ok="; + name = "torchvision-0.19.0-cp312-cp312-linux_aarch64.whl"; + url = "https://download.pytorch.org/whl/cpu/torchvision-0.19.0-cp312-cp312-linux_aarch64.whl"; + hash = "sha256-vg8noouOnyrpijGvNKS90qW/FU2SvXOleXyNIVb7OrY="; }; }; } diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix index ea0453b8bc59..b25fdc2c4281 100644 --- a/pkgs/development/python-modules/torchvision/default.nix +++ b/pkgs/development/python-modules/torchvision/default.nix @@ -18,7 +18,7 @@ let inherit (cudaPackages) backendStdenv; pname = "torchvision"; - version = "0.18.1"; + version = "0.19.0"; in buildPythonPackage { inherit pname version; @@ -27,7 +27,7 @@ buildPythonPackage { owner = "pytorch"; repo = "vision"; rev = "refs/tags/v${version}"; - hash = "sha256-aFm6CyoMA8HtpOAVF5Q35n3JRaOXYswWEqfooORUKsw="; + hash = "sha256-OVwdEqKEoZR1jtcg4ODyvIZvP9UQPodPv8qnTqbA/pc="; }; nativeBuildInputs = [ @@ -76,6 +76,7 @@ buildPythonPackage { meta = { description = "PyTorch vision library"; homepage = "https://pytorch.org/"; + changelog = "https://github.com/pytorch/vision/releases/tag/v${version}"; license = lib.licenses.bsd3; platforms = with lib.platforms; linux ++ lib.optionals (!cudaSupport) darwin; maintainers = with lib.maintainers; [ ericsagnes ];