Skip to content
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

Packaged version doesn't start on old versions of macOS #79

Closed
pramsky opened this issue Dec 5, 2018 · 21 comments
Closed

Packaged version doesn't start on old versions of macOS #79

pramsky opened this issue Dec 5, 2018 · 21 comments
Labels
status:planning For large features, plan it out before implementation

Comments

@pramsky
Copy link

pramsky commented Dec 5, 2018

Hello!

I am unable to start Vorta (0.5.2). Clicking the app or using open -a Vorta.app does nothing. Running the binary under Contents/MacOS/vorta returns the following.

[43076] Error loading Python lib '/var/folders/zh/0t27d1hj01gcs6j5sfdb5tqh0000gn/T/_MEIiht4jn/libpython3.6m.dylib': dlopen: dlopen(/var/folders/zh/0t27d1hj01gcs6j5sfdb5tqh0000gn/T/_MEIiht4jn/libpython3.6m.dylib, 10): Symbol not found: _futimens Referenced from: /var/folders/zh/0t27d1hj01gcs6j5sfdb5tqh0000gn/T/_MEIiht4jn/libpython3.6m.dylib Expected in: /usr/lib/libSystem.B.dylib in /var/folders/zh/0t27d1hj01gcs6j5sfdb5tqh0000gn/T/_MEIiht4jn/libpython3.6m.dylib

OS: Sierra 10.12.6
Python version: system python 2.7 , 3.7 also available on system

@m3nu
Copy link
Contributor

m3nu commented Dec 5, 2018

Tricky. I'm building the app on macOS 10.14. Looks like it's linking to some system libs that aren't available on 10.12.

Will try in a virtual machine.

@m3nu m3nu self-assigned this Dec 5, 2018
@m3nu
Copy link
Contributor

m3nu commented Dec 5, 2018

Since you have a new Python and know the CLI, you can also use the pip version:

pip install vorta (or pip install --user vorta)

Then just make sure Borg is also available. (pip install borgbackup or brew install borgbackup)

@m3nu
Copy link
Contributor

m3nu commented Dec 5, 2018

This says that to support older versions, it needs to be built on them. https://stackoverflow.com/questions/49908236/pyinstaller-executable-fails-on-old-os-x

I think we can support 2 macOS versions. For anything older, it can be installed via pip. I tested 10.13 some time ago, but don't have 10.12 around any more.

@m3nu m3nu changed the title OSX version does not start Packaged version doesn't start on old versions of macOS Dec 5, 2018
@ThomasWaldmann
Copy link
Collaborator

See borg's Vagrantfile.

@m3nu
Copy link
Contributor

m3nu commented Dec 5, 2018

To package for different macOS versions? I already copied your Vagrantfile in the beginning. :-)

I'd rather have a fix that lets the same file run on all versions. And again, 10.12 is 2 versions back now. Not many people will run it.

@ThomasWaldmann
Copy link
Collaborator

There's a rather old osx box. Building on that might result in a binary that works on all versions.

@m3nu
Copy link
Contributor

m3nu commented Dec 5, 2018

True. Worth a try.

@pramsky
Copy link
Author

pramsky commented Dec 5, 2018

Thanks for the responses. I do have Python3 installed via homebrew, borg as well which works great :)

I'll attempt a build from source and see if that works out for me

@pramsky
Copy link
Author

pramsky commented Dec 5, 2018

Attempted to run vorta directly after cloning the repo and running pip3 install -e . and pip3 install -r requirements-dev.txt and /usr/local/bin/vorta

Result:

2018-12-05 09:42:04.707 Python[81377:28803932] Metal pipeline state creation failed with error: Error Domain=MTLLibraryErrorDomain Code=3 "Compiler encountered an internal error" UserInfo={NSLocalizedDescription=Compiler encountered an internal error}
2018-12-05 09:42:04.721 Python[81377:28803932] Metal pipeline state creation failed with error: Error Domain=MTLLibraryErrorDomain Code=3 "Compiler encountered an internal error" UserInfo={NSLocalizedDescription=Compiler encountered an internal error}```

@m3nu
Copy link
Contributor

m3nu commented Dec 6, 2018

I suspect the binary package for PyQt (which does all the graphics stuff) is not compatible with your macOS version either. ("Metal" is a new graphics framework that Apple has been using to replace OpenGL.) This other project recommends using the binaries provided by the Anaconda Python distribution. They seem to run on older Macs as well.

@m3nu
Copy link
Contributor

m3nu commented Dec 6, 2018

I'll package a Vorta version with Anaconda and see how it works. They do their own compiling which is often more backwards-compatible than normal wheels.

@m3nu m3nu added the status:planning For large features, plan it out before implementation label Dec 6, 2018
@m3nu
Copy link
Contributor

m3nu commented Dec 6, 2018

Not much luck with Qt on Conda. The tabs look better, but I keep get the same Metal error that you get (no crash though). It's also not working after freezing it. Their Qt version is very outdated as well.

@m3nu m3nu removed their assignment Dec 6, 2018
@pramsky
Copy link
Author

pramsky commented Dec 6, 2018

hmm. I am upgrading to High Sierra anyways. I'll see if it has any issues there.

@m3nu
Copy link
Contributor

m3nu commented Dec 7, 2018

Yeah. Let me know how it goes.

I found that my GF has 10.12 as well. Same error. I may try to build the official release on 10.12 and see if it runs everywhere.

@ThomasWaldmann
Copy link
Collaborator

ThomasWaldmann commented Jan 13, 2019

Maybe if you try to solve it within a vagrant machine, you'll end up with a general solution for platform testing (at least everything that runs in Virtualbox) and for building binaries (macOS [including for specific version(s) if needed], Linux, FreeBSD, ... and also 32/64bit, if wanted).

It also is better for building trusted binaries when always starting from a trusted template VM, provisioning stuff needed, building the binary, running the tests (maybe even using that binary), grabbing the binary from there, destroying the VM again. When building binaries on some random machine that is also used for other stuff, there's always some risk involved.

@m3nu
Copy link
Contributor

m3nu commented Jan 14, 2019

When building binaries on some random machine that is also used for other stuff, there's always some risk involved.

Agree. This was just for testing. Now that you improved the pyinstaller settings, we can look into building for multiple platforms.

@pramsky
Copy link
Author

pramsky commented Jan 16, 2019

@m3nu

Sorry for the late update, works perfectly on High Sierra. I have been running it every 4 hours for the past few days now.

@m3nu
Copy link
Contributor

m3nu commented Jan 16, 2019

High Sierra is macOS 10.13 or "oldstable". That should work well. What's not working is "oldoldstable", 10.12.

But thanks for the feedback and testing.

@pramsky
Copy link
Author

pramsky commented Jan 16, 2019

@m3nu

I still have access to a 10.12 machine that I can test on if you need me to :)

@m3nu
Copy link
Contributor

m3nu commented Jan 16, 2019

Thanks, but it won't work. Already tested. We'll probably end up building the fat binary for macOS on oldstable in order to support stable and oldoldstable.

@m3nu
Copy link
Contributor

m3nu commented Jan 17, 2019

I'll close this because it's essentially included in #126 and supporting stable + oldstable for macOS is a good current state anyways. When we have a proper build system up and running, we can support oldoldstable as well.

@m3nu m3nu closed this as completed Jan 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:planning For large features, plan it out before implementation
Projects
None yet
Development

No branches or pull requests

3 participants