From 00d9807f83a285182d8f8b84d7d4cfd1ed74cce605091448bdf81c92793a3126 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 15 Jan 2007 23:35:31 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ruby?expand=0&rev=1 --- .gitattributes | 23 + .gitignore | 1 + cgi_multipart_eof_fix.patch | 11 + irb.1 | 488 +++++++++++++ ready | 0 ruby-1.8.1-lib64.diff | 31 + ruby-1.8.2-gc.diff | 35 + ruby-1.8.2-tcltk-multilib.patch | 22 + ruby-1.8.4-fix-alias-safe-level.patch | 36 + ruby-1.8.4-fix-insecure-dir-operation.patch | 31 + ...8.4-fix-insecure-regexp-modification.patch | 66 ++ ruby-1.8.4-no-eaccess.diff | 93 +++ ruby-1.8.4-warnings.patch | 13 + ruby-1.8.5-vendor_ruby.patch | 184 +++++ ruby-1.8.5.tar.bz2 | 3 + ruby-1.8.5_linkerflags.patch | 16 + ruby-doc-bundle.tar.bz2 | 3 + ruby-fix-autoconf-magic-code.patch | 11 + ruby-socket_ipv6.patch | 20 + ruby.changes | 381 ++++++++++ ruby.spec | 683 ++++++++++++++++++ site-specific.rb | 14 + vendor-specific.rb | 14 + 23 files changed, 2179 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 cgi_multipart_eof_fix.patch create mode 100644 irb.1 create mode 100644 ready create mode 100644 ruby-1.8.1-lib64.diff create mode 100644 ruby-1.8.2-gc.diff create mode 100644 ruby-1.8.2-tcltk-multilib.patch create mode 100644 ruby-1.8.4-fix-alias-safe-level.patch create mode 100644 ruby-1.8.4-fix-insecure-dir-operation.patch create mode 100644 ruby-1.8.4-fix-insecure-regexp-modification.patch create mode 100644 ruby-1.8.4-no-eaccess.diff create mode 100644 ruby-1.8.4-warnings.patch create mode 100644 ruby-1.8.5-vendor_ruby.patch create mode 100644 ruby-1.8.5.tar.bz2 create mode 100644 ruby-1.8.5_linkerflags.patch create mode 100644 ruby-doc-bundle.tar.bz2 create mode 100644 ruby-fix-autoconf-magic-code.patch create mode 100644 ruby-socket_ipv6.patch create mode 100644 ruby.changes create mode 100644 ruby.spec create mode 100644 site-specific.rb create mode 100644 vendor-specific.rb diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/cgi_multipart_eof_fix.patch b/cgi_multipart_eof_fix.patch new file mode 100644 index 0000000..0735970 --- /dev/null +++ b/cgi_multipart_eof_fix.patch @@ -0,0 +1,11 @@ +--- lib/cgi.rb 2005-10-06 19:01:22.000000000 -0600 ++++ lib/cgi.rb 2006-09-22 16:38:08.000000000 -0600 +@@ -1017,7 +1017,7 @@ + else + stdinput.read(content_length) + end +- if c.nil? ++ if c.nil? || c.empty? + raise EOFError, "bad content body" + end + buf.concat(c) diff --git a/irb.1 b/irb.1 new file mode 100644 index 0000000..93fd5e4 --- /dev/null +++ b/irb.1 @@ -0,0 +1,488 @@ +.\" DO NOT MODIFY THIS FILE! it was generated by rd2 +.TH irb-beta 1 "May 2001" +.SH What is irb? +.PP +irb stands for `interactive ruby'. irb is a tool to execute interactively +ruby expressions read from stdin. +.SH Invoking +.PP +.nf +\& % ruby \-r irb \-e0 +\& % irb +.fi +Either of the aboves. In the former style, options can be specified +as follows: +.nf +\& % ruby \-r irb \-e0 \-\- \-v +.fi +.SH Usage +.PP +Use of irb is easy if you know ruby. Executing irb, prompts are +displayed as follows. Then, enter expression of ruby. A input is +executed when it is syntacticaly completed. +.nf +\& dim% irb +\& irb(main):001:0> 1+2 +\& 3 +\& irb(main):002:0> class Foo +\& irb(main):003:1> def foo +\& irb(main):004:2> print 1 +\& irb(main):005:2> end +\& irb(main):006:1> end +\& nil +\& irb(main):007:0> +.fi +And, Readline extesion module can be used with irb. Using Readline +is the standard default action if Readline is installed. +.SH Command line option +.PP +.nf +\& irb.rb [options] file_name opts +\& options: +\& \-f suppress read ~/.irbrc +\& \-m bc mode (fraction or matrix are available) +\& \-d set $DEBUG to true (same as `ruby \-d') +\& \-r load\-module same as `ruby \-r' +\& \-\-inspect uses `inspect' for output (the default except bc mode) +\& \-\-noinspect doesn't uses inspect for output +\& \-\-readline uses Readline extension module +\& \-\-noreadline doesn't use Readline extension module +\& \-\-prompt prompt\-mode +\& \-\-prompt\-mode prompt\-mode +.fi +.nf +\& switches prompt mode. Pre\-defined prompt modes are +\& `defalut', `simple', `xmp' and `inf\-ruby' +.fi +.nf +\& \-\-inf\-ruby\-mode uses prompt appreciate for inf\-ruby\-mode on emacs. +.fi +.nf +\& Suppresses \-\-readline. +.fi +.nf +\& \-\-simple\-prompt simple prompt mode +\& \-\-noprompt no prompt +\& \-\-tracer display trace for each execution of commands. +\& \-\-back\-trace\-limit n +.fi +.nf +\& displayes backtrace top n and tail n. The default +\& value is 16. +.fi +.nf +\& \-\-irb_debug n sets internal debug level to n (It shouldn't be used) +\& \-v, \-\-version prints the version of irb +.fi +.SH Configurations +.PP +irb reads `~/.irbrc' when it is invoked. If `~/.irbrb' doesn't exist +irb try to read in the order `.irbrc', `irb.rc', `_irbrc' then `$irbrc'. +The following is altanative to the command line option. To use them +type as follows in an irb session. +.nf +\& IRB.conf[:IRB_NAME]="irb" +\& IRB.conf[:MATH_MODE]=false +\& IRB.conf[:USE_TRACER]=false +\& IRB.conf[:USE_LOADER]=false +\& IRB.conf[:IGNORE_SIGINT]=true +\& IRB.conf[:IGNORE_EOF]=false +\& IRB.conf[:INSPECT_MODE]=nil +\& IRB.conf[:IRB_RC] = nil +\& IRB.conf[:BACK_TRACE_LIMIT]=16 +\& IRB.conf[:USE_LOADER] = false +\& IRB.conf[:USE_READLINE] = nil +\& IRB.conf[:USE_TRACER] = false +\& IRB.conf[:IGNORE_SIGINT] = true +\& IRB.conf[:IGNORE_EOF] = false +\& IRB.conf[:PROMPT_MODE] = :DEFALUT +\& IRB.conf[:PROMPT] = {...} +\& IRB.conf[:DEBUG_LEVEL]=0 +\& IRB.conf[:VERBOSE]=true +.fi +.SH Customizing prompt +.PP +To costomize the prompt you set a variable +.nf +\& IRB.conf[:PROMPT] +.fi +For example, describe as follows in `.irbrc'. +.nf +\& IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode +\& :PROMPT_I => nil, # normal prompt +\& :PROMPT_S => nil, # prompt for continuated strings +\& :PROMPT_C => nil, # prompt for continuated statement +\& :RETURN => " ==>%s\\n" # format to return value +\& } +.fi +Then, invoke irb with the above prompt mode by +.nf +\& % irb \-\-prompt my\-prompt +.fi +Or add the following in `.irbrc'. +.nf +\& IRB.conf[:PROMPT_MODE] = :MY_PROMPT +.fi +Constants PROMPT_I, PROMPT_S and PROMPT_C specifies the format. +In the prompt specification, some special strings are available. +.nf +\& %N command name which is running +\& %m to_s of main object (self) +\& %M inspect of main object (self) +\& %l type of string(", ', /, ]), `]' is inner %w[...] +\& %NNi indent level. NN is degits and means as same as printf("%NNd"). +\& It can be ommited +\& %NNn line number. +\& %% % +.fi +For instance, the default prompt mode is defined as follows: +IRB.conf[:PROMPT_MODE][:DEFAULT] = { + +.TP +.fi +.B +PROMPT_I => "%N(%m):%03n:%i> ", + + +.TP +.fi +.B +PROMPT_S => "%N(%m):%03n:%i%l ", + + +.TP +.fi +.B +PROMPT_C => "%N(%m):%03n:%i* ", + + +.TP +.fi +.B +RETURN => "%s\\n" +} +RETURN is used to printf. +.SH Configurating subirb +.PP +The command line option or IRB.conf specify the default behavior of +(sub)irb. On the other hand, each conf of in the next sction `6. Command' +is used to individually configurate (sub)irb. +If proc is set to IRB.conf[:IRB_RC], its subirb will be invoked after +execution of that proc under giving the context of irb as its +aregument. By this mechanism each subirb can be configurated. +.SH Command +.PP +For irb commands, both simple name and `irb_'\-prefixed name are prepared. + +.TP +.fi +.B +exit, quit, irb_exit +Quits (sub)irb. +if you've done cb (see below), exit from the binding mode. + + +.TP +.fi +.B +conf, irb_context +Displays current configuration. Modifing the configuration is +achieved by sending message to `conf'. + + +.TP +.fi +.B +conf.back_trace_limit +Sets display lines of backtrace as top n and tail n. +The default value is 16. + + +.TP +.fi +.B +conf.debug_level = N +Sets debug level of irb. + + +.TP +.fi +.B +conf.ignore_eof = true/false +Whether ^D (control\-d) will be ignored or not. +If false is set, ^D means quit. + + +.TP +.fi +.B +conf.ignore_sigint= true/false +Whether ^C (control\-c) will be ignored or not. +If false is set, ^D means quit. If true, + +.nf +\& during input: cancel inputing then return to top level. +\& during execute: abondon current execution. +.fi + + +.TP +.fi +.B +conf.inf_ruby_mode = true/false +Whether inf\-ruby\-mode or not. The default value is false. + + +.TP +.fi +.B +conf.inspect_mode = true/false/nil +Specifies inspect mode. +true: display inspect +false: display to_s +nil: inspect mode in non math mode, + +.nf +\& non inspect mode in math mode. +.fi + + +.TP +.fi +.B +conf.irb_level +The level of cb. + + +.TP +.fi +.B +conf.math_mode +Whether bc mode or not. + + +.TP +.fi +.B +conf.use_loader = true/false +Whether irb's own file reader method is used when load/require or not. +This mode is globaly affected (irb wide). + + +.TP +.fi +.B +conf.prompt_c +prompt for a continuating statement (e.g, immediately after of `if') + + +.TP +.fi +.B +conf.prompt_i +standard prompt + + +.TP +.fi +.B +conf.prompt_s +prompt for a continuating string + + +.TP +.fi +.B +conf.rc +Whether ~/.irbrc is read or not. + + +.TP +.fi +.B +conf.use_prompt = true/false +Prompting or not. + + +.TP +.fi +.B +conf.use_readline = true/false/nil +Whether readline is used or not. +true: uses +false: doen't use +nil: intends to use readline except for inf\-reuby\-mode (default) + + +.TP +.fi +.B +conf.verbose=T/F +Whether verbose messages are display or not. + + +.TP +.fi +.B +cb, irb_change_binding [obj] +Enter new binding which has a distinct scope of local variables. +If obj is given, obj will be self. + + +.TP +.fi +.B +irb [obj] +Invoke subirb. If obj is given, obj will be self. + + +.TP +.fi +.B +jobs, irb_jobs +List of subirb + + +.TP +.fi +.B +fg n, irb_fg n +Switch into specified subirb. The following is candidates of n: + +.nf +\& irb number +\& thhread +\& irb object +\& self(obj which is specified of irb obj) +.fi + + +.TP +.fi +.B +kill n, irb_kill n +Kill subirb. The means of n is as same as the case of irb_fg. +.SH System variable +.PP +.nf +\& _ The latest value of evaluation (it is local) +.fi +.SH Session Example +.PP +.nf +\& dim% ruby irb.rb +\& irb(main):001:0> irb # invoke subirb +\& irb#1(main):001:0> jobs # list of subirbs +\& #0\->irb on main (# : stop) +\& #1\->irb#1 on main (# : running) +\& nil +\& irb#1(main):002:0> fg 0 # switch job +\& nil +\& irb(main):002:0> class Foo;end +\& nil +\& irb(main):003:0> irb Foo # invoke subirb which has the +.fi +.nf +\& # context of Foo +.fi +.nf +\& irb#2(Foo):001:0> def foo # define Foo#foo +\& irb#2(Foo):002:1> print 1 +\& irb#2(Foo):003:1> end +\& nil +\& irb#2(Foo):004:0> fg 0 # switch job +\& nil +\& irb(main):004:0> jobs # list of job +\& #0\->irb on main (# : running) +\& #1\->irb#1 on main (# : stop) +\& #2\->irb#2 on Foo (# : stop) +\& nil +\& irb(main):005:0> Foo.instance_methods # Foo#foo is defined asurely +\& ["foo"] +\& irb(main):006:0> fg 2 # switch job +\& nil +\& irb#2(Foo):005:0> def bar # define Foo#bar +\& irb#2(Foo):006:1> print "bar" +\& irb#2(Foo):007:1> end +\& nil +\& irb#2(Foo):010:0> Foo.instance_methods +\& ["bar", "foo"] +\& irb#2(Foo):011:0> fg 0 +\& nil +\& irb(main):007:0> f = Foo.new +\& # +\& irb(main):008:0> irb f # invoke subirb which has the +.fi +.nf +\& # context of f (instance of Foo) +.fi +.nf +\& irb#3(#):001:0> jobs +\& #0\->irb on main (# : stop) +\& #1\->irb#1 on main (# : stop) +\& #2\->irb#2 on Foo (# : stop) +\& #3\->irb#3 on # (# : running) +\& nil +\& irb#3(#):002:0> foo # evaluate f.foo +\& 1nil +\& irb#3(#):003:0> bar # evaluate f.bar +\& barnil +\& irb#3(#):004:0> kill 1, 2, 3# kill job +\& nil +\& irb(main):009:0> jobs +\& #0\->irb on main (# : running) +\& nil +\& irb(main):010:0> exit # exit +\& dim% +.fi +.SH Restrictions +.PP +Because irb evaluates the inputs immediately after the imput is +syntactically completed, irb gives slight different result than +directly use ruby. Known difference is pointed out here. +.SH Declaration of the local variable +.PP +The following causes an error in ruby: +.nf +\& eval "foo = 0" +\& foo +\& \-\- +\& \-:2: undefined local variable or method `foo' for # (NameError) +\& \-\-\- +\& NameError +.fi +Though, the above will successfully done by irb. +.nf +\& >> eval "foo = 0" +.fi +.nf +\& => 0 +\& >> foo +\& => 0 +.fi +Ruby evaluates a code after reading entire of code and determination +of the scope of local variables. On the other hand, irb do +immediately. More precisely, irb evaluate at first +.nf +\& evel "foo = 0" +.fi +then foo is defined on this timing. It is because of this +incompatibility. +If you'd like to detect those differences, begin...end can be used: +.nf +\& >> begin +\& ?> eval "foo = 0" +\& >> foo +\& >> end +\& NameError: undefined local variable or method `foo' for # +\& (irb):3 +\& (irb_local_binding):1:in `eval' +.fi +.SH Here\-document +.PP +Implementation of Here\-document is incomplete. +.SH Symbol +.PP +Irb can not always recognize a symbol as to be Symbol. Concretely, an +expression have completed, however Irb regard it as continuation line. + diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 diff --git a/ruby-1.8.1-lib64.diff b/ruby-1.8.1-lib64.diff new file mode 100644 index 0000000..a54beb1 --- /dev/null +++ b/ruby-1.8.1-lib64.diff @@ -0,0 +1,31 @@ +Index: configure.in +=================================================================== +--- configure.in.orig ++++ configure.in +@@ -1117,7 +1117,7 @@ + if test "$rb_cv_missing_fconvert" = yes; then + AC_DEFINE(MISSING_FCONVERT) + fi +- AC_LIBOBJ([x68.o]) ++ AC_LIBOBJ([x68]) + CFLAGS="$CFLAGS -fansi-only" + XCFLAGS="$XCFLAGS -cc1-stack=262144 -cpp-stack=2694144" + EXEEXT=.x +@@ -1438,7 +1438,7 @@ + RUBY_LIB_PREFIX="/lib/ruby" + ;; + *) +- RUBY_LIB_PREFIX="${prefix}/lib/ruby" ++ RUBY_LIB_PREFIX="${libdir}/ruby" + ;; + esac + RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}" +@@ -1446,7 +1446,7 @@ + AC_ARG_WITH(sitedir, + [ --with-sitedir=DIR site libraries in DIR [PREFIX/lib/ruby/site_ruby]], + [sitedir=$withval], +- [sitedir='${prefix}/lib/ruby/site_ruby']) ++ [sitedir='${libdir}/ruby/site_ruby']) + SITE_DIR="`eval \"echo ${sitedir}\"`" + case "$target_os" in + cygwin*|mingw*|*djgpp*|os2-emx*) diff --git a/ruby-1.8.2-gc.diff b/ruby-1.8.2-gc.diff new file mode 100644 index 0000000..61a7b10 --- /dev/null +++ b/ruby-1.8.2-gc.diff @@ -0,0 +1,35 @@ +Index: gc.c +=================================================================== +--- gc.c.orig ++++ gc.c +@@ -422,7 +422,7 @@ + # define STACK_LEVEL_MAX (_stacksize - 4096) + # undef HAVE_GETRLIMIT + #elif defined(HAVE_GETRLIMIT) +-static unsigned int STACK_LEVEL_MAX = 655300; ++static unsigned long STACK_LEVEL_MAX = 655300; + #else + # define STACK_LEVEL_MAX 655300 + #endif +@@ -482,7 +482,7 @@ + (ret) = (STACK_LENGTH > STACK_LEVEL_MAX + GC_WATER_MARK);\ + } while (0) + +-int ++long + ruby_stack_length(p) + VALUE **p; + { +Index: intern.h +=================================================================== +--- intern.h.orig ++++ intern.h +@@ -234,7 +234,7 @@ + /* gc.c */ + NORETURN(void rb_memerror __((void))); + int ruby_stack_check _((void)); +-int ruby_stack_length _((VALUE**)); ++long ruby_stack_length _((VALUE**)); + char *rb_source_filename _((const char*)); + void rb_gc_mark_locations _((VALUE*, VALUE*)); + void rb_mark_tbl _((struct st_table*)); diff --git a/ruby-1.8.2-tcltk-multilib.patch b/ruby-1.8.2-tcltk-multilib.patch new file mode 100644 index 0000000..2716a16 --- /dev/null +++ b/ruby-1.8.2-tcltk-multilib.patch @@ -0,0 +1,22 @@ +Index: ext/tk/extconf.rb +=================================================================== +--- ext/tk/extconf.rb.orig ++++ ext/tk/extconf.rb +@@ -48,7 +48,7 @@ tcllib = with_config("tcllib") + stubs = enable_config("tcltk_stubs") || with_config("tcltk_stubs") + + def find_tcl(tcllib, stubs) +- paths = ["/usr/local/lib", "/usr/pkg/lib", "/usr/lib"] ++ paths = ["/usr/local/lib64", "/usr/local/lib", "/usr/pkg/lib64", "/usr/pkg/lib", "/usr/lib64", "/usr/lib"] + if stubs + func = "Tcl_InitStubs" + lib = "tclstub" +@@ -273,7 +273,7 @@ end + if tcltk_framework || + (have_header("tcl.h") && have_header("tk.h") && + (is_win32 || find_library("X11", "XOpenDisplay", +- "/usr/X11/lib", "/usr/lib/X11", "/usr/X11R6/lib", "/usr/openwin/lib")) && ++ "/usr/X11/lib64", "/usr/X11/lib", "/usr/lib64/X11", "/usr/lib/X11", "/usr/X11R6/lib64", "/usr/X11R6/lib", "/usr/openwin/lib64", "/usr/openwin/lib")) && + find_tcl(tcllib, stubs) && + find_tk(tklib, stubs)) + $CPPFLAGS += ' -DUSE_TCL_STUBS -DUSE_TK_STUBS' if stubs diff --git a/ruby-1.8.4-fix-alias-safe-level.patch b/ruby-1.8.4-fix-alias-safe-level.patch new file mode 100644 index 0000000..2149bd3 --- /dev/null +++ b/ruby-1.8.4-fix-alias-safe-level.patch @@ -0,0 +1,36 @@ +diff -ruN ruby-1.8.4.orig/eval.c ruby-1.8.4/eval.c +--- ruby-1.8.4.orig/eval.c 2005-12-20 22:41:47.000000000 +0900 ++++ ruby-1.8.4/eval.c 2006-07-20 18:33:50.000000000 +0900 +@@ -2097,7 +2097,8 @@ + } + } + st_insert(RCLASS(klass)->m_tbl, name, +- (st_data_t)NEW_METHOD(NEW_FBODY(body, def, origin), orig->nd_noex)); ++ (st_data_t)NEW_METHOD(NEW_FBODY(body, def, origin), ++ NOEX_WITH_SAFE(orig->nd_noex))); + if (singleton) { + rb_funcall(singleton, singleton_added, 1, ID2SYM(name)); + } +@@ -5638,6 +5639,11 @@ + TMP_PROTECT; + volatile int safe = -1; + ++ if (NOEX_SAFE(flags) > ruby_safe_level && ++ !(flags&NOEX_TAINTED) && ruby_safe_level == 0 && NOEX_SAFE(flags) > 2) { ++ rb_raise(rb_eSecurityError, "calling insecure method: %s", ++ rb_id2name(id)); ++ } + switch (ruby_iter->iter) { + case ITER_PRE: + case ITER_PAS: +@@ -5742,10 +5748,6 @@ + b2 = body = body->nd_next; + + if (NOEX_SAFE(flags) > ruby_safe_level) { +- if (!(flags&NOEX_TAINTED) && ruby_safe_level == 0 && NOEX_SAFE(flags) > 2) { +- rb_raise(rb_eSecurityError, "calling insecure method: %s", +- rb_id2name(id)); +- } + safe = ruby_safe_level; + ruby_safe_level = NOEX_SAFE(flags); + } diff --git a/ruby-1.8.4-fix-insecure-dir-operation.patch b/ruby-1.8.4-fix-insecure-dir-operation.patch new file mode 100644 index 0000000..2881548 --- /dev/null +++ b/ruby-1.8.4-fix-insecure-dir-operation.patch @@ -0,0 +1,31 @@ +diff -ruN ruby-1.8.4.orig/dir.c ruby-1.8.4/dir.c +--- ruby-1.8.4.orig/dir.c 2005-09-14 22:40:58.000000000 +0900 ++++ ruby-1.8.4/dir.c 2006-07-19 22:14:05.000000000 +0900 +@@ -325,7 +325,17 @@ + rb_raise(rb_eIOError, "closed directory"); + } + ++static void ++dir_check(dir) ++ VALUE dir; ++{ ++ if (!OBJ_TAINTED(dir) && rb_safe_level() >= 4) ++ rb_raise(rb_eSecurityError, "Insecure: operation on untainted Dir"); ++ rb_check_frozen(dir); ++} ++ + #define GetDIR(obj, dirp) do {\ ++ dir_check(dir);\ + Data_Get_Struct(obj, struct dir_data, dirp);\ + if (dirp->dir == NULL) dir_closed();\ + } while (0) +@@ -536,6 +546,9 @@ + { + struct dir_data *dirp; + ++ if (rb_safe_level() >= 4 && !OBJ_TAINTED(dir)) { ++ rb_raise(rb_eSecurityError, "Insecure: can't close"); ++ } + GetDIR(dir, dirp); + closedir(dirp->dir); + dirp->dir = NULL; diff --git a/ruby-1.8.4-fix-insecure-regexp-modification.patch b/ruby-1.8.4-fix-insecure-regexp-modification.patch new file mode 100644 index 0000000..5bfc9ce --- /dev/null +++ b/ruby-1.8.4-fix-insecure-regexp-modification.patch @@ -0,0 +1,66 @@ +diff -ruN ruby-1.8.4.orig/re.c ruby-1.8.4/re.c +--- ruby-1.8.4.orig/re.c 2005-12-13 12:27:51.000000000 +0900 ++++ ruby-1.8.4/re.c 2006-07-19 18:07:59.000000000 +0900 +@@ -70,10 +70,11 @@ + #endif + + int +-rb_memcicmp(p1, p2, len) +- char *p1, *p2; ++rb_memcicmp(x, y, len) ++ const void *x, *y; + long len; + { ++ const unsigned char *p1 = x, *p2 = y; + int tmp; + + while (len--) { +@@ -85,7 +86,7 @@ + + int + rb_memcmp(p1, p2, len) +- char *p1, *p2; ++ const void *p1, *p2; + long len; + { + if (!ruby_ignorecase) { +@@ -96,11 +97,11 @@ + + long + rb_memsearch(x0, m, y0, n) +- char *x0, *y0; ++ const void *x0, *y0; + long m, n; + { +- unsigned char *x = (unsigned char *)x0, *y = (unsigned char *)y0; +- unsigned char *s, *e; ++ const unsigned char *x = (unsigned char *)x0, *y = (unsigned char *)y0; ++ const unsigned char *s, *e; + long i; + int d; + unsigned long hx, hy; +@@ -1332,6 +1333,8 @@ + { + struct RRegexp *re = RREGEXP(obj); + ++ if (!OBJ_TAINTED(obj) && rb_safe_level() >= 4) ++ rb_raise(rb_eSecurityError, "Insecure: can't modify regexp"); + if (re->ptr) re_free_pattern(re->ptr); + if (re->str) free(re->str); + re->ptr = 0; +diff -ruN ruby-1.8.4.orig/intern.h ruby-1.8.4/intern.h +--- ruby-1.8.4.orig/intern.h 2006-07-19 18:13:49.000000000 +0900 ++++ ruby-1.8.4/intern.h 2006-07-19 18:20:34.000000000 +0900 +@@ -353,9 +353,9 @@ + VALUE rb_range_beg_len _((VALUE, long*, long*, long, int)); + VALUE rb_length_by_each _((VALUE)); + /* re.c */ +-int rb_memcmp _((char*,char*,long)); +-int rb_memcicmp _((char*,char*,long)); +-long rb_memsearch _((char*,long,char*,long)); ++int rb_memcmp _((const void*,const void*,long)); ++int rb_memcicmp _((const void*,const void*,long)); ++long rb_memsearch _((const void*,long,const void*,long)); + VALUE rb_reg_nth_defined _((int, VALUE)); + VALUE rb_reg_nth_match _((int, VALUE)); + VALUE rb_reg_last_match _((VALUE)); diff --git a/ruby-1.8.4-no-eaccess.diff b/ruby-1.8.4-no-eaccess.diff new file mode 100644 index 0000000..0d41e8b --- /dev/null +++ b/ruby-1.8.4-no-eaccess.diff @@ -0,0 +1,93 @@ +see bug: +http://rubyforge.org/tracker/?func=detail&atid=1698&aid=3317&group_id=426 + +adapted patch from: +http://www.atdot.net/~ko1/w3ml/w3ml.cgi/ruby-cvs/msg/16358 + + +Index: ChangeLog +=================================================================== +--- ChangeLog.orig ++++ ChangeLog +@@ -1,3 +1,8 @@ ++Wed Jan 25 22:29:04 2006 Nobuyoshi Nakada ++ ++ * configure.in, dln.c, file.c, intern.h, missing.h (eaccess): use ++ system routine if provided. fixed: [ruby-core:07195] ++ + Sat Dec 24 18:58:14 2005 Yukihiro Matsumoto + + * stable version 1.8.4 released. +Index: configure.in +=================================================================== +--- configure.in.orig ++++ configure.in +@@ -437,7 +437,7 @@ AC_CHECK_FUNCS(ftello) + AC_REPLACE_FUNCS(dup2 memmove strcasecmp strncasecmp strerror strftime\ + strchr strstr strtoul crypt flock vsnprintf\ + isnan finite isinf hypot acosh erf) +-AC_CHECK_FUNCS(fmod killpg wait4 waitpid syscall chroot fsync getcwd\ ++AC_CHECK_FUNCS(fmod killpg wait4 waitpid syscall chroot fsync getcwd eaccess\ + truncate chsize times utimes fcntl lockf lstat symlink link\ + readlink setitimer setruid seteuid setreuid setresuid\ + setproctitle setrgid setegid setregid setresgid issetugid pause\ +Index: dln.c +=================================================================== +--- dln.c.orig ++++ dln.c +@@ -89,8 +89,6 @@ char *getenv(); + # include + #endif + +-int eaccess(); +- + #ifndef NO_DLN_LOAD + + #if defined(HAVE_DLOPEN) && !defined(USE_DLN_A_OUT) && !defined(_AIX) && !defined(__APPLE__) && !defined(_UNICOSMP) +Index: file.c +=================================================================== +--- file.c.orig ++++ file.c +@@ -849,6 +849,7 @@ group_member(gid) + # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) + #endif + ++#if !defined(HAVE_EACCESS) || !(defined(__USE_GNU) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 4)) + int + eaccess(path, mode) + const char *path; +@@ -887,6 +888,7 @@ eaccess(path, mode) + return access(path, mode); + #endif + } ++#endif + + + /* +Index: intern.h +=================================================================== +--- intern.h.orig ++++ intern.h +@@ -221,7 +221,6 @@ VALUE rb_thread_local_aset _((VALUE, ID, + void rb_thread_atfork _((void)); + VALUE rb_funcall_rescue __((VALUE, ID, int, ...)); + /* file.c */ +-int eaccess _((const char*, int)); + VALUE rb_file_s_expand_path _((int, VALUE *)); + VALUE rb_file_expand_path _((VALUE, VALUE)); + void rb_file_const _((const char*, VALUE)); +Index: missing.h +=================================================================== +--- missing.h.orig ++++ missing.h +@@ -39,6 +39,10 @@ extern char *crypt _((char *, char *)); + extern int dup2 _((int, int)); + #endif + ++#if !defined(HAVE_EACCESS) || !(defined(__USE_GNU) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 4)) ++extern int eaccess(const char*, int); ++#endif ++ + #ifndef HAVE_FINITE + extern int finite _((double)); + #endif diff --git a/ruby-1.8.4-warnings.patch b/ruby-1.8.4-warnings.patch new file mode 100644 index 0000000..28a2bfe --- /dev/null +++ b/ruby-1.8.4-warnings.patch @@ -0,0 +1,13 @@ +Index: file.c +=================================================================== +--- file.c.orig ++++ file.c +@@ -1692,7 +1692,7 @@ + const char *path; + void *mode; + { +- if (chmod(path, (int)mode) < 0) ++ if (chmod(path, (intptr_t)mode) < 0) + rb_sys_fail(path); + } + diff --git a/ruby-1.8.5-vendor_ruby.patch b/ruby-1.8.5-vendor_ruby.patch new file mode 100644 index 0000000..f000147 --- /dev/null +++ b/ruby-1.8.5-vendor_ruby.patch @@ -0,0 +1,184 @@ +Index: configure.in +=================================================================== +--- configure.in.orig ++++ configure.in +@@ -1533,9 +1533,28 @@ + AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}") + AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH2}") + ++AC_ARG_WITH(vendordir, ++ [ --with-vendordir=DIR vendor libraries in DIR [LIBDIR/ruby/vendor_ruby]], ++ [vendordir=$withval], ++ [vendordir='${libdir}/ruby/vendor_ruby']) ++VENDOR_DIR="`eval \"echo ${vendordir}\"`" ++case "$target_os" in ++ cygwin*|mingw*|*djgpp*|os2_emx*) ++ RUBY_VENDOR_LIB_PATH="`expr "$VENDOR_DIR" : "$prefix\(/.*\)"`" || ++ RUBY_VENDOR_LIB_PATH="$VENDOR_DIR";; ++ *) ++ RUBY_VENDOR_LIB_PATH="$VENDOR_DIR";; ++esac ++RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${MAJOR}.${MINOR}" ++ ++AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, "${RUBY_VENDOR_LIB_PATH}") ++AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH2}") ++ + AC_SUBST(arch)dnl + AC_SUBST(sitearch)dnl ++AC_SUBST(vendorarch)dnl + AC_SUBST(sitedir)dnl ++AC_SUBST(vendordir)dnl + + configure_args=$ac_configure_args + AC_SUBST(configure_args)dnl +@@ -1548,6 +1567,8 @@ + + AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB, + "${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}") ++ AC_DEFINE_UNQUOTED(RUBY_VENDOR_THIN_ARCHLIB, ++ "${RUBY_VENDOR_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}") + AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}") + else + arch="${target_cpu}-${target_os}" +@@ -1555,12 +1576,15 @@ + fi + + case "$target_os" in +- mingw*) sitearch="i386-$rb_cv_msvcrt" ;; +- *) sitearch="${arch}" ;; ++ mingw*) sitearch="i386-$rb_cv_msvcrt" ++ vendorarch="i386-$rb_cv_msvcrt" ;; ++ *) sitearch="${arch}" ++ vendorarch="${arch}" ;; + esac + + AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}") + AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${sitearch}") ++AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, "${RUBY_VENDOR_LIB_PATH2}/${vendorarch}") + + AC_ARG_WITH(search-path, + [ --with-search-path=DIR specify the additional search path], +Index: instruby.rb +=================================================================== +--- instruby.rb.orig ++++ instruby.rb +@@ -99,6 +99,8 @@ + archlibdir = with_destdir(CONFIG["archdir"]) + sitelibdir = with_destdir(CONFIG["sitelibdir"]) + sitearchlibdir = with_destdir(CONFIG["sitearchdir"]) ++vendorlibdir = with_destdir(CONFIG["vendorlibdir"]) ++vendorarchlibdir = with_destdir(CONFIG["vendorarchdir"]) + mandir = with_destdir(File.join(CONFIG["mandir"], "man")) + configure_args = Shellwords.shellwords(CONFIG["configure_args"]) + enable_shared = CONFIG["ENABLE_SHARED"] == 'yes' +@@ -106,7 +108,7 @@ + lib = CONFIG["LIBRUBY"] + arc = CONFIG["LIBRUBY_A"] + +-makedirs [bindir, libdir, rubylibdir, archlibdir, sitelibdir, sitearchlibdir] ++makedirs [bindir, libdir, rubylibdir, archlibdir, sitelibdir, sitearchlibdir, vendorlibdir, vendorarchlibdir] + + install?(:bin) do + ruby_bin = File.join(bindir, ruby_install_name) +Index: Makefile.in +=================================================================== +--- Makefile.in.orig ++++ Makefile.in +@@ -23,6 +23,8 @@ + arch = @arch@ + sitearch = @sitearch@ + sitedir = @sitedir@ ++vendorarch = @vendorarch@ ++vendordir = @vendordir@ + + TESTUI = console + TESTS = +Index: mkconfig.rb +=================================================================== +--- mkconfig.rb.orig ++++ mkconfig.rb +@@ -112,6 +112,14 @@ + CONFIG["archdir"] = "$(rubylibdir)/$(arch)" + CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)" + CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)" ++ CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)" ++ CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(vendorarch)" ++ if defined?(VENDOR_SPECIFIC) && VENDOR_SPECIFIC ++ CONFIG["sitearch"] = CONFIG["vendorarch"] ++ CONFIG["sitedir"] = CONFIG["vendordir"] ++ CONFIG["sitelibdir"] = CONFIG["vendorlibdir"] ++ CONFIG["sitearchdir"] = CONFIG["vendorarchdir"] ++ end + CONFIG["topdir"] = File.dirname(__FILE__) + MAKEFILE_CONFIG = {} + CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup} +Index: lib/mkmf.rb +=================================================================== +--- lib/mkmf.rb.orig ++++ lib/mkmf.rb +@@ -51,6 +51,9 @@ + $sitedir = CONFIG["sitedir"] + $sitelibdir = CONFIG["sitelibdir"] + $sitearchdir = CONFIG["sitearchdir"] ++$vendordir = CONFIG["vendordir"] ++$vendorlibdir = CONFIG["vendorlibdir"] ++$vendorarchdir = CONFIG["vendorarchdir"] + + $mswin = /mswin/ =~ RUBY_PLATFORM + $bccwin = /bccwin/ =~ RUBY_PLATFORM +@@ -410,7 +413,7 @@ + + def try_func(func, libs, headers = nil, &b) + headers = cpp_include(headers) +- try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b) ++ try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b) + #{headers} + /*top*/ + int main() { return 0; } +@@ -422,6 +425,11 @@ + int main() { return 0; } + int t() { void ((*volatile p)()); p = (void ((*)()))#{func}; return 0; } + SRC ++int #{func}(); ++/*top*/ ++int main() { return 0; } ++int t() { #{func}(); return 0; } ++SRC + end + + def try_var(var, headers = nil, &b) +@@ -1080,6 +1088,7 @@ + RUBY_SO_NAME = #{CONFIG['RUBY_SO_NAME']} + arch = #{CONFIG['arch']} + sitearch = #{CONFIG['sitearch']} ++vendorarch = #{CONFIG['vendorarch']} + ruby_version = #{Config::CONFIG['ruby_version']} + ruby = #{$ruby} + RUBY = $(ruby#{sep}) +@@ -1400,7 +1409,7 @@ + $CFLAGS = with_config("cflags", arg_config("CFLAGS", config["CFLAGS"])).dup + $ARCH_FLAG = with_config("arch_flag", arg_config("ARCH_FLAG", config["ARCH_FLAG"])).dup + $CPPFLAGS = with_config("cppflags", arg_config("CPPFLAGS", config["CPPFLAGS"])).dup +- $LDFLAGS = (with_config("ldflags") || "").dup ++ $LDFLAGS = with_config("ldflags", arg_config("LDFLAGS", config["LDFLAGS"])).dup + $INCFLAGS = "-I$(topdir) -I$(hdrdir) -I$(srcdir)" + $DLDFLAGS = with_config("dldflags", arg_config("DLDFLAGS", config["DLDFLAGS"])).dup + $LIBEXT = config['LIBEXT'].dup +Index: ruby.c +=================================================================== +--- ruby.c.orig ++++ ruby.c +@@ -298,6 +298,13 @@ + ruby_incpush(RUBY_RELATIVE(RUBY_SITE_ARCHLIB)); + ruby_incpush(RUBY_RELATIVE(RUBY_SITE_LIB)); + ++ ruby_incpush(RUBY_RELATIVE(RUBY_VENDOR_LIB2)); ++#ifdef RUBY_VENDOR_THIN_ARCHLIB ++ ruby_incpush(RUBY_RELATIVE(RUBY_VENDOR_THIN_ARCHLIB)); ++#endif ++ ruby_incpush(RUBY_RELATIVE(RUBY_VENDOR_ARCHLIB)); ++ ruby_incpush(RUBY_RELATIVE(RUBY_VENDOR_LIB)); ++ + ruby_incpush(RUBY_RELATIVE(RUBY_LIB)); + #ifdef RUBY_THIN_ARCHLIB + ruby_incpush(RUBY_RELATIVE(RUBY_THIN_ARCHLIB)); diff --git a/ruby-1.8.5.tar.bz2 b/ruby-1.8.5.tar.bz2 new file mode 100644 index 0000000..fc3e21d --- /dev/null +++ b/ruby-1.8.5.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8ed3157a1387ced7b7d3a88318ee7b38498075e443677406dbfadcc810d844f +size 3851318 diff --git a/ruby-1.8.5_linkerflags.patch b/ruby-1.8.5_linkerflags.patch new file mode 100644 index 0000000..a0fa07d --- /dev/null +++ b/ruby-1.8.5_linkerflags.patch @@ -0,0 +1,16 @@ +Index: configure.in +=================================================================== +--- configure.in.orig ++++ configure.in +@@ -1339,9 +1339,9 @@ + fi + if test "$enable_rpath" = yes; then + if test "$GCC" = yes; then +- LIBRUBYARG_SHARED='-Wl,-R -Wl,$(libdir) -L$(libdir) -L. '"$LIBRUBYARG_SHARED" ++ LIBRUBYARG_SHARED='-Wl,-R -Wl,$(libdir) -L$(libdir) '"$LIBRUBYARG_SHARED" + else +- LIBRUBYARG_SHARED='-R $(libdir) -L$(libdir) -L. '"$LIBRUBYARG_SHARED" ++ LIBRUBYARG_SHARED='-R $(libdir) -L$(libdir) '"$LIBRUBYARG_SHARED" + fi + fi + diff --git a/ruby-doc-bundle.tar.bz2 b/ruby-doc-bundle.tar.bz2 new file mode 100644 index 0000000..556ac39 --- /dev/null +++ b/ruby-doc-bundle.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f81e90bea97aa533b8eb6e2776149e5afe1e0a2978cc030cd4a21b347afb22b +size 769451 diff --git a/ruby-fix-autoconf-magic-code.patch b/ruby-fix-autoconf-magic-code.patch new file mode 100644 index 0000000..db6a96c --- /dev/null +++ b/ruby-fix-autoconf-magic-code.patch @@ -0,0 +1,11 @@ +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-socket_ipv6.patch b/ruby-socket_ipv6.patch new file mode 100644 index 0000000..6a9ab10 --- /dev/null +++ b/ruby-socket_ipv6.patch @@ -0,0 +1,20 @@ +Index: ext/socket/extconf.rb +=================================================================== +--- ext/socket/extconf.rb.orig ++++ ext/socket/extconf.rb +@@ -36,6 +36,7 @@ + if checking_for("ipv6") {try_link(< + #include ++int + main() + { + socket(AF_INET6, SOCK_STREAM, 0); +@@ -157,6 +158,7 @@ + #define AF_LOCAL AF_UNIX + #endif + ++int + main() + { + int passive, gaierr, inet4 = 0, inet6 = 0; diff --git a/ruby.changes b/ruby.changes new file mode 100644 index 0000000..a1cc794 --- /dev/null +++ b/ruby.changes @@ -0,0 +1,381 @@ +------------------------------------------------------------------- +Mon Oct 30 18:37:50 CET 2006 - mrueckert@suse.de + +- added cgi_multipart_eof_fix.patch: + fix for a denial of service condition in cgi.rb CVE-2006-5467 + (#214916) + +------------------------------------------------------------------- +Fri Oct 20 03:30:01 CEST 2006 - mrueckert@suse.de + +- run ldconfig +- add site_ruby and vendor_ruby arch directories to the filelist + +------------------------------------------------------------------- +Wed Sep 27 17:15:12 CEST 2006 - mrueckert@suse.de + +- added ruby-1.8.5-vendor_ruby.patch, site-specific.rb, vendor-specific.rb: + add vendor_ruby support. This is a small change for packager. + you can now run 'ruby -rvendor-specific extconf.rb' (or setup.rb) + and it will be automatically installed in + %{_libdir}/ruby/vendor_ruby. + +------------------------------------------------------------------- +Sat Aug 26 04:23:28 CEST 2006 - mrueckert@suse.de + +- Update to version 1.8.5: + o Non-blocking IO + | - Several methods backported from HEAD have been added: + | - BasicSocket?#recv_nonblock + | - IO#read_nonblock + | - IO#write_nonblock + | - Socket#accept_nonblock + | - Socket#connect_nonblock + | - Socket#recvfrom_nonblock + | - TCPServer#accept_nonblock + | - UDPSocket#recvfrom_nonblock + | - UNIXServer#accept_nonblock + | (see ruby-core:7917, ruby-core:7925). + | + o Process.getrlimit/setrlimit See ruby-dev:28729. + | + o Changes in rdoc/ri + | - lots of documentation added + | - RubyGems support: ri will search gem installation dirs for + | additional documentation + | - new options to limit the search path + | + o RSS + | - added RSS::RootElementMixin?#to_xml (ruby-talk:197284), which + | can be used to convert feeds to a different RSS version as + | follows: + | [[[ + | rss10 = RSS::Parser.parse(File.read("1.0.rdf")) + | File.open("2.0.rss", "w") {|f| f.print(rss10.to_xml("2.0"))} + | ]]] + | - Support for taxonomies added to the RSS parser and generator. + | - A number of convenience methods added + | - New style API for RSS generation ruby-talk:197284 + | [[[ + | The recommended style is nowxxx.new_yyy do |yyy| + | yyy.zzz = zzz + | ... + | end + | + | + | This corresponds to the following in pre-1.8.5: + | yyy = xxx.new_yyy + | yyy.zzz = zzz + | ]]] + o Misc + | - added Kernel.Pathname(path) + | - added Kernel#pretty_inspect + | - changes in the GC subsystem that result in better performance + | in some cases + | - added OptionParser?#getopts + | - the per-object overhead went down to 20 bytes on win32 + | (from 24) ruby-core:7474 + o What breaks (!!!) + | - Binding.of_caller, and therefore breakpoint (including Rails') + | - several problems in ri reported: the documentation for some + | methods seems to have disappeared, and several methods that + | should not be documented appear in the indices; + | see ruby-core:08709 + +- removed patches, which are included in 1.8.5: + ruby-1.8.4-fix-insecure-dir-operation.patch + ruby-1.8.4-fix-insecure-regexp-modification.patch + ruby-1.8.4-fix-alias-safe-level.patch +- updated ruby-1.8.4_linkerflags.patch. + new name ruby-1.8.5_linkerflags.patch + +------------------------------------------------------------------- +Mon Jul 31 15:59:55 CEST 2006 - mrueckert@suse.de + +- added ruby-fix-autoconf-magic-code.patch: + Fix for the latest changes in the autoconf code. + +------------------------------------------------------------------- +Mon Jul 31 15:43:29 CEST 2006 - mrueckert@suse.de + +- security fixes [CVE-2006-3694] [#193661] + * added ruby-1.8.4-fix-insecure-dir-operation.patch & + ruby-1.8.4-fix-insecure-regexp-modification.patch: + fix the insecure operations in the certain safe-level + restrictions. + * ruby-1.8.4-fix-alias-safe-level.patch: preserve safe level + restrictions when aliasing a function. + +------------------------------------------------------------------- +Mon Apr 10 18:19:13 CEST 2006 - mrueckert@suse.de + +- build with -fno-strict-aliasing +- enable more tests on ppc +- disable drb tests + +------------------------------------------------------------------- +Mon Apr 3 16:53:27 CEST 2006 - mrueckert@suse.de + +- reworked the ruby-1.8.4-no-eaccess.diff patch + it broke when build on old distros + +------------------------------------------------------------------- +Thu Jan 26 14:23:55 CET 2006 - mrueckert@suse.de + +- added upstream patch for eaccess +- disabled openssl tests on pcc + +------------------------------------------------------------------- +Wed Jan 25 21:43:32 CET 2006 - mrueckert@suse.de + +- added ruby-1.8.4_linkerflags.patch + patch removes -L. from the linker flags. + it seems libtool otherwise expands it to -L$PWD. + this leads to trouble with our build system. + +------------------------------------------------------------------- +Wed Jan 25 21:41:14 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sun Jan 15 23:07:15 CET 2006 - kukuk@suse.de + +- Use eaccess() from glibc [#143291] + +------------------------------------------------------------------- +Sun Jan 15 13:43:18 CET 2006 - mrueckert@suse.de + +- disabled the big test suite as we trigger + a weird bug in the openssl bindings on ppc64 + +------------------------------------------------------------------- +Sat Dec 24 19:56:48 CET 2005 - mrueckert@suse.de + +- Update to 1.8.4 +- dont run with --default-kcode=utf8 + triggers a bug in the test suite + +------------------------------------------------------------------- +Fri Sep 23 00:28:37 CEST 2005 - mrueckert@suse.de + +- update to 1.8.3 +- updated patches for 1.8.3 +- ruby-doc tarball now included as tar.bz2 + +------------------------------------------------------------------- +Mon Sep 12 14:26:36 CEST 2005 - mrueckert@suse.de + +- fix path of the RI documentation [Bug #116408] + +------------------------------------------------------------------- +Thu Sep 8 16:05:04 CEST 2005 - mrueckert@suse.de + +- dont make the irb man page executable. [Bug #114849] + +------------------------------------------------------------------- +Tue Aug 23 10:47:04 CEST 2005 - mrueckert@suse.de + +- added directory entries for the site ruby dirs + +------------------------------------------------------------------- +Mon Aug 22 13:20:53 CEST 2005 - mrueckert@suse.de + +- disabled mkmf patch for now. it breaks building the socket + extension. + +------------------------------------------------------------------- +Sun Aug 21 19:11:41 CEST 2005 - ro@suse.de + +- added directories to filelist +- fix typo in filelist + +------------------------------------------------------------------- +Fri Aug 19 17:52:56 CEST 2005 - mrueckert@suse.de + +- Build RI and html documentation. Added subpackages for them. +- moved samples into a sub packages. +- build tcl/tk bindings and move them into their own package. + (ruby-1.8.2-tcltk-multilib.patch) +- disabled optimization on ia64/x86_x64. needs investigation. +- fixed parameter swap in memset call + (ruby-1.8.2-strscan-memset.patch) +- let mkmf create shared libraries (ruby-mkmf-shared.patch) +- splitted of devel files + +------------------------------------------------------------------- +Tue Jul 19 15:49:46 CEST 2005 - mge@suse.de + +- make "make test" run also on x86_64 by disabling + code optimization (-O0), as it is for ia64 +- enable "make test" for ppc64 again + +------------------------------------------------------------------- +Tue Jul 19 07:42:02 CEST 2005 - mge@suse.de + +- Fixes #95366, CAN-2005-1992: + arbitrary command execution on XMLRPC server + +------------------------------------------------------------------- +Wed Jun 1 17:42:21 CEST 2005 - ro@suse.de + +- update to 1.8.2 + +------------------------------------------------------------------- +Mon Jan 3 11:42:28 CET 2005 - mge@suse.de + +- added fixes for lib/cgi.rb and lib/cgi/session.rb + from ruby-1.8.2, fixes: #47886 (CAN-2004-0983) + +------------------------------------------------------------------- +Thu Nov 18 02:01:24 CET 2004 - ro@suse.de + +- fixed file list + +------------------------------------------------------------------- +Sat Sep 25 11:38:02 CEST 2004 - ro@suse.de + +- added cgi_session.diff (from debian, CAN-2004-0755) + +------------------------------------------------------------------- +Mon Jul 26 01:29:37 CEST 2004 - ro@suse.de + +- fix typo in specfile + +------------------------------------------------------------------- +Sun Jun 20 20:18:15 CEST 2004 - ro@suse.de + +- fix find in specfile + +------------------------------------------------------------------- +Thu Apr 29 01:32:40 CEST 2004 - ro@suse.de + +- added missing return value (unreached code) + +------------------------------------------------------------------- +Tue Mar 23 14:59:25 CET 2004 - mge@suse.de + +- make ruby build on ia64 and ppc64 + +------------------------------------------------------------------- +Sat Feb 28 17:16:10 CET 2004 - ro@suse.de + +- fix makefile rule for regenerating lex.c + +------------------------------------------------------------------- +Sat Feb 28 12:05:46 CET 2004 - ro@suse.de + +- add gperf to neededforbuild + +------------------------------------------------------------------- +Sat Feb 28 01:07:47 CET 2004 - ro@suse.de + +- fix requirement for /usr/local/bin +- use no-strict-aliasing + +------------------------------------------------------------------- +Mon Feb 2 12:37:24 CET 2004 - mge@suse.de + +- update to 1.8.1 + also fixes Bug #34226: Readline support missing from ruby + +------------------------------------------------------------------- +Sat Jan 10 22:03:01 CET 2004 - adrian@suse.de + +- add %defattr + +------------------------------------------------------------------- +Mon Aug 4 11:53:49 CEST 2003 - mge@suse.de + +- update tp 1.8.0 + +------------------------------------------------------------------- +Mon Jan 6 04:07:50 CET 2003 - mge@suse.de + +- update to 1.6.8 + +------------------------------------------------------------------- +Tue May 21 14:03:25 CEST 2002 - meissner@suse.de + +- More %_lib fixes inside package. + +------------------------------------------------------------------- +Tue May 21 11:38:41 CEST 2002 - meissner@suse.de + +- %_lib fixes +- Added prototype for rb_node_newnode. + +------------------------------------------------------------------- +Fri May 17 12:32:52 CEST 2002 - mge@suse.de + +- update to 1.6.7 + +------------------------------------------------------------------- +Mon Apr 15 01:44:30 CEST 2002 - bk@suse.de + +- lib64 and new arch fixes: suse_update_config and use %_libdir + +------------------------------------------------------------------- +Fri Apr 5 13:29:02 CEST 2002 - schwab@suse.de + +- Remove ia64 workaround. + +------------------------------------------------------------------- +Tue Aug 21 03:14:46 MEST 2001 - mge@suse.de + +- update to 1.6.4 + +------------------------------------------------------------------- +Sun May 20 21:37:19 MEST 2001 - mge@suse.de + +- changes _only_ to spec-file: +- make ruby shared libs built +- cleanup ruby directory structure (drop /usr/share/lib/ruby/) + +------------------------------------------------------------------- +Wed May 9 21:53:32 CEST 2001 - mfabian@suse.de + +- bzip2 sources + +------------------------------------------------------------------- +Thu Mar 22 01:49:00 MET 2001 - mge@suse.de + +- update to 1.6.3, merge of rread's SPEC patches + +------------------------------------------------------------------- +Mon Mar 19 16:04:24 CET 2001 - schwab@suse.de + +- Don't use __builtin_frame_address(2) on ia64. +- Compile with -O0 on ia64 to work around compiler bug. + +------------------------------------------------------------------- +Mon Mar 05 00:00:00 CET 2001 - rread@mountainviewdata.com + +- introduced build-root + +------------------------------------------------------------------- +Fri Feb 23 00:10:25 CET 2001 - ro@suse.de + +- added readline/readline-devel to neededforbuild (split from bash) + +------------------------------------------------------------------- +Fri Jan 12 18:22:32 MET 2001 - mge@suse.de + +- update to 1.6.2 + +------------------------------------------------------------------- +Wed Dec 13 13:21:15 CET 2000 - schwab@suse.de + +- Add %suse_update_config. +- Fix computation of stack limit. + +------------------------------------------------------------------- +Mon Dec 4 23:28:15 MET 2000 - mge@suse.de + +- update to 1.6.1, manual 1.4.6 + +------------------------------------------------------------------- +Thu Jul 6 13:30:35 MEST 2000 - mge@suse.de + +- initial SuSE RPM + diff --git a/ruby.spec b/ruby.spec new file mode 100644 index 0000000..e409dfe --- /dev/null +++ b/ruby.spec @@ -0,0 +1,683 @@ +# +# spec file for package ruby (Version 1.8.5) +# +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: ruby +Version: 1.8.5 +Release: 8 +%define rb_ver %(echo %{version} | sed -e 's/\\\.[0-9]\\\+$//') +# +License: GNU General Public License (GPL) - all versions, Other License(s), see package +Group: Development/Languages/Ruby +# +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: gperf graphviz libjpeg-devel openssl-devel readline-devel tk-devel +%if 0%{?suse_version} < 930 +BuildRequires: XFree86-devel XFree86-fonts-scalable +%else +BuildRequires: xorg-x11-devel xorg-x11-fonts-scalable +%endif +Provides: /usr/bin/ruby +# +URL: http://www.ruby-lang.org/ +Source0: ruby-%{version}.tar.bz2 +Source1: irb.1 +Source2: ruby-doc-bundle.tar.bz2 +Patch0: ruby-1.8.2-gc.diff +Patch1: ruby-1.8.1-lib64.diff +Patch2: ruby-1.8.4-no-eaccess.diff +Patch4: ruby-1.8.2-tcltk-multilib.patch +Patch7: ruby-socket_ipv6.patch +Patch8: ruby-1.8.4-warnings.patch +Patch9: ruby-1.8.5_linkerflags.patch +Patch10: ruby-1.8.4-fix-insecure-dir-operation.patch +Patch11: ruby-1.8.4-fix-insecure-regexp-modification.patch +Patch12: ruby-1.8.4-fix-alias-safe-level.patch +Patch13: ruby-fix-autoconf-magic-code.patch +Patch15: cgi_multipart_eof_fix.patch +# vendor ruby files taken from: +# http://svn.macports.org/repository/macports/trunk/dports/lang/ruby/ +Patch14: ruby-1.8.5-vendor_ruby.patch +Source3: site-specific.rb +Source4: vendor-specific.rb +# +Summary: An Interpreted Object-Oriented Scripting Language + +%description +Ruby is an interpreted scripting language for quick and easy +object-oriented programming. It has many features for processing text +files and performing system management tasks (as in Perl). It is +simple, straight-forward, and extensible. + +* Ruby features: + +- Simple Syntax + +- *Normal* Object-Oriented features (class, method calls, for + example) + +- *Advanced* Object-Oriented features(Mix-in, Singleton-method, for + example) + +- Operator Overloading + +- Exception Handling + +- Iterators and Closures + +- Garbage Collection + +- Dynamic Loading of Object Files (on some architectures) + +- Highly Portable (works on many UNIX machines; DOS, Windows, Mac, +BeOS, and more) + + + +Authors: +-------- + Yukihiro Matsumoto + +%package devel +Group: Development/Languages/Ruby +Summary: Development files to link against Ruby. +Requires: %{name} = %{version} + +%description devel +Development files to link against Ruby. + + + +Authors: +-------- + Yukihiro Matsumoto + +%package tk +Group: Development/Languages/Ruby +Summary: TCL/TK bindings for Ruby +Requires: %{name} = %{version} + +%description tk +TCL/TK bindings for Ruby + + + +Authors: +-------- + Yukihiro Matsumoto + +%package doc-ri +Group: Development/Languages/Ruby +Summary: Ruby Interactive Documentation +Requires: %{name} = %{version} + +%description doc-ri +This package contains the RI docs for ruby + + + +Authors: +-------- + Yukihiro Matsumoto + +%package doc-html +Group: Development/Languages/Ruby +Summary: This package contains the HTML docs for ruby + +%description doc-html +This package contains the HTML docs for ruby + + + +Authors: +-------- + Yukihiro Matsumoto + +%package examples +Group: Development/Languages/Ruby +Summary: Example scripts for ruby +Requires: %{name} = %{version} + +%description examples +Example scripts for ruby + + + +Authors: +-------- + Yukihiro Matsumoto + +%package test-suite +Group: Development/Languages/Ruby +Summary: An Interpreted Object-Oriented Scripting Language + +%description test-suite +Ruby is an interpreted scripting language for quick and easy +object-oriented programming. It has many features for processing text +files and performing system management tasks (as in Perl). It is +simple, straight-forward, and extensible. + +* Ruby features: + +- Simple Syntax + +- *Normal* Object-Oriented features (class, method calls, for + example) + +- *Advanced* Object-Oriented features(Mix-in, Singleton-method, for + example) + +- Operator Overloading + +- Exception Handling + +- Iterators and Closures + +- Garbage Collection + +- Dynamic Loading of Object Files (on some architectures) + +- Highly Portable (works on many UNIX machines; DOS, Windows, Mac, +BeOS, and more) + + + +Authors: +-------- + Yukihiro Matsumoto + +%prep +%setup -q -a2 +%patch0 +%patch1 +#%patch2 +%patch4 +%patch7 +#%patch8 +%patch9 +#%patch10 -p1 +#%patch11 -p1 +#%patch12 -p1 +#%patch13 -p1 +%patch14 +%patch15 +find . -type f | xargs -n 1 sed -i "s@#!\s*/usr/local/bin/ruby@#!/usr/bin/ruby@" +touch parse.y + +%build +autoreconf -fi +export CFLAGS="%{optflags} -g -fno-strict-aliasing" +%configure \ + --with-default-kcode=none \ + --with-mantype=man \ + --enable-shared \ + --enable-static +%{__make} all +%{__make} -C ext/tk/ all +# +# move the tests out of the way that require an installed ruby +# we dont have that in our build environment. +# +%{__mkdir} unused.test +%{__mv} test/{drb,soap,webrick} unused.test/ +%ifarch ppc64 s390x +%{__mv} test/openssl/ unused.test/ +%endif +# +# -> LD_LIBRARY_PATH => we need to find libruby.so.%{rb_ver} +# the test suite uses LD_PRELOAD=./libruby.so.%{rb_ver} +# -> RUBYLIB => find needed modules during documentation generation +# +export LD_LIBRARY_PATH="$PWD/" +export RUBYLIB="$PWD:$PWD/lib:$(find $PWD/.ext $PWD/ext/ -type d |tr '\n' ':')." +# +# run the test suites +# +#%{__make} check +# +# TODO: +# the big test suite fails with some weird openssl errors on ppc +# to be reinvestigated +# +# %{__make} check +# +# restore the tests +# +%{__mv} unused.test/{drb,soap,webrick} test/ +%ifarch ppc64 s390x +%{__mv} unused.test/openssl/ test/ +%endif +# +# TODO: patch the .document files to include all needed modules. +# +./ruby bin/rdoc \ + --all --line-numbers --ri-system \ + --op=ri/%{rb_ver}/system . +./ruby bin/rdoc \ + --all --line-numbers --charset=UTF-8 \ + --fmt=html -p --inline-source \ + --op=rdoc/html . + +%install +%makeinstall +%makeinstall -C ext/tk/ +%{__install} -d -m 0755 \ + %{buildroot}%{_docdir}/%{name}{,-test-suite} \ + %{buildroot}%{_datadir}/emacs/site-lisp \ + %{buildroot}%{_datadir}/ri/%{rb_ver}/system/ \ + %{buildroot}%{_libdir}/%{name}/vendor_%{name}/%{rb_ver} +# +%{__install} -m 0644 misc/*.el %{buildroot}%{_datadir}/emacs/site-lisp/ +%{__install} -m 0644 %{S:1} %{buildroot}%{_mandir}/man1/irb.1 +# +%{__install} -m 0644 %{S:3} %{buildroot}%{_libdir}/%{name}/site_%{name}/%{rb_ver} +%{__install} -m 0644 %{S:4} %{buildroot}%{_libdir}/%{name}/vendor_%{name}/%{rb_ver} +# +%{__cp} -rv \ + ri/%{rb_ver}/system/* %{buildroot}%{_datadir}/ +mv %{buildroot}%{_datadir}{,/ri/%{rb_ver}}/created.rid +%{__cp} -rv \ + COPYING COPYING.ja ChangeLog GPL LEGAL \ + LGPL README README.EXT README.EXT.ja \ + README.ja ToDo doc/NEWS \ + %{buildroot}%{_docdir}/%{name} +%{__cp} -rv \ + ruby-doc-bundle %{buildroot}%{_docdir}/%{name} +%{__cp} -rv \ + rdoc/html %{buildroot}%{_docdir}/%{name}/ruby-library-docs +%{__cp} -rv \ + sample %{buildroot}%{_docdir}/%{name}/examples +%{__cp} -r test/ runruby.rb %{buildroot}%{_docdir}/%{name}-test-suite/ +%{__ln_s} -f %{_bindir}/%{name} %{buildroot}%{_docdir}/%{name}-test-suite/%{name} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_bindir}/* +%dir %{_libdir}/%{name} +%dir %{_libdir}/%{name}/%{rb_ver} +%{_libdir}/lib%{name}.so.%{rb_ver}* +%{_datadir}/emacs/site-lisp/* +%{_mandir}/man1/* +%dir %{_libdir}/%{name}/site_%{name} +%dir %{_libdir}/%{name}/site_%{name}/%{rb_ver} +%dir %{_libdir}/%{name}/site_%{name}/%{rb_ver}/%{rb_arch} +%dir %{_libdir}/%{name}/vendor_%{name} +%dir %{_libdir}/%{name}/vendor_%{name}/%{rb_ver} +%dir %{_libdir}/%{name}/vendor_%{name}/%{rb_ver}/%{rb_arch} +%{_libdir}/%{name}/site_%{name}/%{rb_ver}/site-specific.rb +%{_libdir}/%{name}/vendor_%{name}/%{rb_ver}/vendor-specific.rb +%{_libdir}/%{name}/%{rb_ver}/English.rb +%{_libdir}/%{name}/%{rb_ver}/Env.rb +%{_libdir}/%{name}/%{rb_ver}/abbrev.rb +%{_libdir}/%{name}/%{rb_ver}/base64.rb +%{_libdir}/%{name}/%{rb_ver}/benchmark.rb +%{_libdir}/%{name}/%{rb_ver}/cgi* +%{_libdir}/%{name}/%{rb_ver}/complex.rb +%{_libdir}/%{name}/%{rb_ver}/csv.rb +%{_libdir}/%{name}/%{rb_ver}/date.rb +%dir %{_libdir}/%{name}/%{rb_ver}/date +%{_libdir}/%{name}/%{rb_ver}/date/format.rb +%{_libdir}/%{name}/%{rb_ver}/date2.rb +%{_libdir}/%{name}/%{rb_ver}/debug.rb +%{_libdir}/%{name}/%{rb_ver}/delegate.rb +%{_libdir}/%{name}/%{rb_ver}/bigdecimal/ +%{_libdir}/%{name}/%{rb_ver}/dl/ +%{_libdir}/%{name}/%{rb_ver}/drb* +%{_libdir}/%{name}/%{rb_ver}/e2mmap.rb +%{_libdir}/%{name}/%{rb_ver}/erb.rb +%{_libdir}/%{name}/%{rb_ver}/eregex.rb +%{_libdir}/%{name}/%{rb_ver}/expect.rb +%{_libdir}/%{name}/%{rb_ver}/fileutils.rb +%{_libdir}/%{name}/%{rb_ver}/finalize.rb +%{_libdir}/%{name}/%{rb_ver}/find.rb +%{_libdir}/%{name}/%{rb_ver}/forwardable.rb +%{_libdir}/%{name}/%{rb_ver}/ftools.rb +%{_libdir}/%{name}/%{rb_ver}/generator.rb +%{_libdir}/%{name}/%{rb_ver}/getoptlong.rb +%{_libdir}/%{name}/%{rb_ver}/getopts.rb +%{_libdir}/%{name}/%{rb_ver}/gserver.rb +%{_libdir}/%{name}/%{rb_ver}/importenv.rb +%{_libdir}/%{name}/%{rb_ver}/io/ +%{_libdir}/%{name}/%{rb_ver}/ipaddr.rb +%{_libdir}/%{name}/%{rb_ver}/irb* +%{_libdir}/%{name}/%{rb_ver}/jcode.rb +%{_libdir}/%{name}/%{rb_ver}/kconv.rb +%{_libdir}/%{name}/%{rb_ver}/logger.rb +%{_libdir}/%{name}/%{rb_ver}/mailread.rb +%{_libdir}/%{name}/%{rb_ver}/mathn.rb +%{_libdir}/%{name}/%{rb_ver}/matrix.rb +%{_libdir}/%{name}/%{rb_ver}/md5.rb +%{_libdir}/%{name}/%{rb_ver}/mkmf.rb +%{_libdir}/%{name}/%{rb_ver}/monitor.rb +%{_libdir}/%{name}/%{rb_ver}/mutex_m.rb +%{_libdir}/%{name}/%{rb_ver}/net/ +%{_libdir}/%{name}/%{rb_ver}/observer.rb +%{_libdir}/%{name}/%{rb_ver}/open-uri.rb +%{_libdir}/%{name}/%{rb_ver}/open3.rb +%{_libdir}/%{name}/%{rb_ver}/openssl* +%{_libdir}/%{name}/%{rb_ver}/optparse* +%{_libdir}/%{name}/%{rb_ver}/ostruct.rb +%{_libdir}/%{name}/%{rb_ver}/parsearg.rb +%{_libdir}/%{name}/%{rb_ver}/parsedate.rb +%{_libdir}/%{name}/%{rb_ver}/pathname.rb +%{_libdir}/%{name}/%{rb_ver}/ping.rb +%{_libdir}/%{name}/%{rb_ver}/pp.rb +%{_libdir}/%{name}/%{rb_ver}/prettyprint.rb +%{_libdir}/%{name}/%{rb_ver}/profile.rb +%{_libdir}/%{name}/%{rb_ver}/profiler.rb +%{_libdir}/%{name}/%{rb_ver}/pstore.rb +%dir %{_libdir}/%{name}/%{rb_ver}/racc +%{_libdir}/%{name}/%{rb_ver}/racc/parser.rb +%{_libdir}/%{name}/%{rb_ver}/rational.rb +%{_libdir}/%{name}/%{rb_ver}/rdoc/ +%{_libdir}/%{name}/%{rb_ver}/readbytes.rb +%{_libdir}/%{name}/%{rb_ver}/resolv-replace.rb +%{_libdir}/%{name}/%{rb_ver}/resolv.rb +%{_libdir}/%{name}/%{rb_ver}/rexml/ +%{_libdir}/%{name}/%{rb_ver}/rinda/ +%{_libdir}/%{name}/%{rb_ver}/rss* +%{_libdir}/%{name}/%{rb_ver}/rubyunit.rb +%{_libdir}/%{name}/%{rb_ver}/runit/ +%{_libdir}/%{name}/%{rb_ver}/scanf.rb +%{_libdir}/%{name}/%{rb_ver}/set.rb +%{_libdir}/%{name}/%{rb_ver}/sha1.rb +%{_libdir}/%{name}/%{rb_ver}/shell* +%{_libdir}/%{name}/%{rb_ver}/singleton.rb +%{_libdir}/%{name}/%{rb_ver}/soap/ +%{_libdir}/%{name}/%{rb_ver}/sync.rb +%{_libdir}/%{name}/%{rb_ver}/tempfile.rb +%{_libdir}/%{name}/%{rb_ver}/test/ +%{_libdir}/%{name}/%{rb_ver}/thread.rb +%{_libdir}/%{name}/%{rb_ver}/thwait.rb +%{_libdir}/%{name}/%{rb_ver}/time.rb +%{_libdir}/%{name}/%{rb_ver}/timeout.rb +%{_libdir}/%{name}/%{rb_ver}/tmpdir.rb +%{_libdir}/%{name}/%{rb_ver}/tracer.rb +%{_libdir}/%{name}/%{rb_ver}/tsort.rb +%{_libdir}/%{name}/%{rb_ver}/un.rb +%{_libdir}/%{name}/%{rb_ver}/uri* +%{_libdir}/%{name}/%{rb_ver}/weakref.rb +%{_libdir}/%{name}/%{rb_ver}/webrick* +%{_libdir}/%{name}/%{rb_ver}/wsdl/ +%{_libdir}/%{name}/%{rb_ver}/xmlrpc/ +%{_libdir}/%{name}/%{rb_ver}/xsd/ +%{_libdir}/%{name}/%{rb_ver}/yaml* +%dir %{_libdir}/%{name}/%{rb_ver}/%{rb_arch} +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/rbconfig.rb +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/[a-sA-s]*.so +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/[u-zU-Z]*.so +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/digest/ +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/io/ +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/racc/ +%dir %{_docdir}/%{name} +%doc %{_docdir}/%{name}/COPYING* +%doc %{_docdir}/%{name}/ChangeLog +%doc %{_docdir}/%{name}/LEGAL +%doc %{_docdir}/%{name}/*GPL +%doc %{_docdir}/%{name}/NEWS +%doc %{_docdir}/%{name}/README* +%doc %{_docdir}/%{name}/ToDo + +%files devel +%defattr(-,root,root) +%{_libdir}/lib%{name}.so +%{_libdir}/lib%{name}-static.a +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/*.h + +%files test-suite +%defattr(-,root,root) +%{_docdir}/%{name}-test-suite + +%files tk +%defattr(-,root,root) +%{_libdir}/%{name}/%{rb_ver}/tcltk.rb +%{_libdir}/%{name}/%{rb_ver}/tk* +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/tcltklib.so +%{_libdir}/%{name}/%{rb_ver}/%{rb_arch}/tkutil.so +%{_libdir}/%{name}/%{rb_ver}/remote-tk.rb +%{_libdir}/%{name}/%{rb_ver}/multi-tk.rb + +%files doc-html +%defattr(-,root,root) +%doc %{_docdir}/%{name}/ruby-library-docs +%doc %{_docdir}/%{name}/ruby-doc-bundle + +%files doc-ri +%defattr(-,root,root) +%doc %{_datadir}/ri + +%files examples +%defattr(-,root,root) +%doc %{_docdir}/%{name}/examples + +%changelog -n ruby +* Mon Oct 30 2006 - mrueckert@suse.de +- added cgi_multipart_eof_fix.patch: + fix for a denial of service condition in cgi.rb CVE-2006-5467 + (#214916) +* Fri Oct 20 2006 - mrueckert@suse.de +- run ldconfig +- add site_ruby and vendor_ruby arch directories to the filelist +* Wed Sep 27 2006 - mrueckert@suse.de +- added ruby-1.8.5-vendor_ruby.patch, site-specific.rb, vendor-specific.rb: + add vendor_ruby support. This is a small change for packager. + you can now run 'ruby -rvendor-specific extconf.rb' (or setup.rb) + and it will be automatically installed in + %%{_libdir}/ruby/vendor_ruby. +* Sat Aug 26 2006 - mrueckert@suse.de +- Update to version 1.8.5: + o Non-blocking IO + | - Several methods backported from HEAD have been added: + | - BasicSocket?#recv_nonblock + | - IO#read_nonblock + | - IO#write_nonblock + | - Socket#accept_nonblock + | - Socket#connect_nonblock + | - Socket#recvfrom_nonblock + | - TCPServer#accept_nonblock + | - UDPSocket#recvfrom_nonblock + | - UNIXServer#accept_nonblock + | (see ruby-core:7917, ruby-core:7925). + | + o Process.getrlimit/setrlimit See ruby-dev:28729. + | + o Changes in rdoc/ri + | - lots of documentation added + | - RubyGems support: ri will search gem installation dirs for + | additional documentation + | - new options to limit the search path + | + o RSS + | - added RSS::RootElementMixin?#to_xml (ruby-talk:197284), which + | can be used to convert feeds to a different RSS version as + | follows: + | [[[ + | rss10 = RSS::Parser.parse(File.read("1.0.rdf")) + | File.open("2.0.rss", "w") {|f| f.print(rss10.to_xml("2.0"))} + | ]]] + | - Support for taxonomies added to the RSS parser and generator. + | - A number of convenience methods added + | - New style API for RSS generation ruby-talk:197284 + | [[[ + | The recommended style is nowxxx.new_yyy do |yyy| + | yyy.zzz = zzz + | ... + | end + | + | + | This corresponds to the following in pre-1.8.5: + | yyy = xxx.new_yyy + | yyy.zzz = zzz + | ]]] + o Misc + | - added Kernel.Pathname(path) + | - added Kernel#pretty_inspect + | - changes in the GC subsystem that result in better performance + | in some cases + | - added OptionParser?#getopts + | - the per-object overhead went down to 20 bytes on win32 + | (from 24) ruby-core:7474 + o What breaks (!!!) + | - Binding.of_caller, and therefore breakpoint (including Rails') + | - several problems in ri reported: the documentation for some + | methods seems to have disappeared, and several methods that + | should not be documented appear in the indices; + | see ruby-core:08709 +- removed patches, which are included in 1.8.5: + ruby-1.8.4-fix-insecure-dir-operation.patch + ruby-1.8.4-fix-insecure-regexp-modification.patch + ruby-1.8.4-fix-alias-safe-level.patch +- updated ruby-1.8.4_linkerflags.patch. + new name ruby-1.8.5_linkerflags.patch +* Mon Jul 31 2006 - mrueckert@suse.de +- added ruby-fix-autoconf-magic-code.patch: + Fix for the latest changes in the autoconf code. +* Mon Jul 31 2006 - mrueckert@suse.de +- security fixes [CVE-2006-3694] [#193661] + * added ruby-1.8.4-fix-insecure-dir-operation.patch & + ruby-1.8.4-fix-insecure-regexp-modification.patch: + fix the insecure operations in the certain safe-level + restrictions. + * ruby-1.8.4-fix-alias-safe-level.patch: preserve safe level + restrictions when aliasing a function. +* Mon Apr 10 2006 - mrueckert@suse.de +- build with -fno-strict-aliasing +- enable more tests on ppc +- disable drb tests +* Mon Apr 03 2006 - mrueckert@suse.de +- reworked the ruby-1.8.4-no-eaccess.diff patch + it broke when build on old distros +* Thu Jan 26 2006 - mrueckert@suse.de +- added upstream patch for eaccess +- disabled openssl tests on pcc +* Wed Jan 25 2006 - mrueckert@suse.de +- added ruby-1.8.4_linkerflags.patch + patch removes -L. from the linker flags. + it seems libtool otherwise expands it to -L$PWD. + this leads to trouble with our build system. +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Sun Jan 15 2006 - kukuk@suse.de +- Use eaccess() from glibc [#143291] +* Sun Jan 15 2006 - mrueckert@suse.de +- disabled the big test suite as we trigger + a weird bug in the openssl bindings on ppc64 +* Sat Dec 24 2005 - mrueckert@suse.de +- Update to 1.8.4 +- dont run with --default-kcode=utf8 + triggers a bug in the test suite +* Fri Sep 23 2005 - mrueckert@suse.de +- update to 1.8.3 +- updated patches for 1.8.3 +- ruby-doc tarball now included as tar.bz2 +* Mon Sep 12 2005 - mrueckert@suse.de +- fix path of the RI documentation [Bug #116408] +* Thu Sep 08 2005 - mrueckert@suse.de +- dont make the irb man page executable. [Bug #114849] +* Tue Aug 23 2005 - mrueckert@suse.de +- added directory entries for the site ruby dirs +* Mon Aug 22 2005 - mrueckert@suse.de +- disabled mkmf patch for now. it breaks building the socket + extension. +* Sun Aug 21 2005 - ro@suse.de +- added directories to filelist +- fix typo in filelist +* Fri Aug 19 2005 - mrueckert@suse.de +- Build RI and html documentation. Added subpackages for them. +- moved samples into a sub packages. +- build tcl/tk bindings and move them into their own package. + (ruby-1.8.2-tcltk-multilib.patch) +- disabled optimization on ia64/x86_x64. needs investigation. +- fixed parameter swap in memset call + (ruby-1.8.2-strscan-memset.patch) +- let mkmf create shared libraries (ruby-mkmf-shared.patch) +- splitted of devel files +* Tue Jul 19 2005 - mge@suse.de +- make "make test" run also on x86_64 by disabling + code optimization (-O0), as it is for ia64 +- enable "make test" for ppc64 again +* Tue Jul 19 2005 - mge@suse.de +- Fixes #95366, CAN-2005-1992: + arbitrary command execution on XMLRPC server +* Wed Jun 01 2005 - ro@suse.de +- update to 1.8.2 +* Mon Jan 03 2005 - mge@suse.de +- added fixes for lib/cgi.rb and lib/cgi/session.rb + from ruby-1.8.2, fixes: #47886 (CAN-2004-0983) +* Thu Nov 18 2004 - ro@suse.de +- fixed file list +* Sat Sep 25 2004 - ro@suse.de +- added cgi_session.diff (from debian, CAN-2004-0755) +* Mon Jul 26 2004 - ro@suse.de +- fix typo in specfile +* Sun Jun 20 2004 - ro@suse.de +- fix find in specfile +* Thu Apr 29 2004 - ro@suse.de +- added missing return value (unreached code) +* Tue Mar 23 2004 - mge@suse.de +- make ruby build on ia64 and ppc64 +* Sat Feb 28 2004 - ro@suse.de +- fix makefile rule for regenerating lex.c +* Sat Feb 28 2004 - ro@suse.de +- add gperf to neededforbuild +* Sat Feb 28 2004 - ro@suse.de +- fix requirement for /usr/local/bin +- use no-strict-aliasing +* Mon Feb 02 2004 - mge@suse.de +- update to 1.8.1 + also fixes Bug #34226: Readline support missing from ruby +* Sat Jan 10 2004 - adrian@suse.de +- add %%defattr +* Mon Aug 04 2003 - mge@suse.de +- update tp 1.8.0 +* Mon Jan 06 2003 - mge@suse.de +- update to 1.6.8 +* Tue May 21 2002 - meissner@suse.de +- More %%_lib fixes inside package. +* Tue May 21 2002 - meissner@suse.de +- %%_lib fixes +- Added prototype for rb_node_newnode. +* Fri May 17 2002 - mge@suse.de +- update to 1.6.7 +* Mon Apr 15 2002 - bk@suse.de +- lib64 and new arch fixes: suse_update_config and use %%_libdir +* Fri Apr 05 2002 - schwab@suse.de +- Remove ia64 workaround. +* Tue Aug 21 2001 - mge@suse.de +- update to 1.6.4 +* Sun May 20 2001 - mge@suse.de +- changes _only_ to spec-file: +- make ruby shared libs built +- cleanup ruby directory structure (drop /usr/share/lib/ruby/) +* Wed May 09 2001 - mfabian@suse.de +- bzip2 sources +* Thu Mar 22 2001 - mge@suse.de +- update to 1.6.3, merge of rread's SPEC patches +* Mon Mar 19 2001 - schwab@suse.de +- Don't use __builtin_frame_address(2) on ia64. +- Compile with -O0 on ia64 to work around compiler bug. +* Mon Mar 05 2001 - rread@mountainviewdata.com +- introduced build-root +* Fri Feb 23 2001 - ro@suse.de +- added readline/readline-devel to neededforbuild (split from bash) +* Fri Jan 12 2001 - mge@suse.de +- update to 1.6.2 +* Wed Dec 13 2000 - schwab@suse.de +- Add %%suse_update_config. +- Fix computation of stack limit. +* Mon Dec 04 2000 - mge@suse.de +- update to 1.6.1, manual 1.4.6 +* Thu Jul 06 2000 - mge@suse.de +- initial SuSE RPM diff --git a/site-specific.rb b/site-specific.rb new file mode 100644 index 0000000..43be5e3 --- /dev/null +++ b/site-specific.rb @@ -0,0 +1,14 @@ +# $Id: site-specific.rb,v 1.1 2004/04/02 04:47:43 rshaw Exp $ +# Default site_ruby install library setting for normal module +# installation. You can force site installation with the following: +# +# ruby -rsite-specific extconf.rb +# or +# ruby -rsite-specific install.rb +# +# This is not required for normal user module installation as they will +# default to site_ruby, it is only provided for consistency. Developers +# creating packages/ports should use the vendor-specific option. +# +VENDOR_SPECIFIC=false + diff --git a/vendor-specific.rb b/vendor-specific.rb new file mode 100644 index 0000000..d777fa2 --- /dev/null +++ b/vendor-specific.rb @@ -0,0 +1,14 @@ +# $Id: vendor-specific.rb,v 1.1 2004/04/02 04:47:43 rshaw Exp $ +# Custom vendor_ruby install library setting for DarwinPorts module +# installation. You can force vendor installation with the following: +# +# ruby -rvendor-specific extconf.rb +# or +# ruby -rvendor-specific install.rb +# +# This causes vendor-specific installation mode. The default without +# this is to do a site-specific installation, which is recommended for +# general user installation of modules. +# +VENDOR_SPECIFIC=true +