This email list is read-only. Emails sent to this list will be discarded
----------------------------------
debian/changelog | 8 +-
gui/gui.py | 25 ++++
gui/image-creator.glade | 67 ++++++++++
image-creator | 8 +-
libs/InstallImage.py | 84 ++++++++++++-
moblin-image-creator.spec | 10 +-
platforms/common-apt/initramfs/cd | 3 +-
platforms/common-apt/initramfs/usb | 3 +-
platforms/common-apt/install.sh | 33 ++++--
platforms/common-yum/initramfs/cd | 73 +++++++++++
platforms/common-yum/initramfs/usb | 135 ++++++++++----------
platforms/common-yum/install.sh | 32 ++++-
.../Makefile.am | 6 +-
.../mccaslin-lpia-ubuntu-hardy-ppa/Makefile.am | 6 +-
.../initramfs/modules | 2 +
platforms/mccaslin-lpia-ubuntu-hardy/Makefile.am | 6 +-
.../mccaslin-lpia-ubuntu-hardy/initramfs/modules | 2 +
platforms/mccaslin-lpia-ume/Makefile.am | 6 +-
platforms/mccaslin-lpia-ume/initramfs/modules | 2 +
platforms/mccaslin-lpia/Makefile.am | 6 +-
platforms/mccaslin-lpia/initramfs/modules | 2 +
platforms/menlow-lpia-moblin2/Makefile.am | 6 +-
.../Makefile.am | 6 +-
.../initramfs/modules | 2 +
.../Makefile.am | 6 +-
.../initramfs/modules | 2 +
platforms/menlow-lpia-ubuntu-hardy-ppa/Makefile.am | 6 +-
.../menlow-lpia-ubuntu-hardy-ppa/initramfs/modules | 2 +
platforms/menlow-lpia-ubuntu-hardy/Makefile.am | 6 +-
.../menlow-lpia-ubuntu-hardy/initramfs/modules | 2 +
platforms/menlow-lpia-ume/Makefile.am | 6 +-
platforms/menlow-lpia-ume/initramfs/modules | 2 +
platforms/menlow-lpia/Makefile.am | 6 +-
platforms/menlow-lpia/initramfs/modules | 2 +
platforms/netbook-lpia-moblin2/Makefile.am | 6 +-
po/ja.po | 28 ++++-
36 files changed, 483 insertions(+), 124 deletions(-)
New commits:
commit bc6659d35103b5cb039ba1fe2b77e3ebb3501e2f
Author: Mitsutaka Amano <[EMAIL PROTECTED]>
Date: Wed Oct 22 16:10:09 2008 +0900
Added error handling and modified destination of isolinux.bin LiveIsoImage.
commit d2f559e7f5cdb20608d5d5e440e89aa817fa3fda
Author: Mitsutaka Amano <[EMAIL PROTECTED]>
Date: Fri Oct 10 17:29:07 2008 +0900
Added the Create Install CD.
Diff in this email is a maximum of 400 lines.
diff --git a/debian/changelog b/debian/changelog
index b9fc057..3e7b56b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,9 +4,13 @@ moblin-image-creator (0.47) gaston; urgency=low
* Starting new version.
[ Prajwal Mohan ]
- * Adding Matchbox Desktop fset
+ * Adding Matchbox Desktop fset
- -- Prajwal Mohan <[EMAIL PROTECTED]> Wed, 08 Oct 2008 09:30:45 -0700
+ [ Mitsutaka Amano ]
+ * Added the Create Install CD.
+ * Added error handling and modified destination of isolinux.bin LiveIsoImage.
+
+ -- Mitsutaka Amano <[EMAIL PROTECTED]> Wed, 22 Oct 2008 16:07:54 +0900
moblin-image-creator (0.46) gaston; urgency=low
diff --git a/gui/gui.py b/gui/gui.py
index 44179f7..cafec64 100644
--- a/gui/gui.py
+++ b/gui/gui.py
@@ -90,6 +90,7 @@ class App(object):
"on_create_liveRWUSB_clicked": self.on_liveRWUSB_clicked,
"on_create_installUSB_clicked": self.on_installUSB_clicked,
"on_create_liveCD_clicked": self.on_liveCD_clicked,
+ "on_create_installCD_clicked": self.on_installCD_clicked,
"on_create_NAND_btn_clicked": self.on_NAND_clicked,
"on_about_activate": self.on_about_activate,
"on_term_launch_clicked": self.on_term_launch_clicked,
@@ -238,6 +239,7 @@ class App(object):
self.buttons.create_installusb.set_sensitive(fset_state)
self.buttons.target_config.set_sensitive(fset_state)
self.buttons.create_liveCD.set_sensitive(fset_state)
+ self.buttons.create_installCD.set_sensitive(fset_state)
self.buttons.create_NAND.set_sensitive(fset_state)
self.buttons.Write_USB.set_sensitive(fset_state)
self.buttons.create_launchvm.set_sensitive(fset_state)
@@ -972,6 +974,28 @@ class App(object):
self.show_error_dialog()
progress_dialog.destroy()
+ def on_installCD_clicked(self, widget):
+ project = self.current_project()
+ target = self.current_target()
+ result, img_name = self.getImageName(default_name=".iso")
+ if result == gtk.RESPONSE_OK:
+ progress_tree = gtk.glade.XML(self.gladefile, 'ProgressDialog')
+ progress_dialog = progress_tree.get_widget('ProgressDialog')
+ progress_dialog.connect('delete_event', self.ignore)
+ progress_tree.get_widget('progress_label').set_text(_("Please wait
while creating %s") % img_name)
+ self.progressbar = progress_tree.get_widget('progressbar')
+ try:
+ mic_cmd = 'image-creator --command=create-install-iso
--project-name=\'' + project.name + '\' --target-name=\'' + target.name + '\'
--image-name=\'' + img_name + '\''
+ self.append_cmd_list(mic_cmd)
+ self.current_project().create_install_iso(target.name,
img_name)
+ except ValueError, e:
+ self.show_error_dialog(e.args[0])
+ except:
+ traceback.print_exc()
+ if debug: print_exc_plus()
+ self.show_error_dialog()
+ progress_dialog.destroy()
+
def on_NAND_clicked(self, widget):
project = self.current_project()
target = self.current_target()
@@ -1901,6 +1925,7 @@ class MainWindowButtons(object):
self.create_liverwusb = widgets.get_widget('create_liveRWUSB_btn')
self.create_installusb = widgets.get_widget('create_installUSB_btn')
self.create_liveCD = widgets.get_widget('create_liveCD_btn')
+ self.create_installCD = widgets.get_widget('create_installCD_btn')
self.create_NAND = widgets.get_widget('create_NAND_btn')
# Terminal button
self.term_launch = widgets.get_widget('term_launch')
diff --git a/gui/image-creator.glade b/gui/image-creator.glade
index 359e0df..172b654 100644
--- a/gui/image-creator.glade
+++ b/gui/image-creator.glade
@@ -2072,6 +2072,73 @@
</child>
<child>
+ <widget class="GtkButton"
id="create_installCD_btn">
+ <property name="visible">True</property>
+ <property
name="sensitive">False</property>
+ <property name="tooltip"
translatable="yes">Create an installation image that can be burned to a CD.
When you boot off the CD it will erase the target harddrive, then repartition
and install the target image.</property>
+ <property name="can_focus">True</property>
+ <property
name="relief">GTK_RELIEF_NORMAL</property>
+ <property
name="focus_on_click">True</property>
+ <signal name="clicked"
handler="on_create_installCD_clicked"/>
+
+ <child>
+ <widget class="GtkVBox" id="vbox28">
+ <property
name="visible">True</property>
+ <property
name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkImage"
id="image24">
+ <property
name="visible">True</property>
+ <property
name="stock">gtk-goto-bottom</property>
+ <property
name="icon_size">4</property>
+ <property
name="xalign">0.5</property>
+ <property
name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property
name="padding">0</property>
+ <property
name="expand">True</property>
+ <property
name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel"
id="label39">
+ <property
name="visible">True</property>
+ <property name="label"
translatable="yes">Install CD</property>
+ <property
name="use_underline">False</property>
+ <property
name="use_markup">False</property>
+ <property
name="justify">GTK_JUSTIFY_LEFT</property>
+ <property
name="wrap">False</property>
+ <property
name="selectable">False</property>
+ <property
name="xalign">0.5</property>
+ <property
name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property
name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property
name="width_chars">-1</property>
+ <property
name="single_line_mode">False</property>
+ <property
name="angle">0</property>
+ </widget>
+ <packing>
+ <property
name="padding">0</property>
+ <property
name="expand">False</property>
+ <property
name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
<widget class="GtkVSeparator"
id="target-images-separator2">
<property
name="width_request">20</property>
<property name="visible">True</property>
diff --git a/image-creator b/image-creator
index 4432b55..3ffdc2d 100755
--- a/image-creator
+++ b/image-creator
@@ -132,7 +132,7 @@ def main():
update_project(options)
elif options.cmd == "update-target":
update_target(options)
- elif options.cmd in ["create-live-usb", "create-live-usbrw",
"create-install-usb", "create-live-iso", "create-nand"]:
+ elif options.cmd in ["create-live-usb", "create-live-usbrw",
"create-install-usb", "create-live-iso", "create-install-iso", "create-nand"]:
create_image(options)
elif options.cmd == "chroot-project":
chroot_project(options)
@@ -158,6 +158,7 @@ def parseCommandLine():
"create-live-usb" : 1,
"create-live-usbrw" : 1,
"create-live-iso" : 1,
+ "create-install-iso" : 1,
"create-nand" : 1,
"create-project" : 1,
"create-target" : 1,
@@ -295,6 +296,7 @@ Examples:
create-live-usbrw | \\
create-install-usb | \\
create-live-iso | \\
+ create-install-iso | \\
create-nand ] \\
--project-name='MyProject' \\
--target-name='MyTarget' \\
@@ -392,7 +394,7 @@ Examples:
parser.error(_("Must specify target-name when using %s command") %
options.cmd)
if not options.fset_names:
parser.error(_("Must specify at least one fset-name when using %s
command") % options.cmd)
- if options.cmd == "create-live-usb" or options.cmd == "create-live-usbrw"
or options.cmd == "create-install-usb" or options.cmd == "create-live-iso":
+ if options.cmd == "create-live-usb" or options.cmd == "create-live-usbrw"
or options.cmd == "create-install-usb" or options.cmd == "create-live-iso" or
options.cmd == "create-install-iso":
if not options.project_name:
parser.error(_("Must specify project-name when using %s command")
% options.cmd)
if not options.target_name:
@@ -605,6 +607,8 @@ def create_image(options):
proj.create_install_usb(options.target_name, options.image_name)
elif options.cmd == "create-live-iso":
proj.create_live_iso(options.target_name, options.image_name)
+ elif options.cmd == "create-install-iso":
+ proj.create_install_iso(options.target_name, options.image_name)
elif options.cmd == "create-nand":
proj.create_NAND_image(options.target_name, options.image_name)
diff --git a/libs/InstallImage.py b/libs/InstallImage.py
index 4983007..7af0c50 100755
--- a/libs/InstallImage.py
+++ b/libs/InstallImage.py
@@ -467,8 +467,14 @@ class LiveIsoImage(InstallImage):
self.kernels.pop(0)
# Flashing yellow on a blue background
self.install_kernels("9e", image_type)
- pdk_utils.copy(self.rootfs_path, self.tmp_path)
- pdk_utils.copy("/usr/lib/syslinux/isolinux.bin", self.tmp_path)
+ try:
+ pdk_utils.copy(self.rootfs_path, self.tmp_path)
+ except OSError:
+ print _("Could not copy rootfs_path. Ignored error")
+ try:
+ pdk_utils.copy(os.path.join(self.project.path,
"/usr/lib/syslinux/isolinux.bin"), self.tmp_path)
+ except OSError:
+ print _("Could not copy isolinux.bin. Ignored error")
print _("Creating CD image file at: %s") % self.path
cmd_line = "genisoimage -quiet -o %s -b isolinux.bin -c boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table -l -R -r %s" % (self.path,
self.tmp_path)
@@ -489,9 +495,79 @@ class LiveIsoImage(InstallImage):
class InstallIsoImage(InstallImage):
+ def install_kernels(self, message_color, message):
+ InstallImage.install_kernels(self, 'isolinux.cfg', message_color,
message, 'CDImage')
+
def create_image(self):
- raise ValueError(_("InstallIsoImage: Create Install ISO Image not
implemented!"))
-
+ print _("InstallCDImage: Creating Install CD Image Now...")
+ image_type = _("Install CD Image. This will DESTROY all content on
your hard drive!!")
+ if self.project.platform.config_info['package_manager'] == 'apt':
+ self.create_all_initramfs()
+ self.create_grub_menu()
+ self.apply_hd_kernel_cmdline()
+ if self.project.platform.config_info['package_manager'] == 'yum':
+ self.create_all_initrd()
+ self.create_grub_menu_yum()
+ self.create_rootfs()
+ self.create_bootfs()
+ initrd_stat_result = os.stat('/tmp/.tmp.initrd0')
+ rootfs_stat_result = os.stat(self.rootfs_path)
+ bootfs_stat_result = os.stat(self.bootfs_path)
+ self.tmp_path = tempfile.mkdtemp('','pdk-', '/tmp')
+ self.kernels.insert(0,self.default_kernel)
+ for count, kernel in enumerate(self.kernels):
+ initrd_path = os.path.join(self.tmp_path, "initrd%d.img" % count)
+ try:
+ shutil.move("/tmp/.tmp.initrd%d" % count, initrd_path)
+ except:
+ print _("shutil.move failed. Ignored error")
+ self.kernels.pop(0)
+ # Flashing yellow on a blue background
+ self.install_kernels("ce", image_type)
+ try:
+ pdk_utils.copy(self.rootfs_path, self.tmp_path)
+ except OSError:
+ print _("Could not copy rootfs_path. Ignored error")
+ try:
+ pdk_utils.copy(self.bootfs_path, self.tmp_path)
+ except OSError:
+ print _("Could not copy bootfs_path. Ignored error")
+ try:
+ self.create_install_script(self.tmp_path)
+ except OSError:
+ print _("Could not create install script. Ignored error")
+ try:
+ pdk_utils.copy(os.path.join(self.project.path,
"/usr/lib/syslinux/isolinux.bin"), self.tmp_path)
+ except OSError:
+ print _("Could not copy isolinux.bin. Ignored error")
+
+ print _("Creating CD image file at: %s") % self.path
+ cmd_line = "genisoimage -quiet -o %s -b isolinux.bin -c boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table -l -R -r %s" % (self.path,
self.tmp_path)
+ result = pdk_utils.execCommand(cmd_line, callback =
self.progress_callback)
+ if result:
+ print >> sys.stderr, _("Error running command: %s") % cmd_line
+ raise EnvironmentError, _("Error running command: %s") % cmd_line
+ shutil.rmtree(self.tmp_path)
+ self.tmp_path = ''
+ self.delete_rootfs()
+ self.delete_bootfs()
+ print _("InstallIsoImage: Finished!")
+ print _("\nYou can now use the image to boot and install the target
file-system on the target device's HDD.\n")
+ print _("\nWARNING: Entire contents of the target devices's HDD will
be erased prior to installation!")
+ print _(" This includes ALL partitions on the disk!\n")
+ print _("InstallIsoImage: Finished!")
+
+ def apply_hd_kernel_cmdline(self):
+ # set kopt= (in AUTOMAGIC KERNELS LIST)
+ hd_kernel_cmdline = self.project.get_target_config(self.target.name,
'hd_kernel_cmdline')
+ cmd = "sed -e 's:^\\s*#\\s*kopt\\s*=\\s*.*:# kopt=%s:' -i %s" %
(hd_kernel_cmdline, os.path.join(self.target.fs_path, 'boot', 'grub',
'menu.lst'))
+ print cmd
+ print os.popen(cmd).readlines()
+ print _("grub.conf kernel cmdline changed")
+ # update the kernel entries
+ self.target.chroot("update-grub")
+ print _("New Apply hd kernel
cmdline--------------------------------------------------------------------")
+
def __str__(self):
return ("<InstallIsoImage: project=%s, target=%s, name=%s>"
% (self.project, self.target, self.name))
diff --git a/moblin-image-creator.spec b/moblin-image-creator.spec
index e960762..e8846e0 100644
--- a/moblin-image-creator.spec
+++ b/moblin-image-creator.spec
@@ -61,10 +61,16 @@ rm -rf %{buildroot}
/var/lib/moblin-image-creator/projects
%changelog
-* Fri Oct 08 2008 Mitsutaka Amano <[EMAIL PROTECTED]>
+* Wed Oct 22 2008 Mitsutaka Amano <[EMAIL PROTECTED]>
+- Added error handling and modified destination of isolinux.bin LiveIsoImage.
+
+* Fri Oct 10 2008 Mitsutaka Amano <[EMAIL PROTECTED]>
+- Added the Create Install CD.
+
+* Wed Oct 08 2008 Mitsutaka Amano <[EMAIL PROTECTED]>
- Starting new version.
-* Thu Oct 07 2008 Prajwal Mohan <[EMAIL PROTECTED]>
+* Tue Oct 07 2008 Prajwal Mohan <[EMAIL PROTECTED]>
- Setting defaults for moblin2 platforms
- Changing defaults for menlow-lpia-moblin2
- Adding moblin-installer to core fset of moblin2 platforms
diff --git a/platforms/common-apt/initramfs/cd
b/platforms/common-apt/initramfs/cd
index b9c5bc6..1da76cd 100755
--- a/platforms/common-apt/initramfs/cd
+++ b/platforms/common-apt/initramfs/cd
@@ -62,11 +62,12 @@ mountroot ()
mkdir -p ${rootmnt}/tmp/install
mount --bind /dev ${rootmnt}/dev
mount --bind /sys ${rootmnt}/sys
+ mount --bind /proc ${rootmnt}/proc
mount --bind /container ${rootmnt}/tmp/install
cp /container/install.sh ${rootmnt}
cp /container/install.cfg ${rootmnt}
maybe_break install
- chroot ${rootmnt} /install.sh
+ chroot ${rootmnt} /install.sh ${BOOT}
fi
}
diff --git a/platforms/common-apt/initramfs/usb
b/platforms/common-apt/initramfs/usb
index ac1b426..631376c 100755
--- a/platforms/common-apt/initramfs/usb
+++ b/platforms/common-apt/initramfs/usb
@@ -68,11 +68,12 @@ mountroot ()
mkdir -p ${rootmnt}/tmp/install
mount --bind /dev ${rootmnt}/dev
mount --bind /sys ${rootmnt}/sys
+ mount --bind /proc ${rootmnt}/proc
mount --bind /container ${rootmnt}/tmp/install
cp /container/install.sh ${rootmnt}
cp /container/install.cfg ${rootmnt}
maybe_break install
- chroot ${rootmnt} /install.sh
+ chroot ${rootmnt} /install.sh ${BOOT}
fi
}
diff --git a/platforms/common-apt/install.sh b/platforms/common-apt/install.sh
old mode 100644
new mode 100755
index 3002825..9498355
--- a/platforms/common-apt/install.sh
+++ b/platforms/common-apt/install.sh
@@ -26,6 +26,8 @@ type usplash_write > /dev/null 2>&1 && SPLASHWRITE=1
# Disable usplash, since we want text mode
SPLASHWRITE=0
+BOOTDEVICE=$1
+
# show the progress at status bar.
# $1 = 0-100
splash_progress(){
@@ -66,9 +68,14 @@ while true; do
echo "checking device: /dev/${device} for installation target"
if [ -e /sys/block/${device}/removable ]; then
if [ "$(cat /sys/block/${device}/removable)" = "0" ]; then
- splash_display "found harddisk at /dev/${device}"
- found="yes"
- break
+ if cat /proc/mounts | grep /dev/${device}
+ then
+ continue
+ else
+ found="yes"
+ splash_display "found harddisk at /dev/${device}"
+ break
+ fi
fi
fi
done
@@ -235,8 +242,6 @@ splash_delay 10
sleep 1
splash_delay 6000
_______________________________________________
Commits mailing list
[email protected]
https://lists.moblin.org/mailman/listinfo/commits