From e8da5affe7ada724b71c6603c81d534752d4be6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Wed, 14 Jan 2015 13:52:52 +0100 Subject: [PATCH 1/8] Link dynamically to libgit2 With libgit2 v0.22 released, we can expect its API and ABI to remain stable when installed on the system. Linking dynamically allows us to use the go tool alone to build and install the package. --- git.go | 1 + 1 file changed, 1 insertion(+) diff --git a/git.go b/git.go index 8e78710..9496d2d 100644 --- a/git.go +++ b/git.go @@ -3,6 +3,7 @@ package git /* #include #include +#cgo pkg-config: libgit2 */ import "C" import ( From 43f6a750660c3f6a344a54a3ee0772cc57d7c162 Mon Sep 17 00:00:00 2001 From: Matthew Donoughe Date: Fri, 13 Feb 2015 21:40:02 -0500 Subject: [PATCH 2/8] remove static git support files --- .gitmodules | 3 --- Makefile | 11 ++++------- script/build-libgit2-static.sh | 19 ------------------- script/with-static.sh | 12 ------------ vendor/libgit2 | 1 - 5 files changed, 4 insertions(+), 42 deletions(-) delete mode 100644 .gitmodules delete mode 100755 script/build-libgit2-static.sh delete mode 100755 script/with-static.sh delete mode 160000 vendor/libgit2 diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 8eb5872..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "vendor/libgit2"] - path = vendor/libgit2 - url = https://github.com/libgit2/libgit2 diff --git a/Makefile b/Makefile index 3040857..9c42283 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,8 @@ default: test -build-libgit2: - ./script/build-libgit2-static.sh - -test: build-libgit2 +test: go run script/check-MakeGitError-thread-lock.go - ./script/with-static.sh go test ./... + go test ./... -install: build-libgit2 - ./script/with-static.sh go install ./... +install: + go install ./... diff --git a/script/build-libgit2-static.sh b/script/build-libgit2-static.sh deleted file mode 100755 index 5723721..0000000 --- a/script/build-libgit2-static.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -set -ex - -VENDORED_PATH=vendor/libgit2 - -cd $VENDORED_PATH && -mkdir -p install/lib && -mkdir -p build && -cd build && -cmake -DTHREADSAFE=ON \ - -DBUILD_CLAR=OFF \ - -DBUILD_SHARED_LIBS=OFF \ - -DCMAKE_C_FLAGS=-fPIC \ - -DCMAKE_BUILD_TYPE="RelWithDebInfo" \ - -DCMAKE_INSTALL_PREFIX=../install \ - .. && - -cmake --build . diff --git a/script/with-static.sh b/script/with-static.sh deleted file mode 100755 index 3f60e31..0000000 --- a/script/with-static.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -set -ex - -export BUILD="$PWD/vendor/libgit2/build" -export PCFILE="$BUILD/libgit2.pc" - -FLAGS=$(pkg-config --static --libs $PCFILE) || exit 1 -export CGO_LDFLAGS="$BUILD/libgit2.a -L$BUILD ${FLAGS}" -export CGO_CFLAGS="-I$PWD/vendor/libgit2/include" - -$@ diff --git a/vendor/libgit2 b/vendor/libgit2 deleted file mode 160000 index 04bdd97..0000000 --- a/vendor/libgit2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 04bdd97f2b63793a8720fd19007911e946ba3c55 From 5be2387aeb62d70e8baba793d0571142c5744989 Mon Sep 17 00:00:00 2001 From: Matthew Donoughe Date: Fri, 13 Feb 2015 21:40:50 -0500 Subject: [PATCH 3/8] install libgit2 on travis ci --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index f84d07e..efa101f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,10 @@ language: go +install: + - wget -O libgit2-0.22.1.tar.gz https://github.com/libgit2/libgit2/archive/v0.22.1.tar.gz + - tar -xzvf libgit2-0.22.1.tar.gz + - cd libgit2-0.22.1 && mkdir build && cd build && cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr .. && make && make install + go: - 1.1 - 1.2 From 0d3cc8be8ac9d9ce6c63f78239e335a6bf40fa28 Mon Sep 17 00:00:00 2001 From: Matthew Donoughe Date: Fri, 13 Feb 2015 22:00:41 -0500 Subject: [PATCH 4/8] sudo make install? --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index efa101f..3d164f9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ language: go install: - wget -O libgit2-0.22.1.tar.gz https://github.com/libgit2/libgit2/archive/v0.22.1.tar.gz - tar -xzvf libgit2-0.22.1.tar.gz - - cd libgit2-0.22.1 && mkdir build && cd build && cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr .. && make && make install + - cd libgit2-0.22.1 && mkdir build && cd build && cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr .. && make && sudo make install go: - 1.1 From 8bb707b8275163c88e005e4fc7de8d33e69bce31 Mon Sep 17 00:00:00 2001 From: Matthew Donoughe Date: Fri, 13 Feb 2015 22:07:54 -0500 Subject: [PATCH 5/8] return to correct directory for main build --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3d164f9..6d657ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,12 @@ language: go install: + - cd "${HOME}" - wget -O libgit2-0.22.1.tar.gz https://github.com/libgit2/libgit2/archive/v0.22.1.tar.gz - tar -xzvf libgit2-0.22.1.tar.gz - - cd libgit2-0.22.1 && mkdir build && cd build && cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr .. && make && sudo make install + - cd libgit2-0.22.1 && mkdir build && cd build + - cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr .. && make && sudo make install + - cd "${TRAVIS_BUILD_DIR}" go: - 1.1 From 675b9b0df93ecd96aa9e5245676a4fac6df93a00 Mon Sep 17 00:00:00 2001 From: Matthew Donoughe Date: Fri, 13 Feb 2015 22:13:57 -0500 Subject: [PATCH 6/8] use v22 travis results --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9995707..7ebf481 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ git2go ====== -[![GoDoc](https://godoc.org/github.com/libgit2/git2go?status.svg)](http://godoc.org/github.com/libgit2/git2go) [![Build Status](https://travis-ci.org/libgit2/git2go.svg?branch=master)](https://travis-ci.org/libgit2/git2go) +[![GoDoc](https://godoc.org/github.com/libgit2/git2go?status.svg)](http://godoc.org/github.com/libgit2/git2go) [![Build Status](https://travis-ci.org/libgit2/git2go.svg?branch=v22)](https://travis-ci.org/libgit2/git2go) Go bindings for [libgit2](http://libgit2.github.com/). The master branch follows the latest libgit2 release. From 81d5cc0157d40e40987f570e362499ec0575cf95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sun, 15 Mar 2015 00:53:02 +0100 Subject: [PATCH 7/8] Make travis script install to /usr/local This is the correct place for software not installed by the system's package manager. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6d657ff..f6dc304 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ install: - wget -O libgit2-0.22.1.tar.gz https://github.com/libgit2/libgit2/archive/v0.22.1.tar.gz - tar -xzvf libgit2-0.22.1.tar.gz - cd libgit2-0.22.1 && mkdir build && cd build - - cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr .. && make && sudo make install + - cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr/local .. && make && sudo make install - cd "${TRAVIS_BUILD_DIR}" go: From 063bed33a90e7d5b1ece1b6bd1aba04a69a78a28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sun, 15 Mar 2015 01:03:06 +0100 Subject: [PATCH 8/8] Add a call to ldconfig in the travis script This should help it find the library we just installed. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f6dc304..e833a32 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ install: - tar -xzvf libgit2-0.22.1.tar.gz - cd libgit2-0.22.1 && mkdir build && cd build - cmake -DTHREADSAFE=ON -DBUILD_CLAR=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DCMAKE_INSTALL_PREFIX=/usr/local .. && make && sudo make install + - sudo ldconfig - cd "${TRAVIS_BUILD_DIR}" go: