Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2329c8873 | ||
|
|
095f1324ea | ||
|
|
c1263789a1 | ||
|
|
36a3d96a30 | ||
|
|
425c0e40e3 | ||
|
|
4a674c9d3b |
11 changed files with 435 additions and 97 deletions
25
.cvsignore
25
.cvsignore
|
|
@ -1,25 +0,0 @@
|
||||||
ruby-1.8.1.tar.gz
|
|
||||||
ruby-man-1.4.6.tar.bz2
|
|
||||||
ruby-refm-rdp-1.8.1-ja-html.tar.gz
|
|
||||||
rubyfaq-990927.tar.bz2
|
|
||||||
rubyfaq-jp-990927.tar.bz2
|
|
||||||
*.rpm
|
|
||||||
*.gz
|
|
||||||
*.bz2
|
|
||||||
ruby-1.8.2.tar.gz
|
|
||||||
ruby-1.8.3.tar.gz
|
|
||||||
ruby-1.8.4-preview1.tar.gz
|
|
||||||
ruby-1.8.4-preview2.tar.gz
|
|
||||||
ruby-1.8.4.tar.gz
|
|
||||||
ruby-1.8.5.tar.gz
|
|
||||||
ruby-1.8.5-p2.tar.gz
|
|
||||||
ruby-1.8.5-p12.tar.gz
|
|
||||||
ruby-1.8.6.tar.bz2
|
|
||||||
ruby-1.8.6-p36.tar.bz2
|
|
||||||
ruby-1.8.6-p110.tar.bz2
|
|
||||||
ruby-1.8.6-p111.tar.bz2
|
|
||||||
rubyfaq-990927.tar.gz
|
|
||||||
rubyfaq-jp-990927.tar.gz
|
|
||||||
ruby-1.8.6-p114.tar.bz2
|
|
||||||
ruby-1.8.6-p230.tar.bz2
|
|
||||||
ruby-1.8.6-p287.tar.bz2
|
|
||||||
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
rubyfaq-990927.tar.gz
|
||||||
|
rubyfaq-jp-990927.tar.gz
|
||||||
|
ruby-1.8.6-p368.tar.bz2
|
||||||
|
ruby-refm-rdp-1.8.2-ja-html.tar.gz
|
||||||
21
Makefile
21
Makefile
|
|
@ -1,21 +0,0 @@
|
||||||
# Makefile for source rpm: ruby
|
|
||||||
# $Id: Makefile,v 1.1 2004/09/09 11:54:27 cvsdist Exp $
|
|
||||||
NAME := ruby
|
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
|
||||||
|
|
||||||
define find-makefile-common
|
|
||||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
|
||||||
|
|
||||||
ifeq ($(MAKEFILE_COMMON),)
|
|
||||||
# attempt a checkout
|
|
||||||
define checkout-makefile-common
|
|
||||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(MAKEFILE_COMMON)
|
|
||||||
221
ruby-1.8.6-CVE-2009-1904-bigdecimal.patch
Normal file
221
ruby-1.8.6-CVE-2009-1904-bigdecimal.patch
Normal file
|
|
@ -0,0 +1,221 @@
|
||||||
|
--- branches/ruby_1_8_6/ext/bigdecimal/bigdecimal.c 2009/02/11 14:36:59 22241
|
||||||
|
+++ branches/ruby_1_8_6/ext/bigdecimal/bigdecimal.c 2009/06/08 19:01:00 23652
|
||||||
|
@@ -306,17 +306,22 @@
|
||||||
|
BigDecimal_dump(int argc, VALUE *argv, VALUE self)
|
||||||
|
{
|
||||||
|
ENTER(5);
|
||||||
|
- char sz[50];
|
||||||
|
Real *vp;
|
||||||
|
char *psz;
|
||||||
|
VALUE dummy;
|
||||||
|
+ volatile VALUE dump;
|
||||||
|
+
|
||||||
|
rb_scan_args(argc, argv, "01", &dummy);
|
||||||
|
GUARD_OBJ(vp,GetVpValue(self,1));
|
||||||
|
- sprintf(sz,"%lu:",VpMaxPrec(vp)*VpBaseFig());
|
||||||
|
- psz = ALLOCA_N(char,(unsigned int)VpNumOfChars(vp,"E")+strlen(sz));
|
||||||
|
- sprintf(psz,"%s",sz);
|
||||||
|
+
|
||||||
|
+ dump = rb_str_new(0,VpNumOfChars(vp,"E")+50);
|
||||||
|
+ psz = RSTRING_PTR(dump);
|
||||||
|
+ sprintf(psz,"%lu:",VpMaxPrec(vp)*VpBaseFig());
|
||||||
|
+
|
||||||
|
VpToString(vp, psz+strlen(psz), 0, 0);
|
||||||
|
- return rb_str_new2(psz);
|
||||||
|
+
|
||||||
|
+ rb_str_resize(dump, strlen(psz));
|
||||||
|
+ return dump;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -520,6 +525,7 @@
|
||||||
|
ENTER(5);
|
||||||
|
int e,n,i,nf;
|
||||||
|
U_LONG v,b,j;
|
||||||
|
+ volatile VALUE str;
|
||||||
|
char *psz,*pch;
|
||||||
|
Real *p;
|
||||||
|
|
||||||
|
@@ -534,7 +540,7 @@
|
||||||
|
return Qnil;
|
||||||
|
} else if(VpIsNegInf(p)) {
|
||||||
|
VpException(VP_EXCEPTION_INFINITY,"Computation results to '-Infinity'",0);
|
||||||
|
- return Qnil;
|
||||||
|
+ return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
e = VpExponent10(p);
|
||||||
|
@@ -544,10 +550,12 @@
|
||||||
|
e = VpGetSign(p)*p->frac[0];
|
||||||
|
return INT2FIX(e);
|
||||||
|
}
|
||||||
|
- psz = ALLOCA_N(char,(unsigned int)(e+nf+2));
|
||||||
|
|
||||||
|
+ str = rb_str_new(0, e+nf+2);
|
||||||
|
+ psz = RSTRING_PTR(str);
|
||||||
|
n = (e+nf-1)/nf;
|
||||||
|
pch = psz;
|
||||||
|
+
|
||||||
|
if(VpGetSign(p)<0) *pch++ = '-';
|
||||||
|
for(i=0;i<n;++i) {
|
||||||
|
b = VpBaseVal()/10;
|
||||||
|
@@ -567,6 +575,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*pch++ = 0;
|
||||||
|
+
|
||||||
|
return rb_cstr2inum(psz,10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -589,14 +598,19 @@
|
||||||
|
double d;
|
||||||
|
S_LONG e;
|
||||||
|
char *buf;
|
||||||
|
+ volatile VALUE str;
|
||||||
|
|
||||||
|
GUARD_OBJ(p,GetVpValue(self,1));
|
||||||
|
if(VpVtoD(&d, &e, p)!=1) return rb_float_new(d);
|
||||||
|
- buf = ALLOCA_N(char,(unsigned int)VpNumOfChars(p,"E"));
|
||||||
|
+ if (e > DBL_MAX_10_EXP) goto erange;
|
||||||
|
+ str = rb_str_new(0, VpNumOfChars(p,"E"));
|
||||||
|
+ buf = RSTRING_PTR(str);
|
||||||
|
+
|
||||||
|
VpToString(p, buf, 0, 0);
|
||||||
|
errno = 0;
|
||||||
|
d = strtod(buf, 0);
|
||||||
|
if(errno == ERANGE) {
|
||||||
|
+ erange:
|
||||||
|
VpException(VP_EXCEPTION_OVERFLOW,"BigDecimal to Float conversion",0);
|
||||||
|
if(d>0.0) return rb_float_new(DBL_MAX);
|
||||||
|
else return rb_float_new(-DBL_MAX);
|
||||||
|
@@ -1491,6 +1505,7 @@
|
||||||
|
int fmt=0; /* 0:E format */
|
||||||
|
int fPlus=0; /* =0:default,=1: set ' ' before digits ,set '+' before digits. */
|
||||||
|
Real *vp;
|
||||||
|
+ volatile VALUE str;
|
||||||
|
char *psz;
|
||||||
|
char ch;
|
||||||
|
U_LONG nc;
|
||||||
|
@@ -1527,14 +1542,17 @@
|
||||||
|
}
|
||||||
|
if(mc>0) nc += (nc + mc - 1) / mc + 1;
|
||||||
|
|
||||||
|
- psz = ALLOCA_N(char,(unsigned int)nc);
|
||||||
|
+ str = rb_str_new(0, nc);
|
||||||
|
+ psz = RSTRING_PTR(str);
|
||||||
|
|
||||||
|
if(fmt) {
|
||||||
|
VpToFString(vp, psz, mc, fPlus);
|
||||||
|
} else {
|
||||||
|
VpToString (vp, psz, mc, fPlus);
|
||||||
|
}
|
||||||
|
- return rb_str_new2(psz);
|
||||||
|
+
|
||||||
|
+ rb_str_resize(str, strlen(psz));
|
||||||
|
+ return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Splits a BigDecimal number into four parts, returned as an array of values.
|
||||||
|
@@ -1566,24 +1584,29 @@
|
||||||
|
{
|
||||||
|
ENTER(5);
|
||||||
|
Real *vp;
|
||||||
|
- VALUE obj,obj1;
|
||||||
|
+ VALUE obj,str;
|
||||||
|
S_LONG e;
|
||||||
|
S_LONG s;
|
||||||
|
char *psz1;
|
||||||
|
|
||||||
|
GUARD_OBJ(vp,GetVpValue(self,1));
|
||||||
|
- psz1 = ALLOCA_N(char,(unsigned int)VpNumOfChars(vp,"E"));
|
||||||
|
+ str = rb_str_new(0, VpNumOfChars(vp,"E"));
|
||||||
|
+ psz1 = RSTRING_PTR(str);
|
||||||
|
+
|
||||||
|
VpSzMantissa(vp,psz1);
|
||||||
|
s = 1;
|
||||||
|
if(psz1[0]=='-') {
|
||||||
|
- s = -1; ++psz1;
|
||||||
|
+ int len = strlen(psz1+1);
|
||||||
|
+ memmove(psz1, psz1+1, len);
|
||||||
|
+ psz1[len] = '\0';
|
||||||
|
+ s = -1;
|
||||||
|
}
|
||||||
|
if(psz1[0]=='N') s=0; /* NaN */
|
||||||
|
e = VpExponent10(vp);
|
||||||
|
- obj1 = rb_str_new2(psz1);
|
||||||
|
obj = rb_ary_new2(4);
|
||||||
|
rb_ary_push(obj, INT2FIX(s));
|
||||||
|
- rb_ary_push(obj, obj1);
|
||||||
|
+ rb_ary_push(obj, str);
|
||||||
|
+ rb_str_resize(str, strlen(psz1));
|
||||||
|
rb_ary_push(obj, INT2FIX(10));
|
||||||
|
rb_ary_push(obj, INT2NUM(e));
|
||||||
|
return obj;
|
||||||
|
@@ -1616,20 +1639,23 @@
|
||||||
|
{
|
||||||
|
ENTER(5);
|
||||||
|
Real *vp;
|
||||||
|
- VALUE obj;
|
||||||
|
+ volatile VALUE obj;
|
||||||
|
unsigned int nc;
|
||||||
|
- char *psz1;
|
||||||
|
- char *pszAll;
|
||||||
|
+ char *psz, *tmp;
|
||||||
|
|
||||||
|
GUARD_OBJ(vp,GetVpValue(self,1));
|
||||||
|
nc = VpNumOfChars(vp,"E");
|
||||||
|
nc +=(nc + 9) / 10;
|
||||||
|
|
||||||
|
- psz1 = ALLOCA_N(char,nc);
|
||||||
|
- pszAll = ALLOCA_N(char,nc+256);
|
||||||
|
- VpToString(vp, psz1, 10, 0);
|
||||||
|
- sprintf(pszAll,"#<BigDecimal:%lx,'%s',%lu(%lu)>",self,psz1,VpPrec(vp)*VpBaseFig(),VpMaxPrec(vp)*VpBaseFig());
|
||||||
|
- obj = rb_str_new2(pszAll);
|
||||||
|
+ obj = rb_str_new(0, nc+256);
|
||||||
|
+ psz = RSTRING_PTR(obj);
|
||||||
|
+ sprintf(psz,"#<BigDecimal:%lx,'",self);
|
||||||
|
+ tmp = psz + strlen(psz);
|
||||||
|
+ VpToString(vp, tmp, 10, 0);
|
||||||
|
+ tmp += strlen(tmp);
|
||||||
|
+ sprintf(tmp,"',%lu(%lu)>",VpPrec(vp)*VpBaseFig(),VpMaxPrec(vp)*VpBaseFig());
|
||||||
|
+ rb_str_resize(obj, strlen(psz));
|
||||||
|
+
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2482,6 +2508,7 @@
|
||||||
|
int sign=1;
|
||||||
|
Real *vp = NULL;
|
||||||
|
U_LONG mf = VpGetPrecLimit();
|
||||||
|
+ volatile VALUE buf;
|
||||||
|
|
||||||
|
mx = (mx + BASE_FIG - 1) / BASE_FIG + 1; /* Determine allocation unit. */
|
||||||
|
if(szVal) {
|
||||||
|
@@ -2509,7 +2536,9 @@
|
||||||
|
|
||||||
|
/* Skip all '_' after digit: 2006-6-30 */
|
||||||
|
ni = 0;
|
||||||
|
- psz = ALLOCA_N(char,strlen(szVal)+1);
|
||||||
|
+ buf = rb_str_new(0,strlen(szVal)+1);
|
||||||
|
+ psz = RSTRING_PTR(buf);
|
||||||
|
+
|
||||||
|
i = 0;
|
||||||
|
ipn = 0;
|
||||||
|
while((psz[i]=szVal[ipn])!=0) {
|
||||||
|
@@ -3601,7 +3630,7 @@
|
||||||
|
nc += fprintf(fp, "0.");
|
||||||
|
n = a->Prec;
|
||||||
|
for(i=0;i < n;++i) {
|
||||||
|
- m = BASE1;
|
||||||
|
+ m = BASE1;
|
||||||
|
e = a->frac[i];
|
||||||
|
while(m) {
|
||||||
|
nn = e / m;
|
||||||
|
@@ -3778,6 +3807,7 @@
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
VP_EXPORT void
|
||||||
|
VpToString(Real *a,char *psz,int fFmt,int fPlus)
|
||||||
|
/* fPlus =0:default, =1: set ' ' before digits , =2:set '+' before digits. */
|
||||||
14
ruby-1.8.6-p287-CVE-2008-5189.patch
Normal file
14
ruby-1.8.6-p287-CVE-2008-5189.patch
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
--- lib/cgi.rb (revision 19665)
|
||||||
|
+++ lib/cgi.rb (working copy)
|
||||||
|
@@ -546,6 +546,11 @@
|
||||||
|
when Hash
|
||||||
|
options = options.dup
|
||||||
|
end
|
||||||
|
+ options.each_value do |value|
|
||||||
|
+ if /\n(?![ \t])/ === value
|
||||||
|
+ raise ArgumentError, "potential HTTP header injection detected"
|
||||||
|
+ end
|
||||||
|
+ end
|
||||||
|
|
||||||
|
unless options.has_key?("type")
|
||||||
|
options["type"] = "text/html"
|
||||||
100
ruby-1.8.6-p287-remove-ssl-rand-range.patch
Normal file
100
ruby-1.8.6-p287-remove-ssl-rand-range.patch
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
diff -ur ruby-1.8.6-p287.orig/ext/openssl/openssl_missing.c ruby-1.8.6-p287/ext/openssl/openssl_missing.c
|
||||||
|
--- ruby-1.8.6-p287.orig/ext/openssl/openssl_missing.c 2007-02-13 00:01:19.000000000 +0100
|
||||||
|
+++ ruby-1.8.6-p287/ext/openssl/openssl_missing.c 2009-03-15 05:32:31.000000000 +0100
|
||||||
|
@@ -43,7 +43,7 @@
|
||||||
|
{
|
||||||
|
return CRYPTO_set_ex_data(&str->ex_data, idx, data);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+
|
||||||
|
void *X509_STORE_get_ex_data(X509_STORE *str, int idx)
|
||||||
|
{
|
||||||
|
return CRYPTO_get_ex_data(&str->ex_data, idx);
|
||||||
|
@@ -113,7 +113,7 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(HAVE_EVP_CIPHER_CTX_COPY)
|
||||||
|
-/*
|
||||||
|
+/*
|
||||||
|
* this function does not exist in OpenSSL yet... or ever?.
|
||||||
|
* a future version may break this function.
|
||||||
|
* tested on 0.9.7d.
|
||||||
|
@@ -182,12 +182,12 @@
|
||||||
|
(ASN1_STRING *)(*a)->serialNumber,
|
||||||
|
(ASN1_STRING *)(*b)->serialNumber));
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+
|
||||||
|
int
|
||||||
|
X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
|
||||||
|
{
|
||||||
|
X509_CRL_INFO *inf;
|
||||||
|
-
|
||||||
|
+
|
||||||
|
inf = crl->crl;
|
||||||
|
if (!inf->revoked)
|
||||||
|
inf->revoked = sk_X509_REVOKED_new(OSSL_X509_REVOKED_cmp);
|
||||||
|
@@ -233,54 +233,6 @@
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if !defined(HAVE_BN_RAND_RANGE) || !defined(HAVE_BN_PSEUDO_RAND_RANGE)
|
||||||
|
-static int
|
||||||
|
-bn_rand_range(int pseudo, BIGNUM *r, BIGNUM *range)
|
||||||
|
-{
|
||||||
|
- int (*bn_rand)(BIGNUM *, int, int, int) = pseudo ? BN_pseudo_rand : BN_rand;
|
||||||
|
- int n;
|
||||||
|
-
|
||||||
|
- if (range->neg || BN_is_zero(range)) return 0;
|
||||||
|
-
|
||||||
|
- n = BN_num_bits(range);
|
||||||
|
-
|
||||||
|
- if (n == 1) {
|
||||||
|
- if (!BN_zero(r)) return 0;
|
||||||
|
- } else if (!BN_is_bit_set(range, n - 2) && !BN_is_bit_set(range, n - 3)) {
|
||||||
|
- do {
|
||||||
|
- if (!bn_rand(r, n + 1, -1, 0)) return 0;
|
||||||
|
- if (BN_cmp(r ,range) >= 0) {
|
||||||
|
- if (!BN_sub(r, r, range)) return 0;
|
||||||
|
- if (BN_cmp(r, range) >= 0)
|
||||||
|
- if (!BN_sub(r, r, range)) return 0;
|
||||||
|
- }
|
||||||
|
- } while (BN_cmp(r, range) >= 0);
|
||||||
|
- } else {
|
||||||
|
- do {
|
||||||
|
- if (!bn_rand(r, n, -1, 0)) return 0;
|
||||||
|
- } while (BN_cmp(r, range) >= 0);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 1;
|
||||||
|
-}
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-#if !defined(HAVE_BN_RAND_RANGE)
|
||||||
|
-int
|
||||||
|
-BN_rand_range(BIGNUM *r, BIGNUM *range)
|
||||||
|
-{
|
||||||
|
- return bn_rand_range(0, r, range);
|
||||||
|
-}
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-#if !defined(HAVE_BN_PSEUDO_RAND_RANGE)
|
||||||
|
-int
|
||||||
|
-BN_pseudo_rand_range(BIGNUM *r, BIGNUM *range)
|
||||||
|
-{
|
||||||
|
- return bn_rand_range(1, r, range);
|
||||||
|
-}
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#if !defined(HAVE_CONF_GET1_DEFAULT_CONFIG_FILE)
|
||||||
|
#define OPENSSL_CONF "openssl.cnf"
|
||||||
|
char *
|
||||||
|
@@ -315,7 +267,7 @@
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
const char *prompt;
|
||||||
|
-
|
||||||
|
+
|
||||||
|
if (key) {
|
||||||
|
i = strlen(key);
|
||||||
|
i = (i > num) ? num : i;
|
||||||
|
|
@ -12,7 +12,7 @@ diff -pruN ruby-1.8.6-p287.orig/lib/rexml/document.rb ruby-1.8.6-p287/lib/rexml/
|
||||||
@@ -200,6 +201,27 @@ module REXML
|
@@ -200,6 +201,27 @@ module REXML
|
||||||
Parsers::StreamParser.new( source, listener ).parse
|
Parsers::StreamParser.new( source, listener ).parse
|
||||||
end
|
end
|
||||||
|
|
||||||
+ @@entity_expansion_limit = 10_000
|
+ @@entity_expansion_limit = 10_000
|
||||||
+
|
+
|
||||||
+ # Set the entity expansion limit. By defualt the limit is set to 10000.
|
+ # Set the entity expansion limit. By defualt the limit is set to 10000.
|
||||||
|
|
@ -26,7 +26,7 @@ diff -pruN ruby-1.8.6-p287.orig/lib/rexml/document.rb ruby-1.8.6-p287/lib/rexml/
|
||||||
+ end
|
+ end
|
||||||
+
|
+
|
||||||
+ attr_reader :entity_expansion_count
|
+ attr_reader :entity_expansion_count
|
||||||
+
|
+
|
||||||
+ def record_entity_expansion
|
+ def record_entity_expansion
|
||||||
+ @entity_expansion_count += 1
|
+ @entity_expansion_count += 1
|
||||||
+ if @entity_expansion_count > @@entity_expansion_limit
|
+ if @entity_expansion_count > @@entity_expansion_limit
|
||||||
|
|
@ -44,7 +44,7 @@ diff -pruN ruby-1.8.6-p287.orig/lib/rexml/entity.rb ruby-1.8.6-p287/lib/rexml/en
|
||||||
# all entities -- both %ent; and &ent; entities. This differs from
|
# all entities -- both %ent; and &ent; entities. This differs from
|
||||||
# +value()+ in that +value+ only replaces %ent; entities.
|
# +value()+ in that +value+ only replaces %ent; entities.
|
||||||
def unnormalized
|
def unnormalized
|
||||||
+ document.record_entity_expansion
|
+ document.record_entity_expansion unless document.nil?
|
||||||
v = value()
|
v = value()
|
||||||
return nil if v.nil?
|
return nil if v.nil?
|
||||||
@unnormalized = Text::unnormalize(v, parent)
|
@unnormalized = Text::unnormalize(v, parent)
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
diff -pruN ruby-1.8.6-p111.orig/ext/socket/socket.c ruby-1.8.6-p111/ext/socket/socket.c
|
|
||||||
--- ruby-1.8.6-p111.orig/ext/socket/socket.c 2007-05-23 00:08:43.000000000 +0900
|
|
||||||
+++ ruby-1.8.6-p111/ext/socket/socket.c 2008-02-19 11:24:22.000000000 +0900
|
|
||||||
@@ -893,10 +893,10 @@ port_str(port, pbuf, len)
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef NI_MAXHOST
|
|
||||||
-# define 1025
|
|
||||||
+# define NI_MAXHOST 1025
|
|
||||||
#endif
|
|
||||||
#ifndef NI_MAXSERV
|
|
||||||
-# define 32
|
|
||||||
+# define NI_MAXSERV 32
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct addrinfo*
|
|
||||||
11
ruby-always-use-i386.patch
Normal file
11
ruby-always-use-i386.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- ruby-1.8.6-p287/configure.in.i386 2009-03-16 00:55:15.000000000 +0900
|
||||||
|
+++ ruby-1.8.6-p287/configure.in 2009-03-16 01:42:41.000000000 +0900
|
||||||
|
@@ -1662,6 +1662,8 @@
|
||||||
|
configure_args=$ac_configure_args
|
||||||
|
AC_SUBST(configure_args)dnl
|
||||||
|
|
||||||
|
+target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
||||||
|
+
|
||||||
|
if test "$fat_binary" != no ; then
|
||||||
|
arch="fat-${target_os}"
|
||||||
|
|
||||||
109
ruby.spec
109
ruby.spec
|
|
@ -1,6 +1,6 @@
|
||||||
%define rubyxver 1.8
|
%define rubyxver 1.8
|
||||||
%define rubyver 1.8.6
|
%define rubyver 1.8.6
|
||||||
%define _patchlevel 287
|
%define _patchlevel 368
|
||||||
%define dotpatchlevel %{?_patchlevel:.%{_patchlevel}}
|
%define dotpatchlevel %{?_patchlevel:.%{_patchlevel}}
|
||||||
%define patchlevel %{?_patchlevel:-p%{_patchlevel}}
|
%define patchlevel %{?_patchlevel:-p%{_patchlevel}}
|
||||||
%define arcver %{rubyver}%{?patchlevel}
|
%define arcver %{rubyver}%{?patchlevel}
|
||||||
|
|
@ -8,7 +8,11 @@
|
||||||
# This is required to ensure that noarch files puts under /usr/lib/... for
|
# This is required to ensure that noarch files puts under /usr/lib/... for
|
||||||
# multilib because ruby library is installed under /usr/{lib,lib64}/ruby anyway.
|
# multilib because ruby library is installed under /usr/{lib,lib64}/ruby anyway.
|
||||||
%define sitedir2 %{_prefix}/lib/ruby/site_ruby
|
%define sitedir2 %{_prefix}/lib/ruby/site_ruby
|
||||||
%define _normalized_cpu %(echo `echo %{_target_cpu} | sed 's/^ppc/powerpc/'`)
|
%define _normalized_cpu %(echo `echo %{_target_cpu} | sed 's/^ppc/powerpc/' | sed -e 's|i.86|i386|'`)
|
||||||
|
|
||||||
|
# emacs sitelisp directory
|
||||||
|
%{!?_emacs_sitelispdir: %global _emacs_sitelispdir %{_datadir}/emacs/site-lisp}
|
||||||
|
%{!?_emacs_sitestartdir: %global _emacs_sitestartdir %{_datadir}/emacs/site-lisp/site-start.d}
|
||||||
|
|
||||||
Name: ruby
|
Name: ruby
|
||||||
Version: %{rubyver}%{?dotpatchlevel}
|
Version: %{rubyver}%{?dotpatchlevel}
|
||||||
|
|
@ -22,7 +26,8 @@ BuildRequires: emacs
|
||||||
Source0: ftp://ftp.ruby-lang.org/pub/%{name}/%{rubyxver}/%{name}-%{arcver}.tar.bz2
|
Source0: ftp://ftp.ruby-lang.org/pub/%{name}/%{rubyxver}/%{name}-%{arcver}.tar.bz2
|
||||||
## Dead link
|
## Dead link
|
||||||
##Source1: http://www7.tok2.com/home/misc/files/%{name}/%{name}-refm-rdp-1.8.1-ja-html.tar.gz
|
##Source1: http://www7.tok2.com/home/misc/files/%{name}/%{name}-refm-rdp-1.8.1-ja-html.tar.gz
|
||||||
Source1: %{name}-refm-rdp-1.8.1-ja-html.tar.gz
|
#Source1: %{name}-refm-rdp-1.8.1-ja-html.tar.gz
|
||||||
|
Source1: http://elbereth-hp.hp.infoseek.co.jp/files/ruby/refm/old/2005/%{name}-refm-rdp-1.8.2-ja-html.tar.gz
|
||||||
Source2: ftp://ftp.ruby-lang.org/pub/%{name}/doc/rubyfaq-990927.tar.gz
|
Source2: ftp://ftp.ruby-lang.org/pub/%{name}/doc/rubyfaq-990927.tar.gz
|
||||||
Source3: ftp://ftp.ruby-lang.org/pub/%{name}/doc/rubyfaq-jp-990927.tar.gz
|
Source3: ftp://ftp.ruby-lang.org/pub/%{name}/doc/rubyfaq-jp-990927.tar.gz
|
||||||
Source4: irb.1
|
Source4: irb.1
|
||||||
|
|
@ -33,8 +38,13 @@ Patch20: ruby-rubyprefix.patch
|
||||||
Patch21: ruby-deprecated-sitelib-search-path.patch
|
Patch21: ruby-deprecated-sitelib-search-path.patch
|
||||||
Patch22: ruby-deprecated-search-path.patch
|
Patch22: ruby-deprecated-search-path.patch
|
||||||
Patch23: ruby-multilib.patch
|
Patch23: ruby-multilib.patch
|
||||||
Patch25: ruby-1.8.6.111-gcc43.patch
|
# Needed in 1.8.6-p287, no longer needed in 1.8.6-p368?
|
||||||
Patch26: ruby-1.8.6-rexml-CVE-2008-3790.patch
|
#Patch25: ruby-1.8.6.111-gcc43.patch
|
||||||
|
Patch26: ruby-1.8.6-rexml-CVE-2008-3790.patch
|
||||||
|
Patch27: ruby-1.8.6-p287-CVE-2008-5189.patch
|
||||||
|
Patch28: ruby-1.8.6-p287-remove-ssl-rand-range.patch
|
||||||
|
Patch29: ruby-always-use-i386.patch
|
||||||
|
Patch30: ruby-1.8.6-CVE-2009-1904-bigdecimal.patch
|
||||||
|
|
||||||
Summary: An interpreter of object-oriented scripting language
|
Summary: An interpreter of object-oriented scripting language
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
|
@ -50,6 +60,9 @@ straight-forward, and extensible.
|
||||||
%package libs
|
%package libs
|
||||||
Summary: Libraries necessary to run Ruby
|
Summary: Libraries necessary to run Ruby
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
|
# ext/bigdecimal/bigdecimal.{c,h} are under (GPL+ or Artistic) which
|
||||||
|
# are used for bigdecimal.so
|
||||||
|
License: (Ruby or GPLv2) and (GPL+ or Artistic)
|
||||||
Provides: ruby(abi) = %{rubyxver}
|
Provides: ruby(abi) = %{rubyxver}
|
||||||
Provides: libruby = %{version}-%{release}
|
Provides: libruby = %{version}-%{release}
|
||||||
Obsoletes: libruby <= %{version}-%{release}
|
Obsoletes: libruby <= %{version}-%{release}
|
||||||
|
|
@ -72,6 +85,8 @@ Ruby or an application embedded Ruby.
|
||||||
%package tcltk
|
%package tcltk
|
||||||
Summary: Tcl/Tk interface for scripting language Ruby
|
Summary: Tcl/Tk interface for scripting language Ruby
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
# Many files under ext/tk/sample/ are under TCL
|
||||||
|
License: (Ruby or GPLv2) and TCL
|
||||||
Requires: %{name}-libs = %{version}-%{release}
|
Requires: %{name}-libs = %{version}-%{release}
|
||||||
|
|
||||||
%description tcltk
|
%description tcltk
|
||||||
|
|
@ -93,6 +108,8 @@ from the terminal.
|
||||||
%package rdoc
|
%package rdoc
|
||||||
Summary: A tool to generate documentation from Ruby source files
|
Summary: A tool to generate documentation from Ruby source files
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
# generators/template/html/html.rb is under CC-BY
|
||||||
|
License: (GPLv2 or Ruby) and CC-BY
|
||||||
## ruby-irb requires ruby
|
## ruby-irb requires ruby
|
||||||
#Requires: %{name} = %{version}-%{release}
|
#Requires: %{name} = %{version}-%{release}
|
||||||
Requires: %{name}-irb = %{version}-%{release}
|
Requires: %{name}-irb = %{version}-%{release}
|
||||||
|
|
@ -152,8 +169,12 @@ pushd %{name}-%{arcver}
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
%patch23 -p1
|
%patch23 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch25 -p1
|
#%patch25 -p1
|
||||||
%patch26 -p1
|
#%patch26 -p1
|
||||||
|
%patch27 -p0
|
||||||
|
%patch28 -p1
|
||||||
|
%patch29 -p1
|
||||||
|
%patch30 -p2
|
||||||
popd
|
popd
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
@ -165,7 +186,7 @@ autoconf
|
||||||
|
|
||||||
rb_cv_func_strtod=no
|
rb_cv_func_strtod=no
|
||||||
export rb_cv_func_strtod
|
export rb_cv_func_strtod
|
||||||
CFLAGS="$RPM_OPT_FLAGS -Wall"
|
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||||
export CFLAGS
|
export CFLAGS
|
||||||
%configure \
|
%configure \
|
||||||
--with-sitedir='%{sitedir}' \
|
--with-sitedir='%{sitedir}' \
|
||||||
|
|
@ -191,7 +212,9 @@ popd
|
||||||
|
|
||||||
%check
|
%check
|
||||||
pushd %{name}-%{arcver}
|
pushd %{name}-%{arcver}
|
||||||
%ifnarch ppc64
|
%ifarch ppc64
|
||||||
|
make test || :
|
||||||
|
%else
|
||||||
make test
|
make test
|
||||||
%endif
|
%endif
|
||||||
popd
|
popd
|
||||||
|
|
@ -199,8 +222,8 @@ popd
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode
|
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitelispdir}/ruby-mode
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
|
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||||
|
|
||||||
# installing documents and exapmles...
|
# installing documents and exapmles...
|
||||||
rm -rf tmp-ruby-docs
|
rm -rf tmp-ruby-docs
|
||||||
|
|
@ -279,11 +302,16 @@ done
|
||||||
find -type f | xargs chmod 0644
|
find -type f | xargs chmod 0644
|
||||||
|
|
||||||
# convert to utf-8
|
# convert to utf-8
|
||||||
for i in `find -type f`; do
|
for i in `find -type f ! -name "*.gif"`; do
|
||||||
iconv -f utf-8 -t utf-8 $i > /dev/null 2>&1 || (iconv -f euc-jp -t utf-8 $i > $i.new && mv $i.new $i || exit 1)
|
status=0
|
||||||
if [ $? != 0 ]; then
|
iconv -f utf-8 -t utf-8 $i >/dev/null || { iconv -f euc-jp -t utf-8 $i > $i.new && mv $i.new $i || status=1 ; }
|
||||||
iconv -f iso8859-1 -t utf-8 $i > $.new && mv $i.new $i || exit 1
|
if [ $status = 0 ]; then
|
||||||
fi
|
if dirname $i | grep -q refm-ja ; then
|
||||||
|
sed -i -e '/encoding/s|EUC-JP|UTF-8|' -e '/charset/s|EUC-JP|UTF-8|' $i
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
iconv -f iso8859-1 -t utf-8 $i > $.new && mv $i.new $i || rm -f $i.new
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# done
|
# done
|
||||||
|
|
@ -306,10 +334,10 @@ install -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/
|
||||||
|
|
||||||
# installing ruby-mode
|
# installing ruby-mode
|
||||||
cd %{name}-%{arcver}
|
cd %{name}-%{arcver}
|
||||||
cp -p misc/*.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode
|
cp -p misc/*.el $RPM_BUILD_ROOT%{_emacs_sitelispdir}/ruby-mode
|
||||||
|
|
||||||
## for ruby-mode
|
## for ruby-mode
|
||||||
pushd $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode
|
pushd $RPM_BUILD_ROOT%{_emacs_sitelispdir}/ruby-mode
|
||||||
cat <<EOF > path.el
|
cat <<EOF > path.el
|
||||||
(setq load-path (cons "." load-path) byte-compile-warnings nil)
|
(setq load-path (cons "." load-path) byte-compile-warnings nil)
|
||||||
EOF
|
EOF
|
||||||
|
|
@ -317,7 +345,7 @@ emacs --no-site-file -q -batch -l path.el -f batch-byte-compile *.el
|
||||||
rm -f path.el*
|
rm -f path.el*
|
||||||
popd
|
popd
|
||||||
install -p -m 644 %{SOURCE10} \
|
install -p -m 644 %{SOURCE10} \
|
||||||
$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
|
$RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
|
@ -326,9 +354,10 @@ for i in $RPM_BUILD_ROOT%{_prefix}/lib/ruby/1.8/{abbrev,generator,irb/{cmd/subir
|
||||||
sed -i -e '/^#!.*/,1D' $i
|
sed -i -e '/^#!.*/,1D' $i
|
||||||
done
|
done
|
||||||
|
|
||||||
|
find $RPM_BUILD_ROOT/ -name "*.so" -exec chmod 755 {} \;
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
rm -rf tmp-ruby-docs
|
|
||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%post libs -p /sbin/ldconfig
|
||||||
|
|
||||||
|
|
@ -341,10 +370,10 @@ rm -rf tmp-ruby-docs
|
||||||
%doc %{name}-%{arcver}/GPL
|
%doc %{name}-%{arcver}/GPL
|
||||||
%doc %{name}-%{arcver}/LEGAL
|
%doc %{name}-%{arcver}/LEGAL
|
||||||
%doc %{name}-%{arcver}/LGPL
|
%doc %{name}-%{arcver}/LGPL
|
||||||
%doc %{name}-%{arcver}/NEWS
|
%doc %{name}-%{arcver}/NEWS
|
||||||
%doc %{name}-%{arcver}/README
|
%doc %{name}-%{arcver}/README
|
||||||
%lang(ja) %doc %{name}-%{arcver}/README.ja
|
%lang(ja) %doc %{name}-%{arcver}/README.ja
|
||||||
%doc %{name}-%{arcver}/ToDo
|
%doc %{name}-%{arcver}/ToDo
|
||||||
%doc %{name}-%{arcver}/doc/ChangeLog-1.8.0
|
%doc %{name}-%{arcver}/doc/ChangeLog-1.8.0
|
||||||
%doc %{name}-%{arcver}/doc/NEWS-1.8.0
|
%doc %{name}-%{arcver}/doc/NEWS-1.8.0
|
||||||
%doc tmp-ruby-docs/ruby/*
|
%doc tmp-ruby-docs/ruby/*
|
||||||
|
|
@ -500,10 +529,32 @@ rm -rf tmp-ruby-docs
|
||||||
%doc %{name}-%{arcver}/LEGAL
|
%doc %{name}-%{arcver}/LEGAL
|
||||||
%doc %{name}-%{arcver}/LGPL
|
%doc %{name}-%{arcver}/LGPL
|
||||||
%doc %{name}-%{arcver}/misc/README
|
%doc %{name}-%{arcver}/misc/README
|
||||||
%{_datadir}/emacs/site-lisp/ruby-mode
|
%{_emacs_sitelispdir}/ruby-mode
|
||||||
%{_datadir}/emacs/site-lisp/site-start.d/ruby-mode-init.el
|
%{_emacs_sitestartdir}/ruby-mode-init.el
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Dec 7 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.386-2
|
||||||
|
- Patch for bigdecimal DOS issue (CVE-2009-1904, bug 504958)
|
||||||
|
|
||||||
|
* Sun May 31 2009 Jeroen van Meeuwen <j.van.meeuwen@ogd.nl> - 1.8.6.368-1
|
||||||
|
- New upstream release (p368)
|
||||||
|
|
||||||
|
* Sat Apr 11 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.287-8
|
||||||
|
- Merge Review fix (#226381)
|
||||||
|
|
||||||
|
* Wed Mar 18 2009 Jeroen van Meeuwen <j.van.meeuwen@ogd.nl> - 1.8.6.287-7
|
||||||
|
- Fix regression in CVE-2008-3790 (#485383)
|
||||||
|
|
||||||
|
* Mon Mar 16 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.287-6
|
||||||
|
- Again use -O2 optimization level
|
||||||
|
- i586 should search i386-linux directory (on <= F-11)
|
||||||
|
|
||||||
|
* Thu Mar 05 2009 Jeroen van Meeuwen <kanarip@fedoraproject.org> - 1.8.6.287-5
|
||||||
|
- Rebuild for gcc4.4
|
||||||
|
|
||||||
|
* Fri Feb 27 2009 Jeroen van Meeuwen <kanarip@fedoraproject.org> - 1.8.6.287-3
|
||||||
|
- CVE-2008-5189: CGI header injection.
|
||||||
|
|
||||||
* Wed Oct 8 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.287-2
|
* Wed Oct 8 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.287-2
|
||||||
- CVE-2008-3790: DoS vulnerability in the REXML module.
|
- CVE-2008-3790: DoS vulnerability in the REXML module.
|
||||||
|
|
||||||
|
|
@ -882,8 +933,8 @@ rm -rf tmp-ruby-docs
|
||||||
|
|
||||||
* Mon Dec 16 2002 Elliot Lee <sopwith@redhat.com> 1.6.7-13
|
* Mon Dec 16 2002 Elliot Lee <sopwith@redhat.com> 1.6.7-13
|
||||||
- Remove ExcludeArch: x86_64
|
- Remove ExcludeArch: x86_64
|
||||||
- Fix x86_64 ruby with long2int.patch (ruby was assuming that sizeof(long)
|
- Fix x86_64 ruby with long2int.patch (ruby was assuming that sizeof(long)
|
||||||
== sizeof(int). The patch does not fix the source of the problem, just
|
== sizeof(int). The patch does not fix the source of the problem, just
|
||||||
makes it a non-issue.)
|
makes it a non-issue.)
|
||||||
- _smp_mflags
|
- _smp_mflags
|
||||||
|
|
||||||
|
|
@ -940,7 +991,7 @@ rm -rf tmp-ruby-docs
|
||||||
removed.
|
removed.
|
||||||
- ruby-1.6.7-100.patch: applied a bug fix patch.
|
- ruby-1.6.7-100.patch: applied a bug fix patch.
|
||||||
(ruby-dev#16274: patch for 'wm state')
|
(ruby-dev#16274: patch for 'wm state')
|
||||||
(PR#206ja: SEGV handle EXIT)
|
(PR#206ja: SEGV handle EXIT)
|
||||||
- ruby-1.6.7-101.patch: applied a bug fix patch.
|
- ruby-1.6.7-101.patch: applied a bug fix patch.
|
||||||
(ruby-list#34313: singleton should not be Marshal.dump'ed)
|
(ruby-list#34313: singleton should not be Marshal.dump'ed)
|
||||||
(ruby-dev#16411: block local var)
|
(ruby-dev#16411: block local var)
|
||||||
|
|
@ -1041,7 +1092,7 @@ rm -rf tmp-ruby-docs
|
||||||
* Thu Dec 14 2000 akira yamada <akira@vinelinux.org>
|
* Thu Dec 14 2000 akira yamada <akira@vinelinux.org>
|
||||||
- Removed ruby_cvs.2000101901.patch, added ruby_cvs.2000121413.patch
|
- Removed ruby_cvs.2000101901.patch, added ruby_cvs.2000121413.patch
|
||||||
(upgraded ruby to latest cvs version).
|
(upgraded ruby to latest cvs version).
|
||||||
- Removed ruby-dev.11262.patch, ruby-dev.11265.patch,
|
- Removed ruby-dev.11262.patch, ruby-dev.11265.patch,
|
||||||
and ruby-dev.11268.patch (included into above patch).
|
and ruby-dev.11268.patch (included into above patch).
|
||||||
|
|
||||||
* Sun Nov 12 2000 MACHINO, Satoshi <machino@vinelinux.org> 1.6.1-0vl9
|
* Sun Nov 12 2000 MACHINO, Satoshi <machino@vinelinux.org> 1.6.1-0vl9
|
||||||
|
|
@ -1055,7 +1106,7 @@ rm -rf tmp-ruby-docs
|
||||||
(upgraded ruby to latest cvs version).
|
(upgraded ruby to latest cvs version).
|
||||||
- Added ruby-dev.11262.patch.
|
- Added ruby-dev.11262.patch.
|
||||||
- Added ruby-dev.11265.patch.
|
- Added ruby-dev.11265.patch.
|
||||||
|
|
||||||
* Wed Oct 11 2000 akira yamada <akira@vinelinux.org>
|
* Wed Oct 11 2000 akira yamada <akira@vinelinux.org>
|
||||||
- Removed ruby_cvs.2000100313.patch and added ruby_cvs.2000101117.patch
|
- Removed ruby_cvs.2000100313.patch and added ruby_cvs.2000101117.patch
|
||||||
(upgraded ruby to latest cvs version).
|
(upgraded ruby to latest cvs version).
|
||||||
|
|
|
||||||
5
sources
5
sources
|
|
@ -1,5 +1,4 @@
|
||||||
8336b859400795ec51d05878c1a658b7 ruby-man-1.4.6.tar.bz2
|
|
||||||
d65e3a216d6d345a2a6f1aa8758c2f75 ruby-refm-rdp-1.8.1-ja-html.tar.gz
|
|
||||||
634c25b14e19925d10af3720d72e8741 rubyfaq-990927.tar.gz
|
634c25b14e19925d10af3720d72e8741 rubyfaq-990927.tar.gz
|
||||||
4fcec898f51d8371cc42d0a013940469 rubyfaq-jp-990927.tar.gz
|
4fcec898f51d8371cc42d0a013940469 rubyfaq-jp-990927.tar.gz
|
||||||
80b5f3db12531d36e6c81fac6d05dda9 ruby-1.8.6-p287.tar.bz2
|
623447c6d8c973193aae565a5538ccfc ruby-1.8.6-p368.tar.bz2
|
||||||
|
b6dd396f513efeb7864685c840f9643a ruby-refm-rdp-1.8.2-ja-html.tar.gz
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue