-
-
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
Add libgit2 dependency to build system #8820
Conversation
LIBGIT2_OBJ_SOURCE = libgit2-$(LIBGIT2_VER)/build/libgit2.$(SHLIB_EXT) | ||
LIBGIT2_OBJ_TARGET = $(build_shlibdir)/libgit2.$(SHLIB_EXT) | ||
|
||
LIBGIT2_OPTS = -DTHREADSAFE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="$(CC_BASE)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to build the tests by default? Otherwise we should add -DCLAR_BUILD=OFF
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can turn them off to save build time, I think I have them commented out (running them that is)
This builds fine for me on OS X / Linux. @tkelman can you check if the version check is correct for Windows source builds? If the Makefile changes are acceptable I would say this is good to merge. |
there was a conflict in the gitignore, so I rebased it |
If CMake is now necessary for the default source build then the README should be updated. |
yes good point, will do |
note for @quinnj or @ihnorton or others doing MSYS2 Windows source builds, I've found installing cmake through pacman messes with MSYS2 paths too much (it's in the mingw packages group rather than msys) and it seems to be easier to use the cmake.org installer. Have to either add the folder to your path or set its location in |
I'm going to guess this is unrelated, but what's up with
on osx travis? |
Thanks for the heads up @tkelman. |
6f9cea7
to
faa35b4
Compare
Linux uses puts the version at the end of the soname, while OS X puts it in the middle. Also, case issues.
also move libgit2 license link to the right section, and remove command-line git from Versions.make
remove notes about issues that should be fixed
So what's the status on this? |
It builds, which I think is the point here. I had to rebase a day or two ago to fix a conflict. If you're happy with my doc additions, I think it's time to merge and get started rewriting Pkg. |
Yes, I like your solution quite a lot The version test in libgit2.jl seems like it may cause issues for system packagers. I hope we don't have that strict of a requirement on the version. It might be good to mention that msys cmake will get confused, but it sounds like we may need to switch to a Cygwin cross-compile anyways? Lgtm to merge |
Can you enable the code so that 'make libgit2-test' does something? Or why is that commented out? |
We may not need to use one of the bugfix releases, but we definitely need to use the v0.21 release. Much of the library was rewritten during the last release cycle and many api's changed. I think we should use the bugfix release for now as it would be annoying to run into solved problems which have been back-ported. Also we should bump the version to v0.21.2 which was released a couple days ago. |
@vtjnash I don't remember exactly what was going wrong with the libgit2 self-checks, I think they may have been failing on one or more platforms? We can also switch from |
That depends on whether we can figure out what's wrong in LLVM 3.5.0 with the mingw-builds compiler version we've been using with the msys2 build. We can't use the mingw compilers from pacman, at least for 32 bit, since they're using dwarf exceptions. I don't think the msys2 pacman version of cmake is unable to build this, but it does mess with the |
Can we give it a version range then (v0.21+ perhaps)? |
The test doesn't check the patch number, only the major / minor version numbers. |
Ok, but it looks like Ubuntu has 0.19 or 0.20 right now https://packages.ubuntu.com/source/utopic/libgit2 |
v0.21 was released in June. I don't think it is possible to support any older version, merge support was added in v0.21. |
It should be ok, since Julia 0.4 wouldn't be in Ubuntu till next spring or fall anyways. Just thought it might be worth mentioning, although I would also support getting this merged now so we can start to see what issues it might bring with it |
Don't think it has to be perfect in this pr, we can keep working on it on master |
0.21 was a breaking release as they are trying to get the api's settled for v1.0. There should not be as much api breakage going forward. |
Bump. Can we merge this? I have time to work on this this week. |
+1 for just merging and dealing with it this week |
Yeah, I'm in favor. @tkelman, your call. |
Add libgit2 dependency to build system
Well if you're gonna put it that way... |
s'guud On Mon, Nov 3, 2014 at 4:34 PM, Elliot Saba [email protected]
|
Ah, yes. Finally! |
will need ppa-packaging, edit: we could borrow from / use https://launchpad.net/~presslabs/+archive/ubuntu/gitfs-dev/+packages for the ppa, and homebrew already bottles libgit2 for 10.8 and newer |
Finally updating to master tonight and everything built without a hitch. Really big thanks and kudos to @tkelman for the great work here. |
@quinnj Good to hear, you're very welcome, but getting it into the build system is just the start. And we haven't had any successful binaries uploaded since this merge. But that's mostly due to the low bus factor right now on our ability to build official binaries. |
@staticfloat oh, whoops, looks like getting rid of the compile instructions for git broke the mac binaries. Sorry, my bad! Does the mac app still need to build git from source? If so I'll put it back. https://buildbot.e.ip.saba.us:8010/builders/package_osx10.9/builds/278/steps/shell_6/logs/stdio julia/contrib/mac/app/Makefile Line 18 in bb628af
|
We do need to bundle On Sun, Nov 9, 2014 at 1:30 PM, Tony Kelman [email protected]
|
Okay I'll put it back, sorry I missed it - don't think I've ever looked into |
still being used for mac binaries, ref #8820 (comment)
still being used for mac binaries, ref JuliaLang#8820 (comment)
This is pretty much #7339 with all changes to base removed. And I'm changing the way I'm handling flags and compiler names with cmake in the last commit.