# # spec file for package ruby (Version 1.8.7.p249) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # norootforbuild Name: ruby Version: 1.8.7.p249 Release: 2 # %define pkg_version 1.8.7 %define patch_level p249 %define rb_arch %(echo %{_target_cpu}-linux | sed -e "s/i686/i586/" -e "s/hppa2.0/hppa/" -e "s/ppc/powerpc/") %define rb_ver %(echo %{pkg_version} | sed -e 's/\\\.[0-9]\\\+$//') # License: GPLv2+ Group: Development/Languages/Ruby # BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: bison gdbm-devel gperf graphviz libjpeg-devel openssl-devel readline-devel tk-devel #define with_bleak_house 1 %if 0%{suse_version} >= 1030 %define use_fdupes 1 %endif %if 0%{?use_fdupes} BuildRequires: fdupes %endif %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 %if 0%{?with_bleak_house} %define bleak_house_version 4.0 Provides: ruby_with_bleak_house = %{bleak_house_version}-%{release} %endif # Url: http://www.ruby-lang.org/ Source: ftp://ftp.ruby-lang.org/pub/ruby/ruby-%{pkg_version}-%{patch_level}.tar.bz2 Source1: irb.1 Source2: ruby-doc-bundle.tar.bz2 Patch1: ruby-1.8.7.p22_lib64.patch Patch2: ruby-1.8.7.p22_tcltk-multilib.patch Patch3: ruby-1.8.6.p36_socket_ipv6.patch Patch5: ruby_1.8.6.p36_date_remove_privat.patch Patch6: ruby-pedantic-headers.diff Patch7: ruby-1.8.7-p72_vendor_specific.patch Patch8: ruby-1.8.7-p72_topdir.patch # can be removed on next version update. pulled from svn Patch9: ruby-1.8.x_digest_non_void_return.patch Patch10: ruby-1.8.x_openssl-1.0.patch Patch11: ruby-1.8.x_openssl-1.0-tests.patch Patch12: ruby-1.8.x_yaml2byte.patch # vendor ruby files taken from: # http://svn.macports.org/repository/macports/trunk/dports/lang/ruby/ Source3: site-specific.rb Source4: vendor-specific.rb # Source5: ruby-rpmlintrc Source6: ruby.macros %if 0%{?with_bleak_house} #Source6: bleak_house-%{bleak_house_version}.tar.bz2 %endif # 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 License: GPLv2+ Group: Development/Languages/Ruby Summary: Development files to link against Ruby Requires: %{name} = %{version} %if 0%{?with_bleak_house} Requires: ruby_with_bleak_house = %{bleak_house_version} Provides: ruby-devel_with_bleak_house = %{bleak_house_version}-%{release} %endif %description devel Development files to link against Ruby. Authors: -------- Yukihiro Matsumoto %package tk License: GPLv2+ 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 License: GPLv2+ Group: Development/Languages/Ruby Summary: Ruby Interactive Documentation Requires: %{name} = %{version} %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc-ri This package contains the RI docs for ruby Authors: -------- Yukihiro Matsumoto %package doc-html License: GPLv2+ Group: Development/Languages/Ruby Summary: This package contains the HTML docs for ruby %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc-html This package contains the HTML docs for ruby Authors: -------- Yukihiro Matsumoto %package examples License: GPLv2+ Group: Development/Languages/Ruby Summary: Example scripts for ruby Requires: %{name} = %{version} %description examples Example scripts for ruby Authors: -------- Yukihiro Matsumoto %package test-suite License: GPLv2+ 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 -n ruby-%{pkg_version}-%{patch_level} -a2 %{?with_bleak_house:-a6} %patch1 %patch2 %patch3 %patch5 %patch6 %patch7 %patch8 %patch9 %patch10 %patch11 %patch12 %if 0%{?with_bleak_house} for patch in valgrind configure gc ; do patch -p0 < bleak_house-%{bleak_house_version}/ruby/${patch}.patch done %endif find . -type f | xargs -n 1 sed -i "s@#!\s*/usr/local/bin/ruby@#!/usr/bin/ruby@" # make sure it _really_ rebuilds parse.c for us old parse.c %build autoreconf -fi export CFLAGS="%{optflags} -g -fno-strict-aliasing" %configure \ --with-default-kcode=none \ --with-mantype=man \ --enable-shared \ --disable-static %{__make} all %{__make} -C ext/tk/ all # # TODO: patch the .document files to include all needed modules. # export LD_LIBRARY_PATH="$PWD/" export RUBYLIB="$PWD:$PWD/lib:$(find $PWD/.ext $PWD/ext/ -type d |tr '\n' ':')." ./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 . %check # # 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 %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/ %{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 NEWS \ %{buildroot}%{_docdir}/%{name} %if 0%{?with_bleak_house} %{__cp} -v bleak_house-%{bleak_house_version}/LICENSE %{buildroot}%{_docdir}/%{name}/LICENSE_AFL_for_bleak_house %{__cp} -v bleak_house-%{bleak_house_version}/LICENSE_BSD %{buildroot}%{_docdir}/%{name}/LICENSE_BSD_for_bleak_house %endif %{__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 sed -i "s@#!\s*\./miniruby@#!/usr/bin/ruby@" runruby.rb %{__cp} -r test/ runruby.rb %{buildroot}%{_docdir}/%{name}-test-suite/ %{__ln_s} -f %{_bindir}/%{name} %{buildroot}%{_docdir}/%{name}-test-suite/%{name} %if 0%{?use_fdupes} %fdupes %{buildroot} %endif chmod -v a-x %{buildroot}%{_libdir}/ruby/%{rb_ver}/%{rb_arch}/*.h %{__install} -D -m 0644 %{S:6} %{buildroot}/etc/rpm/macros.ruby %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root) %config(noreplace) /etc/rpm/macros.ruby %{_bindir}/* %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/%{rb_ver} %{_libdir}/lib%{name}.so.%{rb_ver}* %dir %{_datadir}/emacs %dir %{_datadir}/emacs/site-lisp %{_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}/digest.rb %dir %{_libdir}/%{name}/%{rb_ver}/digest/ %{_libdir}/%{name}/%{rb_ver}/digest/sha2.rb %{_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}/securerandom.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}/thread.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 %if 0%{?with_bleak_house} %doc %{_docdir}/%{name}/LICENSE_*_for_bleak_house %endif %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