| |
| %gem_dir %{_datadir}/gems |
| %gem_archdir %{_libdir}/gems |
| |
| |
| %gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}%{?prerelease} |
| %gem_extdir_mri %{gem_archdir}/ruby/%{gem_name}-%{version}%{?prerelease} |
| %gem_libdir %{gem_instdir}/lib |
| %gem_cache %{gem_dir}/cache/%{gem_name}-%{version}%{?prerelease}.gem |
| %gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}%{?prerelease}.gemspec |
| %gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}%{?prerelease} |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| %gem_install(d:n:) \ |
| mkdir -p %{-d*}%{!?-d:.%{gem_dir}} \ |
| \ |
| CONFIGURE_ARGS="--with-cflags='%{optflags}' $CONFIGURE_ARGS" \\\ |
| gem install \\\ |
| -V \\\ |
| --local \\\ |
| --build-root %{-d*}%{!?-d:.} \\\ |
| --force \\\ |
| --document=ri,rdoc \\\ |
| %{-n*}%{!?-n:%{gem_name}-%{version}%{?prerelease}.gem} \ |
| %{nil} |
| |
| |
| |
| |
| |
| |
| |
| %rubygems_default_filter %{expand: \ |
| %global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^%{gem_extdir_mri}/.*\\\\.so$ \ |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| %gemspec_add_dep(g:s:d) \ |
| read -d '' gemspec_add_dep_script << 'EOR' || : \ |
| gemspec_file = '%{-s*}%{!?-s:./%{gem_name}.gemspec}' \ |
| \ |
| name = '%{-g*}' \ |
| requirements = %{*}%{!?1:nil} \ |
| \ |
| type = :%{!?-d:runtime}%{?-d:development} \ |
| \ |
| spec = Gem::Specification.load(gemspec_file) \ |
| abort("#{gemspec_file} is not accessible.") unless spec \ |
| \ |
| dep = spec.dependencies.detect { |d| d.type == type && d.name == name } \ |
| if dep \ |
| dep.requirement.concat requirements \ |
| else \ |
| spec.public_send "add_#{type}_dependency", name, requirements \ |
| end \ |
| File.write gemspec_file, spec.to_ruby \ |
| EOR\ |
| echo "$gemspec_add_dep_script" | ruby \ |
| unset -v gemspec_add_dep_script \ |
| %{nil} |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| %gemspec_remove_dep(g:s:d) \ |
| read -d '' gemspec_remove_dep_script << 'EOR' || : \ |
| gemspec_file = '%{-s*}%{!?-s:./%{gem_name}.gemspec}' \ |
| \ |
| name = '%{-g*}' \ |
| requirements = %{*}%{!?1:nil} \ |
| \ |
| type = :%{!?-d:runtime}%{?-d:development} \ |
| \ |
| spec = Gem::Specification.load(gemspec_file) \ |
| abort("#{gemspec_file} is not accessible.") unless spec \ |
| \ |
| dep = spec.dependencies.detect { |d| d.type == type && d.name == name } \ |
| if dep \ |
| if requirements \ |
| requirements = Gem::Requirement.create(requirements).requirements \ |
| requirements.each do |r| \ |
| unless dep.requirement.requirements.reject! { |dependency_requirements| dependency_requirements == r } \ |
| abort("Requirement '#{r.first} #{r.last}' was not possible to remove for dependency '#{dep}'!") \ |
| end \ |
| end \ |
| spec.dependencies.delete dep if dep.requirement.requirements.empty? \ |
| else \ |
| spec.dependencies.delete dep \ |
| end \ |
| else \ |
| abort("Dependency '#{name}' was not found!") \ |
| end \ |
| File.write gemspec_file, spec.to_ruby \ |
| EOR\ |
| echo "$gemspec_remove_dep_script" | ruby \ |
| unset -v gemspec_remove_dep_script \ |
| %{nil} |