Macaulay2 / homebrew-tap

The Macaulay2 tap for Homebrew
6 stars 7 forks source link

libicudata.72.dylib not found - have .73 #187

Closed tom111 closed 1 year ago

tom111 commented 1 year ago

This is an Intel iMac running Ventura 13.4.1 (22F82) with completely up-to-date homebrew.

There is some libicu linking / version trouble again (with the bottled version). I have libicudata.73.2.dylib which should satisfy the dependency just as well. Why is the .72 version hard-wired? (I never understood linking on MacOS anyway... :( )

~ brew install Macaulay2
==> Fetching macaulay2/tap/macaulay2
==> Downloading https://github.com/Macaulay2/homebrew-tap/releases/download/macaulay2-1.22/macaulay2-1.22.ventura.bottle.tar.gz
Already downloaded: /Users/tom/Library/Caches/Homebrew/downloads/ffd6eaeaf9f1e36120119f5b871d9edc32aeee6ff3083f0d0ae410bdbc447f0d--macaulay2-1.22.ventura.bottle.tar.gz
==> Installing macaulay2 from macaulay2/tap
==> Pouring macaulay2-1.22.ventura.bottle.tar.gz
==> Caveats
Emacs Lisp files have been installed to:
  /usr/local/share/emacs/site-lisp/macaulay2
==> Summary
🍺  /usr/local/Cellar/macaulay2/1.22: 19,973 files, 230.5MB
==> Running `brew cleanup macaulay2`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
➜  ~ M2
dyld[6958]: Library not loaded: /usr/local/opt/icu4c/lib/libicudata.72.dylib
  Referenced from: <A01D2E6D-7091-3081-9A77-9D6F8BB8A1C6> /usr/local/Cellar/macaulay2/1.22/bin/M2-binary
  Reason: tried: '/usr/local/bin/../lib/Macaulay2/lib/libicudata.72.dylib' (no such file), '/libicudata.72.dylib' (no such file), '/usr/local/opt/icu4c/lib/libicudata.72.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/icu4c/lib/libicudata.72.dylib' (no such file), '/usr/local/opt/icu4c/lib/libicudata.72.dylib' (no such file), '/usr/local/lib/libicudata.72.dylib' (no such file), '/usr/lib/libicudata.72.dylib' (no such file, not in dyld cache), '/usr/local/bin/../lib/Macaulay2/lib/libicudata.72.dylib' (no such file), '/libicudata.72.dylib' (no such file), '/usr/local/Cellar/icu4c/73.2/lib/libicudata.72.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/icu4c/73.2/lib/libicudata.72.dylib' (no such file), '/usr/local/Cellar/icu4c/73.2/lib/libicudata.72.dylib' (no such file), '/usr/local/lib/libicudata.72.dylib' (no such file), '/usr/lib/libicudata.72.dylib' (no such file, not in dyld cache)
[1]    6958 abort      M2
~ ls /usr/local/opt/icu4c/lib/libicudata.*
/usr/local/opt/icu4c/lib/libicudata.73.2.dylib /usr/local/opt/icu4c/lib/libicudata.a
/usr/local/opt/icu4c/lib/libicudata.73.dylib   /usr/local/opt/icu4c/lib/libicudata.dylib
mahrud commented 1 year ago

For whatever reason, for a few libraries the executable is linked with the dynamic version in the cellar, which changes names and directory in each version. See https://github.com/Macaulay2/homebrew-tap/issues/163.

I opened #188 create new bottles, but this needs a more permanent solution.

tom111 commented 1 year ago

Thanks!

I also tried building my own bottle which failed as follows:

 ~ brew reinstall --build-from-source Macaulay2

FAILED: Macaulay2/e/CMakeFiles/M2-engine.dir/matrix-sort.cpp.o
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -DNDEBUG -DOM_NDEBUG -DSING_NDEBUG -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/Macaulay2/e -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/Macaulay2/d -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/Macaulay2/c -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/BUILD/build-brew/Macaulay2/d -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/Macaulay2/e/mathic -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/Macaulay2/e/memtailor -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/Macaulay2/e/mathicgb -I/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/libxml2 -I/usr/local/opt/mpsolve/include -I/usr/local/opt/frobby/include -I/usr/local/opt/factory/include -I/usr/local/opt/flint/include -I/usr/local/opt/ntl/include -I/usr/local/opt/mpfi/include -I/usr/local/opt/mpfr/include -I/usr/local/opt/bdw-gc/include -I/usr/local/opt/gdbm/include -I/usr/local/opt/libatomic_ops/include -isystem /usr/local/opt/eigen/include/eigen3 -isystem /usr/local/opt/gmp/include -isystem /usr/local/Cellar/givaro/4.2.0/include -isystem /usr/local/Cellar/fflas-ffpack/2.5.0/include -isystem /usr/local/opt/tbb/include -O3 -DNDEBUG -std=gnu++17 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -mmacosx-version-min=13 -Wuninitialized -g --sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/BUILD/build-brew/usr-host/include -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/include -I/tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/BUILD/build-brew/include -Wall -Wextra -Wfatal-errors -Wcast-qual -Wno-unused-parameter -Wno-attributes -Wno-unused-command-line-argument -Wno-cast-qual -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-register -Wno-mismatched-tags -Wno-unused-variable -Xpreprocessor -fopenmp /usr/local/opt/libomp/lib/libomp.dylib -Xclang -MD -MT Macaulay2/e/CMakeFiles/M2-engine.dir/matrix-sort.cpp.o -MF Macaulay2/e/CMakeFiles/M2-engine.dir/matrix-sort.cpp.o.d -o Macaulay2/e/CMakeFiles/M2-engine.dir/matrix-sort.cpp.o -c /tmp/macaulay2-20230622-11228-574gk5/M2-release-1.22/M2/Macaulay2/e/matrix-sort.cpp
error: unknown argument: '-MD'
ninja: build stopped: subcommand failed.
mahrud commented 1 year ago

That's related to #181, but I thought this patch should have alleviated it until a new version of cmake is out.