Initialize for ruby2.5

This commit is contained in:
zyppe 2024-02-29 14:29:47 +08:00
commit a590770d27
11 changed files with 4677 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
ruby-2.5.9.tar.xz

1
.ruby2.5.metadata Normal file
View file

@ -0,0 +1 @@
ddaa9e107b816140e45e896b081f5b8a886f7fef415d0b52798c937814e08dff ruby-2.5.9.tar.xz

BIN
did_you_mean-1.2.0.gem Normal file

Binary file not shown.

View file

@ -0,0 +1,13 @@
Index: ruby-2.5.7/gems/did_you_mean-1.2.0/did_you_mean.gemspec
===================================================================
--- ruby-2.5.7.orig/gems/did_you_mean-1.2.0/did_you_mean.gemspec
+++ ruby-2.5.7/gems/did_you_mean-1.2.0/did_you_mean.gemspec
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
s.date = "2017-12-13"
s.description = "The gem that has been saving people from typos since 2014.".freeze
s.email = ["mail@yukinishijima.net".freeze]
- s.files = [".gitignore".freeze, ".ruby-version".freeze, ".travis.yml".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "LICENSE.txt".freeze, "README.md".freeze, "Rakefile".freeze, "benchmark/jaro_winkler/memory_usage.rb".freeze, "benchmark/jaro_winkler/speed.rb".freeze, "benchmark/levenshtein/memory_usage.rb".freeze, "benchmark/levenshtein/speed.rb".freeze, "benchmark/memory_usage.rb".freeze, "did_you_mean.gemspec".freeze, "doc/CHANGELOG.md.erb".freeze, "doc/changelog_generator.rb".freeze, "evaluation/calculator.rb".freeze, "evaluation/dictionary_generator.rb".freeze, "evaluation/incorrect_words.yaml".freeze, "lib/did_you_mean.rb".freeze, "lib/did_you_mean/core_ext/name_error.rb".freeze, "lib/did_you_mean/experimental.rb".freeze, "lib/did_you_mean/experimental/initializer_name_correction.rb".freeze, "lib/did_you_mean/experimental/ivar_name_correction.rb".freeze, "lib/did_you_mean/formatters/plain_formatter.rb".freeze, "lib/did_you_mean/formatters/verbose_formatter.rb".freeze, "lib/did_you_mean/jaro_winkler.rb".freeze, "lib/did_you_mean/levenshtein.rb".freeze, "lib/did_you_mean/spell_checker.rb".freeze, "lib/did_you_mean/spell_checkers/key_error_checker.rb".freeze, "lib/did_you_mean/spell_checkers/method_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/null_checker.rb".freeze, "lib/did_you_mean/verbose.rb".freeze, "lib/did_you_mean/verbose_formatter.rb".freeze, "lib/did_you_mean/version.rb".freeze, "test/core_ext/name_error_extension_test.rb".freeze, "test/edit_distance/jaro_winkler_test.rb".freeze, "test/experimental/initializer_name_correction_test.rb".freeze, "test/experimental/method_name_checker_test.rb".freeze, "test/spell_checker_test.rb".freeze, "test/spell_checking/class_name_check_test.rb".freeze, "test/spell_checking/key_name_check_test.rb".freeze, "test/spell_checking/method_name_check_test.rb".freeze, "test/spell_checking/uncorrectable_name_check_test.rb".freeze, "test/spell_checking/variable_name_check_test.rb".freeze, "test/test_helper.rb".freeze, "test/verbose_formatter_test.rb".freeze]
+ s.files = [".gitignore".freeze, ".ruby-version".freeze, ".travis.yml".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "LICENSE.txt".freeze, "README.md".freeze, "Rakefile".freeze, "benchmark/jaro_winkler/memory_usage.rb".freeze, "benchmark/jaro_winkler/speed.rb".freeze, "benchmark/levenshtein/memory_usage.rb".freeze, "benchmark/levenshtein/speed.rb".freeze, "benchmark/memory_usage.rb".freeze, "did_you_mean.gemspec".freeze, "doc/CHANGELOG.md.erb".freeze, "doc/changelog_generator.rb".freeze, "evaluation/calculator.rb".freeze, "evaluation/dictionary_generator.rb".freeze, "evaluation/incorrect_words.yaml".freeze, "lib/did_you_mean.rb".freeze, "lib/did_you_mean/core_ext/name_error.rb".freeze, "lib/did_you_mean/experimental.rb".freeze, "lib/did_you_mean/experimental/initializer_name_correction.rb".freeze, "lib/did_you_mean/experimental/ivar_name_correction.rb".freeze, "lib/did_you_mean/formatters/plain_formatter.rb".freeze, "lib/did_you_mean/formatters/verbose_formatter.rb".freeze, "lib/did_you_mean/jaro_winkler.rb".freeze, "lib/did_you_mean/levenshtein.rb".freeze, "lib/did_you_mean/spell_checker.rb".freeze, "lib/did_you_mean/spell_checkers/key_error_checker.rb".freeze, "lib/did_you_mean/spell_checkers/method_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb".freeze, "lib/did_you_mean/spell_checkers/null_checker.rb".freeze, "lib/did_you_mean/verbose.rb".freeze, "lib/did_you_mean/verbose_formatter.rb".freeze, "lib/did_you_mean/version.rb".freeze, "test/core_ext/name_error_extension_test.rb".freeze, "test/edit_distance/jaro_winkler_test.rb".freeze, "test/experimental/initializer_name_correction_test.rb".freeze, "test/experimental/method_name_checker_test.rb".freeze, "test/spell_checker_test.rb".freeze, "test/spell_checking/class_name_check_test.rb".freeze, "test/spell_checking/key_name_check_test.rb".freeze, "test/spell_checking/method_name_check_test.rb".freeze, "test/spell_checking/uncorrectable_name_check_test.rb".freeze, "test/spell_checking/variable_name_check_test.rb".freeze, "test/test_helper.rb".freeze, "test/verbose_formatter_test.rb".freeze].reject{|path| path.start_with?('evaluation/') }
s.homepage = "https://github.com/yuki24/did_you_mean".freeze
s.licenses = ["MIT".freeze]
s.required_ruby_version = Gem::Requirement.new(">= 2.5.0dev".freeze)

7
ruby2.5-default.macros Normal file
View file

@ -0,0 +1,7 @@
%rb_default_ruby_suffix ruby2.5
%rb_default_ruby ruby25
%rb_default_ruby_abi ruby:2.5.0
%rb_build_versions %rb_default_ruby
%rb_build_ruby_abis %rb_default_ruby_abi

2
ruby2.5-rpmlintrc Normal file
View file

@ -0,0 +1,2 @@
addFilter("files-duplicate /usr/share/ri/.*")
addFilter("unexpanded-macro /usr/share/ri/.*")

326
ruby2.5.changes Normal file
View file

@ -0,0 +1,326 @@
* Fri Oct 20 2023 mrueckert@suse.de
- update suse.patch to 531fb8b2cc
- fix quadratic behavior in the uri parser (boo#1209891
CVE-2023-28755)
- fix expensive regexp in the RFC2822 time parser (boo#1209967
CVE-2023-28756)
- backport date 2.0.3 (boo#1193035 CVE-2021-41817)
- merge CGI 0.1.0.2: (boo#1205726 CVE-2021-33621)
- When parsing cookies, only decode the values
- HTTP response splitting in CGI
* Mon Sep 5 2022 mrueckert@suse.de
- Update suse.patch to 41adc98ad1:
- Cookie Prefix Spoofing in CGI::Cookie.parse (boo#1193081 CVE-2021-41819)
- add back some lost chunks to the suse.patch
* Wed Apr 20 2022 mrueckert@suse.de
- Update suse.patch:
- backport fix for CVE-2022-28739: ruby: Buffer overrun in
String-to-Float conversion (boo#1198441)
- back port date 2.0.3 CVE-2021-41817 (boo#1193035)
- merge the previous bug fixes into suse.patch
- CVE-2021-32066.patch
- CVE-2021-31810.patch
- CVE-2021-31799.patch
* Wed Apr 20 2022 mrueckert@suse.de
- Add Requires to make and gcc to ruby-devel to make the default
extconf.rb work
* Thu Nov 11 2021 ali.abdallah@suse.com
Add patches to fix the following CVE's:
- CVE-2021-32066.patch (CVE-2021-32066): Fix StartTLS stripping
vulnerability in Net:IMAP (bsc#1188160)
- CVE-2021-31810.patch (CVE-2021-31810): Fix trusting FTP PASV
responses vulnerability in Net:FTP (bsc#1188161)
- CVE-2021-31799.patch (CVE-2021-31799): Fix Command injection
vulnerability in RDoc (bsc#1190375)
* Tue Apr 13 2021 mrueckert@suse.de
- Update to 2.5.9 (boo#1184644)
https://www.ruby-lang.org/en/news/2021/04/05/ruby-2-5-9-released/
- CVE-2020-25613: Potential HTTP Request Smuggling Vulnerability
in WEBrick
- CVE-2021-28965: XML round-trip vulnerability in REXML
Complete list of changes at
https://github.com/ruby/ruby/compare/v2_5_8...v2_5_9
- Update suse.patch:
Remove fix for CVE-2020-25613 as it is included in the update
* Mon Mar 15 2021 mrueckert@suse.de
- Update suse.patch: (boo#1177125)
Backport fix CVE-2020-25613: Potential HTTP Request Smuggling
Vulnerability in WEBrick
* Fri Oct 16 2020 mrueckert@suse.de
- replace all patches with suse.patch (v2_5_8..2.5-suse)
(we keep remove-unneeded-files.patch as it can not be done in our
backports branch)
- backport patch to enable optimizations also on ARM64
(boo#1177222)
* Tue Apr 28 2020 mrueckert@suse.de
- make sure that update-alternative weight for the default
distribution is always greater than our normal weight
* Tue Apr 28 2020 mrueckert@suse.de
- make the update-alternative weight based on the ruby version
* Tue Apr 7 2020 mrueckert@suse.de
- Update to 2.5.8 (boo#1167244 boo#1168938)
- CVE-2020-10663: Unsafe Object Creation Vulnerability in JSON
(Additional fix)
- CVE-2020-10933: Heap exposure vulnerability in the socket
library
https://github.com/ruby/ruby/compare/v2_5_7...v2_5_8
- drop CVE-2020-8130.patch and rake-12.3.0.gem: included upstream
* Fri Mar 6 2020 mrueckert@suse.de
- Fix CVE-2020-8130 (boo# 1164804) for the intree copy of rake:
- add CVE-2020-8130.patch and rake-12.3.0.gem
* Thu Feb 6 2020 mrueckert@suse.de
- remove test files which are not needed at runtime (boo#1162396)
- adds remove-unneeded-files.patch and did_you_mean-1.2.0.gem
* Tue Oct 8 2019 mrueckert@suse.de
- update to 2.5.7
- https://www.ruby-lang.org/en/news/2019/10/01/ruby-2-5-7-released/
- CVE-2019-16255: A code injection vulnerability of Shell#[]
and Shell#test (boo#1152990)
- CVE-2019-16254: HTTP response splitting in WEBrick
(Additional fix) (boo#1152992)
- CVE-2019-15845: A NUL injection vulnerability of File.fnmatch
and File.fnmatch? (boo#1152994)
- CVE-2019-16201: Regular Expression Denial of Service
vulnerability of WEBricks Digest access authentication
(boo#1152995)
- https://www.ruby-lang.org/en/news/2019/08/28/ruby-2-5-6-released/
- Multiple jQuery vulnerabilities in RDoc (CVE-2012-6708
CVE-2015-9251)
* Tue Jul 9 2019 mrueckert@suse.de
- fix running tests (boo#1140844)
just passing the DISABLED_TESTS variable is wrong. probably a
relict from calling the test scripts directly. use TESTOPTS now.
* Thu Jun 13 2019 mrueckert@suse.de
- refreshed patches with new patch series:
0001-make-gem-build-reproducible.patch
0002-gc.c-tick-for-POWER-arch.patch
0003-Mark-Gemspec-reproducible-change-fixing-784225-too.patch
0004-Make-gemspecs-reproducible.patch
- rename patch now that it is generated from git:
old: 450160263aed8c446ce5b142d71f921ab4118f3a.patch
new: 0005-Include-the-alternative-malloc-header-instead-of-mal.patch
old: use-pie.patch
new: 0006-Use-PIE-for-the-binaries.patch
- ruby: change over of the Japanese Era to the new emperor May
1st 2019 (boo#1133790)
0007-date-support-for-Reiwa-new-Japanese-era.patch
* Wed Mar 27 2019 mrueckert@suse.de
- for some reason the --enable-pie option does not work as
expected. Fix this for now with a patch that just injects the
- pie flag in the Makefile (adds use-pie.patch) (boo#1130028)
* Fri Mar 15 2019 mrueckert@suse.de
- update to 2.5.5
https://www.ruby-lang.org/en/news/2019/03/13/ruby-2-5-4-released/
- CVE-2019-8320: Delete directory using symlink when
decompressing tar (boo#1130627)
- CVE-2019-8321: Escape sequence injection vulnerability in
verbose (boo#1130623)
- CVE-2019-8322: Escape sequence injection vulnerability in gem
owner (boo#1130622)
- CVE-2019-8323: Escape sequence injection vulnerability in API
response handling (boo#1130620)
- CVE-2019-8324: Installing a malicious gem may lead to arbitrary
code execution (boo#1130617)
- CVE-2019-8325: Escape sequence injection vulnerability in
errors (boo#1130611)
https://www.ruby-lang.org/en/news/2019/03/15/ruby-2-5-5-released/
* Thu Feb 7 2019 mrueckert@suse.de
- replace the awk based provides generation with the new file-attr
handler in ruby-bundled-gems-rpmhelper
This kills one provides rubygem-name = version
But this should not have be used since a while anymore.
- add option to build without docs for testing
- provide support to undo the split of the stdlib:
pass --without=separate_stdlib to "osc build"
* Fri Nov 23 2018 mliska@suse.cz
- Use parallel make.
* Thu Nov 22 2018 mliska@suse.cz
- Disable compressed sections as they are not supported by rpm
(https://bugs.ruby-lang.org/issues/12934).
* Wed Nov 7 2018 mrueckert@suse.de
- update to 2.5.3
This release includes some bug fixes and some security fixes.
- CVE-2018-16396: Tainted flags are not propagated in Array#pack
and String#unpack with some directives (boo#1112532)
- CVE-2018-16395: OpenSSL::X509::Name equality check does not
work correctly (boo#1112530)
https://github.com/ruby/ruby/compare/v2_5_1...v2_5_3
- drop frozen-pop3.patch
* Tue Oct 16 2018 mrueckert@suse.de
- backport 450160263aed8c446ce5b142d71f921ab4118f3a.patch:
Include the alternative malloc header instead of malloc.h
* Tue Aug 28 2018 mrueckert@suse.de
- update to 2.5.1
This release includes some bug fixes and some security fixes.
- CVE-2017-17742: HTTP response splitting in WEBrick
(boo#1087434)
- CVE-2018-6914: Unintentional file and directory creation with
directory traversal in tempfile and tmpdir (boo#1087441)
- CVE-2018-8777: DoS by large request in WEBrick (boo#1087436)
- CVE-2018-8778: Buffer under-read in String#unpack (boo#1087433)
- CVE-2018-8779: Unintentional socket creation by poisoned NUL
byte in UNIXServer and UNIXSocket (boo#1087440)
- CVE-2018-8780: Unintentional directory traversal by poisoned
NUL byte in Dir (boo#1087437)
- Multiple vulnerabilities in RubyGems
CVE-2018-1000079 (boo#1082058)
CVE-2018-1000075 (boo#1082014)
CVE-2018-1000078 (boo#1082011)
CVE-2018-1000077 (boo#1082010)
CVE-2018-1000076 (boo#1082009)
CVE-2018-1000074 (boo#1082008)
CVE-2018-1000073 (boo#1082007)
https://github.com/ruby/ruby/compare/v2_5_0...v2_5_1
* Tue Aug 28 2018 mrueckert@suse.de
- added frozen-pop3.patch:
Net::POPMail methods modify frozen literal when using default arg
https://redmine.ruby-lang.org/issues/14416
* Thu Mar 22 2018 mrueckert@suse.de
- wrong files where installed from the macro files after adding
dump-version.rb
* Thu Jan 25 2018 mrueckert@suse.de
- fix dump-versions.rb: it was picking up system rdoc versions on
some source dirs
* Mon Jan 15 2018 mrueckert@suse.de
- add reproducible build patches from debian
0003-Mark-Gemspec-reproducible-change-fixing-784225-too.patch
0004-Make-gemspecs-reproducible.patch
* Mon Dec 25 2017 mrueckert@suse.de
- drop 316f58076d29dcff053256992d9ec19fed7e698f.patch
- no longer bundling bundler
* Mon Dec 25 2017 mrueckert@suse.de
- update to 2.5.0 final
Ruby 2.5.0 is the first stable release of the Ruby 2.5 series. It
introduces many new features and performance improvements. The
notable changes are as follows:
- New Features
- rescue/else/ensure are now allowed to be used directly with
do/end blocks. [Feature #12906]
- Add yield_self to yield given block in its context. Unlike
tap, it returns the result of the block. [Feature #6721]
- Support branch coverage and method coverage measurement. The
branch coverage indicates which branches are executed and
which are not. The method coverage indicates which methods
are invoked and which are not. By running the test suite with
these new features, you will know which branches and methods
are executed, and evaluate total coverage of the test suite
more strictly. [Feature #13901]
- Hash#slice [Feature #8499] and Hash#transform_keys [Feature
[#13583]]
- Struct.new can create classes that accept keyword arguments.
[Feature #11925]
- Enumerable#any?,all?,none? and one? accept a pattern argument
[Feature #11286]
- Top-level constant look-up is no longer available. [Feature
[#11547]]
- One of our most loved libraries, pp.rb, is now automatically
loaded. You no longer have to write require "pp". [Feature
[#14123]]
- Print backtrace and error message in reverse order (oldest
call first, most recent call last). When a long backtrace
appears on your terminal (TTY), you can easily find the cause
line at the bottom of the backtrace. Note that the order is
reversed only when backtrace is printed out to the terminal
directly. [Feature #8661] [experimental]
- Performance improvements
- About 5-10%% performance improvement by removing all trace
instructions from overall bytecode (instruction sequences).
The trace instruction was added to support the TracePoint.
However, in most cases, TracePoint is not used and trace
instructions are pure overhead. Instead, now we use a dynamic
instrumentation technique. See [Feature #14104] for more
details.
- Block passing by a block parameter (e.g. def foo(&b);
bar(&b); end) is about 3 times faster than Ruby 2.4 by “Lazy
Proc allocation” technique. [Feature #14045]
- Mutex is rewritten to be smaller and faster. [Feature #13517]
- ERB now generates code from a template which runs twice as
fast as Ruby 2.4.
- Improve performance of some built-in methods including
Array#concat, Enumerable#sort_by, String#concat,
String#index, Time#+ and more.
- IO.copy_stream uses copy_file_range(2) to copy offload
[Feature #13867]
- Other notable changes since 2.4
- SecureRandom now prefers OS-provided sources over OpenSSL.
[Bug #9569]
- Promote cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils,
gdbm, ipaddr, scanf, sdbm, stringio, strscan, webrick, zlib
from standard libraries to default gems.
- Update to Onigmo 6.1.3.
- It adds the absence operator.
- Note that Ruby 2.4.1 also includes this change.
- Update to Psych 3.0.2.
- Update to RubyGems 2.7.3.
- Update to RDoc 6.0.1.
- Switch the lexer from IRB based one to Ripper. This
dramatically improves the performance of document
generation.
- Fix a significant amount of bugs that existed over ten
years.
- Add support for new Ruby syntax from the latest versions.
- Update supported Unicode version to 10.0.0.
- Thread.report_on_exception is now set to true by default.
This change helps debugging of multi-threaded programs.
[Feature #14143]
- IO#write now receives multiple arguments [Feature #9323] For
details see: https://github.com/ruby/ruby/blob/v2_5_0/NEWS
https://github.com/ruby/ruby/compare/v2_4_0...v2_5_0
* Tue Dec 19 2017 mrueckert@suse.de
- switch to https urls
* Mon Dec 18 2017 mrueckert@suse.de
- update to 2.5.0~rc1
https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-5-0-rc1-released/
- added 316f58076d29dcff053256992d9ec19fed7e698f.patch
to fix building rbtrace and ruby-prof
* Mon Nov 20 2017 mrueckert@suse.de
- disable jemalloc again because of: (boo#1068883)
https://github.com/jemalloc/jemalloc/issues/937
* Fri Nov 17 2017 mrueckert@suse.de
- update to 60813
see installed /usr/share/doc/packages/ruby2.5/ChangeLog
* Wed Nov 15 2017 mrueckert@suse.de
- update to 60739
see installed /usr/share/doc/packages/ruby2.5/ChangeLog
* Wed Nov 15 2017 mrueckert@suse.de
- make the whole u-a handling less error prone by having the list
in variable ua-binaries
* Thu Nov 9 2017 jdelvare@suse.de
- Add conflicts to libruby to make sure ruby and ruby-stdlib are
also updated when libruby is updated (bsc#1048072.)
* Thu Nov 9 2017 mrueckert@suse.de
- exclude all testsuites for the stdlib gems
* Wed Nov 8 2017 mrueckert@suse.de
- build jemalloc
* Tue Oct 31 2017 mrueckert@suse.de
- update to 60568
see installed /usr/share/doc/packages/ruby2.5/ChangeLog
- this fixes the "ruby -rubygems" on 2.5
* Wed Oct 4 2017 mrueckert@suse.de
- update intree gem list
- bundler is now part of core too!
* Wed Oct 4 2017 mrueckert@suse.de
- update to r60035:
see installed /usr/share/doc/packages/ruby2.5/ChangeLog
- revert some of the wrong Group changes
- drop autoreconf -fi and the buildrequires for the related
packages
* Fri Sep 22 2017 mrueckert@suse.de
- make it easier to sync the versions from the gemspec with the
spec file:
ruby dump-versions.rb $unpacked_tarball_dir
* Fri Sep 22 2017 mrueckert@suse.de
- add conflicts for all intree gems
* Mon Sep 11 2017 jengelh@inai.de
- Fix RPM groups. Replace old RPM macros by modern ones.
- Ensure neutrality of descriptions.
* Fri Sep 8 2017 mrueckert@suse.de
- update to 59623
* Wed Aug 9 2017 mrueckert@suse.de
- fix gem provides
- install macro files with 2.5 version
* Wed Aug 9 2017 mrueckert@suse.de
- initial package (Fate#324013)
- port 2 patches we still need from the 2.4 package:
0001-make-gem-build-reproducible.patch
0002-gc.c-tick-for-POWER-arch.patch

16
ruby2.5.macros Normal file
View file

@ -0,0 +1,16 @@
#
# IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
#
# if you change any macros here you have to update the copy in the
# prjconf aswell.
#
# IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
#
%rubygemsruby25() rubygem(ruby:2.5.0:%{expand:%%rubygemsx%*} %{expand:%%{rubygems%*}}
%rubygemsxruby25() %{expand:%%{rubygemsx%*}}
%rubyruby25() ruby2.5 %{expand:%%rubyx%*} %{expand:%%{ruby%*}}
%rubyxruby25() %{expand:%%{rubyx%*}}
%rubydevelruby25() ruby2.5-devel %{expand:%%rubydevelx%*} %{expand:%%{rubydevel%*}}
%rubydevelxruby25() %{expand:%%{rubydevelx%*}}

456
ruby2.5.spec Normal file
View file

@ -0,0 +1,456 @@
#
# spec file for package ruby2.5
#
# Copyright (c) 2022-2023 ZhuningOS
#
Name: ruby2.5
####
#!!!
#!!! when updating, check versions of embedded rubygems in package stdlib below
#!!!
####
%define patch_level p0
Version: 2.5.9
Release: 150000.4.29.1
%define pkg_version %{version}
# make the exported API version explicit
%define api_version 2.5.0
%define rb_binary_suffix .ruby2.5
%define rb_soname ruby2.5
%define _rb_ua_weight 25
# ruby-macros and ruby-common version
%define rpm_macros_version 3
#
%define libname libruby2_5-2_5
# keep in sync with macro file!
%define rb_ver %{api_version}
%define rb_arch %(echo %{_target_cpu}-linux-gnu | sed -e "s/ppc/powerpc/")
%define rb_arch_short %(echo %{_target_cpu}-linux | sed -e "s/ppc/powerpc/ ; s/i[0-9]86/x86/")
%define rb_libdir %{_libdir}/ruby/%{rb_ver}/
%define rb_archdir %{_libdir}/ruby/%{rb_ver}/%{rb_arch}
%define rb_extdir %{_libdir}/ruby/gems/%{rb_ver}/extensions/
%define rb_extarchdir %{_libdir}/ruby/gems/%{rb_ver}/extensions/%{rb_arch_short}/
%define rb_extversionedarchdir %{_libdir}/ruby/gems/%{rb_ver}/extensions/%{rb_arch_short}/%{rb_ver}
%define rb_extdocdir %{_libdir}/ruby/gems/%{rb_ver}/doc/extensions
%define rb_extarchdocdir %{_libdir}/ruby/gems/%{rb_ver}/doc/extensions/%{rb_arch_short}
%if "%{rb_default_ruby_suffix}" == "%{rb_soname}"
%define is_default_ruby 1
%define rb_ua_weight 1%{_rb_ua_weight}
%else
%define rb_ua_weight %{_rb_ua_weight}
%endif
%define ua_binaries rake rdoc ri
# keep in sync with macro file!
#
# from valgrind.spec
%ifarch %ix86 x86_64 ppc ppc64
%define use_valgrind 1
%endif
# turn on testsuite by default. we dont hard fail anyway.
%bcond_without run_tests
%bcond_without build_docs
%if 0%{?is_opensuse} || 0%{?sle_version} >= 150000
%bcond_with jemalloc
%else
%bcond_with jemalloc
%endif
%bcond_without separate_stdlib
#
BuildRequires: gdbm-devel
BuildRequires: ruby-bundled-gems-rpmhelper
%if %{with jemalloc}
BuildRequires: jemalloc-devel
%endif
BuildRequires: libffi-devel
BuildRequires: libyaml-devel
BuildRequires: ncurses-devel
BuildRequires: netcfg
BuildRequires: openssl-devel
BuildRequires: pkg-config
BuildRequires: procps
BuildRequires: readline-devel
BuildRequires: timezone
BuildRequires: zlib-devel
# this requires is needed as distros older than 11.3 have a buildignore on freetype2, without this the detection of the tk extension fails
BuildRequires: freetype2-devel
%if 0%{?suse_version} > 1010
BuildRequires: xorg-x11-libX11-devel
%else
BuildRequires: xorg-x11-devel
%endif
%if 0%{?use_valgrind}
%if 0%{?suse_version} > 1021
BuildRequires: valgrind-devel
%else
BuildRequires: valgrind
%endif
%endif
BuildRequires: xz
Provides: ruby(abi) = %{rb_ver}
%if 0%{?suse_version} > 1130
Conflicts: ruby(abi) = %{rb_ver}
%endif
Provides: ruby25 = %{version}-%{release}
%if 0%{?is_default_ruby}
Provides: ruby-default = %{version}-%{release}
Conflicts: otherproviders(ruby-default)
%endif
Requires: %{libname} = %{version}
%if %{with separate_stdlib}
Requires: %{name}-stdlib = %{version}
%else
Provides: %{name}-stdlib = %{version}-%{release}
Obsoletes: %{name}-stdlib < %{version}-%{release}
%endif
PreReq: update-alternatives
BuildRequires: update-alternatives
Requires: ruby-common
#
Url: https://www.ruby-lang.org/
Source: https://cache.ruby-lang.org/pub/ruby/2.5/ruby-%{pkg_version}.tar.xz
# the file was created by applying all patches and then running gem build in the gems/did_you_mean-1.2.0 directory
Source1: did_you_mean-1.2.0.gem
#
Source3: %{name}.macros
Source4: %{name}-default.macros
Source98: series
Source99: %{name}-rpmlintrc
Patch01: suse.patch
# this can not be in our backports git as the files are not there yet
Patch02: remove-unneeded-files.patch
#
Summary: An Interpreted Object-Oriented Scripting Language
License: BSD-2-Clause OR Ruby
Group: Development/Languages/Ruby
%description
Ruby is an interpreted scripting language for object-oriented programming. It
has many features for processing text files and performing system management
tasks (as in Perl). It is extensible.
* Ruby features:
- Simple Syntax
- *Normal* Object-Oriented features (class, method calls, for
example)
- *Advanced* Object-Oriented features(Mix-in, Singleton-method, for
example)
- Operator Overloading
- Exception Handling
- Iterators and Closures
- Garbage Collection
- Dynamic Loading of Object Files (on some architectures)
%package -n %{libname}
Summary: Dynamic runtime library for Ruby
# Both ruby and ruby-stdlib now depend explicitly on libruby by version,
# however it was not always the case, so the conflicts statements below
# are needed to handle updates.
Group: System/Libraries
Conflicts: %{name} < %{version}-%{release}
Conflicts: %{name}-stdlib < %{version}-%{release}
%description -n %{libname}
Dynamic runtime library for Ruby
%package doc
Summary: Documentation and samples for Ruby
Group: Development/Languages/Ruby
%description doc
Documentation and samples for Ruby
%if %{with separate_stdlib}
%package stdlib
Summary: The Ruby standard library
Group: Development/Languages/Ruby
Provides: ruby-stdlib = %{version}-%{release}
Requires: %{libname} = %{version}
%description stdlib
The Ruby standard library
%endif
%package devel
Summary: Development files to link against Ruby
Group: Development/Languages/Ruby
Requires: %{name} = %{version}
Provides: rubygems = 2.5.2
Provides: rubygems_with_buildroot_patch
%if %{with jemalloc}
Requires: jemalloc-devel
%endif
# extconf.rb defaults to make
Requires: make
Requires: gcc
%description devel
Development files to link against Ruby.
%package devel-extra
Summary: Special development files of ruby, normally not installed
Group: Development/Languages/Ruby
Requires: %{name}-devel = %{version}
%description devel-extra
Development files to link against Ruby.
%package doc-ri
Summary: Ruby Interactive Documentation
Group: Development/Languages/Ruby
Requires: %{name} = %{version}
%if 0%{?suse_version} >= 1121
BuildArch: noarch
%endif
%description doc-ri
This package contains the RI docs for ruby
%package doc-html
Summary: This package contains the HTML docs for ruby
Group: Development/Languages/Ruby
Requires: %{name} = %{version}
%if 0%{?suse_version} >= 1121
BuildArch: noarch
%endif
%description doc-html
This package contains the HTML docs for ruby
%package examples
Summary: Example scripts for ruby
Group: Development/Languages/Ruby
Requires: %{name} = %{version}
%if 0%{?suse_version} >= 1121
BuildArch: noarch
%endif
%description examples
Example scripts for ruby
%package test-suite
Requires: %{name} = %{version}
Summary: An Interpreted Object-Oriented Scripting Language
Group: Development/Languages/Ruby
%if 0%{?suse_version} >= 1121
BuildArch: noarch
%endif
%description test-suite
Ruby is an interpreted scripting language for object-oriented programming. It
has many features for processing text files and performing system management
tasks (as in Perl). It is extensible.
* Ruby features:
- Simple Syntax
- *Normal* Object-Oriented features (class, method calls, for
example)
- *Advanced* Object-Oriented features(Mix-in, Singleton-method, for
example)
- Operator Overloading
- Exception Handling
- Iterators and Closures
- Garbage Collection
- Dynamic Loading of Object Files (on some architectures)
%prep
%autosetup -p1 -n ruby-%{pkg_version}
find sample -type f -print0 | xargs -r0 chmod a-x
grep -Erl '^#! */' benchmark bootstraptest ext lib sample test \
| xargs -r perl -p -i -e 's|^#!\s*\S+(\s+.*)?$|#!/usr/bin/ruby%{rb_binary_suffix} $1|'
%build
rm -rv gems/did_you_mean-1.2.0/evaluation
cp %{SOURCE1} gems/
# iseq.c needs -fno-strict-aliasing
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export CFLAGS="%{optflags} -fno-strict-aliasing"
%configure \
%if %{with jemalloc}
--with-jemalloc \
%endif
--program-suffix="%{rb_binary_suffix}" \
--with-soname=%{rb_soname} \
--target=%{_target_platform} \
%if 0%{?use_valgrind}
--with-valgrind \
%endif
%if ! %{with build_docs}
--disable-install-doc \
--disable-install-rdoc \
--disable-install-capi \
%endif
--with-mantype=man \
--enable-shared \
--disable-static \
--disable-rpath \
--with-compress-debug-sections=no
make all V=1 %{?_smp_mflags}
%install
%makeinstall V=1
echo "%defattr(-,root,root,-)" > devel-extra-excludes
echo "%defattr(-,root,root,-)" > devel-extra-list
for i in iseq.h insns.inc insns_info.inc revision.h version.h thread_pthread.h \
ruby_atomic.h method.h internal.h id.h vm_core.h vm_opts.h node.h eval_intern.h vm_debug.h; do
install -m 644 $i %{buildroot}%{_includedir}/ruby-%{rb_ver}/
echo "%exclude %{_includedir}/ruby-%{rb_ver}/$i" >> devel-extra-excludes
echo "%{_includedir}/ruby-%{rb_ver}/$i" >> devel-extra-list
done
# Create gem native extensions dir
# use shell scripting here as we're executing the just installed binary
%define rb_binary %{buildroot}/usr/bin/ruby -I %{buildroot}%{rb_libdir} -I %{buildroot}%{rb_archdir}
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
install -D -m 0644 %{S:3} %{buildroot}/etc/rpm/macros.suse-ruby2.5
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
%if 0%{?is_default_ruby}
install -D -m 0644 %{S:4} %{buildroot}/etc/rpm/macros.suse-ruby2.5-default
for bin in %{buildroot}%{_bindir}/{erb,gem,irb,ruby}%{rb_binary_suffix} ; do
# yes really hard links
ln $bin ${bin%%%{rb_binary_suffix}}
done
for man in %{buildroot}%{_mandir}/man1/*%{rb_binary_suffix}.1* ; do
# yes really hard links
# TODO: this is dangerous as we cant anc
ln $man ${man%%%{rb_binary_suffix}.1}.1
done
ln -s lib%{rb_soname}.so %{buildroot}%{_libdir}/libruby.so
%endif
for bin in %{ua_binaries}; do
# dummy
mv %{buildroot}%_bindir/${bin}%{rb_binary_suffix} %{buildroot}%_bindir/$bin.ruby%{rb_binary_suffix}
#
ln -s $bin %{buildroot}%{_sysconfdir}/alternatives/$bin
ln -s %{_sysconfdir}/alternatives/$bin %{buildroot}%_bindir/$bin
#
ln -s ${bin}%{rb_binary_suffix} %{buildroot}%{_sysconfdir}/alternatives//$bin%{rb_binary_suffix}
ln -s %{_sysconfdir}/alternatives/$bin%{rb_binary_suffix} %{buildroot}%_bindir/$bin%{rb_binary_suffix}
done
install -dD %{buildroot}%{rb_extdir} %{buildroot}%{rb_extarchdir} %{buildroot}%{rb_extversionedarchdir} %{buildroot}%{rb_extarchdocdir}
chmod -vR go-w,go+rX %{buildroot}%{_libdir}/ruby
%post
for bin in %{ua_binaries}; do
/usr/sbin/update-alternatives --install \
%{_bindir}/$bin $bin %{_bindir}/$bin.ruby%{rb_binary_suffix} %{rb_ua_weight}
/usr/sbin/update-alternatives --install \
%{_bindir}/$bin%{rb_binary_suffix} $bin%{rb_binary_suffix} %{_bindir}/$bin.ruby%{rb_binary_suffix} %{rb_ua_weight}
done
%preun
if [ "$1" = 0 ] ; then
for bin in %{ua_binaries}; do
/usr/sbin/update-alternatives --remove $bin %{_bindir}/$bin.ruby%{rb_binary_suffix}
/usr/sbin/update-alternatives --remove $bin%{rb_binary_suffix} %{_bindir}/$bin.ruby%{rb_binary_suffix}
done
fi
%if %{with run_tests}
%check
DISABLE_TESTS=""
%ifarch armv7l armv7hl armv7hnl
# test_call_double(DL::TestDL) fails on ARM HardFP
# http://bugs.ruby-lang.org/issues/6592
DISABLE_TESTS="-x test_dl2.rb $DISABLE_TESTS"
# Workaround OpenSSL::TestPKeyRSA#test_sign_verify_memory_leak timeouts on ARM.
# https://bugs.ruby-lang.org/issues/9984
sed -i -e 's|20_000|10_000|g' test/openssl/test_pkey_rsa.rb
%endif
# Allow MD5 in OpenSSL.
# https://bugs.ruby-lang.org/issues/9154
export OPENSSL_ENABLE_MD5_VERIFY=1
export LD_LIBRARY_PATH="$PWD"
# we know some tests will fail when they do not find a /usr/bin/ruby
make -j 4 check V=1 TESTOPTS="$DISABLE_TESTS" ||:
%endif
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%ghost %{_sysconfdir}/alternatives/rake*
%ghost %{_sysconfdir}/alternatives/rdoc*
%ghost %{_sysconfdir}/alternatives/ri*
%{_bindir}/erb*
%{_bindir}/gem*
%{_bindir}/irb*
%{_bindir}/rake*
%{_bindir}/rdoc*
%{_bindir}/ri*
%{_bindir}/ruby*
%{_mandir}/man1/ri*.1*
%{_mandir}/man1/irb*.1*
%{_mandir}/man1/erb*.1*
#{_mandir}/man1/rake*.1*
%{_mandir}/man1/ruby*.1*
%doc ChangeLog COPYING COPYING.ja GPL KNOWNBUGS.rb LEGAL NEWS README*
%config /etc/rpm/macros.suse-ruby2.5*
%if %{with separate_stdlib}
%files stdlib
%defattr(-,root,root,-)
%endif
%{_libdir}/ruby/
%exclude %{_libdir}/ruby/gems/%{api_version}/gems/*/test/
%dir %rb_extdir
%dir %rb_extarchdir
%dir %rb_extversionedarchdir
%dir %rb_extdocdir
%dir %rb_extarchdocdir
%files -n %{libname}
%defattr(-,root,root,-)
%{_libdir}/libruby*.so.*
%files devel -f devel-extra-excludes
%defattr(-,root,root,-)
%{_includedir}/ruby-%{rb_ver}
%{_libdir}/libruby*.so
%{_libdir}/pkgconfig/ruby-2.5.pc
%files devel-extra -f devel-extra-list
%if %{with build_docs}
%files doc
%defattr(-,root,root,-)
%doc doc/* sample/
%files doc-ri
%defattr(-,root,root,-)
%dir %{_datadir}/ri/
%{_datadir}/ri/%{rb_ver}/
%endif
%changelog

11
series Normal file
View file

@ -0,0 +1,11 @@
# Patch series file for quilt, created by quilt setup
# Source: ruby-2.5.5.tar.xz
# Patchdir: ruby-2.5.5
#
0001-make-gem-build-reproducible.patch
0002-gc.c-tick-for-POWER-arch.patch
0003-Mark-Gemspec-reproducible-change-fixing-784225-too.patch
0004-Make-gemspecs-reproducible.patch
0005-Include-the-alternative-malloc-header-instead-of-mal.patch
0006-Use-PIE-for-the-binaries.patch
0007-date-support-for-Reiwa-new-Japanese-era.patch

3844
suse.patch Normal file

File diff suppressed because it is too large Load diff