Here's an ebuild for buidling Julia from git, "a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments."
The ebuild development happened on my github @ https://github.com/nbigaouette/ebuilds/tree/master/dev-lang/julia
I am uploading commit e92a5d46c90c9c10551b2942e54055cea3a425fd.
I haven't had time to test it thoroughly (the tests seems to pass though), so please give it a try if you are interested!
Created attachment 310083 [details]
Commit e92a5d46c90c9c10551b2942e54055cea3a425fd from https://github.com/nbigaouette/ebuilds/blob/master/dev-lang/julia/julia-9999.ebuild
Created attachment 328014 [details]
Cleaned up ebuild, should be pretty useable now I hope.
A couple comments:
- I've changed the lighttpd flag to notebook, because that's the one ipython uses, so I figured we should reuse it.
- it depends on >=suitesparse-4. I have packaged it in my overlay: https://github.com/thrasibule/thrasibule-overlay. I'll file a version bump request for it.
- it ships with a lot of bundled libraries, even when enabling all the USE_SYSTEM flags. Some of them are already in gentoo (like Rmath through dev-lang/R, double-conversion, and libuv). For this reason I install all of them to /usr/lib/julia/lib and add an entry to ld.so.conf so that we don't clobber anything.
- The emacs use flag blocks ess, because the ess version in the tree already ships with a julia mode.
Created attachment 328016 [details]
Created attachment 328018 [details, diff]
Created attachment 328020 [details, diff]
Thanks for your work, Guillaume. Your ebuild contains a dependency on sci-libs/openblas, which does not exist in Gentoo, only in the Gentoo Science overlay. Maybe this should be fixed?
Created attachment 330700 [details, diff]
Created attachment 330702 [details]
Created attachment 330704 [details]
Created attachment 330706 [details]
I've updated the ebuild. Julia developers keep moving things around in the codebase, so the ebuild probably won't work for very long...
If you don't want to use openblas, you can set up the atlas use flag which will use the atlas library as an alternative, but that doesn't help you much since it's also in the science overlay :) There is a plan to move the new atlas library to the tree soon though.
Last but not least suitesparse4 is now in the tree, so most of the dependencies should be pretty easy to get.
Hmm. Well, until there is a Gentoo maintainer, maybe you can get this ebuild merged into the gentoo-science overlay? There it should be easier to keep up to date, plus the dependencies are all there too.
CCing science team, maybe they will be interested
I may have a quick look at it. If it is moving too fast it may be better for it to have its own overlay.
Several things I don't like. It should depend on virtual blas and lapack and use whatever is available more work but that's what we aim for. Why do you need to have the version for pcre? That's very odd and should really be dealt with.
Do you have an exhaustive list of things bundled?
The pcre patch is no longer needed. It was because of the way pcre is installed in gentoo: /usr/lib/libprce.so is an ld script and not an actual library. They changed the way they load libraries now and everything is working fine.
Upstream only support atlas or openblas/lapack-reference right now, that's why I set it up like that. I don't like it either, but the configuration system is made by setting a bunch of variables in a Makefile, so it's hard to make it very generic unless we refactor it a lot.
Right now the makefile checks out openlibm and libuv from github at compile time, and it bundles the Rmath libraries from the Rproject and a couple of odd C files that are probably not worth unbundling. There in the deps directory. libuv is in gentoo already but mainstream maintains their own fork.
I'll post the most up to date version of my ebuild and we can go from here. Development seems to have settled a bit, so it's probably a good time to start moving it to the science overlay.
Feel free to submit the ebuild to the sci overlay:
- fork https://github.com/gentoo-science/sci
- add your ebuild
- make a pull request
It would be beneficial to send your patches upstream as patches on a live version tend to break very often. Maybe add a USE_GENTOO variable in Make.inc to enable all changes needed for Gentoo.
Install is broken at the moment. I've filed a bug upstream at https://github.com/JuliaLang/julia/issues/1715. Once it's resolved I'll push it the science overlay.
Created attachment 332082 [details]
at some point in the past, i played a little bit with julia ebuild and got some deps into the science overlay. i'm posting the ebuild here. feel free to get some inspiration but beware it is fairly broken.
i quit when i saw the other hidden bundled libs (like the coin-or ones) and the instability of the build system.
I pushed a cleaned up version to the science overlay, please try it out.
Patrick added it one day.