<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1b550d78b1ec2b0dbf6d97a200c50a23fd055bbe">https://github.com/macports/macports-ports/commit/1b550d78b1ec2b0dbf6d97a200c50a23fd055bbe</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 1b550d78b1ec2b0dbf6d97a200c50a23fd055bbe
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Wed Feb 16 12:09:45 2022 -0500
<span style='display:block; white-space:pre;color:#404040;'> py-pytorch: add patch for google-glog breaking API change
</span><span style='display:block; white-space:pre;color:#404040;'> * Also revert workaround relying on google-glog-0.4
</span><span style='display:block; white-space:pre;color:#404040;'> * Background: https://github.com/macports/macports-ports/commit/677238996326f646fee8004bca66e55a8f6dfc28
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> See: https://trac.macports.org/ticket/63544
</span>---
python/py-pytorch/Portfile | 13 +++--
python/py-pytorch/files/patch-glog-init-check.diff | 65 ++++++++++++++++++++++
2 files changed, 72 insertions(+), 6 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pytorch/Portfile b/python/py-pytorch/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3ce40f706f9..032b4000a3f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-pytorch/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pytorch/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8,7 +8,7 @@ PortGroup python 1.0
</span>
name py-pytorch
version 1.8.1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 3
</span> github.setup pytorch pytorch ${version} v
fetch.type git
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -63,9 +63,6 @@ if {${name} ne ${subport}} {
</span> path:bin/cmake:cmake \
port:py${python.version}-setuptools
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # revert to google-glog dependency after this issue is fixed:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://github.com/pytorch/pytorch/issues/58054
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> depends_lib-append \
port:eigen3 \
port:gmp \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -75,7 +72,7 @@ if {${name} ne ${subport}} {
</span> port:zmq \
port:zstd \
port:tbb \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:google-glog-0.4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:google-glog \
</span> port:gflags \
port:leveldb \
port:lmdb \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,7 +84,7 @@ if {${name} ne ${subport}} {
</span> port:py${python.version}-numpy \
port:py${python.version}-pybind11 \
port:py${python.version}-typing_extensions \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python.version}-yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-yaml
</span>
if { ${python.version} < 37 } {
depends_lib-append port:py${python.version}-dataclasses
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -100,6 +97,10 @@ if {${name} ne ${subport}} {
</span> system -W ${worksrcpath} "git submodule update --init --recursive"
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Patch to fix init issue with google-glog 0.5.0, caused by breaking API change.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Refer to patch header for details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-glog-init-check.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Use Intel Math kernel Library
if {[variant_isset mkl]} {
patchfiles-append FindMKL-OMP.patch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pytorch/files/patch-glog-init-check.diff b/python/py-pytorch/files/patch-glog-init-check.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..1c9319a2c4d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pytorch/files/patch-glog-init-check.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,65 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==============================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Patch to fix reference to google-glog's IsGoogleLoggingInitialized().
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# In versions prior to 0.5.0, that function was in namespace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'google::glog_internal_namespace_'. Then the function was hidden in 0.5.0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# breaking dependents which rely on it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Meanwhile, google-glog has an upstream fix, which exposes that API via
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# public namespace 'google'. (And MacPorts includes that in our 'google-glog'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# port.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# As for PyTorch, it still relies on the internal namespace, which doesn't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# work with google-glob 0.5.0. So, patch to utilize public API, until PyTorch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# upstream provides a formal fix.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -CNielsen 2022-02-16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==============================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** a/c10/util/Logging.cpp.orig 2022-02-16 11:33:05.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- b/c10/util/Logging.cpp 2022-02-16 11:34:08.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+***************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 168,194 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C10_DEFINE_int(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ caffe2_log_level,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ google::GLOG_WARNING,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "The minimum log level that caffe2 will output.");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // Google glog's api does not have an external function that allows one to check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // if glog is initialized or not. It does have an internal function - so we are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // declaring it here. This is a hack but has been used by a bunch of others too
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // (e.g. Torch).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- namespace google {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- namespace glog_internal_namespace_ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- bool IsGoogleLoggingInitialized();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- } // namespace glog_internal_namespace_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- } // namespace google
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace c10 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool InitCaffeLogging(int* argc, char** argv) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (*argc == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This trick can only be used on UNIX platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! if (!::google::glog_internal_namespace_::IsGoogleLoggingInitialized())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ::google::InitGoogleLogging(argv[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This is never defined on Windows
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 168,184 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C10_DEFINE_int(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ caffe2_log_level,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ google::GLOG_WARNING,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "The minimum log level that caffe2 will output.");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace c10 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool InitCaffeLogging(int* argc, char** argv) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (*argc == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This trick can only be used on UNIX platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! if (!::google::IsGoogleLoggingInitialized())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ::google::InitGoogleLogging(argv[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // This is never defined on Windows
</span></pre><pre style='margin:0'>
</pre>