Merge lp:~oiteam/cubic/fix-non-efi-build into lp:cubic/classic-development

Proposed by Laércio de Sousa
Status: Merged
Merged at revision: 106
Proposed branch: lp:~oiteam/cubic/fix-non-efi-build
Merge into: lp:cubic/classic-development
Diff against target: 133 lines (+66/-32)
1 file modified
usr/share/cubic/utilities.py (+66/-32)
To merge this branch: bzr merge lp:~oiteam/cubic/fix-non-efi-build
Reviewer Review Type Date Requested Status
Cubic PPA Approve
Review via email: mp+334183@code.launchpad.net

Description of the change

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 fix.

To post a comment you must log in.
Revision history for this message
Cubic PPA (cubic-wizard) wrote :

Code looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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 @@
1099 if priority <= 2:1099 if priority <= 2:
1100 selected_index = index1100 selected_index = index
1101 priority = 21101 priority = 2
1102 if vmlinuz_filename == 'vmlinuz.efi':1102 if vmlinuz_filename == 'vmlinuz.efi' or vmlinuz_filename == 'vmlinuz':
1103 if note: note += os.linesep1103 if note: note += os.linesep
1104 note += 'This is kernel %s, used to boot the original iso image\n(%s).' % (version_name, model.original_iso_image_filename)1104 note += 'This is kernel %s, used to boot the original iso image\n(%s).' % (version_name, model.original_iso_image_filename)
1105 if priority <= 1:1105 if priority <= 1:
@@ -1133,8 +1133,8 @@
1133 # Handle special case.1133 # Handle special case.
1134 # .../original-iso-mount/casper/vmlinuz.efi1134 # .../original-iso-mount/casper/vmlinuz.efi
1135 # .../original-iso-mount/casper/initrd.lz1135 # .../original-iso-mount/casper/initrd.lz
1136 if vmlinuz_filename == 'vmlinuz.efi' and os.path.exists(os.path.join(directory, 'initrd.lz')):1136 if (vmlinuz_filename == 'vmlinuz.efi' or vmlinuz_filename == 'vmlinuz') and os.path.exists(os.path.join(directory, 'initrd.lz')):
1137 initrd_filename = vmlinuz_filename.replace('vmlinuz.efi', 'initrd.lz')1137 initrd_filename = vmlinuz_filename.replace(vmlinuz_filename, 'initrd.lz')
1138 # Handle normal case.1138 # Handle normal case.
1139 # .../squashfs-root/boot/vmlinuz-*1139 # .../squashfs-root/boot/vmlinuz-*
1140 # .../squashfs-root/boot/initrd.img-*1140 # .../squashfs-root/boot/initrd.img-*
@@ -1290,8 +1290,16 @@
1290 # vmlinuz1290 # vmlinuz
1291 # 0:version_name, 1:vmlinuz_filename, 2:initrd_filename, 3:directory, 4:note, 5:is_selected, 6:is_remove1291 # 0:version_name, 1:vmlinuz_filename, 2:initrd_filename, 3:directory, 4:note, 5:is_selected, 6:is_remove
1292 filename = liststore[selected][1]1292 filename = liststore[selected][1]
1293
1294 if (filename == 'vmlinuz.efi' or filename == 'vmlinuz'):
1295 target_filename = filename
1296 elif os.path.exists(os.path.join(directory, 'vmlinuz')):
1297 target_filename = 'vmlinuz'
1298 else:
1299 target_filename = 'vmlinuz.efi'
1300
1293 source_path = os.path.join(directory, filename)1301 source_path = os.path.join(directory, filename)
1294 target_path = os.path.join(model.custom_live_iso_directory, 'casper', 'vmlinuz.efi')1302 target_path = os.path.join(model.custom_live_iso_directory, 'casper', target_filename)
1295 logger.log_data('The vmlinuz source file is', source_path)1303 logger.log_data('The vmlinuz source file is', source_path)
1296 logger.log_data('The vmlinuz target file is', target_path)1304 logger.log_data('The vmlinuz target file is', target_path)
1297 copy_boot_file(thread, source_path, 0, target_path, 2)1305 copy_boot_file(thread, source_path, 0, target_path, 2)
@@ -1473,37 +1481,63 @@
1473 if os.path.exists('/usr/lib/ISOLINUX/isohdpfx.bin'):1481 if os.path.exists('/usr/lib/ISOLINUX/isohdpfx.bin'):
1474 # Ubuntu 15.04 uses isolinux (/usr/lib/ISOLINUX/isohdpfx.bin).1482 # Ubuntu 15.04 uses isolinux (/usr/lib/ISOLINUX/isohdpfx.bin).
1475 logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/ISOLINUX/isohdpfx.bin')1483 logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/ISOLINUX/isohdpfx.bin')
1476 command = 'xorriso'\1484
1477 ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\1485 if os.path.exists('boot/grub/efi.img'):
1478 ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\1486 command = 'xorriso'\
1479 ' -c isolinux/boot.cat'\1487 ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
1480 ' -b isolinux/isolinux.bin'\1488 ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
1481 ' -no-emul-boot'\1489 ' -c isolinux/boot.cat'\
1482 ' -boot-load-size 4'\1490 ' -b isolinux/isolinux.bin'\
1483 ' -boot-info-table'\1491 ' -no-emul-boot'\
1484 ' -eltorito-alt-boot'\1492 ' -boot-load-size 4'\
1485 ' -e boot/grub/efi.img'\1493 ' -boot-info-table'\
1486 ' -no-emul-boot'\1494 ' -eltorito-alt-boot'\
1487 ' -isohybrid-gpt-basdat'\1495 ' -e boot/grub/efi.img'\
1488 ' -o "%s" .'\1496 ' -no-emul-boot'\
1489 % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)1497 ' -isohybrid-gpt-basdat'\
1498 ' -o "%s" .'\
1499 % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
1500 else:
1501 command = 'xorriso'\
1502 ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
1503 ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
1504 ' -c isolinux/boot.cat'\
1505 ' -b isolinux/isolinux.bin'\
1506 ' -no-emul-boot'\
1507 ' -boot-load-size 4'\
1508 ' -boot-info-table'\
1509 ' -o "%s" .'\
1510 % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
1490 elif os.path.exists('/usr/lib/syslinux/isohdpfx.bin'):1511 elif os.path.exists('/usr/lib/syslinux/isohdpfx.bin'):
1491 # Ubuntu 14.04 uses syslinux-common (/usr/lib/syslinux/isohdpfx.bin).1512 # Ubuntu 14.04 uses syslinux-common (/usr/lib/syslinux/isohdpfx.bin).
1492 logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/syslinux/isohdpfx.bin')1513 logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/syslinux/isohdpfx.bin')
1493 command = 'xorriso'\1514
1494 ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\1515 if os.path.exists('boot/grub/efi.img'):
1495 ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\1516 command = 'xorriso'\
1496 ' -c isolinux/boot.cat'\1517 ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
1497 ' -b isolinux/isolinux.bin'\1518 ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
1498 ' -no-emul-boot'\1519 ' -c isolinux/boot.cat'\
1499 ' -boot-load-size 4'\1520 ' -b isolinux/isolinux.bin'\
1500 ' -boot-info-table'\1521 ' -no-emul-boot'\
1501 ' -eltorito-alt-boot'\1522 ' -boot-load-size 4'\
1502 ' -e boot/grub/efi.img'\1523 ' -boot-info-table'\
1503 ' -no-emul-boot'\1524 ' -eltorito-alt-boot'\
1504 ' -isohybrid-gpt-basdat'\1525 ' -e boot/grub/efi.img'\
1505 ' -o "%s" .'\1526 ' -no-emul-boot'\
1506 % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)1527 ' -isohybrid-gpt-basdat'\
1528 ' -o "%s" .'\
1529 % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
1530 else:
1531 command = 'xorriso'\
1532 ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
1533 ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
1534 ' -c isolinux/boot.cat'\
1535 ' -b isolinux/isolinux.bin'\
1536 ' -no-emul-boot'\
1537 ' -boot-load-size 4'\
1538 ' -boot-info-table'\
1539 ' -o "%s" .'\
1540 % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
1507 else:1541 else:
1508 logger.log_data('Using mkisofs', 'No isohybrid MBR available.')1542 logger.log_data('Using mkisofs', 'No isohybrid MBR available.')
1509 command = 'mkisofs -r -V "%s" -cache-inodes -J -l'\1543 command = 'mkisofs -r -V "%s" -cache-inodes -J -l'\

Subscribers

People subscribed via source and target branches