-
Notifications
You must be signed in to change notification settings - Fork 37
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
make package compatible with homebrew #3
Comments
Hi Miles, I rewrote the build script and added the homebrew option. It's in the branch |
Seems to work great after fixing a typo:
|
Great, thanks. Typo fixed. Did you have to set up brew in some way to have it look in homebrew-science, or it does it by default? |
I had to manually set up homebrew/science, otherwise it doesn't work. Build from source still works fine. |
I see, thanks. In the meanwhile, I found some new issues with the new build system (in particular with the version checking machinery) and I'm trying to see if I can find workarounds. Not sure if this build scheme can be made to work properly with the strict version requirement that my GLPK wrapper has... |
What's the source of the strict version requirement? |
Each GLPK version has apparently an incompatible ABI to the previous one, so that version 4.45 is ABI 30 and version 4.48 is ABI 33. From one version to the next, some functions may disappear, the definition of the C structs may change etc. I removed the C wrapper some time ago, so I must make sure that everything is binary compatible. |
That's a bit inconvenient. Well I'm not sure how to put the version requirement on homebrew, but we can at least make sure that the correct version is bundled with the Julia binary. |
Maybe we could optionally bundle formula files with the Julia packages instead of relying on the homebrew repos? This would help me with CoinMP also because I have custom patches that don't really belong in homebrew-science. |
Yes it is inconvenient, but with any binary dependency there would be some version requirement, so there should be a way to deal with that at some point. BTW the issue I'm having is this one. |
When you install via homebrew, you can pass a full URL to brew to install from. This gives you the flexibility to host your own brew files anywhere and allows you to do whatever you want outside of homebrew repositories. If you don't have any custom dependencies, this will work fine. If you have custom dependencies, it's best to make a Tap, which is just a git repository with a I setup a tap to install julia, and it has multiple dependencies. To avoid conflicts, I just threw a |
It might be worth another attempt to do this given the recent work on BinDeps. BinDeps will choose the library at runtime and lets you provide a function to verify if a library is the right version. |
@mlubin, what help do you need to get this done? |
With my qualifying exams coming up, first of all I need free time :). I was hoping @carlobaldassi could take a look. |
I'll check it out in a few days (I was planning to look into the new BinDeps features since a while, never got the time), but from what you write I'm not very optimistic: the original issue was that running the test to check the version was preventing the right version to work; i.e. if I check the version and find it's the wrong one, I need to restart Julia before the right one can be chosen. AFAIK that issue is still open. |
I just revamped the build script and added the homebrew option via BinDeps' Another issue is with Windows: @loladiro, could you help me out with this one? In the current Side note: I'm not including AptGet since the version provided by Ubuntu (and I guess Debian too) is too old, but if other distributions provide the correct 4.48 version (e.g. via Yum) and someone is aware of that, please let me know (or issue pull requests). |
BTW, I'm fairly certain that you can "brew install homebrew/science/glpk",
|
According to the discussion here, if GLPK uses
find_library
to recognize hombrew/bundled libraries, then it can be included in the Julia distribution on OS X. I have a macbook that I can use to help with testing.The text was updated successfully, but these errors were encountered: