RPMs for Centos 5/6/7
Currently uses the the internal golang linker, so git-lfs has no build-id. The debug pacakges will not work out of the box until this is fixed.
This commit is contained in:
parent
47f735098b
commit
4a71627779
3
.gitignore
vendored
3
.gitignore
vendored
@ -13,3 +13,6 @@ debian/*.log
|
||||
debian/files
|
||||
debian/*.substvars
|
||||
obj-*
|
||||
|
||||
rpm/BUILD*
|
||||
rpm/*RPMS
|
||||
|
48
rpm/SPECS/git-lfs.spec
Normal file
48
rpm/SPECS/git-lfs.spec
Normal file
@ -0,0 +1,48 @@
|
||||
Name: git-lfs
|
||||
Version: 0.5.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Git extension for versioning large files
|
||||
|
||||
Group: Applications/Archiving
|
||||
License: MIT
|
||||
URL: https://git-lfs.github.com/
|
||||
Source0: https://github.com/github/git-lfs/archive/v%{version}.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: golang, tar, which, bison, rubygem-ronn
|
||||
Requires: git
|
||||
|
||||
%if 0%{?rhel} == 7
|
||||
#Umm... excuse me what?
|
||||
%define debug_package %{nil}
|
||||
#I think this is because go links with --build-id=none for linux
|
||||
#Uhhh... HOW DO I FIX THAT? Using an external linker
|
||||
%endif
|
||||
|
||||
%description
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
|
||||
%build
|
||||
./script/bootstrap
|
||||
./script/man
|
||||
|
||||
%install
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||
install -D bin/git-lfs ${RPM_BUILD_ROOT}/usr/bin/git-lfs
|
||||
mkdir -p -m 755 ${RPM_BUILD_ROOT}/usr/share/man/man1
|
||||
install -D man/*.1 ${RPM_BUILD_ROOT}/usr/share/man/man1
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc LICENSE README.md
|
||||
/usr/bin/git-lfs
|
||||
/usr/share/man/man1/*.1.gz
|
||||
|
||||
%changelog
|
||||
* Mon May 18 2015 Andrew Neff <andyneff@users.noreply.github.com> - 0.5.1-1
|
||||
- Initial Spec
|
37
rpm/SPECS/ruby.spec
Normal file
37
rpm/SPECS/ruby.spec
Normal file
@ -0,0 +1,37 @@
|
||||
Name: ruby
|
||||
Version: 2.2.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Ruby Programming Language
|
||||
|
||||
Group: Applications/Programming
|
||||
License: BSDL
|
||||
URL: https://www.ruby-lang.org/
|
||||
Source0: http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
|
||||
BuildRoot: %(echo %{_topdir}/BUILDROOT/%{name}-%{version})
|
||||
BuildRequires: patch, libyaml-devel, glibc-headers, autoconf, gcc-c++, glibc-devel, patch, readline-devel, zlib-devel, libffi-devel, openssl-devel, automake, libtool, sqlite-devel
|
||||
Provides: gem = %{version}-%{release}
|
||||
|
||||
%description
|
||||
A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
./configure
|
||||
make -j 8
|
||||
|
||||
%install
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||
make install DESTDIR=${RPM_BUILD_ROOT}
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
/
|
||||
|
||||
%changelog
|
||||
* Tue May 19 2015 Andrew Neff <andyneff@users.noreply.github.com> - 2.2.2-1
|
||||
- Initial Spec
|
41
rpm/SPECS/rubygem-hpricot.spec
Normal file
41
rpm/SPECS/rubygem-hpricot.spec
Normal file
@ -0,0 +1,41 @@
|
||||
#global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
|
||||
%global gemdir %(IFS=: R=($(gem env gempath)); echo ${R[${#R[@]}-1]})
|
||||
%define gem_name hpricot
|
||||
Name: rubygem-%{gem_name}
|
||||
Version: 0.8.6
|
||||
Release: 1%{?dist}
|
||||
Summary: a swift, liberal HTML parser with a fantastic library
|
||||
|
||||
Group: Applications/Programming
|
||||
License: N/A
|
||||
URL: https://rubygems.org/gems/%{gem_name}
|
||||
Source0: https://rubygems.org/downloads/%{gem_name}-%{version}.gem
|
||||
BuildRoot: %(echo %{_topdir}/BUILDROOT/%{gem_name}-%{version})
|
||||
BuildRequires: gem
|
||||
Requires: ruby
|
||||
|
||||
%description
|
||||
a swift, liberal HTML parser with a fantastic library
|
||||
|
||||
%prep
|
||||
%setup -q -c -T
|
||||
gem install -V --local --force --install-dir ./%{gemdir} %{SOURCE0}
|
||||
#mv ./%{gemdir}/bin ./usr/local
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p ${RPM_BUILD_ROOT}
|
||||
cp -a ./usr ${RPM_BUILD_ROOT}/usr
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{gemdir}
|
||||
|
||||
%changelog
|
||||
* Wed May 20 2015 Andrew Neff <andyneff@users.noreply.github.com> - 2.1.8
|
||||
- Initial Spec
|
44
rpm/SPECS/rubygem-mustache.spec
Normal file
44
rpm/SPECS/rubygem-mustache.spec
Normal file
@ -0,0 +1,44 @@
|
||||
#global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
|
||||
%global gemdir %(IFS=: R=($(gem env gempath)); echo ${R[${#R[@]}-1]})
|
||||
%define gem_name mustache
|
||||
|
||||
Name: rubygem-%{gem_name}
|
||||
Version: 1.0.1
|
||||
Release: 1%{?dist}
|
||||
Summary: A framework-agnostic way to render logic-free views
|
||||
|
||||
Group: Applications/Programming
|
||||
License: MIT
|
||||
URL: https://rubygems.org/gems/%{gem_name}
|
||||
Source0: https://rubygems.org/downloads/%{gem_name}-%{version}.gem
|
||||
BuildRoot: %(echo %{_topdir}/BUILDROOT/%{gem_name}-%{version})
|
||||
BuildRequires: gem > 2.0
|
||||
Requires: ruby > 2.0
|
||||
BuildArch: noarch
|
||||
|
||||
%description
|
||||
Inspired by ctemplate, Mustache is a framework-agnostic way to render logic-free views. As ctemplates says, "It emphasizes separating logic from presentation: it is impossible to embed application logic in this template language. Think of Mustache as a replacement for your views. Instead of views consisting of ERB or HAML with random helpers and arbitrary logic, your views are broken into two parts: a Ruby class and an HTML template.
|
||||
|
||||
%prep
|
||||
%setup -q -c -T
|
||||
gem install -V --local --force --install-dir ./%{gemdir} %{SOURCE0}
|
||||
mv ./%{gemdir}/bin ./usr/local
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p ${RPM_BUILD_ROOT}
|
||||
cp -a ./usr ${RPM_BUILD_ROOT}/usr
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{gemdir}
|
||||
/usr/local/bin/%{gem_name}
|
||||
|
||||
%changelog
|
||||
* Wed May 20 2015 Andrew Neff <andyneff@users.noreply.github.com> - 2.1.8
|
||||
- Initial Spec
|
42
rpm/SPECS/rubygem-rdiscount.spec
Normal file
42
rpm/SPECS/rubygem-rdiscount.spec
Normal file
@ -0,0 +1,42 @@
|
||||
#global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
|
||||
%global gemdir %(IFS=: R=($(gem env gempath)); echo ${R[${#R[@]}-1]})
|
||||
%define gem_name rdiscount
|
||||
Name: rubygem-%{gem_name}
|
||||
Version: 2.1.8
|
||||
Release: 1%{?dist}
|
||||
Summary: Fast Implementation of Gruber's Markdown in C
|
||||
|
||||
Group: Applications/Programming
|
||||
License: BSD
|
||||
URL: https://rubygems.org/gems/%{gem_name}
|
||||
Source0: https://rubygems.org/downloads/%{gem_name}-%{version}.gem
|
||||
BuildRoot: %(echo %{_topdir}/BUILDROOT/%{gem_name}-%{version})
|
||||
BuildRequires: gem > 1.9.2
|
||||
Requires: ruby > 1.9.2
|
||||
|
||||
%description
|
||||
Fast Implementation of Gruber's Markdown in C
|
||||
|
||||
%prep
|
||||
%setup -q -c -T
|
||||
gem install -V --local --force --install-dir ./%{gemdir} %{SOURCE0}
|
||||
mv ./%{gemdir}/bin ./usr/local
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p ${RPM_BUILD_ROOT}
|
||||
cp -a ./usr ${RPM_BUILD_ROOT}/usr
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{gemdir}
|
||||
/usr/local/bin/%{gem_name}
|
||||
|
||||
%changelog
|
||||
* Wed May 20 2015 Andrew Neff <andyneff@users.noreply.github.com> - 2.1.8
|
||||
- Initial Spec
|
47
rpm/SPECS/rubygem-ronn.spec
Normal file
47
rpm/SPECS/rubygem-ronn.spec
Normal file
@ -0,0 +1,47 @@
|
||||
#global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
|
||||
%global gemdir %(IFS=: R=($(gem env gempath)); echo ${R[${#R[@]}-1]})
|
||||
%define gem_name ronn
|
||||
|
||||
Name: rubygem-%{gem_name}
|
||||
Version: 0.7.3
|
||||
Release: 1%{?dist}
|
||||
Summary: Builds manuals
|
||||
|
||||
Group: Applications/Programming
|
||||
License: N/A
|
||||
URL: https://rubygems.org/gems/%{gem_name}
|
||||
Source0: https://rubygems.org/downloads/%{gem_name}-%{version}.gem
|
||||
BuildRoot: %(echo %{_topdir}/BUILDROOT/%{gem_name}-%{version})
|
||||
BuildRequires: gem
|
||||
Requires: ruby
|
||||
Requires: rubygem-hpricot >= 0.8.2
|
||||
Requires: rubygem-mustache >= 0.7.0
|
||||
Requires: rubygem-rdiscount >= 1.5.8
|
||||
BuildArch: noarch
|
||||
|
||||
%description
|
||||
Builds Manuals
|
||||
|
||||
%prep
|
||||
%setup -q -c -T
|
||||
gem install -V --local --force --install-dir ./%{gemdir} %{SOURCE0}
|
||||
mv ./%{gemdir}/bin ./usr/local
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p ${RPM_BUILD_ROOT}
|
||||
cp -a ./usr ${RPM_BUILD_ROOT}/usr
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{gemdir}
|
||||
/usr/local/bin/%{gem_name}
|
||||
|
||||
%changelog
|
||||
* Wed May 20 2015 Andrew Neff <andyneff@users.noreply.github.com> - 2.1.8
|
||||
- Initial Spec
|
112
rpm/build_rpms.bsh
Executable file
112
rpm/build_rpms.bsh
Executable file
@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eu
|
||||
|
||||
CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
|
||||
SPEC=${CURDIR}/SPECS/git-lfs.spec
|
||||
VERSION=$(\grep "^Version:" ${SPEC} | \grep -Eo [0-9.]+)
|
||||
RPMBUILD=(rpmbuild --define "_topdir ${CURDIR}")
|
||||
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
|
||||
|
||||
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 [ ! -e ${CURDIR}/SOURCES/v${VERSION}.tar.gz ]; then
|
||||
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
|
||||
|
||||
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 SPECS/golang.spec
|
||||
$SUDO yum install -y --nogpgcheck RPMS/noarch/golang-1*.rpm RPMS/noarch/golang-pkg-bin-linux-amd64-1*.rpm RPMS/noarch/golang-src-1*.noarch.rpm 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
|
||||
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
|
||||
else
|
||||
$SUDO yum install 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 SPECS/ruby.spec
|
||||
echo "Installing ruby..." >&6
|
||||
$SUDO yum install -y --nogpgcheck 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 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 SPECS/rubygem-rdiscount.spec
|
||||
"${RPMBUILD[@]}" -bb SPECS/rubygem-mustache.spec
|
||||
"${RPMBUILD[@]}" -bb SPECS/rubygem-hpricot.spec
|
||||
"${RPMBUILD[@]}" -bb SPECS/rubygem-ronn.spec
|
||||
|
||||
echo "Installing ruby gems..." >&6
|
||||
$SUDO yum install -y --nogpgcheck $(ls RPMS/noarch/rubygem-*.rpm RPMS/x86_64/rubygem-*.rpm | grep -v debuginfo)
|
||||
fi
|
||||
|
||||
echo "Build git-lfs rpm..." >&6
|
||||
"${RPMBUILD[@]}" -bb SPECS/git-lfs.spec
|
||||
"${RPMBUILD[@]}" -bs SPECS/git-lfs.spec
|
||||
|
||||
echo "All Done!" >&6
|
12
rpm/clean.bsh
Executable file
12
rpm/clean.bsh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eu
|
||||
|
||||
CWD=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
|
||||
|
||||
rm -rv ${CWD}/BUILD ${CWD}/BUILDROOT ${CWD}/RPMS ${CWD}/SRPMS ${CWD}/SOURCES || :
|
||||
|
||||
rm ${CWD}/SPECS/golang.spec || :
|
||||
|
||||
rm ${CWD}/build.log || :
|
||||
|
23
rpm/golang_patch.bsh
Executable file
23
rpm/golang_patch.bsh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eu
|
||||
|
||||
cd $(dirname ${BASH_SOURCE[0]})/SOURCES
|
||||
|
||||
#Get EPEL full list
|
||||
curl -L -O https://dl.fedoraproject.org/pub/epel/fullfilelist
|
||||
#Get latest golang src rpm
|
||||
curl -L -O https://dl.fedoraproject.org/pub/epel/$(grep '6/SRPMS/golang-[0-9].*src.rpm' fullfilelist)
|
||||
rpm2cpio *.src.rpm | cpio -diuv
|
||||
#Patch the spec file to patch the build to work on CentOS 5
|
||||
sed -ri 's|(^%build)|\1\nsed -i '"'"'s:.*--build-id.*::'"'"' ./src/cmd/go/build.go|' *.spec
|
||||
#Make SPEC CentOS 5 compliant
|
||||
sed -ri 's|(^Name:.*)|\1\nGroup: Software|' *.spec
|
||||
sed -ri 's|(^Name:.*)|\1\nBuildRoot: %(echo %{_topdir}/BUILDROOT/%{name}-%{version})|' *.spec
|
||||
sed -ri 's|(^%package\s.*)|\1\nGroup: Software|' *.spec
|
||||
sed -i 's|%ifarch %{ix86}|%if %_arch == i686|' *.spec
|
||||
sed -i 's|%ifarch %{arm}|%if %_arch == armv6l|' *.spec
|
||||
sed -i 's|%ifarch|%if %_arch ==|' *.spec
|
||||
#The test WILL fail, so make the rpm not fail
|
||||
sed -ri 's;(.*run.bash.*);\1|true;' *.spec
|
||||
mv *.spec ../SPECS/
|
||||
|
Loading…
Reference in New Issue
Block a user