<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>