Skip to content

Instantly share code, notes, and snippets.

@ik5
Last active May 16, 2016 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ik5/57e61567ecb3f99bb8ab to your computer and use it in GitHub Desktop.
Save ik5/57e61567ecb3f99bb8ab to your computer and use it in GitHub Desktop.
A ruby 2.2.x rpm spec file
%define rubyver 2.2.0
%define debug_package %{nil}
Name: ruby
Version: %{rubyver}
Release: 1%{?dist}
License: Ruby License/GPL - see COPYING
URL: http://www.ruby-lang.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel unzip openssl-devel db4-devel byacc make libyaml-devel valgrind-devel gmp-devel clang
Requires: ncurses gdbm db4 libyaml gmp readline glibc
Source0: ftp://ftp.ruby-lang.org/pub/ruby/ruby-%{rubyver}.tar.bz2
Summary: An interpreter of object-oriented scripting language
Group: Development/Languages
Conflicts: ruby(abi) <= 2.1.0
Conflicts: ruby(abi) >= 2.3.0
Provides: ruby(abi) = %{rubyver}
Provides: ruby-irb
Provides: ruby-rdoc
Provides: ruby-libs
Provides: ruby-devel
Provides: rubygems
#Obsoletes: ruby
#Obsoletes: ruby-libs
#Obsoletes: ruby-irb
#Obsoletes: ruby-rdoc
#Obsoletes: ruby-devel
#Obsoletes: rubygems
%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.
%prep
%setup -n ruby-%{rubyver}
%build
export CFLAGS="$RPM_OPT_FLAGS -Wall -fno-strict-aliasing"
export CC="/usr/bin/clang"
%configure \
--enable-shared \
--disable-rpath \
--without-X11 \
--without-tk \
--includedir=%{_includedir}/ruby \
--libdir=%{_libdir}
make %{?_smp_mflags}
%install
# installing binaries ...
make install DESTDIR=$RPM_BUILD_ROOT
#we don't want to keep the src directory
rm -rf $RPM_BUILD_ROOT/usr/src
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
%{_bindir}
%{_includedir}
%{_datadir}
%{_libdir}
%changelog
* Fri Dec 26 2014 Ido Kanner <idok@linesip.com> - 2.2.0
- Added conflict to 2.1.x and 2.3.0
- Building using clang instead of gcc
- Removed debug package, can't find how to build it using clang
* Fri Nov 14 2014 Ido Kanner <idok@linesip.com> - 2.1.5
- Added also conflict to 2.2.0 and above
* Fri Sep 19 2014 Ido Kanner <idok@linesip.com> - 2.1.3
* Mon Sep 15 2014 Ido Kanner <idok@linesip.com> - 2.1.2
- Added additional dependencies
- Added requirements
* Sat Apr 05 2014 Ido Kanner <idok@linesip.com> - 2.1.1
- Forked support for Ruby 2.1.1
* Sat Apr 05 2014 Ido Kanner <idok@linesip.com> - 2.0.0-p451
- Also fixed the provide script
* Fri Dec 13 2013 Ido Kanner <idok@linesip.com> - 2.0.0-p353
* Sun Aug 18 2013 Ido Kanner <idok@linesip.com> - 2.0.0-p247
* Mon Jun 12 2013 Ido Kanner <idok@linesip.com> - 2.0.0-p195
* Mon May 13 2013 Ido Kanner <idok@linesip.com> - 2.0.0-p0
* Tue Feb 26 2013 Ido Kanner <idok@linesip.com> - 1.9.3-p392
* Sun Nov 11 2012 Ido Kanner <idok@linesip.com> - 1.9.3-p327
* Wed Feb 29 2012 Ido Kanner <idok@linesip.com> - 1.9.3-p125
- Update ruby version to 1.9.3-p125
* Wed Jan 18 2012 Mandi Walls <mandi.walls@gmail.com> - 1.9.3-p0
- Update ruby version to 1.9.3-p0
* Mon Aug 29 2011 Gregory Graf <graf.gregory@gmail.com> - 1.9.2-p290
- Update ruby version to 1.9.2-p290
* Sat Jun 25 2011 Ian Meyer <ianmmeyer@gmail.com> - 1.9.2-p180-2
- Remove non-existant --sitearchdir and --vedorarchdir from %configure
- Replace --sitedir --vendordir with simpler --libdir
- Change %{_prefix}/share to %{_datadir}
* Tue Mar 7 2011 Robert Duncan <robert@robduncan.co.uk> - 1.9.2-p180-1
- Update prerequisites to include make
- Update ruby version to 1.9.2-p180
- Install /usr/share documentation
- (Hopefully!?) platform agnostic
* Sun Jan 2 2011 Ian Meyer <ianmmeyer@gmail.com> - 1.9.2-p136-1
- Initial spec to replace system ruby with 1.9.2-p136
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment