public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Benda XU" <heroxbd@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/pytorch/, sci-libs/pytorch/files/
Date: Sun, 26 Dec 2021 13:38:17 +0000 (UTC)	[thread overview]
Message-ID: <1640525812.74376475a3dbb8124f5fedea9af4ba69a2a4b82f.heroxbd@gentoo> (raw)

commit:     74376475a3dbb8124f5fedea9af4ba69a2a4b82f
Author:     YiyangWu <xgreenlandforwyy <AT> gmail <DOT> com>
AuthorDate: Sat Dec 25 16:46:19 2021 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Sun Dec 26 13:36:52 2021 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=74376475

sci-libs/pytorch: fix python build with >=setuptools-59.6

Reference: https://github.com/pytorch/pytorch/commit/07767569c964552702bf374da753212eb9cde327
Reference: https://github.com/gentoo/sci/pull/1123#issuecomment-999597677
Package-Manager: Portage-3.0.22, Repoman-3.0.3
Closes: https://github.com/gentoo/sci/pull/1130
Signed-off-by: Yiyang Wu <xgreenlandforwyy <AT> gmail.com>
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>

 .../files/pytorch-1.10.0-fix-distutils.patch       | 93 ++++++++++++++++++++++
 sci-libs/pytorch/pytorch-1.10.1.ebuild             |  1 +
 2 files changed, 94 insertions(+)

diff --git a/sci-libs/pytorch/files/pytorch-1.10.0-fix-distutils.patch b/sci-libs/pytorch/files/pytorch-1.10.0-fix-distutils.patch
new file mode 100644
index 000000000..334bcda6f
--- /dev/null
+++ b/sci-libs/pytorch/files/pytorch-1.10.0-fix-distutils.patch
@@ -0,0 +1,93 @@
+This fix distutils-r1_src_install failure with setuptools-59
+
+From 9af2edb158b3603c44eff6e12896f1d215e8b898 Mon Sep 17 00:00:00 2001
+From: Nikita Shulga <nshulga@fb.com>
+Date: Tue, 14 Dec 2021 07:15:34 -0800
+Subject: [PATCH] Properly import LooseVersion
+
+This fixes regression introduced by https://github.com/pytorch/pytorch/pull/57040
+
+Somehow importing `distutils` from `setuptool` caused import of
+`distutils.versions`, which is not a documented dependency and got
+change with the release of
+[setuptools-59.6.0](https://github.com/pypa/setuptools/tree/v59.6.0)
+We should not rely on that, as
+`import distutils` never re-imports `distutils.version`, which one can
+see by observing
+https://github.com/python/cpython/blob/3.9/Lib/distutils/__init__.py
+or by running:
+```
+% python3 -c "import distutils;print(distutils.__version__, dir(distutils))"
+3.7.5 ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'sys']
+% python3 -c "from setuptools import distutils;print(distutils.__version__, dir(distutils))"
+3.7.5 ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'archive_util', 'ccompiler', 'cmd', 'config', 'core', 'debug', 'dep_util', 'dir_util', 'dist', 'errors', 'extension', 'fancy_getopt', 'file_util', 'filelist', 'log', 'spawn', 'sys', 'sysconfig', 'util', 'version']
+```
+---
+ test/run_test.py                                      | 4 ++--
+ tools/setup_helpers/cmake.py                          | 8 ++++----
+ torch/testing/_internal/common_methods_invocations.py | 8 ++++----
+ 3 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/tools/setup_helpers/cmake.py b/tools/setup_helpers/cmake.py
+index 01e87b4bca879..686b5c4a34f4c 100644
+--- a/tools/setup_helpers/cmake.py
++++ b/tools/setup_helpers/cmake.py
+@@ -8,7 +8,7 @@
+ from subprocess import check_call, check_output, CalledProcessError
+ import sys
+ import sysconfig
+-from setuptools import distutils  # type: ignore[import]
++from distutils.version import LooseVersion
+ from typing import IO, Any, Dict, List, Optional, Union, cast
+ 
+ from . import which
+@@ -120,10 +120,10 @@ def _get_cmake_command() -> str:
+             return cmake_command
+         cmake3 = which('cmake3')
+         cmake = which('cmake')
+-        if cmake3 is not None and CMake._get_version(cmake3) >= distutils.version.LooseVersion("3.10.0"):
++        if cmake3 is not None and CMake._get_version(cmake3) >= LooseVersion("3.10.0"):
+             cmake_command = 'cmake3'
+             return cmake_command
+-        elif cmake is not None and CMake._get_version(cmake) >= distutils.version.LooseVersion("3.10.0"):
++        elif cmake is not None and CMake._get_version(cmake) >= LooseVersion("3.10.0"):
+             return cmake_command
+         else:
+             raise RuntimeError('no cmake or cmake3 with version >= 3.10.0 found')
+@@ -134,7 +134,7 @@ def _get_version(cmd: str) -> Any:
+ 
+         for line in check_output([cmd, '--version']).decode('utf-8').split('\n'):
+             if 'version' in line:
+-                return distutils.version.LooseVersion(line.strip().split(' ')[2])
++                return LooseVersion(line.strip().split(' ')[2])
+         raise RuntimeError('no version found')
+ 
+     def run(self, args: List[str], env: Dict[str, str]) -> None:
+diff --git a/torch/testing/_internal/common_methods_invocations.py b/torch/testing/_internal/common_methods_invocations.py
+index b66e6470b590c..6ec77c2b0ce2e 100644
+--- a/torch/testing/_internal/common_methods_invocations.py
++++ b/torch/testing/_internal/common_methods_invocations.py
+@@ -40,7 +40,7 @@
+      freeze_rng_state)
+ import torch.testing._internal.opinfo_helper as opinfo_helper
+ 
+-from setuptools import distutils
++from distutils.version import LooseVersion
+ 
+ has_scipy_fft = False
+ if TEST_SCIPY:
+@@ -14008,11 +14008,11 @@ def ref_pairwise_distance(input1, input2):
+                    skips=(
+                        # Reference: https://github.com/pytorch/pytorch/pull/49155#issuecomment-742664611
+                        DecorateInfo(unittest.skip("Skipped!"), 'TestUnaryUfuncs', 'test_reference_numerics_extremal',
+-                                    active_if=TEST_SCIPY and distutils.version.LooseVersion(scipy.__version__) < "1.4.0"),
++                                    active_if=TEST_SCIPY and LooseVersion(scipy.__version__) < "1.4.0"),
+                        DecorateInfo(unittest.skip("Skipped!"), 'TestUnaryUfuncs', 'test_reference_numerics_hard',
+-                                    active_if=TEST_SCIPY and distutils.version.LooseVersion(scipy.__version__) < "1.4.0"),
++                                    active_if=TEST_SCIPY and LooseVersion(scipy.__version__) < "1.4.0"),
+                        DecorateInfo(unittest.skip("Skipped!"), 'TestUnaryUfuncs', 'test_reference_numerics_normal',
+-                                    active_if=TEST_SCIPY and distutils.version.LooseVersion(scipy.__version__) < "1.4.0"),
++                                    active_if=TEST_SCIPY and LooseVersion(scipy.__version__) < "1.4.0"),
+                    )),
+     UnaryUfuncInfo('lgamma',
+                    ref=reference_lgamma if TEST_SCIPY else _NOTHING,

diff --git a/sci-libs/pytorch/pytorch-1.10.1.ebuild b/sci-libs/pytorch/pytorch-1.10.1.ebuild
index e3b49e630..2a11e6240 100644
--- a/sci-libs/pytorch/pytorch-1.10.1.ebuild
+++ b/sci-libs/pytorch/pytorch-1.10.1.ebuild
@@ -117,6 +117,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-1.7.1-no-rpath.patch
 	"${FILESDIR}"/${PN}-1.7.1-torch_shm_manager.patch
 	"${FILESDIR}"/${PN}-1.10.0-nonull.patch
+	"${FILESDIR}"/${PN}-1.10.0-fix-distutils.patch
 )
 
 distutils_enable_tests pytest


             reply	other threads:[~2021-12-26 13:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-26 13:38 Benda XU [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-07-03  8:37 [gentoo-commits] proj/sci:master commit in: sci-libs/pytorch/, sci-libs/pytorch/files/ Andrew Ammerlaan
2021-12-27 11:50 Andrew Ammerlaan
2021-12-26 14:12 Andrew Ammerlaan
2021-12-22 14:33 Andrew Ammerlaan
2021-01-30 15:39 Andrew Ammerlaan
2021-01-24 13:38 Benda XU
2020-08-11 13:44 Benda XU
2020-08-07 12:56 Benda XU
2020-08-06  1:10 Benda XU

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1640525812.74376475a3dbb8124f5fedea9af4ba69a2a4b82f.heroxbd@gentoo \
    --to=heroxbd@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox