Compare commits
412 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
deb89378b5 | ||
|
|
ed5fc66af7 | ||
|
|
95c21e5775 | ||
|
|
916dd3e4c2 | ||
|
|
bc07cae127 | ||
|
|
4c3cde9ed2 | ||
|
|
5d8c8b3fb5 | ||
|
|
c670682a97 | ||
|
|
4034e3e02c | ||
|
|
9dc850b911 | ||
|
|
6b81f1b80f | ||
|
|
aa9dd7be5f | ||
|
|
97eeae3d75 | ||
|
|
f50637ef39 | ||
|
|
84309be01e | ||
|
|
563fb688b3 | ||
|
|
1aeb02030c | ||
|
|
43d2363c1e | ||
|
|
e7395a7d22 | ||
|
|
a38fdce3da | ||
|
|
da900b8789 |
||
|
|
3541190791 | ||
|
|
7262ed4066 | ||
|
|
e3690ac430 | ||
|
|
5f10b7c93e | ||
|
|
74a9a07c69 | ||
|
|
7b420c76e8 | ||
|
|
4ccd95e387 | ||
|
|
037b0a34f2 | ||
|
|
da4a9f4b88 | ||
|
|
186be743be | ||
|
|
19423ee8d9 | ||
|
|
f241947e6c | ||
|
|
8daf7ccb72 | ||
|
|
b7e197fb88 | ||
|
|
6bed1e3bd5 | ||
|
|
2e6762df8d | ||
|
|
c4e686c716 | ||
|
|
f11fa48d8f | ||
|
|
bd711c9036 | ||
|
|
fde0aac8f9 | ||
|
|
0d81c8b95a | ||
|
|
d03ac3403a | ||
|
|
55661b64e9 | ||
|
|
ca13a51589 | ||
|
|
7724c2d703 | ||
|
|
42b0e43e5a | ||
|
|
c913e4326c | ||
|
|
93638d9e58 | ||
|
|
677893973e | ||
|
|
d9051618e3 | ||
|
|
ff5301a5f3 | ||
|
|
c649282efb | ||
|
|
4ff7de7007 | ||
|
|
5da6a15c57 | ||
|
|
a34f33bc50 | ||
|
|
3008410463 | ||
|
|
ac77c2a354 | ||
|
|
aa7e8debee | ||
|
|
066e0a3d6d | ||
|
|
308b2c0ab2 | ||
|
|
05a6c9c8f3 | ||
|
|
f195b6a3c8 | ||
|
|
321ed23c22 | ||
|
|
ba498ce48c | ||
|
|
8d5b538747 | ||
|
|
5fd12c42e7 | ||
|
|
d432c95c15 | ||
|
|
393e74f1e0 | ||
|
|
1f35109c5e | ||
|
|
64dc6dd3e4 | ||
|
|
814eaf5324 | ||
|
|
da8822cd33 | ||
|
|
9e39fd242a | ||
|
|
31778c5ebd | ||
|
|
8f9fe41ba6 | ||
|
|
59f62d6bc9 | ||
|
|
65acd291de | ||
|
|
9c8400d99a | ||
|
|
d46ef9bbf3 | ||
|
|
ff0f48acd6 | ||
|
|
22597b6039 | ||
|
|
c4043528c1 | ||
|
|
be9fcec798 | ||
|
|
f2899ee090 | ||
|
|
25858e766a | ||
|
|
f8ef5964d0 | ||
|
|
b1748af87f | ||
|
|
2cdb051166 | ||
|
|
9819174c8d | ||
|
|
649a6e3083 | ||
|
|
1d0c071aeb | ||
|
|
79d75fdcdd | ||
|
|
588a4ae9f0 | ||
|
|
c2026da175 | ||
|
|
3f106c188e | ||
|
|
bf921512e2 | ||
|
|
ad7f78b5c8 | ||
|
|
f93afdebdd | ||
|
|
e2951e6856 | ||
|
|
ca94aff023 | ||
|
|
b7b5473796 | ||
|
|
2c91b113bb | ||
|
|
03e8cec9fe | ||
|
|
c2061af620 | ||
|
|
09d0e79c2b | ||
|
|
22d91a0910 | ||
|
|
796a198176 | ||
|
|
aee17a2180 | ||
|
|
df8cc89df4 | ||
|
|
9e774fba70 | ||
|
|
74983bcd56 | ||
|
|
67d5a7b3c6 | ||
|
|
204bab4f7f | ||
|
|
8157cd4820 | ||
|
|
1ff09bed2b | ||
|
|
b0ce095f6d | ||
|
|
a51a61214c | ||
|
|
2da7a540e7 | ||
|
|
a0bcb33eaa | ||
|
|
a28556f684 | ||
|
|
b6d9b2acd1 | ||
|
|
46ee70614f | ||
|
|
b24ebf5ec1 | ||
|
|
08a1249d7f | ||
|
|
5d3688479a | ||
|
|
dbe75d1cb5 | ||
|
|
d584a5bfb3 | ||
|
|
c4f8814a93 | ||
|
|
78a9fbc351 | ||
|
|
d75a6c86f9 | ||
|
|
11a27766bd | ||
|
|
1170d812fe | ||
|
|
089c0a1928 | ||
|
|
63065e7db7 | ||
|
|
6b2ff68f33 | ||
|
|
e6a3dff909 | ||
|
|
a09dbbec17 | ||
|
|
882d68b75c | ||
|
|
26bc979446 | ||
|
|
fbaee91204 | ||
|
|
1b641ac57f | ||
|
|
9e656cf658 | ||
|
|
fd8c8ee765 | ||
|
|
4108f57be7 | ||
|
|
b65d1d3090 | ||
|
|
303495d1bf | ||
|
|
dae90ef93d | ||
|
|
cb0039f53c | ||
|
|
9b149e59e4 | ||
|
|
2bc8b3d5d5 | ||
|
|
3210f66fb1 | ||
|
|
35f28c9a68 | ||
|
|
b7229da165 | ||
|
|
b3e2d7fc60 | ||
|
|
c7513cd67c | ||
|
|
cdeff9e00a | ||
|
|
1e72602218 | ||
|
|
0256efd992 | ||
|
|
64975231d1 | ||
|
|
f63d6e5cd4 | ||
|
|
0e7ccf2b47 | ||
|
|
071cbd0906 | ||
|
|
fcc584306b | ||
|
|
9a03f61609 | ||
|
|
15d70f8b4a | ||
|
|
f11a9b4fe3 | ||
|
|
2a352348bd | ||
|
|
986dc48123 | ||
|
|
be9961f6d0 | ||
|
|
946f8b8693 | ||
|
|
8b746d13cf | ||
|
|
78c9d9e324 | ||
|
|
d471fb8f62 | ||
|
|
4979be53ac | ||
|
|
d461276d48 | ||
|
|
064a0517d6 | ||
|
|
bc5cb6094e | ||
|
|
0963ae5102 | ||
|
|
29816481d1 | ||
|
|
26bc2eb795 | ||
|
|
102ff85d98 | ||
|
|
50345c3ee4 | ||
|
|
fb50c77241 | ||
|
|
ca69f778a9 | ||
|
|
838cca0381 | ||
|
|
baf046a6a4 | ||
|
|
c63e907e87 | ||
|
|
e5cef5e271 | ||
|
|
759d6796c6 | ||
|
|
a9b3ba531f | ||
|
|
f2d727806b | ||
|
|
79683d7d62 | ||
|
|
40937c8a7a | ||
|
|
40610a988c | ||
|
|
dde320d13d | ||
|
|
26cfdf277e | ||
|
|
345ce0e5b8 | ||
|
|
197c02993b | ||
|
|
bb318e2964 | ||
|
|
8454ff1601 | ||
|
|
3696d7be37 | ||
|
|
04b63f48ea | ||
|
|
fe3a1dd604 | ||
|
|
050a503e16 | ||
|
|
423327ef48 | ||
|
|
13a1b3e907 | ||
|
|
1cc2a497d3 | ||
|
|
ed790644ea | ||
|
|
ea106d15b2 | ||
|
|
e38302eeb1 | ||
|
|
395ef05d65 | ||
|
|
9d08846cc7 | ||
|
|
5aa32e278d | ||
|
|
f4c0ae4dea | ||
|
|
392287d18b | ||
|
|
a889754fa2 | ||
|
|
f3953123c0 | ||
|
|
17f23f30d6 | ||
|
|
bc094d8811 | ||
|
|
b610699f35 | ||
|
|
1e60df6dc1 | ||
|
|
bb1cbacab5 | ||
|
|
d66ece5f5d | ||
|
|
0c8cdc456b | ||
|
|
bb26a282aa |
||
|
|
2506a2faa2 | ||
|
|
c80ecd9db9 | ||
|
|
5dcc35c709 | ||
|
|
7fa10a167d | ||
|
|
5bf57b1504 | ||
|
|
32488add5b | ||
|
|
7c66ce151d | ||
|
|
d5e84a533c | ||
|
|
e91d1127db | ||
|
|
b19096d798 | ||
|
|
ec97a0708b | ||
|
|
936827a34b | ||
|
|
91a9a89fab | ||
|
|
ab0834da77 | ||
|
|
9fef07981c |
||
|
|
7c494340f9 | ||
|
|
ae55d5722d | ||
|
|
9f569993f0 | ||
|
|
8ef3cc0ed4 | ||
|
|
561c76845a | ||
|
|
bee5851fb0 | ||
|
|
b0274e84e7 | ||
|
|
ecbc53b331 | ||
|
|
f571c557e2 | ||
|
|
793a1c3612 | ||
|
|
dcd292bb5a | ||
|
|
39d1e08dc7 | ||
|
|
8326796861 | ||
|
|
ae56326d8d | ||
|
|
d452ecad11 | ||
|
|
3733c3cf5d | ||
|
|
7395ebdf85 | ||
|
|
a3207ebb16 | ||
|
|
43a2b51955 | ||
|
|
e3ea6478d9 | ||
|
|
6ff9776922 | ||
|
|
d074784f33 | ||
|
|
faaad7b7c5 | ||
|
|
2134f5703e | ||
|
|
637f46e17d | ||
|
|
75ea12f0a3 | ||
|
|
b15350c441 | ||
|
|
5624addc78 | ||
|
|
72c55bdcb2 | ||
|
|
f49edf212f | ||
|
|
138a8a192c |
||
|
|
10a4e45e89 | ||
|
|
b1741da5b7 | ||
|
|
9436f5bc42 | ||
|
|
45b099cf05 | ||
|
|
c2db65dbc7 | ||
|
|
ad05a88747 | ||
|
|
150d4f5dc0 | ||
|
|
9bc7bec4a7 | ||
|
|
9f971e4cf2 | ||
|
|
26252866ff | ||
|
|
6beb732b5c | ||
|
|
535c42e96c | ||
|
|
c9dec05f47 | ||
|
|
ad2b787fea | ||
|
|
30f6c6490e | ||
|
|
7e690d1b1d | ||
|
|
6e9956416e | ||
|
|
fde2a68e73 | ||
|
|
5c42276905 | ||
|
|
4571daf34e | ||
|
|
101851f2d3 | ||
|
|
8d50b10ccb | ||
|
|
3a2607aa17 | ||
|
|
c467007dbb | ||
|
|
415daf8d3b | ||
|
|
f540c43dae | ||
|
|
277ae4829a | ||
|
|
ab16bf76ef | ||
|
|
9a0bd11655 | ||
|
|
b04585e064 | ||
|
|
3130f89edd | ||
|
|
d14e3f780f | ||
|
|
b3e0a8c314 | ||
|
|
324c2d071e | ||
|
|
0a64e4b921 | ||
|
|
2221c5b843 | ||
|
|
2e9e67ab5b | ||
|
|
4fb1d9c02d | ||
|
|
dbf79976ab | ||
|
|
c4c93c1113 | ||
|
|
46551f13fc | ||
|
|
7684b6800d | ||
|
|
b1466a4c8f | ||
|
|
cad4c2ab27 | ||
|
|
f2347fa378 | ||
|
|
dd6ce9ce9c | ||
|
|
2414227a75 | ||
|
|
55ecc214e1 | ||
|
|
5ed2c68dc5 | ||
|
|
16c9e1e6b0 | ||
|
|
4c12d4e704 | ||
|
|
e467536081 | ||
|
|
b3ffc2fef6 | ||
|
|
e4e06c7ce8 | ||
|
|
c0513dfb8c | ||
|
|
bd75b0a7fe | ||
|
|
8e1e241814 | ||
|
|
b945bce4cb | ||
|
|
693a96cb40 | ||
|
|
d954989b45 | ||
|
|
3131d89fde | ||
|
|
3e4eba9070 | ||
|
|
4e3eb75037 | ||
|
|
e3316c21a0 | ||
|
|
55367be78b | ||
|
|
05eb8b6a78 | ||
|
|
b9da2e689a | ||
|
|
a0a4c7571b | ||
|
|
b92051c2fd | ||
|
|
4612226c7e | ||
|
|
4a07d55953 | ||
|
|
3db4917d37 | ||
|
|
1af12992cf | ||
|
|
203ef6c1f7 | ||
|
|
46f541b5e6 | ||
|
|
351bd6cd02 | ||
|
|
c8dee5c194 | ||
|
|
329ba54c7e | ||
|
|
76bbf0976d | ||
|
|
c5abc51c7c | ||
|
|
8dd648e754 | ||
|
|
11e59a1355 | ||
|
|
9195984ef3 | ||
|
|
de383e7548 | ||
|
|
1610d07dcd | ||
|
|
79beb34d80 | ||
|
|
4375d5ca30 | ||
|
|
2400b2d574 | ||
|
|
61fd310e63 | ||
|
|
1835dddc24 | ||
|
|
8e2921fd5a | ||
|
|
b9d9d0c37a | ||
|
|
629648da07 | ||
|
|
c31c7edb69 | ||
|
|
96581d5c96 | ||
|
|
ce47215a63 | ||
|
|
d09c32278d | ||
|
|
098cd8787a | ||
|
|
efdf386e31 | ||
|
|
0a113b08ab | ||
|
|
eab15b0506 | ||
|
|
f49b015f1f | ||
|
|
3f594feabd | ||
|
|
a7c9cd0323 | ||
|
|
5ef051104a | ||
|
|
0d5d7e9999 | ||
|
|
699faa5e25 | ||
|
|
df08120417 | ||
|
|
724ffdbb53 | ||
|
|
b038223eae | ||
|
|
bbb52ff9a6 | ||
|
|
9fc3f49bd6 | ||
|
|
7347c8fd58 | ||
|
|
04104b76f3 | ||
|
|
199081935e | ||
|
|
c4c64c841c | ||
|
|
e11dee8544 | ||
|
|
86a8f5cf5a | ||
|
|
19ff4992f3 | ||
|
|
02ee7904a4 | ||
|
|
0f37fb5c2c | ||
|
|
97430c9392 | ||
|
|
8fc18e146b | ||
|
|
16f19fee74 | ||
|
|
7b70466c53 | ||
|
|
f8855bc5dd | ||
|
|
639617a0ed | ||
|
|
e7fbfad6e4 | ||
|
|
641dc00b5f | ||
|
|
2b7dccf61f | ||
|
|
0492f50518 | ||
|
|
f84b34dea7 | ||
|
|
453497595c | ||
|
|
360d2b99cd | ||
|
|
ef80e1fa9d | ||
|
|
eac4c415ba | ||
|
|
4f8b7ad60d | ||
|
|
8f30dbcc0b | ||
|
|
835bcc89f9 | ||
|
|
a03b2d278b |
44 changed files with 4249 additions and 2118 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
1
|
||||||
29
.gitignore
vendored
29
.gitignore
vendored
|
|
@ -1,23 +1,6 @@
|
||||||
ruby-1.8.7-p299.tar.bz2
|
/*/
|
||||||
ruby-rev415a3ef9ab82c65a7abc-ext_tk.tar.gz
|
/ruby-*.tar.xz
|
||||||
/ruby-1.8.7-p302.tar.bz2
|
/rexml-*.gem
|
||||||
/ruby-rev54f344095916f83a2755a177f94e65a1c390a612-ext_tk.tar.gz
|
/*.rpm
|
||||||
/ruby-1.8.7-p330.tar.bz2
|
|
||||||
/ruby-revf30eca26639ce538339bc488c7ed1fd397b0c13f-ext_tk.tar.gz
|
!/plans/
|
||||||
/ruby-1.8.7-p334.tar.bz2
|
|
||||||
/ruby-1.8.7-p352.tar.bz2
|
|
||||||
/ruby-revc2dfaa7d40531aef3706bcc16f38178b0c6633ee-ext_tk.tar.gz
|
|
||||||
/ruby-1.8.7-p357.tar.bz2
|
|
||||||
/ruby-1.9.3-p0.tar.gz
|
|
||||||
/ruby-1.9.3-p125.tar.gz
|
|
||||||
/ruby-1.9.3-p194.tar.gz
|
|
||||||
/ruby-1.9.3-p286.tar.gz
|
|
||||||
/ruby-1.9.3-p327.tar.gz
|
|
||||||
/ruby-1.9.3-p362.tar.gz
|
|
||||||
/ruby-1.9.3-p374.tar.gz
|
|
||||||
/ruby-1.9.3-p385.tar.gz
|
|
||||||
/ruby-2.0.0-r39387.tar.gz
|
|
||||||
/ruby-2.0.0-p0.tar.gz
|
|
||||||
/ruby-2.0.0-p195.tar.bz2
|
|
||||||
/ruby-2.0.0-p247.tar.bz2
|
|
||||||
/ruby-2.0.0-p353.tar.bz2
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
begin
|
|
||||||
require 'abrt'
|
|
||||||
rescue LoadError
|
|
||||||
end
|
|
||||||
46
config.h
46
config.h
|
|
@ -1,46 +0,0 @@
|
||||||
/*
|
|
||||||
* This config.h is a wrapper include file for the original ruby/config.h,
|
|
||||||
* which has been renamed to ruby/config-<arch>.h. There are conflicts for the
|
|
||||||
* original ruby/config.h on multilib systems, which result from arch-specific
|
|
||||||
* configuration options. Please do not use the arch-specific file directly.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This wrapped is addpated from SDL's one:
|
|
||||||
* http://pkgs.fedoraproject.org/cgit/SDL.git/tree/SDL_config.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef ruby_config_wrapper_h
|
|
||||||
#error "ruby_config_wrapper_h should not be defined!"
|
|
||||||
#endif
|
|
||||||
#define ruby_config_wrapper_h
|
|
||||||
|
|
||||||
#if defined(__i386__)
|
|
||||||
#include "ruby/config-i386.h"
|
|
||||||
#elif defined(__ia64__)
|
|
||||||
#include "ruby/config-ia64.h"
|
|
||||||
#elif defined(__powerpc64__)
|
|
||||||
#include "ruby/config-ppc64.h"
|
|
||||||
#elif defined(__powerpc__)
|
|
||||||
#include "ruby/config-ppc.h"
|
|
||||||
#elif defined(__s390x__)
|
|
||||||
#include "ruby/config-s390x.h"
|
|
||||||
#elif defined(__s390__)
|
|
||||||
#include "ruby/config-s390.h"
|
|
||||||
#elif defined(__x86_64__)
|
|
||||||
#include "ruby/config-x86_64.h"
|
|
||||||
#elif defined(__arm__)
|
|
||||||
#include "ruby/config-arm.h"
|
|
||||||
#elif defined(__alpha__)
|
|
||||||
#include "ruby/config-alpha.h"
|
|
||||||
#elif defined(__sparc__) && defined (__arch64__)
|
|
||||||
#include "ruby/config-sparc64.h"
|
|
||||||
#elif defined(__sparc__)
|
|
||||||
#include "ruby/config-sparc.h"
|
|
||||||
#elif defined(__aarch64__)
|
|
||||||
#include "ruby/config-aarch64.h"
|
|
||||||
#else
|
|
||||||
#error "The ruby-devel package is not usable with the architecture."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef ruby_config_wrapper_h
|
|
||||||
232
macros.rubygems
232
macros.rubygems
|
|
@ -2,36 +2,226 @@
|
||||||
%gem_dir %{_datadir}/gems
|
%gem_dir %{_datadir}/gems
|
||||||
%gem_archdir %{_libdir}/gems
|
%gem_archdir %{_libdir}/gems
|
||||||
|
|
||||||
# Common gem locations and files.
|
# %gem_prerelease - Provides prerelease string if available.
|
||||||
%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}
|
#
|
||||||
%gem_extdir_mri %{gem_archdir}/%{name}/%{gem_name}-%{version}
|
# Usage: %gem_prerelease [custom_gem_name]
|
||||||
%gem_libdir %{gem_instdir}/lib
|
#
|
||||||
%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}.gem
|
# If avilable, prints prerelease string, which is a %prerelease macro by
|
||||||
%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}.gemspec
|
# default. When [custom_gem_name] is provided, the custom_gem_name is used to
|
||||||
%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}
|
# derive %custom_gem_name_prerelease macro, which can be predefined.
|
||||||
|
#
|
||||||
|
# Please note that for the prerelease macros are the dashes in
|
||||||
|
# [custom_gem_name] replaced by underscores.
|
||||||
|
#
|
||||||
|
%gem_prerelease() %{?1:%{expand:%%{?%{gsub %{1} - _}_prerelease}}}%{!?1:%{?prerelease}}
|
||||||
|
|
||||||
# Install gem into appropriate directory.
|
# %gem_version - Provides version string (including prerelease if available).
|
||||||
# -n<gem_file> Overrides gem file name for installation.
|
#
|
||||||
# -d<install_dir> Set installation directory.
|
# Usage: %gem_version [custom_gem_name]
|
||||||
|
#
|
||||||
|
# Prints version (including prerelease string), that is %version macro by
|
||||||
|
# default. When [custom_gem_name] is provided, the custom_gem_name is used to
|
||||||
|
# derive %custom_gem_name_version macro which needs to be predefined.
|
||||||
|
#
|
||||||
|
# Please note that for the version macros are the dashes in [custom_gem_name]
|
||||||
|
# replaced by underscores.
|
||||||
|
#
|
||||||
|
%gem_version() %{?1:%{expand:%{%{gsub %{1} - _}_version}}}%{!?1:%{version}}%{gem_prerelease %{?1}}
|
||||||
|
|
||||||
|
# %gem_name_version - Provides gem_name-version string.
|
||||||
|
#
|
||||||
|
# Usage: %gem_name_version [custom_gem_name]
|
||||||
|
#
|
||||||
|
# Prints gem_name-version string, by default joining %gem_name, %version and
|
||||||
|
# %prerelease macros. When [custom_gem_name] is provided, the
|
||||||
|
# custom_gem_name is joined with version as provided by %gem_version macro.
|
||||||
|
#
|
||||||
|
%gem_name_version() %{?1}%{!?1:%{gem_name}}-%{gem_version %{?1}}
|
||||||
|
|
||||||
|
# Common gem locations and files.
|
||||||
|
#
|
||||||
|
# These macros leverages %gem_name_version macro and accepts custom gem_name.
|
||||||
|
#
|
||||||
|
# -d Use default gem install location.
|
||||||
|
#
|
||||||
|
%gem_instdir() %{gem_dir}/gems/%{gem_name_version %{?1}}
|
||||||
|
%gem_extdir_mri() %{gem_archdir}/%{name}/%{gem_name_version %{?1}}
|
||||||
|
%gem_libdir() %{gem_instdir %{?1}}/lib
|
||||||
|
%gem_cache() %{gem_dir}/cache/%{gem_name_version %{?1}}.gem
|
||||||
|
%gem_spec(d) %{gem_dir}/specifications%{?-d:/default}/%{gem_name_version %{?1}}.gemspec
|
||||||
|
%gem_docdir() %{gem_dir}/doc/%{gem_name_version %{?1}}
|
||||||
|
%gem_plugin() %{gem_dir}/plugins/%{?1}%{!?1:%{gem_name}}_plugin.rb
|
||||||
|
|
||||||
|
|
||||||
|
# %gem_install - Install gem into appropriate directory.
|
||||||
|
#
|
||||||
|
# Usage: %gem_install [options]
|
||||||
|
#
|
||||||
|
# -n <gem_file> Overrides gem file name for installation.
|
||||||
|
# -d <install_dir> Set installation directory.
|
||||||
|
#
|
||||||
%gem_install(d:n:) \
|
%gem_install(d:n:) \
|
||||||
mkdir -p %{-d*}%{!?-d:.%{gem_dir}} \
|
mkdir -p %{-d*}%{!?-d:.%{gem_dir}} \
|
||||||
\
|
\
|
||||||
CONFIGURE_ARGS="--with-cflags='%{optflags}' $CONFIGURE_ARGS" \\\
|
CONFIGURE_ARGS="--with-cflags='%{optflags}' --with-cxxflags='%{optflags}' --with-ldflags='%{build_ldflags}' $CONFIGURE_ARGS" \\\
|
||||||
gem install \\\
|
gem install \\\
|
||||||
-V \\\
|
-V \\\
|
||||||
--local \\\
|
--local \\\
|
||||||
--install-dir %{-d*}%{!?-d:.%{gem_dir}} \\\
|
--build-root %{-d*}%{!?-d:.} \\\
|
||||||
--bindir .%{_bindir} \\\
|
|
||||||
--force \\\
|
--force \\\
|
||||||
--document=ri,rdoc \\\
|
--document=ri,rdoc \\\
|
||||||
%{-n*}%{!?-n:%{gem_name}-%{version}.gem} \
|
%{-n*}%{!?-n:%{gem_name}-%{version}%{?prerelease}.gem} \
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
# For rubygems packages we want to filter out any provides caused by private
|
|
||||||
# libs in %%{gem_archdir}.
|
# The 'read' command in %%gemspec_* macros is not essential, but it is usefull
|
||||||
|
# to make the sript appear in build log.
|
||||||
|
|
||||||
|
|
||||||
|
# %gemspec_add_dep - Add dependency into .gemspec.
|
||||||
#
|
#
|
||||||
# Note that this must be invoked in the spec file, preferably as
|
# Usage: %gemspec_add_dep -g <gem> [options] [requirements]
|
||||||
# "%{?rubygems_default_filter}", before any %description block.
|
#
|
||||||
%rubygems_default_filter %{expand: \
|
# Add dependency named <gem> to .gemspec file. The macro adds runtime
|
||||||
%global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^%{gem_extdir_mri}/.*\\\\.so$ \
|
# dependency by default. The [requirements] argument can be used to specify
|
||||||
}
|
# the dependency constraints more precisely. It is expected to be valid Ruby
|
||||||
|
# code.
|
||||||
|
#
|
||||||
|
# -s <gemspec_file> Overrides the default .gemspec location.
|
||||||
|
# -d Add development dependecy.
|
||||||
|
#
|
||||||
|
%gemspec_add_dep(g:s:d) \
|
||||||
|
read -d '' gemspec_add_dep_script << 'EOR' || : \
|
||||||
|
gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \
|
||||||
|
\
|
||||||
|
name = '%{-g*}' \
|
||||||
|
requirements = %{*}%{!?1:nil} \
|
||||||
|
\
|
||||||
|
type = :%{!?-d:runtime}%{?-d:development} \
|
||||||
|
\
|
||||||
|
spec = Gem::Specification.load(gemspec_file) \
|
||||||
|
abort("#{gemspec_file} is not accessible.") unless spec \
|
||||||
|
\
|
||||||
|
dep = spec.dependencies.detect { |d| d.type == type && d.name == name } \
|
||||||
|
if dep \
|
||||||
|
dep.requirement.concat requirements \
|
||||||
|
else \
|
||||||
|
spec.public_send "add_#{type}_dependency", name, requirements \
|
||||||
|
end \
|
||||||
|
File.write gemspec_file, spec.to_ruby \
|
||||||
|
EOR\
|
||||||
|
echo "$gemspec_add_dep_script" | ruby \
|
||||||
|
unset -v gemspec_add_dep_script \
|
||||||
|
%{nil}
|
||||||
|
|
||||||
|
|
||||||
|
# %gemspec_remove_dep - Remove dependency from .gemspec.
|
||||||
|
#
|
||||||
|
# Usage: %gemspec_remove_dep -g <gem> [options] [requirements]
|
||||||
|
#
|
||||||
|
# Remove dependency named <gem> from .gemspec file. The macro removes runtime
|
||||||
|
# dependency by default. The [requirements] argument can be used to specify
|
||||||
|
# the dependency constraints more precisely. It is expected to be valid Ruby
|
||||||
|
# code. The macro fails if these specific requirements can't be removed.
|
||||||
|
#
|
||||||
|
# -s <gemspec_file> Overrides the default .gemspec location.
|
||||||
|
# -d Remove development dependecy.
|
||||||
|
#
|
||||||
|
%gemspec_remove_dep(g:s:d) \
|
||||||
|
read -d '' gemspec_remove_dep_script << 'EOR' || : \
|
||||||
|
gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \
|
||||||
|
\
|
||||||
|
name = '%{-g*}' \
|
||||||
|
requirements = %{*}%{!?1:nil} \
|
||||||
|
\
|
||||||
|
type = :%{!?-d:runtime}%{?-d:development} \
|
||||||
|
\
|
||||||
|
spec = Gem::Specification.load(gemspec_file) \
|
||||||
|
abort("#{gemspec_file} is not accessible.") unless spec \
|
||||||
|
\
|
||||||
|
dep = spec.dependencies.detect { |d| d.type == type && d.name == name } \
|
||||||
|
if dep \
|
||||||
|
if requirements \
|
||||||
|
requirements = Gem::Requirement.create(requirements).requirements \
|
||||||
|
requirements.each do |r| \
|
||||||
|
unless dep.requirement.requirements.reject! { |dependency_requirements| dependency_requirements == r } \
|
||||||
|
abort("Requirement '#{r.first} #{r.last}' was not possible to remove for dependency '#{dep}'!") \
|
||||||
|
end \
|
||||||
|
end \
|
||||||
|
spec.dependencies.delete dep if dep.requirement.requirements.empty? \
|
||||||
|
else \
|
||||||
|
spec.dependencies.delete dep \
|
||||||
|
end \
|
||||||
|
else \
|
||||||
|
abort("Dependency '#{name}' was not found!") \
|
||||||
|
end \
|
||||||
|
File.write gemspec_file, spec.to_ruby \
|
||||||
|
EOR\
|
||||||
|
echo "$gemspec_remove_dep_script" | ruby \
|
||||||
|
unset -v gemspec_remove_dep_script \
|
||||||
|
%{nil}
|
||||||
|
|
||||||
|
|
||||||
|
# %%gemspec_add_file - Add files to various files lists in .gemspec.
|
||||||
|
#
|
||||||
|
# Usage: %%gemspec_add_file [options] <file>
|
||||||
|
#
|
||||||
|
# Add files to .gemspec file. <file> is expected to be valid Ruby code.
|
||||||
|
# Path to file is expected. Does not check real files in any way.
|
||||||
|
# By default, `files` list is edited.
|
||||||
|
#
|
||||||
|
# -s <gemspec_file> Overrides the default .gemspec location.
|
||||||
|
# -t Edit test_files only.
|
||||||
|
# -r Edit extra_rdoc_files only.
|
||||||
|
#
|
||||||
|
%gemspec_add_file(s:tr) \
|
||||||
|
read -d '' gemspec_add_file_script << 'EOR' || : \
|
||||||
|
gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \
|
||||||
|
\
|
||||||
|
abort("gemspec_add_file: Use only one '-t' or '-r' at a time.") if "%{?-t}%{?-r}" == "-t-r" \
|
||||||
|
\
|
||||||
|
filenames = %{*}%{!?1:nil} \
|
||||||
|
filenames = Array(filenames) \
|
||||||
|
\
|
||||||
|
spec = Gem::Specification.load(gemspec_file) \
|
||||||
|
abort("#{gemspec_file} is not accessible.") unless spec \
|
||||||
|
\
|
||||||
|
spec.%{?-t:test_}%{?-r:extra_rdoc_}files += filenames \
|
||||||
|
File.write gemspec_file, spec.to_ruby \
|
||||||
|
EOR\
|
||||||
|
echo "$gemspec_add_file_script" | ruby \
|
||||||
|
unset -v gemspec_add_file_script \
|
||||||
|
%{nil}
|
||||||
|
|
||||||
|
|
||||||
|
# %%gemspec_remove_file - Remove files from various files lists in .gemspec.
|
||||||
|
#
|
||||||
|
# Usage: %%gemspec_remove_file [options] <file>
|
||||||
|
#
|
||||||
|
# Remove files from .gemspec file. <file> is expected to be valid Ruby code.
|
||||||
|
# Path to file is expected. Does not check/remove real files in any way.
|
||||||
|
# By default, `files` list is edited. File has to be removed from `test_files`
|
||||||
|
# first in order to be removable from `files`.
|
||||||
|
#
|
||||||
|
# -s <gemspec_file> Overrides the default .gemspec location.
|
||||||
|
# -t Edit test_files only.
|
||||||
|
# -r Edit extra_rdoc_files only.
|
||||||
|
#
|
||||||
|
%gemspec_remove_file(s:tr) \
|
||||||
|
read -d '' gemspec_remove_file_script << 'EOR' || : \
|
||||||
|
gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \
|
||||||
|
\
|
||||||
|
abort("gemspec_remove_file: Use only one '-t' or '-r' at a time.") if "%{?-t}%{?-r}" == "-t-r" \
|
||||||
|
\
|
||||||
|
filenames = %{*}%{!?1:nil} \
|
||||||
|
filenames = Array(filenames) \
|
||||||
|
\
|
||||||
|
spec = Gem::Specification.load(gemspec_file) \
|
||||||
|
abort("#{gemspec_file} is not accessible.") unless spec \
|
||||||
|
\
|
||||||
|
spec.%{?-t:test_}%{?-r:extra_rdoc_}files -= filenames \
|
||||||
|
File.write gemspec_file, spec.to_ruby \
|
||||||
|
EOR\
|
||||||
|
echo "$gemspec_remove_file_script" | ruby \
|
||||||
|
unset -v gemspec_remove_file_script \
|
||||||
|
%{nil}
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,38 @@ module Gem
|
||||||
# E.g. for '/usr/share/ruby', 'ruby', it returns '/usr'
|
# E.g. for '/usr/share/ruby', 'ruby', it returns '/usr'
|
||||||
|
|
||||||
def previous_but_one_dir_to(path, dir)
|
def previous_but_one_dir_to(path, dir)
|
||||||
|
return unless path
|
||||||
|
|
||||||
split_path = path.split(File::SEPARATOR)
|
split_path = path.split(File::SEPARATOR)
|
||||||
File.join(split_path.take_while { |one_dir| one_dir !~ /^#{dir}$/ }[0..-2])
|
File.join(split_path.take_while { |one_dir| one_dir !~ /^#{dir}$/ }[0..-2])
|
||||||
end
|
end
|
||||||
private :previous_but_one_dir_to
|
private :previous_but_one_dir_to
|
||||||
|
|
||||||
|
##
|
||||||
|
# Detects --install-dir option specified on command line.
|
||||||
|
|
||||||
|
def opt_install_dir?
|
||||||
|
@opt_install_dir ||= ARGV.include?('--install-dir') || ARGV.include?('-i')
|
||||||
|
end
|
||||||
|
private :opt_install_dir?
|
||||||
|
|
||||||
|
##
|
||||||
|
# Detects --build-root option specified on command line.
|
||||||
|
|
||||||
|
def opt_build_root?
|
||||||
|
@opt_build_root ||= ARGV.include?('--build-root')
|
||||||
|
end
|
||||||
|
private :opt_build_root?
|
||||||
|
|
||||||
|
##
|
||||||
|
# Tries to detect, if arguments and environment variables suggest that
|
||||||
|
# 'gem install' is executed from rpmbuild.
|
||||||
|
|
||||||
|
def rpmbuild?
|
||||||
|
@rpmbuild ||= ENV['RPM_PACKAGE_NAME'] && (opt_install_dir? || opt_build_root?)
|
||||||
|
end
|
||||||
|
private :rpmbuild?
|
||||||
|
|
||||||
##
|
##
|
||||||
# Default gems locations allowed on FHS system (/usr, /usr/share).
|
# Default gems locations allowed on FHS system (/usr, /usr/share).
|
||||||
# The locations are derived from directories specified during build
|
# The locations are derived from directories specified during build
|
||||||
|
|
@ -18,8 +45,8 @@ module Gem
|
||||||
|
|
||||||
def default_locations
|
def default_locations
|
||||||
@default_locations ||= {
|
@default_locations ||= {
|
||||||
:system => previous_but_one_dir_to(ConfigMap[:vendordir], ConfigMap[:RUBY_INSTALL_NAME]),
|
:system => previous_but_one_dir_to(RbConfig::CONFIG['vendordir'], RbConfig::CONFIG['RUBY_INSTALL_NAME']),
|
||||||
:local => previous_but_one_dir_to(ConfigMap[:sitedir], ConfigMap[:RUBY_INSTALL_NAME])
|
:local => previous_but_one_dir_to(RbConfig::CONFIG['sitedir'], RbConfig::CONFIG['RUBY_INSTALL_NAME'])
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -30,18 +57,30 @@ module Gem
|
||||||
def default_dirs
|
def default_dirs
|
||||||
@libdir ||= case RUBY_PLATFORM
|
@libdir ||= case RUBY_PLATFORM
|
||||||
when 'java'
|
when 'java'
|
||||||
ConfigMap[:datadir]
|
RbConfig::CONFIG['datadir']
|
||||||
else
|
else
|
||||||
ConfigMap[:libdir]
|
RbConfig::CONFIG['libdir']
|
||||||
end
|
end
|
||||||
|
|
||||||
@default_dirs ||= Hash[default_locations.collect do |destination, path|
|
@default_dirs ||= default_locations.inject(Hash.new) do |hash, location|
|
||||||
[destination, {
|
destination, path = location
|
||||||
:bin_dir => File.join(path, ConfigMap[:bindir].split(File::SEPARATOR).last),
|
|
||||||
:gem_dir => File.join(path, ConfigMap[:datadir].split(File::SEPARATOR).last, 'gems'),
|
hash[destination] = if path
|
||||||
:ext_dir => File.join(path, @libdir.split(File::SEPARATOR).last, 'gems')
|
{
|
||||||
}]
|
:bin_dir => File.join(path, RbConfig::CONFIG['bindir'].split(File::SEPARATOR).last),
|
||||||
end]
|
:gem_dir => File.join(path, RbConfig::CONFIG['datadir'].split(File::SEPARATOR).last, 'gems'),
|
||||||
|
:ext_dir => File.join(path, @libdir.split(File::SEPARATOR).last, 'gems')
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
:bin_dir => '',
|
||||||
|
:gem_dir => '',
|
||||||
|
:ext_dir => ''
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
hash
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
@ -49,6 +88,7 @@ module Gem
|
||||||
# warnings otherwise issued by Ruby.
|
# warnings otherwise issued by Ruby.
|
||||||
|
|
||||||
remove_method :default_dir if method_defined? :default_dir
|
remove_method :default_dir if method_defined? :default_dir
|
||||||
|
remove_method :default_specifications_dir if method_defined? :default_specifications_dir
|
||||||
remove_method :default_path if method_defined? :default_path
|
remove_method :default_path if method_defined? :default_path
|
||||||
remove_method :default_bindir if method_defined? :default_bindir
|
remove_method :default_bindir if method_defined? :default_bindir
|
||||||
remove_method :default_ext_dir_for if method_defined? :default_ext_dir_for
|
remove_method :default_ext_dir_for if method_defined? :default_ext_dir_for
|
||||||
|
|
@ -57,20 +97,35 @@ module Gem
|
||||||
# RubyGems default overrides.
|
# RubyGems default overrides.
|
||||||
|
|
||||||
def default_dir
|
def default_dir
|
||||||
if Process.uid == 0
|
if opt_build_root?
|
||||||
|
Gem.default_dirs[:system][:gem_dir]
|
||||||
|
elsif Process.uid == 0
|
||||||
Gem.default_dirs[:local][:gem_dir]
|
Gem.default_dirs[:local][:gem_dir]
|
||||||
else
|
else
|
||||||
Gem.user_dir
|
Gem.user_dir
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Path to specification files of default gems.
|
||||||
|
|
||||||
|
def default_specifications_dir
|
||||||
|
@default_specifications_dir ||= File.join(Gem.default_dirs[:system][:gem_dir], "specifications", "default")
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Default gem load path
|
||||||
|
|
||||||
def default_path
|
def default_path
|
||||||
path = default_dirs.collect {|location, paths| paths[:gem_dir]}
|
path = default_dirs.collect {|location, paths| paths[:gem_dir]}
|
||||||
path.unshift Gem.user_dir if File.exist? Gem.user_home
|
path.unshift Gem.user_dir if File.exist? Gem.user_home
|
||||||
|
path
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_bindir
|
def default_bindir
|
||||||
if Process.uid == 0
|
if opt_build_root?
|
||||||
|
Gem.default_dirs[:system][:bin_dir]
|
||||||
|
elsif Process.uid == 0
|
||||||
Gem.default_dirs[:local][:bin_dir]
|
Gem.default_dirs[:local][:bin_dir]
|
||||||
else
|
else
|
||||||
File.join [Dir.home, 'bin']
|
File.join [Dir.home, 'bin']
|
||||||
|
|
@ -78,8 +133,26 @@ module Gem
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_ext_dir_for base_dir
|
def default_ext_dir_for base_dir
|
||||||
dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
|
dir = if rpmbuild?
|
||||||
dirs && File.join(dirs.last[:ext_dir], RbConfig::CONFIG['RUBY_INSTALL_NAME'])
|
build_dir = base_dir.chomp Gem.default_dirs[:system][:gem_dir]
|
||||||
|
if build_dir != base_dir
|
||||||
|
File.join build_dir, Gem.default_dirs[:system][:ext_dir]
|
||||||
|
end
|
||||||
|
else
|
||||||
|
dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
|
||||||
|
dirs && dirs.last[:ext_dir]
|
||||||
|
end
|
||||||
|
dir && File.join(dir, RbConfig::CONFIG['RUBY_INSTALL_NAME'])
|
||||||
|
end
|
||||||
|
|
||||||
|
# This method should be available since RubyGems 2.2 until RubyGems 3.0.
|
||||||
|
# https://github.com/rubygems/rubygems/issues/749
|
||||||
|
if method_defined? :install_extension_in_lib
|
||||||
|
remove_method :install_extension_in_lib
|
||||||
|
|
||||||
|
def install_extension_in_lib
|
||||||
|
false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
6
plans/all.fmf
Normal file
6
plans/all.fmf
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
summary: Test plan with all Fedora tests
|
||||||
|
discover:
|
||||||
|
how: fmf
|
||||||
|
url: https://src.fedoraproject.org/tests/ruby.git
|
||||||
|
execute:
|
||||||
|
how: tmt
|
||||||
28
rdoc-pr1531-fix-mutilple-document-installation.patch
Normal file
28
rdoc-pr1531-fix-mutilple-document-installation.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
From 994ee4c17fb8c217ab0335df55620c6bdb5d5cbe Mon Sep 17 00:00:00 2001
|
||||||
|
From: tompng <tomoyapenguin@gmail.com>
|
||||||
|
Date: Fri, 26 Dec 2025 04:57:12 +0900
|
||||||
|
Subject: [PATCH] Fix comment_location for merged ClassModule
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/rdoc/code_object/class_module.rb | 7 ++++++-
|
||||||
|
test/rdoc/code_object/class_module_test.rb | 6 ++++++
|
||||||
|
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/rdoc/code_object/class_module.rb b/lib/rdoc/code_object/class_module.rb
|
||||||
|
index b6bed352a2..d7ee36f950 100644
|
||||||
|
--- a/lib/rdoc/code_object/class_module.rb
|
||||||
|
+++ b/lib/rdoc/code_object/class_module.rb
|
||||||
|
@@ -477,7 +477,12 @@ def merge(class_module)
|
||||||
|
document = document.merge other_document
|
||||||
|
|
||||||
|
@comment = RDoc::Comment.from_document(document)
|
||||||
|
- @comment_location = document
|
||||||
|
+
|
||||||
|
+ @comment_location = if document.parts.first.is_a?(RDoc::Markup::Document)
|
||||||
|
+ document.parts.map { |doc| [doc, doc.file] }
|
||||||
|
+ else
|
||||||
|
+ [[document, document.file]]
|
||||||
|
+ end
|
||||||
|
end
|
||||||
|
|
||||||
|
cm = class_module
|
||||||
166
rpm_test_helper.rb
Normal file
166
rpm_test_helper.rb
Normal file
|
|
@ -0,0 +1,166 @@
|
||||||
|
require 'tmpdir'
|
||||||
|
require 'tempfile'
|
||||||
|
require 'fileutils'
|
||||||
|
# Available in Ruby upstream sources under tool/lib/envutil.rb
|
||||||
|
# Required for finding and setting up the built ruby binary.
|
||||||
|
require 'envutil'
|
||||||
|
|
||||||
|
module RPMTestHelper
|
||||||
|
def setup
|
||||||
|
@tmpdir = Dir.mktmpdir
|
||||||
|
@tempfiles = []
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
@tempfiles.each do |file|
|
||||||
|
file.close
|
||||||
|
file.unlink
|
||||||
|
end
|
||||||
|
|
||||||
|
FileUtils.rmtree(@tmpdir)
|
||||||
|
end
|
||||||
|
|
||||||
|
GENERATOR_SCRIPT = ENV['GENERATOR_SCRIPT'].clone.freeze
|
||||||
|
if GENERATOR_SCRIPT.nil? || GENERATOR_SCRIPT == ''
|
||||||
|
raise "GENERATOR_SCRIPT is not specified." \
|
||||||
|
"Specify the ENV variable with absolute path to the generator."
|
||||||
|
end
|
||||||
|
|
||||||
|
Dependency = Struct.new('Dependency', :name, :requirements) do
|
||||||
|
def to_rpm_str
|
||||||
|
"rubygem(#{self.name})"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def make_gemspec(gem_info)
|
||||||
|
file = Tempfile.new('req_gemspec', @tmpdir)
|
||||||
|
# Fake gemspec with enough to pass most checks
|
||||||
|
# Rubygems uses to validate the format.
|
||||||
|
gemspec_contents = <<~EOF
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
# stub: #{gem_info.name} #{gem_info.version} ruby lib
|
||||||
|
|
||||||
|
Gem::Specification.new do |s|
|
||||||
|
s.name = "#{gem_info.name}".freeze
|
||||||
|
s.version = "#{gem_info.version}"
|
||||||
|
|
||||||
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
||||||
|
s.require_paths = ["lib".freeze]
|
||||||
|
s.authors = ["John Doe".freeze]
|
||||||
|
s.bindir = "bin".freeze
|
||||||
|
s.date = "2023-12-15"
|
||||||
|
s.description = "Fake gemspec helper for testing Rubygem Generators".freeze
|
||||||
|
s.email = ["example@example.com".freeze]
|
||||||
|
s.files = ["LICENSE.txt".freeze, "lib/#{gem_info.name}.rb".freeze, "#{gem_info.name}.gemspec".freeze]
|
||||||
|
s.homepage = "https://pkgs.fedoraproject.org/rpms/ruby".freeze
|
||||||
|
s.licenses = ["MIT".freeze]
|
||||||
|
s.required_ruby_version = Gem::Requirement.new(">= 2.5.0".freeze)
|
||||||
|
s.rubygems_version = "3.3.5".freeze
|
||||||
|
s.summary = "Fake gemspec for testing Rubygem Generators".freeze
|
||||||
|
|
||||||
|
if s.respond_to? :specification_version then
|
||||||
|
s.specification_version = 4
|
||||||
|
end
|
||||||
|
|
||||||
|
if s.respond_to? :add_runtime_dependency then
|
||||||
|
#{gem_info.gemspec_runtime_dep_str}
|
||||||
|
else
|
||||||
|
#{gem_info.gemspec_dep_str}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
EOF
|
||||||
|
|
||||||
|
file.write gemspec_contents
|
||||||
|
file.rewind
|
||||||
|
@tempfiles << file
|
||||||
|
file
|
||||||
|
end
|
||||||
|
|
||||||
|
# Caller is expected to close subprocess stdin via #close_write
|
||||||
|
# in order to let subprocess proceed if the process is reading
|
||||||
|
# from STDIN in a loop.
|
||||||
|
def rb_subprocess(*args)
|
||||||
|
args = [GENERATOR_SCRIPT] if args.empty?
|
||||||
|
ruby = EnvUtil.rubybin
|
||||||
|
f = IO.popen([ruby] + args, 'r+') #, external_encoding: external_encoding)
|
||||||
|
yield(f)
|
||||||
|
ensure
|
||||||
|
f.close unless !f || f.closed?
|
||||||
|
end
|
||||||
|
|
||||||
|
def run_generator_single_file(gem_info)
|
||||||
|
lines = []
|
||||||
|
gemspec_f = make_gemspec(gem_info)
|
||||||
|
|
||||||
|
rb_subprocess do |io|
|
||||||
|
io.write gemspec_f.path
|
||||||
|
io.close_write
|
||||||
|
lines = io.readlines
|
||||||
|
end
|
||||||
|
|
||||||
|
lines
|
||||||
|
end
|
||||||
|
|
||||||
|
def helper_rubygems_dependency
|
||||||
|
"ruby(rubygems)"
|
||||||
|
end
|
||||||
|
|
||||||
|
class GemInfo
|
||||||
|
attr_accessor :name, :version, :dependencies
|
||||||
|
|
||||||
|
def initialize(name: 'foo', version: '1.2.3', dependencies: [])
|
||||||
|
@name = name
|
||||||
|
@version = version
|
||||||
|
@dependencies = dependencies
|
||||||
|
end
|
||||||
|
|
||||||
|
def dependencies=(other)
|
||||||
|
raise ArgumentError, "#{self.class.name}##{__method__.to_s}: Expected array of `Dependency' elements" \
|
||||||
|
unless other.is_a?(Array) && other.all? { |elem| elem.respond_to?(:name) && elem.respond_to?(:requirements) }
|
||||||
|
|
||||||
|
@dependencies = other
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_rpm_str
|
||||||
|
"rubygem(#{self.name})"
|
||||||
|
end
|
||||||
|
|
||||||
|
def gemspec_dep_str
|
||||||
|
return '' if self.dependencies.nil? || self.dependencies.empty?
|
||||||
|
@dependencies.inject("") do |memo, dep|
|
||||||
|
memo += if dep.requirements && !dep.requirements.empty?
|
||||||
|
%Q|s.add_dependency(%q<#{dep.name}>.freeze, #{handle_dep_requirements(dep.requirements)})|
|
||||||
|
else
|
||||||
|
%Q|s.add_dependency(%q<#{dep.name}>.freeze)|
|
||||||
|
end
|
||||||
|
|
||||||
|
memo += "\n"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def gemspec_runtime_dep_str
|
||||||
|
return '' if self.dependencies.nil? || self.dependencies.empty?
|
||||||
|
|
||||||
|
@dependencies.inject("") do |memo, dep|
|
||||||
|
memo += if dep.requirements && !dep.requirements.empty?
|
||||||
|
%Q|s.add_runtime_dependency(%q<#{dep.name}>.freeze, #{handle_dep_requirements(dep.requirements)})|
|
||||||
|
else
|
||||||
|
%Q|s.add_runtime_dependency(%q<#{dep.name}>.freeze)|
|
||||||
|
end
|
||||||
|
|
||||||
|
memo += "\n"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def handle_dep_requirements(reqs)
|
||||||
|
raise ArgumentError, "#{self.class.name}##{__method__.to_s}: Reqs must be an array." \
|
||||||
|
unless reqs.is_a? Array
|
||||||
|
raise ArgumentError, "#{self.class.name}##{__method__.to_s}: Reqs must not be empty for this method." \
|
||||||
|
if reqs.empty?
|
||||||
|
|
||||||
|
'[ "' + reqs.join('", "') + '" ]'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
From 796aa193a0e01f3035361f045ac66486d71f608a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Mon, 19 Nov 2012 14:37:28 +0100
|
|
||||||
Subject: [PATCH] Always use i386.
|
|
||||||
|
|
||||||
---
|
|
||||||
configure.in | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configure.in b/configure.in
|
|
||||||
index 418b0cb..d26fe5b 100644
|
|
||||||
--- a/configure.in
|
|
||||||
+++ b/configure.in
|
|
||||||
@@ -3419,6 +3419,8 @@ AC_SUBST(vendorarchdir)dnl
|
|
||||||
configure_args=$ac_configure_args
|
|
||||||
AC_SUBST(configure_args)dnl
|
|
||||||
|
|
||||||
+target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
|
||||||
+
|
|
||||||
if test "${universal_binary-no}" = yes ; then
|
|
||||||
arch="universal-${target_os}"
|
|
||||||
AC_CACHE_CHECK(whether __ARCHITECTURE__ is available, rb_cv_architecture_available,
|
|
||||||
--
|
|
||||||
1.8.1
|
|
||||||
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
From b5e9dc3683cb085aa57e7b12c35a4f21b2cc1482 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Fri, 11 Nov 2011 13:14:45 +0100
|
|
||||||
Subject: [PATCH] Allow to install RubyGems into custom location, outside of
|
|
||||||
Ruby tree.
|
|
||||||
|
|
||||||
---
|
|
||||||
configure.in | 8 ++++++++
|
|
||||||
tool/rbinstall.rb | 9 +++++++++
|
|
||||||
version.c | 4 ++++
|
|
||||||
3 files changed, 21 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configure.in b/configure.in
|
|
||||||
index 1627d12..e064b2b 100644
|
|
||||||
--- a/configure.in
|
|
||||||
+++ b/configure.in
|
|
||||||
@@ -3349,6 +3349,13 @@ AC_ARG_WITH(vendorarchdir,
|
|
||||||
[vendorarchdir=$withval],
|
|
||||||
[vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])
|
|
||||||
|
|
||||||
+AC_ARG_WITH(rubygemsdir,
|
|
||||||
+ AS_HELP_STRING([--with-rubygemsdir=DIR], [custom rubygems directory]),
|
|
||||||
+ [rubygemsdir=$withval])
|
|
||||||
+if test "$rubygemsdir" != ""; then
|
|
||||||
+ AC_DEFINE_UNQUOTED(RUBYGEMS_DIR,"$rubygemsdir" !<verconf>!)
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
unexpand_shvar rubylibprefix exec_prefix libdir RUBY_BASE_NAME
|
|
||||||
unexpand_shvar rubyarchprefix exec_prefix libdir arch RUBY_BASE_NAME archlibdir rubylibprefix
|
|
||||||
unexpand_shvar rubysitearchprefix exec_prefix libdir sitearch arch RUBY_BASE_NAME archlibdir sitearchlibdir rubylibprefix
|
|
||||||
@@ -3415,6 +3422,7 @@ AC_SUBST(sitearchdir)dnl
|
|
||||||
AC_SUBST(vendordir)dnl
|
|
||||||
AC_SUBST(vendorlibdir)dnl
|
|
||||||
AC_SUBST(vendorarchdir)dnl
|
|
||||||
+AC_SUBST(rubygemsdir)dnl
|
|
||||||
|
|
||||||
configure_args=$ac_configure_args
|
|
||||||
AC_SUBST(configure_args)dnl
|
|
||||||
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
|
|
||||||
index 92e54c6..c72dfb6 100755
|
|
||||||
--- a/tool/rbinstall.rb
|
|
||||||
+++ b/tool/rbinstall.rb
|
|
||||||
@@ -313,6 +313,7 @@ sitelibdir = CONFIG["sitelibdir"]
|
|
||||||
sitearchlibdir = CONFIG["sitearchdir"]
|
|
||||||
vendorlibdir = CONFIG["vendorlibdir"]
|
|
||||||
vendorarchlibdir = CONFIG["vendorarchdir"]
|
|
||||||
+rubygemsdir = CONFIG["rubygemsdir"]
|
|
||||||
mandir = CONFIG["mandir", true]
|
|
||||||
docdir = CONFIG["docdir", true]
|
|
||||||
configure_args = Shellwords.shellwords(CONFIG["configure_args"])
|
|
||||||
@@ -500,7 +501,15 @@ end
|
|
||||||
install?(:local, :comm, :lib) do
|
|
||||||
prepare "library scripts", rubylibdir
|
|
||||||
noinst = %w[README* *.txt *.rdoc *.gemspec]
|
|
||||||
+ noinst += %w[*ubygems.rb rubygems/ datadir.rb] if rubygemsdir
|
|
||||||
install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode)
|
|
||||||
+ if rubygemsdir
|
|
||||||
+ noinst = %w[obsolete.rb]
|
|
||||||
+ install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :mode => $data_mode)
|
|
||||||
+ install_recursive(File.join(srcdir, "lib", "rbconfig"), File.join(rubygemsdir, "rbconfig"), :no_install => noinst, :mode => $data_mode)
|
|
||||||
+ install(File.join(srcdir, "lib", "ubygems.rb"), File.join(rubygemsdir, "ubygems.rb"), :mode => $data_mode)
|
|
||||||
+ install(File.join(srcdir, "lib", "rubygems.rb"), File.join(rubygemsdir, "rubygems.rb"), :mode => $data_mode)
|
|
||||||
+ end
|
|
||||||
end
|
|
||||||
|
|
||||||
install?(:local, :arch, :lib) do
|
|
||||||
diff --git a/version.c b/version.c
|
|
||||||
index 54c4513..d76100b 100644
|
|
||||||
--- a/version.c
|
|
||||||
+++ b/version.c
|
|
||||||
@@ -99,6 +99,10 @@ const char ruby_initial_load_paths[] =
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef RUBYGEMS_DIR
|
|
||||||
+ RUBYGEMS_DIR "\0"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
RUBY_LIB "\0"
|
|
||||||
#ifdef RUBY_THINARCH
|
|
||||||
RUBY_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
From ec16398159a161fc77436b4855d489f193b2515b Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Mon, 19 Nov 2012 15:14:51 +0100
|
|
||||||
Subject: [PATCH] Verbose mkmf.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/mkmf.rb | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
|
|
||||||
index 4b6c52e..67a15ee 100644
|
|
||||||
--- a/lib/mkmf.rb
|
|
||||||
+++ b/lib/mkmf.rb
|
|
||||||
@@ -1777,7 +1777,7 @@ SRC
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
# V=0 quiet, V=1 verbose. other values don't work.
|
|
||||||
-V = 0
|
|
||||||
+V = 1
|
|
||||||
Q1 = $(V:1=)
|
|
||||||
Q = $(Q1:0=@)
|
|
||||||
ECHO1 = $(V:1=@#{CONFIG['NULLCMD']})
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
diff --git a/test/runner.rb b/test/runner.rb
|
|
||||||
index 49844c7..8e59a85 100644
|
|
||||||
--- a/test/runner.rb
|
|
||||||
+++ b/test/runner.rb
|
|
||||||
@@ -2,6 +2,8 @@ require 'rbconfig'
|
|
||||||
|
|
||||||
require 'test/unit'
|
|
||||||
|
|
||||||
+require_relative 'ruby/envutil'
|
|
||||||
+
|
|
||||||
src_testdir = File.dirname(File.realpath(__FILE__))
|
|
||||||
$LOAD_PATH << src_testdir
|
|
||||||
module Gem
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
From e943a89efd63dcfb80a0ab8d9a4db37f523f508e Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Fri, 8 Feb 2013 22:48:41 +0100
|
|
||||||
Subject: [PATCH] Prevent duplicated paths when empty version string is
|
|
||||||
configured.
|
|
||||||
|
|
||||||
---
|
|
||||||
configure.in | 3 +++
|
|
||||||
version.c | 10 ++++++++++
|
|
||||||
2 files changed, 13 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configure.in b/configure.in
|
|
||||||
index 5850bbf..7604bb8 100644
|
|
||||||
--- a/configure.in
|
|
||||||
+++ b/configure.in
|
|
||||||
@@ -3367,6 +3367,9 @@ unexpand_shvar exec_prefix prefix
|
|
||||||
if test ${RUBY_LIB_VERSION_STYLE+set}; then
|
|
||||||
AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION_STYLE, $RUBY_LIB_VERSION_STYLE !<verconf>!)
|
|
||||||
else
|
|
||||||
+ if test "x${ruby_version}" = 'x'; then
|
|
||||||
+ AC_DEFINE(RUBY_LIB_VERSION_BLANK, 1)
|
|
||||||
+ fi
|
|
||||||
AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION, [$RUBY_LIB_VERSION] !<verconf>!)
|
|
||||||
fi
|
|
||||||
AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, ${RUBY_EXEC_PREFIX})
|
|
||||||
diff --git a/version.c b/version.c
|
|
||||||
index 282960d..54c4513 100644
|
|
||||||
--- a/version.c
|
|
||||||
+++ b/version.c
|
|
||||||
@@ -39,9 +39,15 @@
|
|
||||||
#define RUBY_VENDOR_LIB RUBY_LIB_PREFIX"/vendor_ruby"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef RUBY_LIB_VERSION_BLANK
|
|
||||||
+#define RUBY_LIB RUBY_LIB_PREFIX
|
|
||||||
+#define RUBY_SITE_LIB2 RUBY_SITE_LIB
|
|
||||||
+#define RUBY_VENDOR_LIB2 RUBY_VENDOR_LIB
|
|
||||||
+#else
|
|
||||||
#define RUBY_LIB RUBY_LIB_PREFIX "/"RUBY_LIB_VERSION
|
|
||||||
#define RUBY_SITE_LIB2 RUBY_SITE_LIB "/"RUBY_LIB_VERSION
|
|
||||||
#define RUBY_VENDOR_LIB2 RUBY_VENDOR_LIB "/"RUBY_LIB_VERSION
|
|
||||||
+#endif
|
|
||||||
#ifndef RUBY_ARCH_LIB_FOR
|
|
||||||
#define RUBY_ARCH_LIB_FOR(arch) RUBY_LIB "/"arch
|
|
||||||
#endif
|
|
||||||
@@ -77,8 +83,10 @@ const char ruby_initial_load_paths[] =
|
|
||||||
RUBY_SITE_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
|
|
||||||
#endif
|
|
||||||
RUBY_SITE_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
|
|
||||||
+#ifndef RUBY_LIB_VERSION_BLANK
|
|
||||||
RUBY_SITE_LIB "\0"
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#ifndef NO_RUBY_VENDOR_LIB
|
|
||||||
RUBY_VENDOR_LIB2 "\0"
|
|
||||||
@@ -86,8 +94,10 @@ const char ruby_initial_load_paths[] =
|
|
||||||
RUBY_VENDOR_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
|
|
||||||
#endif
|
|
||||||
RUBY_VENDOR_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
|
|
||||||
+#ifndef RUBY_LIB_VERSION_BLANK
|
|
||||||
RUBY_VENDOR_LIB "\0"
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
RUBY_LIB "\0"
|
|
||||||
#ifdef RUBY_THINARCH
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
@ -1,360 +0,0 @@
|
||||||
diff -urN ruby-2.0.0-p0/tool/config.guess ruby-2.0.0-p0-aarch64/tool/config.guess
|
|
||||||
--- ruby-2.0.0-p0/tool/config.guess 2012-01-29 07:50:18.000000000 -0600
|
|
||||||
+++ ruby-2.0.0-p0-aarch64/tool/config.guess 2013-03-08 07:15:49.233030866 -0600
|
|
||||||
@@ -2,9 +2,9 @@
|
|
||||||
# Attempt to guess a canonical system name.
|
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
|
||||||
-# 2011 Free Software Foundation, Inc.
|
|
||||||
+# 2011, 2012 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
-timestamp='2011-11-11'
|
|
||||||
+timestamp='2012-09-25'
|
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by
|
|
||||||
@@ -17,9 +17,7 @@
|
|
||||||
# General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
-# along with this program; if not, write to the Free Software
|
|
||||||
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
|
||||||
-# 02110-1301, USA.
|
|
||||||
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
@@ -57,8 +55,8 @@
|
|
||||||
|
|
||||||
Originally written by Per Bothner.
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
|
||||||
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
|
|
||||||
-Software Foundation, Inc.
|
|
||||||
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
|
||||||
+Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
|
||||||
@@ -145,7 +143,7 @@
|
|
||||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
||||||
*:NetBSD:*:*)
|
|
||||||
# NetBSD (nbsd) targets should (where applicable) match one or
|
|
||||||
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
|
|
||||||
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
|
|
||||||
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
|
||||||
# switched to ELF, *-*-netbsd* would select the old
|
|
||||||
# object file format. This provides both forward
|
|
||||||
@@ -202,6 +200,10 @@
|
|
||||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
|
|
||||||
echo "${machine}-${os}${release}"
|
|
||||||
exit ;;
|
|
||||||
+ *:Bitrig:*:*)
|
|
||||||
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
|
|
||||||
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
|
|
||||||
+ exit ;;
|
|
||||||
*:OpenBSD:*:*)
|
|
||||||
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
|
||||||
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
|
|
||||||
@@ -304,7 +306,7 @@
|
|
||||||
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
|
||||||
echo arm-acorn-riscix${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
- arm:riscos:*:*|arm:RISCOS:*:*)
|
|
||||||
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
|
|
||||||
echo arm-unknown-riscos
|
|
||||||
exit ;;
|
|
||||||
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
|
|
||||||
@@ -803,6 +805,9 @@
|
|
||||||
i*:CYGWIN*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-cygwin
|
|
||||||
exit ;;
|
|
||||||
+ *:MINGW64*:*)
|
|
||||||
+ echo ${UNAME_MACHINE}-pc-mingw64
|
|
||||||
+ exit ;;
|
|
||||||
*:MINGW*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-mingw32
|
|
||||||
exit ;;
|
|
||||||
@@ -863,6 +868,13 @@
|
|
||||||
i*86:Minix:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-minix
|
|
||||||
exit ;;
|
|
||||||
+ aarch64:Linux:*:*)
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
+ exit ;;
|
|
||||||
+ aarch64_be:Linux:*:*)
|
|
||||||
+ UNAME_MACHINE=aarch64_be
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
+ exit ;;
|
|
||||||
alpha:Linux:*:*)
|
|
||||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
|
||||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
|
||||||
@@ -897,16 +909,16 @@
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
cris:Linux:*:*)
|
|
||||||
- echo cris-axis-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-axis-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
crisv32:Linux:*:*)
|
|
||||||
- echo crisv32-axis-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-axis-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
frv:Linux:*:*)
|
|
||||||
- echo frv-unknown-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
hexagon:Linux:*:*)
|
|
||||||
- echo hexagon-unknown-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
i*86:Linux:*:*)
|
|
||||||
LIBC=gnu
|
|
||||||
@@ -948,7 +960,7 @@
|
|
||||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
|
||||||
;;
|
|
||||||
or32:Linux:*:*)
|
|
||||||
- echo or32-unknown-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
padre:Linux:*:*)
|
|
||||||
echo sparc-unknown-linux-gnu
|
|
||||||
@@ -989,7 +1001,7 @@
|
|
||||||
echo ${UNAME_MACHINE}-dec-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
x86_64:Linux:*:*)
|
|
||||||
- echo x86_64-unknown-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
xtensa*:Linux:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
@@ -1196,6 +1208,9 @@
|
|
||||||
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
|
||||||
echo i586-pc-haiku
|
|
||||||
exit ;;
|
|
||||||
+ x86_64:Haiku:*:*)
|
|
||||||
+ echo x86_64-unknown-haiku
|
|
||||||
+ exit ;;
|
|
||||||
SX-4:SUPER-UX:*:*)
|
|
||||||
echo sx4-nec-superux${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
@@ -1251,7 +1266,7 @@
|
|
||||||
NEO-?:NONSTOP_KERNEL:*:*)
|
|
||||||
echo neo-tandem-nsk${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
- NSE-?:NONSTOP_KERNEL:*:*)
|
|
||||||
+ NSE-*:NONSTOP_KERNEL:*:*)
|
|
||||||
echo nse-tandem-nsk${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
NSR-?:NONSTOP_KERNEL:*:*)
|
|
||||||
@@ -1320,11 +1335,11 @@
|
|
||||||
i*86:AROS:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-aros
|
|
||||||
exit ;;
|
|
||||||
+ x86_64:VMkernel:*:*)
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-esx
|
|
||||||
+ exit ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
-#echo '(No uname command or uname output not recognized.)' 1>&2
|
|
||||||
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
|
|
||||||
-
|
|
||||||
eval $set_cc_for_build
|
|
||||||
cat >$dummy.c <<EOF
|
|
||||||
#ifdef _SEQUENT_
|
|
||||||
diff -urN ruby-2.0.0-p0/tool/config.sub ruby-2.0.0-p0-aarch64/tool/config.sub
|
|
||||||
--- ruby-2.0.0-p0/tool/config.sub 2012-01-29 07:50:18.000000000 -0600
|
|
||||||
+++ ruby-2.0.0-p0-aarch64/tool/config.sub 2013-03-08 07:15:49.328019902 -0600
|
|
||||||
@@ -2,9 +2,9 @@
|
|
||||||
# Configuration validation subroutine script.
|
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
|
||||||
-# 2011 Free Software Foundation, Inc.
|
|
||||||
+# 2011, 2012 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
-timestamp='2011-11-11'
|
|
||||||
+timestamp='2012-10-10'
|
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
|
||||||
@@ -21,9 +21,7 @@
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
-# along with this program; if not, write to the Free Software
|
|
||||||
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
|
||||||
-# 02110-1301, USA.
|
|
||||||
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
@@ -76,8 +74,8 @@
|
|
||||||
GNU config.sub ($timestamp)
|
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
|
||||||
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
|
|
||||||
-Software Foundation, Inc.
|
|
||||||
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
|
||||||
+Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
|
||||||
@@ -125,13 +123,17 @@
|
|
||||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
|
||||||
case $maybe_os in
|
|
||||||
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
|
|
||||||
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
|
||||||
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
|
||||||
knetbsd*-gnu* | netbsd*-gnu* | \
|
|
||||||
kopensolaris*-gnu* | \
|
|
||||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
|
||||||
os=-$maybe_os
|
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
|
||||||
;;
|
|
||||||
+ android-linux)
|
|
||||||
+ os=-linux-android
|
|
||||||
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
|
||||||
+ ;;
|
|
||||||
*)
|
|
||||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
|
||||||
if [ $basic_machine != $1 ]
|
|
||||||
@@ -154,7 +156,7 @@
|
|
||||||
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
|
||||||
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
|
||||||
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
|
||||||
- -apple | -axis | -knuth | -cray | -microblaze)
|
|
||||||
+ -apple | -axis | -knuth | -cray | -microblaze*)
|
|
||||||
os=
|
|
||||||
basic_machine=$1
|
|
||||||
;;
|
|
||||||
@@ -223,6 +225,12 @@
|
|
||||||
-isc*)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
+ -lynx*178)
|
|
||||||
+ os=-lynxos178
|
|
||||||
+ ;;
|
|
||||||
+ -lynx*5)
|
|
||||||
+ os=-lynxos5
|
|
||||||
+ ;;
|
|
||||||
-lynx*)
|
|
||||||
os=-lynxos
|
|
||||||
;;
|
|
||||||
@@ -247,6 +255,7 @@
|
|
||||||
# Some are omitted here because they have special meanings below.
|
|
||||||
1750a | 580 \
|
|
||||||
| a29k \
|
|
||||||
+ | aarch64 | aarch64_be \
|
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
|
||||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
|
||||||
| am33_2.0 \
|
|
||||||
@@ -264,7 +273,7 @@
|
|
||||||
| le32 | le64 \
|
|
||||||
| lm32 \
|
|
||||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
|
||||||
- | maxq | mb | microblaze | mcore | mep | metag \
|
|
||||||
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
|
|
||||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
|
||||||
| mips16 \
|
|
||||||
| mips64 | mips64el \
|
|
||||||
@@ -319,8 +328,7 @@
|
|
||||||
c6x)
|
|
||||||
basic_machine=tic6x-unknown
|
|
||||||
;;
|
|
||||||
- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
|
|
||||||
- # Motorola 68HC11/12.
|
|
||||||
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
|
|
||||||
basic_machine=$basic_machine-unknown
|
|
||||||
os=-none
|
|
||||||
;;
|
|
||||||
@@ -333,7 +341,10 @@
|
|
||||||
strongarm | thumb | xscale)
|
|
||||||
basic_machine=arm-unknown
|
|
||||||
;;
|
|
||||||
-
|
|
||||||
+ xgate)
|
|
||||||
+ basic_machine=$basic_machine-unknown
|
|
||||||
+ os=-none
|
|
||||||
+ ;;
|
|
||||||
xscaleeb)
|
|
||||||
basic_machine=armeb-unknown
|
|
||||||
;;
|
|
||||||
@@ -356,6 +367,7 @@
|
|
||||||
# Recognize the basic CPU types with company name.
|
|
||||||
580-* \
|
|
||||||
| a29k-* \
|
|
||||||
+ | aarch64-* | aarch64_be-* \
|
|
||||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
|
||||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
|
||||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
|
||||||
@@ -377,7 +389,8 @@
|
|
||||||
| lm32-* \
|
|
||||||
| m32c-* | m32r-* | m32rle-* \
|
|
||||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
|
||||||
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
|
|
||||||
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
|
|
||||||
+ | microblaze-* | microblazeel-* \
|
|
||||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
|
||||||
| mips16-* \
|
|
||||||
| mips64-* | mips64el-* \
|
|
||||||
@@ -719,7 +732,6 @@
|
|
||||||
i370-ibm* | ibm*)
|
|
||||||
basic_machine=i370-ibm
|
|
||||||
;;
|
|
||||||
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
|
|
||||||
i*86v32)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
|
||||||
os=-sysv32
|
|
||||||
@@ -777,9 +789,13 @@
|
|
||||||
basic_machine=ns32k-utek
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
- microblaze)
|
|
||||||
+ microblaze*)
|
|
||||||
basic_machine=microblaze-xilinx
|
|
||||||
;;
|
|
||||||
+ mingw64)
|
|
||||||
+ basic_machine=x86_64-pc
|
|
||||||
+ os=-mingw64
|
|
||||||
+ ;;
|
|
||||||
mingw32)
|
|
||||||
basic_machine=i386-pc
|
|
||||||
os=-mingw32
|
|
||||||
@@ -1341,15 +1357,15 @@
|
|
||||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
|
||||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
|
||||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
|
||||||
- | -openbsd* | -solidbsd* \
|
|
||||||
+ | -bitrig* | -openbsd* | -solidbsd* \
|
|
||||||
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
|
||||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
|
||||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
|
||||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
|
||||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
|
||||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
|
||||||
- | -mingw32* | -linux-gnu* | -linux-android* \
|
|
||||||
- | -linux-newlib* | -linux-uclibc* \
|
|
||||||
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
|
|
||||||
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
|
|
||||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
|
||||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
|
||||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
|
||||||
@@ -1532,6 +1548,9 @@
|
|
||||||
c4x-* | tic4x-*)
|
|
||||||
os=-coff
|
|
||||||
;;
|
|
||||||
+ hexagon-*)
|
|
||||||
+ os=-elf
|
|
||||||
+ ;;
|
|
||||||
tic54x-*)
|
|
||||||
os=-coff
|
|
||||||
;;
|
|
||||||
@@ -1559,9 +1578,6 @@
|
|
||||||
;;
|
|
||||||
m68000-sun)
|
|
||||||
os=-sunos3
|
|
||||||
- # This also exists in the configure program, but was not the
|
|
||||||
- # default.
|
|
||||||
- # os=-sunos4
|
|
||||||
;;
|
|
||||||
m68*-cisco)
|
|
||||||
os=-aout
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
From fb9fcc8b01d968c62577756cbfd00f20a10b5cbf Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Tue, 9 Jul 2013 12:32:49 +0200
|
|
||||||
Subject: [PATCH] Make stable Gem::Specification.files in default .gemspecs
|
|
||||||
|
|
||||||
Although the .gemspec files for default gems are same in function, the
|
|
||||||
different order of their "s.files" makes them different therefore
|
|
||||||
possibly conflicting in multilib scenario.
|
|
||||||
---
|
|
||||||
tool/rbinstall.rb | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
|
|
||||||
index 1063fac..fb2fcee 100755
|
|
||||||
--- a/tool/rbinstall.rb
|
|
||||||
+++ b/tool/rbinstall.rb
|
|
||||||
@@ -592,7 +592,7 @@ module RbInstall
|
|
||||||
end
|
|
||||||
|
|
||||||
def collect
|
|
||||||
- ruby_libraries + built_libraries
|
|
||||||
+ (ruby_libraries + built_libraries).sort
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
From 28e8a4ad0146fef37b514bde9a27ba5b6f7c34c5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Tue, 2 Jul 2013 11:51:50 +0200
|
|
||||||
Subject: [PATCH] Revert "mkmf.rb: prefix install_dirs only with DESTDIR"
|
|
||||||
|
|
||||||
This reverts commit 7e1d5045943835ff906850e7b3bc71f985ae5f36.
|
|
||||||
---
|
|
||||||
lib/mkmf.rb | 29 ++++++++++++++---------------
|
|
||||||
1 file changed, 14 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
|
|
||||||
index ee89198..cca487e 100644
|
|
||||||
--- a/lib/mkmf.rb
|
|
||||||
+++ b/lib/mkmf.rb
|
|
||||||
@@ -189,21 +189,21 @@ module MakeMakefile
|
|
||||||
]
|
|
||||||
elsif $configure_args.has_key?('--vendor')
|
|
||||||
dirs = [
|
|
||||||
- ['BINDIR', '$(DESTDIR)$(bindir)'],
|
|
||||||
- ['RUBYCOMMONDIR', '$(DESTDIR)$(vendordir)$(target_prefix)'],
|
|
||||||
- ['RUBYLIBDIR', '$(DESTDIR)$(vendorlibdir)$(target_prefix)'],
|
|
||||||
- ['RUBYARCHDIR', '$(DESTDIR)$(vendorarchdir)$(target_prefix)'],
|
|
||||||
- ['HDRDIR', '$(DESTDIR)$(rubyhdrdir)/ruby$(target_prefix)'],
|
|
||||||
- ['ARCHHDRDIR', '$(DESTDIR)$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
|
|
||||||
+ ['BINDIR', '$(bindir)'],
|
|
||||||
+ ['RUBYCOMMONDIR', '$(vendordir)$(target_prefix)'],
|
|
||||||
+ ['RUBYLIBDIR', '$(vendorlibdir)$(target_prefix)'],
|
|
||||||
+ ['RUBYARCHDIR', '$(vendorarchdir)$(target_prefix)'],
|
|
||||||
+ ['HDRDIR', '$(rubyhdrdir)/ruby$(target_prefix)'],
|
|
||||||
+ ['ARCHHDRDIR', '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
|
|
||||||
]
|
|
||||||
else
|
|
||||||
dirs = [
|
|
||||||
- ['BINDIR', '$(DESTDIR)$(bindir)'],
|
|
||||||
- ['RUBYCOMMONDIR', '$(DESTDIR)$(sitedir)$(target_prefix)'],
|
|
||||||
- ['RUBYLIBDIR', '$(DESTDIR)$(sitelibdir)$(target_prefix)'],
|
|
||||||
- ['RUBYARCHDIR', '$(DESTDIR)$(sitearchdir)$(target_prefix)'],
|
|
||||||
- ['HDRDIR', '$(DESTDIR)$(rubyhdrdir)/ruby$(target_prefix)'],
|
|
||||||
- ['ARCHHDRDIR', '$(DESTDIR)$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
|
|
||||||
+ ['BINDIR', '$(bindir)'],
|
|
||||||
+ ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'],
|
|
||||||
+ ['RUBYLIBDIR', '$(sitelibdir)$(target_prefix)'],
|
|
||||||
+ ['RUBYARCHDIR', '$(sitearchdir)$(target_prefix)'],
|
|
||||||
+ ['HDRDIR', '$(rubyhdrdir)/ruby$(target_prefix)'],
|
|
||||||
+ ['ARCHHDRDIR', '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
|
|
||||||
]
|
|
||||||
end
|
|
||||||
dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")]
|
|
||||||
@@ -1728,7 +1728,6 @@ SRC
|
|
||||||
end
|
|
||||||
|
|
||||||
def with_destdir(dir)
|
|
||||||
- return dir unless $extmk
|
|
||||||
dir = dir.sub($dest_prefix_pattern, '')
|
|
||||||
/\A\$[\(\{]/ =~ dir ? dir : "$(DESTDIR)"+dir
|
|
||||||
end
|
|
||||||
@@ -1787,8 +1786,8 @@ ECHO = $(ECHO1:0=@echo)
|
|
||||||
#### Start of system configuration section. ####
|
|
||||||
#{"top_srcdir = " + $top_srcdir.sub(%r"\A#{Regexp.quote($topdir)}/", "$(topdir)/") if $extmk}
|
|
||||||
srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2]).unspace}}
|
|
||||||
-topdir = #{mkintpath(topdir = $extmk ? CONFIG["topdir"] : $topdir).unspace}
|
|
||||||
-hdrdir = #{(hdrdir = CONFIG["hdrdir"]) == topdir ? "$(topdir)" : mkintpath(hdrdir).unspace}
|
|
||||||
+topdir = #{mkintpath($extmk ? CONFIG["topdir"] : $topdir).unspace}
|
|
||||||
+hdrdir = #{mkintpath(CONFIG["hdrdir"]).unspace}
|
|
||||||
arch_hdrdir = #{$arch_hdrdir.quote}
|
|
||||||
PATH_SEPARATOR = #{CONFIG['PATH_SEPARATOR']}
|
|
||||||
VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])}
|
|
||||||
--
|
|
||||||
1.8.2.1
|
|
||||||
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
diff --git a/Makefile.in b/Makefile.in
|
|
||||||
index a93a1e6..fb30c19 100644
|
|
||||||
--- a/Makefile.in
|
|
||||||
+++ b/Makefile.in
|
|
||||||
@@ -108,6 +108,7 @@ XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@
|
|
||||||
XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@
|
|
||||||
|
|
||||||
DEFAULT_PRELUDES = $(@USE_RUBYGEMS@_GEM_PRELUDE)
|
|
||||||
+OPTIONAL_PRELUDES = @OPTIONAL_PRELUDES@
|
|
||||||
|
|
||||||
#### End of system configuration section. ####
|
|
||||||
|
|
||||||
diff --git a/common.mk b/common.mk
|
|
||||||
index e5069e5..ca5e3f9 100644
|
|
||||||
--- a/common.mk
|
|
||||||
+++ b/common.mk
|
|
||||||
@@ -107,7 +107,7 @@ ALLOBJS = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT)
|
|
||||||
|
|
||||||
GOLFOBJS = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)
|
|
||||||
|
|
||||||
-PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(srcdir)/enc/prelude.rb $(DEFAULT_PRELUDES)
|
|
||||||
+PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(srcdir)/enc/prelude.rb $(DEFAULT_PRELUDES) $(OPTIONAL_PRELUDES)
|
|
||||||
GEM_PRELUDE = $(srcdir)/gem_prelude.rb
|
|
||||||
YES_GEM_PRELUDE = $(GEM_PRELUDE)
|
|
||||||
NO_GEM_PRELUDE =
|
|
||||||
diff --git a/configure.in b/configure.in
|
|
||||||
index 7977aaf..1ef42cd 100644
|
|
||||||
--- a/configure.in
|
|
||||||
+++ b/configure.in
|
|
||||||
@@ -3494,6 +3494,13 @@ AC_SUBST(rubyarchhdrdir)dnl
|
|
||||||
AC_SUBST(sitearchhdrdir)dnl
|
|
||||||
AC_SUBST(vendorarchhdrdir)dnl
|
|
||||||
|
|
||||||
+AC_ARG_WITH(prelude,
|
|
||||||
+ AS_HELP_STRING([--with-prelude=FILE-LIST], [specify additional preludes separated by space]),
|
|
||||||
+ [prelude=$withval])
|
|
||||||
+if test "$prelude" != ""; then
|
|
||||||
+ AC_SUBST(OPTIONAL_PRELUDES, $prelude)
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
AC_ARG_WITH(mantype,
|
|
||||||
AS_HELP_STRING([--with-mantype=TYPE], [specify man page type; TYPE is one of man and doc]),
|
|
||||||
[
|
|
||||||
25
ruby-2.1.0-Enable-configuration-of-archlibdir.patch
Normal file
25
ruby-2.1.0-Enable-configuration-of-archlibdir.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
From e1293f665128b0d9c5bfa0b5beeab4afebf07e6a Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Tue, 1 Oct 2013 12:22:40 +0200
|
||||||
|
Subject: [PATCH] Allow to configure libruby.so placement.
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index a64358fada..b3bdfad1eb 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -3556,6 +3556,11 @@ AS_IF([test ${multiarch+set}], [
|
||||||
|
])
|
||||||
|
|
||||||
|
archlibdir='${libdir}/${arch}'
|
||||||
|
+AC_ARG_WITH(archlibdir,
|
||||||
|
+ AS_HELP_STRING([--with-archlibdir=DIR],
|
||||||
|
+ [prefix for libruby [[LIBDIR/ARCH]]]),
|
||||||
|
+ [archlibdir="$withval"])
|
||||||
|
+
|
||||||
|
sitearchlibdir='${libdir}/${sitearch}'
|
||||||
|
archincludedir='${includedir}/${arch}'
|
||||||
|
sitearchincludedir='${includedir}/${sitearch}'
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
From 6062f4976c5b51f8b952b9f6745175be7b1c5ff9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Fri, 8 Feb 2013 22:48:41 +0100
|
||||||
|
Subject: [PATCH] Prevent duplicated paths when empty version string is
|
||||||
|
configured.
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 3 ++-
|
||||||
|
loadpath.c | 12 ++++++++++++
|
||||||
|
tool/mkconfig.rb | 2 +-
|
||||||
|
3 files changed, 15 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 2bc5153141..a64358fada 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -4472,7 +4472,8 @@ AS_CASE(["$ruby_version_dir_name"],
|
||||||
|
ruby_version_dir=/'${ruby_version_dir_name}'
|
||||||
|
|
||||||
|
if test -z "${ruby_version_dir_name}"; then
|
||||||
|
- AC_MSG_ERROR([No ruby version, No place for bundled libraries])
|
||||||
|
+ unset ruby_version_dir
|
||||||
|
+ AC_DEFINE(RUBY_LIB_VERSION_BLANK, 1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
rubylibdir='${rubylibprefix}'${ruby_version_dir}
|
||||||
|
diff --git a/loadpath.c b/loadpath.c
|
||||||
|
index b8969e6998..bbfd4daa78 100644
|
||||||
|
--- a/loadpath.c
|
||||||
|
+++ b/loadpath.c
|
||||||
|
@@ -65,21 +65,33 @@ const char ruby_initial_load_paths[] =
|
||||||
|
RUBY_SEARCH_PATH "\0"
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RUBY_SITE_LIB
|
||||||
|
+#ifdef RUBY_LIB_VERSION_BLANK
|
||||||
|
+ RUBY_SITE_LIB "\0"
|
||||||
|
+#else
|
||||||
|
RUBY_SITE_LIB2 "\0"
|
||||||
|
+#endif
|
||||||
|
#ifdef RUBY_THINARCH
|
||||||
|
RUBY_SITE_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
|
||||||
|
#endif
|
||||||
|
RUBY_SITE_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
|
||||||
|
+#ifndef RUBY_LIB_VERSION_BLANK
|
||||||
|
RUBY_SITE_LIB "\0"
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#ifndef NO_RUBY_VENDOR_LIB
|
||||||
|
+#ifdef RUBY_LIB_VERSION_BLANK
|
||||||
|
+ RUBY_VENDOR_LIB "\0"
|
||||||
|
+#else
|
||||||
|
RUBY_VENDOR_LIB2 "\0"
|
||||||
|
+#endif
|
||||||
|
#ifdef RUBY_THINARCH
|
||||||
|
RUBY_VENDOR_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
|
||||||
|
#endif
|
||||||
|
RUBY_VENDOR_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
|
||||||
|
+#ifndef RUBY_LIB_VERSION_BLANK
|
||||||
|
RUBY_VENDOR_LIB "\0"
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
RUBY_LIB "\0"
|
||||||
|
diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
|
||||||
|
index db74115730..2b01796abf 100755
|
||||||
|
--- a/tool/mkconfig.rb
|
||||||
|
+++ b/tool/mkconfig.rb
|
||||||
|
@@ -114,7 +114,7 @@
|
||||||
|
val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump
|
||||||
|
case name
|
||||||
|
when /^prefix$/
|
||||||
|
- val = "(TOPDIR || DESTDIR + #{val})"
|
||||||
|
+ val = "(((TOPDIR && TOPDIR.empty?) ? nil : TOPDIR) || DESTDIR + #{val})"
|
||||||
|
when /^ARCH_FLAG$/
|
||||||
|
val = "arch_flag || #{val}" if universal
|
||||||
|
when /^UNIVERSAL_ARCHNAMES$/
|
||||||
22
ruby-2.1.0-always-use-i386.patch
Normal file
22
ruby-2.1.0-always-use-i386.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
From 9e70f6e4b8771965a30ecfb6d1c6015df350ca55 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Mon, 19 Nov 2012 14:37:28 +0100
|
||||||
|
Subject: [PATCH] Always use i386.
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index b3bdfad1eb..411322a27f 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -4536,6 +4536,8 @@ AC_SUBST(vendorarchdir)dnl
|
||||||
|
AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
|
||||||
|
AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl
|
||||||
|
|
||||||
|
+target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
||||||
|
+
|
||||||
|
AS_IF([test "${universal_binary-no}" = yes ], [
|
||||||
|
arch="universal-${target_os}"
|
||||||
|
AS_IF([test "${rb_cv_architecture_available}" = yes], [
|
||||||
94
ruby-2.1.0-custom-rubygems-location.patch
Normal file
94
ruby-2.1.0-custom-rubygems-location.patch
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
From c7952996ac9738a14bea0a1a971fea13460a6c94 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Fri, 11 Nov 2011 13:14:45 +0100
|
||||||
|
Subject: [PATCH] Allow to install RubyGems into custom location, outside of
|
||||||
|
Ruby tree.
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 5 +++++
|
||||||
|
loadpath.c | 4 ++++
|
||||||
|
template/verconf.h.tmpl | 3 +++
|
||||||
|
tool/rbinstall.rb | 10 ++++++++++
|
||||||
|
4 files changed, 22 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 411322a27f..b5f842a512 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -4508,6 +4508,10 @@ AC_ARG_WITH(vendorarchdir,
|
||||||
|
[vendorarchdir=$withval],
|
||||||
|
[vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])
|
||||||
|
|
||||||
|
+AC_ARG_WITH(rubygemsdir,
|
||||||
|
+ AS_HELP_STRING([--with-rubygemsdir=DIR], [custom rubygems directory]),
|
||||||
|
+ [rubygemsdir=$withval])
|
||||||
|
+
|
||||||
|
AS_IF([test "${LOAD_RELATIVE+set}"], [
|
||||||
|
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
|
||||||
|
RUBY_EXEC_PREFIX=''
|
||||||
|
@@ -4532,6 +4536,7 @@ AC_SUBST(sitearchdir)dnl
|
||||||
|
AC_SUBST(vendordir)dnl
|
||||||
|
AC_SUBST(vendorlibdir)dnl
|
||||||
|
AC_SUBST(vendorarchdir)dnl
|
||||||
|
+AC_SUBST(rubygemsdir)dnl
|
||||||
|
|
||||||
|
AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
|
||||||
|
AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl
|
||||||
|
diff --git a/loadpath.c b/loadpath.c
|
||||||
|
index bbfd4daa78..69677a9297 100644
|
||||||
|
--- a/loadpath.c
|
||||||
|
+++ b/loadpath.c
|
||||||
|
@@ -94,6 +94,10 @@ const char ruby_initial_load_paths[] =
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifdef RUBYGEMS_DIR
|
||||||
|
+ RUBYGEMS_DIR "\0"
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
RUBY_LIB "\0"
|
||||||
|
#ifdef RUBY_THINARCH
|
||||||
|
RUBY_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
|
||||||
|
diff --git a/template/verconf.h.tmpl b/template/verconf.h.tmpl
|
||||||
|
index 9ba2bd6de5..4ec4ce9353 100644
|
||||||
|
--- a/template/verconf.h.tmpl
|
||||||
|
+++ b/template/verconf.h.tmpl
|
||||||
|
@@ -36,6 +36,9 @@
|
||||||
|
% if C["RUBY_SEARCH_PATH"]
|
||||||
|
#define RUBY_SEARCH_PATH "${RUBY_SEARCH_PATH}"
|
||||||
|
% end
|
||||||
|
+% if C["rubygemsdir"]
|
||||||
|
+#define RUBYGEMS_DIR "${rubygemsdir}"
|
||||||
|
+% end
|
||||||
|
%
|
||||||
|
% R = {}
|
||||||
|
% R["ruby_version"] = '"RUBY_LIB_VERSION"'
|
||||||
|
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
|
||||||
|
index a9e6365b27..7117e65e82 100755
|
||||||
|
--- a/tool/rbinstall.rb
|
||||||
|
+++ b/tool/rbinstall.rb
|
||||||
|
@@ -393,6 +393,7 @@ def CONFIG.[](name, mandatory = false)
|
||||||
|
vendorlibdir = CONFIG["vendorlibdir"]
|
||||||
|
vendorarchlibdir = CONFIG["vendorarchdir"]
|
||||||
|
end
|
||||||
|
+rubygemsdir = CONFIG["rubygemsdir"]
|
||||||
|
mandir = CONFIG["mandir", true]
|
||||||
|
docdir = CONFIG["docdir", true]
|
||||||
|
enable_shared = CONFIG["ENABLE_SHARED"] == 'yes'
|
||||||
|
@@ -1082,7 +1083,16 @@ def (bins = []).add(name)
|
||||||
|
install?(:local, :comm, :lib) do
|
||||||
|
prepare "library scripts", rubylibdir
|
||||||
|
noinst = %w[*.txt *.rdoc *.gemspec]
|
||||||
|
+ # Bundler carries "rubygems.rb" file, so it must be specialcased :/
|
||||||
|
+ noinst += %w[rubygems.rb rubygems/ bundler.rb bundler/] if rubygemsdir
|
||||||
|
install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode)
|
||||||
|
+ if rubygemsdir
|
||||||
|
+ noinst = %w[*.txt *.rdoc *.gemspec]
|
||||||
|
+ install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :no_install => noinst, :mode => $data_mode)
|
||||||
|
+ install(File.join(srcdir, "lib", "rubygems.rb"), File.join(rubygemsdir, "rubygems.rb"), :mode => $data_mode)
|
||||||
|
+ install_recursive(File.join(srcdir, "lib", "bundler"), File.join(rubylibdir, "bundler"), :no_install => noinst, :mode => $data_mode)
|
||||||
|
+ install(File.join(srcdir, "lib", "bundler.rb"), rubylibdir, :mode => $data_mode)
|
||||||
|
+ end
|
||||||
|
end
|
||||||
|
|
||||||
|
install?(:local, :comm, :hdr, :'comm-hdr') do
|
||||||
|
|
@ -1,259 +0,0 @@
|
||||||
From 5ac7c395c19426a9a92f0a918b03e0f493af6e2c Mon Sep 17 00:00:00 2001
|
|
||||||
From: tmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
|
|
||||||
Date: Fri, 3 Jan 2014 01:46:55 +0000
|
|
||||||
Subject: [PATCH] test/net/imap/test_imap.rb: fix test failures due to expired
|
|
||||||
certs
|
|
||||||
|
|
||||||
* test/net/imap/cacert.pem: generate new CA cert, since the last one
|
|
||||||
expired. [Bug #9341] [ruby-core:59459]
|
|
||||||
* test/net/imap/server.crt: new server cert signed with updated CA.
|
|
||||||
* test/net/imap/Makefile: add `make regen_certs` to automate this
|
|
||||||
process.
|
|
||||||
|
|
||||||
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
||||||
---
|
|
||||||
ChangeLog | 8 +++++
|
|
||||||
test/net/imap/Makefile | 15 +++++++++
|
|
||||||
test/net/imap/cacert.pem | 84 ++++++++++++++++++++++++++----------------------
|
|
||||||
test/net/imap/server.crt | 65 +++++++++++++++----------------------
|
|
||||||
4 files changed, 94 insertions(+), 78 deletions(-)
|
|
||||||
create mode 100644 test/net/imap/Makefile
|
|
||||||
|
|
||||||
diff --git a/ChangeLog b/ChangeLog
|
|
||||||
index a4f20cd..d6a7148 100644
|
|
||||||
--- a/ChangeLog
|
|
||||||
+++ b/ChangeLog
|
|
||||||
@@ -1,3 +1,11 @@
|
|
||||||
+Fri Jan 3 10:43:57 2014 Aman Gupta <ruby@tmm1.net>
|
|
||||||
+
|
|
||||||
+ * test/net/imap/cacert.pem: generate new CA cert, since the last one
|
|
||||||
+ expired. [Bug #9341] [ruby-core:59459]
|
|
||||||
+ * test/net/imap/server.crt: new server cert signed with updated CA.
|
|
||||||
+ * test/net/imap/Makefile: add `make regen_certs` to automate this
|
|
||||||
+ process.
|
|
||||||
+
|
|
||||||
Fri Nov 22 13:18:28 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
||||||
|
|
||||||
* util.c (ruby_strtod): BigMath requires more precision.
|
|
||||||
diff --git a/test/net/imap/Makefile b/test/net/imap/Makefile
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..b2bc9c7
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/net/imap/Makefile
|
|
||||||
@@ -0,0 +1,15 @@
|
|
||||||
+all:
|
|
||||||
+
|
|
||||||
+regen_certs:
|
|
||||||
+ touch server.key
|
|
||||||
+ make server.crt
|
|
||||||
+
|
|
||||||
+cacert.pem: server.key
|
|
||||||
+ openssl req -new -x509 -days 1825 -key server.key -out cacert.pem -text -subj "/C=JP/ST=Shimane/L=Matz-e city/O=Ruby Core Team/CN=Ruby Test CA/emailAddress=security@ruby-lang.org"
|
|
||||||
+
|
|
||||||
+server.csr:
|
|
||||||
+ openssl req -new -key server.key -out server.csr -text -subj "/C=JP/ST=Shimane/O=Ruby Core Team/OU=Ruby Test/CN=localhost"
|
|
||||||
+
|
|
||||||
+server.crt: server.csr cacert.pem
|
|
||||||
+ openssl x509 -days 1825 -CA cacert.pem -CAkey server.key -set_serial 00 -in server.csr -req -text -out server.crt
|
|
||||||
+ rm server.csr
|
|
||||||
diff --git a/test/net/imap/cacert.pem b/test/net/imap/cacert.pem
|
|
||||||
index bd7e68a..7073387 100644
|
|
||||||
--- a/test/net/imap/cacert.pem
|
|
||||||
+++ b/test/net/imap/cacert.pem
|
|
||||||
@@ -2,59 +2,65 @@ Certificate:
|
|
||||||
Data:
|
|
||||||
Version: 3 (0x2)
|
|
||||||
Serial Number:
|
|
||||||
- 9f:dc:f7:94:98:05:43:4c
|
|
||||||
+ b9:90:a2:bf:62:69:17:9c
|
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
|
||||||
Issuer: C=JP, ST=Shimane, L=Matz-e city, O=Ruby Core Team, CN=Ruby Test CA/emailAddress=security@ruby-lang.org
|
|
||||||
Validity
|
|
||||||
- Not Before: Dec 23 10:21:33 2010 GMT
|
|
||||||
- Not After : Jan 1 10:21:33 2014 GMT
|
|
||||||
+ Not Before: Jan 3 01:34:17 2014 GMT
|
|
||||||
+ Not After : Jan 2 01:34:17 2019 GMT
|
|
||||||
Subject: C=JP, ST=Shimane, L=Matz-e city, O=Ruby Core Team, CN=Ruby Test CA/emailAddress=security@ruby-lang.org
|
|
||||||
Subject Public Key Info:
|
|
||||||
Public Key Algorithm: rsaEncryption
|
|
||||||
- Public-Key: (1024 bit)
|
|
||||||
- Modulus:
|
|
||||||
- 00:ce:be:2c:9f:47:ba:db:9c:9c:5b:f0:38:3b:f3:
|
|
||||||
- 74:20:37:76:23:9f:84:1c:81:90:b4:3e:00:20:34:
|
|
||||||
- 98:7e:81:69:50:a1:c3:65:96:ea:fa:00:da:8c:cc:
|
|
||||||
- 53:3f:ba:3c:d0:50:7a:5a:b4:6b:ac:d3:2e:18:ca:
|
|
||||||
- 2a:69:b3:6a:6f:38:c2:32:a8:06:b6:0a:30:a9:ee:
|
|
||||||
- 03:38:e9:05:a5:19:23:54:a8:3c:b9:08:ad:2b:72:
|
|
||||||
- 23:df:93:22:c4:46:a8:ea:f1:a6:e9:30:4a:3f:83:
|
|
||||||
- 39:e9:62:8e:8b:a3:5e:67:89:1d:7c:75:de:05:aa:
|
|
||||||
- 58:b1:b7:79:7c:10:80:6d:87
|
|
||||||
+ RSA Public Key: (1024 bit)
|
|
||||||
+ Modulus (1024 bit):
|
|
||||||
+ 00:db:75:d0:45:de:b1:df:bf:71:a0:0e:b0:a5:e6:
|
|
||||||
+ bc:f4:1c:9d:e5:25:67:64:c5:7b:cb:f1:af:c6:be:
|
|
||||||
+ 9a:aa:ea:7e:0f:cc:05:af:ef:40:69:06:b2:c9:13:
|
|
||||||
+ 9d:7e:eb:a2:06:e2:ea:7d:07:c7:c7:99:c7:fb:d5:
|
|
||||||
+ b8:eb:63:77:62:2b:18:12:c3:53:58:d0:f5:c7:40:
|
|
||||||
+ 0c:01:d1:26:82:34:16:09:e3:dc:65:f4:dc:bb:5d:
|
|
||||||
+ a5:41:60:e7:a9:74:ba:d7:4c:b6:a3:9c:c5:8c:89:
|
|
||||||
+ af:cb:e8:9f:05:fe:ea:fe:64:24:bf:e7:ed:e3:f6:
|
|
||||||
+ d0:fc:d6:eb:fc:06:82:10:fb
|
|
||||||
Exponent: 65537 (0x10001)
|
|
||||||
X509v3 extensions:
|
|
||||||
X509v3 Subject Key Identifier:
|
|
||||||
- 41:C9:49:37:B1:FA:61:E3:BA:D7:19:3D:D9:DA:8C:B9:82:C9:B4:6A
|
|
||||||
+ E8:7E:58:AC:13:7B:03:22:8D:9E:AF:32:0B:84:89:80:80:0C:1E:C2
|
|
||||||
X509v3 Authority Key Identifier:
|
|
||||||
- keyid:41:C9:49:37:B1:FA:61:E3:BA:D7:19:3D:D9:DA:8C:B9:82:C9:B4:6A
|
|
||||||
+ keyid:E8:7E:58:AC:13:7B:03:22:8D:9E:AF:32:0B:84:89:80:80:0C:1E:C2
|
|
||||||
+ DirName:/C=JP/ST=Shimane/L=Matz-e city/O=Ruby Core Team/CN=Ruby Test CA/emailAddress=security@ruby-lang.org
|
|
||||||
+ serial:B9:90:A2:BF:62:69:17:9C
|
|
||||||
|
|
||||||
X509v3 Basic Constraints:
|
|
||||||
CA:TRUE
|
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
|
||||||
- 86:00:33:b9:dd:ff:5f:83:59:5f:c3:29:3c:d7:11:db:10:b3:
|
|
||||||
- d7:d1:70:fb:0a:c6:74:85:c6:ea:e1:15:c4:92:f8:0e:11:cc:
|
|
||||||
- ff:a6:3c:31:c2:2c:66:d8:fe:63:93:9f:b0:97:e6:f5:bc:5c:
|
|
||||||
- 80:68:96:5d:eb:77:b9:23:dd:68:a7:49:03:ff:22:48:55:f1:
|
|
||||||
- 39:7c:20:21:ff:64:52:e1:f6:cf:3c:b3:4d:2c:5c:03:62:ea:
|
|
||||||
- c5:49:99:07:fa:8d:ff:7b:c2:75:0c:ca:24:b5:0b:f5:b7:57:
|
|
||||||
- 3a:10:f0:8a:bb:9a:e8:92:4d:d5:6f:c2:a2:29:36:61:78:a4:
|
|
||||||
- dc:7b
|
|
||||||
+ 8f:77:06:4e:31:72:12:ee:68:09:70:27:d4:31:85:ef:10:95:
|
|
||||||
+ f9:0f:2b:66:63:08:37:88:6e:b7:9b:40:3e:18:77:33:86:e8:
|
|
||||||
+ 61:6a:b7:3c:cb:c7:a6:d6:d5:92:6a:1f:56:d0:9f:5c:32:56:
|
|
||||||
+ d3:37:52:fe:0e:20:c2:7a:0d:fe:2d:3c:81:da:b8:7f:4d:6a:
|
|
||||||
+ 08:01:d9:be:7a:a2:15:be:a6:ce:49:64:90:8c:9a:ca:6e:2e:
|
|
||||||
+ 84:48:1d:94:19:56:94:46:aa:25:9b:68:c2:80:60:bf:cb:2e:
|
|
||||||
+ 35:03:ea:0a:65:5a:33:38:c6:cc:81:46:c0:bc:36:86:96:39:
|
|
||||||
+ 10:7d
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
-MIIC6DCCAlGgAwIBAgIJAJ/c95SYBUNMMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYD
|
|
||||||
-VQQGEwJKUDEQMA4GA1UECAwHU2hpbWFuZTEUMBIGA1UEBwwLTWF0ei1lIGNpdHkx
|
|
||||||
-FzAVBgNVBAoMDlJ1YnkgQ29yZSBUZWFtMRUwEwYDVQQDDAxSdWJ5IFRlc3QgQ0Ex
|
|
||||||
-JTAjBgkqhkiG9w0BCQEWFnNlY3VyaXR5QHJ1YnktbGFuZy5vcmcwHhcNMTAxMjIz
|
|
||||||
-MTAyMTMzWhcNMTQwMTAxMTAyMTMzWjCBjDELMAkGA1UEBhMCSlAxEDAOBgNVBAgM
|
|
||||||
-B1NoaW1hbmUxFDASBgNVBAcMC01hdHotZSBjaXR5MRcwFQYDVQQKDA5SdWJ5IENv
|
|
||||||
-cmUgVGVhbTEVMBMGA1UEAwwMUnVieSBUZXN0IENBMSUwIwYJKoZIhvcNAQkBFhZz
|
|
||||||
+MIIDjTCCAvagAwIBAgIJALmQor9iaRecMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYD
|
|
||||||
+VQQGEwJKUDEQMA4GA1UECBMHU2hpbWFuZTEUMBIGA1UEBxMLTWF0ei1lIGNpdHkx
|
|
||||||
+FzAVBgNVBAoTDlJ1YnkgQ29yZSBUZWFtMRUwEwYDVQQDEwxSdWJ5IFRlc3QgQ0Ex
|
|
||||||
+JTAjBgkqhkiG9w0BCQEWFnNlY3VyaXR5QHJ1YnktbGFuZy5vcmcwHhcNMTQwMTAz
|
|
||||||
+MDEzNDE3WhcNMTkwMTAyMDEzNDE3WjCBjDELMAkGA1UEBhMCSlAxEDAOBgNVBAgT
|
|
||||||
+B1NoaW1hbmUxFDASBgNVBAcTC01hdHotZSBjaXR5MRcwFQYDVQQKEw5SdWJ5IENv
|
|
||||||
+cmUgVGVhbTEVMBMGA1UEAxMMUnVieSBUZXN0IENBMSUwIwYJKoZIhvcNAQkBFhZz
|
|
||||||
ZWN1cml0eUBydWJ5LWxhbmcub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
|
|
||||||
-gQDOviyfR7rbnJxb8Dg783QgN3Yjn4QcgZC0PgAgNJh+gWlQocNllur6ANqMzFM/
|
|
||||||
-ujzQUHpatGus0y4Yyipps2pvOMIyqAa2CjCp7gM46QWlGSNUqDy5CK0rciPfkyLE
|
|
||||||
-Rqjq8abpMEo/gznpYo6Lo15niR18dd4Fqlixt3l8EIBthwIDAQABo1AwTjAdBgNV
|
|
||||||
-HQ4EFgQUQclJN7H6YeO61xk92dqMuYLJtGowHwYDVR0jBBgwFoAUQclJN7H6YeO6
|
|
||||||
-1xk92dqMuYLJtGowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCGADO5
|
|
||||||
-3f9fg1lfwyk81xHbELPX0XD7CsZ0hcbq4RXEkvgOEcz/pjwxwixm2P5jk5+wl+b1
|
|
||||||
-vFyAaJZd63e5I91op0kD/yJIVfE5fCAh/2RS4fbPPLNNLFwDYurFSZkH+o3/e8J1
|
|
||||||
-DMoktQv1t1c6EPCKu5rokk3Vb8KiKTZheKTcew==
|
|
||||||
+gQDbddBF3rHfv3GgDrCl5rz0HJ3lJWdkxXvL8a/Gvpqq6n4PzAWv70BpBrLJE51+
|
|
||||||
+66IG4up9B8fHmcf71bjrY3diKxgSw1NY0PXHQAwB0SaCNBYJ49xl9Ny7XaVBYOep
|
|
||||||
+dLrXTLajnMWMia/L6J8F/ur+ZCS/5+3j9tD81uv8BoIQ+wIDAQABo4H0MIHxMB0G
|
|
||||||
+A1UdDgQWBBToflisE3sDIo2erzILhImAgAwewjCBwQYDVR0jBIG5MIG2gBToflis
|
|
||||||
+E3sDIo2erzILhImAgAwewqGBkqSBjzCBjDELMAkGA1UEBhMCSlAxEDAOBgNVBAgT
|
|
||||||
+B1NoaW1hbmUxFDASBgNVBAcTC01hdHotZSBjaXR5MRcwFQYDVQQKEw5SdWJ5IENv
|
|
||||||
+cmUgVGVhbTEVMBMGA1UEAxMMUnVieSBUZXN0IENBMSUwIwYJKoZIhvcNAQkBFhZz
|
|
||||||
+ZWN1cml0eUBydWJ5LWxhbmcub3JnggkAuZCiv2JpF5wwDAYDVR0TBAUwAwEB/zAN
|
|
||||||
+BgkqhkiG9w0BAQUFAAOBgQCPdwZOMXIS7mgJcCfUMYXvEJX5DytmYwg3iG63m0A+
|
|
||||||
+GHczhuhharc8y8em1tWSah9W0J9cMlbTN1L+DiDCeg3+LTyB2rh/TWoIAdm+eqIV
|
|
||||||
+vqbOSWSQjJrKbi6ESB2UGVaURqolm2jCgGC/yy41A+oKZVozOMbMgUbAvDaGljkQ
|
|
||||||
+fQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
diff --git a/test/net/imap/server.crt b/test/net/imap/server.crt
|
|
||||||
index d848b26..fa4f994 100644
|
|
||||||
--- a/test/net/imap/server.crt
|
|
||||||
+++ b/test/net/imap/server.crt
|
|
||||||
@@ -1,17 +1,17 @@
|
|
||||||
Certificate:
|
|
||||||
Data:
|
|
||||||
- Version: 3 (0x2)
|
|
||||||
+ Version: 1 (0x0)
|
|
||||||
Serial Number: 0 (0x0)
|
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
|
||||||
Issuer: C=JP, ST=Shimane, L=Matz-e city, O=Ruby Core Team, CN=Ruby Test CA/emailAddress=security@ruby-lang.org
|
|
||||||
Validity
|
|
||||||
- Not Before: Dec 23 10:23:52 2010 GMT
|
|
||||||
- Not After : Jan 1 10:23:52 2014 GMT
|
|
||||||
+ Not Before: Jan 3 01:34:17 2014 GMT
|
|
||||||
+ Not After : Jan 2 01:34:17 2019 GMT
|
|
||||||
Subject: C=JP, ST=Shimane, O=Ruby Core Team, OU=Ruby Test, CN=localhost
|
|
||||||
Subject Public Key Info:
|
|
||||||
Public Key Algorithm: rsaEncryption
|
|
||||||
- Public-Key: (1024 bit)
|
|
||||||
- Modulus:
|
|
||||||
+ RSA Public Key: (1024 bit)
|
|
||||||
+ Modulus (1024 bit):
|
|
||||||
00:db:75:d0:45:de:b1:df:bf:71:a0:0e:b0:a5:e6:
|
|
||||||
bc:f4:1c:9d:e5:25:67:64:c5:7b:cb:f1:af:c6:be:
|
|
||||||
9a:aa:ea:7e:0f:cc:05:af:ef:40:69:06:b2:c9:13:
|
|
||||||
@@ -22,40 +22,27 @@ Certificate:
|
|
||||||
af:cb:e8:9f:05:fe:ea:fe:64:24:bf:e7:ed:e3:f6:
|
|
||||||
d0:fc:d6:eb:fc:06:82:10:fb
|
|
||||||
Exponent: 65537 (0x10001)
|
|
||||||
- X509v3 extensions:
|
|
||||||
- X509v3 Basic Constraints:
|
|
||||||
- CA:FALSE
|
|
||||||
- Netscape Comment:
|
|
||||||
- OpenSSL Generated Certificate
|
|
||||||
- X509v3 Subject Key Identifier:
|
|
||||||
- E8:7E:58:AC:13:7B:03:22:8D:9E:AF:32:0B:84:89:80:80:0C:1E:C2
|
|
||||||
- X509v3 Authority Key Identifier:
|
|
||||||
- keyid:41:C9:49:37:B1:FA:61:E3:BA:D7:19:3D:D9:DA:8C:B9:82:C9:B4:6A
|
|
||||||
-
|
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
|
||||||
- ae:ee:cd:fe:c9:af:48:0b:50:37:ac:6a:f6:68:90:9b:67:df:
|
|
||||||
- 6f:2d:17:c9:3c:a5:da:ad:39:dc:2a:5b:07:88:26:38:19:30:
|
|
||||||
- d6:95:cf:10:69:c7:92:14:83:be:f1:b5:8e:6f:d9:91:51:c5:
|
|
||||||
- 63:ae:1c:89:ac:27:bf:4f:2a:8f:4e:0c:57:42:0a:c9:8e:0c:
|
|
||||||
- f4:f3:02:f7:ea:44:b6:e4:47:05:af:4e:74:e4:87:87:d9:c8:
|
|
||||||
- 76:ed:ab:32:7c:f0:31:34:10:14:bc:a6:37:cd:d7:dc:33:da:
|
|
||||||
- 82:d3:d4:9b:e9:d5:cd:38:cc:fa:81:5f:4e:fd:5f:53:05:5d:
|
|
||||||
- 76:f9
|
|
||||||
+ 85:f5:d3:05:8b:8c:f4:43:1c:88:f2:8f:b2:f2:93:77:b7:3d:
|
|
||||||
+ 95:c6:a0:34:bc:33:6a:d8:85:5f:3e:86:08:10:c5:5c:c1:76:
|
|
||||||
+ a3:53:3c:dc:38:98:23:97:e7:da:21:ac:e8:4d:3c:96:70:29:
|
|
||||||
+ ff:ff:1e:4a:9a:17:2b:db:04:62:b9:ef:ab:ea:a7:a5:e8:7c:
|
|
||||||
+ b1:d5:ed:30:a8:6c:78:de:51:7e:e3:8a:c2:a4:64:a8:63:a2:
|
|
||||||
+ bc:fd:43:9c:f3:55:7d:54:c9:6a:d8:53:1c:4b:6b:03:aa:b6:
|
|
||||||
+ 19:e6:a4:4f:47:00:96:c5:42:59:85:4e:c3:4e:cd:41:82:53:
|
|
||||||
+ 10:f8
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
-MIIC3jCCAkegAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjDELMAkGA1UEBhMCSlAx
|
|
||||||
-EDAOBgNVBAgMB1NoaW1hbmUxFDASBgNVBAcMC01hdHotZSBjaXR5MRcwFQYDVQQK
|
|
||||||
-DA5SdWJ5IENvcmUgVGVhbTEVMBMGA1UEAwwMUnVieSBUZXN0IENBMSUwIwYJKoZI
|
|
||||||
-hvcNAQkBFhZzZWN1cml0eUBydWJ5LWxhbmcub3JnMB4XDTEwMTIyMzEwMjM1MloX
|
|
||||||
-DTE0MDEwMTEwMjM1MlowYDELMAkGA1UEBhMCSlAxEDAOBgNVBAgMB1NoaW1hbmUx
|
|
||||||
-FzAVBgNVBAoMDlJ1YnkgQ29yZSBUZWFtMRIwEAYDVQQLDAlSdWJ5IFRlc3QxEjAQ
|
|
||||||
-BgNVBAMMCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA23XQ
|
|
||||||
-Rd6x379xoA6wpea89Byd5SVnZMV7y/Gvxr6aqup+D8wFr+9AaQayyROdfuuiBuLq
|
|
||||||
-fQfHx5nH+9W462N3YisYEsNTWND1x0AMAdEmgjQWCePcZfTcu12lQWDnqXS610y2
|
|
||||||
-o5zFjImvy+ifBf7q/mQkv+ft4/bQ/Nbr/AaCEPsCAwEAAaN7MHkwCQYDVR0TBAIw
|
|
||||||
-ADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUw
|
|
||||||
-HQYDVR0OBBYEFOh+WKwTewMijZ6vMguEiYCADB7CMB8GA1UdIwQYMBaAFEHJSTex
|
|
||||||
-+mHjutcZPdnajLmCybRqMA0GCSqGSIb3DQEBBQUAA4GBAK7uzf7Jr0gLUDesavZo
|
|
||||||
-kJtn328tF8k8pdqtOdwqWweIJjgZMNaVzxBpx5IUg77xtY5v2ZFRxWOuHImsJ79P
|
|
||||||
-Ko9ODFdCCsmODPTzAvfqRLbkRwWvTnTkh4fZyHbtqzJ88DE0EBS8pjfN19wz2oLT
|
|
||||||
-1Jvp1c04zPqBX079X1MFXXb5
|
|
||||||
+MIICXDCCAcUCAQAwDQYJKoZIhvcNAQEFBQAwgYwxCzAJBgNVBAYTAkpQMRAwDgYD
|
|
||||||
+VQQIEwdTaGltYW5lMRQwEgYDVQQHEwtNYXR6LWUgY2l0eTEXMBUGA1UEChMOUnVi
|
|
||||||
+eSBDb3JlIFRlYW0xFTATBgNVBAMTDFJ1YnkgVGVzdCBDQTElMCMGCSqGSIb3DQEJ
|
|
||||||
+ARYWc2VjdXJpdHlAcnVieS1sYW5nLm9yZzAeFw0xNDAxMDMwMTM0MTdaFw0xOTAx
|
|
||||||
+MDIwMTM0MTdaMGAxCzAJBgNVBAYTAkpQMRAwDgYDVQQIEwdTaGltYW5lMRcwFQYD
|
|
||||||
+VQQKEw5SdWJ5IENvcmUgVGVhbTESMBAGA1UECxMJUnVieSBUZXN0MRIwEAYDVQQD
|
|
||||||
+Ewlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANt10EXesd+/
|
|
||||||
+caAOsKXmvPQcneUlZ2TFe8vxr8a+mqrqfg/MBa/vQGkGsskTnX7rogbi6n0Hx8eZ
|
|
||||||
+x/vVuOtjd2IrGBLDU1jQ9cdADAHRJoI0Fgnj3GX03LtdpUFg56l0utdMtqOcxYyJ
|
|
||||||
+r8vonwX+6v5kJL/n7eP20PzW6/wGghD7AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEA
|
|
||||||
+hfXTBYuM9EMciPKPsvKTd7c9lcagNLwzatiFXz6GCBDFXMF2o1M83DiYI5fn2iGs
|
|
||||||
+6E08lnAp//8eSpoXK9sEYrnvq+qnpeh8sdXtMKhseN5RfuOKwqRkqGOivP1DnPNV
|
|
||||||
+fVTJathTHEtrA6q2GeakT0cAlsVCWYVOw07NQYJTEPg=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
--
|
|
||||||
1.8.5.1
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
From f833e213596b0bcfad8264a555eb5093303fb5f2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jarek Prokop <jprokop@redhat.com>
|
||||||
|
Date: Thu, 25 Sep 2025 12:26:39 +0200
|
||||||
|
Subject: [PATCH] Add ruby_version_dir_name support for RDoc.
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/rdoc/ri/paths.rb | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/rdoc/ri/paths.rb b/lib/rdoc/ri/paths.rb
|
||||||
|
index 8e89b04e..731f9e36 100644
|
||||||
|
--- a/lib/rdoc/ri/paths.rb
|
||||||
|
+++ b/lib/rdoc/ri/paths.rb
|
||||||
|
@@ -10,7 +10,7 @@ module RDoc::RI::Paths
|
||||||
|
#:stopdoc:
|
||||||
|
require 'rbconfig'
|
||||||
|
|
||||||
|
- version = RbConfig::CONFIG['ruby_version']
|
||||||
|
+ version = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']
|
||||||
|
|
||||||
|
BASE = File.join RbConfig::CONFIG['ridir'], version
|
||||||
|
|
||||||
257
ruby-2.3.0-ruby_version.patch
Normal file
257
ruby-2.3.0-ruby_version.patch
Normal file
|
|
@ -0,0 +1,257 @@
|
||||||
|
From 5406ea4b4b13db747e5c1f8341bb257b4da04435 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Tue, 31 Mar 2015 16:21:04 +0200
|
||||||
|
Subject: [PATCH 1/4] Use ruby_version_dir_name for versioned directories.
|
||||||
|
|
||||||
|
This disallows changing the ruby_version constant by --with-ruby-version
|
||||||
|
configuration options. The two places version numbers are disallowed as
|
||||||
|
well, since there are a lot of places which cannot handle this format
|
||||||
|
properly.
|
||||||
|
|
||||||
|
ruby_version_dir_name now specifies custom version string for versioned
|
||||||
|
directories, e.g. instead of default X.Y.Z, you can specify whatever
|
||||||
|
string.
|
||||||
|
---
|
||||||
|
configure.ac | 66 ++++++++++++++++++++++++---------------------
|
||||||
|
template/ruby.pc.in | 1 +
|
||||||
|
2 files changed, 36 insertions(+), 31 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 2bbce78fd0..9d8662369c 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -4422,9 +4422,6 @@ AS_CASE(["$target_os"],
|
||||||
|
rubyw_install_name='$(RUBYW_INSTALL_NAME)'
|
||||||
|
])
|
||||||
|
|
||||||
|
-rubylibdir='${rubylibprefix}/${ruby_version}'
|
||||||
|
-rubyarchdir=${multiarch+'${rubyarchprefix}/${ruby_version}'}${multiarch-'${rubylibdir}/${arch}'}
|
||||||
|
-
|
||||||
|
rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}
|
||||||
|
AC_ARG_WITH(rubyarchprefix,
|
||||||
|
AS_HELP_STRING([--with-rubyarchprefix=DIR],
|
||||||
|
@@ -4447,57 +4444,63 @@ AC_ARG_WITH(ridir,
|
||||||
|
AC_SUBST(ridir)
|
||||||
|
AC_SUBST(RI_BASE_NAME)
|
||||||
|
|
||||||
|
-AC_ARG_WITH(ruby-version,
|
||||||
|
- AS_HELP_STRING([--with-ruby-version=STR], [ruby version string for version specific directories [[full]] (full|minor|STR)]),
|
||||||
|
- [ruby_version=$withval],
|
||||||
|
- [ruby_version=full])
|
||||||
|
unset RUBY_LIB_VERSION
|
||||||
|
-unset RUBY_LIB_VERSION_STYLE
|
||||||
|
-AS_CASE(["$ruby_version"],
|
||||||
|
- [full], [RUBY_LIB_VERSION_STYLE='3 /* full */'],
|
||||||
|
- [minor], [RUBY_LIB_VERSION_STYLE='2 /* minor */'])
|
||||||
|
-AS_IF([test ${RUBY_LIB_VERSION_STYLE+set}], [
|
||||||
|
- {
|
||||||
|
- echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE"
|
||||||
|
- echo '@%:@include "confdefs.h"'
|
||||||
|
- echo '#define STRINGIZE(x) x'
|
||||||
|
- test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0'
|
||||||
|
- echo '#include "version.h"'
|
||||||
|
- echo 'ruby_version=RUBY_LIB_VERSION'
|
||||||
|
- } > conftest.c
|
||||||
|
- ruby_version="`$CPP -I. -I"${srcdir}" -I"${srcdir}/include" conftest.c | sed '/^ruby_version=/!d;s/ //g'`"
|
||||||
|
- eval $ruby_version
|
||||||
|
-], [test -z "${ruby_version}"], [
|
||||||
|
- AC_MSG_ERROR([No ruby version, No place for bundled libraries])
|
||||||
|
-], [
|
||||||
|
- RUBY_LIB_VERSION="${ruby_version}"
|
||||||
|
-])
|
||||||
|
+RUBY_LIB_VERSION_STYLE='3 /* full */'
|
||||||
|
+{
|
||||||
|
+echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE"
|
||||||
|
+echo '@%:@include "confdefs.h"'
|
||||||
|
+echo '#define STRINGIZE(x) x'
|
||||||
|
+test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0'
|
||||||
|
+echo '#include "version.h"'
|
||||||
|
+echo 'ruby_version=RUBY_LIB_VERSION'
|
||||||
|
+} > conftest.c
|
||||||
|
+ruby_version="`$CPP -I. -I"${srcdir}" -I"${srcdir}/include" conftest.c | sed '/^ruby_version=/!d;s/ //g'`"
|
||||||
|
+eval $ruby_version
|
||||||
|
+
|
||||||
|
+RUBY_LIB_VERSION="${ruby_version}"
|
||||||
|
+
|
||||||
|
AC_SUBST(RUBY_LIB_VERSION_STYLE)
|
||||||
|
AC_SUBST(RUBY_LIB_VERSION)
|
||||||
|
|
||||||
|
+AC_ARG_WITH(ruby-version,
|
||||||
|
+ AS_HELP_STRING([--with-ruby-version=STR], [ruby version string for version specific directories [[full]] (full|STR)]),
|
||||||
|
+ [ruby_version_dir_name=$withval],
|
||||||
|
+ [ruby_version_dir_name=full])
|
||||||
|
+AS_CASE(["$ruby_version_dir_name"],
|
||||||
|
+ [full], [ruby_version_dir_name='${ruby_version}'])
|
||||||
|
+
|
||||||
|
+ruby_version_dir=/'${ruby_version_dir_name}'
|
||||||
|
+
|
||||||
|
+if test -z "${ruby_version_dir_name}"; then
|
||||||
|
+ AC_MSG_ERROR([No ruby version, No place for bundled libraries])
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+rubylibdir='${rubylibprefix}'${ruby_version_dir}
|
||||||
|
+rubyarchdir=${multiarch+'${rubyarchprefix}'${ruby_version_dir}}${multiarch-'${rubylibdir}/${arch}'}
|
||||||
|
+
|
||||||
|
AC_ARG_WITH(sitedir,
|
||||||
|
AS_HELP_STRING([--with-sitedir=DIR], [site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]], "no" to disable site directory]),
|
||||||
|
[sitedir=$withval],
|
||||||
|
[sitedir='${rubylibprefix}/site_ruby'])
|
||||||
|
-sitelibdir='${sitedir}/${ruby_version}'
|
||||||
|
+sitelibdir='${sitedir}'${ruby_version_dir}
|
||||||
|
|
||||||
|
AC_ARG_WITH(sitearchdir,
|
||||||
|
AS_HELP_STRING([--with-sitearchdir=DIR],
|
||||||
|
[architecture dependent site libraries in DIR [[SITEDIR/SITEARCH]], "no" to disable site directory]),
|
||||||
|
[sitearchdir=$withval],
|
||||||
|
- [sitearchdir=${multiarch+'${rubysitearchprefix}/site_ruby/${ruby_version}'}${multiarch-'${sitelibdir}/${sitearch}'}])
|
||||||
|
+ [sitearchdir=${multiarch+'${rubysitearchprefix}/site_ruby'${ruby_version_dir}}${multiarch-'${sitelibdir}/${sitearch}'}])
|
||||||
|
|
||||||
|
AC_ARG_WITH(vendordir,
|
||||||
|
AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]], "no" to disable vendor directory]),
|
||||||
|
[vendordir=$withval],
|
||||||
|
[vendordir='${rubylibprefix}/vendor_ruby'])
|
||||||
|
-vendorlibdir='${vendordir}/${ruby_version}'
|
||||||
|
+vendorlibdir='${vendordir}'${ruby_version_dir}
|
||||||
|
|
||||||
|
AC_ARG_WITH(vendorarchdir,
|
||||||
|
AS_HELP_STRING([--with-vendorarchdir=DIR],
|
||||||
|
[architecture dependent vendor libraries in DIR [[VENDORDIR/SITEARCH]], "no" to disable vendor directory]),
|
||||||
|
[vendorarchdir=$withval],
|
||||||
|
- [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])
|
||||||
|
+ [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])
|
||||||
|
|
||||||
|
AS_IF([test "${LOAD_RELATIVE+set}"], [
|
||||||
|
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
|
||||||
|
@@ -4514,6 +4517,7 @@ AC_SUBST(sitearchincludedir)dnl
|
||||||
|
AC_SUBST(arch)dnl
|
||||||
|
AC_SUBST(sitearch)dnl
|
||||||
|
AC_SUBST(ruby_version)dnl
|
||||||
|
+AC_SUBST(ruby_version_dir_name)dnl
|
||||||
|
AC_SUBST(rubylibdir)dnl
|
||||||
|
AC_SUBST(rubyarchdir)dnl
|
||||||
|
AC_SUBST(sitedir)dnl
|
||||||
|
diff --git a/template/ruby.pc.in b/template/ruby.pc.in
|
||||||
|
index 6901ec2320..9b7b787208 100644
|
||||||
|
--- a/template/ruby.pc.in
|
||||||
|
+++ b/template/ruby.pc.in
|
||||||
|
@@ -2,6 +2,7 @@ MAJOR=@MAJOR@
|
||||||
|
MINOR=@MINOR@
|
||||||
|
TEENY=@TEENY@
|
||||||
|
ruby_version=@ruby_version@
|
||||||
|
+ruby_version_dir_name=@ruby_version_dir_name@
|
||||||
|
RUBY_API_VERSION=@RUBY_API_VERSION@
|
||||||
|
RUBY_PROGRAM_VERSION=@RUBY_PROGRAM_VERSION@
|
||||||
|
arch=@arch@
|
||||||
|
|
||||||
|
From baff562149499973123d2187620201be641c6538 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Tue, 31 Mar 2015 16:37:26 +0200
|
||||||
|
Subject: [PATCH 2/4] Add ruby_version_dir_name support for RDoc.
|
||||||
|
|
||||||
|
---
|
||||||
|
tool/rbinstall.rb | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
|
||||||
|
index 874c3ef1d9..a9e6365b27 100755
|
||||||
|
--- a/tool/rbinstall.rb
|
||||||
|
+++ b/tool/rbinstall.rb
|
||||||
|
@@ -1053,7 +1053,7 @@ def (bins = []).add(name)
|
||||||
|
|
||||||
|
install?(:doc, :rdoc) do
|
||||||
|
if $rdocdir
|
||||||
|
- ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version'], "system")
|
||||||
|
+ ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version_dir_name'] || CONFIG['ruby_version'], "system")
|
||||||
|
prepare "rdoc", ridatadir
|
||||||
|
install_recursive($rdocdir, ridatadir, :no_install => rdoc_noinst, :mode => $data_mode)
|
||||||
|
end
|
||||||
|
|
||||||
|
From 7cf872a9a34f38d71cd2ca04ac114b4ea85cc56c Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Tue, 31 Mar 2015 16:37:44 +0200
|
||||||
|
Subject: [PATCH 3/4] Add ruby_version_dir_name support for RubyGems.
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/rubygems/defaults.rb | 7 ++++---
|
||||||
|
test/rubygems/test_gem.rb | 5 +++--
|
||||||
|
2 files changed, 7 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
|
||||||
|
index 90f09fc191..f6b8a03b95 100644
|
||||||
|
--- a/lib/rubygems/defaults.rb
|
||||||
|
+++ b/lib/rubygems/defaults.rb
|
||||||
|
@@ -35,7 +35,7 @@ def self.default_spec_cache_dir
|
||||||
|
# specified in the environment
|
||||||
|
|
||||||
|
def self.default_dir
|
||||||
|
- @default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version"])
|
||||||
|
+ @default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"])
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
@@ -104,7 +104,8 @@ def self.user_dir
|
||||||
|
gem_dir = File.join(Gem.user_home, ".gem")
|
||||||
|
gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
|
||||||
|
parts = [gem_dir, ruby_engine]
|
||||||
|
- parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty?
|
||||||
|
+ ruby_version_dir_name = RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
|
||||||
|
+ parts << ruby_version_dir_name unless ruby_version_dir_name.empty?
|
||||||
|
File.join parts
|
||||||
|
end
|
||||||
|
|
||||||
|
@@ -265,7 +266,7 @@ def self.vendor_dir # :nodoc:
|
||||||
|
return nil unless RbConfig::CONFIG.key? "vendordir"
|
||||||
|
|
||||||
|
File.join RbConfig::CONFIG["vendordir"], "gems",
|
||||||
|
- RbConfig::CONFIG["ruby_version"]
|
||||||
|
+ RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
|
||||||
|
index 74c8953904..1f3bd91d51 100644
|
||||||
|
--- a/test/rubygems/test_gem.rb
|
||||||
|
+++ b/test/rubygems/test_gem.rb
|
||||||
|
@@ -1339,7 +1339,8 @@ def test_self_use_paths
|
||||||
|
|
||||||
|
def test_self_user_dir
|
||||||
|
parts = [@userhome, ".gem", Gem.ruby_engine]
|
||||||
|
- parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty?
|
||||||
|
+ ruby_version_dir_name = RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
|
||||||
|
+ parts << ruby_version_dir_name unless ruby_version_dir_name.empty?
|
||||||
|
|
||||||
|
FileUtils.mkdir_p File.join(parts)
|
||||||
|
|
||||||
|
@@ -1415,7 +1416,7 @@ def test_self_vendor_dir
|
||||||
|
vendordir(File.join(@tempdir, "vendor")) do
|
||||||
|
expected =
|
||||||
|
File.join RbConfig::CONFIG["vendordir"], "gems",
|
||||||
|
- RbConfig::CONFIG["ruby_version"]
|
||||||
|
+ RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
|
||||||
|
|
||||||
|
assert_equal expected, Gem.vendor_dir
|
||||||
|
end
|
||||||
|
|
||||||
|
From 17cb98b7b78f8bfc511feffbe061747f676055b1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Wed, 1 Apr 2015 14:55:37 +0200
|
||||||
|
Subject: [PATCH 4/4] Let headers directories follow the configured version
|
||||||
|
name.
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 9d8662369c..2bc5153141 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -151,7 +151,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`
|
||||||
|
RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`
|
||||||
|
AC_SUBST(RUBY_BASE_NAME)
|
||||||
|
AC_SUBST(RUBYW_BASE_NAME)
|
||||||
|
-AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}')
|
||||||
|
+AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version_dir_name}')
|
||||||
|
|
||||||
|
dnl checks for alternative programs
|
||||||
|
AC_CANONICAL_BUILD
|
||||||
86
ruby-2.7.0-Initialize-ABRT-hook.patch
Normal file
86
ruby-2.7.0-Initialize-ABRT-hook.patch
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
From 03b44a86b574dc0b63fd57c5f9b52b56ad3ced37 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Mon, 6 Jan 2020 13:56:04 +0100
|
||||||
|
Subject: [PATCH] Initialize ABRT hook.
|
||||||
|
|
||||||
|
The ABRT hook used to be initialized by preludes via patches [[1], [2]].
|
||||||
|
Unfortunately, due to [[3]] and especially since [[4]], this would
|
||||||
|
require boostrapping [[5]].
|
||||||
|
|
||||||
|
To keep the things simple for now, load the ABRT hook via C.
|
||||||
|
|
||||||
|
[1]: https://bugs.ruby-lang.org/issues/8566
|
||||||
|
[2]: https://bugs.ruby-lang.org/issues/15306
|
||||||
|
[3]: https://bugs.ruby-lang.org/issues/16254
|
||||||
|
[4]: https://github.com/ruby/ruby/pull/2735
|
||||||
|
[5]: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/
|
||||||
|
---
|
||||||
|
abrt.c | 12 ++++++++++++
|
||||||
|
common.mk | 1 +
|
||||||
|
ruby.c | 4 ++++
|
||||||
|
spec/ruby/core/kernel/require_spec.rb | 2 ++
|
||||||
|
4 files changed, 19 insertions(+)
|
||||||
|
create mode 100644 abrt.c
|
||||||
|
|
||||||
|
diff --git a/abrt.c b/abrt.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e99cb432e6
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/abrt.c
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+#include "internal.h"
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+Init_abrt(void)
|
||||||
|
+{
|
||||||
|
+ rb_eval_string(
|
||||||
|
+ " begin\n"
|
||||||
|
+ " require 'abrt'\n"
|
||||||
|
+ " rescue LoadError\n"
|
||||||
|
+ " end\n"
|
||||||
|
+ );
|
||||||
|
+}
|
||||||
|
diff --git a/common.mk b/common.mk
|
||||||
|
index 08fee9119a..dae7d9dc00 100644
|
||||||
|
--- a/common.mk
|
||||||
|
+++ b/common.mk
|
||||||
|
@@ -116,6 +116,7 @@ PRISM_FILES = prism/api_node.$(OBJEXT) \
|
||||||
|
prism_init.$(OBJEXT)
|
||||||
|
|
||||||
|
COMMONOBJS = \
|
||||||
|
+ abrt.$(OBJEXT) \
|
||||||
|
array.$(OBJEXT) \
|
||||||
|
ast.$(OBJEXT) \
|
||||||
|
bignum.$(OBJEXT) \
|
||||||
|
diff --git a/ruby.c b/ruby.c
|
||||||
|
index b00fc1502d..32b88f7496 100644
|
||||||
|
--- a/ruby.c
|
||||||
|
+++ b/ruby.c
|
||||||
|
@@ -1773,10 +1773,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)
|
||||||
|
|
||||||
|
void Init_builtin_features(void);
|
||||||
|
|
||||||
|
+/* abrt.c */
|
||||||
|
+void Init_abrt(void);
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
ruby_init_prelude(void)
|
||||||
|
{
|
||||||
|
Init_builtin_features();
|
||||||
|
+ Init_abrt();
|
||||||
|
}
|
||||||
|
|
||||||
|
void rb_call_builtin_inits(void);
|
||||||
|
diff --git a/spec/ruby/core/kernel/require_spec.rb b/spec/ruby/core/kernel/require_spec.rb
|
||||||
|
index 60d17242fe..a8f93b0db4 100644
|
||||||
|
--- a/spec/ruby/core/kernel/require_spec.rb
|
||||||
|
+++ b/spec/ruby/core/kernel/require_spec.rb
|
||||||
|
@@ -26,6 +26,8 @@
|
||||||
|
out = ruby_exe("puts $LOADED_FEATURES", options: '--disable-gems --disable-did-you-mean')
|
||||||
|
features = out.lines.map { |line| File.basename(line.chomp, '.*') }
|
||||||
|
|
||||||
|
+ # Ignore ABRT
|
||||||
|
+ features -= %w[abrt]
|
||||||
|
# Ignore CRuby internals
|
||||||
|
features -= %w[encdb transdb windows_1252 windows_31j]
|
||||||
|
features.reject! { |feature| feature.end_with?('-fake') }
|
||||||
23
ruby-3.3.0-Disable-syntax-suggest-test-case.patch
Normal file
23
ruby-3.3.0-Disable-syntax-suggest-test-case.patch
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
From 9b7cb6a40d73bb86ee0de34360068e90e80f4e7e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Thu, 7 Sep 2023 13:13:02 +0200
|
||||||
|
Subject: [PATCH] Disable syntax-suggest test case.
|
||||||
|
|
||||||
|
This requires internet connection.
|
||||||
|
---
|
||||||
|
common.mk | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/common.mk b/common.mk
|
||||||
|
index dae7d9dc00..111e859d1b 100644
|
||||||
|
--- a/common.mk
|
||||||
|
+++ b/common.mk
|
||||||
|
@@ -1619,8 +1619,6 @@ no-test-bundled-gems-spec:
|
||||||
|
|
||||||
|
test-syntax-suggest:
|
||||||
|
|
||||||
|
-check: $(DOT_WAIT) $(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest
|
||||||
|
-
|
||||||
|
test-bundler-precheck: $(TEST_RUNNABLE)-test-bundler-precheck
|
||||||
|
no-test-bundler-precheck:
|
||||||
|
yes-test-bundler-precheck: main $(arch)-fake.rb
|
||||||
|
|
@ -0,0 +1,117 @@
|
||||||
|
From 1cfb11bc8d01e4fc1ff47807721e29b250f0f19f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jarek Prokop <jprokop@redhat.com>
|
||||||
|
Date: Mon, 22 Dec 2025 10:13:34 +0100
|
||||||
|
Subject: [PATCH] Support customizable rustc_flags for rustc builds.
|
||||||
|
|
||||||
|
Add `rustc_flags` option for configure that appends to RUSTC_FLAGS
|
||||||
|
flags used when compiling with rustc for customizable build flags.
|
||||||
|
It appends to existing defaults in RUSTC_FLAGS.
|
||||||
|
|
||||||
|
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
|
||||||
|
---
|
||||||
|
common.mk | 10 ++--------
|
||||||
|
configure.ac | 8 ++++++++
|
||||||
|
defs/jit.mk | 2 ++
|
||||||
|
template/Makefile.in | 1 +
|
||||||
|
4 files changed, 13 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/common.mk b/common.mk
|
||||||
|
index 08fee9119a..9ac5ae919f 100644
|
||||||
|
--- a/common.mk
|
||||||
|
+++ b/common.mk
|
||||||
|
@@ -270,21 +270,15 @@ MAKE_LINK = $(MINIRUBY) -rfileutils -e "include FileUtils::Verbose" \
|
||||||
|
# For release builds
|
||||||
|
YJIT_RUSTC_ARGS = --crate-name=yjit \
|
||||||
|
$(JIT_RUST_FLAGS) \
|
||||||
|
+ $(RUSTC_FLAGS) \
|
||||||
|
--edition=2021 \
|
||||||
|
- -g \
|
||||||
|
- -C lto=thin \
|
||||||
|
- -C opt-level=3 \
|
||||||
|
- -C overflow-checks=on \
|
||||||
|
'--out-dir=$(CARGO_TARGET_DIR)/release/' \
|
||||||
|
'$(top_srcdir)/yjit/src/lib.rs'
|
||||||
|
|
||||||
|
ZJIT_RUSTC_ARGS = --crate-name=zjit \
|
||||||
|
$(JIT_RUST_FLAGS) \
|
||||||
|
+ $(RUSTC_FLAGS) \
|
||||||
|
--edition=2024 \
|
||||||
|
- -g \
|
||||||
|
- -C lto=thin \
|
||||||
|
- -C opt-level=3 \
|
||||||
|
- -C overflow-checks=on \
|
||||||
|
'--out-dir=$(CARGO_TARGET_DIR)/release/' \
|
||||||
|
'$(top_srcdir)/zjit/src/lib.rs'
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 2bbce78fd0..a3aa6dc383 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -69,6 +69,7 @@ dnl 93(bright yellow) is copied from .github/workflows/mingw.yml
|
||||||
|
AC_ARG_VAR([cflags], [additional CFLAGS (ignored when CFLAGS is given)])dnl
|
||||||
|
AC_ARG_VAR([cppflags], [additional CPPFLAGS (ignored when CPPFLAGS is given)])dnl
|
||||||
|
AC_ARG_VAR([cxxflags], [additional CXXFLAGS (ignored when CXXFLAGS is given)])dnl
|
||||||
|
+AC_ARG_VAR([rustc_flags], [additional RUSTC_FLAGS])dnl
|
||||||
|
|
||||||
|
[begin]_group "environment section" && {
|
||||||
|
HAVE_BASERUBY=yes
|
||||||
|
@@ -4054,6 +4055,11 @@ AS_CASE(["${ZJIT_SUPPORT}"],
|
||||||
|
AC_DEFINE(USE_ZJIT, 0)
|
||||||
|
])
|
||||||
|
|
||||||
|
+RUSTC_FLAGS='-g -C lto=thin -C opt-level=3 -C overflow-checks=on'
|
||||||
|
+AS_IF([test -n "${rustc_flags}"], [
|
||||||
|
+ RUSTC_FLAGS="${RUSTC_FLAGS} ${rustc_flags}"
|
||||||
|
+])
|
||||||
|
+
|
||||||
|
JIT_RUST_FLAGS='--crate-type=staticlib --cfg feature=\"stats_allocator\"'
|
||||||
|
RLIB_DIR=
|
||||||
|
AS_CASE(["$JIT_CARGO_SUPPORT:$YJIT_SUPPORT:$ZJIT_SUPPORT"],
|
||||||
|
@@ -4111,6 +4117,7 @@ AS_IF([test -n "$RUST_LIB"], [
|
||||||
|
dnl These variables end up in ::RbConfig::CONFIG
|
||||||
|
AC_SUBST(RUSTC)dnl Rust compiler command
|
||||||
|
AC_SUBST(JIT_RUST_FLAGS)dnl the common rustc flags for JIT crates such as zjit
|
||||||
|
+AC_SUBST(RUSTC_FLAGS)dnl user-configurable rustc compiler flags
|
||||||
|
AC_SUBST(CARGO)dnl Cargo command for Rust builds
|
||||||
|
AC_SUBST(CARGO_BUILD_ARGS)dnl for selecting Rust build profiles
|
||||||
|
AC_SUBST(YJIT_SUPPORT)dnl what flavor of YJIT the Ruby build includes
|
||||||
|
@@ -4855,6 +4862,7 @@ config_summary "strip command" "$STRIP"
|
||||||
|
config_summary "install doc" "$DOCTARGETS"
|
||||||
|
config_summary "YJIT support" "$YJIT_SUPPORT"
|
||||||
|
config_summary "ZJIT support" "$ZJIT_SUPPORT"
|
||||||
|
+config_summary "RUSTC_FLAGS" "$RUSTC_FLAGS"
|
||||||
|
config_summary "man page type" "$MANTYPE"
|
||||||
|
config_summary "search path" "$search_path"
|
||||||
|
config_summary "static-linked-ext" ${EXTSTATIC:+"yes"}
|
||||||
|
diff --git a/defs/jit.mk b/defs/jit.mk
|
||||||
|
index 42b56c4cd9..27b14e7a07 100644
|
||||||
|
--- a/defs/jit.mk
|
||||||
|
+++ b/defs/jit.mk
|
||||||
|
@@ -40,6 +40,7 @@ else ifneq ($(strip $(RLIB_DIR)),) # combo build
|
||||||
|
$(RUST_LIB): $(srcdir)/ruby.rs
|
||||||
|
$(ECHO) 'building $(@F)'
|
||||||
|
$(gnumake_recursive)$(Q) $(RUSTC) --edition=2024 \
|
||||||
|
+ $(RUSTC_FLAGS) \
|
||||||
|
'-L$(@D)' \
|
||||||
|
--extern=yjit \
|
||||||
|
--extern=zjit \
|
||||||
|
@@ -58,6 +59,7 @@ $(JIT_RLIB):
|
||||||
|
$(gnumake_recursive)$(Q) $(RUSTC) --crate-name=jit \
|
||||||
|
--edition=2024 \
|
||||||
|
$(JIT_RUST_FLAGS) \
|
||||||
|
+ $(RUSTC_FLAGS) \
|
||||||
|
'--out-dir=$(@D)' \
|
||||||
|
'$(top_srcdir)/jit/src/lib.rs'
|
||||||
|
endif # ifneq ($(JIT_CARGO_SUPPORT),no)
|
||||||
|
diff --git a/template/Makefile.in b/template/Makefile.in
|
||||||
|
index 443c394cb4..0b7b50e3aa 100644
|
||||||
|
--- a/template/Makefile.in
|
||||||
|
+++ b/template/Makefile.in
|
||||||
|
@@ -115,6 +115,7 @@ CARGO_TARGET_DIR=@abs_top_builddir@/target
|
||||||
|
CARGO_BUILD_ARGS=@CARGO_BUILD_ARGS@
|
||||||
|
ZJIT_TEST_FEATURES=@ZJIT_TEST_FEATURES@
|
||||||
|
JIT_RUST_FLAGS=@JIT_RUST_FLAGS@
|
||||||
|
+RUSTC_FLAGS=@RUSTC_FLAGS@
|
||||||
|
RLIB_DIR=@RLIB_DIR@
|
||||||
|
RUST_LIB=@RUST_LIB@
|
||||||
|
RUST_LIBOBJ = $(RUST_LIB:.a=.@OBJEXT@)
|
||||||
59
ruby.rpmlintrc
Normal file
59
ruby.rpmlintrc
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
# Keep matching patterns enough not to hide unintended errors and warnings.
|
||||||
|
|
||||||
|
# There is no way to implement this with `%{SOURCE0}` without `%{_sourcedir}`.
|
||||||
|
# The order in the .spec file could be possibly different.
|
||||||
|
addFilter(r'ruby\.(spec|src):20: E: use-of-RPM_SOURCE_DIR$')
|
||||||
|
|
||||||
|
# The used version is not obvious.
|
||||||
|
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-build_assert\)$')
|
||||||
|
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-check_type\)$')
|
||||||
|
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-container_of\)$')
|
||||||
|
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-list\)$')
|
||||||
|
|
||||||
|
# The template files do not have to have executable bits.
|
||||||
|
addFilter(r'^rubygem-bundler\.noarch: E: non-executable-script /usr/share/gems/gems/bundler-[\d\.]+/lib/bundler/templates/[\w/\.]+ 644 /usr/bin/env ')
|
||||||
|
|
||||||
|
# Samples don't really need executable bits.
|
||||||
|
addFilter(r'^rubygem-bigdecimal\.x86_64: E: non-executable-script /usr/share/gems/gems/bigdecimal-[\d\.]+/sample/\w+.rb 644 /usr/local/bin/ruby$')
|
||||||
|
|
||||||
|
# The bundled gem files permissions are overridden as 644 by `make install`.
|
||||||
|
# https://bugs.ruby-lang.org/issues/17840
|
||||||
|
# https://github.com/rubygems/rubygems/issues/5255
|
||||||
|
addFilter(r'^.*: E: non-executable-script /usr/share/gems/gems/(abbrev|getoptlong|nkf|observer|resolv|resolv-replace|rinda|syslog)-[\d\.]+/bin/\w+ 644 ')
|
||||||
|
|
||||||
|
# Ruby provides API to set the cipher list.
|
||||||
|
addFilter(r'^ruby-libs\.\w+: W: crypto-policy-non-compliance-openssl /usr/lib(64)?/ruby/openssl.so SSL_CTX_set_cipher_list$')
|
||||||
|
|
||||||
|
# `gethostbyname` is part of deprecated Ruby API. There is also request to drop the API altogether:
|
||||||
|
# https://bugs.ruby-lang.org/issues/13097
|
||||||
|
# https://bugs.ruby-lang.org/issues/17944
|
||||||
|
addFilter(r'^ruby-libs\.\w+: W: binary-or-shlib-calls-gethostbyname /usr/lib(64)?/ruby/socket.so$')
|
||||||
|
|
||||||
|
# Rake ships some examples.
|
||||||
|
addFilter(r'^rubygem-rake.noarch: W: devel-file-in-non-devel-package /usr/share/gems/gems/rake-[\d\.]+/doc/example/\w+.c$')
|
||||||
|
|
||||||
|
# Some executables don't have their manual pages. Is it worth of use help2man?
|
||||||
|
addFilter(r'^.+: W: no-manual-page-for-binary (bundler|gem|racc|rbs|rdbg|rdoc|ruby-mri|syntax_suggest|typeprof)$')
|
||||||
|
|
||||||
|
# Default gems does not come with any documentation.
|
||||||
|
addFilter(r'^rubygem-(bigdecimal|io-console|json|psych)\.\w+: W: no-documentation$')
|
||||||
|
|
||||||
|
# rubygems-devel ships only RPM macros and generators. Their placement is given
|
||||||
|
# by RPM and can't be modified.
|
||||||
|
addFilter(r'rubygems-devel.noarch: W: only-non-binary-in-usr-lib$')
|
||||||
|
|
||||||
|
# Ignore some spelling false positives.
|
||||||
|
# Ignore spelling of technical terms
|
||||||
|
addFilter(r'^ruby-default-gems.noarch: E: spelling-error \(\'gemspec\'')
|
||||||
|
addFilter(r'^ruby-libs.x86_64: E: spelling-error \(\'libruby\'')
|
||||||
|
addFilter(r'^rubygem-test-unit.noarch: E: spelling-error \(\'xUnit\'')
|
||||||
|
addFilter(r'^rubygem-psych.x86_64: E: spelling-error \(\'libyaml\'')
|
||||||
|
addFilter(r'^rubygem-io-console.x86_64: E: spelling-error \(\'readline\'')
|
||||||
|
# `pyaml` is part of URL
|
||||||
|
addFilter(r'^rubygem-psych.x86_64: E: spelling-error \(\'pyyaml\'')
|
||||||
|
# `de-` is actually prefix
|
||||||
|
addFilter(r'^rubygem-psych.x86_64: E: spelling-error \(\'de\'')
|
||||||
|
|
||||||
|
# It does not seemt to be worth of changing rubygems to archful package due to
|
||||||
|
# single directory, unless it causes some real troubles.
|
||||||
|
addFilter(r'^rubygems.noarch: E: noarch-with-lib64$')
|
||||||
|
|
@ -1,151 +0,0 @@
|
||||||
From b95b9942361104dc5b7fd08eb4970f893d8c1a54 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Wed, 13 Feb 2013 13:12:30 +0100
|
|
||||||
Subject: [PATCH 1/3] Remove duplicated check.
|
|
||||||
|
|
||||||
The loaded specifications are rejected already in #gather_dependencies,
|
|
||||||
so this condition cannot trigger.
|
|
||||||
---
|
|
||||||
lib/rubygems/dependency_installer.rb | 3 ---
|
|
||||||
1 file changed, 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
|
|
||||||
index d811f62..dffa8df 100644
|
|
||||||
--- a/lib/rubygems/dependency_installer.rb
|
|
||||||
+++ b/lib/rubygems/dependency_installer.rb
|
|
||||||
@@ -330,9 +330,6 @@ class Gem::DependencyInstaller
|
|
||||||
|
|
||||||
last = @gems_to_install.size - 1
|
|
||||||
@gems_to_install.each_with_index do |spec, index|
|
|
||||||
- # REFACTOR more current spec set hardcoding, should be abstracted?
|
|
||||||
- next if Gem::Specification.include?(spec) and index != last
|
|
||||||
-
|
|
||||||
# TODO: make this sorta_verbose so other users can benefit from it
|
|
||||||
say "Installing gem #{spec.full_name}" if Gem.configuration.really_verbose
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From 2fa9087b1986db6c7945c0f997fed2bfff5ce06a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Wed, 13 Feb 2013 15:47:47 +0100
|
|
||||||
Subject: [PATCH 2/3] Do not modify global Specification.dirs during
|
|
||||||
installation.
|
|
||||||
|
|
||||||
While gems are installed into --install-dir just fine even without
|
|
||||||
modifications of Specification.dirs, change in it makes inaccessible
|
|
||||||
gems already present on the system.
|
|
||||||
---
|
|
||||||
lib/rubygems/dependency_installer.rb | 15 ++++++---------
|
|
||||||
1 file changed, 6 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
|
|
||||||
index dffa8df..841f26a 100644
|
|
||||||
--- a/lib/rubygems/dependency_installer.rb
|
|
||||||
+++ b/lib/rubygems/dependency_installer.rb
|
|
||||||
@@ -57,16 +57,14 @@ class Gem::DependencyInstaller
|
|
||||||
# :build_args:: See Gem::Installer::new
|
|
||||||
|
|
||||||
def initialize(options = {})
|
|
||||||
- @install_dir = options[:install_dir] || Gem.dir
|
|
||||||
|
|
||||||
if options[:install_dir] then
|
|
||||||
- # HACK shouldn't change the global settings, needed for -i behavior
|
|
||||||
- # maybe move to the install command? See also github #442
|
|
||||||
- Gem::Specification.dirs = @install_dir
|
|
||||||
+ Gem.ensure_gem_subdirectories options[:install_dir]
|
|
||||||
end
|
|
||||||
|
|
||||||
options = DEFAULT_OPTIONS.merge options
|
|
||||||
|
|
||||||
+ @install_dir = options[:install_dir]
|
|
||||||
@bin_dir = options[:bin_dir]
|
|
||||||
@dev_shallow = options[:dev_shallow]
|
|
||||||
@development = options[:development]
|
|
||||||
@@ -92,7 +89,7 @@ class Gem::DependencyInstaller
|
|
||||||
@installed_gems = []
|
|
||||||
@toplevel_specs = nil
|
|
||||||
|
|
||||||
- @cache_dir = options[:cache_dir] || @install_dir
|
|
||||||
+ @cache_dir = options[:cache_dir] || @install_dir || Gem.dir
|
|
||||||
|
|
||||||
# Set with any errors that SpecFetcher finds while search through
|
|
||||||
# gemspecs for a dep
|
|
||||||
@@ -202,7 +199,7 @@ class Gem::DependencyInstaller
|
|
||||||
# that this isn't dependent only on the currently installed gems
|
|
||||||
dependency_list.specs.reject! { |spec|
|
|
||||||
not keep_names.include?(spec.full_name) and
|
|
||||||
- Gem::Specification.include?(spec)
|
|
||||||
+ (!@install_dir && Gem::Specification.include?(spec))
|
|
||||||
}
|
|
||||||
|
|
||||||
unless dependency_list.ok? or @ignore_dependencies or @force then
|
|
||||||
@@ -254,7 +251,7 @@ class Gem::DependencyInstaller
|
|
||||||
to_do.push t.spec
|
|
||||||
end
|
|
||||||
|
|
||||||
- results.remove_installed! dep
|
|
||||||
+ results.remove_installed! dep unless @install_dir
|
|
||||||
|
|
||||||
@available << results
|
|
||||||
results.inject_into_list dependency_list
|
|
||||||
@@ -360,7 +357,7 @@ class Gem::DependencyInstaller
|
|
||||||
:force => @force,
|
|
||||||
:format_executable => @format_executable,
|
|
||||||
:ignore_dependencies => @ignore_dependencies,
|
|
||||||
- :install_dir => @install_dir,
|
|
||||||
+ :install_dir => (@install_dir || Gem.dir),
|
|
||||||
:security_policy => @security_policy,
|
|
||||||
:user_install => @user_install,
|
|
||||||
:wrappers => @wrappers,
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From d473204ce920702dd87257db49355929f31530d4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Fri, 15 Feb 2013 17:02:44 +0100
|
|
||||||
Subject: [PATCH 3/3] Default to Gem.dir as late as possible.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/dependency_installer.rb | 2 +-
|
|
||||||
lib/rubygems/installer.rb | 4 ++--
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
|
|
||||||
index 841f26a..abcfa0f 100644
|
|
||||||
--- a/lib/rubygems/dependency_installer.rb
|
|
||||||
+++ b/lib/rubygems/dependency_installer.rb
|
|
||||||
@@ -357,7 +357,7 @@ class Gem::DependencyInstaller
|
|
||||||
:force => @force,
|
|
||||||
:format_executable => @format_executable,
|
|
||||||
:ignore_dependencies => @ignore_dependencies,
|
|
||||||
- :install_dir => (@install_dir || Gem.dir),
|
|
||||||
+ :install_dir => @install_dir,
|
|
||||||
:security_policy => @security_policy,
|
|
||||||
:user_install => @user_install,
|
|
||||||
:wrappers => @wrappers,
|
|
||||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
|
||||||
index 780a88b..6543130 100644
|
|
||||||
--- a/lib/rubygems/installer.rb
|
|
||||||
+++ b/lib/rubygems/installer.rb
|
|
||||||
@@ -537,13 +537,13 @@ class Gem::Installer
|
|
||||||
:bin_dir => nil,
|
|
||||||
:env_shebang => false,
|
|
||||||
:force => false,
|
|
||||||
- :install_dir => Gem.dir,
|
|
||||||
:only_install_dir => false
|
|
||||||
}.merge options
|
|
||||||
|
|
||||||
@env_shebang = options[:env_shebang]
|
|
||||||
@force = options[:force]
|
|
||||||
- @gem_home = options[:install_dir]
|
|
||||||
+ @install_dir = options[:install_dir]
|
|
||||||
+ @gem_home = options[:install_dir] || Gem.dir
|
|
||||||
@ignore_dependencies = options[:ignore_dependencies]
|
|
||||||
@format_executable = options[:format_executable]
|
|
||||||
@security_policy = options[:security_policy]
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
From c9b2eff36728266052ccfff54d3ac0a0624fd0f1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Thu, 14 Feb 2013 11:50:41 +0100
|
|
||||||
Subject: [PATCH] Use File.join insteado of manual path creation.
|
|
||||||
|
|
||||||
This prevents issues, when File.join in #new_default_spec removes
|
|
||||||
superfluous slashes while they are kept in expected paths. E.g. the test
|
|
||||||
would fail if ruby configuration specifies --with-ruby-version=''.
|
|
||||||
---
|
|
||||||
test/rubygems/test_gem_commands_contents_command.rb | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/test/rubygems/test_gem_commands_contents_command.rb b/test/rubygems/test_gem_commands_contents_command.rb
|
|
||||||
index 60df53f..35c9631 100644
|
|
||||||
--- a/test/rubygems/test_gem_commands_contents_command.rb
|
|
||||||
+++ b/test/rubygems/test_gem_commands_contents_command.rb
|
|
||||||
@@ -140,10 +140,10 @@ lib/foo.rb
|
|
||||||
@cmd.execute
|
|
||||||
end
|
|
||||||
|
|
||||||
- expected = %W[
|
|
||||||
- #{Gem::ConfigMap[:bindir]}/default_command
|
|
||||||
- #{Gem::ConfigMap[:rubylibdir]}/default/gem.rb
|
|
||||||
- #{Gem::ConfigMap[:archdir]}/default_gem.so
|
|
||||||
+ expected = [
|
|
||||||
+ File.join(Gem::ConfigMap[:bindir], 'default_command'),
|
|
||||||
+ File.join(Gem::ConfigMap[:rubylibdir], 'default/gem.rb'),
|
|
||||||
+ File.join(Gem::ConfigMap[:archdir], 'default_gem.so')
|
|
||||||
].sort.join "\n"
|
|
||||||
|
|
||||||
assert_equal expected, @ui.output.chomp
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
@ -1,344 +0,0 @@
|
||||||
From ec90622235ae19b28a327cb50a10e0311e8f3d71 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Thu, 3 Nov 2011 16:43:05 +0100
|
|
||||||
Subject: [PATCH 1/8] Add dedicate extensions folder into $LOAD_PATH.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/specification.rb | 32 ++++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 30 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
|
||||||
index cabdf8d..87b14d2 100644
|
|
||||||
--- a/lib/rubygems/specification.rb
|
|
||||||
+++ b/lib/rubygems/specification.rb
|
|
||||||
@@ -1256,6 +1256,12 @@ class Gem::Specification
|
|
||||||
File.join full_gem_path, path
|
|
||||||
end
|
|
||||||
|
|
||||||
+ unless extensions.empty?
|
|
||||||
+ paths += require_paths.map do |path|
|
|
||||||
+ File.join ext_dir, path
|
|
||||||
+ end
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
# gem directories must come after -I and ENV['RUBYLIB']
|
|
||||||
insert_index = Gem.load_path_insert_index
|
|
||||||
|
|
||||||
@@ -1374,11 +1380,16 @@ class Gem::Specification
|
|
||||||
|
|
||||||
def contains_requirable_file? file
|
|
||||||
root = full_gem_path
|
|
||||||
+ ext = ext_dir
|
|
||||||
suffixes = Gem.suffixes
|
|
||||||
|
|
||||||
require_paths.any? do |lib|
|
|
||||||
- base = "#{root}/#{lib}/#{file}"
|
|
||||||
- suffixes.any? { |suf| File.file? "#{base}#{suf}" }
|
|
||||||
+ base = ["#{root}/#{lib}/#{file}"]
|
|
||||||
+ base << "#{ext}/#{lib}/#{file}" unless extensions.empty?
|
|
||||||
+
|
|
||||||
+ base.any? do |path|
|
|
||||||
+ suffixes.any? { |suf| File.file? "#{path}#{suf}" }
|
|
||||||
+ end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
@@ -1674,6 +1685,23 @@ class Gem::Specification
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
+ # Returns the full path to this spec's ext directory.
|
|
||||||
+ # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
|
|
||||||
+
|
|
||||||
+ def ext_dir
|
|
||||||
+ @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
+ ##
|
|
||||||
+ # Returns the full path to the exts directory containing this spec's
|
|
||||||
+ # gem directory. eg: /usr/local/lib/ruby/1.8/exts
|
|
||||||
+
|
|
||||||
+ def exts_dir
|
|
||||||
+ # TODO: this logic seems terribly broken, but tests fail if just base_dir
|
|
||||||
+ @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
+ ##
|
|
||||||
# Deprecated and ignored, defaults to true.
|
|
||||||
#
|
|
||||||
# Formerly used to indicate this gem was RDoc-capable.
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From e42819f32fc5d935f7e7189ec4be8bdab0a2cf3f Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Wed, 16 Nov 2011 13:26:48 +0100
|
|
||||||
Subject: [PATCH 2/8] Use spec's ext dir for extension installation.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/installer.rb | 2 +-
|
|
||||||
lib/rubygems/specification.rb | 7 +++----
|
|
||||||
2 files changed, 4 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
|
||||||
index 780a88b..854c177 100644
|
|
||||||
--- a/lib/rubygems/installer.rb
|
|
||||||
+++ b/lib/rubygems/installer.rb
|
|
||||||
@@ -646,7 +646,7 @@ TEXT
|
|
||||||
say "This could take a while..."
|
|
||||||
end
|
|
||||||
|
|
||||||
- dest_path = File.join gem_dir, spec.require_paths.first
|
|
||||||
+ dest_path = spec.ext_dir
|
|
||||||
ran_rake = false # only run rake once
|
|
||||||
|
|
||||||
spec.extensions.each do |extension|
|
|
||||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
|
||||||
index 87b14d2..492ddbe 100644
|
|
||||||
--- a/lib/rubygems/specification.rb
|
|
||||||
+++ b/lib/rubygems/specification.rb
|
|
||||||
@@ -1689,16 +1689,15 @@ class Gem::Specification
|
|
||||||
# eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
|
|
||||||
|
|
||||||
def ext_dir
|
|
||||||
- @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
|
|
||||||
+ @ext_dir ||= File.join exts_dir, full_name, require_paths.first
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Returns the full path to the exts directory containing this spec's
|
|
||||||
- # gem directory. eg: /usr/local/lib/ruby/1.8/exts
|
|
||||||
+ # gem directory. eg: /usr/local/lib/ruby/1.8/gems
|
|
||||||
|
|
||||||
def exts_dir
|
|
||||||
- # TODO: this logic seems terribly broken, but tests fail if just base_dir
|
|
||||||
- @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
|
|
||||||
+ @exts_dir ||= gems_dir
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From 0e9dd0655111f7dda805233c79a3771459d9a66a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Wed, 16 Nov 2011 14:52:16 +0100
|
|
||||||
Subject: [PATCH 3/9] Simplify the extending of $LOAD_PATH for binary gems.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/specification.rb | 11 +++++------
|
|
||||||
1 file changed, 5 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
|
||||||
index 492ddbe..c703827 100644
|
|
||||||
--- a/lib/rubygems/specification.rb
|
|
||||||
+++ b/lib/rubygems/specification.rb
|
|
||||||
@@ -1256,11 +1256,7 @@ class Gem::Specification
|
|
||||||
File.join full_gem_path, path
|
|
||||||
end
|
|
||||||
|
|
||||||
- unless extensions.empty?
|
|
||||||
- paths += require_paths.map do |path|
|
|
||||||
- File.join ext_dir, path
|
|
||||||
- end
|
|
||||||
- end
|
|
||||||
+ paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
|
|
||||||
|
|
||||||
# gem directories must come after -I and ENV['RUBYLIB']
|
|
||||||
insert_index = Gem.load_path_insert_index
|
|
||||||
@@ -1697,7 +1693,10 @@ class Gem::Specification
|
|
||||||
# gem directory. eg: /usr/local/lib/ruby/1.8/gems
|
|
||||||
|
|
||||||
def exts_dir
|
|
||||||
- @exts_dir ||= gems_dir
|
|
||||||
+ @exts_dir ||= begin
|
|
||||||
+ dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
|
|
||||||
+ dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
|
|
||||||
+ end
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From 9a8556c609e800d0dbd24af416d613f2e82f323c Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Fri, 9 Dec 2011 16:31:04 +0100
|
|
||||||
Subject: [PATCH 4/8] Fix the binary extension search path construction.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/installer.rb | 2 +-
|
|
||||||
lib/rubygems/specification.rb | 4 ++--
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
|
||||||
index 854c177..f1f2ad7 100644
|
|
||||||
--- a/lib/rubygems/installer.rb
|
|
||||||
+++ b/lib/rubygems/installer.rb
|
|
||||||
@@ -646,7 +646,7 @@ TEXT
|
|
||||||
say "This could take a while..."
|
|
||||||
end
|
|
||||||
|
|
||||||
- dest_path = spec.ext_dir
|
|
||||||
+ dest_path = File.join spec.ext_dir, spec.require_paths.first
|
|
||||||
ran_rake = false # only run rake once
|
|
||||||
|
|
||||||
spec.extensions.each do |extension|
|
|
||||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
|
||||||
index c703827..fa9ea6e 100644
|
|
||||||
--- a/lib/rubygems/specification.rb
|
|
||||||
+++ b/lib/rubygems/specification.rb
|
|
||||||
@@ -1256,7 +1256,7 @@ class Gem::Specification
|
|
||||||
File.join full_gem_path, path
|
|
||||||
end
|
|
||||||
|
|
||||||
- paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
|
|
||||||
+ paths << File.join(ext_dir, require_paths.first) unless extensions.empty? || (ext_dir == full_gem_path)
|
|
||||||
|
|
||||||
# gem directories must come after -I and ENV['RUBYLIB']
|
|
||||||
insert_index = Gem.load_path_insert_index
|
|
||||||
@@ -1685,7 +1685,7 @@ class Gem::Specification
|
|
||||||
# eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
|
|
||||||
|
|
||||||
def ext_dir
|
|
||||||
- @ext_dir ||= File.join exts_dir, full_name, require_paths.first
|
|
||||||
+ @ext_dir ||= File.join exts_dir, full_name
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From 476c2f90cc6f5f490858f253a9b23eb19d53d2fc Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Tue, 13 Dec 2011 12:14:54 +0100
|
|
||||||
Subject: [PATCH 5/8] Remove binary extensions during uninstall.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/uninstaller.rb | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/uninstaller.rb b/lib/rubygems/uninstaller.rb
|
|
||||||
index d672b9d..5c31a0c 100644
|
|
||||||
--- a/lib/rubygems/uninstaller.rb
|
|
||||||
+++ b/lib/rubygems/uninstaller.rb
|
|
||||||
@@ -246,6 +246,7 @@ class Gem::Uninstaller
|
|
||||||
File.writable?(spec.base_dir)
|
|
||||||
|
|
||||||
FileUtils.rm_rf spec.full_gem_path
|
|
||||||
+ FileUtils.rm_rf spec.ext_dir
|
|
||||||
|
|
||||||
# TODO: should this be moved to spec?... I vote eww (also exists in docmgr)
|
|
||||||
old_platform_name = [spec.name,
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From 35dc17e86f701fe1be80d98ace79735c535fd570 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Tue, 13 Dec 2011 14:27:14 +0100
|
|
||||||
Subject: [PATCH 6/8] Avoid dependency on customized operating_system.rb.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/defaults.rb | 11 +++++++++++
|
|
||||||
lib/rubygems/specification.rb | 5 +----
|
|
||||||
2 files changed, 12 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
|
|
||||||
index ea84e5c..b221954 100644
|
|
||||||
--- a/lib/rubygems/defaults.rb
|
|
||||||
+++ b/lib/rubygems/defaults.rb
|
|
||||||
@@ -101,6 +101,17 @@ module Gem
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
+ # Returns binary extensions dir for specified RubyGems base dir or nil
|
|
||||||
+ # if such directory cannot be determined.
|
|
||||||
+ #
|
|
||||||
+ # By default, the binary extensions are located side by side with their
|
|
||||||
+ # Ruby counterparts, therefore nil is returned
|
|
||||||
+
|
|
||||||
+ def self.default_ext_dir_for base_dir
|
|
||||||
+ nil
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
+ ##
|
|
||||||
# A wrapper around RUBY_ENGINE const that may not be defined
|
|
||||||
|
|
||||||
def self.ruby_engine
|
|
||||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
|
||||||
index fa9ea6e..2b10499 100644
|
|
||||||
--- a/lib/rubygems/specification.rb
|
|
||||||
+++ b/lib/rubygems/specification.rb
|
|
||||||
@@ -1693,10 +1693,7 @@ class Gem::Specification
|
|
||||||
# gem directory. eg: /usr/local/lib/ruby/1.8/gems
|
|
||||||
|
|
||||||
def exts_dir
|
|
||||||
- @exts_dir ||= begin
|
|
||||||
- dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
|
|
||||||
- dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
|
|
||||||
- end
|
|
||||||
+ @exts_dir ||= Gem.default_ext_dir_for(base_dir) || gems_dir
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From 0937c0b0a3c2ed08ab5b0875f7f95e24157525c2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Thu, 7 Feb 2013 13:07:34 +0100
|
|
||||||
Subject: [PATCH 7/8] Fix binary extensions installation when --install-dir is
|
|
||||||
specified.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/installer.rb | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
|
||||||
index f1f2ad7..e1577fc 100644
|
|
||||||
--- a/lib/rubygems/installer.rb
|
|
||||||
+++ b/lib/rubygems/installer.rb
|
|
||||||
@@ -646,7 +646,7 @@ TEXT
|
|
||||||
say "This could take a while..."
|
|
||||||
end
|
|
||||||
|
|
||||||
- dest_path = File.join spec.ext_dir, spec.require_paths.first
|
|
||||||
+ dest_path = File.join(options[:install_dir] ? gem_dir : spec.ext_dir, spec.require_paths.first)
|
|
||||||
ran_rake = false # only run rake once
|
|
||||||
|
|
||||||
spec.extensions.each do |extension|
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
|
|
||||||
From 062a11c59731f5875d5a8821a212c8a41cb84577 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Fri, 15 Feb 2013 17:07:07 +0100
|
|
||||||
Subject: [PATCH 8/8] Use correct option.
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/rubygems/installer.rb | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
|
||||||
index e1577fc..1492c68 100644
|
|
||||||
--- a/lib/rubygems/installer.rb
|
|
||||||
+++ b/lib/rubygems/installer.rb
|
|
||||||
@@ -646,7 +646,7 @@ TEXT
|
|
||||||
say "This could take a while..."
|
|
||||||
end
|
|
||||||
|
|
||||||
- dest_path = File.join(options[:install_dir] ? gem_dir : spec.ext_dir, spec.require_paths.first)
|
|
||||||
+ dest_path = File.join(@install_dir ? gem_dir : spec.ext_dir, spec.require_paths.first)
|
|
||||||
ran_rake = false # only run rake once
|
|
||||||
|
|
||||||
spec.extensions.each do |extension|
|
|
||||||
--
|
|
||||||
1.8.1.2
|
|
||||||
|
|
||||||
6
rubygems.attr
Normal file
6
rubygems.attr
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
%__rubygems_requires %{_rpmconfigdir}/rubygems.req
|
||||||
|
%__rubygems_provides %{_rpmconfigdir}/rubygems.prov
|
||||||
|
%__rubygems_conflicts %{_rpmconfigdir}/rubygems.con
|
||||||
|
# In non-gem packages, the %%{gem_name} macro is not available and the macro
|
||||||
|
# stays unexpanded which leads to "invalid regex" error (rhbz#1154067).
|
||||||
|
%__rubygems_path ^%{?gem_name:%{gem_spec}}%{!?gem_name:this_should_never_match_anything}$
|
||||||
52
rubygems.con
Normal file
52
rubygems.con
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/ruby
|
||||||
|
|
||||||
|
require 'rubygems/package'
|
||||||
|
|
||||||
|
module RubyGemsReq
|
||||||
|
module Helpers
|
||||||
|
# Keep only '!=' requirements.
|
||||||
|
def self.conflicts(requirements)
|
||||||
|
conflicts = requirements.select {|r| r.first == '!='}
|
||||||
|
end
|
||||||
|
|
||||||
|
# Converts Gem::Requirement into array of requirements strings compatible
|
||||||
|
# with RPM .spec file.
|
||||||
|
def self.requirement_versions_to_rpm(requirement)
|
||||||
|
self.conflicts(requirement.requirements).map do |op, version|
|
||||||
|
version == Gem::Version.new(0) ? "" : "= #{version}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Report conflicting gem dependencies including their version.
|
||||||
|
def self.gem_dependencies(specification)
|
||||||
|
specification.runtime_dependencies.each do |dependency|
|
||||||
|
conflict_strings = Helpers::requirement_versions_to_rpm(dependency.requirement).map do |requirement|
|
||||||
|
requirement_string = "rubygem(#{dependency.name}) #{requirement}"
|
||||||
|
end
|
||||||
|
if conflict_strings.length > 0
|
||||||
|
conflict_string = conflict_strings.join(' with ')
|
||||||
|
conflict_string.prepend('(').concat(')') if conflict_strings.length > 1
|
||||||
|
puts conflict_string
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Reports all conflicts specified by all provided .gemspec files.
|
||||||
|
def self.conflicts
|
||||||
|
while filename = gets
|
||||||
|
filename.strip!
|
||||||
|
begin
|
||||||
|
specification = Gem::Specification.load filename
|
||||||
|
|
||||||
|
gem_dependencies(specification)
|
||||||
|
rescue => e
|
||||||
|
# Ignore all errors.
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if __FILE__ == $0
|
||||||
|
RubyGemsReq::conflicts
|
||||||
|
end
|
||||||
36
rubygems.prov
Normal file
36
rubygems.prov
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/ruby
|
||||||
|
|
||||||
|
require 'rubygems/package'
|
||||||
|
|
||||||
|
module RubyGemsProv
|
||||||
|
module Helpers
|
||||||
|
# If there is some prelease version files, such as rc1 (i.e. non-numeric
|
||||||
|
# field), prepend this field by tilde instead of dot.
|
||||||
|
def self.normalize_prerelease(version)
|
||||||
|
if version.prerelease?
|
||||||
|
prerelease = version.version.sub /^#{version.release}\./, ''
|
||||||
|
"#{version.release}~#{prerelease}"
|
||||||
|
else
|
||||||
|
version.release
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Reports all functionality gem provides.
|
||||||
|
def self.provides
|
||||||
|
while filename = gets
|
||||||
|
filename.strip!
|
||||||
|
begin
|
||||||
|
specification = Gem::Specification.load filename
|
||||||
|
|
||||||
|
puts "rubygem(#{specification.name}) = #{Helpers::normalize_prerelease(specification.version)}"
|
||||||
|
rescue => e
|
||||||
|
# Ignore all errors.
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if __FILE__ == $0
|
||||||
|
RubyGemsProv::provides
|
||||||
|
end
|
||||||
88
rubygems.req
Normal file
88
rubygems.req
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
#!/usr/bin/ruby
|
||||||
|
|
||||||
|
require 'rubygems/package'
|
||||||
|
|
||||||
|
module RubyGemsReq
|
||||||
|
module Helpers
|
||||||
|
# Expands '~>' and '!=' gem requirements.
|
||||||
|
def self.expand_requirement(requirements)
|
||||||
|
requirements.inject([]) do |output, r|
|
||||||
|
output.concat case r.first
|
||||||
|
when '~>'
|
||||||
|
expand_pessimistic_requirement(r)
|
||||||
|
when '!='
|
||||||
|
# If there is only the conflict requirement, we still need to depend
|
||||||
|
# on the specified gem.
|
||||||
|
if requirements.size == 1
|
||||||
|
Gem::Requirement.default.requirements
|
||||||
|
else
|
||||||
|
[]
|
||||||
|
end
|
||||||
|
else
|
||||||
|
[r]
|
||||||
|
end
|
||||||
|
end.reject {|r| r.empty? }
|
||||||
|
end
|
||||||
|
|
||||||
|
# Expands the pessimistic version operator '~>' into equivalent '>=' and
|
||||||
|
# '<' pair.
|
||||||
|
def self.expand_pessimistic_requirement(requirement)
|
||||||
|
next_version = Gem::Version.create(requirement.last).bump
|
||||||
|
return ['>=', requirement.last], ['<', next_version]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Converts Gem::Requirement into array of requirements strings compatible
|
||||||
|
# with RPM .spec file.
|
||||||
|
def self.requirement_versions_to_rpm(requirement)
|
||||||
|
self.expand_requirement(requirement.requirements).map do |op, version|
|
||||||
|
version == Gem::Version.new(0) ? "" : " #{op} #{version}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Compose dependency together with its requirements in RPM rich dependency
|
||||||
|
# string.
|
||||||
|
def self.compose_dependency_string(name, requirements)
|
||||||
|
dependency_strings = requirements.map { |requirement| name + requirement }
|
||||||
|
dependency_string = dependency_strings.join(' with ')
|
||||||
|
dependency_string.prepend('(').concat(')') if dependency_strings.length > 1
|
||||||
|
dependency_string
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Report RubyGems dependency, versioned if required.
|
||||||
|
def self.rubygems_dependency(specification)
|
||||||
|
dependency_name = "ruby(rubygems)"
|
||||||
|
requirements = Helpers::requirement_versions_to_rpm(specification.required_rubygems_version)
|
||||||
|
|
||||||
|
puts Helpers::compose_dependency_string(dependency_name, requirements)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Report all gem dependencies including their version.
|
||||||
|
def self.gem_dependencies(specification)
|
||||||
|
specification.runtime_dependencies.each do |dependency|
|
||||||
|
dependency_name = "rubygem(#{dependency.name})"
|
||||||
|
requirements = Helpers::requirement_versions_to_rpm(dependency.requirement)
|
||||||
|
|
||||||
|
puts Helpers::compose_dependency_string(dependency_name, requirements)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Reports all requirements specified by all provided .gemspec files.
|
||||||
|
def self.requires
|
||||||
|
while filename = gets
|
||||||
|
filename.strip!
|
||||||
|
begin
|
||||||
|
specification = Gem::Specification.load filename
|
||||||
|
|
||||||
|
rubygems_dependency(specification)
|
||||||
|
gem_dependencies(specification)
|
||||||
|
rescue => e
|
||||||
|
# Ignore all errors.
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if __FILE__ == $0
|
||||||
|
RubyGemsReq::requires
|
||||||
|
end
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
20eb8f067d20f6b76b7e16cce2a85a55 ruby-2.0.0-p353.tar.bz2
|
SHA512 (ruby-4.0.1.tar.xz) = b67d9d1f97ba30200d103f8454e39dc2d0450819d51d91eb5451d44b0bafc56d2fa48bb1be6c5081babe5828f679984bad02b9bcee7441f6bd34c0a95b8f200b
|
||||||
|
|
|
||||||
7
test_abrt.rb
Normal file
7
test_abrt.rb
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
if !!$LOADED_FEATURES.detect { |f| f =~ /abrt\.rb/ }
|
||||||
|
exit true
|
||||||
|
else
|
||||||
|
puts 'ERROR: ABRT hook was not loaded.'
|
||||||
|
|
||||||
|
exit false
|
||||||
|
end
|
||||||
34
test_openssl_fips.rb
Normal file
34
test_openssl_fips.rb
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
require 'openssl'
|
||||||
|
|
||||||
|
# Run openssl tests in OpenSSL FIPS. See the link below for how to test.
|
||||||
|
# https://github.com/ruby/openssl/blob/master/.github/workflows/test.yml
|
||||||
|
# - step name: test on fips module
|
||||||
|
|
||||||
|
# Listing the testing files by an array explicitly rather than the `Dir.glob`
|
||||||
|
# to prevent the test files from not loading unintentionally.
|
||||||
|
TEST_FILES = %w[
|
||||||
|
test/openssl/test_fips.rb
|
||||||
|
test/openssl/test_pkey.rb
|
||||||
|
].freeze
|
||||||
|
|
||||||
|
if ARGV.empty?
|
||||||
|
puts 'ERROR: Argument base_dir required.'
|
||||||
|
puts "Usage: #{__FILE__} base_dir [options]"
|
||||||
|
exit false
|
||||||
|
end
|
||||||
|
BASE_DIR = ARGV[0]
|
||||||
|
abs_test_files = TEST_FILES.map { |file| File.join(BASE_DIR, file) }
|
||||||
|
|
||||||
|
# Set Fedora/RHEL downstream OpenSSL downstream environment variable to enable
|
||||||
|
# FIPS module in non-FIPS OS environment. It is available in Fedora 38 or later
|
||||||
|
# versions.
|
||||||
|
# https://src.fedoraproject.org/rpms/openssl/blob/rawhide/f/0009-Add-Kernel-FIPS-mode-flag-support.patch
|
||||||
|
ENV['OPENSSL_FORCE_FIPS_MODE'] = '1'
|
||||||
|
# A flag to tell the tests the current environment is FIPS enabled.
|
||||||
|
# https://github.com/ruby/openssl/blob/master/test/openssl/test_fips.rb
|
||||||
|
ENV['TEST_RUBY_OPENSSL_FIPS_ENABLED'] = 'true'
|
||||||
|
|
||||||
|
abs_test_files.each do |file|
|
||||||
|
puts "INFO: Loading #{file}."
|
||||||
|
require file
|
||||||
|
end
|
||||||
124
test_rubygems_con.rb
Normal file
124
test_rubygems_con.rb
Normal file
|
|
@ -0,0 +1,124 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'test/unit'
|
||||||
|
require 'rpm_test_helper'
|
||||||
|
|
||||||
|
class TestRubyGemsCon < Test::Unit::TestCase
|
||||||
|
include RPMTestHelper
|
||||||
|
|
||||||
|
def test_filter_out_regular_requirements
|
||||||
|
gem_i = GemInfo.new
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(0, lines.size)
|
||||||
|
|
||||||
|
deps = [ Dependency.new('bar') ]
|
||||||
|
gem_i.dependencies = deps
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(0, lines.size)
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
Dependency.new('bar'),
|
||||||
|
Dependency.new('baq'),
|
||||||
|
Dependency.new('quz')
|
||||||
|
]
|
||||||
|
|
||||||
|
gem_i.dependencies = deps
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(0, lines.size)
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
Dependency.new('bar', ['>= 4.1']),
|
||||||
|
Dependency.new('baz', ['~> 3.2']),
|
||||||
|
Dependency.new('quz', ['>= 5.6'])
|
||||||
|
]
|
||||||
|
|
||||||
|
gem_i.dependencies = deps
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(0, lines.size)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_single_gem_single_version_conflict
|
||||||
|
con = Dependency.new('bar', ['!= 0.4.4'])
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [ con ])
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
assert_equal("#{con.to_rpm_str} = 0.4.4\n", lines.first)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_multiple_gems_with_single_conflict
|
||||||
|
cons = [
|
||||||
|
Dependency.new('bar', ['!= 1.1']),
|
||||||
|
Dependency.new('baq', ['!= 1.2.2']),
|
||||||
|
Dependency.new('quz', ['!= 1.3'])
|
||||||
|
]
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: cons)
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(3, lines.size)
|
||||||
|
|
||||||
|
assert_equal("#{cons[0].to_rpm_str} = 1.1\n" , lines[0])
|
||||||
|
assert_equal("#{cons[1].to_rpm_str} = 1.2.2\n", lines[1])
|
||||||
|
assert_equal("#{cons[2].to_rpm_str} = 1.3\n" , lines[2])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_multiple_conflicts_on_single_gem
|
||||||
|
con = Dependency.new('bar', ['!= 2.3', '!= 2.4'])
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [con])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
rpm_name = con.to_rpm_str
|
||||||
|
left_rpm_constraint = "(#{rpm_name} = 2.3 with "
|
||||||
|
right_rpm_constraint = "#{rpm_name} = 2.4)\n"
|
||||||
|
assert_equal((left_rpm_constraint + right_rpm_constraint), lines[0])
|
||||||
|
|
||||||
|
con = Dependency.new('bar', ['!= 2.3', '!= 2.4', '!= 4.5'])
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [ con ])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
|
||||||
|
rpm_name = con.to_rpm_str
|
||||||
|
left_rpm_constraint = "(#{rpm_name} = 2.3 with "
|
||||||
|
middle_rpm_constraint = "#{rpm_name} = 2.4 with "
|
||||||
|
right_rpm_constraint = "#{rpm_name} = 4.5)\n"
|
||||||
|
|
||||||
|
assert_equal((left_rpm_constraint + middle_rpm_constraint + right_rpm_constraint), lines[0])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_generates_conflicts_while_ignoring_regular_requirements
|
||||||
|
deps = [
|
||||||
|
Dependency.new('bar', ['>= 2.3', '!= 2.4.2']),
|
||||||
|
Dependency.new('quz', ['~> 3.0', '!= 3.2'])
|
||||||
|
]
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: deps)
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
|
||||||
|
rpm_name = deps[0].to_rpm_str
|
||||||
|
rpm_constraint = "#{rpm_name} = 2.4.2\n"
|
||||||
|
assert_equal(rpm_constraint, lines[0])
|
||||||
|
|
||||||
|
rpm_name = deps[1].to_rpm_str
|
||||||
|
rpm_constraint = "#{rpm_name} = 3.2\n"
|
||||||
|
assert_equal(rpm_constraint, lines[1])
|
||||||
|
end
|
||||||
|
end
|
||||||
52
test_rubygems_prov.rb
Normal file
52
test_rubygems_prov.rb
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'test/unit'
|
||||||
|
require 'rpm_test_helper'
|
||||||
|
|
||||||
|
class TestRubyGemsProv < Test::Unit::TestCase
|
||||||
|
include RPMTestHelper
|
||||||
|
|
||||||
|
def test_provides_the_gem_version
|
||||||
|
gem_i = GemInfo.new(version: '1.2')
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
assert_equal("#{gem_i.to_rpm_str} = #{gem_i.version}\n", lines.first)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(name: 'somegem_foo', version: '4.5.6')
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
assert_equal("#{gem_i.to_rpm_str} = #{gem_i.version}\n", lines.first)
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
Dependency.new('bar'),
|
||||||
|
Dependency.new('baq', [">= 1.2"]),
|
||||||
|
Dependency.new('quz', ["!= 3.2"])
|
||||||
|
]
|
||||||
|
gem_i = GemInfo.new(dependencies: deps)
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
assert_equal("#{gem_i.to_rpm_str} = #{gem_i.version}\n", lines.first)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_translates_prelease_version_provides_from_rubygems_to_rpm
|
||||||
|
gem_i = GemInfo.new(version: '1.2.3.dev')
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
assert_equal("#{gem_i.to_rpm_str} = 1.2.3~dev\n", lines.first)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(name: 'foo2', version: '1.2.3.dev.2')
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
assert_equal("#{gem_i.to_rpm_str} = 1.2.3~dev.2\n", lines.first)
|
||||||
|
end
|
||||||
|
end
|
||||||
205
test_rubygems_req.rb
Normal file
205
test_rubygems_req.rb
Normal file
|
|
@ -0,0 +1,205 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'test/unit'
|
||||||
|
require 'rpm_test_helper'
|
||||||
|
|
||||||
|
class TestRubyGemsReq < Test::Unit::TestCase
|
||||||
|
include RPMTestHelper
|
||||||
|
|
||||||
|
def test_depends_on_rubygems
|
||||||
|
gem_i = GemInfo.new
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(1, lines.size)
|
||||||
|
assert_equal("#{helper_rubygems_dependency}\n", lines.first)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_requires_rubygems_and_dependency
|
||||||
|
dep = Dependency.new('bar')
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
assert_equal("#{helper_rubygems_dependency}\n", lines.first)
|
||||||
|
assert_equal("#{dep.to_rpm_str}\n", lines[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_requires_multiple_dependencies_with_constraint
|
||||||
|
constraints = [
|
||||||
|
'>= 3.0',
|
||||||
|
'>= 3.0.0',
|
||||||
|
'>= 3',
|
||||||
|
'= 1.0.2',
|
||||||
|
'= 3.0',
|
||||||
|
'< 3.2',
|
||||||
|
'<= 3.4'
|
||||||
|
]
|
||||||
|
|
||||||
|
dependencies = []
|
||||||
|
constraints.each_with_index do |constraint, idx|
|
||||||
|
dependencies << Dependency.new("bar#{idx}", [constraint])
|
||||||
|
end
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: dependencies)
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
# + 1 for the rubygems dependency
|
||||||
|
assert_equal(constraints.size + 1, lines.size)
|
||||||
|
dependencies.each_with_index do |dep, idx|
|
||||||
|
rpm_dep_name = dep.to_rpm_str
|
||||||
|
# Start indexing lines at 1, to jump over rubygems dependency
|
||||||
|
assert_equal("#{rpm_dep_name} #{constraints[idx]}\n", lines[idx + 1])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_expands_pessimistic_constraint_for_rpm
|
||||||
|
dep = Dependency.new('bar', ['~> 1.2'])
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
|
||||||
|
rpm_dep_name = dep.to_rpm_str
|
||||||
|
left_constraint = "#{rpm_dep_name} >= 1.2"
|
||||||
|
right_constraint = "#{rpm_dep_name} < 2"
|
||||||
|
expected_constraint = "(#{left_constraint} with #{right_constraint})\n"
|
||||||
|
assert_equal(expected_constraint, lines[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_multiple_pessimistically_constrained_dependencies
|
||||||
|
dependencies = []
|
||||||
|
dep_map = [
|
||||||
|
{
|
||||||
|
constraint: '~> 1.2.3',
|
||||||
|
expanded_left: '>= 1.2.3',
|
||||||
|
expanded_rigth: '< 1.3',
|
||||||
|
gem_name: 'bar1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
constraint: '~> 1.2',
|
||||||
|
expanded_left: '>= 1.2',
|
||||||
|
expanded_rigth: '< 2',
|
||||||
|
gem_name: 'bar2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
constraint: '~> 3',
|
||||||
|
expanded_left: '>= 3',
|
||||||
|
expanded_rigth: '< 4',
|
||||||
|
gem_name: 'bar3'
|
||||||
|
}
|
||||||
|
].each do |deps|
|
||||||
|
dependencies << Dependency.new(deps[:gem_name], [deps[:constraint]])
|
||||||
|
end
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: dependencies)
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(dep_map.size + 1, lines.size)
|
||||||
|
|
||||||
|
dep_map.each_with_index do |hash, idx|
|
||||||
|
rpm_dep_name = dependencies[idx].to_rpm_str
|
||||||
|
left_constraint = rpm_dep_name + ' ' + hash[:expanded_left]
|
||||||
|
right_constraint = rpm_dep_name + ' ' + hash[:expanded_rigth]
|
||||||
|
expected_constraint = "(#{left_constraint} with #{right_constraint})\n"
|
||||||
|
assert_equal(expected_constraint, lines[idx + 1])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_multiple_constraints_on_one_dependency_composes_constraints_for_RPM
|
||||||
|
# The quoting here depends on how the constraint is expanded in the helpers.
|
||||||
|
# right now the form is `["#{constraint}"]`, therefore we have to not specify
|
||||||
|
# left and right quotes.
|
||||||
|
constraints = ['>= 0.2.3', '<= 0.2.5']
|
||||||
|
dep = Dependency.new('baz', constraints)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
rpm_dep_name = dep.to_rpm_str
|
||||||
|
assert_equal("(#{rpm_dep_name} >= 0.2.3 with #{rpm_dep_name} <= 0.2.5)\n", lines[1])
|
||||||
|
|
||||||
|
# Not sure who would compose a dependency like this, but it's possible
|
||||||
|
# to do with the current generator
|
||||||
|
constraints = ['> 0.4.5', '< 0.6.4', '>= 2.3', '<= 2.5.3']
|
||||||
|
dep = Dependency.new('qux', constraints)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
rpm_dep = dep.to_rpm_str
|
||||||
|
expected_str = "(#{rpm_dep} > 0.4.5 with #{rpm_dep} < 0.6.4 with " \
|
||||||
|
"#{rpm_dep} >= 2.3 with #{rpm_dep} <= 2.5.3)\n"
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
assert_equal(expected_str, lines[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1561487
|
||||||
|
def test_depends_on_gem_with_version_conflict
|
||||||
|
dep = Dependency.new('baz', ['!= 0.4'])
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
assert_equal("#{dep.to_rpm_str}\n", lines[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_filters_conflict_from_regular_version_constraints
|
||||||
|
constraint = ['> 1.2.4', '!= 1.2.7']
|
||||||
|
dep = Dependency.new('baq', constraint)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
assert_equal("#{dep.to_rpm_str} > 1.2.4\n", lines[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_filtering_conflicts_is_not_depending_on_contraint_ordering
|
||||||
|
constraints = ['!= 1.2.7', '> 1.2.4']
|
||||||
|
dep = Dependency.new('baq', constraints)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
assert_equal("#{dep.to_rpm_str} > 1.2.4\n", lines[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_filters_multiple_conflicts_from_dependency
|
||||||
|
omit "Case not yet supported."
|
||||||
|
constraints = ['!= 1.2.4', '!= 1.2.5', '!= 2.3', '!= 4.8']
|
||||||
|
dep = Dependency.new('baf', constraints)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
assert_equal("#{dep.to_rpm_str}\n", lines[1])
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_filters_multiple_conflicts_from_dependency_but_keeps_regular_constraint
|
||||||
|
constraints = ['!= 1.2.4', '!= 1.2.5', '!= 2.3', '<= 4.8']
|
||||||
|
dep = Dependency.new('bam', constraints)
|
||||||
|
|
||||||
|
gem_i = GemInfo.new(dependencies: [dep])
|
||||||
|
|
||||||
|
lines = run_generator_single_file(gem_i)
|
||||||
|
|
||||||
|
assert_equal(2, lines.size)
|
||||||
|
assert_equal("#{dep.to_rpm_str} <= 4.8\n", lines[1])
|
||||||
|
end
|
||||||
|
end
|
||||||
65
test_systemtap.rb
Normal file
65
test_systemtap.rb
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
require 'set'
|
||||||
|
|
||||||
|
LIBRUBY_SO = 'libruby.so'
|
||||||
|
PROBES_D = 'probes.d'
|
||||||
|
|
||||||
|
# These probes are excluded by VM_COLLECT_USAGE_DETAILS ifdef.
|
||||||
|
EXCLUDE_PROBES = Set.new %w(insn insn__operand)
|
||||||
|
|
||||||
|
## Detect SystemTap section headers presence
|
||||||
|
|
||||||
|
stap_headers = [
|
||||||
|
'\.stapsdt\.base',
|
||||||
|
'\.note\.stapsdt'
|
||||||
|
]
|
||||||
|
|
||||||
|
header_regexp = %r{ (#{stap_headers.join('|')}) }
|
||||||
|
|
||||||
|
section_headers = `readelf -S "#{LIBRUBY_SO}"`
|
||||||
|
detected_stap_headers = section_headers.scan(header_regexp).flatten
|
||||||
|
|
||||||
|
# Assume there are both headers until this is proven wrong ;)
|
||||||
|
unless detected_stap_headers.size == 2
|
||||||
|
puts 'ERROR: SystemTap (DTrace) headers were not detected in resulting library.'
|
||||||
|
exit false
|
||||||
|
end
|
||||||
|
|
||||||
|
## Find if every declared probe is propagated to resulting library
|
||||||
|
|
||||||
|
# Colect probes specified in probes.d file.
|
||||||
|
probes_declared = []
|
||||||
|
|
||||||
|
File.open(PROBES_D) do |file|
|
||||||
|
file.each_line do |line|
|
||||||
|
if probe = line[/probe (\S+)\(.*\);/, 1]
|
||||||
|
probes_declared << probe
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
probes_declared = Set.new probes_declared
|
||||||
|
|
||||||
|
unless EXCLUDE_PROBES.subset? probes_declared
|
||||||
|
puts 'ERROR: Change in SystemTap (DTrace) probes definition file detected.'
|
||||||
|
exit false
|
||||||
|
end
|
||||||
|
|
||||||
|
probes_declared -= EXCLUDE_PROBES
|
||||||
|
|
||||||
|
# Detect probes in resulting library.
|
||||||
|
get_probes_detected = %r{
|
||||||
|
^\s*Provider:\s+ruby,\s+Name:\s+(\S+),\s+.*$
|
||||||
|
}
|
||||||
|
|
||||||
|
probes_detected = `eu-readelf -n "#{LIBRUBY_SO}"`
|
||||||
|
|
||||||
|
probes_detected = Set.new probes_detected.scan(get_probes_detected).flatten
|
||||||
|
|
||||||
|
# Both sets must be equal, otherwise something is wrong.
|
||||||
|
unless probes_declared == probes_detected
|
||||||
|
puts 'ERROR: SystemTap (DTrace) probes were not correctly propagated into resulting library.'
|
||||||
|
puts " Undetected probes: #{(probes_declared - probes_detected).sort.join(', ')}\n",
|
||||||
|
" Additional detected probes: #{(probes_detected - probes_declared).sort.join(', ')}"
|
||||||
|
|
||||||
|
exit false
|
||||||
|
end
|
||||||
Loading…
Add table
Add a link
Reference in a new issue