grab-site icon indicating copy to clipboard operation
grab-site copied to clipboard

fb-re2 dependency clang compile error on macOS Sonoma

Open xor-gate opened this issue 1 year ago • 2 comments

Installing on macOS Sonoma according to the instructions. Clang compile failed on fb-re2 dependancy. Probably it tries to download latest release which is broken. Dependencies should be pinned to a working version.

  • Sonoma 14.2
  • Apple clang version 15.0.0 (clang-1500.1.0.2.5)
  • Homebrew Python 3.8
DEPRECATION: fb-re2 is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  Running setup.py install for fb-re2 ... error
  error: subprocess-exited-with-error

  × Running setup.py install for fb-re2 did not run successfully.
  │ exit code: 1
  ╰─> [110 lines of output]
      running install
      running build
      running build_py
      creating build
      creating build/lib.macosx-14-x86_64-3.8
      copying re2.py -> build/lib.macosx-14-x86_64-3.8
      running build_ext
      building '_re2' extension
      creating build/temp.macosx-14-x86_64-3.8
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -I/usr/local/include -I/usr/local/opt/openssl@3/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/tcl-tk/include/tcl-tk -I/Users/jerry/workspaces/grab-site/venv/include -I/usr/local/Cellar/[email protected]/3.8.18_1/Frameworks/Python.framework/Versions/3.8/include/python3.8 -c _re2.cc -o build/temp.macosx-14-x86_64-3.8/_re2.o -std=c++11
      In file included from _re2.cc:37:
      In file included from /usr/local/include/re2/re2.h:222:
      In file included from /usr/local/include/absl/base/call_once.h:34:
      In file included from /usr/local/include/absl/base/internal/invoke.h:40:
      In file included from /usr/local/include/absl/base/config.h:86:
      /usr/local/include/absl/base/policy_checks.h:79:2: error: "C++ versions less than C++14 are not supported."
      #error "C++ versions less than C++14 are not supported."
       ^
      In file included from _re2.cc:37:
      In file included from /usr/local/include/re2/re2.h:224:
      In file included from /usr/local/include/absl/types/optional.h:39:
      /usr/local/include/absl/utility/utility.h:164:12: error: no member named 'in_place_t' in namespace 'std'
      using std::in_place_t;
            ~~~~~^
      /usr/local/include/absl/utility/utility.h:165:12: error: no member named 'in_place' in namespace 'std'
      using std::in_place;
            ~~~~~^
      /usr/local/include/absl/utility/utility.h:181:12: error: no member named 'in_place_type' in namespace 'std'
      using std::in_place_type;
            ~~~~~^
      /usr/local/include/absl/utility/utility.h:182:12: error: no member named 'in_place_type_t' in namespace 'std'
      using std::in_place_type_t;
            ~~~~~^
      /usr/local/include/absl/utility/utility.h:198:12: error: no member named 'in_place_index' in namespace 'std'
      using std::in_place_index;
            ~~~~~^
      /usr/local/include/absl/utility/utility.h:199:12: error: no member named 'in_place_index_t' in namespace 'std'
      using std::in_place_index_t;
            ~~~~~^
      In file included from _re2.cc:37:
      In file included from /usr/local/include/re2/re2.h:224:
      /usr/local/include/absl/types/optional.h:48:12: error: no member named 'optional' in namespace 'std'
      using std::optional;
            ~~~~~^
      /usr/local/include/absl/types/optional.h:49:12: error: no member named 'make_optional' in namespace 'std'
      using std::make_optional;
            ~~~~~^
      /usr/local/include/absl/types/optional.h:50:12: error: no member named 'nullopt_t' in namespace 'std'; did you mean 'nullptr_t'?
      using std::nullopt_t;
            ~~~~~^~~~~~~~~
                 nullptr_t
      /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/cstddef:59:9: note: 'nullptr_t' declared here
      using ::nullptr_t;
              ^
      In file included from _re2.cc:37:
      In file included from /usr/local/include/re2/re2.h:224:
      /usr/local/include/absl/types/optional.h:51:12: error: no member named 'nullopt' in namespace 'std'
      using std::nullopt;
            ~~~~~^
      In file included from _re2.cc:37:
      /usr/local/include/re2/re2.h:844:46: error: no member named 'optional' in namespace 'absl'
      template <typename T> struct Parse3ary<absl::optional<T>> : public Parse3ary<T> {};
                                             ~~~~~~^
      /usr/local/include/re2/re2.h:844:55: error: 'T' does not refer to a value
      template <typename T> struct Parse3ary<absl::optional<T>> : public Parse3ary<T> {};
                                                            ^
      /usr/local/include/re2/re2.h:844:20: note: declared here
      template <typename T> struct Parse3ary<absl::optional<T>> : public Parse3ary<T> {};
                         ^
      /usr/local/include/re2/re2.h:844:57: error: expected unqualified-id
      template <typename T> struct Parse3ary<absl::optional<T>> : public Parse3ary<T> {};
                                                              ^
      /usr/local/include/re2/re2.h:845:46: error: no member named 'optional' in namespace 'absl'
      template <typename T> struct Parse4ary<absl::optional<T>> : public Parse4ary<T> {};
                                             ~~~~~~^
      /usr/local/include/re2/re2.h:845:55: error: 'T' does not refer to a value
      template <typename T> struct Parse4ary<absl::optional<T>> : public Parse4ary<T> {};
                                                            ^
      /usr/local/include/re2/re2.h:845:20: note: declared here
      template <typename T> struct Parse4ary<absl::optional<T>> : public Parse4ary<T> {};
                         ^
      /usr/local/include/re2/re2.h:845:57: error: expected unqualified-id
      template <typename T> struct Parse4ary<absl::optional<T>> : public Parse4ary<T> {};
                                                              ^
      /usr/local/include/re2/re2.h:848:45: error: no template named 'optional' in namespace 'absl'
      bool Parse(const char* str, size_t n, absl::optional<T>* dest) {
                                            ~~~~~~^
      /usr/local/include/re2/re2.h:864:45: error: no template named 'optional' in namespace 'absl'
      bool Parse(const char* str, size_t n, absl::optional<T>* dest, int radix) {
                                            ~~~~~~^
      _re2.cc:211:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
        PyObject_HEAD_INIT(NULL)
        ^~~~~~~~~~~~~~~~~~~~~~~~
      /usr/local/Cellar/[email protected]/3.8.18_1/Frameworks/Python.framework/Versions/3.8/include/python3.8/object.h:85:5: note: expanded from macro 'PyObject_HEAD_INIT'
          1, type },
          ^~~~~~~
      _re2.cc:255:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
        PyObject_HEAD_INIT(NULL)
        ^~~~~~~~~~~~~~~~~~~~~~~~
      /usr/local/Cellar/[email protected]/3.8.18_1/Frameworks/Python.framework/Versions/3.8/include/python3.8/object.h:85:5: note: expanded from macro 'PyObject_HEAD_INIT'
          1, type },
          ^~~~~~~
      _re2.cc:299:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
        PyObject_HEAD_INIT(NULL)
        ^~~~~~~~~~~~~~~~~~~~~~~~
      /usr/local/Cellar/[email protected]/3.8.18_1/Frameworks/Python.framework/Versions/3.8/include/python3.8/object.h:85:5: note: expanded from macro 'PyObject_HEAD_INIT'
          1, type },
          ^~~~~~~
      3 warnings and 19 errors generated.
      error: command 'clang' failed with exit status 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> fb-re2

xor-gate avatar Jan 05 '24 05:01 xor-gate

I’m experiencing the same error.

Running setup.py install for fb-re2 ... error
  error: subprocess-exited-with-error

  × Running setup.py install for fb-re2 did not run successfully.
  │ exit code: 1
  ╰─> [15 lines of output]
      running install
      running build
      running build_py
      creating build
      creating build/lib.macosx-14.0-arm64-3.7
      copying re2.py -> build/lib.macosx-14.0-arm64-3.7
      running build_ext
      building '_re2' extension
      creating build/temp.macosx-14.0-arm64-3.7
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/ksykes/gs-venv/include -I/Users/ksykes/.pyenv/versions/3.7.16/include/python3.7m -c _re2.cc -o build/temp.macosx-14.0-arm64-3.7/_re2.o -std=c++11
      _re2.cc:37:10: fatal error: 're2/re2.h' file not found
      #include <re2/re2.h>
               ^~~~~~~~~~~
      1 error generated.
      error: command 'clang' failed with exit status 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> fb-re2

note: This is an issue with the package mentioned above, not pip.

What is the best way to fix this?

ksykes avatar Feb 16 '24 15:02 ksykes

@xor-gate and @ksykes , please try once more and see if your compilation errors persist. https://github.com/ArchiveTeam/grab-site/pull/240 has been merged in to switch to the mainline release on re2 bindings.

HeliosLHC avatar Jul 07 '24 00:07 HeliosLHC