On Sat, Sep 23, 2023 at 7:50 PM Mamoru TASAKA mtasaka@fedoraproject.org wrote:
Hello, ruby-sig folks:
From devel list:
Zbigniew Jędrzejewski-Szmek wrote on 2023/09/22 23:01:
On Fri, Sep 22, 2023 at 10:43:05AM +0200, Vít Ondruch wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=2233281#c3
This probably answers my question. So heads up to others.
Dne 22. 09. 23 v 10:39 Vít Ondruch napsal(a):
Was this implemented in past days? I am asking because this FTBFS suggest so:
https://koschei.fedoraproject.org/package/rubygem-timecop?collection=f40
Yes. The change was done in rawhide a while ago, but it got pushed to F39 only recently, see https://bugzilla.redhat.com/show_bug.cgi?id=2233281#c3.
Zbyszek
Now again I tried rebuilding all rubygem- packages, and now due to this tzdata removal changes, the following packages are now additionally FTBFS:
rubygem-activemodel-serializers-xml rubygem-globalid rubygem-haml rubygem-importmap-rails rubygem-jekyll rubygem-rails-controller-testing rubygem-sassc-rails rubygem-slim rubygem-sprockets-rails rubygem-timecop rubygem-web-console
And all of these seems like:
/usr/share/gems/gems/tzinfo-2.0.6/lib/tzinfo/data_sources/zoneinfo_data_source.rb:252:in `initialize': None of the paths included in TZInfo::DataSources::ZoneinfoDataSource.search_path are valid zoneinfo directories. (TZInfo::DataSources::ZoneinfoDirectoryNotFound) from /usr/share/gems/gems/tzinfo-2.0.6/lib/tzinfo/data_source.rb:157:in `new' from /usr/share/gems/gems/tzinfo-2.0.6/lib/tzinfo/data_source.rb:157:in `create_default_data_source' from /usr/share/gems/gems/tzinfo-2.0.6/lib/tzinfo/data_source.rb:55:in `block in get' from /usr/share/gems/gems/tzinfo-2.0.6/lib/tzinfo/data_source.rb:54:in `synchronize' from /usr/share/gems/gems/tzinfo-2.0.6/lib/tzinfo/data_source.rb:54:in `get' from /usr/share/gems/gems/activesupport-7.0.8/lib/active_support/railtie.rb:88:in `block in class:Railtie' from /usr/share/gems/gems/railties-7.0.8/lib/rails/initializable.rb:32:in `instance_exec' from /usr/share/gems/gems/railties-7.0.8/lib/rails/initializable.rb:32:in `run' from /usr/share/gems/gems/railties-7.0.8/lib/rails/initializable.rb:61:in `block in run_initializers' from /usr/share/ruby/tsort.rb:231:in `block in tsort_each' from /usr/share/ruby/tsort.rb:353:in `block (2 levels) in each_strongly_connected_component' from /usr/share/ruby/tsort.rb:434:in `each_strongly_connected_component_from' from /usr/share/ruby/tsort.rb:352:in `block in each_strongly_connected_component' from /usr/share/ruby/tsort.rb:350:in `each' from /usr/share/ruby/tsort.rb:350:in `call' from /usr/share/ruby/tsort.rb:350:in `each_strongly_connected_component' from /usr/share/ruby/tsort.rb:229:in `tsort_each' from /usr/share/ruby/tsort.rb:208:in `tsort_each' from /usr/share/gems/gems/railties-7.0.8/lib/rails/initializable.rb:60:in `run_initializers' from /usr/share/gems/gems/railties-7.0.8/lib/rails/application.rb:372:in `initialize!' .....
So initializer of rails tries to initialize tzdata, and if it is not found exception is raised: The related code is: https://github.com/rails/rails/blob/fc734f28e65ef8829a1a939ee6702c1f349a1d5a...
So what is the proper fix for this?
A. Make every package above have "BuildRequires: tzdata" B. Make rubygem-tzinfo or rubygem-activesupport have "Requires (not Recommends) tzdata" C. Or ask rubygem-activesupport upstream to make the code work even if tzdata is absent
My current thought is that as currently RoR code explicitly requests to have tzdata installed, B. is the best option.
I agree that Option B is the best option.