├── versions ├── 1.2.json ├── 1.3.json ├── 0.49.json ├── 0.50.json ├── 0.51.json ├── 0.54.json ├── 0.55.json ├── 0.60.json ├── 0.62.json ├── 0.63.json ├── 0.64.json ├── 0.65.json ├── 0.69.json ├── 0.73.json ├── 0.76.json ├── 0.95.json ├── 1.1a0.json ├── 1.1a1.json ├── 1.1a2.json ├── 1.1a3.json ├── 1.1a4.json ├── 1.1a5.json ├── 1.1a6.json ├── 1.1a7.json ├── 1.1a8.json ├── 1.1a9.json ├── 1.1b0.json ├── 1.1b1.json ├── 1.1b2.json ├── 1.1b3.json ├── 1.1b4.json ├── 1.1b5.json ├── 1.1b6.json ├── 1.1b7.json ├── 1.1b8.json ├── 1.1b9.json ├── 1.1c0.json ├── 1.1c1.json ├── 1.1c2.json ├── 1.1c3.json ├── 1.1c4.json ├── 1.1c5.json ├── 1.1c6.json ├── 1.1c7.json ├── 1.1c8.json ├── 1.1c9.json ├── 1.1d0.json ├── 1.1d1.json ├── 1.2.1.json ├── 1.2.2.json ├── 1.2.3.json ├── 1.2.4.json ├── 1.2.5.json ├── 1.2.6.json ├── 1.3.5.json ├── 1.3.6.json ├── 1.3.7.json ├── 1.4.0.json ├── 1.4.1.json ├── 1.4.2.json ├── 1.4.3.json ├── 1.4.4.json ├── 1.4.5.json ├── 1.4.6.json ├── 1.6.0.json ├── 1.6.1.json ├── 1.6.2.json ├── 1.6.3.json ├── 1.6.4.json ├── 1.6.5.json ├── 1.6.6.json ├── 1.6.7.json ├── 1.6.8.json ├── 1.8.0.json ├── 1.8.1.json ├── 1.8.2.json ├── 1.8.3.json ├── 1.8.4.json ├── 1.8.5.json ├── 1.8.6.json ├── 1.8.7.json ├── 2.1.0.json ├── 2.1.1.json ├── 2.1.2.json ├── 2.1.3.json ├── 2.1.4.json ├── 2.1.5.json ├── 2.1.6.json ├── 2.1.7.json ├── 2.1.8.json ├── 2.1.9.json ├── 2.2.0.json ├── 2.2.1.json ├── 2.2.2.json ├── 2.2.3.json ├── 2.2.4.json ├── 2.2.5.json ├── 2.2.6.json ├── 2.2.7.json ├── 2.2.8.json ├── 2.2.9.json ├── 2.3.0.json ├── 2.3.1.json ├── 2.3.2.json ├── 2.3.3.json ├── 2.3.4.json ├── 2.3.5.json ├── 2.3.6.json ├── 2.3.7.json ├── 2.3.8.json ├── 2.4.0.json ├── 2.4.1.json ├── 2.4.2.json ├── 2.4.3.json ├── 2.4.4.json ├── 2.4.5.json ├── 2.4.6.json ├── 2.4.7.json ├── 2.4.9.json ├── 2.5.0.json ├── 2.5.1.json ├── 2.5.2.json ├── 2.5.3.json ├── 2.5.4.json ├── 2.5.5.json ├── 2.5.6.json ├── 2.5.7.json ├── 2.5.8.json ├── 2.5.9.json ├── 2.6.0.json ├── 2.6.1.json ├── 2.6.2.json ├── 2.6.3.json ├── 2.6.4.json ├── 2.6.5.json ├── 2.6.6.json ├── 2.6.7.json ├── 2.6.8.json ├── 2.6.9.json ├── 2.7.0.json ├── 2.7.1.json ├── 2.7.2.json ├── 2.7.3.json ├── 2.7.4.json ├── 2.7.5.json ├── 2.7.6.json ├── 2.7.7.json ├── 2.7.8.json ├── 3.0.0.json ├── 3.0.1.json ├── 3.0.2.json ├── 3.0.3.json ├── 3.0.4.json ├── 3.0.5.json ├── 3.0.6.json ├── 3.0.7.json ├── 3.1.0.json ├── 3.1.1.json ├── 3.1.2.json ├── 3.1.3.json ├── 3.1.4.json ├── 3.1.5.json ├── 3.1.6.json ├── 3.1.7.json ├── 3.2.0.json ├── 3.2.1.json ├── 3.2.2.json ├── 3.2.3.json ├── 3.2.4.json ├── 3.2.5.json ├── 3.2.6.json ├── 3.2.7.json ├── 3.2.8.json ├── 3.2.9.json ├── 3.3.0.json ├── 3.3.1.json ├── 3.3.2.json ├── 3.3.3.json ├── 3.3.4.json ├── 3.3.5.json ├── 3.3.6.json ├── 3.3.7.json ├── 3.3.8.json ├── 3.3.9.json ├── 3.4.0.json ├── 3.4.1.json ├── 3.4.2.json ├── 3.4.3.json ├── 3.4.4.json ├── 3.4.5.json ├── 3.4.6.json ├── 3.4.7.json ├── 3.4.8.json ├── 1.8.5-p2.json ├── 1.9.0-0.json ├── 1.9.0-1.json ├── 1.9.0-2.json ├── 1.9.0-3.json ├── 1.9.0-4.json ├── 1.9.0-5.json ├── 2.1.10.json ├── 2.2.10.json ├── 2.4.10.json ├── 2.6.10.json ├── 3.3.10.json ├── 1.0-961225.json ├── 1.0-971002.json ├── 1.0-971003.json ├── 1.0-971015.json ├── 1.0-971021.json ├── 1.0-971118.json ├── 1.0-971125.json ├── 1.0-971204.json ├── 1.0-971209.json ├── 1.0-971225.json ├── 1.1b9_01.json ├── 1.1b9_02.json ├── 1.1b9_03.json ├── 1.1b9_04.json ├── 1.1b9_05.json ├── 1.1b9_06.json ├── 1.1b9_07.json ├── 1.1b9_08.json ├── 1.1b9_09.json ├── 1.1b9_10.json ├── 1.1b9_11.json ├── 1.1b9_12.json ├── 1.1b9_13.json ├── 1.1b9_14.json ├── 1.1b9_15.json ├── 1.1b9_16.json ├── 1.1b9_17.json ├── 1.1b9_18.json ├── 1.1b9_19.json ├── 1.1b9_20.json ├── 1.1b9_21.json ├── 1.1b9_22.json ├── 1.1b9_23.json ├── 1.1b9_24.json ├── 1.1b9_25.json ├── 1.1b9_26.json ├── 1.1b9_27.json ├── 1.1b9_28.json ├── 1.1b9_29.json ├── 1.1b9_30.json ├── 1.1b9_31.json ├── 1.1b9_32.json ├── 1.8.5-p11.json ├── 1.8.5-p113.json ├── 1.8.5-p114.json ├── 1.8.5-p115.json ├── 1.8.5-p12.json ├── 1.8.5-p231.json ├── 1.8.5-p35.json ├── 1.8.5-p52.json ├── 1.8.6-p110.json ├── 1.8.6-p111.json ├── 1.8.6-p114.json ├── 1.8.6-p230.json ├── 1.8.6-p286.json ├── 1.8.6-p287.json ├── 1.8.6-p36.json ├── 1.8.6-p368.json ├── 1.8.6-p369.json ├── 1.8.6-p383.json ├── 1.8.6-p388.json ├── 1.8.6-p398.json ├── 1.8.6-p399.json ├── 1.8.6-p420.json ├── 1.8.7-p160.json ├── 1.8.7-p17.json ├── 1.8.7-p173.json ├── 1.8.7-p174.json ├── 1.8.7-p22.json ├── 1.8.7-p248.json ├── 1.8.7-p249.json ├── 1.8.7-p299.json ├── 1.8.7-p301.json ├── 1.8.7-p302.json ├── 1.8.7-p330.json ├── 1.8.7-p334.json ├── 1.8.7-p352.json ├── 1.8.7-p357.json ├── 1.8.7-p358.json ├── 1.8.7-p370.json ├── 1.8.7-p371.json ├── 1.8.7-p373.json ├── 1.8.7-p374.json ├── 1.8.7-p71.json ├── 1.8.7-p72.json ├── 1.9.1-p0.json ├── 1.9.1-p129.json ├── 1.9.1-p243.json ├── 1.9.1-p376.json ├── 1.9.1-p378.json ├── 1.9.1-p429.json ├── 1.9.1-p430.json ├── 1.9.1-p431.json ├── 1.9.1-rc1.json ├── 1.9.1-rc2.json ├── 1.9.2-p0.json ├── 1.9.2-p136.json ├── 1.9.2-p180.json ├── 1.9.2-p290.json ├── 1.9.2-p318.json ├── 1.9.2-p320.json ├── 1.9.2-p330.json ├── 1.9.2-rc1.json ├── 1.9.2-rc2.json ├── 1.9.3-p0.json ├── 1.9.3-p105.json ├── 1.9.3-p125.json ├── 1.9.3-p194.json ├── 1.9.3-p286.json ├── 1.9.3-p327.json ├── 1.9.3-p362.json ├── 1.9.3-p374.json ├── 1.9.3-p385.json ├── 1.9.3-p392.json ├── 1.9.3-p426.json ├── 1.9.3-p429.json ├── 1.9.3-p448.json ├── 1.9.3-p484.json ├── 1.9.3-p545.json ├── 1.9.3-p547.json ├── 1.9.3-p550.json ├── 1.9.3-p551.json ├── 1.9.3-rc1.json ├── 2.0.0-p0.json ├── 2.0.0-p195.json ├── 2.0.0-p247.json ├── 2.0.0-p353.json ├── 2.0.0-p451.json ├── 2.0.0-p481.json ├── 2.0.0-p576.json ├── 2.0.0-p594.json ├── 2.0.0-p598.json ├── 2.0.0-p643.json ├── 2.0.0-p645.json ├── 2.0.0-p647.json ├── 2.0.0-p648.json ├── 2.0.0-rc1.json ├── 2.0.0-rc2.json ├── 2.1.0-rc1.json ├── 2.2.0-rc1.json ├── 2.4.0-rc1.json ├── 2.5.0-rc1.json ├── 2.6.0-rc1.json ├── 2.6.0-rc2.json ├── 2.7.0-rc1.json ├── 2.7.0-rc2.json ├── 3.0.0-rc1.json ├── 3.2.0-rc1.json ├── 3.3.0-rc1.json ├── 3.4.0-rc1.json ├── 0.73-950413.json ├── 0.99.4-961224.json ├── 1.3.1-990215.json ├── 1.3.1-990224.json ├── 1.3.1-990225.json ├── 1.3.1-990311.json ├── 1.3.1-990315.json ├── 1.3.1-990324.json ├── 1.3.2-990402.json ├── 1.3.2-990405.json ├── 1.3.2-990408.json ├── 1.3.2-990413.json ├── 1.3.3-990430.json ├── 1.3.3-990507.json ├── 1.3.3-990513.json ├── 1.3.3-990518.json ├── 1.3.4-990531.json ├── 1.3.4-990611.json ├── 1.3.4-990624.json ├── 1.3.4-990625.json ├── 2.6.0-preview2.json ├── 1.8.2-preview1.json ├── 1.8.2-preview2.json ├── 1.8.2-preview3.json ├── 1.8.2-preview4.json ├── 1.8.3-preview1.json ├── 1.8.3-preview2.json ├── 1.8.3-preview3.json ├── 1.8.4-preview1.json ├── 1.8.4-preview2.json ├── 1.8.4-preview3.json ├── 1.8.5-preview1.json ├── 1.8.5-preview2.json ├── 1.8.5-preview3.json ├── 1.8.5-preview4.json ├── 1.8.5-preview5.json ├── 1.8.6-preview1.json ├── 1.8.6-preview2.json ├── 1.8.6-preview3.json ├── 1.8.7-preview1.json ├── 1.8.7-preview2.json ├── 1.8.7-preview3.json ├── 1.8.7-preview4.json ├── 1.9.1-preview1.json ├── 1.9.1-preview2.json ├── 1.9.2-preview1.json ├── 1.9.2-preview3.json ├── 1.9.3-preview1.json ├── 2.0.0-preview1.json ├── 2.0.0-preview2.json ├── 2.1.0-preview1.json ├── 2.1.0-preview2.json ├── 2.2.0-preview1.json ├── 2.2.0-preview2.json ├── 2.3.0-preview1.json ├── 2.3.0-preview2.json ├── 2.4.0-preview1.json ├── 2.4.0-preview2.json ├── 2.4.0-preview3.json ├── 2.5.0-preview1.json ├── 2.6.0-preview1.json ├── 2.6.0-preview3.json ├── 2.7.0-preview1.json ├── 2.7.0-preview2.json ├── 2.7.0-preview3.json ├── 3.0.0-preview1.json ├── 3.0.0-preview2.json ├── 3.1.0-preview1.json ├── 3.2.0-preview1.json ├── 3.2.0-preview2.json ├── 3.2.0-preview3.json ├── 3.3.0-preview1.json ├── 3.3.0-preview2.json ├── 3.3.0-preview3.json ├── 3.4.0-preview1.json ├── 3.4.0-preview2.json ├── 3.5.0-preview1.json ├── 4.0.0-preview2.json ├── 1.8.5-p11-repack.json ├── 0.71.json └── 2.4.8.json ├── .gitignore ├── patch ├── glob-voidalloca.diff ├── error-error.diff ├── error-error2.diff ├── variable-break.diff ├── ruby-errno.diff ├── ruby-errno3.diff ├── ruby-errno2.diff ├── makefile-assoc.diff ├── defines-nodbm.diff ├── time-time.diff ├── error-sysnerr.diff ├── struct-va_end2.diff ├── time-time2.diff ├── gnuglob-alloca2.diff ├── parse-semicolon.diff ├── math-define-erange.diff ├── glob-alloca.diff ├── struct-va_end.diff ├── glob-alloca2.diff ├── gnuglob-alloca.diff ├── extmk-heredoc.diff ├── inline-vm_getivar.diff ├── error-sysnerr2.diff ├── signal-unistd.diff ├── gnuglob-dirent.diff ├── regex-re_match_2.diff ├── error-sysnerr3.diff ├── rb_type-definition.diff ├── glibc-stdio2.diff ├── glibc-stdio4.diff ├── glibc-stdio3.diff ├── glibc-stdio.diff ├── instruby-dll.diff ├── rbconfig-expand.diff ├── tcltklib-extconf.diff └── cont-elif.diff ├── test └── test_squeezer.rb ├── lib ├── ruby_version.rb ├── formatter.rb └── squeezer.rb ├── .github └── workflows │ └── update.yml ├── Dockerfile ├── all-ruby ├── README.md └── Rakefile /versions/1.2.json: -------------------------------------------------------------------------------- 1 | "1.2/ruby-1.2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.49.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.49.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.50.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.50.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.51.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.51.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.54.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.54.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.55.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.55.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.60.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.60.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.62.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.62.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.63.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.63.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.64.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.64.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.65.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.65.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.69.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.69.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.73.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.73.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.76.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.76.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.95.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.95.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a0.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a0.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a1.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a2.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a3.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a4.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a5.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a6.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a6.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a7.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a7.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a8.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a8.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1a9.json: -------------------------------------------------------------------------------- 1 | "1.1a/ruby-1.1a9.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b0.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b0.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b1.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b2.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b3.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b4.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b5.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b6.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b6.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b7.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b7.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b8.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b8.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c0.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c0.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c1.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c2.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c3.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c4.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c5.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c6.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c6.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c7.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c7.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c8.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c8.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1c9.json: -------------------------------------------------------------------------------- 1 | "1.1c/ruby-1.1c9.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1d0.json: -------------------------------------------------------------------------------- 1 | "1.1d/ruby-1.1d0.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1d1.json: -------------------------------------------------------------------------------- 1 | "1.1d/ruby-1.1d1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.2.1.json: -------------------------------------------------------------------------------- 1 | "1.2/ruby-1.2.1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.2.2.json: -------------------------------------------------------------------------------- 1 | "1.2/ruby-1.2.2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.2.3.json: -------------------------------------------------------------------------------- 1 | "1.2/ruby-1.2.3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.2.4.json: -------------------------------------------------------------------------------- 1 | "1.2/ruby-1.2.4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.2.5.json: -------------------------------------------------------------------------------- 1 | "1.2/ruby-1.2.5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.2.6.json: -------------------------------------------------------------------------------- 1 | "1.2/ruby-1.2.6.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.5.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.6.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.6.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.7.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.7.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.4.0.json: -------------------------------------------------------------------------------- 1 | "1.4/ruby-1.4.0.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.4.1.json: -------------------------------------------------------------------------------- 1 | "1.4/ruby-1.4.1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.4.2.json: -------------------------------------------------------------------------------- 1 | "1.4/ruby-1.4.2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.4.3.json: -------------------------------------------------------------------------------- 1 | "1.4/ruby-1.4.3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.4.4.json: -------------------------------------------------------------------------------- 1 | "1.4/ruby-1.4.4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.4.5.json: -------------------------------------------------------------------------------- 1 | "1.4/ruby-1.4.5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.4.6.json: -------------------------------------------------------------------------------- 1 | "1.4/ruby-1.4.6.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.0.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.0.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.1.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.2.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.3.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.4.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.5.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.6.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.6.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.7.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.7.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.6.8.json: -------------------------------------------------------------------------------- 1 | "1.6/ruby-1.6.8.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.0.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.0.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.1.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.3.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.4.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.6.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.0.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.0.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.1.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.2.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.3.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.1.4.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.1.5.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.1.6.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.1.7.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.1.8.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.1.9.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.9.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.0.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.1.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.2.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.3.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.4.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.5.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.6.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.7.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.8.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.9.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.9.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.0.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.1.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.2.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.3.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.4.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.5.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.6.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.7.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.8.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.0.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.1.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.2.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.3.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.4.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.5.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.6.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.7.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.9.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.9.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.0.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.1.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.2.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.3.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.4.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.5.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.6.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.7.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.8.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.9.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.9.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.0.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.1.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.2.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.3.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.4.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.5.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.6.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.7.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.8.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.9.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.9.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.0.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.1.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.2.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.3.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.4.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.5.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.6.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.7.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.8.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.0.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.1.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.2.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.3.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.4.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.5.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.6.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.7.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.0.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.1.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.2.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.3.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.4.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.5.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.6.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.7.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.0.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.1.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.2.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.3.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.4.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.5.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.6.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.7.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.8.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.9.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.9.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.0.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.1.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.2.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.3.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.4.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.5.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.6.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.7.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.8.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.9.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.9.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.0.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.0.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.1.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.2.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.3.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.4.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.4.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.5.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.5.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.6.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.6.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.7.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.7.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.8.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.8.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.9.0-0.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.0-0.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.0-1.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.0-1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.0-2.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.0-2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.0-3.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.0-3.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.0-4.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.0-4.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.0-5.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.0-5.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.10.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.10.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.10.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.10.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.10.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.10.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.10.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.10.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.10.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.10.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/1.0-961225.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-961225.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971002.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971002.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971003.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971003.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971015.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971015.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971021.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971021.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971118.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971118.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971125.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971125.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971204.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971204.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971209.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971209.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.0-971225.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-1.0-971225.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_01.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_01.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_02.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_02.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_03.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_03.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_04.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_04.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_05.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_05.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_06.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_06.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_07.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_07.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_08.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_08.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_09.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_09.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_10.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_10.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_11.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_11.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_12.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_12.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_13.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_13.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_14.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_14.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_15.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_15.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_16.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_16.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_17.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_17.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_18.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_18.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_19.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_19.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_20.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_20.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_21.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_21.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_22.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_22.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_23.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_23.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_24.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_24.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_25.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_25.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_26.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_26.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_27.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_27.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_28.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_28.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_29.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_29.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_30.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_30.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_31.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_31.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.1b9_32.json: -------------------------------------------------------------------------------- 1 | "1.1b/ruby-1.1b9_32.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p11.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p11.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p113.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p113.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p114.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p114.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p115.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p115.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p12.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p12.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p231.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p231.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p35.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p35.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p52.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p52.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p110.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p110.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p111.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p111.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p114.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p114.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p230.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p230.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p286.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p286.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p287.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p287.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p36.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p36.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p368.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p368.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p369.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p369.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p383.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p383.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p388.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p388.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p398.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p398.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p399.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p399.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-p420.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-p420.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p160.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p160.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p17.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p17.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p173.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p173.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p174.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p174.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p22.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p22.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p248.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p248.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p249.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p249.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p299.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p299.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p301.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p301.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p302.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p302.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p330.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p330.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p334.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p334.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p352.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p352.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p357.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p357.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p358.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p358.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p370.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p370.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p371.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p371.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p373.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p373.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p374.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p374.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p71.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p71.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-p72.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-p72.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p0.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p0.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p129.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p129.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p243.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p243.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p376.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p376.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p378.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p378.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p429.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p429.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p430.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p430.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-p431.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-p431.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-rc1.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-rc1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-rc2.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-rc2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-p0.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-p0.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-p136.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-p136.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-p180.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-p180.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-p290.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-p290.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-p318.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-p318.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-p320.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-p320.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-p330.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-p330.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-rc1.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-rc1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-rc2.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-rc2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p0.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p0.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p105.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p105.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p125.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p125.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p194.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p194.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p286.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p286.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p327.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p327.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p362.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p362.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p374.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p374.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p385.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p385.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p392.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p392.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p426.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p426.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p429.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p429.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p448.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p448.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p484.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p484.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p545.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p545.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p547.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p547.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p550.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p550.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-p551.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-p551.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-rc1.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-rc1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p0.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p0.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p195.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p195.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p247.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p247.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p353.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p353.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p451.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p451.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p481.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p481.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p576.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p576.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p594.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p594.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p598.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p598.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p643.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p643.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p645.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p645.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p647.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p647.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-p648.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-p648.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-rc1.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-rc1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-rc2.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-rc2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.0-rc1.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.0-rc1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.2.0-rc1.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.0-rc1.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.0-rc1.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.0-rc1.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.0-rc2.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.0-rc2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.0-rc1.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.0-rc2.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.0-rc2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.0-rc1.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.0-rc1.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.0-rc1.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.0-rc1.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.0-rc1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/0.73-950413.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.73-950413.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.99.4-961224.json: -------------------------------------------------------------------------------- 1 | "1.0/ruby-0.99.4-961224.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.1-990215.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.1-990215.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.1-990224.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.1-990224.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.1-990225.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.1-990225.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.1-990311.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.1-990311.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.1-990315.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.1-990315.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.1-990324.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.1-990324.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.2-990402.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.2-990402.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.2-990405.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.2-990405.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.2-990408.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.2-990408.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.2-990413.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.2-990413.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.3-990430.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.3-990430.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.3-990507.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.3-990507.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.3-990513.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.3-990513.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.3-990518.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.3-990518.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.4-990531.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.4-990531.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.4-990611.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.4-990611.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.4-990624.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.4-990624.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.3.4-990625.json: -------------------------------------------------------------------------------- 1 | "1.3/ruby-1.3.4-990625.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/2.6.0-preview2.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.0-preview2.tar.xz" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [012].* 2 | !*.json 3 | DIST 4 | bin 5 | build 6 | 7 | -------------------------------------------------------------------------------- /versions/1.8.2-preview1.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.2-preview1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.2-preview2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.2-preview2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.2-preview3.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.2-preview3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.2-preview4.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.2-preview4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.3-preview1.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.3-preview1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.3-preview2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.3-preview2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.3-preview3.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.3-preview3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.4-preview1.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.4-preview1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.4-preview2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.4-preview2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.4-preview3.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.4-preview3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-preview1.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-preview1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-preview2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-preview2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-preview3.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-preview3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-preview4.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-preview4.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-preview5.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-preview5.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-preview1.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-preview1.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-preview2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-preview2.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.6-preview3.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.6-preview3.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-preview1.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-preview1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-preview2.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-preview2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-preview3.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-preview3.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.8.7-preview4.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.7-preview4.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-preview1.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-preview1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.1-preview2.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.1-preview2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-preview1.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-preview1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.2-preview3.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.2-preview3.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/1.9.3-preview1.json: -------------------------------------------------------------------------------- 1 | "1.9/ruby-1.9.3-preview1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-preview1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.0.0-preview2.json: -------------------------------------------------------------------------------- 1 | "2.0/ruby-2.0.0-preview2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.0-preview1.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.1.0-preview2.json: -------------------------------------------------------------------------------- 1 | "2.1/ruby-2.1.0-preview2.tar.bz2" 2 | -------------------------------------------------------------------------------- /versions/2.2.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.2.0-preview2.json: -------------------------------------------------------------------------------- 1 | "2.2/ruby-2.2.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.3.0-preview2.json: -------------------------------------------------------------------------------- 1 | "2.3/ruby-2.3.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.0-preview2.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.4.0-preview3.json: -------------------------------------------------------------------------------- 1 | "2.4/ruby-2.4.0-preview3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.5.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.5/ruby-2.5.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.6.0-preview3.json: -------------------------------------------------------------------------------- 1 | "2.6/ruby-2.6.0-preview3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.0-preview1.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.0-preview2.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/2.7.0-preview3.json: -------------------------------------------------------------------------------- 1 | "2.7/ruby-2.7.0-preview3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.0-preview1.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.0.0-preview2.json: -------------------------------------------------------------------------------- 1 | "3.0/ruby-3.0.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.1.0-preview1.json: -------------------------------------------------------------------------------- 1 | "3.1/ruby-3.1.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.0-preview1.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.0-preview2.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.2.0-preview3.json: -------------------------------------------------------------------------------- 1 | "3.2/ruby-3.2.0-preview3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.0-preview1.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.0-preview2.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.3.0-preview3.json: -------------------------------------------------------------------------------- 1 | "3.3/ruby-3.3.0-preview3.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.0-preview1.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.4.0-preview2.json: -------------------------------------------------------------------------------- 1 | "3.4/ruby-3.4.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/3.5.0-preview1.json: -------------------------------------------------------------------------------- 1 | "3.5/ruby-3.5.0-preview1.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/4.0.0-preview2.json: -------------------------------------------------------------------------------- 1 | "4.0/ruby-4.0.0-preview2.tar.xz" 2 | -------------------------------------------------------------------------------- /versions/1.8.5-p11-repack.json: -------------------------------------------------------------------------------- 1 | "1.8/ruby-1.8.5-p11-repack.tar.gz" 2 | -------------------------------------------------------------------------------- /versions/0.71.json: -------------------------------------------------------------------------------- 1 | { 2 | "relpath":"1.0/ruby-0.71.tar.gz", 3 | "enable":false, 4 | "comment":"no hash.c" 5 | } 6 | -------------------------------------------------------------------------------- /versions/2.4.8.json: -------------------------------------------------------------------------------- 1 | { 2 | "relpath":"2.4/ruby-2.4.8.tar.xz", 3 | "enable":false, 4 | "comment":"packaging issue [Bug #16197]" 5 | } 6 | -------------------------------------------------------------------------------- /patch/glob-voidalloca.diff: -------------------------------------------------------------------------------- 1 | --- glob.c- 2024-03-20 18:41:00.808630000 +0900 2 | +++ glob.c 2024-03-20 18:41:33.134288000 +0900 3 | @@ -83,5 +83,5 @@ 4 | #include 5 | #else 6 | -char *alloca (); 7 | +void *alloca (); 8 | #endif 9 | #endif 10 | -------------------------------------------------------------------------------- /patch/error-error.diff: -------------------------------------------------------------------------------- 1 | --- error.c- 2014-12-25 22:51:44.435890326 +0900 2 | +++ error.c 2014-12-25 22:52:04.051857359 +0900 3 | @@ -64,6 +64,8 @@ 4 | } 5 | } 6 | 7 | +void Error(char *fmt, ...); 8 | + 9 | void 10 | yyerror(msg) 11 | char *msg; 12 | -------------------------------------------------------------------------------- /patch/error-error2.diff: -------------------------------------------------------------------------------- 1 | --- error.c- 2014-12-26 01:22:42.202994722 +0900 2 | +++ error.c 2014-12-26 01:22:56.082943287 +0900 3 | @@ -59,6 +59,8 @@ 4 | } 5 | } 6 | 7 | +void Error(char *fmt, ...); 8 | + 9 | yyerror(msg) 10 | char *msg; 11 | { 12 | -------------------------------------------------------------------------------- /patch/variable-break.diff: -------------------------------------------------------------------------------- 1 | --- variable.c- 2014-12-25 22:29:29.594323517 +0900 2 | +++ variable.c 2014-12-25 22:30:22.290216360 +0900 3 | @@ -726,6 +726,7 @@ 4 | } 5 | break; 6 | default: 7 | + break; 8 | } 9 | return hash; 10 | } 11 | -------------------------------------------------------------------------------- /patch/ruby-errno.diff: -------------------------------------------------------------------------------- 1 | --- ruby.h- 2014-12-26 00:14:58.353249831 +0900 2 | +++ ruby.h 2014-12-26 00:15:06.513224368 +0900 3 | @@ -13,6 +13,8 @@ 4 | #ifndef RUBY_H 5 | #define RUBY_H 6 | 7 | +#include 8 | + 9 | #ifndef NT 10 | # include "config.h" 11 | #endif 12 | -------------------------------------------------------------------------------- /patch/ruby-errno3.diff: -------------------------------------------------------------------------------- 1 | --- ruby.h- 2014-12-26 01:13:31.401102794 +0900 2 | +++ ruby.h 2014-12-26 01:13:41.033065788 +0900 3 | @@ -13,6 +13,8 @@ 4 | #ifndef RUBY_H 5 | #define RUBY_H 6 | 7 | +#include 8 | + 9 | #include "defines.h" 10 | 11 | #ifdef __STDC__ 12 | -------------------------------------------------------------------------------- /patch/ruby-errno2.diff: -------------------------------------------------------------------------------- 1 | --- ruby.h- 2014-12-26 00:23:15.891673960 +0900 2 | +++ ruby.h 2014-12-26 00:23:23.371661042 +0900 3 | @@ -13,6 +13,8 @@ 4 | #ifndef RUBY_H 5 | #define RUBY_H 6 | 7 | +#include 8 | + 9 | #include "config.h" 10 | #include "defines.h" 11 | 12 | -------------------------------------------------------------------------------- /patch/makefile-assoc.diff: -------------------------------------------------------------------------------- 1 | --- Makefile.in- 2014-12-26 00:37:19.512781468 +0900 2 | +++ Makefile.in 2014-12-26 00:37:26.868757961 +0900 3 | @@ -29,7 +29,7 @@ 4 | bignum.o \ 5 | class.o \ 6 | compar.o \ 7 | - cons.o \ 8 | + assoc.o \ 9 | dir.o \ 10 | dln.o \ 11 | enum.o \ 12 | -------------------------------------------------------------------------------- /patch/defines-nodbm.diff: -------------------------------------------------------------------------------- 1 | --- defines.h- 2014-12-26 00:51:57.213845599 +0900 2 | +++ defines.h 2014-12-26 00:51:59.445837396 +0900 3 | @@ -28,7 +28,7 @@ 4 | #endif 5 | 6 | /* define USE_DBM to use dbm class. */ 7 | -#define USE_DBM 8 | +/* #define USE_DBM */ 9 | 10 | #define SAFE_SIGHANDLE 11 | 12 | -------------------------------------------------------------------------------- /patch/time-time.diff: -------------------------------------------------------------------------------- 1 | --- time.c- 2014-12-25 23:03:42.666613456 +0900 2 | +++ time.c 2014-12-25 23:03:48.210601144 +0900 3 | @@ -15,6 +15,7 @@ 4 | #include 5 | #include 6 | #include 7 | +#include 8 | 9 | static VALUE C_Time; 10 | extern VALUE M_Comparable; 11 | -------------------------------------------------------------------------------- /patch/error-sysnerr.diff: -------------------------------------------------------------------------------- 1 | --- error.c- 2024-03-20 19:28:51.656475000 +0900 2 | +++ error.c 2024-03-20 19:29:47.710252000 +0900 3 | @@ -380,7 +380,7 @@ 4 | rb_raise(exc_new(syserr_list[n], buf)); 5 | } 6 | 7 | -extern int sys_nerr; 8 | +extern int const sys_nerr; 9 | 10 | static void 11 | init_syserr() 12 | -------------------------------------------------------------------------------- /patch/struct-va_end2.diff: -------------------------------------------------------------------------------- 1 | --- struct.c- 2014-12-26 01:25:39.946326530 +0900 2 | +++ struct.c 2014-12-26 01:25:49.302290640 +0900 3 | @@ -99,7 +99,7 @@ 4 | struct_add(st, mem, va_arg(args, VALUE)); 5 | } 6 | 7 | - va_end(vargs); 8 | + va_end(args); 9 | GC_UNLINK; 10 | 11 | return st; 12 | -------------------------------------------------------------------------------- /patch/time-time2.diff: -------------------------------------------------------------------------------- 1 | --- time.c- 2014-12-26 01:27:00.298024340 +0900 2 | +++ time.c 2014-12-26 01:27:07.305998535 +0900 3 | @@ -14,6 +14,7 @@ 4 | #include 5 | #include 6 | #include 7 | +#include 8 | 9 | static VALUE C_Time; 10 | extern VALUE M_Comparable; 11 | -------------------------------------------------------------------------------- /patch/gnuglob-alloca2.diff: -------------------------------------------------------------------------------- 1 | --- gnuglob.c- 2014-12-26 01:18:59.871840717 +0900 2 | +++ gnuglob.c 2014-12-26 01:19:36.247700831 +0900 3 | @@ -89,7 +89,7 @@ 4 | #if defined(sparc) && !defined(__GNUC__) 5 | #include 6 | #else 7 | -char *alloca (); 8 | +#include 9 | #endif 10 | 11 | #include "fnmatch.h" 12 | -------------------------------------------------------------------------------- /patch/parse-semicolon.diff: -------------------------------------------------------------------------------- 1 | --- parse.y- 2014-12-25 23:34:41.375762661 +0900 2 | +++ parse.y 2014-12-25 23:34:50.699737531 +0900 3 | @@ -1261,7 +1261,7 @@ 4 | { 5 | $$ = $3; 6 | } 7 | - | error term {yyerrok; $$ = 0} 8 | + | error term {yyerrok; $$ = 0;} 9 | 10 | f_arglist : '(' f_args ')' 11 | { 12 | -------------------------------------------------------------------------------- /patch/math-define-erange.diff: -------------------------------------------------------------------------------- 1 | --- math.c- 2014-09-13 13:15:11.594193976 +0900 2 | +++ math.c 2014-09-13 13:15:17.414173696 +0900 3 | @@ -34,7 +34,7 @@ 4 | if (isnan(x)) { 5 | #if defined(EDOM) 6 | errno = EDOM; 7 | -#elif define(ERANGE) 8 | +#elif defined(ERANGE) 9 | errno = ERANGE; 10 | #endif 11 | continue; 12 | -------------------------------------------------------------------------------- /patch/glob-alloca.diff: -------------------------------------------------------------------------------- 1 | --- glob.c- 2014-09-28 02:20:44.658675845 +0900 2 | +++ glob.c 2014-09-28 02:21:23.094542639 +0900 3 | @@ -79,7 +79,7 @@ 4 | #ifdef _AIX 5 | #pragma alloca 6 | #else 7 | -#if defined(HAVE_ALLOCA_H) && !defined(__GNUC__) 8 | +#if defined(HAVE_ALLOCA_H) 9 | #include 10 | #else 11 | char *alloca (); 12 | -------------------------------------------------------------------------------- /patch/struct-va_end.diff: -------------------------------------------------------------------------------- 1 | --- struct.c- 2014-12-25 23:02:08.618786407 +0900 2 | +++ struct.c 2014-12-25 23:02:14.886774868 +0900 3 | @@ -96,7 +96,7 @@ 4 | while (mem = va_arg(args, char*)) { 5 | struct_add(st, mem, va_arg(args, VALUE)); 6 | } 7 | - va_end(vargs); 8 | + va_end(args); 9 | 10 | return st; 11 | } 12 | -------------------------------------------------------------------------------- /patch/glob-alloca2.diff: -------------------------------------------------------------------------------- 1 | --- glob.c- 2014-12-26 00:00:27.631756439 +0900 2 | +++ glob.c 2014-12-26 00:00:39.095728098 +0900 3 | @@ -70,7 +70,7 @@ 4 | 5 | # define bcopy(s, d, n) (memcpy ((d), (s), (n))) 6 | 7 | -#if defined(HAVE_ALLOCA_H) && !defined(__GNUC__) 8 | +#if defined(HAVE_ALLOCA_H) 9 | #include 10 | #else 11 | char *alloca (); 12 | -------------------------------------------------------------------------------- /patch/gnuglob-alloca.diff: -------------------------------------------------------------------------------- 1 | --- gnuglob.c- 2014-12-26 01:02:06.047805261 +0900 2 | +++ gnuglob.c 2014-12-26 01:02:14.111773139 +0900 3 | @@ -88,7 +88,7 @@ 4 | # endif /* !RISC6000 */ 5 | #endif /* USG */ 6 | 7 | -#if defined(HAVE_ALLOCA_H) && !defined(__GNUC__) 8 | +#if defined(HAVE_ALLOCA_H) 9 | #include 10 | #else 11 | char *alloca (); 12 | -------------------------------------------------------------------------------- /patch/extmk-heredoc.diff: -------------------------------------------------------------------------------- 1 | --- ext/extmk.rb.in- 2014-09-15 08:56:07.932836025 +0900 2 | +++ ext/extmk.rb.in 2014-09-15 08:56:14.016816285 +0900 3 | @@ -313,7 +313,7 @@ 4 | mfile.printf $objs.join(" ") 5 | mfile.printf "\n" 6 | 7 | - mfile.printf << EOS 8 | + mfile.printf < 5 | #include 6 | #include "ruby_atomic.h" 7 | +#ifdef HAVE_UNISTD_H 8 | +# include 9 | +#endif 10 | 11 | #if !defined(_WIN32) && !defined(HAVE_GCC_ATOMIC_BUILTINS) 12 | rb_atomic_t 13 | -------------------------------------------------------------------------------- /patch/gnuglob-dirent.diff: -------------------------------------------------------------------------------- 1 | --- gnuglob.c- 2014-12-26 01:07:03.086622263 +0900 2 | +++ gnuglob.c 2014-12-26 01:07:05.366613221 +0900 3 | @@ -38,7 +38,7 @@ 4 | # endif /* !HAVE_DIRENT_H */ 5 | #endif /* !SHELL && (_POSIX_VERSION || USGr3) */ 6 | 7 | -#if defined (HAVE_DIRENT_H) 8 | +#if defined (DIRENT) 9 | # include 10 | # if !defined (direct) 11 | # define direct dirent 12 | -------------------------------------------------------------------------------- /patch/regex-re_match_2.diff: -------------------------------------------------------------------------------- 1 | --- regex.c- 2014-12-26 00:51:48.949872931 +0900 2 | +++ regex.c 2014-12-26 00:51:52.145861358 +0900 3 | @@ -1901,7 +1901,7 @@ 4 | int size, pos; 5 | struct re_registers *regs; 6 | { 7 | - return re_match_2 (pbufp, (char *) 0, 0, string, size, pos, regs, size); 8 | + return re_match_2 (pbufp, (char *) 0, 0, string, size, pos, regs); 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /patch/error-sysnerr3.diff: -------------------------------------------------------------------------------- 1 | --- error.c- 2001-03-21 17:04:11.000000000 +0900 2 | +++ error.c 2001-09-03 14:20:48.000000000 +0900 3 | @@ -468,7 +468,7 @@ 4 | static VALUE *syserr_list; 5 | #endif 6 | 7 | -#if !defined NT && !defined sys_nerr 8 | +#if !defined(NT) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(sys_nerr) 9 | extern int sys_nerr; 10 | #endif 11 | 12 | -------------------------------------------------------------------------------- /patch/rb_type-definition.diff: -------------------------------------------------------------------------------- 1 | --- object.c- 2014-12-25 23:48:15.061632400 +0900 2 | +++ object.c 2014-12-25 23:48:24.097608082 +0900 3 | @@ -775,7 +775,6 @@ 4 | return RBASIC(obj)->class; 5 | } 6 | 7 | -#if !defined(__GNUC__) || __GNUC__ < 2 8 | int 9 | rb_type(obj) 10 | VALUE obj; 11 | @@ -806,7 +805,6 @@ 12 | { 13 | return (v != Qnil) && (v != FALSE); 14 | } 15 | -#endif 16 | 17 | VALUE TopSelf; 18 | 19 | -------------------------------------------------------------------------------- /patch/glibc-stdio2.diff: -------------------------------------------------------------------------------- 1 | --- io.c- 2019-02-20 08:10:20.917416172 +0900 2 | +++ io.c 2019-02-20 08:10:33.953347904 +0900 3 | @@ -1033,8 +1033,8 @@ 4 | 5 | struct timeval *time_timeval(); 6 | 7 | -#ifdef _STDIO_USES_IOSTREAM /* GNU libc */ 8 | -# ifdef _IO_fpos_t 9 | +#if 1 /* GNU libc */ 10 | +# if 1 11 | # define READ_DATA_PENDING(fp) ((fp)->_IO_read_ptr < (fp)->_IO_read_end) 12 | # else 13 | # define READ_DATA_PENDING(fp) ((fp)->_gptr < (fp)->_egptr) 14 | -------------------------------------------------------------------------------- /patch/glibc-stdio4.diff: -------------------------------------------------------------------------------- 1 | --- io.c- 2019-02-20 08:14:51.184001225 +0900 2 | +++ io.c 2019-02-20 08:15:04.483931617 +0900 3 | @@ -940,8 +940,8 @@ 4 | 5 | struct timeval *time_timeval(); 6 | 7 | -#ifdef _STDIO_USES_IOSTREAM /* GNU libc */ 8 | -# ifdef _other_gbase 9 | +#if 1 /* GNU libc */ 10 | +# if 1 11 | # define READ_DATA_PENDING(fp) ((fp)->_IO_read_ptr < (fp)->_IO_read_end) 12 | # else 13 | # define READ_DATA_PENDING(fp) ((fp)->_IO_read_ptr < (fp)->_IO_read_end) 14 | -------------------------------------------------------------------------------- /patch/glibc-stdio3.diff: -------------------------------------------------------------------------------- 1 | --- io.c- 2019-02-20 08:12:57.640595571 +0900 2 | +++ io.c 2019-02-20 08:13:15.172503788 +0900 3 | @@ -944,8 +944,8 @@ 4 | 5 | struct timeval *time_timeval(); 6 | 7 | -#ifdef _STDIO_USES_IOSTREAM /* GNU libc */ 8 | -# ifdef _other_gbase 9 | +#if 1 /* GNU libc */ 10 | +# if 1 11 | # define READ_DATA_PENDING(fp) ((fp)->_IO_read_ptr < (fp)->_IO_read_end) 12 | # else 13 | # define READ_DATA_PENDING(fp) ((fp)->_IO_read_ptr < (fp)->_IO_read_end) 14 | -------------------------------------------------------------------------------- /patch/glibc-stdio.diff: -------------------------------------------------------------------------------- 1 | --- io.c- 2019-02-20 07:50:16.859744610 +0900 2 | +++ io.c 2019-02-20 07:50:19.171732362 +0900 3 | @@ -101,8 +101,8 @@ 4 | static int init_p = 0, next_p = 0, first_p = 1; 5 | static VALUE lineno; 6 | 7 | -#ifdef _STDIO_USES_IOSTREAM /* GNU libc */ 8 | -# ifdef _IO_fpos_t 9 | +#if 1 /* GNU libc */ 10 | +# if 1 11 | # define READ_DATA_PENDING(fp) ((fp)->_IO_read_ptr != (fp)->_IO_read_end) 12 | # else 13 | # define READ_DATA_PENDING(fp) ((fp)->_gptr < (fp)->_egptr) 14 | -------------------------------------------------------------------------------- /patch/instruby-dll.diff: -------------------------------------------------------------------------------- 1 | --- instruby.rb- 2014-12-26 02:58:56.171347254 +0900 2 | +++ instruby.rb 2014-12-26 02:59:01.883324962 +0900 3 | @@ -20,7 +20,7 @@ 4 | 5 | File.install "ruby#{binsuffix}", 6 | "#{bindir}/#{ruby_install_name}#{binsuffix}", 0755, TRUE 7 | -File.install "rubygw32.dll", "#{bindir}/rubygw32.dll", 0755, TRUE 8 | +#File.install "rubygw32.dll", "#{bindir}/rubygw32.dll", 0755, TRUE 9 | File.makedirs libdir, TRUE 10 | Dir.chdir "ext" 11 | system "../miniruby#{binsuffix} extmk.rb install" 12 | -------------------------------------------------------------------------------- /test/test_squeezer.rb: -------------------------------------------------------------------------------- 1 | require 'test/unit' 2 | require 'stringio' 3 | 4 | require_relative '../lib/formatter' 5 | require_relative '../lib/squeezer' 6 | 7 | class TestSqueezer < Test::Unit::TestCase 8 | def test_end_with_prefix 9 | status = nil 10 | out = StringIO.new 11 | prev_sq = sq = nil 12 | 3.times {|n| 13 | fmt = Formatter.new(2, "A", out) 14 | sq = Squeezer.new(prev_sq, fmt) 15 | sq.start 16 | sq.output_data("a" * (3-n)) 17 | sq.show_status status 18 | sq.last_linebreak 19 | prev_sq = sq 20 | } 21 | sq.force_output 22 | assert_equal("A aaa\nA aa\nA a\n", out.string) 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /lib/ruby_version.rb: -------------------------------------------------------------------------------- 1 | VERSION_WORD_NUMBER = { 2 | 'ruby' => 0, 3 | 'preview' => -2, 4 | 'rc' => -1, 5 | 'p' => 1, 6 | 'a' => 1, 7 | 'b' => 2, 8 | 'c' => 3, 9 | 'd' => 4, 10 | 'repack' => 1, 11 | } 12 | 13 | def vercmp_key(n) 14 | return [] if /\A[0-9]/ !~ n 15 | ary = [] 16 | n.scan(/(\d+)|[a-z]+/m) { 17 | if $1 18 | ary << $1.to_i 19 | else 20 | n = VERSION_WORD_NUMBER[$&] 21 | if n 22 | ary << n 23 | else 24 | warn "unexpected word: #{$&.inspect}" 25 | end 26 | end 27 | } 28 | # [1,8,2] < [1,8,2,-2] but [1,8,2,-2,0,...] < [1,8,2,0,...] 29 | 10.times { ary << 0 } 30 | ary 31 | end 32 | -------------------------------------------------------------------------------- /.github/workflows/update.yml: -------------------------------------------------------------------------------- 1 | name: Update latest versions 2 | 3 | on: 4 | workflow_dispatch: 5 | repository_dispatch: 6 | types: [update] 7 | 8 | jobs: 9 | update: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | - run: sleep 180 # wait for the release to be available 14 | - run: rake sync 15 | - name: commit and push 16 | run: | 17 | git config user.name "GitHub Actions Bot" 18 | git config user.email "github-actions[bot]@users.noreply.github.com" 19 | git add . 20 | git commit -m "rake sync" 21 | git push 22 | env: 23 | GITHUB_TOKEN: ${{ secrets.MATZBOT_AUTO_UPDATE_TOKEN }} 24 | -------------------------------------------------------------------------------- /patch/rbconfig-expand.diff: -------------------------------------------------------------------------------- 1 | diff -ur mkconfig.rb mkconfig.rb 2 | --- mkconfig.rb 1999-04-28 13:23:39.000000000 +0900 3 | +++ mkconfig.rb 1999-05-04 02:06:29.000000000 +0900 4 | @@ -63,7 +63,20 @@ 5 | end 6 | 7 | print v_fast, v_others 8 | -print " CONFIG[\"compile_dir\"] = \"#{File.expand_path(File.dirname($0))}\"\n" 9 | -print "end\n" 10 | +print <vm_stack, 6 | cont->vm_stack + cont->vm_stack_slen + cont->vm_stack_clen); 7 | -#elif 8 | +#else 9 | rb_gc_mark_localtion(cont->vm_stack, 10 | cont->vm_stack, cont->saved_thread.stack_size); 11 | #endif 12 | @@ -267,7 +267,7 @@ 13 | cont->vm_stack = ALLOC_N(VALUE, cont->vm_stack_slen + cont->vm_stack_clen); 14 | MEMCPY(cont->vm_stack, th->stack, VALUE, cont->vm_stack_slen); 15 | MEMCPY(cont->vm_stack + cont->vm_stack_slen, (VALUE*)th->cfp, VALUE, cont->vm_stack_clen); 16 | -#elif 17 | +#else 18 | cont->vm_stack = ALLOC_N(VALUE, th->stack_size); 19 | MEMCPY(cont->vm_stack, th->stack, VALUE, th->stack_size); 20 | #endif 21 | @@ -314,7 +314,7 @@ 22 | MEMCPY(th->stack, cont->vm_stack, VALUE, cont->vm_stack_slen); 23 | MEMCPY(th->stack + sth->stack_size - cont->vm_stack_clen, 24 | cont->vm_stack + cont->vm_stack_slen, VALUE, cont->vm_stack_clen); 25 | -#elif 26 | +#else 27 | MEMCPY(th->stack, cont->vm_stack, VALUE, sth->stack_size); 28 | #endif 29 | } 30 | -------------------------------------------------------------------------------- /lib/squeezer.rb: -------------------------------------------------------------------------------- 1 | class Squeezer 2 | def initialize(prev_sq, fmt) 3 | @prev_sq = prev_sq 4 | @fmt = fmt 5 | @shown = prev_sq.nil? || $opt_all_ruby_show_dup 6 | @content = String.new 7 | @status = nil 8 | end 9 | attr_reader :prev_sq, :content, :status, :shown 10 | 11 | def drop_prev 12 | @prev_sq = nil 13 | end 14 | 15 | def difference_found 16 | if @prev_sq 17 | @prev_sq.force_output 18 | end 19 | @shown = true 20 | end 21 | 22 | def start 23 | if @prev_sq && 24 | @prev_sq.prev_sq && 25 | @prev_sq.prev_sq.prev_sq 26 | if @prev_sq.prev_sq.prev_sq.shown && 27 | !@prev_sq.prev_sq.shown && 28 | !@prev_sq.shown 29 | @fmt.output_dots 30 | end 31 | @prev_sq.prev_sq.drop_prev 32 | end 33 | return @fmt.start if @shown 34 | end 35 | 36 | def output_data(s) 37 | @content << s 38 | return @fmt.output_data(s) if @shown 39 | return if @prev_sq.content.start_with? @content 40 | difference_found 41 | @fmt.start 42 | @fmt.output_data(@content) 43 | end 44 | 45 | def show_status(status) 46 | @status = status 47 | return @fmt.show_status(status) if @shown 48 | return if @prev_sq.content == @content && 49 | @prev_sq.status == status 50 | difference_found 51 | @fmt.start 52 | @fmt.output_data(@content) 53 | @fmt.show_status(@status) 54 | end 55 | 56 | def last_linebreak 57 | return @fmt.last_linebreak if @shown 58 | end 59 | 60 | def force_output 61 | return if @shown 62 | if @prev_sq && 63 | @prev_sq.prev_sq && 64 | @prev_sq.prev_sq.shown && 65 | !@prev_sq.shown 66 | @fmt.output_dots 67 | end 68 | @shown = true 69 | @fmt.start 70 | @fmt.output_data(@content) 71 | @fmt.show_status(@status) 72 | @fmt.last_linebreak 73 | end 74 | end 75 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | ARG os=debian 2 | ARG version=bullseye 3 | ARG variant=-slim 4 | ARG mirror=http://deb.debian.org/debian 5 | ARG system_ruby=ruby2.7 6 | 7 | # Build for 0.*, 1.0*, 1.1*, 1.8 and 1.8.5 8 | FROM debian:buster-slim 9 | ENV DEBIAN_FRONTEND=noninteractive 10 | ARG mirror 11 | 12 | RUN dpkg --add-architecture i386 \ 13 | && echo "deb-src ${mirror} buster main" > /etc/apt/sources.list.d/deb-src.list \ 14 | && echo 'Dpkg::Use-Pty "0";\nquiet "2";\nAPT::Install-Recommends "0";' > /etc/apt/apt.conf.d/99autopilot \ 15 | && echo 'Acquire::HTTP::No-Cache "True";' > /etc/apt/apt.conf.d/99no-cache \ 16 | && apt-get update \ 17 | && apt-get install \ 18 | build-essential \ 19 | gcc-multilib \ 20 | bison \ 21 | rdfind \ 22 | file \ 23 | libruby2.5:amd64 \ 24 | libruby2.5:i386 \ 25 | && apt-get build-dep ruby2.5 \ 26 | && rm -rf /var/lib/apt/lists/* 27 | 28 | WORKDIR /all-ruby 29 | 30 | COPY Rakefile /all-ruby/ 31 | COPY lib/ruby_version.rb /all-ruby/lib/ 32 | COPY patch /all-ruby/patch/ 33 | RUN rake setup_build 34 | 35 | # rake -j interpret non-numeric argument as number of CPUs plus 3. 36 | ARG j=numcpu_plus_alpha 37 | 38 | COPY versions/0.* versions/1.* versions/2.0.0* /all-ruby/versions/ 39 | RUN rake -j ${j} all-0 all-1.0 all-1.1a all-1.1b all-1.1c all-1.1d all-1.8 all-1.8.5 40 | RUN rake -j ${j} all-2.0.0 41 | 42 | RUN rm -rf Rakefile versions/ patch/ 43 | RUN rm -rf DIST build/*/log build/*/ruby*/ 44 | RUN rm -rf build/*/man build/*/share/man build/*/share/doc build/*/share/ri 45 | RUN rm -f build/*/lib/libruby-static.a 46 | RUN rm -f build/*/bin/gcc build/*/bin/cc 47 | 48 | FROM ${os}:${version}${variant} 49 | ENV DEBIAN_FRONTEND=noninteractive 50 | ARG mirror 51 | ARG version 52 | ARG system_ruby 53 | 54 | RUN dpkg --add-architecture i386 \ 55 | && echo "deb-src ${mirror} ${version} main" > /etc/apt/sources.list.d/deb-src.list \ 56 | && echo 'Dpkg::Use-Pty "0";\nquiet "2";\nAPT::Install-Recommends "0";' > /etc/apt/apt.conf.d/99autopilot \ 57 | && echo 'Acquire::HTTP::No-Cache "True";' > /etc/apt/apt.conf.d/99no-cache \ 58 | && apt-get update \ 59 | && apt-get install \ 60 | build-essential \ 61 | gcc-multilib \ 62 | bison \ 63 | rdfind \ 64 | file \ 65 | lib${system_ruby}:amd64 \ 66 | lib${system_ruby}:i386 \ 67 | && apt-get build-dep ${system_ruby} \ 68 | && rm -rf /var/lib/apt/lists/* 69 | 70 | COPY --from=0 /build-all-ruby/ /build-all-ruby 71 | COPY --from=0 /all-ruby/ /all-ruby 72 | 73 | WORKDIR /all-ruby 74 | 75 | COPY Rakefile /all-ruby/ 76 | COPY lib/ruby_version.rb /all-ruby/lib/ 77 | COPY patch /all-ruby/patch/ 78 | RUN rake setup_build 79 | 80 | # rake -j interpret non-numeric argument as number of CPUs plus 3. 81 | ARG j=numcpu_plus_alpha 82 | 83 | COPY versions/1.* versions/2.1* versions/2.2* versions/2.3* versions/2.4* versions/2.5* versions/2.6* versions/2.7* versions/3.0* /all-ruby/versions/ 84 | RUN rake -j ${j} all-1.2 all-1.3 all-1.4 all-1.6 all-1.8.6 all-1.8.7 85 | RUN rake -j ${j} all-1.9.0 all-1.9.1 all-1.9.2 86 | RUN rake -j ${j} all-1.9.3 87 | RUN rake -j ${j} all-2.1 88 | RUN rake -j ${j} all-2.2 89 | RUN rake -j ${j} all-2.3 90 | RUN rake -j ${j} all-2.4 91 | RUN rake -j ${j} all-2.5 92 | RUN rake -j ${j} all-2.6 93 | RUN rake -j ${j} all-2.7 94 | RUN rake -j ${j} all-3.0 95 | 96 | COPY versions/3.1* /all-ruby/versions/ 97 | RUN rake -j ${j} all-3.1 98 | 99 | COPY versions/3.2* /all-ruby/versions/ 100 | RUN rake -j ${j} all-3.2 101 | 102 | COPY versions/3.3* /all-ruby/versions/ 103 | RUN rake -j ${j} all-3.3 104 | 105 | COPY versions/3.4* /all-ruby/versions/ 106 | RUN rake -j ${j} all-3.4 107 | 108 | COPY versions/3.5* /all-ruby/versions/ 109 | RUN rake -j ${j} 3.5.0-preview1 110 | 111 | COPY versions/4.0* /all-ruby/versions/ 112 | RUN rake -j ${j} 4.0.0-preview2 113 | 114 | COPY lib/* /all-ruby/lib/ 115 | COPY all-ruby /all-ruby/ 116 | 117 | RUN rm -rf Rakefile versions/ patch/ 118 | RUN rm -rf DIST build/*/log build/*/ruby*/ 119 | RUN rm -rf build/*/man build/*/share/man build/*/share/doc build/*/share/ri 120 | RUN rm -f build/*/lib/libruby-static.a 121 | RUN rm -f build/*/bin/gcc build/*/bin/cc 122 | 123 | RUN find /build-all-ruby -type f \( -name ruby -o -name '*.so' \) -exec sh -c 'file $1 | grep -q "not stripped"' - '{}' \; -print0 | xargs -0 strip 124 | RUN rdfind -makehardlinks true -makeresultsfile false /build-all-ruby 125 | 126 | FROM ${os}:${version}${variant} 127 | ENV DEBIAN_FRONTEND=noninteractive 128 | ARG mirror 129 | ARG version 130 | ARG system_ruby 131 | 132 | # gcc is required for mjit of ruby 2.6 133 | 134 | RUN dpkg --add-architecture i386 \ 135 | && echo "deb-src ${mirror} ${version} main" > /etc/apt/sources.list.d/deb-src.list \ 136 | && echo 'Dpkg::Use-Pty "0";\nquiet "2";\nAPT::Install-Recommends "0";' > /etc/apt/apt.conf.d/99autopilot \ 137 | && echo 'Acquire::HTTP::No-Cache "True";' > /etc/apt/apt.conf.d/99no-cache \ 138 | && apt-get update \ 139 | && apt-get install \ 140 | libc6:i386 \ 141 | libffi7:i386 \ 142 | libgcc1:i386 \ 143 | libgdbm6:i386 \ 144 | libncurses5:i386 \ 145 | libreadline8:i386 \ 146 | libssl1.1:i386 \ 147 | zlib1g:i386 \ 148 | libffi7:amd64 \ 149 | libgdbm6:amd64 \ 150 | libncurses5:amd64 \ 151 | libreadline8:amd64 \ 152 | libssl1.1:amd64 \ 153 | zlib1g:amd64 \ 154 | gcc \ 155 | ${system_ruby} \ 156 | && rm -rf /var/lib/apt/lists/* 157 | 158 | COPY --from=1 /build-all-ruby/ /build-all-ruby 159 | COPY --from=1 /all-ruby/ /all-ruby 160 | 161 | WORKDIR /all-ruby 162 | -------------------------------------------------------------------------------- /all-ruby: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | # all-ruby - runs various ruby with same command line. 4 | # 5 | # Copyright (C) 2009- Tanaka Akira 6 | # 7 | # Redistribution and use in source and binary forms, with or without 8 | # modification, are permitted provided that the following conditions 9 | # are met: 10 | # 11 | # 1. Redistributions of source code must retain the above copyright 12 | # notice, this list of conditions and the following disclaimer. 13 | # 2. Redistributions in binary form must reproduce the above 14 | # copyright notice, this list of conditions and the following 15 | # disclaimer in the documentation and/or other materials provided 16 | # with the distribution. 17 | # 3. The name of the author may not be used to endorse or promote 18 | # products derived from this software without specific prior 19 | # written permission. 20 | # 21 | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 22 | # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 25 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 27 | # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 29 | # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 30 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 31 | # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | require_relative 'lib/formatter' 34 | require_relative 'lib/squeezer' 35 | require_relative 'lib/ruby_version' 36 | 37 | def find_commands(bins) 38 | commands = [] 39 | all_ruby_bin = File.join(File.dirname(File.realpath(__FILE__)), 'bin') 40 | bins.each {|n| 41 | bin = "#{all_ruby_bin}/#{n}" 42 | if File.file?(bin) && File.executable?(bin) 43 | commands << bin 44 | else 45 | STDERR.puts "not found: #{bin}" 46 | end 47 | } 48 | commands.uniq 49 | end 50 | 51 | def collect_commands 52 | commands = [] 53 | all_ruby_bin = File.join(File.dirname(File.realpath(__FILE__)), 'bin') 54 | Dir.foreach(all_ruby_bin) {|n| 55 | next if /\Aruby-[0-9]/ !~ File.basename(n) 56 | bin = "#{all_ruby_bin}/#{n}" 57 | if File.file?(bin) && File.executable?(bin) 58 | commands << bin 59 | end 60 | } 61 | commands.uniq 62 | end 63 | 64 | def sort_by_name(commands) 65 | commands.sort_by {|n| 66 | vercmp_key(File.basename(n).sub(/\Aruby-/, '')) 67 | } 68 | end 69 | 70 | if ARGV.empty? 71 | puts <<"End" 72 | usage: all-ruby RUBY-ARGS 73 | environment variables: 74 | ALL_RUBY_SINCE=ruby-1.4 run only versions since specified one 75 | ALL_RUBY_BINS='ruby-2.4.4 ruby-2.5.1' run only versions specfied 76 | ALL_RUBY_ADDBINS=./ruby run specified commands additionaly 77 | ALL_RUBY_SHOW_DUP=yes don't suppress duplicated output 78 | End 79 | exit 80 | end 81 | 82 | $opt_all_ruby_since = nil 83 | if ENV['ALL_RUBY_SINCE'] 84 | $opt_all_ruby_since = ENV['ALL_RUBY_SINCE'] 85 | end 86 | 87 | $opt_all_ruby_show_dup = false 88 | if ENV['ALL_RUBY_SHOW_DUP'] 89 | $opt_all_ruby_show_dup = true 90 | end 91 | 92 | $opt_all_ruby_bins = nil 93 | if ENV['ALL_RUBY_BINS'] 94 | $opt_all_ruby_bins = ENV['ALL_RUBY_BINS'].split(/\s+/) 95 | end 96 | 97 | $opt_all_ruby_addbins = [] 98 | if ENV['ALL_RUBY_ADDBINS'] 99 | $opt_all_ruby_addbins = ENV['ALL_RUBY_ADDBINS'].split(/\s+/) 100 | end 101 | 102 | #p __LINE__ 103 | commands = $opt_all_ruby_bins ? 104 | find_commands($opt_all_ruby_bins) : 105 | collect_commands 106 | #p __LINE__ 107 | commands = sort_by_name(commands) 108 | 109 | if $opt_all_ruby_since 110 | version_since = vercmp_key($opt_all_ruby_since.sub(/\Aruby-/, '')) 111 | commands.reject! {|n| (vercmp_key(File.basename(n).sub(/\Aruby-/, '')) <=> version_since) < 0 } 112 | end 113 | 114 | num_additional_commands = $opt_all_ruby_addbins.length 115 | commands.concat $opt_all_ruby_addbins 116 | 117 | if commands.empty? 118 | puts "no ruby versions found\n" 119 | exit false 120 | end 121 | 122 | titles = {} 123 | titles_rev = {} 124 | commands.each_with_index {|n, i| 125 | if commands.length - num_additional_commands <= i 126 | titles[n] = n 127 | titles_rev[n] = n 128 | next 129 | end 130 | m = File.basename(n) 131 | if !titles_rev.has_key?(m) 132 | titles[n] = m 133 | titles_rev[m] = n 134 | else 135 | titles[n] = n 136 | titles_rev[n] = n 137 | end 138 | } 139 | 140 | title_len = commands.map {|n| titles[n].length }.max + 1 141 | 142 | prev_sq = nil 143 | commands.each_index {|i| 144 | n = commands[i] 145 | fmt = Formatter.new(title_len, titles[n]) 146 | sq = Squeezer.new(prev_sq, fmt) 147 | sq.start 148 | r, w = IO.pipe 149 | status = nil 150 | begin 151 | pid = spawn({'RUBY'=>n}, [n, n], *ARGV, STDOUT=>w, STDERR=>w) 152 | rescue SystemCallError 153 | status = $!.message 154 | end 155 | w.close 156 | if !status 157 | loop { 158 | begin 159 | s = r.readpartial(4096) 160 | rescue EOFError 161 | break 162 | end 163 | sq.output_data s 164 | } 165 | r.close 166 | Process.wait pid 167 | if $?.success? 168 | status = nil 169 | else 170 | status = $?.to_s.sub(/\Apid \d+ /, '') 171 | end 172 | end 173 | sq.show_status status 174 | sq.last_linebreak 175 | prev_sq = sq 176 | 177 | sq.force_output if commands.size - (num_additional_commands+1) <= i 178 | } 179 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # all-ruby 2 | 3 | This software is a script to install historic Ruby versions since ruby-0.49. 4 | Also, all-ruby script runs all ruby binaries with same arguments. 5 | 6 | ## Platform 7 | 8 | This software is developed on Debian GNU/Linux 10 (buster) amd64. 9 | 10 | However Ruby doesn't support 64 bit platform until ruby 1.8.0. 11 | So, the older ruby needs 32 bit development tools which can be 12 | installed as follows. 13 | 14 | % sudo dpkg --add-architecture i386 15 | % sudo apt update 16 | % sudo apt-get build-dep ruby2.5 17 | % sudo apt install rake gcc-multilib \ 18 | zlib1g:i386 libncurses5:i386 libgdbm6:i386 libssl1.1:i386 \ 19 | libreadline7:i386 libffi6:i386 20 | 21 | For Debian GNU/Linux 9 (stretch) : 22 | 23 | % sudo apt-get build-dep ruby2.3 24 | % sudo apt install rake gcc-multilib \ 25 | zlib1g:i386 libncurses5:i386 libgdbm3:i386 libssl1.0.2:i386 \ 26 | libreadline7:i386 libffi6:i386 27 | 28 | ## Usage 29 | 30 | This software provides Rakefile and "rake all" downloads and builds 31 | historic ruby versions. 32 | 33 | % git clone https://github.com/akr/all-ruby.git 34 | % cd all-ruby 35 | % rake setup_build 36 | % rake all # this takes long time 37 | 38 | Note that `rake setup_build` is same as 39 | `mkdir ../build-all-ruby; ln -s ../build-all-ruby build`. 40 | build-all-ruby directory is required to avoid that 41 | `ruby -v` emits `last_commit=` line. 42 | 43 | all-ruby script runs all ruby binaries. 44 | 45 | % ./all-ruby -e 'p RUBY_VERSION' 46 | ruby-0.49 -e:1: syntax error 47 | exit 1 48 | ruby-0.50 -e:1: syntax error 49 | exit 1 50 | ruby-0.51 -e:1: undefined method `p' for "main"(Object) 51 | exit 1 52 | ruby-0.54 -e:1:in method `p': undefined method `p' for "main"(Object) 53 | exit 1 54 | ruby-0.55 -e:1: undefined method `p' for "main"(Object) 55 | exit 1 56 | ... 57 | ruby-0.65 -e:1: undefined method `p' for "main"(Object) 58 | exit 1 59 | ruby-0.69 -e:1: Uninitialized constant RUBY_VERSION 60 | exit 1 61 | ... 62 | ruby-1.3.4-990531 /tmp/rbHMsENn:1: uninitialized constant RUBY_VERSION (NameError) 63 | exit 1 64 | ruby-1.3.4-990611 "1.3.4" 65 | ... 66 | ruby-2.7.0-preview1 "2.7.0" 67 | % ALL_RUBY_SINCE=ruby-1.6 all-ruby -e 'p 0.class' 68 | ruby-1.6.0 Fixnum 69 | ... 70 | ruby-2.3.8 Fixnum 71 | ruby-2.4.0-preview1 Integer 72 | ... 73 | ruby-2.7.0-preview1 Integer 74 | 75 | ## Documentation 76 | 77 | rake without arguments shows the help message for the Rakefile. 78 | 79 | % rake 80 | "rake all" will install 384 ruby 81 | "rake list" shows versions 82 | "rake sync" updates versions 83 | 84 | all-ruby without arguments shows help message for all-ruby script. 85 | 86 | % ./all-ruby 87 | usage: all-ruby RUBY-ARGS 88 | environment variables: 89 | ALL_RUBY_SINCE=ruby-1.4 run only versions since specified one 90 | ALL_RUBY_BINS='ruby-2.4.4 ruby-2.5.1' run only versions specfied 91 | ALL_RUBY_ADDBINS=./ruby run specified commands additionaly 92 | ALL_RUBY_SHOW_DUP=yes don't suppress duplicated output 93 | 94 | ## Docker 95 | 96 | Dockerfile is provided to generate a docker image containing 97 | ruby binaries built by the Rakefile. 98 | 99 | Pre-built docker image can be used as follows: 100 | 101 | % docker pull rubylang/all-ruby 102 | % docker run --rm rubylang/all-ruby ./all-ruby -v 103 | % docker run --rm -e 'ALL_RUBY_SINCE=ruby-2.0' \ 104 | -e 'ALL_RUBY_ADDBINS=/usr/bin/ruby' \ 105 | rubylang/all-ruby ./all-ruby -e 'p 0.class' 106 | 107 | If you want to build a docker image yourself, 108 | you can use following command. 109 | This uses your CPUs parallel. 110 | 111 | % docker build ./ -t my-all-ruby 112 | 113 | If you want to use only n CPUs, build argument j=n can be used. 114 | (--cpuset-cpus option of "docker build" is also usable.) 115 | 116 | % docker build ./ --build-arg j=1 -t my-all-ruby 117 | 118 | ## Links 119 | 120 | - https://github.com/akr/all-ruby 121 | 122 | ## Author 123 | 124 | Tanaka Akira 125 | akr@fsij.org 126 | 127 | ## License 128 | 129 | Redistribution and use in source and binary forms, with or without 130 | modification, are permitted provided that the following conditions 131 | are met: 132 | 133 | 1. Redistributions of source code must retain the above copyright 134 | notice, this list of conditions and the following disclaimer. 135 | 2. Redistributions in binary form must reproduce the above 136 | copyright notice, this list of conditions and the following 137 | disclaimer in the documentation and/or other materials provided 138 | with the distribution. 139 | 3. The name of the author may not be used to endorse or promote 140 | products derived from this software without specific prior 141 | written permission. 142 | 143 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 144 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 145 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 146 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 147 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 148 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 149 | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 150 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 151 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 152 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 153 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 154 | 155 | (3-clause BSD license) 156 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/ruby 2 | 3 | # Rakefile - installs historic ruby. 4 | # 5 | # Copyright (C) 2014- Tanaka Akira 6 | # 7 | # Redistribution and use in source and binary forms, with or without 8 | # modification, are permitted provided that the following conditions 9 | # are met: 10 | # 11 | # 1. Redistributions of source code must retain the above copyright 12 | # notice, this list of conditions and the following disclaimer. 13 | # 2. Redistributions in binary form must reproduce the above 14 | # copyright notice, this list of conditions and the following 15 | # disclaimer in the documentation and/or other materials provided 16 | # with the distribution. 17 | # 3. The name of the author may not be used to endorse or promote 18 | # products derived from this software without specific prior 19 | # written permission. 20 | # 21 | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 22 | # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 25 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 27 | # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 29 | # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 30 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 31 | # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | # This Rakefile installs historic ruby. 34 | # 35 | # rake : shows the number of rubies to be install 36 | # rake list : shows the versions to be install 37 | # rake all : install all versions 38 | # rake VERSION : install specific version 39 | 40 | require 'open-uri' 41 | require 'fileutils' 42 | require 'json' 43 | require 'pp' 44 | require 'rbconfig' 45 | 46 | require_relative 'lib/ruby_version' 47 | 48 | def show_help_message 49 | puts "\"rake all\" will install #{RubySource::TABLE.length} ruby" 50 | puts "\"rake list\" shows versions" 51 | puts "\"rake sync\" updates versions (for all-ruby developpers)" 52 | puts "\"rake test\" runs test (for all-ruby developpers)" 53 | end 54 | 55 | URI_BASE = 'https://cache.ruby-lang.org/pub/ruby/' 56 | 57 | # 'rake sync' checks the tarballs in the directories after RUBY_EOL_VERSION. 58 | # https://www.ruby-lang.org/en/downloads/branches/ 59 | RUBY_EOL_VERSION = '3.1' 60 | 61 | def make_entry(relpath) 62 | uri = URI_BASE + relpath 63 | dir, fn = File.split(relpath) 64 | version = fn.dup 65 | prefix = suffix = '' 66 | prefix = $& if version.sub!(/\Aruby-/, '') 67 | suffix = $& if version.sub!(/\.tar\.(gz|bz2|xz)\z/, '') 68 | { 69 | :relpath => relpath, 70 | :uri => uri, 71 | :dir => dir, 72 | :fn => fn, 73 | :prefix => prefix, 74 | :version => version, 75 | :suffix => suffix, 76 | } 77 | end 78 | 79 | def hashize_version_entry(v) 80 | h = {} 81 | case v 82 | when String 83 | h[:relpath] = v 84 | when Hash 85 | v.each {|k, v| 86 | h[k.intern] = v 87 | } 88 | else 89 | raise "unexpected entry: #{v.inspect}" 90 | end 91 | h 92 | end 93 | 94 | class RubySource 95 | 96 | VERSIONS = Dir.glob("versions/*.json").map {|fn| 97 | JSON.load(File.read(fn)) 98 | } 99 | 100 | TABLE = VERSIONS.map {|v| 101 | h = hashize_version_entry(v) 102 | next if h.has_key?(:enable) && !h[:enable] 103 | h.update make_entry(h[:relpath]) 104 | h 105 | }.compact.sort_by {|h| vercmp_key(h[:version]) } 106 | 107 | def self.reldirs 108 | result = RubySource::TABLE.map {|h| 109 | h[:dir] 110 | }.uniq 111 | case URI_BASE 112 | when /\A(http:|https:)/ 113 | index = URI(URI_BASE).read 114 | lst = [] 115 | index.scan(%r{href="(?:/pub/ruby/)?(\d\.\d)/"}) { 116 | lst << $1 117 | } 118 | else 119 | raise "unexpected URI_BASE scheme: #{URI_BASE} (http/https required)" 120 | end 121 | lst.each {|n| 122 | next if result.include? n 123 | #puts "New directory found: #{n}" 124 | result << n 125 | } 126 | #result.map! {|n| uri = URI_BASE + n + "/" } 127 | #puts result 128 | result 129 | end 130 | 131 | def self.reldirs_after_eol 132 | reldirs.reject {|n| (vercmp_key(n) <=> vercmp_key(RUBY_EOL_VERSION)) <= 0 } 133 | end 134 | 135 | def self.uris_after_eol 136 | reldirs_after_eol.map {|n| URI_BASE + n + "/" } 137 | end 138 | 139 | def self.version_lookup(version) 140 | TABLE.each {|h| 141 | if h[:version] == version 142 | return h 143 | end 144 | } 145 | nil 146 | end 147 | 148 | def initialize(arg) 149 | @h = RubySource.version_lookup(arg) 150 | if !@h 151 | raise "table lookup failed: #{arg.inspect}" 152 | end 153 | end 154 | 155 | def version 156 | @h[:version] 157 | end 158 | 159 | def build_reldir 160 | "build/#{@h[:version]}" 161 | end 162 | 163 | def filename 164 | @h[:fn] 165 | end 166 | 167 | def uri 168 | @h[:uri] 169 | end 170 | 171 | def obtain_tarball(dstname) 172 | tmpname = "#{dstname}.tmp" 173 | FileUtils.mkpath File.dirname(dstname) 174 | unless File.file? dstname 175 | puts "download #{dstname}" 176 | URI(uri).open {|src| 177 | open(tmpname, "w") {|dst| 178 | IO.copy_stream(src, dst) 179 | } 180 | File.rename tmpname, dstname 181 | } 182 | end 183 | dstname 184 | end 185 | 186 | def extract_tarball(filename) 187 | filename = File.realpath(filename) 188 | FileUtils.mkpath build_reldir 189 | ary = Dir.glob("#{build_reldir}/*/ruby.c") 190 | if !ary.empty? 191 | ary.each {|fn| 192 | FileUtils.rmtree File.dirname(fn) 193 | } 194 | end 195 | # Assume recent GNU tar which recognize compression automatically. 196 | system "tar", "xf", filename, '--no-same-owner', :chdir => build_reldir 197 | ary = Dir.glob("#{build_reldir}/*/ruby.c") 198 | if ary.empty? 199 | raise "no ruby.c found." 200 | end 201 | if 1 < ary.length 202 | raise "multiple ruby.c found." 203 | end 204 | File.basename(File.dirname(ary[0])) 205 | end 206 | 207 | def obtain_source 208 | create_directory 209 | obtain_tarball 210 | extract_tarball 211 | end 212 | 213 | def version_eq(version) 214 | @h[:version] == version 215 | end 216 | 217 | def version_between(v1, v2) 218 | v = vercmp_key(@h[:version]) 219 | ((vercmp_key(v1) <=> v) <= 0) && ((v <=> vercmp_key(v2)) <= 0) 220 | end 221 | 222 | def version_cmp(version) 223 | vercmp_key(@h[:version]) <=> vercmp_key(version) 224 | end 225 | 226 | def version_lt(version) 227 | version_cmp(version) < 0 228 | end 229 | 230 | def version_ge(version) 231 | version_cmp(version) >= 0 232 | end 233 | 234 | def run_command(tag, command, prefixdir) 235 | FileUtils.mkpath "#{prefixdir}/log" 236 | log_fn = "#{prefixdir}/log/#{tag}.txt" 237 | status_fn = "#{prefixdir}/log/#{tag}.status" 238 | print "#{tag} #{version}\n" 239 | if command.last.kind_of? Hash 240 | opt = command.last.dup 241 | command = command[0...-1] 242 | else 243 | opt = {} 244 | end 245 | opt[[:out, :err]] = [log_fn, "w"] 246 | system(*command, opt) 247 | status = $? 248 | open(status_fn, "w") {|f| f.puts status.to_s.sub(/\Apid \d+ /, '') } 249 | print "fail #{tag} #{version}\n" if !status.success? 250 | status.success? 251 | end 252 | 253 | def patch(srcdir, name) 254 | prefix = File.realpath(build_reldir) 255 | patch = File.realpath("patch/#{name}.diff") 256 | command = ["patch", "-p0", :in => patch, :chdir => "#{build_reldir}/#{srcdir}"] 257 | return false if !run_command("patch-#{name}", command, prefix) 258 | end 259 | 260 | def modify_file(fn) 261 | content0 = File.read(fn) 262 | content = content0.dup 263 | content = yield content 264 | if content != content0 265 | File.write("#{fn}.org", content0) 266 | File.write(fn, content) 267 | end 268 | end 269 | 270 | def apply_workaround(srcdir) 271 | unless version_ge('2.4.0') 272 | # OpenSSL 1.1.0 is supported since Ruby 2.4.0. 273 | dir = "#{build_reldir}/#{srcdir}/ext/openssl" 274 | File.rename "#{dir}/extconf.rb", "#{dir}/extconf.rb-" if File.exist? "#{dir}/extconf.rb" 275 | File.rename "#{dir}/MANIFEST", "#{dir}/MANIFEST-" if File.exist? "#{dir}/MANIFEST" 276 | end 277 | if version_eq('1.9.3-p426') 278 | patch srcdir, 'signal-unistd' 279 | end 280 | if version_between('1.9.1-preview2', '1.9.1-p0') 281 | patch srcdir, "cont-elif" 282 | end 283 | if version_between('1.8.5-preview3', '1.8.6-p230') || 284 | version_between('1.8.7-preview1', '1.8.7-p22') 285 | patch srcdir, "math-define-erange" 286 | end 287 | if version_between('1.3.3-990430', '1.3.3-990430') 288 | patch srcdir, 'rbconfig-expand' 289 | end 290 | if version_eq('1.1d0') 291 | patch srcdir, 'extmk-heredoc' 292 | end 293 | if version_eq('1.1b9_07') 294 | patch srcdir, 'instruby-dll' 295 | end 296 | if version_between('0.99.4-961224', '1.1b9_19') 297 | patch srcdir, 'glob-alloca' 298 | end 299 | if version_between('0.69', '0.95') 300 | patch srcdir, 'glob-alloca2' 301 | end 302 | if RbConfig::CONFIG['arch'] =~ /freebsd/ 303 | if version_between('0.69', '1.1b9_19') 304 | patch srcdir, 'glob-voidalloca' 305 | end 306 | end 307 | if version_between('0.49', '0.55') 308 | patch srcdir, 'ruby-errno3' 309 | elsif version_between('0.60', '0.76') 310 | patch srcdir, 'ruby-errno2' 311 | elsif version_eq('0.95') 312 | patch srcdir, 'ruby-errno' 313 | end 314 | if version_between('0.49', '0.95') 315 | modify_file("#{build_reldir}/#{srcdir}/configure") {|content| 316 | content.gsub(/LDSHARED='ld'/, "LDSHARED='gcc -shared'") 317 | } 318 | end 319 | if version_between('0.49', '0.76') 320 | modify_file("#{build_reldir}/#{srcdir}/configure") {|content| 321 | content.gsub(/^pow\(\)/, "pow(1.0, 1.0)") 322 | } 323 | end 324 | parse_y_fn = "#{build_reldir}/#{srcdir}/parse.y" 325 | if File.file?(parse_y_fn) 326 | parse_y_orig = File.read(parse_y_fn) 327 | parse_y = parse_y_orig.dup 328 | parse_y.sub!(/^arg\t\t: variable '=' {\$\$ = assignable\(\$1, 0\);} arg$/, 329 | "arg\t\t: variable '=' {$$ = assignable($1, 0);} arg") 330 | parse_y.sub!(/^\t\t\| variable tOP_ASGN \{\$\$ = assignable\(\$1, 0\);\} arg$/, 331 | "\t\t| variable tOP_ASGN {$$ = assignable($1, 0);} arg") 332 | if parse_y_orig != parse_y 333 | open(parse_y_fn, "w") {|f| f.print parse_y } 334 | end 335 | end 336 | if version_eq('1.3.2-990413') 337 | dir = "#{build_reldir}/#{srcdir}/ext/nkf" 338 | File.rename "#{dir}/extconf.rb", "#{dir}/extconf.rb-" if File.exist? "#{dir}/extconf.rb" 339 | File.rename "#{dir}/MANIFEST", "#{dir}/MANIFEST-" if File.exist? "#{dir}/MANIFEST" 340 | end 341 | if version_between('0.49', '1.1b9_18') 342 | convert_varargs_to_stdarg "#{build_reldir}/#{srcdir}" 343 | end 344 | if version_between('1.1b9_05', '1.1b9_09') 345 | src = File.read(parse_y_fn) 346 | src.gsub!(/default:\n( *\})/) { "default: break;\n#{$1}" } 347 | File.write(parse_y_fn, src) 348 | end 349 | if version_eq('1.1b7') 350 | patch srcdir, 'parse-semicolon' 351 | end 352 | if version_eq('1.1b3') 353 | patch srcdir, 'rb_type-definition' 354 | end 355 | if version_eq('1.1b0') 356 | patch srcdir, 'tcltklib-extconf' 357 | end 358 | if version_eq('1.1a4') 359 | patch srcdir, 'variable-break' 360 | end 361 | if version_between('0.49', '0.50') 362 | patch srcdir, 'error-error2' 363 | elsif version_between('0.51', '0.76') 364 | patch srcdir, 'error-error' 365 | end 366 | if RbConfig::CONFIG['arch'] =~ /freebsd/ 367 | if version_between('0.99.4-961224', '1.0-961225') 368 | patch srcdir, 'error-sysnerr' 369 | elsif version_between('1.0-971002', '1.4.2') 370 | patch srcdir, 'error-sysnerr2' 371 | elsif version_between('1.4.3', '1.6.4') 372 | patch srcdir, 'error-sysnerr3' 373 | end 374 | end 375 | if version_between('0.49', '0.76') 376 | modify_file("#{build_reldir}/#{srcdir}/io.c") {|content| 377 | content.gsub!(/->_gptr/, "->_IO_read_ptr") 378 | content.gsub!(/->_egptr/, "->_IO_read_end") 379 | content 380 | } 381 | end 382 | if version_eq('0.49') 383 | patch srcdir, 'struct-va_end2' 384 | elsif version_between('0.50', '0.76') 385 | patch srcdir, 'struct-va_end' 386 | end 387 | if version_eq('0.49') 388 | patch srcdir, 'time-time2' 389 | elsif version_between('0.50', '0.76') 390 | patch srcdir, 'time-time' 391 | end 392 | if version_eq('0.73') 393 | patch srcdir, 'makefile-assoc' 394 | end 395 | if version_between('0.49', '0.69') 396 | patch srcdir, 'defines-nodbm' 397 | end 398 | if version_eq('0.69') 399 | patch srcdir, 'regex-re_match_2' 400 | end 401 | if version_eq('0.54') 402 | patch srcdir, 'gnuglob-alloca2' 403 | elsif version_between('0.55', '0.65') 404 | patch srcdir, 'gnuglob-alloca' 405 | end 406 | if version_between('0.51', '0.60') 407 | patch srcdir, 'gnuglob-dirent' 408 | end 409 | if version_eq('2.4.0-preview1') 410 | patch srcdir, 'inline-vm_getivar' 411 | end 412 | if version_between('0.99.4-961224', '1.6.8') 413 | patch srcdir, 'glibc-stdio' 414 | elsif version_eq('0.95') 415 | patch srcdir, 'glibc-stdio2' 416 | elsif version_eq('0.76') 417 | patch srcdir, 'glibc-stdio3' 418 | elsif version_between('0.69', '0.73-950413') 419 | patch srcdir, 'glibc-stdio4' 420 | end 421 | if version_lt('1.8.0') 422 | :build_ruby32 423 | else 424 | :build_ruby 425 | end 426 | end 427 | 428 | def convert_varargs_to_stdarg(dir) 429 | funcs = {} 430 | Dir.glob("#{dir}/*.c").each {|fn| 431 | src = File.binread(fn) 432 | next if /^\#include \n/ =~ src 433 | next if /^\#include \n/ !~ src 434 | File.write("#{fn}.org", src) 435 | src.gsub!(/^#include \n/, <<-End.gsub(/^\s*/, '')) 436 | #ifdef __STDC__ 437 | #include 438 | #define va_init_list(a,b) va_start(a,b) 439 | #else 440 | #include 441 | #define va_init_list(a,b) va_start(a) 442 | #endif 443 | End 444 | src.gsub!(/^([A-Za-z][A-Za-z0-9_]*)\((.*), va_alist\)\n(( .*;\n)*)( +va_dcl\n)(\{.*\n(.*\n)*?\})/) { 445 | 446 | func = $1 447 | fargs = $2 448 | decls = $3 449 | body = $6 450 | decl_hash = {} 451 | decls.each_line {|line| 452 | line.gsub!(/^ +|;\n/, '') 453 | n = line.scan(/[a-z_][a-z_0-9]*/)[-1] 454 | decl_hash[n] = line 455 | } 456 | fargs.gsub!(/[a-z_][a-z_0-9]*/) { 457 | n = $& 458 | decl_hash[n] || "int #{n}" 459 | } 460 | stdarg_decl = "#{func}(#{fargs}, ...)" 461 | funcs[func] = stdarg_decl 462 | lastarg = stdarg_decl.scan(/[a-z_][a-z_0-9]*/)[-1] 463 | body.gsub!(/va_start\(([a-z]+)\)/) { "va_init_list(#{$1}, #{lastarg})" } 464 | stdarg_decl + "\n" + body 465 | } 466 | if fn == "#{dir}/error.c" 467 | src.gsub!(/^extern void TypeError\(\);/, '/* extern void TypeError(); */') 468 | src.gsub!(/^ *void ArgError\(\);/, '/* void ArgError(); */') 469 | src.gsub!(/va_start\(args\);/, 'va_start(args, fmt);') 470 | end 471 | src.gsub!(/^\#ifdef __GNUC__\nstatic volatile voidfn/, "\#if 0\nstatic volatile voidfn") 472 | File.write("#{fn}+", src) 473 | File.write(fn, src) 474 | } 475 | %w[intern.h ruby.h].each {|header| 476 | fn = "#{dir}/#{header}" 477 | next unless File.file? fn 478 | h = File.read(fn) 479 | File.write("#{fn}.org", h) 480 | funcs.each {|func, stdarg_decl| 481 | h.gsub!(/ #{func}\(\);/) { " #{stdarg_decl};" } 482 | } 483 | h.gsub!(/^\#ifdef __GNUC__\ntypedef void voidfn/, "\#if 0\ntypedef void voidfn") 484 | h.gsub!(/^\#ifdef __GNUC__\nvolatile voidfn/, "\#if 0\nvolatile voidfn") 485 | File.write(fn, h) 486 | } 487 | end 488 | 489 | def which(command) 490 | ENV['PATH'].split(/:/).each {|dir| 491 | c = "#{dir}/#{command}" 492 | if File.executable? c 493 | return c 494 | end 495 | } 496 | nil 497 | end 498 | 499 | def build_ruby32(srcdir) 500 | prefix = File.realpath(build_reldir) 501 | print "build #{version}\n" 502 | 503 | gcc = which('gcc') 504 | raise "gcc not found." if !gcc 505 | 506 | FileUtils.mkpath "#{prefix}/bin" 507 | FileUtils.mkpath "#{prefix}/lib" 508 | FileUtils.mkpath "#{prefix}/man/man1" 509 | 510 | %w[gcc cc].each {|cc_bin| 511 | File.open("#{prefix}/bin/#{cc_bin}", "w") {|f| 512 | f.puts "#!/bin/sh" 513 | f.puts "#{gcc} -m32 -std=gnu89 \"$@\"" 514 | } 515 | File.chmod(0755, "#{prefix}/bin/#{cc_bin}") 516 | } 517 | 518 | if RbConfig::CONFIG['arch'] =~ /linux/ 519 | setup = [{'CFLAGS'=>'-g -O0', 520 | 'PATH' => "#{prefix}/bin:#{ENV['PATH']}"}, 521 | 'setarch', 'i686'] 522 | elsif RbConfig::CONFIG['arch'] =~ /freebsd/ 523 | setup = [{'CFLAGS'=>'-g -O0', 524 | 'PATH' => "#{prefix}/bin:#{ENV['PATH']}", 525 | 'UNAME_m' => 'i386'}] 526 | else 527 | raise 528 | end 529 | 530 | if version_between('0.49', '0.60') 531 | setup[0]['LIBS'] = '-lcrypt' 532 | end 533 | 534 | command = [*setup, "./configure", "--prefix=#{prefix}", :chdir => "#{build_reldir}/#{srcdir}"] 535 | if !run_command("configure", command, prefix) 536 | raise "fail configure #{version}" 537 | end 538 | 539 | command = [*setup, "make", :chdir => "#{build_reldir}/#{srcdir}"] 540 | if !run_command("make", command, prefix) 541 | raise "fail make #{version}" 542 | end 543 | 544 | command = [*setup, "make", "install", :chdir => "#{build_reldir}/#{srcdir}"] 545 | if !run_command("install", command, prefix) 546 | raise "fail install #{version}" 547 | end 548 | end 549 | 550 | def build_ruby(srcdir) 551 | prefix = File.realpath(build_reldir) 552 | print "build #{version}\n" 553 | 554 | command = ["./configure", "--prefix=#{prefix}", :chdir => "#{build_reldir}/#{srcdir}"] 555 | if !run_command("configure", command, prefix) 556 | raise "fail configure #{version}" 557 | end 558 | 559 | command = ["make", :chdir => "#{build_reldir}/#{srcdir}"] 560 | if !run_command("make", command, prefix) 561 | raise "fail make #{version}" 562 | end 563 | 564 | command = ["make", "install", :chdir => "#{build_reldir}/#{srcdir}"] 565 | if !run_command("install", command, prefix) 566 | raise "fail install #{version}" 567 | end 568 | end 569 | 570 | end 571 | 572 | task :default do 573 | show_help_message 574 | end 575 | 576 | task :list do 577 | puts RubySource::TABLE.map {|h| h[:version] } 578 | end 579 | 580 | task :setup_build do 581 | if File.symlink? "build" 582 | puts "'build' symlink already exist." 583 | else 584 | build_dirname = "../build-all-ruby" 585 | Dir.mkdir build_dirname unless File.directory? build_dirname 586 | File.symlink build_dirname, "build" 587 | puts "symlink created: build -> #{build_dirname}" 588 | end 589 | end 590 | 591 | multitask :all => RubySource::TABLE.map {|h| h[:version] }.reverse 592 | task :allseq => RubySource::TABLE.map {|h| h[:version] }.reverse 593 | 594 | def check_build_directory_is_symlink 595 | unless File.symlink? "build" 596 | raise "'build' directory must be a symlink to outside of all-ruby directory. use 'rake setup_build' first." 597 | end 598 | end 599 | 600 | RubySource::TABLE.each {|h| 601 | source = RubySource.new(h[:version]) 602 | 603 | task h[:version] => "bin/ruby-#{h[:version]}" 604 | 605 | file "bin/ruby-#{h[:version]}" => "build/#{h[:version]}/bin/ruby" do |t| 606 | check_build_directory_is_symlink 607 | FileUtils.mkpath File.dirname(t.name) 608 | unless File.exist? "build/#{h[:version]}/bin/ruby" 609 | raise "ruby binary not exist" 610 | end 611 | File.symlink "../build/#{h[:version]}/bin/ruby", "bin/ruby-#{h[:version]}" 612 | end 613 | 614 | file "build/#{h[:version]}/bin/ruby" => "DIST/#{h[:fn]}" do |t| 615 | check_build_directory_is_symlink 616 | srcdir = source.extract_tarball("DIST/#{h[:fn]}") 617 | method = source.apply_workaround(srcdir) 618 | source.send(method, srcdir) 619 | end 620 | 621 | file "DIST/#{h[:fn]}" do |t| 622 | source.obtain_tarball("DIST/#{h[:fn]}") 623 | end 624 | } 625 | 626 | def extract_entries(index_html) 627 | hs = [] 628 | index_html.scan(//) { 629 | uri = (index_html.base_uri + $1).to_s 630 | next unless uri.start_with? URI_BASE 631 | relpath = uri[URI_BASE.length..-1] 632 | next if relpath.empty? 633 | h = make_entry(relpath) 634 | next if h[:suffix].empty? 635 | hs << h 636 | } 637 | hs 638 | end 639 | 640 | def filter_suffix(hs) 641 | hs.group_by {|h| [h[:prefix], h[:version]] }.map {|_, hh| 642 | hh.sort_by {|h| 643 | case h[:suffix] 644 | when ".tar.gz" then 0 645 | when ".tar.bz2" then 1 646 | when ".tar.xz" then 2 647 | else -1 648 | end 649 | }[-1] 650 | } 651 | end 652 | 653 | def update_versions(relpath_list) 654 | relpath_list.each {|relpath| 655 | h = make_entry(relpath) 656 | if /\A[0-9][a-z0-9._-]*\z/ !~ h[:version] 657 | warn "unexpected version format: #{h[:version].inspect}" 658 | next 659 | end 660 | fn = "versions/#{h[:version]}.json" 661 | if File.exist?(fn) 662 | #puts "found: #{fn}" 663 | else 664 | #puts "not found: #{fn}" 665 | puts "#{fn} added." 666 | File.write fn, (JSON.pretty_generate(relpath)+"\n") 667 | end 668 | } 669 | end 670 | 671 | task 'sync' do 672 | uris = RubySource.uris_after_eol 673 | uris.reverse_each {|uri| 674 | puts uri 675 | index_html = URI(uri).read 676 | hs = extract_entries(index_html) 677 | hs = filter_suffix(hs) 678 | relpath_list = hs.map {|h| h[:relpath] } 679 | update_versions relpath_list 680 | } 681 | end 682 | 683 | def vercmp_major_key_str(fn) 684 | pats = [ 685 | /\A0(?!\d)/, 686 | /\A1\.1[a-d]/, 687 | /\A1\.8\.[5-7](?!\d)/, 688 | /\A1\.9\.[0-3](?!\d)/, 689 | /\A2\.0\.0(?!\d)/, 690 | /\A(\d+)\.(\d+)/, 691 | ] 692 | pats.each {|pat| 693 | return $& if pat =~ fn 694 | } 695 | raise "unexpected version string: #{fn.inspect}" 696 | end 697 | 698 | all_first = [] 699 | all_last = [] 700 | RubySource::TABLE.chunk {|h| vercmp_major_key_str(h[:version]) }.each do |str, hs| 701 | ary = hs.map {|h| h[:version] } 702 | all_first << ary.first 703 | all_last << ary.last 704 | ary.reverse! 705 | multitask "all-#{str}" => ary 706 | task "allseq-#{str}" => ary 707 | end 708 | multitask "all-first" => all_first 709 | task "allseq-first" => all_first 710 | multitask "all-last" => all_last 711 | task "allseq-last" => all_last 712 | 713 | task :test do 714 | test_files = Dir.glob('test/test_*.rb') 715 | system(RbConfig.ruby, '-e' 'ARGV.each {|fn| load fn}', *test_files) 716 | end 717 | --------------------------------------------------------------------------------