Update github.com/libgit2/git2go to v31.6.1#437
Merged
Conversation
d2d8682 to
e8808e4
Compare
chanwit
reviewed
Sep 16, 2021
9cfd0be to
04ab5b9
Compare
8fbc69a to
c1a094d
Compare
chanwit
reviewed
Sep 21, 2021
522ceba to
045a648
Compare
This was referenced Oct 1, 2021
To provide a better (contributing) experience to those with Apple machines, as determining the correct paths there is a bit harder. Signed-off-by: Hidde Beydals <hello@hidde.co>
b3bb41e to
94480e6
Compare
This can be useful on machines where libgit2 is installed due to other applications depending on it, but where the composition of this installation does not properly work with the controller. Reason the system version is still preferred, is because this lowers the barrier for drive-by contributors, as a working set of (Git) dependencies should only really be required if you are going to perform work in that domain. Signed-off-by: Hidde Beydals <hello@hidde.co>
Signed-off-by: Hidde Beydals <hello@hidde.co>
Signed-off-by: Hidde Beydals <hello@hidde.co>
cefc96a to
1ddb895
Compare
This moves the `libgit2` compilation to the image, to ensure it can be build on builders that aren't backed by AMD64. The image is structured in such a way that e.g. running nightly builds targeting a different Go version, or targeting a different OS vendor would be possible in the future via build arguments. Signed-off-by: Hidde Beydals <hello@hidde.co>
This ensures the Dockerfile used for testing is making use of the same scratch image to compile `libgit2` as the actual application image. In a future iteration we should restructure our GitHub Action workflows to re-use the application image, saving us an additional Dockerfile and a duplicate build. Inspiration for this (which makes use of a local registry for the duration of the build) can be found at: https://github.com/fluxcd/golang-with-libgit2/blob/main/.github/workflows/build.yaml Signed-off-by: Hidde Beydals <hello@hidde.co>
1ddb895 to
a871e0b
Compare
As this isn't available on Darwin by default, unlike on most Linux distributions. Signed-off-by: Hidde Beydals <hello@hidde.co>
stefanprodan
approved these changes
Oct 8, 2021
Member
stefanprodan
left a comment
There was a problem hiding this comment.
LGTM
Thanks @hiddeco for saving the day 🏅
Member
Author
|
@squaremo as I really want to progress this I am going to merge it although I know your machine was having a difficult time. It has confirmed to be working on both @stefanprodan and my own 🍏 machines. If it continues to be stubborn, you know where to find me so we can do another round of debugging. |
Closed
hiddeco
added a commit
that referenced
this pull request
Oct 8, 2021
Chery picked from `main`. Update github.com/libgit2/git2go to v31.6.1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR updates
github.com/libgit2/git2gotov31.6.1(withlibgit21.1.1), and changes the container image build process so that it makes use ofghcr.io/fluxcd/golang-with-libgit2.This image provides a
Makefilewith specific build instructions to compilelibgit2in such a way that it is linked against OpenSSL and LibSSH2 (without gcrypt) (see rationale and usage for more detailed information).The linked set of dependencies should solve most known issues around unsupported private key types, but does not resolve the issues with ECDSA* and ED25519 hostkeys yet. Solving this requires a newer version of
libgit2(>=1.2.0), which currently does not seem to work properly withgit2go/v32.In addition, to support the new image and improve the contributor experience, a couple of changes have been made to the various
maketargets:libgit2is attempted usingpkg-config. If this fails, or does not match the version as defined in theMakefile(or configured usingLIBGIT2_VERSION=1.x.y), the library is compiled using the instructions from theLIBGIT2_IMG, and installed toREPOSITORY_ROOT/hack/libgit2.libgit2is required as a dependency,LD_LIBRARY_PATHand/orPKG_CONFIG_PATHinstructions are added as a prefix to the command. This works for system libraries as well, because the paths are ignored if they do not exist.docker-buildis now always making use ofdocker buildx. It allows configuration over the target platform(s) and additional build arguments usingBUILD_PLATFORMSandBUILD_ARGS.