Bug 30590 - Ruby json missing symbolic link
Summary: Ruby json missing symbolic link
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 8
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA8-64-OK
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2022-06-30 19:10 CEST by Jean-Georges Pinna
Modified: 2022-07-05 21:12 CEST (History)
6 users (show)

See Also:
Source RPM: ruby-2.7.6-33.4.mga8.src.rpm
CVE:
Status comment:


Attachments

Description Jean-Georges Pinna 2022-06-30 19:10:44 CEST
Description of problem:
When I run bundle exec rake generate_session_store to install redmine 4.2.3 i have the following stack trace
rake aborted!
LoadError: cannot load such file -- json
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/core_ext/object/json.rb:4:in `require'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/core_ext/object/json.rb:4:in `<top (required)>'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/core_ext/object.rb:13:in `require'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/core_ext/object.rb:13:in `<top (required)>'
/usr/share/gems/gems/railties-5.2.6/lib/rails/configuration.rb:4:in `require'
/usr/share/gems/gems/railties-5.2.6/lib/rails/configuration.rb:4:in `<top (required)>'
/usr/share/gems/gems/railties-5.2.6/lib/rails/railtie/configuration.rb:3:in `require'
/usr/share/gems/gems/railties-5.2.6/lib/rails/railtie/configuration.rb:3:in `<top (required)>'
/usr/share/gems/gems/railties-5.2.6/lib/rails/railtie.rb:223:in `require'
/usr/share/gems/gems/railties-5.2.6/lib/rails/railtie.rb:223:in `config'
/usr/share/gems/gems/railties-5.2.6/lib/rails/railtie.rb:127:in `config'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/i18n_railtie.rb:11:in `<class:Railtie>'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/i18n_railtie.rb:10:in `<module:I18n>'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/i18n_railtie.rb:9:in `<top (required)>'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/railtie.rb:4:in `require'
/usr/share/gems/gems/activesupport-5.2.6/lib/active_support/railtie.rb:4:in `<top (required)>'
/usr/share/gems/gems/railties-5.2.6/lib/rails.rb:17:in `require'
/usr/share/gems/gems/railties-5.2.6/lib/rails.rb:17:in `<top (required)>'
/opt/redmine-4.2.3/config/application.rb:5:in `require'
/opt/redmine-4.2.3/config/application.rb:5:in `<top (required)>'
/opt/redmine-4.2.3/Rakefile:5:in `require'
/opt/redmine-4.2.3/Rakefile:5:in `<top (required)>'
/usr/local/share/gems/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/cli.rb:483:in `exec'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/cli.rb:31:in `dispatch'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/cli.rb:25:in `start'
/usr/local/share/gems/gems/bundler-2.3.17/exe/bundle:48:in `block in <top (required)>'
/usr/local/share/gems/gems/bundler-2.3.17/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
/usr/local/share/gems/gems/bundler-2.3.17/exe/bundle:36:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)


I correct this by creating 2 symbolic link in /usr/share/ruby
- json : ln -s ../../../usr/share/gems/gems/json-2.3.0/lib/json json
- json.rb :ln -s ../../../usr/share/gems/gems/json-2.3.0/lib/json.rb json.rb
David Walser 2022-06-30 20:26:40 CEST

Assignee: bugsquad => pterjan

Morgan Leijström 2022-07-01 08:31:57 CEST

Summary: Missing symbolic link => Ruby json missing symbolic link
CC: (none) => fri

Comment 1 Pascal Terjan 2022-07-01 16:46:52 CEST
Thank you for the report, this was already fixed in cauldron during the update to ruby 3, I'll have a look at fixing it on Mageia 8.

Source RPM: ruby-json-2.3.0-33.4.mga8.aarch64.rpm => ruby-2.7.6-33.4.mga8.src.rpm

Comment 2 Pascal Terjan 2022-07-01 18:16:25 CEST
-33.5.mga8 is currently being built for 8/updates_testing
Comment 3 David Walser 2022-07-01 18:33:23 CEST
ruby-2.7.6-33.5.mga8
libruby2.7-2.7.6-33.5.mga8
ruby-rdoc-6.2.1.1-33.5.mga8
ruby-devel-2.7.6-33.5.mga8
ruby-bundler-2.2.24-33.5.mga8
ruby-RubyGems-3.1.2-33.5.mga8
ruby-test-unit-3.3.4-33.5.mga8
ruby-openssl-2.1.3-33.5.mga8
ruby-rake-13.0.1-33.5.mga8
ruby-irb-2.7.6-33.5.mga8
ruby-psych-3.1.0-33.5.mga8
ruby-bigdecimal-2.0.0-33.5.mga8
ruby-json-2.3.0-33.5.mga8
ruby-xmlrpc-0.3.0-33.5.mga8
ruby-io-console-0.5.6-33.5.mga8
ruby-net-telnet-0.2.0-33.5.mga8
ruby-power_assert-1.1.7-33.5.mga8
ruby-did_you_mean-1.4.0-33.5.mga8
ruby-doc-2.7.6-33.5.mga8

from ruby-2.7.6-33.5.mga8.src.rpm

Assignee: pterjan => qa-bugs
CC: (none) => pterjan

Comment 4 Len Lawrence 2022-07-02 16:32:37 CEST
mga8, x64

Installed all the pre-update packages.
Not a rails user but tried the installation command:
$ bundle exec rake generate_session_store redmine
Could not locate Gemfile or .bundle/ directory

as user and root.  Not unexpected.

/usr/share/gems/gems/json-2.3.0/lib/json is not a link and nor is the json.rb file.

Updated all the packages (lib64ruby2.7).
As indicated, the redmine installation failed so I have to accept that that cannot be tested on this system without further refinements.

Quick script to show ruby-json working :
see https://linuxhint.com/parse-json-in-ruby/ 
-------------------------------------------
#!/bin/ruby -W0
require "json"

raw_data = File.read( "/usr/share/doc/perl-XString/META.json" )
datahash = JSON.parse( raw_data )
datahash.each { |entry| p entry }
-------------------------------------------

This generates a lot of output:
["abstract", "Isolated String helpers from B"]
["author", ["Nicolas R <atoomic@cpan.org>"]]
["dynamic_config", 0]
["generated_by", "Dist::Zilla version 6.014, CPAN::Meta::Converter version 2.150010"]
["license", ["perl_5"]]
["meta-spec", {"url"=>"http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version"=>2}]
["name", "XString"]
["prereqs", {"configure"=>{"requires"=>{"ExtUtils::MakeMaker"=>"0"}}, "develop"=
.........
["x_generated_by_perl", "v5.30.1"]
["x_serialization_backend", "Cpanel::JSON::XS version 4.19"]
["x_spdx_expression", "Artistic-1.0-Perl OR GPL-1.0-or-later"]

Add "puts datahash.keys":
abstract
author
dynamic_config
generated_by
license
[...]
version
x_Dist_Zilla
x_generated_by_perl
x_serialization_backend
x_spdx_expression

JSON data can be created OK:
----------------------------
require 'json'

this_hash = {:name => "John Doe", :age => 30, :role => "Python Programmer", :group => "AX-100", :Country => "United States"}
jsonified = JSON.generate(this_hash)

puts jsonified
----------------------------
$ ruby qajson.rb
{"name":"John Doe","age":30,"role":"Python Programmer","group":"AX-100","Country":"United States"}

Passing this on the basis of a clean install and "it works".

CC: (none) => tarazed25
Whiteboard: (none) => MGA8-64-OK

Comment 5 Thomas Andrews 2022-07-03 04:53:03 CEST
Validating.

Keywords: (none) => validated_update
CC: (none) => andrewsfarm, sysadmin-bugs

Comment 6 Len Lawrence 2022-07-04 08:38:18 CEST
With apologies to Jean-Georges, just realised that these tests do not address the original problem.  Maybe we should put this on hold until Jean-Georges has tried it out and reported back.
Comment 7 Jean-Georges Pinna 2022-07-04 11:09:54 CEST
No problem,
Where can i find these packages to test them
Comment 8 Thomas Andrews 2022-07-04 14:00:11 CEST
Removing validation for now because of Comment 6.

Keywords: validated_update => (none)

Comment 9 Len Lawrence 2022-07-04 15:37:46 CEST
Referring to comment 8, thanks TJ
With reference to comment 7, the update candidates are in Core Updates Testing.
You would actually have to follow QA procedures to use them.  QA is meant to undertake any needed testing before clearing the packages for release but many times we do not have the expertise to tackle particular issues, as in this case.
Using `gem install redmine` works here but delivers redmine version 0.1.4, while you are looking for a much newer version.

It may be that wiser heads could give you better advice than the following - it is the best I can come up with.

Assuming you have the release versions of the ruby packages installed you could either follow the instructions for setting up qarepo (https://wiki.mageia.org/en/QA_Repo) or do it the old way (not recommended), which is to enable Core Updates Testing via
$ sudo drakrpm-edit-media
$ urpmi.update -a
$ drakrpm-update (give user password)

That sounds like too much to ask.  An alternative would be for you to to supply us with enough information, links etcetera, to do the test ourselves.

Failing that we would have to revert to waiting for the update to be pushed and let you try again.
Comment 10 Len Lawrence 2022-07-04 18:19:14 CEST
No, comment 9 was a brain fart.  QA should not be treading in developer territory.  Replacing the validation.  Apologies.

Keywords: (none) => validated_update

Dave Hodgins 2022-07-04 23:51:49 CEST

CC: (none) => davidwhodgins
Keywords: (none) => advisory

Comment 11 Mageia Robot 2022-07-05 21:12:22 CEST
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGAA-2022-0090.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.