#44 Update to Ruby 2.6.3.
Merged 6 months ago by pvalena. Opened 7 months ago by pvalena.
rpms/ pvalena/ruby rebase  into  master

file modified
+12 -3

@@ -1,6 +1,6 @@ 

  %global major_version 2

  %global minor_version 6

- %global teeny_version 2

+ %global teeny_version 3

  %global major_minor_version %{major_version}.%{minor_version}

  

  %global ruby_version %{major_minor_version}.%{teeny_version}

@@ -21,7 +21,7 @@ 

  %endif

  

  

- %global release 119

+ %global release 120

  %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}

  

  # The RubyGems library has to stay out of Ruby directory tree, since the

@@ -754,6 +754,12 @@ 

  sed -i 's/^/%doc /' .ruby-doc.*

  sed -i 's/^/%lang(ja) /' .ruby-doc.ja

  

+ # https://github.com/yuki24/did_you_mean/issues/122

+ rm -rf %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/tmp/

+ 

+ # https://github.com/ruby/rake/issues/316

+ rm -f %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.gitignore

+ 

  %check

  %if 0%{?with_hardening_test}

  # Check Ruby hardening.

@@ -1032,7 +1038,7 @@ 

  

  # TODO: Gemify these libraries

  %{gem_dir}/specifications/default/cmath-1.0.0.gemspec

- %{gem_dir}/specifications/default/csv-3.0.4.gemspec

+ %{gem_dir}/specifications/default/csv-3.0.9.gemspec

  %{gem_dir}/specifications/default/date-2.0.0.gemspec

  %{gem_dir}/specifications/default/dbm-1.0.0.gemspec

  %{gem_dir}/specifications/default/e2mmap-0.1.0.gemspec

@@ -1176,6 +1182,9 @@ 

  %{_mandir}/man5/gemfile.5*

  

  %changelog

+ * Thu Apr 25 2019 Pavel Valena <pvalena@redhat.com> - 2.6.3-120

+ - Update to Ruby 2.6.3.

+ 

  * Thu Mar 28 2019 Arjen Heidinga <dexter@beetjevreemd.nl> - 2.6.2-119

  - Add zlib-devel explicitly as BuildRequirement.

  

to have latest Ruby in Fedora.

https://bugzilla.redhat.com/show_bug.cgi?id=1701009


Up-to-date Koji scratch-build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=34856843

Up-to-date copr build:
https://copr.fedorainfracloud.org/coprs/build/908870/

Checks:

  • Smoke test: ok(rails)
  • Tests: ok
  • rpmlinit: inprogress

rpmlint errors:

hidden-file-or-dir /usr/share/gems/gems/did_you_mean-1.3.0/tmp/.keep
non-executable-script /usr/share/gems/gems/net-telnet-0.2.0/bin/console 0644L /usr/bin/env

and alike I'm going to report upstream.

But I am not sure what to do with / how to interpret:

ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1254.so

Or is it just my old rpmlint? rpmlint-1.5-4.el7.noarch
I will consider doing these checks from rawhide.

rpmlint errors:
hidden-file-or-dir /usr/share/gems/gems/did_you_mean-1.3.0/tmp/.keep
non-executable-script /usr/share/gems/gems/net-telnet-0.2.0/bin/console 0644L /usr/bin/env

and alike I'm going to report upstream.

Yes please. Report them and fix locally.

But I am not sure what to do with / how to interpret:
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1254.so

This might not be necessarily problem, because I suspect it more or less caries some encoding data instead of real functionality. It would probably deserve comparing this with other enc modules.

The full list of those .so files issues:

ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/continuation.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/digest/bubblebabble.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/digest/md5.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/digest/rmd160.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/digest/sha1.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/digest/sha2.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/big5.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/cp949.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/emacs_mule.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/encdb.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_jp.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_kr.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_tw.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/gb18030.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/gb2312.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/gbk.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_10.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_11.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_13.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_14.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_15.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_16.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_1.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_2.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_3.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_4.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_5.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_6.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_7.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_8.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_9.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_r.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_u.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/shift_jis.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/big5.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/chinese.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/ebcdic.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_iso2022_kddi.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_docomo.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_kddi.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_softbank.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/escape.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gb18030.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gbk.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/iso2022.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_euc.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_sjis.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/korean.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/single_byte.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/transdb.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/utf_16_32.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16be.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16le.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32be.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32le.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1250.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1251.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1252.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1253.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1254.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1257.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_31j.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/fcntl.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/fiber.so
ruby-libs.x86_64: E: library-not-linked-against-libc /usr/lib64/ruby/rbconfig/sizeof.so

So is it issue for all libraries shipped with Ruby? Was it always like this?

rpmlint: library-not-linked-against-libc (parts of Python stdlib, after gcc 9)
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/QGJEDBFN7OXMP7OVTSVBO4DCGTX4K4WI/
In case of python, it makes the warning false positive.
But I am not sure if it is false positive for Ruby yet.

How about creating ruby.rpmlintrc to ignore false positive errors/warnings like python3 if it is false positive?

https://src.fedoraproject.org/rpms/python3/c/a6496be3e23b39b25bc40ad3931b1956fa91c457

python3.rpmlintrc

+# Python modules don't need to be linked against libc
+addFilter(r'E: library-not-linked-against-libc /usr/lib(64)?/python3.\d/lib-dynload/')

I have never considered introducing ruby.rpmlintrc because it does not work locally out of the box (i.e. rpmlint does not respect the file without specifying it as option on cmdline and fedpkg lint imposes its own set of idiosyncrasies). Also it might hide important issues if it is not used carefully. But I won't block it if somebody wants to prepare it. But first we should understand the problem. Separate PR would be probably better.

Sure. Below is on current maser branch.
The negative side not to adapt ruby.rpmlintrc is that it might miss an issue that can be fixed.
5th warning can be fixed. But why it was not fixed? 1st to 4th warnings makes us hard to find 5th warning?

$ fedpkg lint
No srpm found
No rpm found
/home/jaruga/git/fedora-packages/ruby/ruby.spec:213: W: unversioned-explicit-provides bundled(ccan-build_assert)
/home/jaruga/git/fedora-packages/ruby/ruby.spec:214: W: unversioned-explicit-provides bundled(ccan-check_type)
/home/jaruga/git/fedora-packages/ruby/ruby.spec:215: W: unversioned-explicit-provides bundled(ccan-container_of)
/home/jaruga/git/fedora-packages/ruby/ruby.spec:216: W: unversioned-explicit-provides bundled(ccan-list)
/home/jaruga/git/fedora-packages/ruby/ruby.spec:593: W: macro-in-comment %{ruby_version}
0 packages and 1 specfiles checked; 0 errors, 5 warnings.

Well, that's strange. In my unpacked *.tar.xz:

$ ls -d gems/*/bin | \
  xargs -i find "{}" -type f | \
  xargs ls -lahd
-rwxr-xr-x. 1 vagrant vagrant  335 Apr 17 07:24 gems/net-telnet-0.2.0/bin/console
-rwxr-xr-x. 1 vagrant vagrant  115 Apr 17 07:24 gems/net-telnet-0.2.0/bin/setup
-rwxr-xr-x. 1 vagrant vagrant  146 Apr 17 07:24 gems/power_assert-1.1.3/bin/console
-rwxr-xr-x. 1 vagrant vagrant   74 Apr 17 07:24 gems/power_assert-1.1.3/bin/setup
-rwxr-xr-x. 1 vagrant vagrant 2.8K Apr 17 07:24 gems/rake-12.3.2/bin/bundle
-rwxr-xr-x. 1 vagrant vagrant   85 Apr 17 07:24 gems/rake-12.3.2/bin/console
-rwxr-xr-x. 1 vagrant vagrant  787 Apr 17 07:24 gems/rake-12.3.2/bin/rake
-rwxr-xr-x. 1 vagrant vagrant  787 Apr 17 07:24 gems/rake-12.3.2/bin/rdoc
-rwxr-xr-x. 1 vagrant vagrant  796 Apr 17 07:24 gems/rake-12.3.2/bin/rubocop
-rwxr-xr-x. 1 vagrant vagrant   74 Apr 17 07:24 gems/rake-12.3.2/bin/setup
-rwxr-xr-x. 1 vagrant vagrant  331 Apr 17 07:24 gems/xmlrpc-0.3.0/bin/console
-rwxr-xr-x. 1 vagrant vagrant  131 Apr 17 07:24 gems/xmlrpc-0.3.0/bin/setup

It seems they're already executable... so, does this change during install or is this false positive? Let me check.

Regarding the permissions, situation is the same as with current rawhide Ruby:

/usr/share/gems/gems/xmlrpc-0.3.0 $ l bin
total 16K
drwxr-xr-x. 2 root root 4.0K May 13 15:05 .
drwxr-xr-x. 4 root root 4.0K May 13 15:05 ..
-rw-r--r--. 1 root root  331 Mar 12 16:26 console
-rw-r--r--. 1 root root  131 Mar 12 16:26 setup

Also it occurs for all bundled gems. The change is made build, but I wasn't able to find a log entry about it.


So is it issue for all libraries shipped with Ruby? Was it always like this?

It occurs since F30+. F29 is fine.
Not all are affected though. For ruby-libs, these are fine:

/usr/lib64/ruby/cgi/escape.so
/usr/lib64/ruby/coverage.so
/usr/lib64/ruby/date_core.so
/usr/lib64/ruby/dbm.so
/usr/lib64/ruby/digest.so
/usr/lib64/ruby/enc/trans/utf8_mac.so
/usr/lib64/ruby/etc.so
/usr/lib64/ruby/fiddle.so
/usr/lib64/ruby/gdbm.so
/usr/lib64/ruby/io/nonblock.so
/usr/lib64/ruby/io/wait.so
/usr/lib64/ruby/nkf.so
/usr/lib64/ruby/objspace.so
/usr/lib64/ruby/pathname.so
/usr/lib64/ruby/pty.so
/usr/lib64/ruby/racc/cparse.so
/usr/lib64/ruby/readline.so
/usr/lib64/ruby/ripper.so
/usr/lib64/ruby/sdbm.so
/usr/lib64/ruby/socket.so
/usr/lib64/ruby/stringio.so
/usr/lib64/ruby/strscan.so
/usr/lib64/ruby/syslog.so
/usr/lib64/ruby/zlib.so

So it was probably stripped / optimized (and it's a false-positive).

rebased onto af9e36a101533c3893d58906f5084188e4a9b2f5

6 months ago

Why do you remove the .keep file but keep the tmp directory around?

Why do you remove the .keep file but keep the tmp directory around?

Right, that's only for one test AFAICT.

rebased onto ed79064

6 months ago

Pull-Request has been merged by pvalena

6 months ago