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
|
||||
Parsers::StreamParser.new( source, listener ).parse
|
||||
end
|
||||
|
||||
|
||||
+ @@entity_expansion_limit = 10_000
|
||||
+
|
||||
+ # 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
|
||||
+
|
||||
+ attr_reader :entity_expansion_count
|
||||
+
|
||||
+
|
||||
+ def record_entity_expansion
|
||||
+ @entity_expansion_count += 1
|
||||
+ 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
|
||||
# +value()+ in that +value+ only replaces %ent; entities.
|
||||
def unnormalized
|
||||
+ document.record_entity_expansion
|
||||
+ document.record_entity_expansion unless document.nil?
|
||||
v = value()
|
||||
return nil if v.nil?
|
||||
@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 rubyver 1.8.6
|
||||
%define _patchlevel 287
|
||||
%define _patchlevel 368
|
||||
%define dotpatchlevel %{?_patchlevel:.%{_patchlevel}}
|
||||
%define patchlevel %{?_patchlevel:-p%{_patchlevel}}
|
||||
%define arcver %{rubyver}%{?patchlevel}
|
||||
|
|
@ -8,7 +8,11 @@
|
|||
# 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.
|
||||
%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
|
||||
Version: %{rubyver}%{?dotpatchlevel}
|
||||
|
|
@ -22,7 +26,8 @@ BuildRequires: emacs
|
|||
Source0: ftp://ftp.ruby-lang.org/pub/%{name}/%{rubyxver}/%{name}-%{arcver}.tar.bz2
|
||||
## Dead link
|
||||
##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
|
||||
Source3: ftp://ftp.ruby-lang.org/pub/%{name}/doc/rubyfaq-jp-990927.tar.gz
|
||||
Source4: irb.1
|
||||
|
|
@ -33,8 +38,13 @@ Patch20: ruby-rubyprefix.patch
|
|||
Patch21: ruby-deprecated-sitelib-search-path.patch
|
||||
Patch22: ruby-deprecated-search-path.patch
|
||||
Patch23: ruby-multilib.patch
|
||||
Patch25: ruby-1.8.6.111-gcc43.patch
|
||||
Patch26: ruby-1.8.6-rexml-CVE-2008-3790.patch
|
||||
# Needed in 1.8.6-p287, no longer needed in 1.8.6-p368?
|
||||
#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
|
||||
Group: Development/Languages
|
||||
|
|
@ -50,6 +60,9 @@ straight-forward, and extensible.
|
|||
%package libs
|
||||
Summary: Libraries necessary to run Ruby
|
||||
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: libruby = %{version}-%{release}
|
||||
Obsoletes: libruby <= %{version}-%{release}
|
||||
|
|
@ -72,6 +85,8 @@ Ruby or an application embedded Ruby.
|
|||
%package tcltk
|
||||
Summary: Tcl/Tk interface for scripting language Ruby
|
||||
Group: Development/Languages
|
||||
# Many files under ext/tk/sample/ are under TCL
|
||||
License: (Ruby or GPLv2) and TCL
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
|
||||
%description tcltk
|
||||
|
|
@ -93,6 +108,8 @@ from the terminal.
|
|||
%package rdoc
|
||||
Summary: A tool to generate documentation from Ruby source files
|
||||
Group: Development/Languages
|
||||
# generators/template/html/html.rb is under CC-BY
|
||||
License: (GPLv2 or Ruby) and CC-BY
|
||||
## ruby-irb requires ruby
|
||||
#Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-irb = %{version}-%{release}
|
||||
|
|
@ -152,8 +169,12 @@ pushd %{name}-%{arcver}
|
|||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%endif
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
#%patch25 -p1
|
||||
#%patch26 -p1
|
||||
%patch27 -p0
|
||||
%patch28 -p1
|
||||
%patch29 -p1
|
||||
%patch30 -p2
|
||||
popd
|
||||
|
||||
%build
|
||||
|
|
@ -165,7 +186,7 @@ autoconf
|
|||
|
||||
rb_cv_func_strtod=no
|
||||
export rb_cv_func_strtod
|
||||
CFLAGS="$RPM_OPT_FLAGS -Wall"
|
||||
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
export CFLAGS
|
||||
%configure \
|
||||
--with-sitedir='%{sitedir}' \
|
||||
|
|
@ -191,7 +212,9 @@ popd
|
|||
|
||||
%check
|
||||
pushd %{name}-%{arcver}
|
||||
%ifnarch ppc64
|
||||
%ifarch ppc64
|
||||
make test || :
|
||||
%else
|
||||
make test
|
||||
%endif
|
||||
popd
|
||||
|
|
@ -199,8 +222,8 @@ popd
|
|||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
|
||||
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitelispdir}/ruby-mode
|
||||
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||
|
||||
# installing documents and exapmles...
|
||||
rm -rf tmp-ruby-docs
|
||||
|
|
@ -279,11 +302,16 @@ done
|
|||
find -type f | xargs chmod 0644
|
||||
|
||||
# convert to utf-8
|
||||
for i in `find -type f`; 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)
|
||||
if [ $? != 0 ]; then
|
||||
iconv -f iso8859-1 -t utf-8 $i > $.new && mv $i.new $i || exit 1
|
||||
fi
|
||||
for i in `find -type f ! -name "*.gif"`; do
|
||||
status=0
|
||||
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 ; }
|
||||
if [ $status = 0 ]; then
|
||||
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
|
||||
|
|
@ -306,10 +334,10 @@ install -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/
|
|||
|
||||
# installing ruby-mode
|
||||
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
|
||||
pushd $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode
|
||||
pushd $RPM_BUILD_ROOT%{_emacs_sitelispdir}/ruby-mode
|
||||
cat <<EOF > path.el
|
||||
(setq load-path (cons "." load-path) byte-compile-warnings nil)
|
||||
EOF
|
||||
|
|
@ -317,7 +345,7 @@ emacs --no-site-file -q -batch -l path.el -f batch-byte-compile *.el
|
|||
rm -f path.el*
|
||||
popd
|
||||
install -p -m 644 %{SOURCE10} \
|
||||
$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
|
||||
$RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||
|
||||
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
|
||||
done
|
||||
|
||||
find $RPM_BUILD_ROOT/ -name "*.so" -exec chmod 755 {} \;
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
rm -rf tmp-ruby-docs
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
||||
|
|
@ -341,10 +370,10 @@ rm -rf tmp-ruby-docs
|
|||
%doc %{name}-%{arcver}/GPL
|
||||
%doc %{name}-%{arcver}/LEGAL
|
||||
%doc %{name}-%{arcver}/LGPL
|
||||
%doc %{name}-%{arcver}/NEWS
|
||||
%doc %{name}-%{arcver}/NEWS
|
||||
%doc %{name}-%{arcver}/README
|
||||
%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/NEWS-1.8.0
|
||||
%doc tmp-ruby-docs/ruby/*
|
||||
|
|
@ -500,10 +529,32 @@ rm -rf tmp-ruby-docs
|
|||
%doc %{name}-%{arcver}/LEGAL
|
||||
%doc %{name}-%{arcver}/LGPL
|
||||
%doc %{name}-%{arcver}/misc/README
|
||||
%{_datadir}/emacs/site-lisp/ruby-mode
|
||||
%{_datadir}/emacs/site-lisp/site-start.d/ruby-mode-init.el
|
||||
%{_emacs_sitelispdir}/ruby-mode
|
||||
%{_emacs_sitestartdir}/ruby-mode-init.el
|
||||
|
||||
%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
|
||||
- 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
|
||||
- Remove ExcludeArch: x86_64
|
||||
- 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
|
||||
- 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
|
||||
makes it a non-issue.)
|
||||
- _smp_mflags
|
||||
|
||||
|
|
@ -940,7 +991,7 @@ rm -rf tmp-ruby-docs
|
|||
removed.
|
||||
- ruby-1.6.7-100.patch: applied a bug fix patch.
|
||||
(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-list#34313: singleton should not be Marshal.dump'ed)
|
||||
(ruby-dev#16411: block local var)
|
||||
|
|
@ -1041,7 +1092,7 @@ rm -rf tmp-ruby-docs
|
|||
* Thu Dec 14 2000 akira yamada <akira@vinelinux.org>
|
||||
- Removed ruby_cvs.2000101901.patch, added ruby_cvs.2000121413.patch
|
||||
(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).
|
||||
|
||||
* 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).
|
||||
- Added ruby-dev.11262.patch.
|
||||
- Added ruby-dev.11265.patch.
|
||||
|
||||
|
||||
* Wed Oct 11 2000 akira yamada <akira@vinelinux.org>
|
||||
- Removed ruby_cvs.2000100313.patch and added ruby_cvs.2000101117.patch
|
||||
(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
|
||||
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