Bug 246743 - webkitgtk 2.38.0 fails to build with upcoming ruby 3.2 due to removed File.exists?
Summary: webkitgtk 2.38.0 fails to build with upcoming ruby 3.2 due to removed File.ex...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Fujii Hironori
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-10-19 07:13 PDT by Mamoru TASAKA
Modified: 2022-12-12 21:26 PST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mamoru TASAKA 2022-10-19 07:13:39 PDT
Fedora 38 is now preparing for upcoming ruby3.2 (which is expected to be released on Chistmas of 2022),
and WebKitGTK 2.38.0 fails to build with ruby3.2 dev like:

--------------------------------------------------
FAILED: JavaScriptCore/DerivedSources/LLIntDesiredSettings.h /builddir/build/BUILD/webkitgtk-2.38.0/redhat-linux-build/webkit2gtk-5.0/JavaScriptCore/DerivedSources/LLIntDesiredSettings.h 
cd /builddir/build/BUILD/webkitgtk-2.38.0/redhat-linux-build/webkit2gtk-5.0/Source/JavaScriptCore && /usr/bin/ruby /builddir/build/BUILD/webkitgtk-2.38.0/Source/JavaScriptCore/offlineasm/generate_settings_extractor.rb -I/builddir/build/BUILD/webkitgtk-2.38.0/redhat-linux-build/webkit2gtk-5.0/JavaScriptCore/DerivedSources/ /builddir/build/BUILD/webkitgtk-2.38.0/Source/JavaScriptCore/llint/LowLevelInterpreter.asm /builddir/build/BUILD/webkitgtk-2.38.0/redhat-linux-build/webkit2gtk-5.0/JavaScriptCore/DerivedSources/LLIntDesiredSettings.h X86_64
/builddir/build/BUILD/webkitgtk-2.38.0/Source/JavaScriptCore/offlineasm/parser.rb:879:in `block in parseIncludes': undefined method `exists?' for File:Class (NoMethodError)

                if not File.exists?(fileName)
                           ^^^^^^^^
Did you mean?  exist?
	from /builddir/build/BUILD/webkitgtk-2.38.0/Source/JavaScriptCore/offlineasm/parser.rb:860:in `loop'
	from /builddir/build/BUILD/webkitgtk-2.38.0/Source/JavaScriptCore/offlineasm/parser.rb:860:in `parseIncludes'
	from /builddir/build/BUILD/webkitgtk-2.38.0/Source/JavaScriptCore/offlineasm/parser.rb:920:in `parseHash'
	from /builddir/build/BUILD/webkitgtk-2.38.0/Source/JavaScriptCore/offlineasm/generate_settings_extractor.rb:58:in `<main>'
--------------------------------------------------

File.exists? is deprecated since ruby 2.1 and is removed with ruby 3.2. People is expected
to simply replace this with File.exist?

The targets need fixing are:
--------------------------------------------------
./Source/JavaScriptCore/offlineasm/config.rb:26:if buildProductsDirectory and File.exists?(buildProductsDirectory)
./Source/JavaScriptCore/offlineasm/config.rb:30:if sdkRootDirectory and File.exists?(sdkRootDirectory)
./Source/JavaScriptCore/offlineasm/parser.rb:843:                if not File.exists?(fileName)
./Source/JavaScriptCore/offlineasm/parser.rb:846:                fileExists = File.exists?(fileName)
./Source/JavaScriptCore/offlineasm/parser.rb:879:                if not File.exists?(fileName)
./Source/JavaScriptCore/offlineasm/parser.rb:882:                fileExists = File.exists?(fileName)
./Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb:39:      if !File.exists?(generated_path)
--------------------------------------------------


References:
https://github.com/ruby/ruby/blob/6378825df5c7abc7ef45f257057ffd21dc9e63b5/NEWS.md?plain=1#L245-L248
https://bugs.ruby-lang.org/issues/17391
https://docs.ruby-lang.org/ja/latest/method/File/s/exists=3f.html
Comment 1 Fujii Hironori 2022-12-12 18:34:51 PST
Pull request: https://github.com/WebKit/WebKit/pull/7531
Comment 2 EWS 2022-12-12 21:25:24 PST
Committed 257775@main (b7ac5d0ccc7c): <https://commits.webkit.org/257775@main>

Reviewed commits have been landed. Closing PR #7531 and removing active labels.
Comment 3 Radar WebKit Bug Importer 2022-12-12 21:26:16 PST
<rdar://problem/103283634>