home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 November / VPR9911B.ISO / misc / src / trees / updpcmcia < prev    next >
Text File  |  1999-08-30  |  4KB  |  175 lines

  1. #!/bin/sh
  2.  
  3. LIBS="libc"
  4. # chmod could be a VIRTBIN, but the runinstall2 script uses it to set things up
  5. SBINS="cardmgr"
  6. KERNELROOT=/tmp/updpcmcia.kernel-$$
  7.  
  8. export PATH=$PATH:/sbin:/usr/sbin
  9.  
  10. usage () {
  11.     echo "updpcmcia: <imagetree> <rpm-tree> <kernel-version> [dep]" 2>&1
  12.     exit 1
  13. }
  14.  
  15. if [ -z "$1" -o -z "$2" -o -z "$3" ]; then
  16.     usage
  17. fi
  18.  
  19. mkdir -p $KERNELROOT
  20. rpm2cpio $2/kernel-pcmcia-cs-$3.i386.rpm | (cd $KERNELROOT; cpio -id)
  21. rpm2cpio $2/kernel-$3.i386.rpm | (cd $KERNELROOT; cpio -id)
  22.  
  23. if [ ! -d "$1/misc/src/install" ]; then
  24.     echo "$1 is not a valid directory" 2>&1
  25.     usage
  26. fi
  27.  
  28. if [ ! -d "$KERNELROOT/lib/modules/$3/pcmcia" ]; then
  29.     echo "$3 is not a valid modules directory" 2>&1
  30.     usage
  31. fi
  32.  
  33. PATH=$1/misc/src/install:/usr/sbin:/usr/bin:/bin:/sbin
  34.  
  35. cp -a /lib/ld-2*.so supp/lib
  36. cp -a /lib/ld-linux.so.2* supp/lib
  37.  
  38. cp -a /lib/ld-2*.so ../../../LASER5/instimage/lib
  39. cp -a /lib/ld-linux.so.2* ../../../LASER5/instimage/lib
  40.  
  41. for n in $CDLIBS; do
  42.     (cd /lib; tar cSpf - ${n}[-.]*) | (cd ../../../LASER5/instimage/lib; tar xSpf -)
  43. done
  44.  
  45. for n in $LIBS; do
  46.     # this preserves hard links
  47.     (cd /lib; tar cSpf - ${n}[-.]*) | (cd supp/lib; tar xSpf -)
  48. done
  49.  
  50. (cd supp/lib; file * | grep 'shared object' | cut -d: -f1 | xargs strip)
  51.  
  52. cat > supp/usr/bin/runinstall2 <<EOF
  53. #!/bin/sh
  54.  
  55. PATH=/usr/bin:/bin
  56.  
  57. echo "" > /sbin/install
  58.  
  59. if [ -f /sbin/cardmgr ]; then
  60.     > /modules/modules.cgz
  61. fi
  62.  
  63. > /sbin/install2
  64. chmod 755 /sbin/install2
  65.  
  66. bunzip2 < /usr/bin/install2.bz2 > /sbin/install2
  67. bunzip2 < /usr/bin/fdisk.bz2 > /tmp/fdisk
  68. chmod 755 /tmp/fdisk
  69.  
  70. rm /sbin/install
  71. ln -sf /sbin/install2 /sbin/insmod
  72. ln -sf /sbin/install2 /sbin/rmmod
  73.  
  74. if [ -f /sbin/cardmgr ]; then
  75.     rm /modules/modules.cgz
  76. fi
  77.  
  78. exec /sbin/install2 \$*
  79. EOF
  80. chmod 755 supp/usr/bin/runinstall2
  81.  
  82. cat > ../../../LASER5/instimage//usr/bin/runinstall2 <<EOF
  83. #!/bin/sh
  84.  
  85. rm /sbin/install
  86. ln -sf /usr/bin/install2 /sbin/insmod
  87. ln -sf /usr/bin/install2 /sbin/rmmod
  88.  
  89. exec /usr/bin/install2 \$*
  90. EOF
  91. chmod 755 ../../../LASER5/instimage//usr/bin/runinstall2
  92.  
  93. for n in $BINS; do
  94.     rm -f supp/usr/bin/$n
  95.     cp -af `which $n` supp/usr/bin
  96. done
  97.  
  98. ln -sf bzip2 supp/usr/bin/bunzip2
  99. ln -sf ash supp/usr/bin/sh
  100.  
  101. for n in $VIRTBINS; do
  102.     ln -sf /sbin/install2 supp/usr/bin/$n
  103. done
  104.  
  105. for n in $ZBINS; do
  106.     rm -f supp/usr/bin/$n
  107.     rm -f ../../../LASER5/instimage/usr/bin/$n
  108.     cp -af `which $n` ../../../LASER5/instimage/usr/bin
  109.     strip `which $n`
  110.     bzip2 -9 < `which $n` > supp/usr/bin/$n.bz2
  111.     ln -sf /tmp/$n supp/usr/bin/$n
  112. done
  113.  
  114. for n in $CDBINS; do
  115.     rm -f ../../../LASER5/instimage/usr/bin/$n
  116.     cp -af `which $n` ../../../LASER5/instimage/usr/bin
  117. done
  118.  
  119. ln -sf bash ../../../LASER5/instimage/usr/bin/sh
  120. ln -sf gzip ../../../LASER5/instimage/usr/bin/gunzip
  121. ln -sf vim ../../../LASER5/instimage/usr/bin/vi
  122.  
  123. for n in $CDVIRTBINS; do
  124.     ln -sf install2 ../../../LASER5/instimage/usr/bin/$n
  125. done
  126.  
  127. cp ../install/install2.tr supp/usr/etc
  128. cp ../install/install2.tr ../../../LASER5/instimage/usr/etc
  129.  
  130. if echo $3 | grep -s -e -; then
  131.     shortname=`echo $3 | sed 's/-.*//'`
  132. else
  133.     shortname=$3
  134. fi
  135.  
  136. rm -rf pcmcia/lib/modules
  137. mkdir -p pcmcia/lib/modules/${shortname}/pcmcia
  138. mkdir -p pcmcia/etc/pcmcia
  139. mkdir -p pcmcia/sbin
  140.  
  141. #cp $KERNELROOT/lib/modules/$3/pcmcia/* pcmcia/lib/modules/${shortname}/pcmcia
  142.  
  143. rm -f pcmcia/etc/pcmcia/*
  144. #cp -av $KERNELROOT/etc/pcmcia/* pcmcia/etc/pcmcia
  145.  
  146. # unfotunately, this breaks things
  147. # strip --strip-unneeded pcmcia/lib/modules/$2/pcmcia/*.o
  148.  
  149. for n in $MODLINKS; do 
  150.     ln -s /modules pcmcia/lib/modules/${shortname}/$n
  151. done
  152.  
  153. (cd pcmcia/lib/modules; ln -s * preferred) 
  154.  
  155. #for n in $PCMCIA_SBINS; do
  156. #    rm -f pcmcia/sbin/$n
  157. #    cp -af $KERNELROOT/sbin/$n pcmcia/sbin/$n
  158. #done
  159.  
  160. rm -rf pcmcia-disk
  161. mkdir pcmcia-disk
  162. echo "Letting NFS settle down"
  163. sleep 5
  164. (cd pcmcia; find . -type f -o -type l | cpio -H crc -o) | gzip -9 > \
  165.      pcmcia-disk/pcmcia.cgz
  166.  
  167. mkdir -p pcmcia-disk/lib
  168. cp -a /lib/ld-2*.so pcmcia-disk/lib
  169. cp -a /lib/ld-linux.so.2* pcmcia-disk/lib
  170. (cd /lib; tar cSpf - libc[-.]*) | (cd pcmcia-disk/lib; tar xSpf -)
  171. (cd pcmcia-disk/lib; strip *)
  172.  
  173. (cd ../../../LASER5/instimage/; tar cSpf - modules) | (cd supp; tar xSpf -)
  174.  
  175.