File ruby.spec of Package ruby-railsexpress
# norootforbuild
Name: ruby
Provides: ruby19
Version: 1.9.2.p290
Release: 1.1
#
%define pkg_name ruby
%define pkg_version 1.9.2
%define patch_level p290
# keep in sync with macro file!
%define rb_ver 1.9.1
%define rb_arch %(echo %{_target_cpu}-linux | sed -e "s/ppc/powerpc/")
%define rb_libdir %{_libdir}/ruby/%{rb_ver}/
%define rb_archdir %{_libdir}/ruby/%{rb_ver}/%{rb_arch}
# keep in sync with macro file!
#
%if 0%{?suse_version} == 1100
%define needs_optimization_zero 1
%endif
# from valgrind.spec
%ifarch %ix86 x86_64 ppc ppc64
%define use_valgrind 1
%endif
%define run_tests 0
#
License: GPL v2 or later
Group: Development/Languages/Ruby
#
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: gdbm-devel
BuildRequires: ncurses-devel
BuildRequires: openssl-devel
BuildRequires: pkg-config
BuildRequires: readline-devel
BuildRequires: tk-devel
BuildRequires: zlib-devel
BuildRequires: libyaml-devel
BuildRequires: libffi-devel
# this requires is needed as distros older than 11.3 have a buildignore on freetype2, without this the detection of the tk extension fails
BuildRequires: freetype2-devel
%if 0%{?suse_version} > 1010
BuildRequires: xorg-x11-libX11-devel
%else
BuildRequires: xorg-x11-devel
%endif
%if 0%{?use_valgrind}
%if 0%{?suse_version} > 1020
BuildRequires: valgrind-devel
%else
BuildRequires: valgrind
%endif
%endif
%if 0%{?suse_version} > 1120
BuildRequires: ca-certificates ca-certificates-cacert
%else
BuildRequires: openssl-certs
%endif
BuildRequires: vim
#
Provides: ruby(abi) = %{rb_ver}
Provides: %{pkg_name} = %{version}-%{release}
#
#Provides: rubygems = 1.3.7
#Provides: rubygems_with_buildroot_patch
#
Url: http://www.ruby-lang.org/
Source: ftp://ftp.ruby-lang.org/pub/ruby/ruby-%{pkg_version}-%{patch_level}.tar.bz2
Source6: ruby.macros
Source7: site-specific.rb
Source8: vendor-specific.rb
#Patch: rubygems-1.5.0_buildroot.patch
Patch1: ruby-1.9.2p290_tcl_no_stupid_rpaths.patch
Patch2: ruby-1.9.2.p290_vendor_specific.patch
Patch11: 01-railsbench-gc-patch.patch
Patch12: 02-display-more-detailed-stack-trace.patch
Patch13: 03-fork-support-for-gc-logging.patch
Patch14: 04-track-live-dataset-size.patch
Patch15: 05-load-performance-fix.patch
Patch16: 06-trace-bmethods.patch
#
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 <matz@netlab.co.jp>
%package devel
License: GPL v2 or later
Group: Development/Languages/Ruby
Summary: Development files to link against Ruby
Requires: %{name} = %{version}
Provides: %{pkg_name}-devel = %{version}-%{release}
%description devel
Development files to link against Ruby.
Authors:
--------
Yukihiro Matsumoto <matz@netlab.co.jp>
%package tk
License: GPL v2 or later
Group: Development/Languages/Ruby
Summary: TCL/TK bindings for Ruby
Requires: %{name} = %{version}
Provides: %{pkg_name} = %{version}-%{release}
%description tk
TCL/TK bindings for Ruby
Authors:
--------
Yukihiro Matsumoto <matz@netlab.co.jp>
%package doc-ri
License: GPL v2 or later
Group: Development/Languages/Ruby
Summary: Ruby Interactive Documentation
Requires: %{name} = %{version}
Provides: %{pkg_name}-doc-ri = %{version}-%{release}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc-ri
This package contains the RI docs for ruby
Authors:
--------
Yukihiro Matsumoto <matz@netlab.co.jp>
%package doc-html
License: GPL v2 or later
Group: Development/Languages/Ruby
Summary: This package contains the HTML docs for ruby
Requires: %{name} = %{version}
Provides: %{pkg_name}-doc-html = %{version}-%{release}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc-html
This package contains the HTML docs for ruby
Authors:
--------
Yukihiro Matsumoto <matz@netlab.co.jp>
%package examples
License: GPL v2 or later
Group: Development/Languages/Ruby
Summary: Example scripts for ruby
Requires: %{name} = %{version}
Provides: %{pkg_name}-examples = %{version}-%{release}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description examples
Example scripts for ruby
Authors:
--------
Yukihiro Matsumoto <matz@netlab.co.jp>
%package test-suite
License: GPL v2 or later
Group: Development/Languages/Ruby
Requires: %{name} = %{version}
Summary: An Interpreted Object-Oriented Scripting Language
Provides: %{pkg_name}-testsuite = %{version}-%{release}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%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 <matz@netlab.co.jp>
%prep
%setup -q -n ruby-%{pkg_version}-%{patch_level}
#%patch
%patch1
%patch2
%patch11
%patch12
%patch13
%patch14
%patch15
%patch16
%if 0%{?needs_optimization_zero}
touch -r configure configure.timestamp
perl -p -i.bak -e 's|-O2|-O0|g' configure
diff -urN configure{.bak,} ||:
touch -r configure.timestamp configure
%endif
find sample -type f -print0 | xargs -r0 chmod a-x
%build
%if 0%{?needs_optimization_zero}
export CFLAGS="%{optflags}"
export CFLAGS="${CFLAGS//-O2/}"
export CXXFLAGS="$CFLAGS"
export FFLAGS="$CFLAGS"
%endif
%configure \
--target=%{_target_platform} \
%if 0%{?use_valgrind}
--with-valgrind \
%endif
--with-mantype=man \
--enable-shared \
--disable-rpath
%{__make} all V=1
%install
%makeinstall V=1
rm %{buildroot}/usr/bin/gem
%{__install} -D -m 0644 %{S:6} %{buildroot}/etc/rpm/macros.ruby
%{__install} -D -m 0644 %{S:7} %{buildroot}/%{_libdir}/ruby/site_ruby/%{rb_ver}/site-specific.rb
%{__install} -D -m 0644 %{S:8} %{buildroot}/%{_libdir}/ruby/vendor_ruby/%{rb_ver}/vendor-specific.rb
%if 0%{?run_tests}
%check
export LD_LIBRARY_PATH="$PWD"
# we know some tests will fail when they do not find a /usr/bin/ruby
make check V=1 ||:
%endif
%clean
%{__rm} -rf %{buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%config(noreplace) /etc/rpm/macros.ruby
%{_bindir}/erb
%{_bindir}/irb
%exclude %{_bindir}/rake
%{_bindir}/rdoc
%{_bindir}/ri
%{_bindir}/ruby
%{_bindir}/testrb
%{_libdir}/libruby.so.1.9*
%{_libdir}/ruby/
%exclude %{rb_libdir}/multi-tk.rb
%exclude %{rb_libdir}/remote-tk.rb
%exclude %{rb_libdir}/tcltk.rb
%exclude %{rb_libdir}/tk*.rb
%exclude %{rb_libdir}/tk/
%exclude %{rb_libdir}/tkextlib/
%exclude %{rb_archdir}/tcltklib.so
%exclude %{rb_archdir}/tkutil.so
%{_mandir}/man1/ri.1*
%{_mandir}/man1/irb.1*
%{_mandir}/man1/erb.1*
%{_mandir}/man1/rake.1*
%{_mandir}/man1/ruby.1*
%doc ChangeLog COPYING COPYING.ja GPL KNOWNBUGS.rb LEGAL NEWS README README.EXT README.EXT.ja README.ja ToDo doc/* sample/
%files devel
%defattr(-,root,root,-)
%{_includedir}/ruby-%{rb_ver}
%{_libdir}/libruby.so
%{_libdir}/libruby-static.a
%files tk
%defattr(-,root,root,-)
%{rb_libdir}/multi-tk.rb
%{rb_libdir}/remote-tk.rb
%{rb_libdir}/tcltk.rb
%{rb_libdir}/tk*.rb
%{rb_libdir}/tk/
%{rb_libdir}/tkextlib/
%{rb_archdir}/tcltklib.so
%{rb_archdir}/tkutil.so
%files doc-ri
%defattr(-,root,root,-)
%dir %{_datadir}/ri/
%{_datadir}/ri/%{rb_ver}/
%changelog
* Thu Dec 15 2011 gebhardt@pre-sense.de
- added railsexpress patchset (https://github.com/skaes/rvm-patchsets/)
* Thu Dec 15 2011 gebhardt@pre-sense.de
- downgrade to ruby 1.9.2p290
* Mon Dec 05 2011 gebhardt@pre-sense.de
- remove binary prefix
* Mon Oct 31 2011 mrueckert@suse.de
- update to 1.9.3 preview 0
* Mon Jul 18 2011 mrueckert@suse.de
- override rb_arch macro from the rpm in the spec file
rb_arch in rpm is still using host_cpu instead of target_cpu. for
older distros we will need the override anyway. this allows us to
reduce the sed part in the marco to just ppc/powerpc.
- related to the first change:
pass --target={_target_platform} to configure (we used to do that
on 1.8 already)
- provide unversioned package names
- rip out bleakhouse support for now to make merging easier
- install macros file
- reorder some file list lines to make merging easier
- use a ruby variable instead of calculating rb_ver in the macros
file. (more important for 1.8)
* Mon Jul 18 2011 mrueckert@suse.de
- update 1.9.2 p290
some important fixes:
- require 'date'; Date.new === nil throws an undefined method
error for coerce on p180 - this has now been fixed
- The Thread.kill segfaults when the object to be killed isn't a
thread bug has been resolved.
- Tweaks to reduce segmentation faults when using zlib on x86-64
Darwin (OS X) - always good
- Modification to prevent random number sequence repetition on
forked child processes in SecureRandom
- Fix to io system to resolve a Windows-only bug where characters
are being read incorrectly due to ASCII not being treated as 7
bit
- A tweak to Psych (the YAML parser) to plug a memory leak
- Load paths are now always expanded by rb_et_expanded_load_path
(I think this might yield a performance gain?)
- Fixes to Psych's treatment and testing of string taint
- Prevention of temporary objects being garbage collected in some
cases
- Fixes to resolve compilation problems with Visual C++ 2010
- A fix so that Tk's extconf.rb would run successfully
- Lots of Tk related fixes generally
- A fix to string parsing to resolve an obscure
symbol-containing-newlines parsing bug
for the complete changes see /usr/share/doc/packages/ruby19/ChangeLog
- refresh tcl rpath patch:
old ruby-1.9.2p180_tcl_no_stupid_rpaths.patch
new ruby-1.9.2p290_tcl_no_stupid_rpaths.patch
* Fri May 6 2011 mrueckert@suse.de
- sync with d:l:r:1.9/ruby19
* Fri May 6 2011 mrueckert@suse.de
- update 1.9.2 p180
- added ruby-1.9.2p180_tcl_no_stupid_rpaths.patch
- remove the other path entries that are unneeded on our system
- dropped ruby-1.9.1-rc2_gc_64bit_warning.patch
* Thu Aug 26 2010 mrueckert@suse.de
- build fiddle -> new dep libffi
* Thu Aug 26 2010 mrueckert@suse.de
- update to 1.9.2 p0
* Wed Apr 7 2010 mrueckert@suse.de
- split out tk bindings
* Wed Apr 7 2010 mrueckert@suse.de
- fixed tk support, though it still has a warning about missing
nativethread support in tcl/tk
* Wed Apr 7 2010 mrueckert@suse.de
- update to snapshot of today
* Mon Feb 2 2009 mrueckert@suse.de
- update to p0
- drop ruby-1.9.1-rc2_rb_time_timeval_prototype.patch:
fix included
* Wed Jan 21 2009 mrueckert@suse.de
- add ruby-1.9.1-rc2_gc_64bit_warning.patch
do not cast a pointer to int
- add ruby-1.9.1-rc2_rb_time_timeval_prototype.patch
copy the complete prototype for the function
* Wed Jan 21 2009 mrueckert@suse.de
- update to rc2
- remove ruby-1.9.1-preview2_mkconfig_continued_line.patch:
included in update
* Mon Dec 8 2008 mrueckert@suse.de
- added ruby-1.9.1-preview2_mkconfig_continued_line.patch:
handle continued lines with empty values
* Sat Dec 6 2008 mrueckert@suse.de
- initial package