Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-updates-src > by-pkgid > c2637170f289137e7f8944ec39932eda > files > 17

ruby-2.5.7-20.mga7.src.rpm

# The RubyGems root folder.
%gem_dir %{_datadir}/gems
%gem_archdir %{_libdir}/gems

# Common gem locations and files.
%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}
%gem_extdir_mri %{gem_archdir}/ruby/%{gem_name}-%{version}
%gem_libdir %{gem_instdir}/lib
%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}.gem
%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}.gemspec
%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}

%gem_name %{?oname}%{!?oname:%(echo %{name}|cut -d\- -f2-)}

%gem_setup %setup -q -n %{gem_name}-%{version}

%gem_build %{_bindir}/gem build ../%{gem_name}-%{version}.gemspec \
	%{_bindir}/gem install %{gem_name}-%{version}.gem -V --local \\\
		--env-shebang --rdoc --ri --force --ignore-dependencies \\\
		--install-dir %{gem_dir} \\\
		--bindir %{_bindir} \\\
		--build-root .

%gem_install(d) \
	mkdir -p %{buildroot}%{gem_dir} \
	cp -a .%{gem_dir}/* %{buildroot}%{gem_dir}/ \
	if [ -d .%{gem_extdir_mri} ]; then mkdir -p %{buildroot}%{gem_extdir_mri}; cp -pa .%{gem_extdir_mri}/* %{buildroot}%{gem_extdir_mri}; fi \
	if [ -d .%{_bindir} ] ; then mkdir -p %{buildroot}%{_bindir} ; cp -pa .%{_bindir}/* %{buildroot}%{_bindir}/; fi \
	%{-d: \
		mkdir -p %{buildroot}%{ruby_vendorarchdir} \
		mv -f %{buildroot}%{gem_extdir_mri}/*.h %{buildroot}%{ruby_vendorarchdir} \
	} \
	rm -fr %{buildroot}%{gem_dir}/{cache,extensions,gems/%{gem_name}-%{version}/ext,gems/%{gem_name}-%{version}/%{gem_name}.gemspec} \
	rm -f %{buildroot}%{gem_extdir_mri}/{gem_make.out,mkmf.log}

# Following macros are stolen from Fedora

# The 'read' command in gemspec_add _depand gemspec_remove_dep macros is not
# essential, but it is usefull to make the sript appear in build log.


# %gemspec_add_dep - Add dependency into .gemspec.
#
# Usage: %gemspec_add_dep -g <gem> [options] [requirements]
#
# Add dependency named <gem> to .gemspec file. The macro adds runtime
# dependency by default. The [requirements] argument can be used to specify
# the dependency constraints more precisely. It is expected to be valid Ruby
# code.
#
# -s <gemspec_file>   Overrides the default .gemspec location.
# -d                  Add development dependecy.
#
%gemspec_add_dep(g:s:d) \
read -d '' gemspec_add_dep_script << 'EOR' || : \
  gemspec_file = '%{-s*}%{!?-s:../%{gem_name}-%{version}.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 - Remove dependency from .gemspec.
#
# Usage: %gemspec_remove_dep -g <gem> [options] [requirements]
#
# Remove dependency named <gem> from .gemspec file. The macro removes runtime
# dependency by default. The [requirements] argument can be used to specify
# the dependency constraints more precisely. It is expected to be valid Ruby
# code. The macro fails if these specific requirements can't be removed.
#
# -s <gemspec_file>   Overrides the default .gemspec location.
# -d                  Remove development dependecy.
#
%gemspec_remove_dep(g:s:d) \
read -d '' gemspec_remove_dep_script << 'EOR' || : \
  gemspec_file = '%{-s*}%{!?-s:../%{gem_name}-%{version}.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}