tudo-astroparticlephysics / PROPOSAL

Monte Carlo Simulation propagating charged Leptons through Media as C++ Library
GNU Lesser General Public License v3.0
35 stars 21 forks source link

Installation Apple M1 failure #302

Open harmscho opened 2 years ago

harmscho commented 2 years ago

I tried installing proposal in an apple M1 machine: Darwin hin-1702c-2.local 21.3.0 Darwin Kernel Version 21.3.0: Wed Jan 5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T8101 arm64

using pip install proposal

which lead to the following error:

Collecting proposal
  Using cached proposal-7.3.1.tar.gz (678 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Building wheels for collected packages: proposal
  Building wheel for proposal (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /Users/harmscho/opt/miniconda3/envs/da/bin/python /Users/harmscho/opt/miniconda3/envs/da/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/tmpydritfce
       cwd: /private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-install-ty2xxsz5/proposal_d4b97b00b423451a81b4c9af0e24e7a6
  Complete output (166 lines):
  running bdist_wheel
  running build
  running build_ext
  WARN: Migration: Updating settings.yml
  Configuration:
  [settings]
  arch=x86_64
  arch_build=x86_64
  build_type=Release
  compiler=clang
  compiler.libcxx=libstdc++
  compiler.version=12
  os=Macos
  os_build=Macos
  [options]
  with_python=True
  with_testing=False
  [build_requires]
  [env]

  fmt/7.1.3: WARN: Package binary is corrupted, removing: f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a
  conanfile.py (proposal/None): Installing package
  Requirements
      boost/1.75.0 from 'conancenter' - Cache
      bzip2/1.0.8 from 'conancenter' - Cache
      cubicinterpolation/0.1.4 from 'conancenter' - Cache
      eigen/3.3.9 from 'conancenter' - Cache
      fmt/7.1.3 from 'conancenter' - Cache
      libbacktrace/cci.20210118 from 'conancenter' - Cache
      libiconv/1.16 from 'conancenter' - Cache
      nlohmann_json/3.9.1 from 'conancenter' - Cache
      pybind11/2.6.2 from 'conancenter' - Cache
      spdlog/1.8.2 from 'conancenter' - Cache
      zlib/1.2.12 from 'conancenter' - Cache
  Packages
      boost/1.75.0:05f173e0a060a8b3409d03bd067741c4ded83a2a - Build
      bzip2/1.0.8:a59fd117dd084c106270d4353396c78c7a6bff63 - Cache
      cubicinterpolation/0.1.4:0b83950c2defc486db639e2ce28076c8da932f77 - Build
      eigen/3.3.9:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
      fmt/7.1.3:f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a - Build
      libbacktrace/cci.20210118:a7d10f8ef501095831af5963d116fbc85c9001c6 - Build
      libiconv/1.16:a7d10f8ef501095831af5963d116fbc85c9001c6 - Build
      nlohmann_json/3.9.1:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
      pybind11/2.6.2:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 - Cache
      spdlog/1.8.2:0f011f2bb5409eb603064d1c6cc6b035d68d7108 - Build
      zlib/1.2.12:a7d10f8ef501095831af5963d116fbc85c9001c6 - Build
  Build requirements
      b2/4.8.0 from 'conancenter' - Cache
  Build requirements packages
      b2/4.8.0:46f53f156846659bf39ad6675fa0ee8156e859fe - Cache

  Installing (downloading, building) binaries...
  b2/4.8.0: Already installed!
  bzip2/1.0.8: Already installed!
  bzip2/1.0.8: Appending PATH environment variable: /Users/harmscho/.conan/data/bzip2/1.0.8/_/_/package/a59fd117dd084c106270d4353396c78c7a6bff63/bin
  eigen/3.3.9: Already installed!
  fmt/7.1.3: WARN: Build folder is dirty, removing it: /Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a
  fmt/7.1.3: Copying sources to build folder
  fmt/7.1.3: Building your package in /Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a
  fmt/7.1.3: Generator txt created conanbuildinfo.txt
  fmt/7.1.3: Calling generate()
  fmt/7.1.3: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
  fmt/7.1.3: Aggregating env generators
  fmt/7.1.3: Calling build()
  fmt/7.1.3: CMake command: cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="/Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/Users/harmscho/.conan/data/fmt/7.1.3/_/_/package/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" -DFMT_DOC="False" -DFMT_TEST="False" -DFMT_INSTALL="True" -DFMT_LIB_DIR="lib" -DFMT_OS="True" "/Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/."
  -- CMake version: 3.22.5
  -- Using Conan toolchain: /Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/generators/conan_toolchain.cmake
  -- Conan toolchain: Setting CMAKE_POSITION_INDEPENDENT_CODE=ON (options.fPIC)
  -- Conan toolchain: Setting BUILD_SHARED_LIBS = OFF
  -- The CXX compiler identification is AppleClang 13.1.6.13160021
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - failed
  -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
  -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - broken
  CMake Error at /private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/cmake/data/CMake.app/Contents/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake:62 (message):
    The C++ compiler

      "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++"

    is not able to compile a simple test program.

    It fails with the following output:

      Change Dir: /Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/Release/CMakeFiles/CMakeTmp

      Run Build Command(s):/usr/bin/make -f Makefile cmTC_a4712/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_a4712.dir/build.make CMakeFiles/cmTC_a4712.dir/build
      Building CXX object CMakeFiles/cmTC_a4712.dir/testCXXCompiler.cxx.o
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -D_GLIBCXX_USE_CXX11_ABI=0  -m64 -stdlib=libstdc++  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -fPIE -MD -MT CMakeFiles/cmTC_a4712.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_a4712.dir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_a4712.dir/testCXXCompiler.cxx.o -c /Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/Release/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
      clang: warning: include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
      Linking CXX executable cmTC_a4712
      /private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/cmake/data/CMake.app/Contents/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a4712.dir/link.txt --verbose=1
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -m64 -stdlib=libstdc++  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -m64  CMakeFiles/cmTC_a4712.dir/testCXXCompiler.cxx.o -o cmTC_a4712
      clang: warning: libstdc++ is deprecated; move to libc++ [-Wdeprecated]
      ld: library not found for -lstdc++
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      make[1]: *** [cmTC_a4712] Error 1
      make: *** [cmTC_a4712/fast] Error 2

    CMake will not be able to correctly generate this project.
  Call Stack (most recent call first):
    CMakeLists.txt:53 (project)

  -- Configuring incomplete, errors occurred!
  See also "/Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/Release/CMakeFiles/CMakeOutput.log".
  See also "/Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/Release/CMakeFiles/CMakeError.log".
  fmt/7.1.3:
  fmt/7.1.3: ERROR: Package 'f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a' build failed
  fmt/7.1.3: WARN: Build folder /Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/Release
  ERROR: fmt/7.1.3: Error in build() method, line 89
    cmake.configure(variables=cache_entries)
    ConanException: Error 1 while executing cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="/Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/build/generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/Users/harmscho/.conan/data/fmt/7.1.3/_/_/package/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" -DFMT_DOC="False" -DFMT_TEST="False" -DFMT_INSTALL="True" -DFMT_LIB_DIR="lib" -DFMT_OS="True" "/Users/harmscho/.conan/data/fmt/7.1.3/_/_/build/f8a0658ec1a3cdef0beae5fded5a63d4853a8c9a/."
  Using conan to install dependencies. Set environment variable NO_CONAN to skip conan.
  Traceback (most recent call last):
    File "/Users/harmscho/opt/miniconda3/envs/da/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 349, in <module>
      main()
    File "/Users/harmscho/opt/miniconda3/envs/da/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 331, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/Users/harmscho/opt/miniconda3/envs/da/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 248, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 244, in build_wheel
      return self._build_with_temp_dir(['bdist_wheel'], '.whl',
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 229, in _build_with_temp_dir
      self.run_setup()
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 174, in run_setup
      exec(code, locals())
    File "<string>", line 150, in <module>
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
      return distutils.core.setup(**attrs)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 177, in setup
      return run_commands(dist)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 193, in run_commands
      dist.run_commands()
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 968, in run_commands
      self.run_command(cmd)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
      cmd_obj.run()
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 317, in run_command
      self.distribution.run_command(command)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
      cmd_obj.run()
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/command/build.py", line 24, in run
      super().run()
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 131, in run
      self.run_command(cmd_name)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 317, in run_command
      self.distribution.run_command(command)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-build-env-2a31puf3/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
      cmd_obj.run()
    File "<string>", line 88, in run
    File "<string>", line 119, in build_cmake
    File "/Users/harmscho/opt/miniconda3/envs/da/lib/python3.9/subprocess.py", line 528, in run
      raise CalledProcessError(retcode, process.args,
  subprocess.CalledProcessError: Command '['conan', 'install', '/private/var/folders/qb/7np03l893q3dxqy0k3zz497w0000gn/T/pip-install-ty2xxsz5/proposal_d4b97b00b423451a81b4c9af0e24e7a6', '-o with_python=True', '-o with_testing=False', '--build=missing']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for proposal
Failed to build proposal
ERROR: Could not build wheels for proposal which use PEP 517 and cannot be installed directly
Jean1995 commented 2 years ago

I would assume that conan is unable to detect the correct profile for your M1 system (similar to issue #299).

My first idea to fix this problem would be to adapt the conan profile. At the moment, it shows x86_64 as the system architecture, although it should probably be armv8.

This can be changed with the command

conan profile update settings.arch=armv8 default 
conan profile update settings.arch_build=armv8 default

and trying to install proposal again.

If this doesn't work already, I am also not sure whether the compiler.libcxx setting is correct. On other M1 systems, this has worked with libc++ instead of libstdc++. This can be changed with

conan profile update settings.compiler.libcxx=libc++ default