%define subver 1.9 %define rubyapi 1.9.1 %define rubyver 1.9.3 %define patchversion p194 %define rel 3 %define ruby_libdir %{_datadir}/%{name} %define ruby_libarchdir %{_libdir}/%{name} # This is the local lib/arch and should not be used for packaging. %define ruby_sitelibdir %{_datadir}/ruby/site_ruby %define ruby_sitearchdir %{_libdir}/ruby/site_ruby # This is the general location for libs/archs compatible with all # or most of the Ruby versions available in the Fedora repositories. %define ruby_vendorlibdir %{_datadir}/ruby/vendor_ruby %define ruby_vendorarchdir %{_libdir}/ruby/vendor_ruby # The RubyGems library has to stay out of Ruby directory three, since the # RubyGems should be share by all Ruby implementations. %define rubygems_dir %{_datadir}/ruby/gems Summary: Object Oriented Script Language Name: ruby Version: %{rubyver}.%{patchversion} Release: %mkrel %rel License: Ruby or GPLv2 Group: Development/Ruby BuildRequires: autoconf BuildRequires: byacc BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: tcl-devel tk-devel BuildRequires: db-devel BuildRequires: gdbm-devel >= 1.8.3 BuildRequires: openssl-devel BuildRequires: zlib-devel BuildRequires: libffi-devel BuildRequires: yaml-devel BuildRequires: rpm-mageia-setup >= 1.158 Obsoletes: ruby-rexml Provides: ruby-rexml # explicit file provides (since such requires are automatically added by find-requires) Provides: /usr/bin/ruby Provides: ruby(abi) = %subver Source0: http://ftp.ruby-lang.org/pub/ruby/%{subver}/ruby-%{rubyver}-%{patchversion}.tar.bz2 Source3: ruby.macros URL: http://www.ruby-lang.org/ # == FEDORA PATCHES BEGINS == # http://redmine.ruby-lang.org/issues/5231 Patch0: ruby-1.9.3-disable-versioned-paths.patch # TODO: Should be submitted upstream? Patch1: ruby-1.9.3-arch-specific-dir.patch # http://redmine.ruby-lang.org/issues/5281 Patch2: ruby-1.9.3-added-site-and-vendor-arch-flags.patch # http://redmine.ruby-lang.org/issues/5465 Patch4: ruby-1.9.3-fix-s390x-build.patch # Fix the uninstaller, so that it doesn't say that gem doesn't exist # when it exists outside of the GEM_HOME (already fixed in the upstream) Patch5: ruby-1.9.3-rubygems-1.8.11-uninstaller.patch # http://redmine.ruby-lang.org/issues/5135 - see comment 29 Patch6: ruby-1.9.3-webrick-test-fix.patch # Already fixed upstream: # https://github.com/ruby/ruby/commit/f212df564a4e1025f9fb019ce727022a97bfff53 Patch7: ruby-1.9.3-bignum-test-fix.patch # Allows to install RubyGems into custom directory, outside of Ruby's tree. # http://redmine.ruby-lang.org/issues/5617 Patch8: ruby-1.9.3-custom-rubygems-location.patch # Add support for installing binary extensions according to FHS. # https://github.com/rubygems/rubygems/issues/210 Patch9: rubygems-1.8.11-binary-extensions.patch # Make mkmf verbose by default Patch12: ruby-1.9.3-mkmf-verbose.patch # == FEDORA PATCHES ENDS == %package doc Summary: Documentation for the powerful language Ruby Group: Development/Ruby BuildArch: noarch %package devel Summary: Development file for the powerful language Ruby Group: Development/Ruby Requires: %{name} = %{version} %package tk Summary: Tk extension for the powerful language Ruby Group: Development/Ruby Requires: %{name} = %{version} %package RubyGems Summary: The Ruby standard for packaging ruby libraries Group: Development/Ruby Requires: ruby(abi) = %{subver} Provides: gem = %{version}-%{release} Provides: ruby(rubygems) = %{version}-%{release} %package rake Summary: Simple ruby build program with capabilities similar to make Group: Development/Ruby Requires: ruby(abi) = %{subver} %description Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, and extensible. %description doc Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, and extensible. This package contains the Ruby's documentation %description devel Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, and extensible. This package contains the Ruby's devel files. %description tk Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, and extensible. This package contains the Tk extension for Ruby. %description RubyGems RubyGems is the Ruby standard for publishing and managing third party libraries. %description rake Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax. %prep %setup -q -n ruby-%{rubyver}-%{patchversion} %apply_patches %build autoconf CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'` %configure2_5x --enable-shared --disable-rpath --enable-pthread --disable-versioned-paths \ --with-rubylibprefix='%{ruby_libdir}' \ --with-archdir='%{ruby_libarchdir}' \ --with-sitedir='%{ruby_sitelibdir}' \ --with-sitearchdir='%{ruby_sitearchdir}' \ --with-vendordir='%{ruby_vendorlibdir}' \ --with-vendorarchdir='%{ruby_vendorarchdir}' \ --with-rubyhdrdir='%{_includedir}' \ --with-rubygemsdir='%{rubygems_dir}' %make %install %makeinstall_std install-doc install -d %buildroot%{_datadir}/emacs/site-lisp cp -a misc/ruby-mode.el %buildroot%{_datadir}/emacs/site-lisp install -d %buildroot%{_sysconfdir}/emacs/site-start.d cat <%buildroot%{_sysconfdir}/emacs/site-start.d/%{name}.el (autoload 'ruby-mode "ruby-mode" "Ruby editing mode." t) (add-to-list 'auto-mode-alist '("\\\\.rb$" . ruby-mode)) (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode)) EOF # Install the rpm macros mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d cp %{SOURCE3} %buildroot%{_sysconfdir}/rpm/macros.d %check make test %files %{_bindir}/erb %{_bindir}/irb %{_bindir}/rake %{_bindir}/rdoc %{_bindir}/ri %{_bindir}/ruby %{_bindir}/testrb %{_libdir}/libruby.so.%{subver} %{_libdir}/libruby.so.%{rubyapi} %dir %{_libdir}/ruby %{_libdir}/ruby/English.rb %{_libdir}/ruby/abbrev.rb %{_libdir}/ruby/base64.rb %{_libdir}/ruby/benchmark.rb %{_libdir}/ruby/bigdecimal %{_libdir}/ruby/cgi %{_libdir}/ruby/cgi.rb %{_libdir}/ruby/cmath.rb %{_libdir}/ruby/complex.rb %{_libdir}/ruby/csv.rb %{_libdir}/ruby/date %{_libdir}/ruby/date.rb %{_libdir}/ruby/debug.rb %{_libdir}/ruby/delegate.rb %{_libdir}/ruby/digest %{_libdir}/ruby/digest.rb %{_libdir}/ruby/dl %{_libdir}/ruby/dl.rb %{_libdir}/ruby/drb %{_libdir}/ruby/drb.rb %{_libdir}/ruby/e2mmap.rb %{_libdir}/ruby/erb.rb %{_libdir}/ruby/expect.rb %{_libdir}/ruby/fiddle %{_libdir}/ruby/fiddle.rb %{_libdir}/ruby/fileutils.rb %{_libdir}/ruby/find.rb %{_libdir}/ruby/forwardable.rb %{_libdir}/ruby/getoptlong.rb %{_libdir}/ruby/gserver.rb %{_libdir}/ruby/io %{_libdir}/ruby/ipaddr.rb %{_libdir}/ruby/irb %{_libdir}/ruby/irb.rb %{_libdir}/ruby/json %{_libdir}/ruby/json.rb %{_libdir}/ruby/kconv.rb %{_libdir}/ruby/logger.rb %{_libdir}/ruby/mathn.rb %{_libdir}/ruby/matrix %{_libdir}/ruby/matrix.rb %{_libdir}/ruby/minitest %{_libdir}/ruby/mkmf.rb %{_libdir}/ruby/mkmf.rb.0012 %{_libdir}/ruby/monitor.rb %{_libdir}/ruby/mutex_m.rb %{_libdir}/ruby/net %{_libdir}/ruby/observer.rb %{_libdir}/ruby/open-uri.rb %{_libdir}/ruby/open3.rb %{_libdir}/ruby/openssl %{_libdir}/ruby/openssl.rb %{_libdir}/ruby/optparse %{_libdir}/ruby/optparse.rb %{_libdir}/ruby/ostruct.rb %{_libdir}/ruby/pathname.rb %{_libdir}/ruby/pp.rb %{_libdir}/ruby/prettyprint.rb %{_libdir}/ruby/prime.rb %{_libdir}/ruby/profile.rb %{_libdir}/ruby/profiler.rb %{_libdir}/ruby/pstore.rb %{_libdir}/ruby/psych %{_libdir}/ruby/psych.rb %{_libdir}/ruby/racc %{_libdir}/ruby/rational.rb %{_libdir}/ruby/rbconfig %{_libdir}/ruby/rdoc %{_libdir}/ruby/rdoc.rb %{_libdir}/ruby/resolv-replace.rb %{_libdir}/ruby/resolv.rb %{_libdir}/ruby/rexml %{_libdir}/ruby/rinda %{_libdir}/ruby/ripper %{_libdir}/ruby/ripper.rb %{_libdir}/ruby/rss %{_libdir}/ruby/rss.rb %{_libdir}/ruby/scanf.rb %{_libdir}/ruby/securerandom.rb %{_libdir}/ruby/set.rb %{_libdir}/ruby/shell %{_libdir}/ruby/shell.rb %{_libdir}/ruby/shellwords.rb %{_libdir}/ruby/singleton.rb %{_libdir}/ruby/socket.rb %{_libdir}/ruby/syck %{_libdir}/ruby/syck.rb %{_libdir}/ruby/sync.rb %{_libdir}/ruby/tempfile.rb %{_libdir}/ruby/test %{_libdir}/ruby/thread.rb %{_libdir}/ruby/thwait.rb %{_libdir}/ruby/time.rb %{_libdir}/ruby/timeout.rb %{_libdir}/ruby/tmpdir.rb %{_libdir}/ruby/tracer.rb %{_libdir}/ruby/tsort.rb %{_libdir}/ruby/un.rb %{_libdir}/ruby/uri %{_libdir}/ruby/uri.rb %{_libdir}/ruby/weakref.rb %{_libdir}/ruby/webrick %{_libdir}/ruby/webrick.rb %{_libdir}/ruby/xmlrpc %{_libdir}/ruby/yaml %{_libdir}/ruby/yaml.rb %{_libdir}/ruby/bigdecimal.so %{_libdir}/ruby/continuation.so %{_libdir}/ruby/coverage.so %{_libdir}/ruby/curses.so %{_libdir}/ruby/date_core.so %{_libdir}/ruby/dbm.so %{_libdir}/ruby/digest %{_libdir}/ruby/digest.so %{_libdir}/ruby/dl %{_libdir}/ruby/dl.so %{_libdir}/ruby/enc %{_libdir}/ruby/etc.so %{_libdir}/ruby/fcntl.so %{_libdir}/ruby/fiber.so %{_libdir}/ruby/fiddle.so %{_libdir}/ruby/gdbm.so %{_libdir}/ruby/iconv.so %{_libdir}/ruby/io %{_libdir}/ruby/json %{_libdir}/ruby/mathn %{_libdir}/ruby/nkf.so %{_libdir}/ruby/objspace.so %{_libdir}/ruby/openssl.so %{_libdir}/ruby/pathname.so %{_libdir}/ruby/psych.so %{_libdir}/ruby/pty.so %{_libdir}/ruby/racc %{_libdir}/ruby/rbconfig.rb %{_libdir}/ruby/readline.so %{_libdir}/ruby/ripper.so %{_libdir}/ruby/sdbm.so %{_libdir}/ruby/socket.so %{_libdir}/ruby/stringio.so %{_libdir}/ruby/strscan.so %{_libdir}/ruby/syck.so %{_libdir}/ruby/syslog.so %{_libdir}/ruby/zlib.so %dir %{_datadir}/ruby %{_mandir}/man1/erb.1.* %{_mandir}/man1/irb.1.* %{_mandir}/man1/ri.1.* %{_mandir}/man1/ruby.1.* %{_datadir}/emacs/site-lisp/* %config(noreplace) %{_sysconfdir}/emacs/site-start.d/* %{_sysconfdir}/rpm/macros.d/%{name}.macros %dir %{_libdir}/ruby/site_ruby %dir %{_libdir}/ruby/vendor_ruby %dir %{_datadir}/ruby/site_ruby %dir %{_datadir}/ruby/vendor_ruby %files doc %{_datadir}/ri %files devel %{_includedir}/* %{_libdir}/libruby-static.a %{_libdir}/libruby.so %{_libdir}/pkgconfig/*.pc %files tk %{_libdir}/ruby/tcltklib.so %{_libdir}/ruby/tkutil.so %{_libdir}/ruby/multi-tk.rb %{_libdir}/ruby/remote-tk.rb %{_libdir}/ruby/tcltk.rb %{_libdir}/ruby/tk.rb %{_libdir}/ruby/tkafter.rb %{_libdir}/ruby/tkbgerror.rb %{_libdir}/ruby/tkcanvas.rb %{_libdir}/ruby/tkclass.rb %{_libdir}/ruby/tkconsole.rb %{_libdir}/ruby/tkdialog.rb %{_libdir}/ruby/tkentry.rb %{_libdir}/ruby/tkfont.rb %{_libdir}/ruby/tkmacpkg.rb %{_libdir}/ruby/tkmenubar.rb %{_libdir}/ruby/tkmngfocus.rb %{_libdir}/ruby/tkpalette.rb %{_libdir}/ruby/tkscrollbox.rb %{_libdir}/ruby/tktext.rb %{_libdir}/ruby/tkvirtevent.rb %{_libdir}/ruby/tkwinpkg.rb %{_libdir}/ruby/tk %{_libdir}/ruby/tkextlib %files RubyGems %{_bindir}/gem %dir %{_libdir}/ruby/gems %dir %{_libdir}/ruby/gems/%{rubyapi} %{_libdir}/ruby/gems/%{rubyapi}/cache %{_libdir}/ruby/gems/%{rubyapi}/doc %dir %{_libdir}/ruby/gems/%{rubyapi}/gems %{_libdir}/ruby/gems/%{rubyapi}/gems/rdoc-* %dir %{_libdir}/ruby/gems/%{rubyapi}/specifications %{_libdir}/ruby/gems/%{rubyapi}/specifications/bigdecimal-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/io-console-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/json-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/minitest-*.gemspec %{_libdir}/ruby/gems/%{rubyapi}/specifications/rdoc-*.gemspec %dir %{rubygems_dir} %{rubygems_dir}/rbconfig %{rubygems_dir}/rubygems %{rubygems_dir}/rubygems.rb %{rubygems_dir}/ubygems.rb %files rake %{_bindir}/rake %{_mandir}/man1/rake.1.* %{_libdir}/ruby/gems/%{rubyapi}/gems/rake-* %{_libdir}/ruby/gems/%{rubyapi}/specifications/rake-*.gemspec %{_libdir}/ruby/rake %{_libdir}/ruby/rake.rb