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

Reply via email to