Commit Graph

33 Commits

Author SHA1 Message Date
Suhaib Mujahid 111185838c
feat: Enable change the system install path (#653)
#### Problem:
The current `CMAKE_INSTALL_PREFIX` value for the `system` build mode is `/usr`. However, in`macOS` as an example, you cannot write to `/usr` without `sudo` permission.

#### Proposed solution:
Enable changing the value to `/usr/local` (or any other path). This change makes the script use the value of the environment variable `SYSTEM_INSTALL_PREFIX` to select the installation path.  If the variable is not set, it fallback to the path `/usr`.
2020-09-30 17:27:48 -07:00
Suhaib Mujahid f3a746d7b6
Enable set the VENDORED_PATH for libgit2 (#650)
### What this change is doing?
This change aims to enable us to set the `VENDORED_PATH` as an environment variable and failback to the default value if the environment variable is not set. Thus, this change should not break current behavior.

### Why we need this?
This will enable using the script to build libgit2 form source code downloaded manually.

Example:
```sh
LIBGIT2_VER="1.0.1"
DOWNLOAD_URL="https://codeload.github.com/libgit2/libgit2/tar.gz/v${LIBGIT2_VER}""
LIBGIT2_PATH="${HOME}/libgit2-${LIBGIT2_VER}"
wget -O "${LIBGIT2_PATH}.tar.gz" "$DOWNLOAD_URL"
tar -xzvf "${LIBGIT2_PATH}.tar.gz"


VENDORED_PATH=$LIBGIT2_PATH sh ./script/build-libgit2.sh --static
```
2020-09-30 16:57:50 -07:00
lhchavez 5314951759
Refresh the GitHub Actions CI (#632)
This change:

* Builds the library with Go 1.14, too.
* Builds the non-legacy tests with Ubuntu Focal (20.04).
* Adds testing for system-wide libraries, both static and dynamic
  versions.
* Fixes a typo in the README.
2020-08-15 17:19:53 -07:00
Patrick Steinhardt d8f9990d4d
Fix installation of libgit2 into wrong libdir (#624)
Upstream libgit2 has migrated to use the GNUInstallDirs module to decide
where things will be installed to by default. While it improves
consistency with the host system, we're not really after that when
building the vendored libgit2 library, and in fact libgit2.{a,pc} may
now be installed into a different directory than before as it started to
depend on the host platform.

Fix this by explicitly specifying that we want the library and pkgconfig
file to be installed into a plain "lib/" directory.
2020-07-25 13:08:04 -07:00
lhchavez 1c9bef0f9f
Remove a couple of now-unnecessary CMake defines (#619)
This change removes the `LIB_INSTALL_DIR` and `INCLUDE_INSTALL_DIR` from
the `script/build-libgit2.sh` script, since they are now unneeded and
just print a warning if they are used.
2020-06-20 12:39:03 -07:00
lhchavez e10c2eeef2 Uprev vendor/libgit2 to v0.99
This uprevs libgit2 to the latest and greatest.
2020-03-04 09:54:42 -08:00
lhchavez 26edffd5f5 Update CI configuration
This change:

* Updates the GitHub actions so that they run different commands for the
  dynamic and static flavors of libgit2.
* Updates the .travis.yml file so that it does roughly the same as the
  GitHub actions.
* Adds the release-* branches to the CI configurations.
2020-02-22 18:21:38 -08:00
lhchavez aa802a90db
Merge pull request #503 from jonEbird/static-build-script-cleanup
script/build-libgit2-static.sh: correctly set ROOT
2020-02-12 16:57:53 -08:00
Carlos Martín Nieto 57ab6bc351 script: tell libgit2 to use the builtin regex backend 2019-08-13 20:15:01 +02:00
Jon Miller 13090d85b4 script/build-libgit2-static.sh: correctly set ROOT
The ROOT variable is not being set correctly. Need to use dirname against
$0 as well as only go up one directory instead of two.
2019-05-07 11:36:34 -04:00
lhchavez f3c487966d Improve the static build script
This change:

* Uses the installed version of both the library and the pkgconfig file,
  which fixes path resolution on Ubuntu Xenial.
* Uses quoting liberally so that paths with spaces in them are correctly
  handled.
* Moves the build+install directories to static-build/ in the git2go
  repository to avoid having a dirty vendor/libgit2 checkout.
2019-01-05 20:28:35 +00:00
Ryan Graham b3256d9058
static: use pkg-config exclusively when using it
When using the static linking option on platforms that use pkg-config,
use ONLY pkg-config to get the CFLAGS and LDFLAGS. This prevents pulling
in dependencies and flags for any non-vendored version that may be
present on the host.

The main practical effect of this is that if someone doesn't need/want
any sort of remote access support at all they can completely disable
libcurl, libssh2, libssl, etc and produce a smaller/simpler binary and
greatly simplify their build-time dependencies. When done properly, the
generated pkg-config file will tell cgo everything it needs to know.

This also prevents confusion if there is a system copy of libgit2 that
is being given priority over the vendored build.

Signed-off-by: Ryan Graham <r.m.graham@gmail.com>
2018-08-23 10:45:27 -07:00
Carlos Martín Nieto 9c5fb973fc Get rid of the with-static.sh script
CGO can perform variable substitution in the directives, so we don't
need to use a script to set up the variables; we can let the go tool do
it for us.
2016-11-01 00:17:51 +01:00
Carlos Martín Nieto d3bd8903f8 Update libgit2 version to install on Travis to 24 2016-03-07 11:33:44 +01:00
Carlos Martín Nieto 1ea9965824 Install v23 on Travis 2015-08-31 16:07:37 +02:00
Carlos Martín Nieto 2d6b1ebd4c travis: make the script executable 2015-06-28 13:19:03 +02:00
Carlos Martín Nieto 5f3a9d76b8 travis: don't install libgit2 for 'next' branch
We have our own libgit2 in a submodule, so this is unnecessary. While in
the area, update which version of libgit2 would be downloaded and remove
unnecessary CMake flags.
2015-06-28 13:17:14 +02:00
Dmitri Shuralyov acc05926f7 Avoid installing script binary to user's $GOPATH/bin. 2015-04-16 18:45:53 -07:00
Carlos Martín Nieto ef83908059 Revert "Make the cgo tool do more linking work" 2014-12-31 19:43:20 +00:00
Carlos Martín Nieto 8f6e13bd08 Make the cgo tool do more linking work
The cgo directives let us do a lot more than I previously thought, so we
can use this to make the building process of git2go go through the go
tool directly rather than via the script.

libgit2 still needs to be built manually, so we do still require make,
but only for building libgit2. Once that's built, any modifications to
git2go's own code can be built with

    go build
2014-12-27 10:59:19 +00:00
Quinn Slack 57095bafe7 only check Go source files for non-thread-locked MakeGitError calls 2014-12-08 11:54:04 -08:00
Quinn Slack 3087e610fb add script for checking thread locks in funcs that call MakeGitError 2014-12-08 11:52:35 -08:00
Carlos Martín Nieto 84597241e0 Exit when pkg-config isn't found
We run pkg-config in a subshell, so our 'set -e' does not take effect
there. Explicitly error out if there was an error running pkg-config.
2014-08-26 23:32:27 +02:00
Matthias Kadenbach c1ed1bc545 Make sure install/lib dir exists. Fixes #104 2014-08-06 04:07:15 +02:00
Carlos Martín Nieto a2b14b5be4 Tighten up the build
Build as release, and there is no need to install the library, we know
where the files are.
2014-06-07 19:12:33 +02:00
Carlos Martín Nieto 12a3a1e05c Move the settings into the main git2go 2014-06-07 18:57:46 +02:00
Carlos Martín Nieto aabeb7f585 Really build statically 2014-06-07 15:43:05 +02:00
Carlos Martín Nieto 6862c2c82d hack for travis 2014-06-07 14:07:15 +02:00
Carlos Martín Nieto c734fc2a6b Use a submodule for libgit2
This makes building the static version easier as we know where the repo
is and that it's has a known-good version.
2014-06-07 03:03:04 +02:00
Carlos Martín Nieto 0646294282 Move some logic into the Makefile
This should provide a nice compromise between the scripts and comon
commands.
2014-06-03 18:35:09 +02:00
Carlos Martín Nieto de4f42f476 Add scripts to build and use a static libgit2 2014-06-03 12:03:00 +02:00
Carlos Martín Nieto b2a2a279d9 Add a settings package
This lets us modify the libgit2-wide options/settings.
2014-03-25 09:27:05 +01:00
Carlos Martín Nieto f5f8e13744 Add a travis script
Add a build script and ask Travis to run it. It downloads the tip of
libgit2's dev branch and tests against that.
2014-02-28 15:15:32 +01:00