Magellan Linux

Diff of /trunk/mlivecdbuild/mlivecdbuild2.sh

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

revision 3228 by niro, Tue Sep 19 09:33:42 2023 UTC revision 3229 by niro, Tue Sep 19 09:37:59 2023 UTC
# Line 111  add_initrc() Line 111  add_initrc()
111  {  {
112   local var="$1"   local var="$1"
113    
114     if [[ -z ${ADD_INITRC_CHROOT} ]]
115     then
116     ADD_INITRC_CHROOT="${CDCHROOTDIR}"
117     fi
118    
119   # sanity checks   # sanity checks
120   [[ -z ${CDCHROOTDIR} ]] && die "\$CDCHROOTDIR not given."   [[ -z ${ADD_INITRC_CHROOT} ]] && die "\$ADD_INITRC_CHROOT not given."
121   echo "${var}" >> ${CDCHROOTDIR}/.installrc || die "add_initrc() adding \$var"   echo "${var}" >> ${ADD_INITRC_CHROOT}/.installrc || die "add_initrc() adding \$var"
122  }  }
123    
124  custom_packages()  custom_packages()
# Line 121  custom_packages() Line 126  custom_packages()
126   local cmd="$1"   local cmd="$1"
127   local packages="$2"   local packages="$2"
128    
129     if [[ -z ${CUSTOM_PACKAGES_CHROOT} ]]
130     then
131     CUSTOM_PACKAGES_CHROOT="${CDCHROOTDIR}"
132     ADD_INITRC_CHROOT="${CDCHROOTDIR}"
133     else
134     ADD_INITRC_CHROOT="${CUSTOM_PACKAGES_CHROOT}"
135     fi
136    
137   case ${cmd} in   case ${cmd} in
138   install|uninstall)   install|uninstall)
139   if [[ -n ${packages} ]]   if [[ -n ${packages} ]]
140   then   then
141   :> ${CDCHROOTDIR}/.installrc   :> ${CUSTOM_PACKAGES_CHROOT}/.installrc
142    
143   # respect proxies   # respect proxies
144   [[ -n ${http_proxy} ]] && add_initrc "export http_proxy=${http_proxy}"   [[ -n ${http_proxy} ]] && add_initrc "export http_proxy=${http_proxy}"
# Line 144  custom_packages() Line 157  custom_packages()
157   add_initrc "mage clean"   add_initrc "mage clean"
158    
159   # now run the .installrc script   # now run the .installrc script
160   mount -t proc proc ${CDCHROOTDIR}/proc || die "mount proc"   mount -t proc proc ${CUSTOM_PACKAGES_CHROOT}/proc || die "mount proc"
161   mount -t sysfs sysfs ${CDCHROOTDIR}/sys || die "mount sys"   mount -t sysfs sysfs ${CUSTOM_PACKAGES_CHROOT}/sys || die "mount sys"
162   mount -o bind /dev ${CDCHROOTDIR}/dev || die "mount dev"   mount -o bind /dev ${CUSTOM_PACKAGES_CHROOT}/dev || die "mount dev"
163   chroot ${CDCHROOTDIR} /bin/bash -i /.installrc || die "chr00ting"   chroot ${CUSTOM_PACKAGES_CHROOT} /bin/bash -i /.installrc || die "chr00ting"
164   umount ${CDCHROOTDIR}/dev || die "umount dev"   umount ${CUSTOM_PACKAGES_CHROOT}/dev || die "umount dev"
165   umount ${CDCHROOTDIR}/proc || die "umount proc"   umount ${CUSTOM_PACKAGES_CHROOT}/proc || die "umount proc"
166   umount ${CDCHROOTDIR}/sys || die "umount sys"   umount ${CUSTOM_PACKAGES_CHROOT}/sys || die "umount sys"
167   [ -f ${CDCHROOTDIR}/.installrc ] && rm ${CDCHROOTDIR}/.installrc   [ -f ${CUSTOM_PACKAGES_CHROOT}/.installrc ] && rm ${CUSTOM_PACKAGES_CHROOT}/.installrc
168   fi   fi
169   ;;   ;;
170   *) die "custom_packages: unkown command ${cmd}";;   *) die "custom_packages: unkown command ${cmd}";;
# Line 436  install_bootloader() Line 449  install_bootloader()
449    
450  generate_initrd()  generate_initrd()
451  {  {
452   local CHROOTSH="$(mktemp -p ${CDCHROOTDIR})"   if [[ -z ${INITRD_CHROOT} ]]
453     then
454     INITRD_CHROOT="${CDCHROOTDIR}"
455     fi
456    
457   is_loc_mounted "${CDCHROOTDIR}/sys" || mount -t sysfs sysfs ${CDCHROOTDIR}/sys   local INITRD_CHROOTSH="$(mktemp -p ${INITRD_CHROOT})"
458   is_loc_mounted "${CDCHROOTDIR}/proc" || mount -t proc proc ${CDCHROOTDIR}/proc  
459   is_loc_mounted "${CDCHROOTDIR}/dev" || mount -o bind /dev ${CDCHROOTDIR}/dev   is_loc_mounted "${INITRD_CHROOT}/sys" || mount -t sysfs sysfs ${INITRD_CHROOT}/sys
460     is_loc_mounted "${INITRD_CHROOT}/proc" || mount -t proc proc ${INITRD_CHROOT}/proc
461     is_loc_mounted "${INITRD_CHROOT}/dev" || mount -o bind /dev ${INITRD_CHROOT}/dev
462    
463   echo Generating initrd image ...   echo Generating initrd image ...
464   echo '#!/bin/bash' > ${CHROOTSH} || die   echo '#!/bin/bash' > ${INITRD_CHROOTSH} || die
465   echo 'export LC_ALL=C' >> ${CHROOTSH} || die   echo 'export LC_ALL=C' >> ${INITRD_CHROOTSH} || die
466   # support kernel installations without symlinks   # support kernel installations without symlinks
467   if [ -L ${CDCHROOTDIR}/boot/vmlinuz ]   if [ -L ${INITRD_CHROOT}/boot/vmlinuz ]
468   then   then
469   echo 'kv="$(readlink /boot/vmlinuz)"' >> ${CHROOTSH} || die   echo 'kv="$(readlink /boot/vmlinuz)"' >> ${INITRD_CHROOTSH} || die
470   else   else
471   echo "kv=\$(find /boot -name kernel-\* -printf '%f\n')" >> ${CHROOTSH} || die   echo "kv=\$(find /boot -name kernel-\* -printf '%f\n')" >> ${INITRD_CHROOTSH} || die
472   fi   fi
473   echo 'kv="${kv/kernel-/}"' >> ${CHROOTSH} || die   echo 'kv="${kv/kernel-/}"' >> ${INITRD_CHROOTSH} || die
474   # prefer dracut   # prefer dracut
475   echo 'if [[ -x /sbin/dracut ]] || [[ -x /usr/sbin/dracut ]] || [[ -x /usr/bin/dracut ]]' >> ${CHROOTSH} || die   echo 'if [[ -x /sbin/dracut ]] || [[ -x /usr/sbin/dracut ]] || [[ -x /usr/bin/dracut ]]' >> ${INITRD_CHROOTSH} || die
476   echo 'then' >> ${CHROOTSH} || die   echo 'then' >> ${INITRD_CHROOTSH} || die
477   echo ' dracut -v -f /initrd.gz ${kv}' >> ${CHROOTSH} || die   echo ' dracut -N -v -f /initrd.gz ${kv}' >> ${INITRD_CHROOTSH} || die
478   echo 'else' >> ${CHROOTSH} || die   echo 'else' >> ${INITRD_CHROOTSH} || die
479   echo ' mkinitrd-livecd -f --initramfs /initrd.gz ${kv}' >> ${CHROOTSH} || die   echo ' mkinitrd-livecd -f --initramfs /initrd.gz ${kv}' >> ${INITRD_CHROOTSH} || die
480   echo 'fi' >> ${CHROOTSH} || die   echo 'fi' >> ${INITRD_CHROOTSH} || die
481   chmod +x ${CHROOTSH} || die   chmod +x ${INITRD_CHROOTSH} || die
482   chroot ${CDCHROOTDIR} /$(basename ${CHROOTSH}) || die   chroot ${INITRD_CHROOT} /$(basename ${INITRD_CHROOTSH}) || die
483   [[ -f ${CHROOTSH} ]] && rm ${CHROOTSH} || die   [[ -f ${INITRD_CHROOTSH} ]] && rm ${INITRD_CHROOTSH} || die
484    
485   is_loc_mounted "${CDCHROOTDIR}/dev" && umount ${CDCHROOTDIR}/dev   is_loc_mounted "${INITRD_CHROOT}/dev" && umount ${INITRD_CHROOT}/dev
486   is_loc_mounted "${CDCHROOTDIR}/proc" && umount ${CDCHROOTDIR}/proc   is_loc_mounted "${INITRD_CHROOT}/proc" && umount ${INITRD_CHROOT}/proc
487   is_loc_mounted "${CDCHROOTDIR}/sys" && umount ${CDCHROOTDIR}/sys   is_loc_mounted "${INITRD_CHROOT}/sys" && umount ${INITRD_CHROOT}/sys
488    
489   # move initrd to isoroot   # move initrd to isoroot
490   install -d ${CDISOROOT}/isolinux || die   install -d ${CDISOROOT}/isolinux || die
491   mv ${CDCHROOTDIR}/initrd.gz ${CDISOROOT}/isolinux || die   mv ${INITRD_CHROOT}/initrd.gz ${CDISOROOT}/isolinux || die
492     chmod 0644 ${CDISOROOT}/isolinux/initrd.gz || die
493  }  }
494    
495  generate_iso()  generate_iso()

Legend:
Removed from v.3228  
changed lines
  Added in v.3229