Magellan Linux

Diff of /trunk/mlivecdbuild/mlivecdbuild2.sh

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

revision 1531 by niro, Fri Nov 4 11:34:30 2011 UTC revision 2122 by niro, Thu May 16 13:23:45 2013 UTC
# Line 54  bootstrap_system() Line 54  bootstrap_system()
54   --profile "${MAGE_PROFILE}" \   --profile "${MAGE_PROFILE}" \
55   --toolchain "${TOOLCHAIN}" \   --toolchain "${TOOLCHAIN}" \
56   --basesystem "${BASESYSTEM}" \   --basesystem "${BASESYSTEM}" \
57     --update-tarball \
58   || die "bootstrapping toolchain"   || die "bootstrapping toolchain"
59  }  }
60    
# Line 72  custom_services() Line 73  custom_services()
73   for i in ${services}   for i in ${services}
74   do   do
75   # systemd   # systemd
76   if [[ -x ${CDCHROOTDIR}/sbin/systemctl ]]   if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
77   then   then
78   case ${cmd} in   case ${cmd} in
79   add) chroot ${CDCHROOTDIR} systemctl enable ${i} ;;   add) chroot ${CDCHROOTDIR} systemctl enable ${i} ;;
# Line 80  custom_services() Line 81  custom_services()
81   default)   default)
82   # convert targets   # convert targets
83   case ${i} in   case ${i} in
84   2|3) service="multi-user.target" ;;   2|3|multi-user) service="multi-user.target" ;;
85   5) service="graphical.target" ;;   5|graphical) service="graphical.target" ;;
86   esac   esac
87   chroot ${CDCHROOTDIR} systemctl enable ${i} ;;   chroot ${CDCHROOTDIR} systemctl enable ${i} ;;
88   esac   esac
89   fi   fi
90   # busybox and sysvinit   # busybox and sysvinit
91   if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]   if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]] && [[ ! -x ${CDCHROOTDIR}/bin/systemctl ]]  && [[ ! -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
92   then   then
93   MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"   MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}"
94   fi   fi
# Line 168  prepare_iso() Line 169  prepare_iso()
169   echo Preparing LiveCD ISO Image ...   echo Preparing LiveCD ISO Image ...
170    
171   # fixes some issues with xfree/xorg xkb   # fixes some issues with xfree/xorg xkb
172   if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] && [[ -d /usr/X11R6/lib/X11/xkb ]]   if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] &&
173     [[ -d ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ]]
174   then   then
175   rm ${CDCHROOTDIR}/etc/X11/xkb || die   rm ${CDCHROOTDIR}/etc/X11/xkb || die
176   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die   mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die
177   ln -s ../../../../etc/X11/xkb ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb || die   ln -s ../../../../etc/X11/xkb ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb || die
178   fi   fi
179    
180     # fix issues with >=dracut-014 which drops some default modules like livecd
181     if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
182     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
183     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
184     then
185     install -d ${CDCHROOTDIR}/etc/dracut.conf.d || die
186     echo 'add_dracutmodules+=" dmsquash-live "' \
187     > ${CDCHROOTDIR}/etc/dracut.conf.d/02-livecd.conf || die
188     fi
189    
190   # only on sysvinit or busybox systems   # only on sysvinit or busybox systems
191   if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]   if [[ -x ${CDCHROOTDIR}/sbin/rc-config ]]
192   then   then
193   install -m 0644 $(get_profile inittab) ${CDCHROOTDIR}/etc/inittab || die   install -m 0644 $(get_profile inittab) ${CDCHROOTDIR}/etc/inittab || die
194   fi   fi
195   if [[ -x ${CDCHROOTDIR}/bin/systemctl ]]   if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
196   then   then
197   # check lock group on systemd systems   # check lock group on systemd systems
198   if [[ -z $(chroot ${CDCHROOTDIR} getent group lock) ]]   if [[ -z $(chroot ${CDCHROOTDIR} getent group lock) ]]
199   then   then
200   echo "adding missing group 'lock'"   echo "adding missing group 'lock'"
201   chroot ${CDCHROOTDIR}  groupadd -g 54 lock   chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 54" lock
202   fi   fi
203   # dbus plugdev group   # dbus plugdev group
204   if [[ -z $(chroot ${CDCHROOTDIR} getent group plugdev) ]]   if [[ -z $(chroot ${CDCHROOTDIR} getent group plugdev) ]]
205   then   then
206   echo "adding missing group 'plugdev'"   echo "adding missing group 'plugdev'"
207   chroot ${CDCHROOTDIR}  groupadd -g 302 plugdev   chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 302" plugdev
208   fi   fi
209   # dbus messagebus group   # dbus messagebus group
210   if [[ -z $(chroot ${CDCHROOTDIR} getent group messagebus) ]]   if [[ -z $(chroot ${CDCHROOTDIR} getent group messagebus) ]]
211   then   then
212   echo "adding missing group 'messagebus'"   echo "adding missing group 'messagebus'"
213   chroot ${CDCHROOTDIR}  groupadd -g 300 messagebus   chroot ${CDCHROOTDIR} /usr/lib/mage/mgroupadd -o "-g 300" messagebus
214   fi   fi
215   # dbus messagebus user   # dbus messagebus user
216   if [[ -z $(chroot ${CDCHROOTDIR} getent passwd messagebus) ]]   if [[ -z $(chroot ${CDCHROOTDIR} getent passwd messagebus) ]]
217   then   then
218   echo "adding missing user 'messagebus'"   echo "adding missing user 'messagebus'"
219   chroot ${CDCHROOTDIR}  useradd -u 300 -g messagebus -d /dev/null -s /bin/false messagebus   chroot ${CDCHROOTDIR} /usr/lib/mage/museradd -o "-u 300 -g messagebus -d /dev/null -s /bin/false" messagebus
220   fi   fi
221   fi   fi
222   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die   install -m 0644 $(get_profile fstab) ${CDCHROOTDIR}/etc/fstab || die
# Line 212  prepare_iso() Line 224  prepare_iso()
224   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die   install -m 0644 $(get_profile issue) ${CDCHROOTDIR}/etc/issue || die
225   install -m 0644 $(get_profile net.eth0) ${CDCHROOTDIR}/etc/conf.d/net.eth0 || die   install -m 0644 $(get_profile net.eth0) ${CDCHROOTDIR}/etc/conf.d/net.eth0 || die
226   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die   echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname || die
227     install -d ${CDCHROOTDIR}/mnt/magellan || die
228    
229   echo Setting up services ...   echo Setting up services ...
230    
# Line 224  prepare_iso() Line 237  prepare_iso()
237   # enable them   # enable them
238   ln -snf ../tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/tmp.mount || die   ln -snf ../tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/tmp.mount || die
239   ln -snf ../var-tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/var-tmp.mount || die   ln -snf ../var-tmp.mount ${CDCHROOTDIR}/lib/systemd/system/local-fs.target.wants/var-tmp.mount || die
240     fi
241     # newer systemd goes to /usr/lib
242     if [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
243     then
244     # install tmpfs /tmp and /var/tmp
245     install -m 0644 $(get_profile tmp.mount) ${CDCHROOTDIR}/usr/lib/systemd/system/ || die
246     install -m 0644 $(get_profile var-tmp.mount) ${CDCHROOTDIR}/usr/lib/systemd/system/ || die
247     # enable them
248     ln -snf ../tmp.mount ${CDCHROOTDIR}/usr/lib/systemd/system/local-fs.target.wants/tmp.mount || die
249     ln -snf ../var-tmp.mount ${CDCHROOTDIR}/usr/lib/systemd/system/local-fs.target.wants/var-tmp.mount || die
250     fi
251    
252     if [[ -x ${CDCHROOTDIR}/bin/systemctl ]] || [[ -x ${CDCHROOTDIR}/usr/bin/systemctl ]]
253     then
254   install -m 0644 $(get_profile getty) ${CDCHROOTDIR}/etc/conf.d/getty || die   install -m 0644 $(get_profile getty) ${CDCHROOTDIR}/etc/conf.d/getty || die
255    
256   custom_services add getty@.service   custom_services add getty@.service
# Line 299  generate_rootfs() Line 325  generate_rootfs()
325   fi   fi
326    
327   echo Generating squashfs compressed rootfs loopfile ...   echo Generating squashfs compressed rootfs loopfile ...
328   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]]   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
329     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
330     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
331   then   then
332   install -d ${LIVECDROOT}/loop/{LiveOS,mnt} || die   install -d ${LIVECDROOT}/loop/{LiveOS,mnt} || die
333    
# Line 325  generate_rootfs() Line 353  generate_rootfs()
353    
354   # copy everything to the image file and preserve permissions   # copy everything to the image file and preserve permissions
355   ( cd ${CDCHROOTDIR} && tar cpf - . ) | ( cd ${LIVECDROOT}/loop/mnt && tar xvpf - )   ( cd ${CDCHROOTDIR} && tar cpf - . ) | ( cd ${LIVECDROOT}/loop/mnt && tar xvpf - )
356     sleep 3
357    
358   # now umount everything and create the squashfs image   # now umount everything and create the squashfs image
359   umount ${LIVECDROOT}/loop/mnt || die   umount ${LIVECDROOT}/loop/mnt || die
# Line 347  generate_rootfs() Line 376  generate_rootfs()
376    
377   echo Moving rootfs loopfile to isoroot ...   echo Moving rootfs loopfile to isoroot ...
378   install -d ${CDISOROOT}   install -d ${CDISOROOT}
379   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]]   if [[ -x ${CDCHROOTDIR}/sbin/dracut ]] ||
380     [[ -x ${CDCHROOTDIR}/usr/sbin/dracut ]] ||
381     [[ -x ${CDCHROOTDIR}/usr/bin/dracut ]]
382   then   then
383   install -d ${CDISOROOT}/LiveOS   install -d ${CDISOROOT}/LiveOS
384   mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}/LiveOS/squashfs.img   mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT}/LiveOS/squashfs.img
# Line 399  generate_initrd() Line 430  generate_initrd()
430   echo 'kv="$(readlink /boot/vmlinuz)"' >> ${CHROOTSH} || die   echo 'kv="$(readlink /boot/vmlinuz)"' >> ${CHROOTSH} || die
431   echo 'kv="${kv/kernel-}/"' >> ${CHROOTSH} || die   echo 'kv="${kv/kernel-}/"' >> ${CHROOTSH} || die
432   # prefer dracut   # prefer dracut
433   echo 'if [[ -x /sbin/dracut ]]' >> ${CHROOTSH} || die   echo 'if [[ -x /sbin/dracut ]] || [[ -x /usr/sbin/dracut ]] || [[ -x /usr/bin/dracut ]]' >> ${CHROOTSH} || die
434   echo 'then' >> ${CHROOTSH} || die   echo 'then' >> ${CHROOTSH} || die
435   echo ' dracut -v -f /initrd.gz ${kv}' >> ${CHROOTSH} || die   echo ' dracut -v -f /initrd.gz ${kv}' >> ${CHROOTSH} || die
436   echo 'else' >> ${CHROOTSH} || die   echo 'else' >> ${CHROOTSH} || die

Legend:
Removed from v.1531  
changed lines
  Added in v.2122