source: general/prog/ruby.xml@ 551641f

12.2 gimp3 lazarus trunk xry111/for-12.3 xry111/spidermonkey128
Last change on this file since 551641f was 551641f, checked in by Xi Ruoyao <xry111@…>, 5 months ago

ruby: Document 3 failures with recent OpenSSL

They are happening with both Ruby-3.3.0 and Ruby-3.3.1, and OpenSSL-3.3.

  • Property mode set to 100644
File size: 12.2 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY ruby-download-http "https://cache.ruby-lang.org/pub/ruby/&ruby-minor-version;/ruby-&ruby-version;.tar.xz">
8 <!ENTITY ruby-download-ftp " ">
9 <!ENTITY ruby-md5sum "0931370806081135e80f4be24d4b27ed">
10 <!ENTITY ruby-size "16 MB">
11 <!ENTITY ruby-buildsize "663 MB (with tests and C API docs)">
12 <!ENTITY ruby-time "3.4 SBU (using parallelism=4; with tests and C API docs)">
13]>
14
15<sect1 id="ruby" xreflabel="Ruby-&ruby-version;">
16 <?dbhtml filename="ruby.html"?>
17
18
19 <title>Ruby-&ruby-version;</title>
20
21 <indexterm zone="ruby">
22 <primary sortas="a-Ruby">Ruby</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Ruby</title>
27
28 <para>
29 The <application>Ruby</application> package contains the
30 <application>Ruby</application> development environment. This
31 is useful for object-oriented scripting.
32 </para>
33
34 &lfs121_checked;
35
36 <bridgehead renderas="sect3">Package Information</bridgehead>
37 <itemizedlist spacing="compact">
38 <listitem>
39 <para>
40 Download (HTTP): <ulink url="&ruby-download-http;"/>
41 </para>
42 </listitem>
43 <listitem>
44 <para>
45 Download (FTP): <ulink url="&ruby-download-ftp;"/>
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 Download MD5 sum: &ruby-md5sum;
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download size: &ruby-size;
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Estimated disk space required: &ruby-buildsize;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Estimated build time: &ruby-time;
66 </para>
67 </listitem>
68 </itemizedlist>
69
70 <bridgehead renderas="sect3">Ruby Dependencies</bridgehead>
71
72 <bridgehead renderas="sect4">Required</bridgehead>
73 <para role="required">
74 <xref linkend="libyaml"/>
75 </para>
76
77 <bridgehead renderas="sect4">Optional</bridgehead>
78 <para role="optional">
79 <xref linkend="doxygen"/>,
80 <xref linkend="graphviz"/>,
81 <xref linkend="rust"/>,
82 <xref linkend="tk"/>,
83 <xref linkend="valgrind"/>,
84 &berkeley-db; and
85 <ulink url="https://dtrace.org/about/">DTrace</ulink>
86 </para>
87
88 </sect2>
89
90 <sect2 role="installation">
91 <title>Installation of Ruby</title>
92
93 <para>
94 Install <application>Ruby</application> by running the following
95 command:
96 </para>
97
98<screen><userinput>./configure --prefix=/usr \
99 --disable-rpath \
100 --enable-shared \
101 --without-valgrind \
102 --without-baseruby \
103 ac_cv_func_qsort_r=no \
104 --docdir=/usr/share/doc/ruby-&ruby-version; &amp;&amp;
105make</userinput></screen>
106
107 <para>
108 Optionally, build the CAPI documents by running the following
109 commands:
110 </para>
111
112<screen><userinput>make capi</userinput></screen>
113
114 <para>
115 To test the results, issue: <command>make -j1 -k check</command>.
116 Note that running the test suite with parallel jobs may cause test
117 failures outputted as cryptic <computeroutput>unknown
118 object</computeroutput> messages, resulting a summary falsely claiming
119 <quote>all tests passed</quote>. If the environment has variables
120 related to proxy settings (<envar>all_proxy</envar>,
121 <envar>ALL_PROXY</envar>, <envar>http_proxy</envar>, and etc.) set,
122 the test suite will bail out early with messages like
123 <computeroutput>net/ftp is not found</computeroutput>. Make sure that you
124 unset these variables for the test suite. There are over 26,000 tests.
125 <!-- https://bugs.ruby-lang.org/issues/20106 -->
126 12 tests are known to fail because of expired certificates in the
127 test data.
128 <!-- https://github.com/ruby/ruby/pull/10616
129 https://github.com/ruby/ruby/commit/dd5e625d7bcb -->
130 Three tests named
131 <literal>TestNetHTTPS#test_session_reuse_but_expire</literal>,
132 <literal>OpenSSL::TestASN1#test_utctime</literal>, and
133 <literal>OpenSSL::TestASN1#test_generalizedtime</literal> are known
134 to fail with OpenSSL-3.3.0 or later.
135 Some tests related to ipv6 may indicate errors. If the
136 tests are run in a directory that has a world writable component (e.g.
137 /tmp) then several additional tests may fail. Three tests are known to
138 fail with OpenSSL-3.3.
139 </para>
140
141 <para>
142 Now, as the <systemitem class="username">root</systemitem> user:
143 </para>
144
145<screen role="root"><userinput>make install</userinput></screen>
146
147 <note>
148 <para>
149 If you have Ruby-On-Rails applications installed and did an
150 upgrade of <application>Ruby</application> by installing this
151 package, you might need to run an update there, too
152 (as the &root; user):
153 </para>
154
155<screen role="nodump"><userinput>cd /path/to/web/app
156bundle update rake</userinput></screen>
157
158 <para>
159 and restart the webserver which serves the application.
160 </para>
161
162 </note>
163
164 </sect2>
165
166 <sect2 role="commands">
167 <title>Command Explanations</title>
168
169 <para>
170 <parameter>--disable-rpath</parameter>: This switch disables embedding
171 <filename class='directory'>/usr/lib</filename> as a library search
172 path into the <command>ruby</command> program. Doing so is not needed
173 (because <filename class='directory'>/usr/lib</filename> is a system
174 library path) and it may cause the test suite running with the system
175 <filename class='libraryfile'>libruby.so</filename> instead of the
176 just built one when Ruby has been installed.
177 </para>
178
179 <para>
180 <parameter>--enable-shared</parameter>: This switch enables building
181 the <filename class="libraryfile">libruby</filename> shared library.
182 </para>
183
184 <para>
185 <parameter>--without-baseruby</parameter>: This switch prevents using the
186 system <command>ruby</command> if it is already installed. The build
187 system will use the newly built version instead.
188 </para>
189
190 <para>
191 <parameter>ac_cv_func_qsort_r=no</parameter>: This switch prevents
192 using the <function>qsort_r</function> function from Glibc. Ruby
193 makes some aggressive optimization assuming some implementation
194 details of the sorting algorithm, but the assumption is not true with
195 the Glibc implementation. With this switch Ruby will use its own sort
196 implementation instead.
197 </para>
198
199 <para>
200 <option>--disable-install-doc</option>: This switch disables building and
201 installing rdoc indexes and C API documents.
202 </para>
203
204 <para>
205 <option>--disable-install-rdoc</option>: This switch disables building
206 and installing rdoc indexes.
207 </para>
208
209 <para>
210 <option>--disable-install-capi</option>: This switch disables building
211 and installing C API documents.
212 </para>
213
214 </sect2>
215
216 <sect2 role="content">
217 <title>Contents</title>
218
219 <segmentedlist>
220 <segtitle>Installed Programs</segtitle>
221 <segtitle>Installed Libraries</segtitle>
222 <segtitle>Installed Directories</segtitle>
223
224 <seglistitem>
225 <seg>
226 bundle,
227 bundler,
228 erb,
229 gem,
230 irb,
231 racc,
232 rake,
233 rbs,
234 rdbg,
235 rdoc,
236 ri,
237 ruby, and
238 typeprof
239 </seg>
240 <seg>
241 libruby.so
242 </seg>
243 <seg>
244 /usr/include/ruby-&ruby-minor-version;.0,
245 /usr/lib/ruby,
246 /usr/share/doc/ruby-&ruby-version; and
247 /usr/share/ri
248 </seg>
249 </seglistitem>
250 </segmentedlist>
251
252 <variablelist>
253 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
254 <?dbfo list-presentation="list"?>
255 <?dbhtml list-presentation="table"?>
256
257 <varlistentry id="bundle">
258 <term><command>bundle</command></term>
259 <listitem>
260 <para>
261 creates bundles of Ruby Gems
262 </para>
263 <indexterm zone="ruby bundle">
264 <primary sortas="b-bundle">bundle</primary>
265 </indexterm>
266 </listitem>
267 </varlistentry>
268
269 <varlistentry id="bundler">
270 <term><command>bundler</command></term>
271 <listitem>
272 <para>
273 manages an application's dependencies throughout it's lifecycle
274 </para>
275 <indexterm zone="ruby bundler">
276 <primary sortas="b-bundler">bundler</primary>
277 </indexterm>
278 </listitem>
279 </varlistentry>
280
281 <varlistentry id="erb">
282 <term><command>erb</command></term>
283 <listitem>
284 <para>
285 is a command line front-end for eRuby, which provides a templating
286 system for <application>Ruby</application>
287 </para>
288 <indexterm zone="ruby erb">
289 <primary sortas="b-erb">erb</primary>
290 </indexterm>
291 </listitem>
292 </varlistentry>
293
294 <varlistentry id="gem">
295 <term><command>gem</command></term>
296 <listitem>
297 <para>
298 is the command for RubyGems, which is a sophisticated package
299 manager for <application>Ruby</application>. This is similar
300 to Python's 'pip' command
301 </para>
302 <indexterm zone="ruby gem">
303 <primary sortas="b-gem">gem</primary>
304 </indexterm>
305 </listitem>
306 </varlistentry>
307
308 <varlistentry id="irb">
309 <term><command>irb</command></term>
310 <listitem>
311 <para>
312 is the interactive interface for
313 <application>Ruby</application>
314 </para>
315 <indexterm zone="ruby irb">
316 <primary sortas="b-irb">irb</primary>
317 </indexterm>
318 </listitem>
319 </varlistentry>
320
321 <varlistentry id="rake">
322 <term><command>rake</command></term>
323 <listitem>
324 <para>
325 is a make-like build utility for <application>Ruby</application>
326 </para>
327 <indexterm zone="ruby rake">
328 <primary sortas="b-rake">rake</primary>
329 </indexterm>
330 </listitem>
331 </varlistentry>
332
333 <varlistentry id="rdbg">
334 <term><command>rdbg</command></term>
335 <listitem>
336 <para>
337 is an interactive debugger for <application>Ruby</application>
338 </para>
339 <indexterm zone="ruby rdbg">
340 <primary sortas="b-rdbg">rdbg</primary>
341 </indexterm>
342 </listitem>
343 </varlistentry>
344
345 <varlistentry id="rdoc">
346 <term><command>rdoc</command></term>
347 <listitem>
348 <para>
349 generates <application>Ruby</application> documentation
350 </para>
351 <indexterm zone="ruby rdoc">
352 <primary sortas="b-rdoc">rdoc</primary>
353 </indexterm>
354 </listitem>
355 </varlistentry>
356
357 <varlistentry id="ri">
358 <term><command>ri</command></term>
359 <listitem>
360 <para>
361 displays documentation from a database on
362 <application>Ruby</application> classes, modules, and methods
363 </para>
364 <indexterm zone="ruby ri">
365 <primary sortas="b-ri">ri</primary>
366 </indexterm>
367 </listitem>
368 </varlistentry>
369
370 <varlistentry id="ruby-prog">
371 <term><command>ruby</command></term>
372 <listitem>
373 <para>
374 is an interpreted scripting language for quick
375 and easy object-oriented programming
376 </para>
377 <indexterm zone="ruby ruby-prog">
378 <primary sortas="b-ruby">ruby</primary>
379 </indexterm>
380 </listitem>
381 </varlistentry>
382
383 <varlistentry id="libruby">
384 <term><filename role="libraryfile">libruby.so</filename></term>
385 <listitem>
386 <para>
387 contains the API functions required by <application>Ruby</application>
388 </para>
389 <indexterm zone="ruby libruby">
390 <primary sortas="c-libruby">libruby.so</primary>
391 </indexterm>
392 </listitem>
393 </varlistentry>
394
395 </variablelist>
396
397 </sect2>
398
399</sect1>
Note: See TracBrowser for help on using the repository browser.