Author: spuk
Date: Mon Dec 18 13:47:40 2006
New Revision: 98532
Modified:
packages/cooker/ruby/current/SPECS/ruby.spec
Log:
Mostly build changes:
- dependencies fixes
- don 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
Modified: packages/cooker/ruby/current/SPECS/ruby.spec
==============================================================================
--- packages/cooker/ruby/current/SPECS/ruby.spec (original)
+++ packages/cooker/ruby/current/SPECS/ruby.spec Mon Dec 18 13:47:40 2006
@@ -2,18 +2,18 @@
Name: ruby
Version: 1.8.5
%define subver 1.8
-Release: %mkrel 4
+Release: %mkrel 5
License: GPL
Group: Development/Other
-BuildRequires: XFree86-devel
BuildRequires: autoconf2.5
BuildRequires: byacc
BuildRequires: ncurses-devel
BuildRequires: readline-devel
-BuildRequires: tcl tcl-devel tk tk-devel
-BuildRequires: db4.2-devel
+BuildRequires: tcl-devel tk-devel
+BuildRequires: db4.3-devel
BuildRequires: libgdbm-devel >= 1.8.3
BuildRequires: openssl-devel
+BuildRequires: zlib1-devel
Obsoletes: ruby-rexml
Provides: ruby-rexml
@@ -91,7 +91,7 @@
%patch2 -p0 -b .cve-2006-5467
%patch3 -p1 -b .cve-2006-6303
-sed -i -e "s�| sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'��" configure.in
+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 && {
@@ -106,20 +106,6 @@
%configure2_5x --enable-shared --disable-rpath --enable-pthread
%make
-for f in `find sample -type f`
-do
- if file -bi "$f" | grep 'text' >/dev/null;
- then
- if head -n1 "$f" | grep '^#!' >/dev/null;
- then
- sed -i 's|/usr/local/bin|/usr/bin|' "$f"
- sed -i 's|\./ruby|/usr/bin/ruby|' "$f"
- chmod 0755 "$f"
- else
- chmod 0644 "$f"
- fi
- fi
-done
%install
rm -rf %buildroot
@@ -141,25 +127,21 @@
(cd %buildroot%{_docdir}/%{name}-%{version} ; tar xfj %{SOURCE2} ; cd Pro*; mv
-f html/* . ; rm -rf html xml)
-(cd %buildroot ; find usr/lib/%{name}/%{subver} ! -type d -printf "/%%p\n") >
%{name}.list
-(cd %buildroot ; find usr/lib/%{name}/%{subver} -type d -printf "%%%%dir
/%%p\n") >> %{name}.list
+# 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
-perl -ni -e 'print if !m|/(tcl)?tk|' %{name}.list
-perl -ni -e 'print if !m|%{my_target_cpu}-%{_host_os}/.*[ha]$|' %{name}.list
-
-for f in `find %buildroot -type f`
-do
- if file -bi "$f" | grep 'text' >/dev/null;
- then
- if head -n1 "$f" | grep '^#!' >/dev/null;
- then
- sed -i 's|/usr/local/bin|/usr/bin|' "$f"
- chmod 0755 "$f"
- else
- chmod 0644 "$f"
- fi
- fi
-done
# Install the rpm macros
mkdir -p %buildroot%{_sysconfdir}/rpm/macros.d