Blob Blame History Raw
%global gem_name posix-spawn

Name: rubygem-%{gem_name}
Version: 0.3.13
Release: 6%{?dist}
Summary: posix_spawnp(2) for Ruby
License: MIT
URL: https://github.com/rtomayko/posix-spawn
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
# Skip tests that fail.
# https://github.com/rtomayko/posix-spawn/issues/43
Patch0: rubygem-posix-spawn-0.3.11-skip-tests.patch
Patch1: https://github.com/rtomayko/posix-spawn/commit/5201e921a788fbb97f14ea0c617a2213dc3da1ca.patch

BuildRequires:  gcc
%if 0%{?el7}
Requires: ruby(release)
Requires: ruby(rubygems)
BuildRequires: ruby(release)
%endif

BuildRequires: rubygems-devel
BuildRequires: ruby-devel
BuildRequires: rubygem(minitest)
%if 0%{?el7}
Provides: rubygem(%{gem_name}) = %{version}
%endif

%description
posix-spawn uses posix_spawnp(2) for faster process spawning.


%package doc
Summary: Documentation for %{name}
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

# Remove developer-only files.
FREEZE=""
%if 0%{?fedora} >= 26
FREEZE=".freeze"
%endif
for f in .gitignore Gemfile Rakefile; do
  rm $f
  sed -i "s|\"$f\"${FREEZE},||g" %{gem_name}.gemspec
done

# Skip tests that fail.
# https://github.com/rtomayko/posix-spawn/issues/43
%patch0 -p1

%patch1 -p1

%build
# Create the gem as gem install only works on a gem file
gem build %{gem_name}.gemspec

%gem_install

# Remove unnecessary gemspec file
rm .%{gem_instdir}/%{gem_name}.gemspec

%install
mkdir -p %{buildroot}%{gem_dir}
cp -pa .%{gem_dir}/* \
        %{buildroot}%{gem_dir}/

# Remove deprecated "ext" directory
rm -r %{buildroot}%{gem_instdir}/ext

# Move the binary extension.
# Get the minor version number of Ruby
ruby_version_minor=$(ruby \
  -e "puts RUBY_VERSION.split('.')[1]")
# Move according to Ruby 2.1 or 2.0
if [ $ruby_version_minor -gt 0 ]; then
  # Ruby 2.1+ on Fedora 21 and above
  mkdir -p %{buildroot}%{gem_extdir_mri}
  cp -pa .%{gem_extdir_mri}/* %{buildroot}%{gem_extdir_mri}/
else
  # Ruby 2.0 on Fedora 20
  mkdir -p %{buildroot}%{gem_extdir_mri}/lib
  mv %{buildroot}%{gem_libdir}/posix_spawn_ext.so \
    %{buildroot}%{gem_extdir_mri}/lib/
fi

mkdir -p %{buildroot}%{_bindir}
cp -pa .%{_bindir}/* \
        %{buildroot}%{_bindir}/

find %{buildroot}%{gem_instdir}/bin -type f | xargs chmod a+x

%check
pushd .%{gem_instdir}
  # Even though we patch out some of the failing tests, it appears that others
  # sporadically crash Ruby as well. See RHBZ #1210991. For now we will run the
  # tests so we can see the output but skip checking the exit code here.
  ruby -I"lib:test:%{buildroot}%{gem_extdir_mri}" -e \
    'Dir.glob "./test/test_*.rb", &method(:require)' || :
popd

%files
%dir %{gem_instdir}
%license %{gem_instdir}/COPYING
%doc %{gem_instdir}/README.md
%{_bindir}/posix-spawn-benchmark
%{gem_instdir}/bin
%{gem_libdir}
%{gem_extdir_mri}
%exclude %{gem_cache}
%{gem_spec}

%files doc
%doc %{gem_docdir}
%doc %{gem_instdir}/HACKING
%doc %{gem_instdir}/TODO
%exclude %{gem_instdir}/test

%changelog
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.13-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Sat Jan 18 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.3.13-5
- F-32: rebuild against ruby27

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.13-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.13-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Thu Jan 17 2019 Vít Ondruch <vondruch@redhat.com> - 0.3.13-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.6

* Tue Aug 28 2018 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.3.13-1
- Update to latest version (#1391801)

* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.11-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.11-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 0.3.11-11
- Rebuilt for switch to libxcrypt

* Thu Jan 04 2018 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.3.11-10
- F-28: rebuild for ruby25

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.11-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.11-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.11-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Jan 12 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.3.11-6
- F-26: rebuild for ruby24

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.11-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Jan 11 2016 Vít Ondruch <vondruch@redhat.com> - 0.3.11-4
- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.3

* Fri Jan 08 2016 Ken Dreyer <ktdreyer@ktdreyer.com> - 0.3.11-3
- Unconditionally pass tests (RHBZ #1210991)

* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.11-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat Apr 11 2015 Ken Dreyer <ktdreyer@ktdreyer.com> - 0.3.11-1
- Update to 0.3.11 (RHBZ #1193734)
- Drop Minitest 5 patch; this is now upstream
- Drop Fedora 19 support

* Fri Jan 16 2015 Vít Ondruch <vondruch@redhat.com> - 0.3.9-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.2

* Thu Sep 11 2014 Ken Dreyer <ktdreyer@ktdreyer.com> - 0.3.9-1
- Update to 0.3.9 (RHBZ #1125902)

* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri Apr 11 2014 Ken Dreyer <ktdreyer@ktdreyer.com> - 0.3.8-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.1
  and Minitest 5

* Fri Dec 27 2013 Ken Dreyer <ktdreyer@ktdreyer.com> - 0.3.8-1
- Initial package