Summary: Object Oriented Script Language Name: ruby Version: 1.8.5 %define subver 1.8 %define subrel 2 Release: %mkrel 5 License: GPL Group: Development/Other BuildRequires: autoconf2.5 BuildRequires: byacc BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: tcl-devel tk-devel BuildRequires: db4.2-devel BuildRequires: libgdbm-devel >= 1.8.3 BuildRequires: openssl-devel BuildRequires: zlib1-devel Obsoletes: ruby-rexml Provides: ruby-rexml Source0: ftp://ftp.ruby-lang.org/pub/ruby/ruby-%{version}.tar.bz2 Source1: http://www.rubycentral.com/faq/rubyfaqall.html.bz2 Source2: http://dev.rubycentral.com/downloads/files/ProgrammingRuby-0.4.tar.bz2 Source3: ruby.macros Patch0: ruby-1.8.4-lib64.patch.bz2 Patch1: ruby-1.8.3-do-not-use-system-ruby-to-generate-ri-doc.patch.bz2 Patch2: ruby-CVE-2006-5467.patch Patch3: ruby-CVE-2006-6303.patch Patch4: ruby-1.8.5-CVE-2007-5162.patch Patch5: ruby-1.8.5-CVE-2007-5770.patch Patch6: ruby-1.8.4-ubu-CVE-2008-2662+2663+2664+2725+2726.patch Patch7: ruby-1.8-svn-CVE-2008-2376.patch Patch8: ruby-1.9-CVE-2008-1145.patch Patch9: ruby-1.8.5-svn-CVE-2008-1891.patch URL: http://www.ruby-lang.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot %define my_target_cpu %{_target_cpu} %ifarch ppc %define my_target_cpu powerpc %endif %ifarch ppc64 %define my_target_cpu powerpc64 %endif %ifarch amd64 %define my_target_cpu x86_64 %endif %package doc Summary: Documentation for the powerful language Ruby Group: Development/Other Requires: %{name} = %{version} %package devel Summary: Development file for the powerful language Ruby Group: Development/Other Requires: %{name} = %{version} %package tk Summary: Tk extension for the powerful language Ruby Group: Development/Other Requires: %{name} = %{version} %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. %prep %setup -q %patch0 -p0 -b .lib64 %patch1 -p0 -b .ri %patch2 -p0 -b .cve-2006-5467 %patch3 -p1 -b .cve-2006-6303 %patch4 -p0 -b .cve-2007-5162 %patch5 -p0 -b .cve-2007-5770 %patch6 -p1 -b .cve-2008-2662+2663+2664+2725+2726 %patch7 -p1 -b .cve-2008-2376 %patch8 -p0 -b .cve-2008-1145 %patch9 -p2 -b .cve-2008-1891 sed -i -e "s,| sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/',," configure.in %build echo '.text' | gcc -shared -o libdummy.so.0 -xassembler - -ltcl -ltk >& /dev/null && { if %{_bindir}/ldd libdummy.so.0 | grep -q "lib\(tcl\|tk\).so"; then echo "Your tcl/tk is broken, get one with versioning in the libraries." exit 1 fi rm -f libdummy.so.0 } CFLAGS=`echo %optflags | sed 's/-fomit-frame-pointer//'` %configure2_5x --enable-shared --disable-rpath --enable-pthread %make %install rm -rf %buildroot %makeinstall_std install-doc install -d %buildroot%{_docdir}/%{name}-%{version} cp -a COPYING* ChangeLog README* ToDo sample %buildroot%{_docdir}/%{name}-%{version} bzcat %{SOURCE1} > %buildroot%{_docdir}/%{name}-%{version}/FAQ.html 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 (cd %buildroot%{_docdir}/%{name}-%{version} ; tar xfj %{SOURCE2} ; cd Pro*; mv -f html/* . ; rm -rf html xml) # Make the file/dirs list, filtering out tcl/tk and devel files ( cd %buildroot \ && find usr/lib/ruby/%{subver} \ \( -not -type d -printf "/%%p\n" \) \ -or \( -type d -printf "%%%%dir /%%p\n" \) \ ) | egrep -v '/(tcl)?tk|(%{my_target_cpu}-%{_host_os}/.*[ha]$)' > %{name}.list # Fix scripts permissions and location find %buildroot sample -type f | file -i -f - | grep text | cut -d: -f1 >text.list cat text.list | xargs chmod 0644 # Magic grepping to get only files with '#!' in the first line cat text.list | xargs grep -n '^#!' | grep ':1:#!' | cut -d: -f1 >shebang.list cat shebang.list | xargs sed -i -e 's|/usr/local/bin|/usr/bin|; s|\./ruby|/usr/bin/ruby|' cat shebang.list | xargs chmod 0755 # Install the rpm macros mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d cp %{SOURCE3} %buildroot%{_sysconfdir}/rpm/macros.d %check make test %clean rm -rf %buildroot %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files -f %{name}.list %defattr(-, root, root) %dir %{_docdir}/%{name}-%{version} %{_docdir}/%{name}-%{version}/README %{_bindir}/* %dir %{_prefix}/lib/%{name}/ %{_libdir}/libruby.so.* %{_prefix}/lib/%{name}/site_ruby %{_mandir}/*/* %{_datadir}/emacs/site-lisp/* %config(noreplace) %{_sysconfdir}/emacs/site-start.d/* %{_sysconfdir}/rpm/macros.d/%{name}.macros %files doc %defattr(-, root, root) %{_datadir}/ri %{_docdir}/%{name}-%{version}/COPYING* %{_docdir}/%{name}-%{version}/ChangeLog %{_docdir}/%{name}-%{version}/README.* %{_docdir}/%{name}-%{version}/FAQ.html %{_docdir}/%{name}-%{version}/ToDo %{_docdir}/%{name}-%{version}/sample %{_docdir}/%{name}-%{version}/ProgrammingRuby* %files devel %defattr(-, root, root) %{_prefix}/lib/%{name}/%{subver}/%{my_target_cpu}-%{_host_os}/*.[ah] %{_libdir}/libruby-static.a %{_libdir}/libruby.so %files tk %defattr(-, root, root) %{_prefix}/lib/%{name}/%{subver}/%{my_target_cpu}-%{_host_os}/tcltk* %{_prefix}/lib/%{name}/%{subver}/%{my_target_cpu}-%{_host_os}/tk* %{_prefix}/lib/%{name}/%{subver}/tcltk* %{_prefix}/lib/%{name}/%{subver}/tk* %{_prefix}/lib/%{name}/%{subver}/test/unit/ui/tk %changelog * Tue Jul 01 2008 Gustavo De Nardin <gustavodn@mandriva.com> 1.8.5-5.2mdv2007.1 - P6: security fixes for CVE-2008-2662, CVE-2008-2663, CVE-2008-2664, CVE-2008-2725, CVE-2008-2726 - P7: security fix for CVE-2008-2376 - P8: security fix for CVE-2008-1145 - P9: security fix for CVE-2008-1891 * Tue Jan 29 2008 Gustavo De Nardin <gustavodn@mandriva.com> 1.8.5-5.1mdv2007.1 - P4: security fix for CVE-2007-5162 - P5: security fix for CVE-2007-5770 * Tue Dec 19 2006 Gustavo De Nardin <gustavodn@mandriva.com> 1.8.5-5mdv2007.0 + Revision: 98946 - db4.3 is not in main, and has very bad reputation, keep using db4.2 - Mostly build changes: - dependencies fixes . don't need full XFree86-devel, tcl/tk devel packages should be enough . add missing zlib1-devel BuildRequires, which before was probably being provided indirectly by XFree86-devel . update db4.2 -> db4.3 - avoid use of non-ascii chars in spec (parameter separator for sed command) - avoid implicitly requiring Perl for build (for filtering devel and tk files) - use file lists instead of shell loops for fixing permissions, for shorter build time * Wed Dec 06 2006 Pascal Terjan <pterjan@mandriva.org> 1.8.5-4mdv2007.1 + Revision: 91863 - CVE-2006-6303 * Mon Oct 30 2006 Pascal Terjan <pterjan@mandriva.org> 1.8.5-3mdv2007.1 + Revision: 73677 - CVE-2006-5467 - Import ruby