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

Reply via email to