diff --git a/rubygem-bundler.spec b/rubygem-bundler.spec index b8a8d97..1a09101 100644 --- a/rubygem-bundler.spec +++ b/rubygem-bundler.spec @@ -2,24 +2,39 @@ %{!?enable_test: %global enable_test 0} +# Macro for symlinking system RubyGems as a replacement for removed vendored libs +%global symlink_vendored_libs \ +for dependency in \\\ + net-http-persistent \\\ + thor \ +do \ + for fileordir in \\\ + %{gem_dir}/gems/$dependency-*/lib/* \ + do \ + ln -s -f $fileordir %{gem_libdir}/bundler/vendor/$(basename "$fileordir") \ + done \ +done + Summary: Library and utilities to manage a Ruby application's gem dependencies Name: rubygem-%{gem_name} Version: 1.7.4 -Release: 1%{?dist} +Release: 2%{?dist} Group: Development/Languages License: MIT URL: http://gembundler.com Source0: http://rubygems.org/gems/%{gem_name}-%{version}.gem Requires: ruby(release) Requires: ruby(rubygems) +Requires: rubygem(thor) +Requires: rubygem(net-http-persistent) BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby %if 0%{enable_test} > 0 BuildRequires: ruby-devel +BuildRequires: rubygem(rspec) BuildRequires: rubygem(thor) BuildRequires: rubygem(net-http-persistent) -BuildRequires: rubygem(rspec) BuildRequires: rubygem(psych) BuildRequires: git sudo %endif @@ -58,12 +73,7 @@ find %{buildroot}%{gem_instdir}/lib/bundler/templates/newgem/bin -type f | xargs chmod 755 %{buildroot}%{gem_instdir}/lib/bundler/templates/Executable* # Remove bundled libraries -rm -rf %{buildroot}/%{gem_libdir}/bundler/vendor - -# Let the RubyGems load the Bundler dependencies. This comes handy when Bundler -# is executed from Bundlerized environment. -sed -i "/if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then/ a\ s.add_runtime_dependency(%q)" %{buildroot}%{gem_spec} -sed -i "/if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then/ a\ s.add_runtime_dependency(%q)" %{buildroot}%{gem_spec} +rm -rf %{buildroot}%{gem_libdir}/bundler/vendor/* # Man pages are used by Bundler internally, do not remove them! mkdir -p %{buildroot}%{_mandir}/man5 @@ -104,6 +114,20 @@ EOF` rspec spec/ %endif +%post +# Create symlinks to system RubyGems as a replacement for vendored libs +# See rhbz#1163039 +%symlink_vendored_libs + +%postun +# Remove the symlinks for vendored libs after uninstallation +rm -f %{gem_libdir}/bundler/vendor/* + +%triggerpostun -- rubygem-thor, rubygem-net-http-persistent +# We need to recreate the symlinks after the old package of vendored lib +# has been removed, not before +%symlink_vendored_libs + %files %dir %{gem_instdir} %exclude %{gem_instdir}/.* @@ -134,6 +158,9 @@ EOF` rspec spec/ %doc %{gem_docdir} %changelog +* Tue Nov 11 2014 Josef Stribny - 1.7.4-2 +- Use symlinks for vendored libraries (rhbz#1163039) + * Mon Oct 27 2014 Vít Ondruch - 1.7.4-1 - Update to Bundler 1.7.4. - Add thor and net-http-persistent dependencies into .gemspec.