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.

198 lines
5.3 KiB

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