Magellan Linux

Diff of /trunk/mlivecdbuild/mlivecdbuild2.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 360 by niro, Mon Mar 27 21:23:02 2006 UTC revision 712 by niro, Thu Apr 10 20:50:31 2008 UTC
# Line 52  custom_services() Line 52  custom_services()
52   local services="$2"   local services="$2"
53    
54   case ${cmd} in   case ${cmd} in
55   add|del|default) continue;;   add|del|default)
56     # add given services from profile
57     if [[ -n ${services} ]]
58     then
59     local i
60     for i in ${services}
61     do
62     MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"
63     done
64     fi
65     ;;
66   *) die "custom_services: unkown command ${cmd}";;   *) die "custom_services: unkown command ${cmd}";;
67   esac   esac
   
  # add given services from profile  
  if [[ -n ${services} ]]  
  then  
  local i  
  for i in ${services}  
  do  
  MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"  
  done  
  fi  
68  }  }
69    
70  add_initrc()  add_initrc()
# Line 72  add_initrc() Line 72  add_initrc()
72   local var="$1"   local var="$1"
73    
74   # sanity checks   # sanity checks
75   [ -z "${CDCHROOTDIR}" ] && die "\$CDCHROOTDIR not given."   [[ -z ${CDCHROOTDIR} ]] && die "\$CDCHROOTDIR not given."
76   echo "${var}" >> ${CDCHROOTDIR}/.installrc || die "add_initrc() adding \$var"   echo "${var}" >> ${CDCHROOTDIR}/.installrc || die "add_initrc() adding \$var"
77  }  }
78    
# Line 82  custom_packages() Line 82  custom_packages()
82   local packages="$2"   local packages="$2"
83    
84   case ${cmd} in   case ${cmd} in
85   install|uninstall) continue;;   install|uninstall)
86     if [[ -n ${packages} ]]
87     then
88     :> ${CDCHROOTDIR}/.installrc
89    
90     # respect proxies
91     [[ -n ${http_proxy} ]] && add_initrc "export http_proxy=${http_proxy}"
92     [[ -n ${ftp_proxy} ]] && add_initrc "export ftp_proxy=${ftp_proxy}"
93     [[ -n ${no_proxy} ]] && add_initrc "export no_proxy=${no_proxy}"
94    
95     # do not auto-start any services!
96     add_initrc "export MAGE_BOOTSTRAP=true"
97    
98     local i
99     for i in ${packages}
100     do
101     add_initrc "mage ${cmd} ${i}"
102     done
103     add_initrc "mage clean"
104    
105     # now run the .installrc script
106     mount -t proc proc ${CDCHROOTDIR}/proc || die "mount proc"
107     mount -t sysfs sysfs ${CDCHROOTDIR}/sys || die "mount sys"
108     mount -o bind /dev ${CDCHROOTDIR}/dev || die "mount dev"
109     chroot ${CDCHROOTDIR} /bin/bash -i /.installrc || die "chr00ting"
110     umount ${CDCHROOTDIR}/dev || die "umount dev"
111     umount ${CDCHROOTDIR}/proc || die "umount proc"
112     umount ${CDCHROOTDIR}/sys || die "umount sys"
113     [ -f ${CDCHROOTDIR}/.installrc ] && rm ${CDCHROOTDIR}/.installrc
114     fi
115     ;;
116   *) die "custom_packages: unkown command ${cmd}";;   *) die "custom_packages: unkown command ${cmd}";;
117   esac   esac
   
  if [[ -n ${packages} ]]  
  then  
   
  :> ${CDCHROOTDIR}/.installrc  
  local i  
  for i in ${packages}  
  do  
  add_initrc "mage install ${i}"  
  done  
  add_initrc "mage clean"  
   
  # now run the .installrc script  
  mount -t proc proc ${CDCHROOTDIR}/proc || die "mount proc"  
  mount -t sysfs sysfs ${CDCHROOTDIR}/sys || die "mount sys"  
  mount -o bind /dev ${CDCHROOTDIR}/dev || die "mount dev"  
  chroot ${CDCHROOTDIR} /bin/bash -i /.installrc || die "chr00ting"  
  umount ${CDCHROOTDIR}/dev || die "umount dev"  
  umount ${CDCHROOTDIR}/proc || die "umount proc"  
  umount ${CDCHROOTDIR}/sys || die "umount sys"  
  [ -f ${CDCHROOTDIR}/.installrc ] && rm ${CDCHROOTDIR}/.installrc  
  fi  
118  }  }
119    
120  read_config()  read_config()
# Line 128  prepare_iso() Line 136  prepare_iso()
136   echo Preparing LiveCD ISO Image ...   echo Preparing LiveCD ISO Image ...
137    
138   # fixes some issues with xfree/xorg xkb   # fixes some issues with xfree/xorg xkb
139   if [ -L "${CDCHROOTDIR}/etc/X11/xkb" -a -d "/usr/X11R6/lib/X11/xkb" ]   if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] && [[ -d /usr/X11R6/lib/X11/xkb ]]
140   then   then
141   rm ${CDCHROOTDIR}/etc/X11/xkb || die   rm ${CDCHROOTDIR}/etc/X11/xkb || die
142   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die
# Line 139  prepare_iso() Line 147  prepare_iso()
147   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die
148   install -m 0644 $(get_profile motd) ${CDCHROOTDIR}/etc/motd || die   install -m 0644 $(get_profile motd) ${CDCHROOTDIR}/etc/motd || die
149   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die
150     install -m 0644 $(get_profile net.eth0) ${CDCHROOTDIR}/etc/conf.d/net.eth0 || die
151   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die
152    
153   echo Setting up services ...   echo Setting up services ...
154    
 # not needed with initscripts 0.3.6-r2  
 # # change mountfs with mountfslivecd  
 # MROOT="${CDCHROOTDIR}" rc-config del mountfs || die "rc del mountfs"  
 # MROOT="${CDCHROOTDIR}" rc-config add mountfslivecd || die "rc add mountfslivecd"  
   
155   # add hardware detection   # add hardware detection
156   MROOT="${CDCHROOTDIR}" rc-config add hwdetect || die "rc add hwdetect"   MROOT="${CDCHROOTDIR}" rc-config add hwdetect || die "rc add hwdetect"
157    
# Line 252  generate_iso() Line 256  generate_iso()
256   popd   popd
257  }  }
258    
259    generate_dvd()
260    {
261     echo Generating DVD Image ...
262     install -d ${CDISOROOT}
263     pushd ${CDISOROOT} &&
264     growisofs -dvd-compat \
265     -rock \
266     -full-iso9660-filenames \
267     -allow-leading-dots \
268     -disable-deep-relocation \
269     -output ${LIVECDROOT}/${CDISONAME} \
270     -eltorito-boot isolinux/isolinux.bin \
271     -eltorito-catalog isolinux/boot.cat \
272     -no-emul-boot \
273     -boot-load-size 4 \
274     -boot-info-table \
275     -volid "${CDID}" \
276     ${CDISOROOT} #&> /dev/null
277     popd
278    }
279    
280  enter_livecd()  enter_livecd()
281  {  {
282   mount -t sysfs sysfs ${CDCHROOTDIR}/proc   mount -t sysfs sysfs ${CDCHROOTDIR}/sys
283   mount -t proc proc ${CDCHROOTDIR}/proc   mount -t proc proc ${CDCHROOTDIR}/proc
284   mount -o bind /dev ${CDCHROOTDIR}/dev   mount -o bind /dev ${CDCHROOTDIR}/dev
285    
# Line 263  enter_livecd() Line 288  enter_livecd()
288   HOME=/root \   HOME=/root \
289   TERM=$TERM PS1='\u:\w\$ ' \   TERM=$TERM PS1='\u:\w\$ ' \
290   PATH=/bin:/usr/bin:/sbin:/usr/sbin \   PATH=/bin:/usr/bin:/sbin:/usr/sbin \
291     http_proxy=${http_proxy} \
292     ftp_proxy=${ftp_proxy} \
293     no_proxy=${no_proxy} \
294   /bin/bash -i   /bin/bash -i
295    
296     umount ${CDCHROOTDIR}/dev
297     umount ${CDCHROOTDIR}/proc
298     umount ${CDCHROOTDIR}/sys
299  }  }
300    
301  usage()  usage()
# Line 277  usage() Line 309  usage()
309   echo "    initrd     - generates a livecd suitable initrd"   echo "    initrd     - generates a livecd suitable initrd"
310   echo "    bootloader - installs the bootloader"   echo "    bootloader - installs the bootloader"
311   echo "    isogen     - generate the final livecd iso image"   echo "    isogen     - generate the final livecd iso image"
312     echo "    dvdgen     - same as isogen but creates a dvd-image"
313   echo "    all        - runs all tasks to get a livecd from zero"   echo "    all        - runs all tasks to get a livecd from zero"
314     echo "    enter      - enters the rootfs of a livecd"
315   echo   echo
316   echo "    for example '$(basename $0) all default'"   echo "    for example '$(basename $0) all default'"
317   echo "    creates a livecd using the default profile."   echo "    creates a livecd using the default profile."
# Line 287  usage() Line 321  usage()
321  # source profile config - overrides all other vars  # source profile config - overrides all other vars
322  [ -f ${PROFILES_DIR}/${CDPROFILE}/config ] && . ${PROFILES_DIR}/${CDPROFILE}/config  [ -f ${PROFILES_DIR}/${CDPROFILE}/config ] && . ${PROFILES_DIR}/${CDPROFILE}/config
323    
 #bootstrap_system  
 #prepare_iso  
 #generate_rootfs  
 #generate_initrd  
 #install_bootloader  
 #generate_iso  
   
324  case $1 in  case $1 in
325   bootstrap) bootstrap_system;;   bootstrap) bootstrap_system;;
326   prepare) prepare_iso;;   prepare) prepare_iso;;
# Line 301  case $1 in Line 328  case $1 in
328   initrd) generate_initrd;;   initrd) generate_initrd;;
329   bootloader) install_bootloader;;   bootloader) install_bootloader;;
330   isogen) generate_iso;;   isogen) generate_iso;;
331     dvdgen) generate_dvd;;
332   all)   all)
333   bootstrap_system   bootstrap_system
334   prepare_iso   prepare_iso
335   generate_rootfs   generate_rootfs
336   generate_initrd   generate_initrd
337   install_bootloader   install_bootloader
338   generate_iso   if [[ ${DEFINE_DVD} = 1 ]]
339     then
340     generate_dvd
341     else
342     generate_iso
343     fi
344   ;;   ;;
345     enter) enter_livecd ;;
346   *|'') usage;;   *|'') usage;;
347  esac  esac

Legend:
Removed from v.360  
changed lines
  Added in v.712