Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-updates-src > by-pkgid > c2637170f289137e7f8944ec39932eda > files > 15

ruby-2.5.7-20.mga7.src.rpm

# Taken from the fedora ruby-2.2.3 .spec. Thanks!

%global major_version 2
%global minor_version 5
%global teeny_version 7
%global major_minor_version %{major_version}.%{minor_version}

%global ruby_version %{major_minor_version}.%{teeny_version}
%global ruby_release %{ruby_version}

# Specify the named version. It has precedense to revision.
#%%global milestone rc1

# Keep the revision enabled for pre-releases from SVN.
#%%global revision 48936

%global ruby_archive %{name}-%{ruby_version}

# If revision and milestone are removed/commented out, the official release build is expected.
%if 0%{?milestone:1}%{?revision:1} != 0
%global development_release %{?milestone}%{?!milestone:%{?revision:r%{revision}}}
%global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision:r%{revision}}}
%endif

# We need to keep this increasing even with new versions of ruby unless all gems get new release :(
%define rel 20
%{!?release_string:%global release_string %mkrel %{?development_release:0.}%{rel}%{?development_release:.%{development_release}}}

# The RubyGems library has to stay out of Ruby directory three, since the
# RubyGems should be share by all Ruby implementations.
%global rubygems_dir %{_datadir}/rubygems

# Bundled libraries versions
%global rubygems_version 2.6.13
%global molinillo_version 0.5.7

# TODO: The IRB has strange versioning. Keep the Ruby's versioning ATM.
# http://redmine.ruby-lang.org/issues/5313
%global irb_version %{ruby_version}

%global bigdecimal_version 1.3.4
%global cmath_version 1.0.0
%global csv_version 1.0.0
%global date_version 1.0.0
%global dbm_version 1.0.0
%global did_you_mean_version 1.2.0
%global etc_version 1.0.0
%global fcntl_version 1.0.0
%global fiddle_version 1.0.0
%global fileutils_version 1.0.2
%global gdbm_version 2.0.0
%global io_console_version 0.4.6
%global ipaddr_version 1.2.0
%global json_version 2.1.0
%global minitest_version 5.10.3
%global net_telnet_version 0.1.1
%global openssl_version 2.1.2
%global power_assert_version 1.1.1
%global psych_version 3.0.2
%global rake_version 12.3.0
%global rdoc_version 6.0.1.1
%global scanf_version 1.0.0
%global sdbm_version 1.0.0
%global stringio_version 0.0.1
%global strscan_version 1.0.0
%global test_unit_version 3.2.7
%global webrick_version 1.4.2
%global xmlrpc_version 0.3.0
%global zlib_version 1.0.0

# Allow updating them in separate packages
%global build_rubygems 0
%global build_bigdecimal 0
%global build_json 0
%global build_minitest 0
%global build_rake 1
%global build_rdoc 0

%if %build_bigdecimal
%global exclude_bigdecimal %nil
%else
%global exclude_bigdecimal %exclude
%endif
%if %build_json
%global exclude_json %nil
%else
%global exclude_json %exclude
%endif
%if %build_minitest
%global exclude_minitest %nil
%else
%global exclude_minitest %exclude
%endif
%if %build_rake
%global exclude_rake %nil
%else
%global exclude_rake %exclude
%endif
%if %build_rdoc
%global exclude_rdoc %nil
%else
%global exclude_rdoc %exclude
%endif

# Might not be needed in the future, if we are lucky enough.
# https://bugzilla.redhat.com/show_bug.cgi?id=888262
%global tapset_root %{_datadir}/systemtap
%global tapset_dir %{tapset_root}/tapset
%global tapset_libdir %(echo %{_libdir} | sed 's/64//')*

%global _normalized_cpu %(echo %{_target_cpu} | sed 's/^ppc/powerpc/;s/i.86/i386/;s/sparcv./sparc/')

%global with_rubypick 1

# Additional defines by Mageia.

%define subver %{major_minor_version}
%define rubyapi %{subver}.%{teeny_version}
%define rubyver %{ruby_version}

%define libname %mklibname ruby %{subver}

%global ruby_libdir %{_datadir}/%{name}
%global ruby_libarchdir %{_libdir}/%{name}

# This is the local lib/arch and should not be used for packaging.
%global ruby_sitedir site_ruby
%global ruby_sitelibdir %{_prefix}/local/share/%{name}/%{ruby_sitedir}
%global ruby_sitearchdir %{_prefix}/local/%{_lib}/%{name}/%{ruby_sitedir}

# This is the general location for libs/archs compatible with all
# or most of the Ruby versions available in the Fedora repositories.
%global ruby_vendordir vendor_ruby
%global ruby_vendorlibdir %{ruby_libdir}/%{ruby_vendordir}
%global ruby_vendorarchdir %{ruby_libarchdir}/%{ruby_vendordir}

# The RubyGems library has to stay out of Ruby directory tree, since the
# RubyGems should be shared by all Ruby implementations.
%define gem_dir %{_datadir}/gems

Summary:	Object Oriented Script Language
Name:		ruby
Version:	%{rubyver}
Release: 	%release_string
License:	Ruby or BSD
Group:		Development/Ruby
BuildRequires:	autoconf
BuildRequires:	byacc
BuildRequires:	bison
BuildRequires:	doxygen
BuildRequires:	pkgconfig(ncurses)
BuildRequires:  pkgconfig(openssl)
BuildRequires:	pkgconfig(zlib)
BuildRequires:	pkgconfig(libffi)
BuildRequires:	pkgconfig(yaml-0.1)
BuildRequires:	readline-devel
BuildRequires:	db-devel
BuildRequires:  gdbm-devel >= 1.8.3
BuildRequires:	rpm-mageia-setup >= 1.158
# Needed to pass test_set_program_name(TestRubyOptions)
BuildRequires:	procps
# This causes gems to be installed in the home directory and breaks build
BuildConflicts:	ruby-RubyGems
Conflicts:	ruby-devel < 2.0.0.p451-4.mga5
Obsoletes:	ruby-rexml
Provides:	ruby-rexml
# Tcl/Tk support was removed from stdlib in Ruby 2.4
Obsoletes:	ruby-tk < 2.4.0
# explicit file provides (since such requires are automatically added by find-requires)
Provides: /usr/bin/ruby
Provides: ruby(abi) = %subver
Requires:	ruby-RubyGems >= %rubygems_version
Source0:	http://ftp.ruby-lang.org/pub/ruby/%{subver}/ruby-%{rubyver}.tar.xz
Source1:	operating_system.rb
Source3:	ruby.macros
Source4:	rubygems.macros
# From FC:
# RPM dependency generators.
Source8: rubygems.attr
Source9: rubygems.req
Source10: rubygems.prov
URL:		http://ruby-lang.org/

# == FEDORA PATCHES BEGINS ==
# Fix ruby_version abuse.
# https://bugs.ruby-lang.org/issues/11002
Patch0: ruby-2.3.0-ruby_version.patch
# http://bugs.ruby-lang.org/issues/7807
Patch1: ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch
# Allows to override libruby.so placement. Hopefully we will be able to return
# to plain --with-rubyarchprefix.
# http://bugs.ruby-lang.org/issues/8973
Patch2: ruby-2.1.0-Enable-configuration-of-archlibdir.patch
# Force multiarch directories for i.86 to be always named i386. This solves
# some differencies in build between Fedora and RHEL.
Patch3: ruby-2.1.0-always-use-i386.patch
# Allows to install RubyGems into custom directory, outside of Ruby's tree.
# http://bugs.ruby-lang.org/issues/5617
Patch4: ruby-2.1.0-custom-rubygems-location.patch
# Make mkmf verbose by default
Patch5: ruby-1.9.3-mkmf-verbose.patch
# Adds support for '--with-prelude' configuration option. This allows to built
# in support for ABRT.
# http://bugs.ruby-lang.org/issues/8566
Patch6: ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch
# Use miniruby to regenerate prelude.c.
# https://bugs.ruby-lang.org/issues/10554
Patch7: ruby-2.2.3-Generate-preludes-using-miniruby.patch
# Workaround "an invalid stdio handle" error on PPC, due to recently introduced
# hardening features of glibc (rhbz#1361037).
# https://bugs.ruby-lang.org/issues/12666
Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch
# == FEDORA PATCHES ENDS ==
# operating_system.rb sets default_dir to user_dir for non root, this causes the build
# to install gems into user dir
#Patch20: ruby-2.3.0-Do-not-install-to-user-dir.patch

# Some tests except / to not be owned by root, it seems to not be the case on the 
# build system where it is (wrongly) owned by iurt. Change to /tmp.
Patch20: ruby-2.4.1-notowned.patch

# Upstream patch fixing tests failing with recent openssl
Patch21: edbac1b986d6cbacf191bd1fde15e5de801a4935.patch

%package	-n %{libname}
Summary:	Libraries necessary to run Ruby
Group:		Development/Ruby

%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}
Requires:	%{libname} = %{version}

%if %build_rubygems
%package	RubyGems
Summary:	The Ruby standard for packaging ruby libraries
Group:		Development/Ruby
Version:	%{rubygems_version}
Requires:	ruby(abi) = %{subver}
Requires:	rubygem(json) >= %{json_version}
Requires:	rubygem(openssl) >= %{openssl_version}
Requires:	rubygem(psych) >= %{psych_version}
# This should probably not be a strict require but --rdoc/--ri fail badly without it
Requires:	rubygem(rdoc) >= %{rdoc_version}
Provides:	gem = %{rubygems_version}
Provides:	rubygems = %{rubygems_version}
Provides:	ruby(rubygems) = %{rubygems_version}
Conflicts:	rpm-mageia-setup-build < 1.159
Conflicts:	ruby < 2.4.1-10
BuildArch:	noarch
%endif

%if %build_rake
%package	rake
Summary:	Simple ruby build program with capabilities similar to make
Group:		Development/Ruby
Version:	%{rake_version}
Requires:	ruby(abi) = %{subver}
Provides:	rubygem(rake) = %{version}
BuildArch:	noarch
%endif

%if %build_minitest
%package	minitest
Summary:	Minitest provides a complete suite of testing facilities
Group:		Development/Ruby
Version:	%{minitest_version}
License:	MIT
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(minitest) = %{version}
BuildArch:	noarch
%endif

%package	openssl
Summary:	OpenSSL provides SSL, TLS and general purpose cryptography
Group:		Development/Ruby
Version:	%{openssl_version}
License:	Ruby or BSD
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(openssl) = %{version}

%package	power_assert
Summary:	Power Assert for Ruby
Group:		Development/Ruby
Version:	%{power_assert_version}
License:	BSD
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(power_assert) = %{version}
BuildArch:	noarch

%if %build_json
%package	json
Summary:	This is a JSON implementation as a Ruby extension in C
Group:		Development/Ruby
Version:	%{json_version}
License:	Ruby or GPLv2
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(json) = %{version}
Conflicts:	ruby < 2.4.1
%endif

%if %build_rdoc
%package	rdoc
Summary:	A tool to generate HTML and command-line documentation for Ruby projects
Group:		Development/Ruby
Version:	%{rdoc_version}
License:	GPLv2 and Ruby and MIT
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Requires:	ruby(irb) = %{version}
Requires:	rubygem(io-console) >= %{io_console_version}
Requires:	rubygem(json) >= %{json_version}
Provides:	rubygem(rdoc) = %{version}
Provides:	rdoc = %{rdoc_version}
Provides:	ri = %{rdoc_version}
BuildArch:	noarch
%endif

%package	irb
Summary:	The Interactive Ruby
Group:		Development/Ruby
Provides:	irb = %{version}-%{release}
Provides:	ruby(irb) = %{version}-%{release}
Conflicts:	ruby < 1.9
BuildArch:	noarch

%if %build_bigdecimal
%package	bigdecimal
Summary:	BigDecimal provides arbitrary-precision floating point decimal arithmetic
Group:		Development/Ruby
Version:	%{bigdecimal_version}
License:	GPL+ or Artistic
Requires:	ruby(abi) = %{subver}
Provides:	rubygem(bigdecimal) = %{version}
Requires:	ruby(rubygems) >= %{rubygems_version}
%endif

%package	did_you_mean
Summary:	"Did you mean?" experience in Ruby
Version:	%{did_you_mean_version}
Group:		Development/Ruby
License:	MIT
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(did_you_mean) = %{version}

%package	io-console
Summary:	IO/Console is a simple console utilizing library
Group:		Development/Ruby
Version:	%{io_console_version}
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(io-console) = %{version}

%package	psych
Summary:	A libyaml wrapper for Ruby
Version:	%{psych_version}
Group:		Development/Ruby
License:	MIT
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(psych) = %{version}
Conflicts:	ruby < 2.4.1-11

%package	net-telnet
Summary:	Provides telnet client functionality
Version:	%{net_telnet_version}
Group:		Development/Ruby
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(net-telnet) = %{version}

%package	test-unit
Summary:	test/unit compatible API testing framework
Version:	%{test_unit_version}
Group:		Development/Ruby
License:	MIT
Provides:	rubygem(test-unit) = %{test_unit_version}
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(test-unit) = %{version}
Conflicts:	ruby < 2.0.0
BuildArch:	noarch

%package	xmlrpc
Summary:	XMLRPC is a lightweight protocol that enables remote procedure calls over HTTP
Version:	%{xmlrpc_version}
Group:		Development/Ruby
License:	Ruby or BSD
Requires:	ruby(abi) = %{subver}
Requires:	ruby(rubygems) >= %{rubygems_version}
Provides:	rubygem(xmlrpc) = %{version}
BuildArch:	noarch

%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	-n %{libname}
This package includes the libruby, necessary to run Ruby.

%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.

%if %build_rubygems
%description	RubyGems
RubyGems is the Ruby standard for publishing and managing third party
libraries.
%endif

%if %build_rake
%description	rake
Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
specified in standard Ruby syntax.
%endif

%if %build_rdoc
%description 	rdoc
RDoc produces HTML and command-line documentation for Ruby projects.  RDoc
includes the 'rdoc' and 'ri' tools for generating and displaying online
documentation.
%endif

%if %build_json
%description	json
This is a implementation of the JSON specification according to RFC 4627.
You can think of it as a low fat alternative to XML, if you want to store
data to disk or transmit it over a network rather than use a verbose
markup language.
%endif

%if %build_minitest
%description	minitest
minitest/unit is a small and incredibly fast unit testing framework.

minitest/spec is a functionally complete spec engine.

minitest/benchmark is an awesome way to assert the performance of your
algorithms in a repeatable manner.

minitest/mock by Steven Baker, is a beautifully tiny mock object
framework.

minitest/pride shows pride in testing and adds coloring to your test
output.
%endif
  
%description	openssl
OpenSSL provides SSL, TLS and general purpose cryptography. It wraps the
OpenSSL library.

%description	power_assert
Power Assert shows each value of variables and method calls in the expression.
It is useful for testing, providing which value wasn't correct when the
condition is not satisfied.

%description	irb
The irb is acronym for Interactive Ruby.  It evaluates ruby expression
from the terminal.

%if %build_bigdecimal
%description	bigdecimal
Ruby provides built-in support for arbitrary precision integer arithmetic.
For example:

42**13 -> 1265437718438866624512

BigDecimal provides similar support for very large or very accurate floating
point numbers. Decimal arithmetic is also useful for general calculation,
because it provides the correct answers people expect–whereas normal binary
floating point arithmetic often introduces subtle errors because of the
conversion between base 10 and base 2.
%endif

%description	did_you_mean
"did you mean?" experience in Ruby: the error message will tell you the right
one when you misspelled something.

%description	io-console
IO/Console provides very simple and portable access to console. It doesn't
provide higher layer features, such like curses and readline.

%description	psych
Psych is a YAML parser and emitter. Psych leverages
libyaml[http://pyyaml.org/wiki/LibYAML] for its YAML parsing and emitting
capabilities. In addition to wrapping libyaml, Psych also knows how to
serialize and de-serialize most Ruby objects to and from the YAML format.

%description	net-telnet
Provides telnet client functionality.

This class also has, through delegation, all the methods of a socket object
(by default, a TCPSocket, but can be set by the Proxy option to new()). This
provides methods such as close() to end the session and sysread() to read data
directly from the host, instead of via the waitfor() mechanism. Note that if
you do use sysread() directly when in telnet mode, you should probably pass
the output through preprocess() to extract telnet command sequences.

%description	test-unit
This library implements test/unit compatible API on minitest.
The test/unit means that test/unit which was bundled with Ruby 1.8.

%description	xmlrpc
XMLRPC is a lightweight protocol that enables remote procedure calls over
HTTP.

%prep
%setup -q -n ruby-%{rubyver}
%autopatch -p1

%build
autoconf
CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'`
%configure2_5x --enable-shared --disable-rpath --enable-pthread \
        --enable-multiarch \
        --with-rubylibprefix='%{ruby_libdir}' \
        --with-archlibdir='%{_libdir}' \
        --with-rubyarchprefix='%{ruby_libarchdir}' \
        --with-sitedir='%{ruby_sitelibdir}' \
        --with-sitearchdir='%{ruby_sitearchdir}' \
        --with-vendordir='%{ruby_vendorlibdir}' \
        --with-vendorarchdir='%{ruby_vendorarchdir}' \
        --with-rubyhdrdir='%{_includedir}' \
        --with-rubyarchhdrdir='%{_includedir}' \
        --with-sitearchhdrdir='$(sitehdrdir)/$(arch)' \
        --with-vendorarchhdrdir='$(vendorhdrdir)/$(arch)' \
        --with-rubygemsdir='%{rubygems_dir}' \
        --with-ruby-pc='%{name}.pc' \
        --enable-multiarch \
        --with-compress-debug-sections=no \
        --with-ruby-version='' \
%ifarch aarch64
	--with-setjmp-type=setjmp \
%endif

%make_build Q=

%install
%makeinstall_std install-doc

# Version is empty if --with-ruby-version is specified.
# http://bugs.ruby-lang.org/issues/7807
sed -i 's/Version: \${ruby_version}/Version: %{ruby_version}/' %{buildroot}%{_libdir}/pkgconfig/%{name}.pc

# Kill bundled certificates, as they should be part of ca-certificates.
for cert in \
  rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem \
  rubygems.org/AddTrustExternalCARoot.pem \
  index.rubygems.org/GlobalSignRootCA.pem
do
  rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert
  rm -r $(dirname %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert)
done

# Ensure there is not forgotten any certificate.
test ! "$(ls -A  %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ 2>/dev/null)"

# Install emacs config
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 <<EOF >%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

%if %build_rubygems
cp %{SOURCE4} %buildroot%{_sysconfdir}/rpm/macros.d

# Install dependency generators.
mkdir -p %{buildroot}%{_rpmconfigdir}/fileattrs
install -m 644 %{SOURCE8} %{buildroot}%{_rpmconfigdir}/fileattrs
install -m 755 %{SOURCE9} %{buildroot}%{_rpmconfigdir}
install -m 755 %{SOURCE10} %{buildroot}%{_rpmconfigdir}

# Install custom operating_system.rb
mkdir -p %{buildroot}%{rubygems_dir}/rubygems/defaults
cp %{SOURCE1} %{buildroot}%{rubygems_dir}/rubygems/defaults
%else
rm -f %{buildroot}%{_bindir}/gem
rm -f %{buildroot}%{rubygems_dir}/{ubygems.rb,rubygems.rb}
rm -rf %{buildroot}%{rubygems_dir}/rubygems
%endif

# Move gems root into common direcotry, out of Ruby directory structure.
mv %{buildroot}%{ruby_libdir}/gems %{buildroot}%{gem_dir}

# Create folders for gem binary extensions.
mkdir -p %{buildroot}%{_exec_prefix}/lib{,64}/gems/%{name}

# Version is empty if --with-ruby-version is specified.
# http://bugs.ruby-lang.org/issues/7807
sed -i 's/Version: .*/Version: %{rubyver}/' %{buildroot}%{_libdir}/pkgconfig/%{name}.pc

# Move the binary extensions into proper place (if no gem has binary extension,
# the extensions directory might be empty).
find %{buildroot}%{gem_dir}/extensions/*-%{_target_os}/%{ruby_version}/* -maxdepth 0 \
  -exec mv '{}' %{buildroot}%{_libdir}/gems/%{name}/ \; \
  || echo "No gem binary extensions to move."

%if %build_json
# Adjust the gemspec files so that the gems will load properly
sed -i '/^end$/ i\
  s.extensions = ["json/ext/parser.so", "json/ext/generator.so"]' %{buildroot}%{gem_dir}/specifications/default/json-%{json_version}.gemspec
%endif

# Move man pages into proper location
mv %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/doc/rake.1 %{buildroot}%{_mandir}/man1

# Exclude is not enough for nativre extensions as they get debuginfo generated

%if !%build_json
rm -rf %{buildroot}%{ruby_libarchdir}/json
%endif
%if !%build_bigdecimal
rm -f %{buildroot}%{ruby_libarchdir}/bigdecimal.so
%endif

%check
DISABLE_TESTS=""

# SIGSEV handler does not provide correct output on AArch64.
# https://bugs.ruby-lang.org/issues/13758
%ifarch aarch64
DISABLE_TESTS="$DISABLE_TESTS -n !/test_segv_\(setproctitle\|test\)/"
%endif

make check TESTS="-v $DISABLE_TESTS"

%files
%{_bindir}/erb
%{_bindir}/ruby
%dir %{ruby_libdir}
%{ruby_libdir}/*.rb
%exclude %{ruby_libdir}/irb.rb
%exclude %{ruby_libdir}/json.rb
%exclude %{ruby_libdir}/openssl.rb
%{ruby_libdir}/cgi
%{ruby_libdir}/digest
%{ruby_libdir}/drb
%{ruby_libdir}/fiddle
%{ruby_libdir}/forwardable
%{ruby_libdir}/matrix
%{ruby_libdir}/net
%{ruby_libdir}/optparse
%{ruby_libdir}/racc
%{ruby_libdir}/rexml
%{ruby_libdir}/rinda
%{ruby_libdir}/ripper
%{ruby_libdir}/rss
%{ruby_libdir}/shell
%{ruby_libdir}/syslog
%{ruby_libdir}/unicode_normalize/normalize.rb
%{ruby_libdir}/unicode_normalize/tables.rb
%{ruby_libdir}/uri
%{ruby_libdir}/webrick
%{ruby_libdir}/yaml
%dir %{ruby_libarchdir}
%{ruby_libarchdir}/cgi/escape.so
%{ruby_libarchdir}/continuation.so
%{ruby_libarchdir}/coverage.so
%{ruby_libarchdir}/date_core.so
%{ruby_libarchdir}/dbm.so
%dir %{ruby_libarchdir}/digest
%{ruby_libarchdir}/digest.so
%{ruby_libarchdir}/digest/*.so
%dir %{ruby_libarchdir}/enc
%{ruby_libarchdir}/enc/*.so
%dir %{ruby_libarchdir}/enc/trans
%{ruby_libarchdir}/enc/trans/*.so
%{ruby_libarchdir}/etc.so
%{ruby_libarchdir}/fcntl.so
%{ruby_libarchdir}/fiber.so
%{ruby_libarchdir}/fiddle.so
%{ruby_libarchdir}/gdbm.so
%dir %{ruby_libarchdir}/io
%{ruby_libarchdir}/io/nonblock.so
%{ruby_libarchdir}/io/wait.so
%{ruby_libarchdir}/nkf.so
%{ruby_libarchdir}/objspace.so
%{ruby_libarchdir}/pathname.so
%{ruby_libarchdir}/pty.so
%dir %{ruby_libarchdir}/racc
%{ruby_libarchdir}/racc/*.so
%{ruby_libarchdir}/rbconfig.rb
%dir %{ruby_libarchdir}/rbconfig
%{ruby_libarchdir}/rbconfig/*.so
%{ruby_libarchdir}/readline.so
%{ruby_libarchdir}/ripper.so
%{ruby_libarchdir}/sdbm.so
%{ruby_libarchdir}/socket.so
%{ruby_libarchdir}/stringio.so
%{ruby_libarchdir}/strscan.so
%{ruby_libarchdir}/syslog.so
%{ruby_libarchdir}/zlib.so
%{_mandir}/man1/erb.1.*
%{_mandir}/man1/ruby.1.*
%{_datadir}/emacs/site-lisp/*
%config(noreplace) %{_sysconfdir}/emacs/site-start.d/*
%{_sysconfdir}/rpm/macros.d/ruby.macros
%{_datadir}/ruby/vendor_ruby
%{_libdir}/ruby/vendor_ruby
%dir %{gem_dir}/specifications/default
# TODO: Split those out
%{gem_dir}/specifications/default/cmath-%{cmath_version}.gemspec
%{gem_dir}/specifications/default/csv-%{csv_version}.gemspec
%{gem_dir}/specifications/default/date-%{date_version}.gemspec
%{gem_dir}/specifications/default/dbm-%{dbm_version}.gemspec
%{gem_dir}/specifications/default/etc-%{etc_version}.gemspec
%{gem_dir}/specifications/default/fcntl-%{fcntl_version}.gemspec
%{gem_dir}/specifications/default/fiddle-%{fiddle_version}.gemspec
%{gem_dir}/specifications/default/fileutils-%{fileutils_version}.gemspec
%{gem_dir}/specifications/default/gdbm-%{gdbm_version}.gemspec
%{gem_dir}/specifications/default/ipaddr-%{ipaddr_version}.gemspec
%{gem_dir}/specifications/default/scanf-%{scanf_version}.gemspec
%{gem_dir}/specifications/default/sdbm-%{sdbm_version}.gemspec
%{gem_dir}/specifications/default/stringio-%{stringio_version}.gemspec
%{gem_dir}/specifications/default/strscan-%{strscan_version}.gemspec
%{gem_dir}/specifications/default/webrick-%{webrick_version}.gemspec
%{gem_dir}/specifications/default/zlib-%{zlib_version}.gemspec

%files doc
%{_datadir}/ri
%{_datadir}/doc/ruby

%files -n %{libname}
%{_libdir}/libruby.so.%{subver}
%{_libdir}/libruby.so.%{rubyapi}

%files devel
%{_includedir}/*
%{_libdir}/libruby.so
%{_libdir}/pkgconfig/*.pc

%files irb
%{_bindir}/irb
%{ruby_libdir}/irb.rb
%{ruby_libdir}/irb
%{_mandir}/man1/irb.1*

%files power_assert
%{gem_dir}/gems/power_assert-%{power_assert_version}
%{gem_dir}/specifications/power_assert-%{power_assert_version}.gemspec

%files io-console
%{ruby_libdir}/io
%{ruby_libarchdir}/io/console.so
%{gem_dir}/specifications/default/io-console-%{io_console_version}.gemspec

%files test-unit
%{gem_dir}/gems/test-unit-*
%{gem_dir}/specifications/test-unit-%{test_unit_version}.gemspec

%if %build_rubygems
%files RubyGems
%{_bindir}/gem
%{_sysconfdir}/rpm/macros.d/rubygems.macros
%dir %{rubygems_dir}
%{rubygems_dir}/rubygems
%{rubygems_dir}/rubygems.rb
%{rubygems_dir}/ubygems.rb
%{_rpmconfigdir}/fileattrs/rubygems.attr
%{_rpmconfigdir}/rubygems.req
%{_rpmconfigdir}/rubygems.prov
%dir %{gem_dir}
%dir %{gem_dir}/build_info
%dir %{gem_dir}/cache
%dir %{gem_dir}/doc
%dir %{gem_dir}/extensions
%dir %{gem_dir}/gems
%dir %{gem_dir}/specifications
%endif
%exclude %{gem_dir}/cache/*

%if %build_minitest
%files minitest
%endif
%exclude_minitest %{gem_dir}/gems/minitest-%{minitest_version}
%exclude_minitest %{gem_dir}/specifications/minitest-%{minitest_version}.gemspec

%if %build_rake
%files rake
%endif
%exclude_rake %{_bindir}/rake
%exclude_rake %{_mandir}/man1/rake.1.*
%exclude_rake %{gem_dir}/gems/rake-%{rake_version}
%exclude_rake %{gem_dir}/specifications/rake-%{rake_version}.gemspec

%if %build_rdoc
%files rdoc
%endif
%exclude_rdoc %{ruby_libdir}/rdoc
%exclude_rdoc %{_bindir}/rdoc
%exclude_rdoc %{_bindir}/ri
%exclude_rdoc %{_mandir}/man1/ri.1.*
%exclude_rdoc %{gem_dir}/gems/rdoc-%{rdoc_version}
%exclude_rdoc %{gem_dir}/specifications/default/rdoc-%{rdoc_version}.gemspec

%if %build_json
%files json
%{ruby_libarchdir}/json
%endif
%exclude_json %{ruby_libdir}/json
%exclude_json %{ruby_libdir}/json.rb
%exclude_json %{gem_dir}/specifications/default/json-%{json_version}.gemspec

%if %build_bigdecimal
%files bigdecimal
%{ruby_libarchdir}/bigdecimal.so
%endif
%exclude_bigdecimal %{ruby_libdir}/bigdecimal
%exclude_bigdecimal %{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_version}.gemspec

%files openssl
%{ruby_libdir}/openssl
%{ruby_libdir}/openssl.rb
%{ruby_libarchdir}/openssl.so
%{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec

%files psych
%{ruby_libdir}/psych
%{ruby_libdir}/psych.rb
%{ruby_libarchdir}/psych.so
%{gem_dir}/specifications/default/psych-%{psych_version}.gemspec

%files did_you_mean
%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}
%exclude %{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/.*
%{gem_dir}/specifications/did_you_mean-%{did_you_mean_version}.gemspec

%files net-telnet
%{gem_dir}/gems/net-telnet-%{net_telnet_version}
%exclude %{gem_dir}/gems/net-telnet-%{net_telnet_version}/.*
%{gem_dir}/specifications/net-telnet-%{net_telnet_version}.gemspec

%files xmlrpc
%{gem_dir}/gems/xmlrpc-%{xmlrpc_version}
%{gem_dir}/specifications/xmlrpc-%{xmlrpc_version}.gemspec


%changelog
* Sun Dec 22 2019 pterjan <pterjan> 2.5.7-20.mga7
+ Revision: 1469611
- Add upstream patch to fix tests with recent openssl
- Update to 2.5.7 (CVE-2019-15845, CVE-2019-16201, CVE-2019-16254, CVE-2019-16255). Previous minor versions fix other vulnerabilities which are not built in this package in rdoc and rubygems but better get the full update as it also contains bug fixes.

* Sun Oct 21 2018 pterjan <pterjan> 2.5.3-20.mga7
+ Revision: 1323468
- Update to 2.5.3

* Sun Sep 23 2018 umeabot <umeabot> 2.5.1-19.mga7
+ Revision: 1300870
- Mageia 7 Mass Rebuild

* Sun Jun 17 2018 luigiwalser <luigiwalser> 2.5.1-18.mga7
+ Revision: 1237492
- rebuild for gdbm

* Sun Apr 29 2018 pterjan <pterjan> 2.5.1-17.mga7
+ Revision: 1223656
- Drop rdoc, we have a newer gem
- Update to 2.5.1
+ wally <wally>
- sync .spec a bit with Fedora for aarch64
- add patch from upstream to increase timeout for test_clear_unreachable_keyword_args to fix aarch64 build error

* Sat Jan 06 2018 pterjan <pterjan> 2.5.0-16.mga7
+ Revision: 1190623
- Sync patches with Fedora

* Mon Jan 01 2018 pterjan <pterjan> 2.5.0-8.mga7
+ Revision: 1188892
- Adapt upstream patch to fix a segfault

* Mon Jan 01 2018 pterjan <pterjan> 2.5.0-7.mga7
+ Revision: 1188465
- Rebuild for Ruby 2.5

* Sun Dec 31 2017 pterjan <pterjan> 2.5.0-6.mga7
+ Revision: 1188444
- Fix my workaround...

* Sun Dec 31 2017 pterjan <pterjan> 2.5.0-5.mga7
+ Revision: 1188438
- Workaround loadpath issue

* Sun Dec 31 2017 pterjan <pterjan> 2.5.0-4.mga7
+ Revision: 1188425
- Increase release as net-telnet didn't change version
- Update to 2.5.0

* Sat Dec 30 2017 luigiwalser <luigiwalser> 2.4.3-3.mga7
+ Revision: 1188060
- 2.4.3

* Sun Dec 03 2017 josh <josh> 2.4.2-2.mga7
+ Revision: 1180909
- Bump version to rebuild against libreadline.so.7
- Replace devel BuildRequires with pkgconfig

* Thu Oct 05 2017 pterjan <pterjan> 2.4.2-1.mga7
+ Revision: 1169199
- Fix file lists
- Update openssl version
- fix lib version
- Update to 2.4.2

* Sun Sep 17 2017 pterjan <pterjan> 2.4.1-15.mga7
+ Revision: 1155105
- Fix tests failing on the build system
- Fix build with some disabled extensions and restore tests
- json is now in a separate package

* Thu Sep 14 2017 pterjan <pterjan> 2.4.1-14.mga7
+ Revision: 1153712
- Add missing openssl.rb

* Sat Sep 02 2017 pterjan <pterjan> 2.4.1-13.mga7
+ Revision: 1150973
- Require rubygems, ruby is very upset without it

* Fri Sep 01 2017 pterjan <pterjan> 2.4.1-12.mga7
+ Revision: 1150389
- I failed to disable the building of unwanted extensions/gems so exclude the files
- Disable more updated subpackages
- Fix doubly packages psych files
- Disable rubygems package to update it separately
- Few more moves
- Move more things to rubygems package
- Move back rubygems.macros to rubygems package

* Tue Aug 15 2017 pterjan <pterjan> 2.4.1-9.mga7
+ Revision: 1141087
- Add macros from fedora to add/remove gem dependencies

* Tue Aug 15 2017 pterjan <pterjan> 2.4.1-8.mga7
+ Revision: 1140696
- Add one more dependency

* Tue Aug 15 2017 pterjan <pterjan> 2.4.1-7.mga7
+ Revision: 1140659
- gem install into BUILD dir, build in the build section, and manually copy files. That fixes finding sources for debuginfo

* Tue Aug 15 2017 pterjan <pterjan> 2.4.1-6.mga7
+ Revision: 1140636
- Add another missing dependency
- Make gem install verbose and use --build-root
- Add another missing dependency

* Mon Aug 14 2017 pterjan <pterjan> 2.4.1-5.mga7
+ Revision: 1140361
- Manually add dependencies, they generators are in this package which is not installed during build

* Mon Aug 14 2017 pterjan <pterjan> 2.4.1-4.mga7
+ Revision: 1140339
- Fix json conflict
- Fix file list
- Add back rubygems.macros

* Mon Aug 14 2017 pterjan <pterjan> 2.4.1-2.mga7
+ Revision: 1140286
- Fix group

* Mon Aug 14 2017 pterjan <pterjan> 2.4.1-1.mga7
+ Revision: 1140278
- Fix file list
- Move json.rb to the right subpackage
- Fix some missed renames
- Simplify package, always bootstrap (fixes gem tests), and add new packages
- tk is gone
- Disable one more gem test, I still haven't found why they fail
- Use gem_dir instead of gems_dir, to be closer to fedora, and use global in more places
- Revert some local tests
- Update to 2.4.1 and pull in a bunch a Fedora changes
- Backport fix for CVE-2016-2339
- Update to latest bugfix release of 2.2 branch
- Run all tests during build (except the gem ones that need to be checked/fixed)
- Fix test_empty_data with CVE-2016-7798 patch

* Sun Oct 09 2016 pterjan <pterjan> 2.2.5-15.mga6
+ Revision: 1059716
- Add patch for CVE-2016-7798

* Thu Sep 08 2016 luigiwalser <luigiwalser> 2.2.5-14.mga6
+ Revision: 1050451
- 2.2.5 (sync with f22)

* Thu Mar 03 2016 umeabot <umeabot> 2.2.4-13.mga6
+ Revision: 984820
- Rebuild for openssl
+ pterjan <pterjan>
- Please perl-Youri-Package-RPM-Updater

* Tue Dec 29 2015 pterjan <pterjan> 2.2.4-12.mga6
+ Revision: 916704
- Bump release for subpackages which did not change version :(
- Update to 2.2.4
- Rever the io-console change, separate gem is older
- Don't ship io-console, we have a separate package

* Sat Dec 19 2015 pterjan <pterjan> 2.2.3-11.mga6
+ Revision: 912333
- Do not ship rake.rb, rdoc.rb and psych.rb in main package

* Sun Nov 01 2015 pterjan <pterjan> 2.2.3-10.mga6
+ Revision: 897270
- Ship all subpackages that are not packages separately

* Sat Oct 24 2015 pterjan <pterjan> 2.2.3-9.mga6
+ Revision: 895045
- Fix dependencies and disable gem subpackages

* Fri Oct 23 2015 pterjan <pterjan> 2.2.3-8.mga6
+ Revision: 894524
- Avoid file conflicts

* Fri Oct 23 2015 pterjan <pterjan> 2.2.3-7.mga6
+ Revision: 894486
- Force provides
- Provide the same ruby(abi) that we require

* Fri Oct 23 2015 pterjan <pterjan> 2.2.3-6.mga6
+ Revision: 894469
- Rebuild 2/2 to get proper dependencies

* Fri Oct 23 2015 pterjan <pterjan> 2.2.3-5.mga6
+ Revision: 894465
- Rebuild 1/2 to get proper dependencies
- Update gems path in the dependency extractor

* Fri Oct 23 2015 pterjan <pterjan> 2.2.3-4.mga6
+ Revision: 894460
- re enable bootstrap
- use the defined release_string macro (and fix it)
- build gems to allow bootstrap
- various fixes and cleanups, not yet tested if more are needed
+ blino <blino>
- rebuild with bootstrap since RubyGems should be installable again

* Fri Oct 23 2015 blino <blino> 2.2.3-2.mga6
+ Revision: 894369
- remove gems cache (build was failing only in bootstrap mode before, now fails everytime since we do not install bundles in removed home dir anymore)
- stop removing gem dir in home now that all install paths should be ok
- update do-not-install-to-user-dir to handle bundle gems as well
- rebuild in bootstrap mode to be able to rebuild ruby-json which is required by ruby-RubyGems and thus ruby
+ pterjan <pterjan>
- Fix file list
- Fix regex

* Wed Oct 21 2015 shlomif <shlomif> 2.2.3-1.mga6
+ Revision: 893775
- New version 2.2.3 - synced in part from Fedora.
+ pterjan <pterjan>
- Fix dependency extraction
- Better patch fix for bootstrap

* Sat Oct 17 2015 pterjan <pterjan> 2.0.0.p645-5.mga6
+ Revision: 892281
- Define gems_dir in ruby package as it is used in rubygems.attr and we don't require Rubygems in bootstrap mode

* Fri Oct 16 2015 pterjan <pterjan> 2.0.0.p645-4.mga6
+ Revision: 892256
- fix user-dir patch to work in bootstrap

* Sun Oct 11 2015 pterjan <pterjan> 2.0.0.p645-3.mga6
+ Revision: 889596
- Add upstream patch to support Tk 8.6
+ tv <tv>
- rebuild for tk 8.6
+ daviddavid <daviddavid>
- rebuild for new tcl/tk 8.6.4

* Thu Apr 30 2015 pterjan <pterjan> 2.0.0.p645-1.mga5
+ Revision: 820881
- Drop applied patch
- Update to p645 (CVE-2015-1855)

* Fri Nov 14 2014 pterjan <pterjan> 2.0.0.p598-1.mga5
+ Revision: 796908
- Update to 2.0.0-p598 (CVE-2014-8090)
+ luigiwalser <luigiwalser>
- add upstream patch to fix CVE-2014-4975

* Mon Oct 27 2014 pterjan <pterjan> 2.0.0.p594-1.mga5
+ Revision: 793866
- 2.0.0-p594 (CVE-2014-8080 + Insecure SSL/TLS options are now turn off by default + many bug fixes)

* Wed Oct 15 2014 umeabot <umeabot> 2.0.0.p451-6.mga5
+ Revision: 748136
- Second Mageia 5 Mass Rebuild

* Tue Sep 16 2014 umeabot <umeabot> 2.0.0.p451-5.mga5
+ Revision: 688736
- Mageia 5 Mass Rebuild

* Thu Sep 11 2014 tv <tv> 2.0.0.p451-4.mga5
+ Revision: 674762
- move rubygem req/prov generator in ruby instead of -devel subpackage
  (this one is actually required by gems but not always -devel)

* Mon Sep 08 2014 tv <tv> 2.0.0.p451-3.mga5
+ Revision: 673709
- add RPM dependency generators for RubyGems

* Mon Apr 21 2014 pterjan <pterjan> 2.0.0.p451-2.mga5
+ Revision: 617250
- Fix version in pkg-config file (mga#13240)

* Mon Mar 10 2014 pterjan <pterjan> 2.0.0.p451-1.mga5
+ Revision: 601635
- Add upstream patch to fix build with new readline
- Patch to force installing bundled gems to system directory even if build is running as user
- Drop patch already applied
- Add fedora patch preventing potential multilib conflict
- Update to p451

* Fri Dec 27 2013 pterjan <pterjan> 2.0.0.p247-8.mga4
+ Revision: 560987
- Fix use of wrong macro now that they are different
- Move rubygems out of gems dir as this brakes bundler

* Sat Nov 23 2013 fwang <fwang> 2.0.0.p247-7.mga4
+ Revision: 552441
- add upstream patch to fix CVE-2013-4164

* Mon Oct 21 2013 umeabot <umeabot> 2.0.0.p247-6.mga4
+ Revision: 538717
- Mageia 4 Mass Rebuild

* Wed Oct 02 2013 fwang <fwang> 2.0.0.p247-5.mga4
+ Revision: 490240
- fix issues with DESTDIR (patch from fedora)
+ pterjan <pterjan>
- Switch to Ruby 2
- Grrr failed again

* Wed Aug 21 2013 fwang <fwang> 2.0.0.p247-4.mga4
+ Revision: 468908
- do not build bootstrap
- rebuild to drop temporary obsoletes
- temporarily obsolete newly built packages
- move into current