%global gem_name rugged
Summary: Rugged is a Ruby binding to the libgit2 library
Name: rubygem-%{gem_name}
Version: 0.19.0
Release: 5%{?dist}
Group: Development/Languages
License: MIT
URL: http://github.com/libgit2/rugged
Source0: http://rubygems.org/gems/%{gem_name}-%{version}.gem
# The test directory for this version is incomplete due to gemspec bug.
# Upstream has removed test and Rakefile from gem in future versions.
# https://github.com/libgit2/rugged/issues/262
# https://github.com/libgit2/rugged/pull/263
# This is how we are getting the tests (Source1)
# git clone git://github.com/libgit2/rugged.git
# cd rugged/
# git checkout v0.19.0
# tar cfz rugged-0.19.0-test.tgz test/ Rakefile
Source1: %{gem_name}-%{version}-test.tgz
Requires: ruby(rubygems)
%if 0%{?fedora} >= 19
Requires: ruby(release)
BuildRequires: ruby(release)
%else
Requires: ruby(abi) = 1.9.1
BuildRequires: ruby(abi) = 1.9.1
%endif
BuildRequires: git
BuildRequires: libgit2-devel
BuildRequires: ruby-devel
BuildRequires: rubygem(minitest)
BuildRequires: rubygems-devel
BuildRequires: zlib-devel
Provides: rubygem(%{gem_name}) = %{version}
%{?rubygems_default_filter}
%description
Rugged is a Ruby bindings to the libgit2W C Git library. This is
for testing and using the libgit2 library in a language that is awesome.
%package doc
Summary: Documentation for %{name}
Group: Documentation
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description doc
Documentation for %{name}
%prep
gem unpack %{SOURCE0}
%setup -q -D -T -n %{gem_name}-%{version}
gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec
rm -rf vendor
# Remove the bundled libraries from gemspec
sed -i -e 's\ "vendor[^,]*,\\g' rugged.gemspec
%build
# Setting for rugged v0.19.0:
export LIBGIT2_PATH="/usr/"
# Note that in upstream's git development branch (so, post 0.19.0), we have to
# specify the path to libgit2 differently:
# export CONFIGURE_ARGS="--with-cflags='%{optflags}' --with-git2-dir='/usr'"
gem build %{gem_name}.gemspec
%gem_install
%install
mkdir -p %{buildroot}%{gem_dir}
cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}/
# move C extensions to the extdir.
mkdir -p %{buildroot}%{gem_extdir_mri}/lib/%{gem_name}/
mv %{buildroot}%{gem_instdir}/lib/%{gem_name}/rugged.so %{buildroot}%{gem_extdir_mri}/lib/%{gem_name}/
# Clear up empty files
echo "#file" > %{buildroot}%{gem_instdir}/test/fixtures/attr/dir/file
echo "#file" > %{buildroot}%{gem_instdir}/test/fixtures/attr/sub/dir/file
echo "#dir" > %{buildroot}%{gem_instdir}/test/fixtures/attr/sub/sub/dir
# We don't need those files anymore.
rm -rf %{buildroot}%{gem_instdir}/ext/
%check
pushd .%{gem_instdir}
tar xfz %{SOURCE1}
export LANG="en_US.UTF-8"
git config --global user.name John Doe
testrb -Ilib test/*test.rb
popd
%files
%doc %{gem_instdir}/LICENSE
%doc %{gem_instdir}/README.md
%dir %{gem_instdir}
%{gem_libdir}
%{gem_extdir_mri}
%exclude %{gem_cache}
%{gem_spec}
%files doc
%doc %{gem_docdir}
%{gem_instdir}/Rakefile
%{gem_instdir}/test
%changelog
* Mon Jan 06 2014 Troy Dawson <tdawson@redhat.com> - 0.19.0-5
- Misc spec file fixes (#1048958) Ken Dreyer
- Change vendor patch to sed command
* Mon Sep 09 2013 Troy Dawson <tdawson@redhat.com> - 0.19.0-4
- Update comments about test source
- Fix zero length files in test
* Fri Sep 06 2013 Troy Dawson <tdawson@redhat.com> - 0.19.0-3
- Added full test directory
- use minitest for tests
- Added .so file provides filter
* Thu Aug 22 2013 Troy Dawson <tdawson@redhat.com> - 0.19.0-2
- remove vendor directory and patch gemspec to reflect that
- export LIBGIT2_PATH before building to use system git2
* Mon Jul 22 2013 Troy Dawson <tdawson@redhat.com> - 0.19.0-1
- Updated to latest release - 0.19.0
- Cleaned up bad tests
- Comment out check, due to bad exit code from successful tests
* Mon Jul 22 2013 Troy Dawson <tdawson@redhat.com> - 0.19.0-1
- Updated to latest release - 0.19.0
- Cleaned up bad tests
* Tue Jul 09 2013 Troy Dawson <tdawson@redhat.com> - 0.16.0-3
- Change build section to use current ruby guidelines
- move lib/rugged/rugged.so instead of ext/rugged/rugged.so
- move rugged.so into the correct directory
- cleanup test, now runs without problems
* Tue Jul 02 2013 Troy Dawson <tdawson@redhat.com> - 0.16.0-2
- Make macro's more consistant
- Remove extra rugged.so
- Set correct permissions for rugged.so
- Run test (thanks to Axilleas Pipinellis for this)
- Add libgit2-devel to buildrequires - this causes the build to
use system libgit2 instead of bundled version.
* Mon Mar 18 2013 Troy Dawson <tdawson@redhat.com> - 0.16.0-1
- Initial package