-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Build fails when fetching from tag #2539
Comments
I guess the way to do this is that if the Also, one quick way to ease the pain about the various |
Do the tarballs include the submodule contents? If so, the submodule updates could perhaps be made nonfatal or skipped if there's no |
We don't support building from tag tarballs, but there's no way to turn them off in GitHub. Maybe the best thing to do is check if .git exists and throw a nice informative warning if it doesn't. |
Hmm.. is there any reason for not supporting them? We at MacPorts prefer them as they can be directly downloaded and users are not forced to install git. On 11/mar/2013, at 16:38, Stefan Karpinski notifications@github.com wrote:
Aljaž Srebrnič a.k.a g5pw |
Git is required to use Julia packages and to determine the correct version On Mon, Mar 11, 2013 at 6:50 PM, Aljaž Srebrnič notifications@github.comwrote:
|
@ViralBShah fallback to tarballs is a good idea, even better if you let me (the user) specify library paths if they are already installed. The idea is to let MacPorts install all dependencies (libraries, etc.) and then build and install julia. We already have everything except FemtoLisp, libuv, OpenLibm, DSFMT, OpenBLAS, AMOS, double-conversion and Rmath. I can make ports for the missing libraries, too. |
g5pw, I'm interested in having a MacPorts installation option. I put together a port file last year for that purpose (I can put it in a gist if you are interested), and created the file contrib/macports.make as a template makefile to show the most useful environment variables to set (although both may be slightly out-of-date now) Can I ask why git is not generally preferred? I noticed that several ports are already using this method. Also, since Xcode includes git, it doesn't appear to require any additional software installation on Mac. libuv is an internal dependency that requires a few patches to work with julia. Similarly, FemtoLisp is treated as an internal library, although it could probably be separated out again (it also has a more limited dependency on libuv). OpenLibm can be replaced with USE_SYSTEM_LIBM ( |
Aha, yes, please put it in a gist, thank you :) Git fetch is not preferred mainly because we can mirror tarballs on our servers. And, not all Xcode versions ship with git AFAIK. As far as the libraries, I can fetch them as additional tarballs and put them in the julia build dir at build time, if that's preferable. Aljaž Srebrnič a.k.a g5pw On 12/mar/2013, at 03:48, Jameson Nash notifications@github.com wrote:
|
For now, I would prefer that we document that git is required to build. At some point, we need to support src tarballs. |
Roger that! Feel free to ping me when you add tarball support and I'll gladly add julia to macports! ;) |
@ViralBShah well, as stated above, using git is slower and we can't mirror it, so it's not preferable. I nearly got it to work, but I'd like to be able to separate fetch and build phases at least. Is there any target I can invoke to download all dependencies? |
here's a gist of my previous attempt: https://gist.github.com/vtjnash/5206861 |
You could use git git bundle create julia.gitbundle master Later you can reconstitute this into a git repo like this: mkdir julia && (cd julia && git init && git pull ../julia.gitbundle master) It should be noted, however, that this is a poor solution for deploying A much more reliable way to deploy Julia is to pre-build it and then make a On Wed, Mar 20, 2013 at 1:59 PM, Jameson Nash notifications@github.comwrote:
|
Thanks for the gist @vtjnash I'll take a look. @StefanKarpinski well, the way that MacPorts work is, we mirror source tarball and then we have buildbots that compile and archive binaries. That is so we can support as many architectures and environments as possible. |
I thought that with macports, one always has to build from source. Can I directly install binaries from macports now? |
If it is permitted by license, yes. Aljaž Srebrnič a.k.a g5pw On 21/mar/2013, at 04:37, "Viral B. Shah" notifications@github.com wrote:
|
How about we work on a MacPort where Julia gets built from source first. We can provide source tarballs that contain all the source that's required, including dependencies and we can work on making things compile from that without requiring git. |
that would be ok, but it's simpler if we do a port for each dependency and find a way to include them when building julia. So, for example I'm gonna write the port for:
And then, in the Julia portfile, I'd add a dependency on them. So most difficult thing would be instructing the build process to use libraries in predefined (standard) directories. |
That's wonderful if you can create ports for all of those – I'm sure even people not using Julia will appreciate it. |
Note that our version of libuv is a modified version of joyent's libuv and that we're statically linking it. |
I think we've got a pretty solution for this now, with our |
These days doesn't github allow you to upload an alternate source tarball for a tag/release? We should replace the automatic tarballs github creates (which won't work because they're missing submodules) with a tarball generated by |
Oh, that's an excellent idea. We really need something that will do all of the stuff required for a release, including this. |
Add it to the list in #7588 |
Since this was my idea, I figured I should go and test it. Good news, building from https://github.com/JuliaLang/julia/releases/download/v0.3.0-rc2/julia-0.3.0-rc2_56e443d08c.tar.gz worked nicely on Ubuntu. I don't get a sha in the banner since it's not a git repository, I suppose that's expected. But all the dependencies are there, submodules and tarballs alike, I don't think it had to download anything (would have tested with network disabled, but I was ssh'ed into the machine). |
@tkelman The git information is specifically packed into |
|
Yes, that's purposeful. What does your banner look like when you start up? On Wed, Aug 6, 2014 at 12:41 PM, Tony Kelman notifications@github.com
|
probably good enough, just not sure whether the blank second line is expected |
Nope, that means you're missing all versioning information. Phooey. Can you try unpacking from the tarball again and manually adding |
I think that is expected when you build from a tagged release. See: https://github.com/JuliaLang/julia/blob/master/base/version.jl#L204 |
Ah, that's true. @tkelman what does
|
@staticfloat same, so I think we're good. Just didn't realize that second line was customizable via |
Yeah, I forgot about it as well. I should have picked up on the date after your |
I'm in the process of writing a port for julia to install it with MacPorts. I recently ran into a problem. I saw you tagged some releases, but when someone downloads the .tgz from a tag, it won't include the .git directory, so all git commands fail (specifically the submodule init for Rmath, nginx, openlibm and libuv, and thus the build process).
Also, on a different note, please please use a configure script. Writing an extra variable for each build dependency is... unfortunate.
The text was updated successfully, but these errors were encountered: