-
Notifications
You must be signed in to change notification settings - Fork 772
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
Crossbar.io on FreeBSD #1550
Comments
well, there are no "default extras", and you can do a plain ah, and a plain install has exactly 4 package dependencies Line 251 in 3da0c26
rgd FreeBSD packaging or similar: sorry, no clue. above is true when using a python venv eg |
Ok, looks like the problem is that I'm installing crossbar:
and pip isn't always clear about what is getting installed when, and which package caused the install to happen. (ignore the old version, I'm in the process of trying to get a newer version installed and working and it's a painful process.) crossbar pulls in vmprof, which doesn't compile on FreeBSD:
so, looks like the issue is pip prints it's dep tree only in case another package managed to be already satisfied, as I did manage to find this:
|
ok, autobahn for crossbar on FreeBSD, this is a different matter. this indeed requires autobahn with the extras you list, see some pain is expected, as crossbar has over 100 deps in total (direct and indirect). if you are on CPython3 + Linux + pip/virtualenv (or on Docker), it is all good and smooth, other variants of Python, OS and package manager: your mileage will vary;) anyways, two hints:
https://github.com/crossbario/autobahn-python/blob/master/docs/changelog.rst#2232
https://github.com/crossbario/crossbar/blob/master/requirements-min.txt
|
rgd vmprof on FreeBSD: if you have additional information, please consider commenting on that issue also for upstream to know ..
finally, you will notice refering forks .. sadly, didn't had time to get this fixed in upstream. obviously, if you strive to have all deps packaged in FreeBSD native packages themself, this is problematic .. |
I have provided the errors that I'm running on that first vmprof issue. It likely could be that vmprof just does not support arm64 that I'm trying to get it to run on. Also, all of this is not using native packages, this is using pip entirely to install and fetch everything. I've abandoned FreeBSD native packaging for Python in preference of venv's. Just wish python packages would fall back to python native code when they fail to compile, (within reason of course, like argon2 should fall back to a native python implementation if the C code failed). The chances of getting the argon2 port fixed, which is another failure, looks like that won't happen, as it hasn't been touched in 6 years. I have opened up issues reporting it, and the fix is extremely simple. I have also opened an issue for numpy as well: numpy/numpy#21386 That can be solved by pinning the version, but argon2 would require maintaining a fork, and I'm not interested in continuing to prop up a long dead bit of code when the correct solution is to remove it as a dep from crossbar/autobahn. Though, since it appears that crossbar is willing to maintain forks, maybe crossbar could? But even fixing the other two modules, the vmprof port likely won't be fixed anytime soon. |
btw, should I open a new issue to track the documentation not matching? or have you opened an issue to track that already? |
+1! fwiw, I reached a similar conclusion over the years. OS-level packaging of Python packages (with or without native code) is wrong. sadly, Python native packaging (distutils, wheel, pip, ..) is ok'ish, but not great. The problems run deep .. eg CPyExt, that is the C-level API of the CPython language implementation isn't standardized, and by exposing the GIL, has pretty much formed the whole Python package universe. Anyways, one day I will learn Rust;)
yes, all Python packages should have Python-only versions, and we are actively selecting dependencies for following that, eg Line 52 in 3da0c26
only drags in native code on CPython, not PyPy, because the JIT of the latter will (most of the time) produce faster machine code on the fly than you old ahead-of-time C compiler anyways .. PyPy is also the reason why we use argon2-cffi: Line 101 in 3da0c26
here: https://argon2-cffi.readthedocs.io/ which of above isn't supported on fbsd or unmaintained?
+1! fwiw, we couldn't (or wouldn't want to) remove numpy from crossbar, and numpy seems pretty important anyways .. for FreeBSD in general that is
as mentioned, we can make crossbar work without vmprof and remove the hard dependency. it's just that I was asking for "the rest" of deps on FreeBSD to figure out if fixing vmprof would then actually solve your actual issue: get crossbar running on freebsd rgd issues, if you care, best would probably be 2 new issues on the crossbar repo: one for freebsd doc hints, and one for making vmprof a run-time detected soft dependency. thanks! saw on the numpy issue you seem to target
interesting! arm64 fbsd: for cloud/networking or embedded? |
argon2-cffi installs on FreeBSD perfectly fine. The problem is that argon2 is ALSO a dependency and some module isn't using argon2-cffi instead of argon2. I don't know where it's coming from.
That is the official version w/o any modifications. I probably installed it manually as editable when I was trying to track down why argon2 wasn't compiling, because at the time I didn't know that crossbar/autobahn was depending upon two different argon2 python modules.
embedded... installing on a Rock64. |
That's a bug (which we can and should fix), and it comes from cfxdb:
|
I've added 2 issues resulting from above: |
rgd gobject dependency: this comes from Line 150 in 528f6a0
workaround to install "almost all", but not "ui":
|
Regarding the above error, I believe |
After spending way too long dealing w/ the mess that autobahn deps added over the years, I finally looked a bit closer at things, and found out that the default extras are just stupidly complex, and most of the do not even work on FreeBSD (and should therefore just be disabled).
As you can see here:
https://github.com/crossbario/autobahn-python/blob/master/setup.py#L258
it lists the following extras:
encryption, scram, nvx, dev, xbr and ui
And none of those are listed at:
https://autobahn.readthedocs.io/en/latest/installation.html
Nor does it document that installing by default requires you to install additional packages as dependencies.
I found the following deps were required:
cairo snappy gobject-introspection libargon2
but it's entirely possible that more deps are required as well.
The text was updated successfully, but these errors were encountered: