Blob Blame History Raw
%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