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
--temp-basedir is broken with long usernames on OS X #888
Comments
For @acogneau, the maximum length which is okay is 54 chars, which uses the path |
This is going to get messy... New pathLinux / OS XWe should probably switch to using a custom location on OS X and Linux, which should also be more secure (i.e. preventing other users on the same system from opening pages in your qutebrowser instance - which seems to be impossible now already, but better safe than sorry):
We can pass a full path to The name then would just be WindowsSince it uses some MigrationWe still have to check the old location to make sure we don't corrupt an user's data when they upgrade but still have an old instance running... What's unclear is how to find out if the given socket exists, ideally without s = QLocalSocket()
s.connectToServer('foo')
assert s.error() == 0 works? >>> s = QLocalSocket()
>>> s.setServerName('foo')
>>> s.fullServerName()
''
>>> s.connectToServer('foo')
>>> s.error()
2
>>> s.errorString()
'QLocalSocket::connectToServer: Invalid name' If the check is expensive, I could probably also write something like |
I'm working on this, but there are still a few things missing:
|
First trying the legacy path and then using the new one works fine now, but the permissions are still wrong.
First trying the legacy path and then using the new one works fine now, but the permissions are still wrong.
First trying the legacy path and then using the new one works fine now, but the permissions are still wrong.
First trying the legacy path and then using the new one works fine now, but the permissions are still wrong.
First trying the legacy path and then using the new one works fine now, but the permissions are still wrong.
First trying the legacy path and then using the new one works fine now, but the permissions are still wrong.
This is now fixed except for setting the |
After over a week of struggling, this should be fixed and working on every platform... Finally! 🎉 |
With Qt 5.12, standarddir.runtime() gives us a path in /private/var/folders/... instead of /var/folders/... like before. Due to that change, the path length is 105 chars, which is too long for a named socket (104 seems to be okay). The complete name is just slightly too long, so using i- instead of ipc- fixes things... Fixes #4471 See #888
@acogneau reported he gets this with
--temp-basedir
:The reason is probably because there's a maximum char limit for the server name which means
qutebrowser-alexandercogneau-4965f991c6f98de0b915c3989e8ca82c
is too long.Test script to get the max length:
Should the username even be added with a non-default basedir?
The text was updated successfully, but these errors were encountered: