home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / lib / rpm / brp-sparc64-linux < prev    next >
Text File  |  2006-11-29  |  1KB  |  43 lines

  1. #!/bin/sh
  2. # If using normal root, avoid changing anything.
  3. if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
  4.     exit 0
  5. fi
  6. files=
  7. LC_ALL=
  8. LANG=
  9. LC_TIME=POSIX
  10.  
  11. # Move 64bit ELF objects from /lib, /usr/lib, /usr/X11R6/lib to */lib64
  12. # directories
  13.  
  14. for f in `find $RPM_BUILD_ROOT{,/usr,/usr/X11R6}/lib -maxdepth 1 -type f -o -type l 2>/dev/null`; do
  15.     ff=$f
  16.     while [ -L $ff ]; do
  17.         l=`ls -l $ff | awk '{ print $11 }'`
  18.         case $l in
  19.         /*) ff=$RPM_BUILD_ROOT$l ;;
  20.         *) ff=`dirname $ff`/$l ;;
  21.         esac
  22.     done
  23.     if file $ff 2>/dev/null | grep ': ELF 64-bit .SB' | grep -v ': ELF 64-bit .SB executable' > /dev/null; then
  24.         files="$files $f"
  25.     elif file $ff 2>/dev/null | grep 'ar archive' > /dev/null; then
  26.         if objdump -h $ff 2>/dev/null | grep ':[        ]*file format elf64-sparc' > /dev/null; then
  27.             files="$files $f"
  28.         fi
  29.     fi
  30. done
  31. for f in $files; do
  32.     d=`dirname $f`
  33.     n=`basename $f`
  34.     if [ ! -d ${d}64 ]; then mkdir -p ${d}64; fi
  35.     if [ -L $f ]; then
  36.         l=`ls -l $f | awk '{ print $11 }' | sed 's_lib\(/[^/]*\)$_lib64\1_'`
  37.         ln -sf $l ${d}64/$n
  38.         rm -f $f
  39.     else
  40.         mv -f $f ${d}64/$n
  41.     fi
  42. done
  43.