Skip to content

Instantly share code, notes, and snippets.

@ddelange
Forked from ivan-c/build-git.sh
Last active February 15, 2024 01:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ddelange/e4766e56d422881e061f8758a0ba8061 to your computer and use it in GitHub Desktop.
Save ddelange/e4766e56d422881e061f8758a0ba8061 to your computer and use it in GitHub Desktop.
compile git with openssl instead of gnutls
#!/usr/bin/env bash
# original gist from pescobar/build-git.sh
# changes by LaggAt:
# * to be usable on Raspbian / tested RPi3 and
# * for automatic depency resolving
# changes by ivan-c:
# * add `apt-get update`
# changes by ddelange:
# * add `set -euxo pipefail`
# * remove `--allow-downgrades`
set -euxo pipefail
# Clear out all previous attempts
rm -rf "/tmp/source-git/"
# Get the dependencies for git, then get openssl
sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev -y
sudo apt-get build-dep git -y
sudo apt-get install libcurl4-openssl-dev -y
mkdir -p "/tmp/source-git/"
cd "/tmp/source-git/"
apt-get source git
# We need to actually go into the git source directory
# find -type f -name "*.dsc" -exec dpkg-source -x \{\} \;
cd $(find -mindepth 1 -maxdepth 1 -type d -name "git-*")
pwd
# This is where we actually change the library from one type to the other.
sed -i -- 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/' ./debian/control
# Compile time, itself, is long. Skips the tests. Do so at your own peril.
sed -i -- '/TEST\s*=\s*test/d' ./debian/rules
# Build it.
dpkg-buildpackage -rfakeroot -b
# Install (only git, git-man)
cd ..
sudo apt -y install ./git-man_*.deb ./git_*.deb
@ddelange
Copy link
Author

/bin/bash -c "$(curl -fsSL https://gist.github.com/ddelange/e4766e56d422881e061f8758a0ba8061/raw/build-git.sh)"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment