diff --git a/.cvsignore b/.gitignore similarity index 77% rename from .cvsignore rename to .gitignore index 99e711a..c3a8483 100644 --- a/.cvsignore +++ b/.gitignore @@ -1,9 +1,11 @@ +*.bz2 +*.gz +*.rpm 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 ruby-1.8.2.tar.gz ruby-1.8.3.tar.gz ruby-1.8.4-preview1.tar.gz @@ -15,3 +17,7 @@ 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 +ruby-1.8.6-p114.tar.bz2 +ruby-1.8.6-p230.tar.bz2 +ruby-1.8.6-p287.tar.bz2 diff --git a/Makefile b/Makefile deleted file mode 100644 index d363f5c..0000000 --- a/Makefile +++ /dev/null @@ -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) diff --git a/ruby-1.8.6-CVE-2007-5162.patch b/ruby-1.8.6-CVE-2007-5162.patch deleted file mode 100644 index d4e4d68..0000000 --- a/ruby-1.8.6-CVE-2007-5162.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff -ruN ruby-1.8.6-p110.orig/ext/openssl/lib/openssl/ssl.rb ruby-1.8.6-p110/ext/openssl/lib/openssl/ssl.rb ---- ruby-1.8.6-p110.orig/ext/openssl/lib/openssl/ssl.rb 2007-02-13 08:01:19.000000000 +0900 -+++ ruby-1.8.6-p110/ext/openssl/lib/openssl/ssl.rb 2007-10-04 22:38:48.000000000 +0900 -@@ -88,7 +88,7 @@ - end - } - end -- raise SSLError, "hostname not match" -+ raise SSLError, "hostname not match with the server certificate" - end - end - -diff -ruN ruby-1.8.6-p110.orig/lib/net/http.rb ruby-1.8.6-p110/lib/net/http.rb ---- ruby-1.8.6-p110.orig/lib/net/http.rb 2007-02-13 08:01:19.000000000 +0900 -+++ ruby-1.8.6-p110/lib/net/http.rb 2007-10-04 22:41:34.000000000 +0900 -@@ -470,6 +470,7 @@ - @debug_output = nil - @use_ssl = false - @ssl_context = nil -+ @enable_post_connection_check = true - end - - def inspect -@@ -526,6 +527,9 @@ - false # redefined in net/https - end - -+ # specify enabling SSL server certificate and hostname checking. -+ attr_accessor :enable_post_connection_check -+ - # Opens TCP connection and HTTP session. - # - # When this method is called with block, gives a HTTP object -@@ -584,6 +588,14 @@ - HTTPResponse.read_new(@socket).value - end - s.connect -+ if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE -+ begin -+ s.post_connection_check(@address) -+ rescue OpenSSL::SSL::SSLError => ex -+ raise ex if @enable_post_connection_check -+ warn ex.message -+ end -+ end - end - on_connect - end -diff -ruN ruby-1.8.6-p110.orig/lib/open-uri.rb ruby-1.8.6-p110/lib/open-uri.rb ---- ruby-1.8.6-p110.orig/lib/open-uri.rb 2007-02-13 08:01:19.000000000 +0900 -+++ ruby-1.8.6-p110/lib/open-uri.rb 2007-10-04 22:42:18.000000000 +0900 -@@ -229,6 +229,7 @@ - if target.class == URI::HTTPS - require 'net/https' - http.use_ssl = true -+ http.enable_post_connection_check = true - http.verify_mode = OpenSSL::SSL::VERIFY_PEER - store = OpenSSL::X509::Store.new - store.set_default_paths -@@ -240,16 +241,6 @@ - - resp = nil - http.start { -- if target.class == URI::HTTPS -- # xxx: information hiding violation -- sock = http.instance_variable_get(:@socket) -- if sock.respond_to?(:io) -- sock = sock.io # 1.9 -- else -- sock = sock.instance_variable_get(:@socket) # 1.8 -- end -- sock.post_connection_check(target_host) -- end - req = Net::HTTP::Get.new(request_uri, header) - if options.include? :http_basic_authentication - user, pass = options[:http_basic_authentication] -diff -ruN ruby-1.8.6-p110.orig/version.h ruby-1.8.6-p110/version.h ---- ruby-1.8.6-p110.orig/version.h 2007-09-23 09:01:50.000000000 +0900 -+++ ruby-1.8.6-p110/version.h 2007-10-04 22:42:37.000000000 +0900 -@@ -1,15 +1,15 @@ - #define RUBY_VERSION "1.8.6" --#define RUBY_RELEASE_DATE "2007-09-23" -+#define RUBY_RELEASE_DATE "2007-09-24" - #define RUBY_VERSION_CODE 186 --#define RUBY_RELEASE_CODE 20070923 --#define RUBY_PATCHLEVEL 110 -+#define RUBY_RELEASE_CODE 20070924 -+#define RUBY_PATCHLEVEL 111 - - #define RUBY_VERSION_MAJOR 1 - #define RUBY_VERSION_MINOR 8 - #define RUBY_VERSION_TEENY 6 - #define RUBY_RELEASE_YEAR 2007 - #define RUBY_RELEASE_MONTH 9 --#define RUBY_RELEASE_DAY 23 -+#define RUBY_RELEASE_DAY 24 - - #ifdef RUBY_EXTERN - RUBY_EXTERN const char ruby_version[]; diff --git a/ruby-1.8.6-rexml-CVE-2008-3790.patch b/ruby-1.8.6-rexml-CVE-2008-3790.patch new file mode 100644 index 0000000..2ce6e1f --- /dev/null +++ b/ruby-1.8.6-rexml-CVE-2008-3790.patch @@ -0,0 +1,96 @@ +diff -pruN ruby-1.8.6-p287.orig/lib/rexml/document.rb ruby-1.8.6-p287/lib/rexml/document.rb +--- ruby-1.8.6-p287.orig/lib/rexml/document.rb 2007-11-04 13:50:15.000000000 +0900 ++++ ruby-1.8.6-p287/lib/rexml/document.rb 2008-10-08 22:25:14.000000000 +0900 +@@ -32,6 +32,7 @@ module REXML + # @param context if supplied, contains the context of the document; + # this should be a Hash. + def initialize( source = nil, context = {} ) ++ @entity_expansion_count = 0 + super() + @context = context + return if source.nil? +@@ -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. ++ def Document::entity_expansion_limit=( val ) ++ @@entity_expansion_limit = val ++ end ++ ++ # Get the entity expansion limit. By defualt the limit is set to 10000. ++ def Document::entity_expansion_limit ++ return @@entity_expansion_limit ++ end ++ ++ attr_reader :entity_expansion_count ++ ++ def record_entity_expansion ++ @entity_expansion_count += 1 ++ if @entity_expansion_count > @@entity_expansion_limit ++ raise "number of entity expansions exceeded, processing aborted." ++ end ++ end ++ + private + def build( source ) + Parsers::TreeParser.new( source, self ).parse +diff -pruN ruby-1.8.6-p287.orig/lib/rexml/entity.rb ruby-1.8.6-p287/lib/rexml/entity.rb +--- ruby-1.8.6-p287.orig/lib/rexml/entity.rb 2007-07-28 11:46:08.000000000 +0900 ++++ ruby-1.8.6-p287/lib/rexml/entity.rb 2008-10-08 22:25:14.000000000 +0900 +@@ -73,6 +73,7 @@ module REXML + # all entities -- both %ent; and &ent; entities. This differs from + # +value()+ in that +value+ only replaces %ent; entities. + def unnormalized ++ document.record_entity_expansion + v = value() + return nil if v.nil? + @unnormalized = Text::unnormalize(v, parent) +diff -pruN ruby-1.8.6-p287.orig/test/rexml/test_document.rb ruby-1.8.6-p287/test/rexml/test_document.rb +--- ruby-1.8.6-p287.orig/test/rexml/test_document.rb 1970-01-01 09:00:00.000000000 +0900 ++++ ruby-1.8.6-p287/test/rexml/test_document.rb 2008-10-08 22:25:14.000000000 +0900 +@@ -0,0 +1,42 @@ ++require "rexml/document" ++require "test/unit" ++ ++class REXML::TestDocument < Test::Unit::TestCase ++ def test_new ++ doc = REXML::Document.new(< ++Hello world! ++EOF ++ assert_equal("Hello world!", doc.root.children.first.value) ++ end ++ ++ XML_WITH_NESTED_ENTITY = < ++ ++ ++ ++ ++ ++ ++ ++]> ++ ++&a; ++ ++EOF ++ ++ def test_entity_expansion_limit ++ doc = REXML::Document.new(XML_WITH_NESTED_ENTITY) ++ assert_raise(RuntimeError) do ++ doc.root.children.first.value ++ end ++ REXML::Document.entity_expansion_limit = 100 ++ assert_equal(100, REXML::Document.entity_expansion_limit) ++ doc = REXML::Document.new(XML_WITH_NESTED_ENTITY) ++ assert_raise(RuntimeError) do ++ doc.root.children.first.value ++ end ++ assert_equal(101, doc.entity_expansion_count) ++ end ++end diff --git a/ruby-1.8.6.111-gcc43.patch b/ruby-1.8.6.111-gcc43.patch new file mode 100644 index 0000000..9e1b297 --- /dev/null +++ b/ruby-1.8.6.111-gcc43.patch @@ -0,0 +1,16 @@ +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* diff --git a/ruby-fix-autoconf-magic-code.patch b/ruby-fix-autoconf-magic-code.patch deleted file mode 100644 index 58ac75f..0000000 --- a/ruby-fix-autoconf-magic-code.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ruN ruby-1.8.4.orig/mkconfig.rb ruby-1.8.4/mkconfig.rb ---- ruby-1.8.4.orig/mkconfig.rb 2006-07-19 20:39:48.000000000 +0900 -+++ ruby-1.8.4/mkconfig.rb 2006-07-19 20:40:12.000000000 +0900 -@@ -37,6 +37,7 @@ - has_version = false - File.foreach "config.status" do |line| - next if /^#/ =~ line -+ line.gsub!(/\|#_!!_#\|/, '') - if /^s[%,]@program_transform_name@[%,]s,(.*)/ =~ line - next if $install_name - ptn = $1.sub(/\$\$/, '$').split(/,/) #' diff --git a/ruby.spec b/ruby.spec index eacf5ae..bb50369 100644 --- a/ruby.spec +++ b/ruby.spec @@ -1,18 +1,19 @@ -%define manver 1.4.6 %define rubyxver 1.8 %define rubyver 1.8.6 -%define _patchlevel 110 +%define _patchlevel 287 %define dotpatchlevel %{?_patchlevel:.%{_patchlevel}} %define patchlevel %{?_patchlevel:-p%{_patchlevel}} +%define arcver %{rubyver}%{?patchlevel} %define sitedir %{_libdir}/ruby/site_ruby # 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/'`) Name: ruby Version: %{rubyver}%{?dotpatchlevel} Release: 2%{?dist} -License: Ruby or GPL+ +License: Ruby or GPLv2 URL: http://www.ruby-lang.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: readline readline-devel ncurses ncurses-devel gdbm gdbm-devel glibc-devel tcl-devel tk-devel libX11-devel autoconf gcc unzip openssl-devel db4-devel byacc @@ -20,15 +21,13 @@ BuildRequires: readline readline-devel ncurses ncurses-devel gdbm gdbm-devel gli BuildRequires: emacs %endif -Source0: ftp://ftp.ruby-lang.org/pub/%{name}/%{name}-%{rubyver}%{?patchlevel}.tar.bz2 -##Source1: ftp://ftp.ruby-lang.org/pub/%{name}/doc/%{name}-man-%{manver}.tar.gz -Source1: %{name}-man-%{manver}.tar.bz2 -Source2: http://www7.tok2.com/home/misc/files/%{name}/%{name}-refm-rdp-1.8.1-ja-html.tar.gz -##Source3: ftp://ftp.ruby-lang.org/pub/%{name}/doc/rubyfaq-990927.tar.gz -Source3: rubyfaq-990927.tar.bz2 -##Source4: ftp://ftp.ruby-lang.org/pub/%{name}/doc/rubyfaq-jp-990927.tar.gz -Source4: rubyfaq-jp-990927.tar.bz2 -Source5: irb.1 +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 +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 Source10: ruby-mode-init.el Patch1: ruby-deadcode.patch @@ -36,7 +35,8 @@ Patch20: ruby-rubyprefix.patch Patch21: ruby-deprecated-sitelib-search-path.patch Patch22: ruby-deprecated-search-path.patch Patch23: ruby-multilib.patch -Patch24: ruby-1.8.6-CVE-2007-5162.patch +Patch25: ruby-1.8.6.111-gcc43.patch +Patch26: ruby-1.8.6-rexml-CVE-2008-3790.patch Summary: An interpreter of object-oriented scripting language Group: Development/Languages @@ -64,6 +64,7 @@ This package includes the libruby, necessary to run Ruby. Summary: A Ruby development environment Group: Development/Languages Requires: %{name}-libs = %{version}-%{release} +Provides: %{name}-libs-static = %{version}-%{release} %description devel Header files and libraries for building a extension library for the @@ -94,7 +95,8 @@ from the terminal. %package rdoc Summary: A tool to generate documentation from Ruby source files Group: Development/Languages -Requires: %{name} = %{version}-%{release} +## ruby-irb requires ruby +#Requires: %{name} = %{version}-%{release} Requires: %{name}-irb = %{version}-%{release} Provides: rdoc = %{version}-%{release} Obsoletes: rdoc <= %{version}-%{release} @@ -127,7 +129,8 @@ Emacs Lisp ruby-mode for the object-oriented scripting language Ruby. %package ri Summary: Ruby interactive reference Group: Documentation -Requires: %{name} = %{version}-%{release} +## ruby-irb requires ruby, which ruby-rdoc requires +#Requires: %{name} = %{version}-%{release} Requires: %{name}-rdoc = %{version}-%{release} Provides: ri = %{version}-%{release} Obsoletes: ri <= %{version}-%{release} @@ -140,12 +143,12 @@ along with a list of the methods the class or module implements. %prep -%setup -q -c -a 1 -a 3 -a 4 +%setup -q -c -a 2 -a 3 mkdir -p ruby-refm-ja pushd ruby-refm-ja -tar fxz %{SOURCE2} +tar fxz %{SOURCE1} popd -pushd %{name}-%{rubyver}%{?patchlevel} +pushd %{name}-%{arcver} %patch1 -p1 %patch20 -p1 %patch21 -p1 @@ -153,11 +156,12 @@ pushd %{name}-%{rubyver}%{?patchlevel} %patch22 -p1 %patch23 -p1 %endif -%patch24 -p1 +%patch25 -p1 +%patch26 -p1 popd %build -pushd %{name}-%{rubyver}%{?patchlevel} +pushd %{name}-%{arcver} for i in config.sub config.guess; do test -f %{_datadir}/libtool/$i && cp %{_datadir}/libtool/$i . done @@ -180,11 +184,7 @@ export CFLAGS --disable-rpath \ --with-ruby-prefix=%{_prefix}/lib -%ifarch ppc -cp Makefile Makefile.orig -sed -e 's/^EXTMK_ARGS[[:space:]].*=\(.*\) --$/EXTMK_ARGS=\1 --disable-tcl-thread --/' Makefile.orig > Makefile -%endif -make RUBY_INSTALL_NAME=ruby %{?_smp_mflags} +make RUBY_INSTALL_NAME=ruby %{?_smp_mflags} COPY="cp -p" %{?_smp_mflags} %ifarch ia64 # Miscompilation? Buggy code? rm -f parse.o @@ -194,7 +194,7 @@ make OPT=-O0 RUBY_INSTALL_NAME=ruby %{?_smp_mflags} popd %check -pushd %{name}-%{rubyver}%{?patchlevel} +pushd %{name}-%{arcver} %ifnarch ppc64 make test %endif @@ -204,32 +204,31 @@ popd rm -rf $RPM_BUILD_ROOT %ifnarch ppc64 -%{__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%{_libdir}/xemacs/xemacs-packages/lisp/ruby-mode -#%{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/xemacs/xemacs-packages/lisp/site-start.d +mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode +mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d %endif # installing documents and exapmles... +rm -rf tmp-ruby-docs mkdir tmp-ruby-docs cd tmp-ruby-docs # for ruby.rpm mkdir ruby ruby-libs ruby-devel ruby-tcltk ruby-docs irb cd ruby -(cd ../../%{name}-%{rubyver}%{?patchlevel} && tar cf - sample) | tar xvf - +(cd ../../%{name}-%{arcver} && tar cf - sample) | tar xvf - cd .. # for ruby-libs cd ruby-libs -(cd ../../%{name}-%{rubyver}%{?patchlevel} && tar cf - lib/README*) | tar xvf - -(cd ../../%{name}-%{rubyver}%{?patchlevel}/doc && tar cf - .) | tar xvf - -(cd ../../%{name}-%{rubyver}%{?patchlevel} && +(cd ../../%{name}-%{arcver} && tar cf - lib/README*) | tar xf - +(cd ../../%{name}-%{arcver}/doc && tar cf - .) | tar xf - +(cd ../../%{name}-%{arcver} && tar cf - `find ext \ -mindepth 1 \ \( -path '*/sample/*' -o -path '*/demo/*' \) -o \ \( -name '*.rb' -not -path '*/lib/*' -not -name extconf.rb \) -o \ - \( -name 'README*' -o -name '*.txt*' -o -name 'MANUAL*' \)`) | tar xvf - + \( -name 'README*' -o -name '*.txt*' -o -name 'MANUAL*' \)`) | tar xf - cd .. # for irb @@ -248,7 +247,7 @@ cd ruby-tcltk for target in tcltklib tk do (cd ../ruby-libs && - tar cf - `find . -path "*/$target/*"`) | tar xvf - + tar cf - `find . -path "*/$target/*"`) | tar xf - (cd ../ruby-libs && rm -rf `find . -name "$target" -type d`) done @@ -256,11 +255,10 @@ cd .. # for ruby-docs cd ruby-docs -mkdir doc-en refm-ja faq-en faq-ja -(cd ../../ruby-man-`echo %{manver} | sed -e 's/\.[0-9]*$//'` && tar cf - .) | (cd doc-en && tar xvf -) -(cd ../../ruby-refm-ja && tar cf - .) | (cd refm-ja && tar xvf -) -(cd ../../rubyfaq && tar cf - .) | (cd faq-en && tar xvf -) -(cd ../../rubyfaq-jp && tar cf - .) | (cd faq-ja && tar xvf -) +mkdir refm-ja faq-en faq-ja +(cd ../../ruby-refm-ja && tar cf - .) | (cd refm-ja && tar xf -) +(cd ../../rubyfaq && tar cf - .) | (cd faq-en && tar xf -) +(cd ../../rubyfaq-jp && tar cf - .) | (cd faq-ja && tar xf -) (cd faq-ja && for f in rubyfaq-jp*.html @@ -269,15 +267,12 @@ mkdir doc-en refm-ja faq-en faq-ja < $f > `echo $f | sed -e's/-jp//'` rm -f $f; \ done) -# make sure that all doc files are the world-readable -find -type f | xargs chmod 0644 - cd .. # fixing `#!' paths for f in `find . -type f` do - sed -e 's,^#![ ]*\([^ ]*\)/\(ruby\|with\|perl\|env\),#!/usr/bin/\2,' < $f > $f.n + sed -e 's,^#![ ]*\([^ ]*\)/\(ruby\|wish\|perl\|env\),#!/usr/bin/\2,' < $f > $f.n if ! cmp $f $f.n then mv -f $f.n $f @@ -286,35 +281,39 @@ do fi done +# make sure that all doc files are the world-readable +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 +done + # done cd .. # installing binaries ... -make -C $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{rubyver}%{?patchlevel} DESTDIR=$RPM_BUILD_ROOT install - -_cpu=`echo %{_target_cpu} | sed 's/^ppc/powerpc/'` +make -C $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{arcver} DESTDIR=$RPM_BUILD_ROOT install # generate ri doc -rubybuilddir=$RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{rubyver}%{?patchlevel} -LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} RUBYLIB=$RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}:$RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/$_cpu-%{_target_os} make -C $rubybuilddir DESTDIR=$RPM_BUILD_ROOT install-doc -#DESTDIR=$RPM_BUILD_ROOT LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_bindir}/ruby -I $rubybuilddir -I $RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/$_cpu-%{_target_os}/ -I $rubybuilddir/lib $RPM_BUILD_ROOT%{_bindir}/rdoc --all --ri-system $rubybuilddir +rubybuilddir=$RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{arcver} +rm -rf %{name}-%{arcver}/.ext/rdoc +LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} RUBYLIB=$RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}:$RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/%{_normalized_cpu}-%{_target_os} make -C $rubybuilddir DESTDIR=$RPM_BUILD_ROOT install-doc +#DESTDIR=$RPM_BUILD_ROOT LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_bindir}/ruby -I $rubybuilddir -I $RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/%{_normalized_cpu}-%{_target_os}/ -I $rubybuilddir/lib $RPM_BUILD_ROOT%{_bindir}/rdoc --all --ri-system $rubybuilddir -%{__mkdir_p} $RPM_BUILD_ROOT%{sitedir2}/%{rubyxver} -%{__mkdir_p} $RPM_BUILD_ROOT%{sitedir}/%{rubyxver}/$_cpu-%{_target_os} - -%ifarch ppc64 s390x sparc64 x86_64 -# correct archdir -#mv $RPM_BUILD_ROOT%{_prefix}/lib/ruby/%{rubyxver}/$_cpu-%{_target_os}/* $RPM_BUILD_ROOT%{_libdir}/ruby/%{rubyxver}/$_cpu-%{_target_os}/ -#rmdir $RPM_BUILD_ROOT%{_prefix}/lib/ruby/%{rubyxver}/$_cpu-%{_target_os} -%endif +mkdir -p $RPM_BUILD_ROOT%{sitedir2}/%{rubyxver} +mkdir -p $RPM_BUILD_ROOT%{sitedir}/%{rubyxver}/%{_normalized_cpu}-%{_target_os} # XXX: installing irb -install -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_mandir}/man1/ +install -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/ %ifnarch ppc64 # installing ruby-mode -cd %{name}-%{rubyver}%{?patchlevel} -cp misc/*.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode +cd %{name}-%{arcver} +cp -p misc/*.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode ## for ruby-mode pushd $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ruby-mode @@ -324,149 +323,277 @@ EOF emacs --no-site-file -q -batch -l path.el -f batch-byte-compile *.el rm -f path.el* popd -install -m 644 %{SOURCE10} \ +install -p -m 644 %{SOURCE10} \ $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d cd .. %endif -# listing all files in ruby-all.files -(find $RPM_BUILD_ROOT -type f -o -type l) | - sort | uniq | sed -e "s,^$RPM_BUILD_ROOT,," \ - -e "s,\(/man/man./.*\)$,\1*," > ruby-all.files -egrep '(\.[ah]|libruby\.so)$' ruby-all.files > ruby-devel.files - -_rubytmpfile=`mktemp -t %{name}-%{version}-%{release}-tmp-%(%{__id_u -n}).XXXXXXXXXX` -# for ruby-tcltk.rpm -cp /dev/null ruby-tcltk.files -for f in `find %{name}-%{rubyver}%{?patchlevel}/ext/tk/lib -type f; find %{name}-%{rubyver}%{?patchlevel}/.ext -type f -name '*.so'; find %{name}-%{rubyver}%{?patchlevel}/ext/tk -type f -name '*.so'` -do - egrep "tcl|tk" ruby-all.files | grep "/`basename $f`$" >> ruby-tcltk.files || : +# remove shebang +for i in $RPM_BUILD_ROOT%{_prefix}/lib/ruby/1.8/{abbrev,generator,irb/{cmd/subirb,ext/save-history},matrix,rdoc/{markup/sample/rdoc2latex,parsers/parse_rb},set,tsort}.rb; do + sed -i -e '/^#!.*/,1D' $i done -sort ruby-tcltk.files | uniq - $_rubytmpfile && mv $_rubytmpfile ruby-tcltk.files - -# for irb.rpm -fgrep 'irb' ruby-all.files > irb.files - -# for ri -cp /dev/null ri.files -fgrep '%{_datadir}/ri' ruby-all.files >> ri.files -fgrep '%{_bindir}/ri' ruby-all.files >> ri.files - -# for rdoc -cp /dev/null rdoc.files -fgrep rdoc ruby-all.files >> rdoc.files - -# for ruby-libs -cp /dev/null ruby-libs.files -(fgrep '%{_prefix}/lib' ruby-all.files; - fgrep -h '%{_prefix}/lib' ruby-devel.files ruby-tcltk.files irb.files ri.files rdoc.files) | egrep -v "elc?$" | \ - sort | uniq -u > ruby-libs.files - -%ifnarch ppc64 -# for ruby-mode -cp /dev/null ruby-mode.files -fgrep '.el' ruby-all.files >> ruby-mode.files -%else -touch ruby-mode.files -%endif - -# for ruby.rpm -sort ruby-all.files \ - ruby-libs.files ruby-devel.files ruby-tcltk.files irb.files ruby-mode.files ri.files rdoc.files | - uniq -u > ruby.files - -# for arch-dependent dir -rbconfig=`find $RPM_BUILD_ROOT -name rbconfig.rb` -export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} -arch=`$RPM_BUILD_ROOT%{_bindir}/ruby -r $rbconfig -e 'printf ("%s\n", Config::CONFIG["arch"])'` -cat <<__EOF__ >> ruby-libs.files -%%dir %%{_libdir}/ruby/%%{rubyxver}/$arch -%%dir %%{_libdir}/ruby/%%{rubyxver}/$arch/digest -__EOF__ %clean rm -rf $RPM_BUILD_ROOT -rm -f *.files rm -rf tmp-ruby-docs %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig -%files -f ruby.files -%defattr(-, root, root) -%doc %{name}-%{rubyver}%{?patchlevel}/COPYING* -%doc %{name}-%{rubyver}%{?patchlevel}/ChangeLog -%doc %{name}-%{rubyver}%{?patchlevel}/GPL -%doc %{name}-%{rubyver}%{?patchlevel}/LEGAL -%doc %{name}-%{rubyver}%{?patchlevel}/LGPL -%doc %{name}-%{rubyver}%{?patchlevel}/NEWS -%doc %{name}-%{rubyver}%{?patchlevel}/README -%lang(ja) %doc %{name}-%{rubyver}%{?patchlevel}/README.ja -%doc %{name}-%{rubyver}%{?patchlevel}/ToDo -%doc %{name}-%{rubyver}%{?patchlevel}/doc/ChangeLog-1.8.0 -%doc %{name}-%{rubyver}%{?patchlevel}/doc/NEWS-1.8.0 +%files +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL +%doc %{name}-%{arcver}/NEWS +%doc %{name}-%{arcver}/README +%lang(ja) %doc %{name}-%{arcver}/README.ja +%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/* +%{_bindir}/ruby +%{_bindir}/erb +%{_bindir}/testrb +%{_mandir}/man1/ruby.1* -%files devel -f ruby-devel.files -%defattr(-, root, root) -%doc %{name}-%{rubyver}%{?patchlevel}/README.EXT -%lang(ja) %doc %{name}-%{rubyver}%{?patchlevel}/README.EXT.ja +%files devel +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL +%doc %{name}-%{arcver}/README.EXT +%lang(ja) %doc %{name}-%{arcver}/README.EXT.ja +%{_libdir}/libruby.so +%{_libdir}/libruby-static.a +%{_libdir}/ruby/%{rubyxver}/*/*.h -%files libs -f ruby-libs.files -%defattr(-, root, root) -%doc %{name}-%{rubyver}%{?patchlevel}/README -%lang(ja) %doc %{name}-%{rubyver}%{?patchlevel}/README.ja -%doc %{name}-%{rubyver}%{?patchlevel}/COPYING* -%doc %{name}-%{rubyver}%{?patchlevel}/ChangeLog -%doc %{name}-%{rubyver}%{?patchlevel}/GPL -%doc %{name}-%{rubyver}%{?patchlevel}/LEGAL -%doc %{name}-%{rubyver}%{?patchlevel}/LGPL -%dir %{_libdir}/ruby +%files libs +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/README +%lang(ja) %doc %{name}-%{arcver}/README.ja +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL %dir %{_prefix}/lib/ruby -%dir %{_libdir}/ruby/%{rubyxver} %dir %{_prefix}/lib/ruby/%{rubyxver} -%dir %{_prefix}/lib/ruby/%{rubyxver}/cgi -%dir %{_prefix}/lib/ruby/%{rubyxver}/net -%dir %{_prefix}/lib/ruby/%{rubyxver}/shell -%dir %{_prefix}/lib/ruby/%{rubyxver}/uri -%{sitedir} -%{sitedir2} - -%files tcltk -f ruby-tcltk.files -%defattr(-, root, root) -%doc tmp-ruby-docs/ruby-tcltk/ext/* - -%files rdoc -f rdoc.files -%defattr(-, root, root) +%ifnarch ppc64 s390x sparc64 x86_64 +%dir %{_prefix}/lib/ruby/%{rubyxver}/%{_normalized_cpu}-%{_target_os} +%endif +%ifarch ppc64 s390x sparc64 x86_64 %dir %{_libdir}/ruby %dir %{_libdir}/ruby/%{rubyxver} +%dir %{_libdir}/ruby/%{rubyxver}/%{_normalized_cpu}-%{_target_os} +%{sitedir} +%endif +%{sitedir2} +## the following files should goes into ruby-tcltk package. +%exclude %{_prefix}/lib/ruby/%{rubyxver}/*tk.rb +%exclude %{_prefix}/lib/ruby/%{rubyxver}/tcltk.rb +%exclude %{_prefix}/lib/ruby/%{rubyxver}/tk +%exclude %{_prefix}/lib/ruby/%{rubyxver}/tk*.rb +%exclude %{_prefix}/lib/ruby/%{rubyxver}/tkextlib +%exclude %{_libdir}/ruby/%{rubyxver}/*/tcltklib.so +%exclude %{_libdir}/ruby/%{rubyxver}/*/tkutil.so +## the following files should goes into ruby-rdoc package. +%exclude %{_prefix}/lib/ruby/%{rubyxver}/rdoc +## the following files should goes into ruby-irb package. +%exclude %{_prefix}/lib/ruby/%{rubyxver}/irb.rb +%exclude %{_prefix}/lib/ruby/%{rubyxver}/irb +## files in ruby-libs from here +%{_prefix}/lib/ruby/%{rubyxver}/*.rb +%{_prefix}/lib/ruby/%{rubyxver}/bigdecimal +%{_prefix}/lib/ruby/%{rubyxver}/cgi +%{_prefix}/lib/ruby/%{rubyxver}/date +%{_prefix}/lib/ruby/%{rubyxver}/digest +%{_prefix}/lib/ruby/%{rubyxver}/dl +%{_prefix}/lib/ruby/%{rubyxver}/drb +%{_prefix}/lib/ruby/%{rubyxver}/io +%{_prefix}/lib/ruby/%{rubyxver}/net +%{_prefix}/lib/ruby/%{rubyxver}/openssl +%{_prefix}/lib/ruby/%{rubyxver}/optparse +%{_prefix}/lib/ruby/%{rubyxver}/racc +%{_prefix}/lib/ruby/%{rubyxver}/rexml +%{_prefix}/lib/ruby/%{rubyxver}/rinda +%{_prefix}/lib/ruby/%{rubyxver}/rss +%{_prefix}/lib/ruby/%{rubyxver}/runit +%{_prefix}/lib/ruby/%{rubyxver}/shell +%{_prefix}/lib/ruby/%{rubyxver}/soap +%{_prefix}/lib/ruby/%{rubyxver}/test +%{_prefix}/lib/ruby/%{rubyxver}/uri +%{_prefix}/lib/ruby/%{rubyxver}/webrick +%{_prefix}/lib/ruby/%{rubyxver}/wsdl +%{_prefix}/lib/ruby/%{rubyxver}/xmlrpc +%{_prefix}/lib/ruby/%{rubyxver}/xsd +%{_prefix}/lib/ruby/%{rubyxver}/yaml +%{_libdir}/libruby.so.* +%{_libdir}/ruby/%{rubyxver}/*/*.so +%{_libdir}/ruby/%{rubyxver}/*/digest +%{_libdir}/ruby/%{rubyxver}/*/io +%{_libdir}/ruby/%{rubyxver}/*/racc +%{_libdir}/ruby/%{rubyxver}/*/rbconfig.rb -%files irb -f irb.files -%defattr(-, root, root) +%files tcltk +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL +%doc tmp-ruby-docs/ruby-tcltk/ext/* +%{_prefix}/lib/ruby/%{rubyxver}/*-tk.rb +%{_prefix}/lib/ruby/%{rubyxver}/tcltk.rb +%{_prefix}/lib/ruby/%{rubyxver}/tk +%{_prefix}/lib/ruby/%{rubyxver}/tk*.rb +%{_prefix}/lib/ruby/%{rubyxver}/tkextlib +%{_libdir}/ruby/%{rubyxver}/*/tcltklib.so +%{_libdir}/ruby/%{rubyxver}/*/tkutil.so + +%files rdoc +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL +%{_bindir}/rdoc +%{_prefix}/lib/ruby/%{rubyxver}/rdoc + +%files irb +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL %doc tmp-ruby-docs/irb/* -%dir %{_prefix}/lib/ruby/%{rubyxver}/irb -%dir %{_prefix}/lib/ruby/%{rubyxver}/irb/lc -%dir %{_prefix}/lib/ruby/%{rubyxver}/irb/lc/ja +%{_bindir}/irb +%{_prefix}/lib/ruby/%{rubyxver}/irb.rb +%{_prefix}/lib/ruby/%{rubyxver}/irb +%{_mandir}/man1/irb.1* -%files ri -f ri.files -%defattr(-, root, root) -%dir %{_datadir}/ri +%files ri +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL +%{_bindir}/ri +%{_datadir}/ri %files docs -%defattr(-, root, root) +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%doc %{name}-%{arcver}/LEGAL +%doc %{name}-%{arcver}/LGPL %doc tmp-ruby-docs/ruby-docs/* %doc tmp-ruby-docs/ruby-libs/* %ifnarch ppc64 -%files mode -f ruby-mode.files -%defattr(-, root, root) -%doc %{name}-%{rubyver}%{?patchlevel}/misc/README -%dir %{_datadir}/emacs/site-lisp/ruby-mode +%files mode +%defattr(-, root, root, -) +%doc %{name}-%{arcver}/COPYING* +%doc %{name}-%{arcver}/ChangeLog +%doc %{name}-%{arcver}/GPL +%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 %endif %changelog +* Wed Oct 8 2008 Akira TAGOH - 1.8.6.287-2 +- CVE-2008-3790: DoS vulnerability in the REXML module. + +* Sat Aug 23 2008 Akira TAGOH - 1.8.6.287-1 +- New upstream release. +- Security fixes. + - CVE-2008-3655: Ruby does not properly restrict access to critical + variables and methods at various safe levels. + - CVE-2008-3656: DoS vulnerability in WEBrick. + - CVE-2008-3657: Lack of taintness check in dl. + - CVE-2008-1447: DNS spoofing vulnerability in resolv.rb. + - CVE-2008-3443: Memory allocation failure in Ruby regex engine. +- Remove the unnecessary backported patches. + +* Tue Jul 1 2008 Akira TAGOH - 1.8.6.230-4 +- Backported from upstream SVN to fix a segfault issue with Array#fill. + +* Mon Jun 30 2008 Akira TAGOH - 1.8.6.230-3 +- Backported from upstream SVN to fix a segfault issue. (#452825) +- Backported from upstream SVN to fix an integer overflow in rb_ary_fill. + +* Wed Jun 25 2008 Akira TAGOH - 1.8.6.230-2 +- Fix a segfault issue. (#452798) + +* Tue Jun 24 2008 Akira TAGOH - 1.8.6.230-1 +- New upstream release. +- Security fixes. (#452293) + - CVE-2008-1891: WEBrick CGI source disclosure. + - CVE-2008-2662: Integer overflow in rb_str_buf_append(). + - CVE-2008-2663: Integer overflow in rb_ary_store(). + - CVE-2008-2664: Unsafe use of alloca in rb_str_format(). + - CVE-2008-2725: Integer overflow in rb_ary_splice(). + - CVE-2008-2726: Integer overflow in rb_ary_splice(). +- ruby-1.8.6.111-CVE-2007-5162.patch: removed. + +* Tue Mar 4 2008 Akira TAGOH - 1.8.6.114-1 +- Security fix for CVE-2008-1145. +- Improve a spec file. (#226381) + - Correct License tag. + - Fix a timestamp issue. + - Own a arch-specific directory. + +* Tue Feb 19 2008 Fedora Release Engineering - 1.8.6.111-9 +- Autorebuild for GCC 4.3 + +* Tue Feb 19 2008 Akira TAGOH - 1.8.6.111-8 +- Rebuild for gcc-4.3. + +* Tue Jan 15 2008 Akira TAGOH - 1.8.6.111-7 +- Revert the change of libruby-static.a. (#428384) + +* Fri Jan 11 2008 Akira TAGOH - 1.8.6.111-6 +- Fix an unnecessary replacement for shebang. (#426835) + +* Fri Jan 4 2008 Akira TAGOH - 1.8.6.111-5 +- Rebuild. + +* Fri Dec 28 2007 Akira TAGOH - 1.8.6.111-4 +- Clean up again. + +* Fri Dec 21 2007 Akira TAGOH - 1.8.6.111-3 +- Clean up the spec file. +- Remove ruby-man-1.4.6 stuff. this is entirely the out-dated document. + this could be replaced by ri. +- Disable the static library building. + +* Tue Dec 04 2007 Release Engineering - 1.8.6.111-2 + - Rebuild for openssl bump + +* Wed Oct 31 2007 Akira TAGOH +- Fix the dead link. + +* Mon Oct 29 2007 Akira TAGOH - 1.8.6.111-1 +- New upstream release. +- ruby-1.8.6.111-CVE-2007-5162.patch: Update a bit with backporting the changes + at trunk to enable the fix without any modifications on the users' scripts. + Note that Net::HTTP#enable_post_connection_check isn't available anymore. + If you want to disable this post-check, you should give OpenSSL::SSL::VERIFY_NONE + to Net::HTTP#verify_mode= instead of. + * Mon Oct 15 2007 Akira TAGOH - 1.8.6.110-2 - Enable pthread support for ppc too. (#201452) - Fix unexpected dependencies appears in ruby-libs. (#253325) diff --git a/sources b/sources index effd85c..6e9470f 100644 --- a/sources +++ b/sources @@ -1,6 +1,5 @@ 8336b859400795ec51d05878c1a658b7 ruby-man-1.4.6.tar.bz2 d65e3a216d6d345a2a6f1aa8758c2f75 ruby-refm-rdp-1.8.1-ja-html.tar.gz -7f3e181c0be9a1579e43a5a8b26372d6 rubyfaq-990927.tar.bz2 -8aa2e2da327dc43ff6e46e634eb657b6 rubyfaq-jp-990927.tar.bz2 -eb7f25818cb6993839b38d1f21bd4ea1 ruby-1.8.6-p36.tar.bz2 -39cbf0cc610e636983cb3311bef3f2d0 ruby-1.8.6-p110.tar.bz2 +634c25b14e19925d10af3720d72e8741 rubyfaq-990927.tar.gz +4fcec898f51d8371cc42d0a013940469 rubyfaq-jp-990927.tar.gz +80b5f3db12531d36e6c81fac6d05dda9 ruby-1.8.6-p287.tar.bz2