Open ultrasaurus opened 1 year ago
Hi @ultrasaurus!
Seems like some CMake + OSX-specific problem. I'll try to take a deeper look over the next few days 😄
Is this critical for you? Since it's about migrating data, do you have another way to import the data?
Hi @ultrasaurus! I managed to install mgmigrate
on my Mac M1 after having similar issues.
Here are the steps I did to reproduce the error:
I installed XCode and Homebrew and ran:
brew install git cmake make openssl postgresql
After that, I ran:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR="$(ls -rd -- /usr/local/Cellar/openssl@1.1/* | head -n 1)" -DCMAKE_INSTALL_PREFIX=. ..
just like in the instructions.
I got the same error as you:
CMake Error at /opt/homebrew/Cellar/cmake/3.25.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/opt/homebrew/Cellar/cmake/3.25.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/opt/homebrew/Cellar/cmake/3.25.1/share/cmake/Modules/FindOpenSSL.cmake:613 (find_package_handle_standard_args)
CMakeLists.txt:42 (find_package)
I then googled a bit and ran into this SO answer. Hence, I ran the following:
brew upgrade openssl
The output was: Warning: openssl 3.0.7 already installed
Then I ran:
mgmigrate % brew link --force openssl
Output:
Linking /opt/homebrew/Cellar/openssl@3/3.0.7... 5517 symlinks created.
If you need to have this software first in your PATH instead consider running:
echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
I decided to go for it and ran:
echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
and in the end, ran the last command from the SO answer to check:
pkg-config --modversion openssl
Output: 3.0.7
I removed the build folder, created a new one, and ran:
cmake -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR="$(ls -rd -- /usr/local/Cellar/openssl@3/* | head -n 1)" -DCMAKE_INSTALL_PREFIX=. ..
The above command is similar to the one in the README, but I changed the version of OpenSSL. After that, the build files were written to the build folder.
Let me know if that works for you.
Nice! Thanks 😄 Since it seems it's all about machine config, should be extend the README page and how?
@gitbuda I will extend the README. I will just wait a bit for @ultrasaurus, to see if the provided solution helped.
yeah, I had to do some work to install an older version of SSL, will try with newer one and let you know
I needed to run...
export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"
before this worked:
pkg-config --modversion openssl
For cmake to find my version of postgres, I needed to modify the command as:
cmake -DPostgreSQL_LIBRARY=/usr/local/opt/postgresql@9.5/lib -DPostgreSQL_INCLUDE_DIR=/usr/local/opt/postgresql@9.5/include -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR="$(ls -rd -- /usr/local/Cellar/openssl@3/* | head -n 1)" -DCMAKE_INSTALL_PREFIX=. ..
which was successful (as before), yet make
failed as before:
[ 51%] No install step for 'postgresql-proj'
[ 53%] Completed 'postgresql-proj'
[ 53%] Built target postgresql-proj
make: *** [all] Error 2
So, I was able to revert my changes to CMakeLists.txt
-- progress!
However, I'm still stuck with the same problem where make is not successful.
@ultrasaurus, I did not manage to reproduce your error. Did you install the XCode, as mentioned in README? Did you have any progress in the meantime?
yes, I've installed XCode and command-line tools. The issue is around configuring a specific version/installation of Postgres.
I think I don't know enough about cmake
to get it set up correctly. Is there something else I need to do to carry over the configuration to the make
stage? or other suggestions for debugging?
Hi @ultrasaurus, the error message you provided gives too little info, so please:
make -j1
to force single-threaded compilations, so the log messages are not mixed upAlso, I found a similar issue; maybe it helps.
Hi @ultrasaurus, unfortunately, sad news from my side, due to the increased amount of work, we stopped actively working on mgmigrate, this resulted in mgmigrate being tricky to use. This means this issue won't be resolved in the near term future, once we get back to mgmigrate this will be resolved.
We just added a short [notice] (https://github.com/memgraph/mgmigrate#notice) and archived the repo.
If you need help with migration to Memgraph, consider joining our Discord community, I would love to help you out, and we can hop on a video call to understand the challenges you are facing with the transition to Memgraph.
Feel free to ping me on Discord; my username is also antejavor on Discord.
attempting to build on M1 Mac, I was able to resolve some, but not all errors.
To make it find postgres on my machine, as well older version of OpenSSL which it seems to require:
To resolve warnings (below) and also find system includes on MacOS, I modified
CMakeLists.txt
to add the following lines right below the version check:cmake runs without error:
when I run make, I see this error:
then the make process continues until it halts at:
How do I make it so it finds Postgres in make?
warning (resolved with changes to CMakeLists.txt)