[packages/ruby/dev-2.2] update patches from fedora
glen
glen at pld-linux.org
Thu Oct 20 22:08:13 CEST 2016
commit 3112d6a61a6fcf9953fe07b147adf8cc715ee08d
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Thu Oct 20 21:39:48 2016 +0300
update patches from fedora
subpackages for power_assert and test-unit gems
archlibdir.patch | 2 +-
custom-rubygems-location.patch | 14 ++++----
duplicated-paths.patch | 64 +++++++++++++++++++++++++++++++------
operating_system.rb | 36 ++++++++++++++-------
ruby.spec | 72 ++++++++++++++++++++++++++++++++++++++----
5 files changed, 153 insertions(+), 35 deletions(-)
---
diff --git a/ruby.spec b/ruby.spec
index 461fdd0..9f0b42e 100644
--- a/ruby.spec
+++ b/ruby.spec
@@ -34,6 +34,7 @@
%define rdoc_ver 4.2.0
%define rubygems_ver 2.4.5.1
%define test_unit_ver 3.0.8
+%define power_assert_ver 0.2.2
%define oname ruby
Summary: Ruby - interpreted scripting language
@@ -45,8 +46,11 @@ Name: ruby%{ruby_suffix}
Version: %{pkg_version}
Release: %{rel}
Epoch: 1
-# Public Domain for example for: include/ruby/st.h, strftime.c, ...
-License: (Ruby or BSD) and Public Domain
+# Public Domain for example for: include/ruby/st.h, strftime.c, missing/*, ...
+# MIT and CCO: ccan/*
+# zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c
+# UCD: some of enc/trans/**/*.src
+License: (Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD
Group: Development/Languages
# https://www.ruby-lang.org/en/downloads/
Source0: https://ftp.ruby-lang.org/pub/ruby/2.2/%{oname}-%{pkg_version}.tar.xz
@@ -99,8 +103,8 @@ BuildRequires: ruby
BuildRequires: ruby-modules
%endif
%if %{with tk}
-BuildRequires: tk-devel >= 8.4
BuildRequires: tk-devel < 8.7
+BuildRequires: tk-devel >= 8.4
%endif
Requires(post,postun): /sbin/ldconfig
Provides: ruby(ver) = %{ruby_version}
@@ -309,7 +313,8 @@ Summary(pl.UTF-8): Narzędzie do generowania dokumentacji HTML i linii poleceń
Version: %{rdoc_ver}
Release: %{pkg_version}.%{rel}
Epoch: 0
-License: GPL v2 and Ruby and MIT
+# SIL: lib/rdoc/generator/template/darkfish/css/fonts.css
+License: GPLv2 and Ruby and MIT and SIL
Group: Development/Libraries
Requires: %{name}-irb >= %{irb_ver}
Requires: %{name}-json >= %{json_ver}
@@ -401,7 +406,8 @@ Summary(pl.UTF-8): Biblioteka JSON dla języka Ruby
Version: %{json_ver}
Release: %{pkg_version}.%{rel}
Epoch: 0
-License: MIT
+# UCD: ext/json/generator/generator.c
+License: (Ruby or GPLv2) and UCD
Group: Development/Languages
Obsoletes: ruby-json-rubyforge
Conflicts: ruby-modules < 1:1.9.3.429-3
@@ -412,6 +418,42 @@ This is a JSON implementation as a Ruby extension in C.
%description json -l pl.UTF-8
Biblioteka JSON dla języka Ruby.
+%package power_assert
+# The Summary/Description fields are rather poor.
+# https://github.com/k-tsj/power_assert/issues/3
+Summary: Power Assert for Ruby
+Version: %{power_assert_ver}
+Release: %{pkg_version}.%{rel}
+Epoch: 0
+License: Ruby or BSD
+Group: Development/Libraries
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
+
+%description power_assert
+Power Assert for Ruby.
+
+%package test-unit
+# The Summary/Description fields are rather poor.
+# https://github.com/test-unit/test-unit/issues/73
+Summary: Improved version of Test::Unit bundled in Ruby 1.8.x
+Version: %{test_unit_ver}
+Release: %{pkg_version}.%{rel}
+Epoch: 0
+Group: Development/Libraries
+# lib/test/unit/diff.rb is a double license of the Ruby license and PSF license.
+# lib/test-unit.rb is a dual license of the Ruby license and LGPLv2.1 or later.
+License: (Ruby or BSD) and (Ruby or BSD or Python) and (Ruby or BSD or LGPLv2+)
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
+
+%description test-unit
+Ruby 1.9.x bundles minitest not Test::Unit. Test::Unit bundled in Ruby
+1.8.x had not been improved but unbundled Test::Unit (test-unit) is
+improved actively.
+
%prep
%setup -q -n %{oname}-%{pkg_version} -a1 -a2 -a3 %{?with_bootstrap:-a100}
%patch0 -p1
@@ -419,7 +461,7 @@ Biblioteka JSON dla języka Ruby.
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
+#%patch5 -p1
%patch6 -p1
#%patch8 -p1
%patch9 -p1
@@ -428,6 +470,10 @@ Biblioteka JSON dla języka Ruby.
# must be regenerated with new bison
%{__rm} parse.{c,h}
+# Remove bundled libraries to be sure they are not used.
+%{__rm} -r ext/psych/yaml
+%{__rm} -r ext/fiddle/libffi*
+
# Install custom operating_system.rb.
install -d lib/rubygems/defaults
cp -p %{SOURCE6} lib/rubygems/defaults
@@ -557,6 +603,8 @@ for cert in \
DigiCertHighAssuranceEVRootCA.pem \
EntrustnetSecureServerCertificationAuthority.pem \
GeoTrustGlobalCA.pem \
+ AddTrustExternalCARoot.pem \
+ AddTrustExternalCARoot-2048.pem \
; do
%{__rm} $RPM_BUILD_ROOT%{rubygems_dir}/rubygems/ssl_certs/$cert
done
@@ -663,6 +711,16 @@ sed -i '/^end$/ i\
sed -i '/^end$/ i\
s.require_paths = ["lib"]' $RPM_BUILD_ROOT%{gem_dir}/specifications/minitest-%{minitest_ver}.gemspec
+# Push the .gemspecs through the RubyGems to let them write the stub headers.
+# This speeds up loading of libraries and avoids warnings in Spring:
+# https://github.com/rubygems/rubygems/pull/694
+for s in rake-%{rake_ver}.gemspec rdoc-%{rdoc_ver}.gemspec json-%{json_ver}.gemspec; do
+ s="$RPM_BUILD_ROOT%{gem_dir}/specifications/$s"
+ %{__make} runruby TESTRUN_SCRIPT="-rubygems \
+ -e \"spec = Gem::Specification.load('$s')\" \
+ -e \"File.write '$s', spec.to_ruby\""
+done
+
ln -sf %{gem_dir}/gems/rake-%{rake_ver}/bin/rake $RPM_BUILD_ROOT%{_bindir}/rake%{ruby_suffix}
%{__sed} -i -e '1s,/usr/bin/env ruby,/usr/bin/ruby,' \
@@ -700,7 +758,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc NEWS LEGAL README.md README.EXT ChangeLog
+%doc NEWS LEGAL BSDL README.md README.EXT ChangeLog
%attr(755,root,root) %{_bindir}/ruby%{ruby_suffix}
%attr(755,root,root) %{_libdir}/libruby.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libruby.so.%{ruby_version}
diff --git a/archlibdir.patch b/archlibdir.patch
index 4a4919c..b54f8e0 100644
--- a/archlibdir.patch
+++ b/archlibdir.patch
@@ -11,7 +11,7 @@ diff --git a/configure.in b/configure.in
index 37d9a62..553d4d0 100644
--- a/configure.in
+++ b/configure.in
-@@ -3143,6 +3143,11 @@ if test ${multiarch+set}; then
+@@ -3385,6 +3385,11 @@ if test ${multiarch+set}; then
fi
archlibdir='${libdir}/${arch}'
diff --git a/custom-rubygems-location.patch b/custom-rubygems-location.patch
index e82f172..c21c858 100644
--- a/custom-rubygems-location.patch
+++ b/custom-rubygems-location.patch
@@ -15,9 +15,9 @@ diff --git a/configure.in b/configure.in
index 03a4152..0e371e2 100644
--- a/configure.in
+++ b/configure.in
-@@ -4264,6 +4264,10 @@ AC_ARG_WITH(vendorarchdir,
+@@ -4061,6 +4061,10 @@ AC_ARG_WITH(vendorarchdir,
[vendorarchdir=$withval],
- [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])
+ [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])
+AC_ARG_WITH(rubygemsdir,
+ AS_HELP_STRING([--with-rubygemsdir=DIR], [custom rubygems directory]),
@@ -26,14 +26,14 @@ index 03a4152..0e371e2 100644
if test "${LOAD_RELATIVE+set}"; then
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
RUBY_EXEC_PREFIX=''
-@@ -4288,6 +4292,7 @@ AC_SUBST(sitearchdir)dnl
+@@ -4084,6 +4088,7 @@ AC_SUBST(sitearchdir)dnl
AC_SUBST(vendordir)dnl
AC_SUBST(vendorlibdir)dnl
AC_SUBST(vendorarchdir)dnl
+AC_SUBST(rubygemsdir)dnl
- AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl
+
diff --git a/loadpath.c b/loadpath.c
index 623dc9d..74c5d9e 100644
--- a/loadpath.c
@@ -53,7 +53,7 @@ diff --git a/template/verconf.h.tmpl b/template/verconf.h.tmpl
index 79c003e..34f2382 100644
--- a/template/verconf.h.tmpl
+++ b/template/verconf.h.tmpl
-@@ -36,6 +36,9 @@
+@@ -34,6 +34,9 @@
% if C["RUBY_SEARCH_PATH"]
#define RUBY_SEARCH_PATH "${RUBY_SEARCH_PATH}"
% end
@@ -67,7 +67,7 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index b47b6e1..0b99408 100755
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
-@@ -328,6 +328,7 @@ def CONFIG.[](name, mandatory = false)
+@@ -317,6 +317,7 @@ sitelibdir = CONFIG["sitelibdir"]
sitearchlibdir = CONFIG["sitearchdir"]
vendorlibdir = CONFIG["vendorlibdir"]
vendorarchlibdir = CONFIG["vendorarchdir"]
@@ -75,7 +75,7 @@ index b47b6e1..0b99408 100755
mandir = CONFIG["mandir", true]
docdir = CONFIG["docdir", true]
configure_args = Shellwords.shellwords(CONFIG["configure_args"])
-@@ -506,7 +507,15 @@ def CONFIG.[](name, mandatory = false)
+@@ -505,7 +506,15 @@ end
install?(:local, :comm, :lib) do
prepare "library scripts", rubylibdir
noinst = %w[README* *.txt *.rdoc *.gemspec]
diff --git a/duplicated-paths.patch b/duplicated-paths.patch
index eb34107..b401158 100644
--- a/duplicated-paths.patch
+++ b/duplicated-paths.patch
@@ -5,25 +5,71 @@ Subject: [PATCH] Prevent duplicated paths when empty version string is
configured.
---
- configure.in | 3 ++-
+ configure.in | 15 +++++++++------
loadpath.c | 12 ++++++++++++
tool/mkconfig.rb | 2 +-
- 3 files changed, 15 insertions(+), 2 deletions(-)
+ 3 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/configure.in b/configure.in
-index db37cd6..ce8d149 100644
+index 17ed3ed..5843651 100644
--- a/configure.in
+++ b/configure.in
-@@ -4228,7 +4228,8 @@ AS_CASE(["$ruby_version_dir_name"],
- ruby_version_dir=/'${ruby_version_dir_name}'
+@@ -3975,8 +3975,6 @@ AS_CASE(["$target_os"],
+ rubyw_install_name='$(RUBYW_INSTALL_NAME)'
+ ])
- if test -z "${ruby_version_dir_name}"; then
+-rubylibdir='${rubylibprefix}/${ruby_version}'
+-rubyarchdir=${multiarch+'${rubyarchprefix}/${ruby_version}'}${multiarch-'${rubylibdir}/${arch}'}
+
+ rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}
+ AC_ARG_WITH(rubyarchprefix,
+@@ -4006,6 +4004,7 @@ AC_ARG_WITH(ruby-version,
+ [ruby_version=full])
+ unset RUBY_LIB_VERSION
+ unset RUBY_LIB_VERSION_STYLE
++ruby_version_suffix=/'${ruby_version}'
+ AS_CASE(["$ruby_version"],
+ [full], [RUBY_LIB_VERSION_STYLE='3 /* full */'],
+ [minor], [RUBY_LIB_VERSION_STYLE='2 /* minor */'])
+@@ -4022,30 +4021,34 @@ if test ${RUBY_LIB_VERSION_STYLE+set}; then
+ ruby_version="`$CPP -I. -I"${srcdir}" -I"${srcdir}/include" conftest.c | sed '/^ruby_version=/!d;s/ //g'`"
+ eval $ruby_version
+ elif test -z "${ruby_version}"; then
- AC_MSG_ERROR([No ruby version, No place for bundled libraries])
-+ unset ruby_version_dir
++ unset ruby_version_suffix
+ AC_DEFINE(RUBY_LIB_VERSION_BLANK, 1)
+ else
+ RUBY_LIB_VERSION="${ruby_version}"
fi
+ AC_SUBST(RUBY_LIB_VERSION_STYLE)
+ AC_SUBST(RUBY_LIB_VERSION)
+
++rubylibdir='${rubylibprefix}'${ruby_version_suffix}
++rubyarchdir=${multiarch+'${rubyarchprefix}'${ruby_version_suffix}}${multiarch-'${rubylibdir}/${arch}'}
++
+ AC_ARG_WITH(sitedir,
+ AS_HELP_STRING([--with-sitedir=DIR], [site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]], "no" to disable site directory]),
+ [sitedir=$withval],
+ [sitedir='${rubylibprefix}/site_ruby'])
+-sitelibdir='${sitedir}/${ruby_version}'
++sitelibdir='${sitedir}'${ruby_version_suffix}
+
+ AC_ARG_WITH(sitearchdir,
+ AS_HELP_STRING([--with-sitearchdir=DIR],
+ [architecture dependent site libraries in DIR [[SITEDIR/SITEARCH]], "no" to disable site directory]),
+ [sitearchdir=$withval],
+- [sitearchdir=${multiarch+'${rubysitearchprefix}/site_ruby/${ruby_version}'}${multiarch-'${sitelibdir}/${sitearch}'}])
++ [sitearchdir=${multiarch+'${rubysitearchprefix}/site_ruby'${ruby_version_suffix}}${multiarch-'${sitelibdir}/${sitearch}'}])
+
+ AC_ARG_WITH(vendordir,
+ AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]], "no" to disable vendor directory]),
+ [vendordir=$withval],
+ [vendordir='${rubylibprefix}/vendor_ruby'])
+-vendorlibdir='${vendordir}/${ruby_version}'
++vendorlibdir='${vendordir}'${ruby_version_suffix}
- rubylibdir='${rubylibprefix}'${ruby_version_dir}
+ AC_ARG_WITH(vendorarchdir,
+ AS_HELP_STRING([--with-vendorarchdir=DIR],
diff --git a/loadpath.c b/loadpath.c
index 9160031..0d4d953 100644
--- a/loadpath.c
@@ -67,7 +113,7 @@ diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
index 07076d4..35e6c3c 100755
--- a/tool/mkconfig.rb
+++ b/tool/mkconfig.rb
-@@ -122,7 +122,7 @@ def config.write(arg)
+@@ -123,7 +123,7 @@ File.foreach "config.status" do |line|
val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump
case name
when /^prefix$/
diff --git a/operating_system.rb b/operating_system.rb
index 079564f..ed653fd 100644
--- a/operating_system.rb
+++ b/operating_system.rb
@@ -6,6 +6,8 @@ module Gem
# E.g. for '/usr/share/ruby', 'ruby', it returns '/usr'
def previous_but_one_dir_to(path, dir)
+ return unless path
+
split_path = path.split(File::SEPARATOR)
File.join(split_path.take_while { |one_dir| one_dir !~ /^#{dir}$/ }[0..-2])
end
@@ -27,8 +29,8 @@ module Gem
def default_locations
@default_locations ||= {
- :system => previous_but_one_dir_to(ConfigMap[:vendordir], ConfigMap[:RUBY_INSTALL_NAME]),
- :local => previous_but_one_dir_to(ConfigMap[:sitedir], ConfigMap[:RUBY_INSTALL_NAME])
+ :system => previous_but_one_dir_to(RbConfig::CONFIG['vendordir'], RbConfig::CONFIG['RUBY_INSTALL_NAME']),
+ :local => previous_but_one_dir_to(RbConfig::CONFIG['sitedir'], RbConfig::CONFIG['RUBY_INSTALL_NAME'])
}
end
@@ -39,18 +41,30 @@ module Gem
def default_dirs
@libdir ||= case RUBY_PLATFORM
when 'java'
- ConfigMap[:datadir]
+ RbConfig::CONFIG['datadir']
else
- ConfigMap[:libdir]
+ RbConfig::CONFIG['libdir']
end
- @default_dirs ||= Hash[default_locations.collect do |destination, path|
- [destination, {
- :bin_dir => File.join(path, ConfigMap[:bindir].split(File::SEPARATOR).last),
- :gem_dir => File.join(path, ConfigMap[:datadir].split(File::SEPARATOR).last, 'gems'),
- :ext_dir => File.join(path, @libdir.split(File::SEPARATOR).last, 'gems')
- }]
- end]
+ @default_dirs ||= default_locations.inject(Hash.new) do |hash, location|
+ destination, path = location
+
+ hash[destination] = if path
+ {
+ :bin_dir => File.join(path, RbConfig::CONFIG['bindir'].split(File::SEPARATOR).last),
+ :gem_dir => File.join(path, RbConfig::CONFIG['datadir'].split(File::SEPARATOR).last, 'gems'),
+ :ext_dir => File.join(path, @libdir.split(File::SEPARATOR).last, 'gems')
+ }
+ else
+ {
+ :bin_dir => '',
+ :gem_dir => '',
+ :ext_dir => ''
+ }
+ end
+
+ hash
+ end
end
##
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ruby.git/commitdiff/3112d6a61a6fcf9953fe07b147adf8cc715ee08d
More information about the pld-cvs-commit
mailing list