mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
5.3 KiB

  1. lvp_ver="0.4.1"
  2. rootdir="${base}/build/${ROCKCFG_ID}"
  3. ROCKdir="${rootdir}/ROCK"
  4. releasedir="${ROCKdir}/lvp_${lvp_ver}_${ROCKCFG_X86_OPT}"
  5. syslinux_ver="`sed -n 's,.*syslinux-\(.*\).tar.*,\1,p' ${base}/target/${target}/download.txt`"
  6. kernelversion="`grep '\[V\]' ${base}/package/base/linux24/linux24.desc | cut -f2 -d' '`"
  7. pkgloop
  8. . scripts/parse-config
  9. PATH="${base}/build/${ROCKCFG_ID}/${toolsdir}/diet-bin:${PATH}"
  10. echo_header "Creating LVP ..."
  11. echo_header "Checking for *.err files ..."
  12. if [ `find "${rootdir}/var/adm/logs/" -name '*err' 2>/dev/null | wc -l` -gt 0 ] ; then
  13. echo_status "Found some. This is bad :-("
  14. else
  15. echo_status "None found. Good :-)"
  16. echo_status "(Re)creating releasedir"
  17. rm -rf ${releasedir}
  18. mkdir -p ${releasedir}
  19. chmod 700 ${releasedir}
  20. if [ -f ${base}/target/${target}/${arch}/build.sh ]; then
  21. echo_status "Executing ${arch} specific build instructions."
  22. . ${base}/target/${target}/${arch}/build.sh
  23. fi
  24. echo_status "Creating initrd"
  25. echo_status "Creating directory structure"
  26. mkdir -p ${releasedir}/initrd
  27. cd ${releasedir}/initrd
  28. mkdir -p bin etc proc dev tmp mnt
  29. ln -sf bin sbin
  30. ln -sf . usr
  31. cd etc
  32. ln -sf /proc/mounts mtab
  33. ln -sf /proc/mounts fstab
  34. cd ..
  35. echo_status "Copying programs"
  36. for x in \
  37. bin/bash \
  38. bin/cat \
  39. bin/grep \
  40. bin/gzip \
  41. bin/ln \
  42. bin/ls \
  43. bin/mount \
  44. bin/umount \
  45. bin/rm \
  46. usr/bin/chroot \
  47. bin/find \
  48. bin/gawk \
  49. bin/loadkeys \
  50. lib/modules/${kernelversion}-rock/block \
  51. sbin/agetty \
  52. sbin/hwscan \
  53. usr/bin/eject \
  54. usr/sbin/lspci \
  55. usr/share/kbd/keymaps ; do
  56. mkdir -p ${x%/*}
  57. cp -ar ${rootdir}/${x} ${x}
  58. chmod u-s,g-s ${x}
  59. dynamic=`file ${x} | grep -c dynamic`
  60. if [ "${dynamic}" != "0" ] ; then
  61. echo_error "WARNING! ${x} is NOT linked statically!"
  62. fi
  63. done
  64. cp ${base}/target/${target}/${arch}/initrd/* bin/
  65. cd bin
  66. chmod +x *
  67. ln -sf gzip gunzip
  68. ln -sf gzip gzcat
  69. cd ..
  70. mv bin/linuxrc .
  71. cp ${rootdir}/sbin/insmod.static ${releasedir}/initrd/sbin/insmod
  72. for x in kallsyms ksyms lsmod modprobe rmmod ; do
  73. ln -sf /sbin/insmod ${releasedir}/initrd/sbin/${x}
  74. done
  75. echo_status "Copying kernel modules to initrd"
  76. cd ${releasedir}/initrd
  77. tar --use-compress-program=bzip2 -xf ${ROCKdir}/pkgs/linux24.tar.bz2 lib/
  78. echo_status "Creating the livesystem"
  79. echo_status "Creating directory structure"
  80. mkdir -p ${releasedir}/livesystem
  81. cd ${releasedir}/livesystem
  82. tar --use-compress-program=bzip2 -xf ${ROCKdir}/pkgs/00-dirtree.tar.bz2
  83. cd usr/
  84. rm -rf X11 X11R6
  85. mkdir X11R6
  86. ln -sf X11R6 X11
  87. cd ..
  88. echo_status "Copying programs"
  89. for x in \
  90. bin/bash \
  91. bin/cat \
  92. bin/find \
  93. bin/grep \
  94. bin/gzip \
  95. bin/ln \
  96. bin/mount \
  97. bin/mv \
  98. bin/rm \
  99. bin/sed \
  100. bin/sh \
  101. bin/uname \
  102. bin/umount \
  103. etc/mplayer/mplayer.conf \
  104. usr/share/mplayer/font-arial-24-iso-8859-1 \
  105. usr/X11/bin/XFree86 \
  106. usr/X11/bin/X \
  107. usr/X11/bin/startx \
  108. usr/X11/bin/xauth \
  109. usr/X11/bin/xinit \
  110. usr/X11/bin/xterm \
  111. usr/X11/lib/X11/fonts/misc \
  112. usr/bin/lvp \
  113. usr/bin/mplayer \
  114. usr/bin/tail \
  115. usr/sbin/lspci \
  116. sbin/losetup \
  117. ; do
  118. mkdir -p ${x%/*}
  119. cp -ar ${rootdir}/${x} ${x}
  120. chmod u-s,g-s ${x}
  121. dynamic=`file ${x} | grep -c dynamic`
  122. if [ "${dynamic}" != "0" ] ; then
  123. echo_error "WARNING! ${x} is NOT linked statically!"
  124. fi
  125. done
  126. cd etc/
  127. ln -sf /proc/mounts mtab
  128. cd ../usr/share/mplayer
  129. mv font-arial-24-iso-8859-1 font
  130. cd ../../..
  131. echo_status "Copying linuxrc as init-replacement ..."
  132. cp ${base}/target/${target}/${arch}/livesystem/linuxrc ${releasedir}/livesystem/linuxrc ; chmod +x ${releasedir}/livesystem/linuxrc
  133. echo_status "Copying startlvp script ..."
  134. cp ${base}/target/${target}/${arch}/livesystem/startlvp ${releasedir}/livesystem/sbin/; chmod +x ${releasedir}/livesystem/sbin/startlvp
  135. echo_status "Copying XF86Config ..."
  136. mkdir -p ${releasedir}/livesystem/etc/X11
  137. cp ${base}/target/${target}/${arch}/livesystem/XF86Config ${releasedir}/livesystem/etc/X11/XF86Config
  138. echo_status "Copying xinitrc ..."
  139. mkdir -p ${releasedir}/livesystem/usr/X11R6/lib/X11/xinit
  140. cp ${base}/target/${target}/${arch}/livesystem/xinitrc ${releasedir}/livesystem/usr/X11R6/lib/X11/xinit/xinitrc
  141. echo_status "Copying etc scripts ..."
  142. mkdir -p ${releasedir}/livesystem/etc/lvp
  143. for x in ${base}/target/${target}/${arch}/livesystem/etc_* ; do
  144. y=${x##*/}
  145. cp ${x} ${releasedir}/livesystem/${y//_/\/}
  146. done
  147. echo "LVP v${lvp_ver}" >>${releasedir}/livesystem/etc/VERSION
  148. echo_status "Compressing binaries ... "
  149. ${rootdir}/usr/bin/upx --best --crp-ms=999999 --nrv2d `find ${releasedir}/livesystem -type f | xargs file | grep "statically linked" | grep -v bin/bash | grep -v bin/mount | cut -f1 -d:` `find ${releasedir}/initrd -type f | xargs file | grep "statically linked" | grep -v bin/bash | grep -v bin/mount | cut -f1 -d:` >/proc/$$/fd/1 2>/proc/$$/fd/2 </proc/$$/fd/0
  150. echo_status "Creating initrd.img"
  151. dd if=/dev/zero of=${releasedir}/isolinux/initrd bs=1k count=8192
  152. mkfs.ext2 -m 0 -F ${releasedir}/isolinux/initrd >/dev/null 2>&1
  153. mkdir ${releasedir}/initrd.tmp.$$
  154. mount -o loop ${releasedir}/isolinux/initrd ${releasedir}/initrd.tmp.$$
  155. mv ${releasedir}/initrd/* ${releasedir}/initrd.tmp.$$
  156. umount -d ${releasedir}/initrd.tmp.$$
  157. rm -rf ${releasedir}/initrd.tmp.$$ ${releasedir}/initrd
  158. echo_status "LVP v${lvp_ver} built for ${ROCKCFG_X86_OPT} is now ready in ${releasedir}."
  159. fi
  160. cd ${base}