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
openSUSE Build Service is sponsored by