New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qscintilla2, octave: bottle for ARM #69653
Conversation
@lteneyck what change did you make to the formula exactly, to get it to work? The change I have here allows qscintilla2 to compile, but it fails the test:
|
From the existing bottle, the default
Not sure there's a way of specifying this using install options. |
Related issue at MacPorts: macports/macports-ports#7790, https://trac.macports.org/ticket/60796 |
86bc00a
to
a003c6c
Compare
For a quick test I simply forced spec=macx-clang-arm64 and it compiled and passed test. I am a bare beginner in ruby so I did not try to sort out the conditionals for linux and macOS. Something like this: but I this is just the outline, I am undoubtedly missing on syntax and how to find out if it is arm64 or x86_64. |
What happens when you do |
- add patch for library rpath
On Big Sur:
Looks like the test just timed out, which probably shouldn't be blocking. |
Dynare didn't build on ARM:
|
Oops. I have both x86_64 and arm64 homebrew installed. I have "abrew" aliased to /opt/homebrew/bin/brew, which means that abrew operates in arm64 mode and installs in the /opt/homebrew directory tree, but my default path has /usr/local, so "brew" installs and operates in /usr/local/homebrew. Unfortunately after I did "abrew install -s qscintilla2" I inadvertently did "brew test qscintilla2" so I tested the wrong one. Not surprisingly, it passed. "abrew test qscintilla2" fails as follows: ==> Downloading https://www.riverbankcomputing.com/static/Downloads/QScintilla/2 /opt/homebrew/opt/python@3.9/bin/python3 Traceback (most recent call last): It appears that there is a problem with the test code finding the right module -- and I have no idea why it would even look in /usr/local/lib. I apologize for the false claim of passing brew test for arm64. I have checked /opt/homebrew/lib/python3.9/site-packages/PyQt5/Qsci.so and it is present, and furthermore is an arm64 library. It looks as though somewhere in the setup rpath is not being set correctly. |
Thanks, @lteneyck. You should be able to do |
qscintilla2 patch followed up in https://www.riverbankcomputing.com/pipermail/qscintilla/2021-January/001487.html |
### There may be a problem.I ran brew update / brew upgrade on my x86 repository on my M1 mini, and it failed in qscintilla2. The formula install method has
"=======" ">>>>>>> Stashed changes" On further examination I found that there may be some more issues. I am not sure where "qmake" is running, but I found that the qt/5.15.2/mkspecs directories in the arm64 bottle are NOT the same as the ones in the x86_64 bottle. The arm64 version contains the macx-clang-arm64 spec, and also a macx-clang-x64 spec, which should presumably be used the x86_64 build. However, THESE SPECS ARE NOT PRESENT in the qt/5.15.2 bottle for x86_64. I also noticed that the macx-clang-x64 spec is different from the macx-g++ spec, and contains some things that are specific to the Apple Silicon platform. I do not know if these things are benign on a real x86_64 mac running Big Sur. It now appears we have four cases to support. Do we want to do this with one formula and once source code base?
Note that 1 and 2 both have the same compiler (clang) and the same cpu (arm). If the formula can determine which system it is running on I assume it can tell the formula -- it obviously knows which repository to talk to. I am assuming that on linux we only support GCC, even though clang is available -- there is a spec for linux-clang. |
I recall seeing a discussion that deprecated cross-compiling. If the bottles for x86 Big Sur are built on x86 systems the problem distinguishing between (1) and (2) above go away. we can then do
which means that we won't cross-compile on arm64. One question of ruby syntax -- if the first setting of spec does not happen because the Hardware::CPU.arm is false, should the next one be spec = or spec.replace? This requires the same version of the qmake mkspecs directory we presently have on qt/5.15.2 for arm. |
The dynare test keeps timing out, causing CI failures. See, for example, Homebrew#69747 and Homebrew#69653.
brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingbrew install <formula>
)?