← Back to team overview

oiteam team mailing list archive

[Merge] lp:~oiteam/cubic/fix-non-efi-build into lp:cubic

 

Laércio de Sousa has proposed merging lp:~oiteam/cubic/fix-non-efi-build into lp:cubic.

Requested reviews:
  Cubic PPA (cubic-wizard)

For more details, see:
https://code.launchpad.net/~oiteam/cubic/fix-non-efi-build/+merge/334183

This fix will make Cubic able to build legacy/non-EFI ISOs as well. I was able to build a custom Lubuntu 16.04.3 i386 ISO after this ifx.
-- 
Your team Orientadores de Informática is subscribed to branch lp:~oiteam/cubic/fix-non-efi-build.
=== modified file 'usr/share/cubic/utilities.py'
--- usr/share/cubic/utilities.py	2017-06-24 17:40:56 +0000
+++ usr/share/cubic/utilities.py	2017-11-23 11:49:15 +0000
@@ -1099,7 +1099,7 @@
             if priority <= 2:
                 selected_index = index
                 priority = 2
-        if vmlinuz_filename == 'vmlinuz.efi':
+        if vmlinuz_filename == 'vmlinuz.efi' or vmlinuz_filename == 'vmlinuz':
             if note: note += os.linesep
             note += 'This is kernel %s, used to boot the original iso image\n(%s).' % (version_name, model.original_iso_image_filename)
             if priority <= 1:
@@ -1133,8 +1133,8 @@
     # Handle special case.
     # .../original-iso-mount/casper/vmlinuz.efi
     # .../original-iso-mount/casper/initrd.lz
-    if vmlinuz_filename == 'vmlinuz.efi' and os.path.exists(os.path.join(directory, 'initrd.lz')):
-        initrd_filename = vmlinuz_filename.replace('vmlinuz.efi', 'initrd.lz')
+    if (vmlinuz_filename == 'vmlinuz.efi' or vmlinuz_filename == 'vmlinuz') and os.path.exists(os.path.join(directory, 'initrd.lz')):
+        initrd_filename = vmlinuz_filename.replace(vmlinuz_filename, 'initrd.lz')
     # Handle normal case.
     # .../squashfs-root/boot/vmlinuz-*
     # .../squashfs-root/boot/initrd.img-*
@@ -1290,8 +1290,16 @@
     # vmlinuz
     # 0:version_name, 1:vmlinuz_filename, 2:initrd_filename, 3:directory, 4:note, 5:is_selected, 6:is_remove
     filename = liststore[selected][1]
+
+    if (filename == 'vmlinuz.efi' or filename == 'vmlinuz'):
+        target_filename = filename
+    elif os.path.exists(os.path.join(directory, 'vmlinuz')):
+        target_filename = 'vmlinuz'
+    else:
+        target_filename = 'vmlinuz.efi'
+
     source_path = os.path.join(directory, filename)
-    target_path = os.path.join(model.custom_live_iso_directory, 'casper', 'vmlinuz.efi')
+    target_path = os.path.join(model.custom_live_iso_directory, 'casper', target_filename)
     logger.log_data('The vmlinuz source file is', source_path)
     logger.log_data('The vmlinuz target file is', target_path)
     copy_boot_file(thread, source_path, 0, target_path, 2)
@@ -1473,37 +1481,63 @@
     if os.path.exists('/usr/lib/ISOLINUX/isohdpfx.bin'):
         # Ubuntu 15.04 uses isolinux (/usr/lib/ISOLINUX/isohdpfx.bin).
         logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/ISOLINUX/isohdpfx.bin')
-        command = 'xorriso'\
-                ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
-                ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
-                ' -c isolinux/boot.cat'\
-                ' -b isolinux/isolinux.bin'\
-                '  -no-emul-boot'\
-                '  -boot-load-size 4'\
-                '  -boot-info-table'\
-                ' -eltorito-alt-boot'\
-                '  -e boot/grub/efi.img'\
-                '  -no-emul-boot'\
-                '  -isohybrid-gpt-basdat'\
-                ' -o "%s" .'\
-                % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
+
+        if os.path.exists('boot/grub/efi.img'):
+            command = 'xorriso'\
+                    ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
+                    ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
+                    ' -c isolinux/boot.cat'\
+                    ' -b isolinux/isolinux.bin'\
+                    '  -no-emul-boot'\
+                    '  -boot-load-size 4'\
+                    '  -boot-info-table'\
+                    ' -eltorito-alt-boot'\
+                    '  -e boot/grub/efi.img'\
+                    '  -no-emul-boot'\
+                    '  -isohybrid-gpt-basdat'\
+                    ' -o "%s" .'\
+                    % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
+        else:
+            command = 'xorriso'\
+                    ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
+                    ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
+                    ' -c isolinux/boot.cat'\
+                    ' -b isolinux/isolinux.bin'\
+                    '  -no-emul-boot'\
+                    '  -boot-load-size 4'\
+                    '  -boot-info-table'\
+                    ' -o "%s" .'\
+                    % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
     elif os.path.exists('/usr/lib/syslinux/isohdpfx.bin'):
         # Ubuntu 14.04 uses syslinux-common (/usr/lib/syslinux/isohdpfx.bin).
         logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/syslinux/isohdpfx.bin')
-        command = 'xorriso'\
-                ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
-                ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
-                ' -c isolinux/boot.cat'\
-                ' -b isolinux/isolinux.bin'\
-                '  -no-emul-boot'\
-                '  -boot-load-size 4'\
-                '  -boot-info-table'\
-                ' -eltorito-alt-boot'\
-                '  -e boot/grub/efi.img'\
-                '  -no-emul-boot'\
-                '  -isohybrid-gpt-basdat'\
-                ' -o "%s" .'\
-                % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
+
+        if os.path.exists('boot/grub/efi.img'):
+            command = 'xorriso'\
+                    ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
+                    ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
+                    ' -c isolinux/boot.cat'\
+                    ' -b isolinux/isolinux.bin'\
+                    '  -no-emul-boot'\
+                    '  -boot-load-size 4'\
+                    '  -boot-info-table'\
+                    ' -eltorito-alt-boot'\
+                    '  -e boot/grub/efi.img'\
+                    '  -no-emul-boot'\
+                    '  -isohybrid-gpt-basdat'\
+                    ' -o "%s" .'\
+                    % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
+        else:
+            command = 'xorriso'\
+                    ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
+                    ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
+                    ' -c isolinux/boot.cat'\
+                    ' -b isolinux/isolinux.bin'\
+                    '  -no-emul-boot'\
+                    '  -boot-load-size 4'\
+                    '  -boot-info-table'\
+                    ' -o "%s" .'\
+                    % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
     else:
         logger.log_data('Using mkisofs', 'No isohybrid MBR available.')
         command = 'mkisofs -r -V "%s" -cache-inodes -J -l'\


Follow ups