e2f770c8f5
Updated INSTALL.md Added a numch of small changes so build-centos doesn't fail after running build_rpms, and vice versa. Made compiling rpm with nodeps easier
140 lines
4.6 KiB
Bash
Executable File
140 lines
4.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
|
|
SPEC=${CURDIR}/SPECS/git-lfs.spec
|
|
VERSION=$(\grep '^const Version' "${CURDIR}/../lfs/lfs.go" | sed 's|const Version = "\([0-9.]*\)"|\1|')
|
|
if [[ ${NODEPS:-0} == 0 ]]; then
|
|
RPMBUILD=(rpmbuild --define "_topdir ${CURDIR}")
|
|
else
|
|
RPMBUILD=(rpmbuild --define "_topdir ${CURDIR}" --nodeps)
|
|
fi
|
|
LOG=${CURDIR}/build.log
|
|
SUDO=${SUDO=sudo}
|
|
export PATH=${PATH}:/usr/local/bin
|
|
|
|
exec 6>&1
|
|
exec 7>&2
|
|
|
|
exec > $LOG
|
|
exec 2>> $LOG
|
|
|
|
set -vx
|
|
|
|
echo "Downloading/checking for some essentials..." >&6
|
|
$SUDO yum install -y make curl which rpm-build tar bison git
|
|
|
|
REDHAT_VERSION=($(head -n 1 /etc/redhat-release | \grep -Eo '[0-9]+'))
|
|
REDHAT_NAME=$(awk '{print $1}' /etc/redhat-release)
|
|
|
|
mkdir -p ${CURDIR}/{BUILD,BUILDROOT,SOURCES,RPMS,SRPMS}
|
|
|
|
if [[ ${REDHAT_VERSION[0]} == 5 ]]; then
|
|
pushd ${CURDIR}
|
|
$SUDO rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
|
|
curl -L -O http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
|
|
$SUDO yum install -y rpmforge-release-0.5.3-1.el5.rf.*.rpm
|
|
rm rpmforge-release-0.5.3-1.el5.rf.*.rpm
|
|
popd
|
|
$SUDO yum install -y git
|
|
fi
|
|
|
|
if [ ! -e ${CURDIR}/SOURCES/v${VERSION}.tar.gz ]; then
|
|
if [ "${BUILD_LOCAL:=0}" == "1" ]; then
|
|
echo "Zipping up current checkout of git-lfs..." >&6
|
|
if [[ ${REDHAT_VERSION} == 5 ]]; then
|
|
rm -rvf ${CURDIR}/tmptar
|
|
mkdir -p ${CURDIR}/tmptar/git-lfs-${VERSION}
|
|
pushd ${CURDIR}/..
|
|
tar -c . --exclude rpm --exclude .git --exclude tmptar | tar -x -C ${CURDIR}/tmptar/git-lfs-${VERSION}/
|
|
popd
|
|
pushd ${CURDIR}/tmptar
|
|
tar -zcf ${CURDIR}/SOURCES/v${VERSION}.tar.gz git-lfs-${VERSION}
|
|
popd
|
|
rm -rvf ${CURDIR}/tmptar
|
|
else
|
|
pushd ${CURDIR}/..
|
|
tar -zcf ${CURDIR}/SOURCES/v${VERSION}.tar.gz --exclude v${VERSION}.tar.gz --exclude .git --exclude rpm . --transform "s:^:git-lfs-${VERSION}/:"
|
|
popd
|
|
fi
|
|
else
|
|
echo "Downloading git-lfs..." >&6
|
|
mkdir -p ${CURDIR}/SOURCES
|
|
pushd ${CURDIR}/SOURCES
|
|
curl -L -O https://github.com/github/git-lfs/archive/v${VERSION}.tar.gz
|
|
popd
|
|
fi
|
|
fi
|
|
|
|
if ! which go; then
|
|
echo "Installing go... one way or another" >&6
|
|
if [[ ${REDHAT_VERSION[0]} == 5 ]]; then
|
|
$SUDO yum install -y curl.x86_64 glibc gcc
|
|
${CURDIR}/golang_patch.bsh
|
|
"${RPMBUILD[@]}" -bb ${CURDIR}/SPECS/golang.spec
|
|
$SUDO yum install -y --nogpgcheck ${CURDIR}/RPMS/noarch/golang-1*.rpm ${CURDIR}/RPMS/noarch/golang-pkg-bin-linux-amd64-1*.rpm ${CURDIR}/RPMS/noarch/golang-src-1*.noarch.rpm ${CURDIR}/RPMS/noarch/golang-pkg-linux-amd64-1*.noarch.rpm
|
|
else
|
|
$SUDO yum install -y epel-release
|
|
$SUDO yum install -y golang
|
|
fi
|
|
fi
|
|
|
|
if which ruby > /dev/null 2>&1; then
|
|
IFS_OLD=${IFS}
|
|
IFS=.
|
|
RUBY_VERSION=($(ruby -e "print RUBY_VERSION"))
|
|
IFS=${IFS_OLD}
|
|
else
|
|
RUBY_VERSION=(0 0 0)
|
|
fi
|
|
|
|
if [[ ${RUBY_VERSION[0]} < 2 ]]; then
|
|
if [[ ${REDHAT_VERSION[0]} < 7 ]]; then
|
|
echo "Downloading ruby..." >&6
|
|
|
|
if ! rpm -q epel-release; then
|
|
if [[ ${REDHAT_VERSION[0]} > 5 ]]; then
|
|
$SUDO yum install -y epel-release #Part of centos 6+
|
|
fi
|
|
fi
|
|
|
|
$SUDO yum install -y patch libyaml-devel glibc-headers autoconf gcc-c++ glibc-devel readline-devel zlib-devel libffi-devel openssl-devel automake libtool sqlite-devel
|
|
pushd ${CURDIR}/SOURCES
|
|
curl -L -O http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
|
|
popd
|
|
echo "Building ruby..." >&6
|
|
"${RPMBUILD[@]}" -bb ${CURDIR}/SPECS/ruby.spec
|
|
echo "Installing ruby..." >&6
|
|
$SUDO yum install -y --nogpgcheck ${CURDIR}/RPMS/x86_64/ruby*.rpm
|
|
else
|
|
$SUDO yum install -y ruby ruby-devel
|
|
fi
|
|
fi
|
|
|
|
if ! which ronn; then
|
|
echo "Downloading some ruby gems..." >&6
|
|
pushd ${CURDIR}/SOURCES
|
|
curl -L -O https://rubygems.org/downloads/rdiscount-2.1.8.gem
|
|
curl -L -O https://rubygems.org/downloads/hpricot-0.8.6.gem
|
|
curl -L -O https://rubygems.org/downloads/mustache-1.0.1.gem
|
|
curl -L -O https://rubygems.org/downloads/ronn-0.7.3.gem
|
|
popd
|
|
|
|
echo "Building ruby gems..." >&6
|
|
"${RPMBUILD[@]}" -bb ${CURDIR}/SPECS/rubygem-rdiscount.spec
|
|
"${RPMBUILD[@]}" -bb ${CURDIR}/SPECS/rubygem-mustache.spec
|
|
"${RPMBUILD[@]}" -bb ${CURDIR}/SPECS/rubygem-hpricot.spec
|
|
"${RPMBUILD[@]}" -bb ${CURDIR}/SPECS/rubygem-ronn.spec
|
|
|
|
echo "Installing ruby gems..." >&6
|
|
$SUDO yum install -y --nogpgcheck $(ls ${CURDIR}/RPMS/noarch/rubygem-*.rpm ${CURDIR}/RPMS/x86_64/rubygem-*.rpm | grep -v debuginfo)
|
|
fi
|
|
|
|
echo "Build git-lfs rpm..." >&6
|
|
sed -i 's|\(Version:\s*\).*|\1'"${VERSION}"'|' ${CURDIR}/SPECS/git-lfs.spec
|
|
"${RPMBUILD[@]}" -bb ${CURDIR}/SPECS/git-lfs.spec
|
|
"${RPMBUILD[@]}" -bs ${CURDIR}/SPECS/git-lfs.spec
|
|
|
|
echo "All Done!" >&6
|