-
Notifications
You must be signed in to change notification settings - Fork 55
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
Linux support #13
Comments
Ok, so, I worked on Linux/Mac support as recently as September 2010. Don't let that date scare you, it's quite recent enough, the trouble starts with binary dependencies and features that never got ported to Mac or Linux. We haven't really messed around with the binary stuff much since some time before that date, so that means most things I got working then, should still work. It's mostly a matter of dependencies. If all of those work, the rest becomes possible; there are some things that will need to be ported, but getting to a point where we can actually work on that must come first. Careful with the dependency wx, for Digsby, this refers to wxpy that, in turn, will need wxWidgets and webkit. etc. Thankfully, a lot of the work that went into the open source initiative resulted in isolating many dependencies. I'd start by trying to make a virtualenv with all the dependencies, and porting the buildout.cfg to do the right thing on linux for just the pure Python dependencies. Then, move on to the python libraries with binary extensions. There are a lot of binary libraries required to build other extensions, I'm not sure the right way to go about getting those on Linux. If you get to the "build_all.py" step in the readme for digsby, it's almost there, and that'll be the difference in build scripts since the last time anyone tried to build Mac or Linux. The more fun version is try to run "python Digsby.py" and tackle things in the order that they break. A successful port will employ this method at some point, anyway. Ok, I think that's enough of a braindump. Next (probably more specific) question, please. :-) |
I'm working through all the dependencies slowly - luckily most of them can be installed via 'pip' rather easily. The crappiest one I've come across so far is 'peak' And python ./setup.py install it. Thanks for the info, that wxpy dependency is a little bit of a gotcha. |
xmlextra is from pyxmpp, right? I think you can skip it for now, iirc, there's a pure python fallback, though I prefer the binary extension work. I would stay away from the official versions of PEAK right now, we have major differences, mostly to support python 2.5+ correctly, and until that's properly dealt with, I suggest you stick Mike's fork, as listed in buildout.cfg. Additionally, keep in mind that PEAK has many different packages, Mike's "fork" has several rolled into one. Regarding wx, this sounds familiar, unfortunately. I don't think I ever unified the wx branch. This will be a point to work on. However, that doesn't completely stop you from making progress. Take a look at digsby/build/build-deps.py. I think if you run that as "python build-deps.py --wx --webkit", you might get a little farther, but certainly more broken. If you run into anything that says "mini", you're going to have to turn it off/work around it, as that was our internal source server, and that machine isn't even turned on anymore. Additionally, you might be able to jump-start wx on linux by grabbing an official package, but I make no guarantees about version compatibility or library paths, etc. |
For ease of setup I agree with Chris - try to grab the variants listed in buildout.cfg -- but if someone were to make an attempt to get 'stock' packages working, I wholeheartedly support that effort. (also fyi Chris - I'm 99% sure we got all the 'mini's out of there) |
@mikedougherty nope, I checked. still a couple in digsby/build/constants.py, where "MINI_LOCAL = True". That gets used by digsby/build/build-deps.py, which was the way to get things going on Mac/Linux. |
ah, you're right. my mistake. of course I was only thinking of the windows code path 🙊 |
Luckily it looks as though the only MINI reference is I was hoping to be able to use stock wxpython, but it appears you've got a custom module 'wxpybuild' in the wxpy branch, so seems that has to come first, given you need it to compile boost :( Is wxpybuild and cgui derived from elsewhere? Or are they written entirely by @tagged ? Appreciate the assistance! |
https://github.com/tagged/digsby/tree/master/digsby/ext/src sip is probably going to be necessary. It's a pre-req for wxpy and cgui; I don't remember if it's needed for blist. You've reached the limit of my working memory/knowledge on this specific topic (wxpy). Perhaps @kevinw could jump in and give us some wisdom. Otherwise, yeah, you'll probably have to dig through and untangle it. |
It may be better to put up a couple TODO issues for Linux support to be easier to track for users and developers interested rather than having to read through this whole issue with everything crammed in? |
Because of our particular constraints, we forked SIP, and rewrote wxPython, and used basically a frozen fork of wxWidgets 2.8, with miscellaneous fixes specific to Windows. But I think moving forward, it might be best to concentrate on using stock versions of all of these libraries. I'll see about adding a detailed "dependencies TODO." |
So what is needed for it?
The text was updated successfully, but these errors were encountered: