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
1=== modified file 'usr/share/cubic/utilities.py'
2--- usr/share/cubic/utilities.py 2017-06-24 17:40:56 +0000
3+++ usr/share/cubic/utilities.py 2017-11-23 11:49:15 +0000
4@@ -1099,7 +1099,7 @@
5 if priority <= 2:
6 selected_index = index
7 priority = 2
8- if vmlinuz_filename == 'vmlinuz.efi':
9+ if vmlinuz_filename == 'vmlinuz.efi' or vmlinuz_filename == 'vmlinuz':
10 if note: note += os.linesep
11 note += 'This is kernel %s, used to boot the original iso image\n(%s).' % (version_name, model.original_iso_image_filename)
12 if priority <= 1:
13@@ -1133,8 +1133,8 @@
14 # Handle special case.
15 # .../original-iso-mount/casper/vmlinuz.efi
16 # .../original-iso-mount/casper/initrd.lz
17- if vmlinuz_filename == 'vmlinuz.efi' and os.path.exists(os.path.join(directory, 'initrd.lz')):
18- initrd_filename = vmlinuz_filename.replace('vmlinuz.efi', 'initrd.lz')
19+ if (vmlinuz_filename == 'vmlinuz.efi' or vmlinuz_filename == 'vmlinuz') and os.path.exists(os.path.join(directory, 'initrd.lz')):
20+ initrd_filename = vmlinuz_filename.replace(vmlinuz_filename, 'initrd.lz')
21 # Handle normal case.
22 # .../squashfs-root/boot/vmlinuz-*
23 # .../squashfs-root/boot/initrd.img-*
24@@ -1290,8 +1290,16 @@
25 # vmlinuz
26 # 0:version_name, 1:vmlinuz_filename, 2:initrd_filename, 3:directory, 4:note, 5:is_selected, 6:is_remove
27 filename = liststore[selected][1]
28+
29+ if (filename == 'vmlinuz.efi' or filename == 'vmlinuz'):
30+ target_filename = filename
31+ elif os.path.exists(os.path.join(directory, 'vmlinuz')):
32+ target_filename = 'vmlinuz'
33+ else:
34+ target_filename = 'vmlinuz.efi'
35+
36 source_path = os.path.join(directory, filename)
37- target_path = os.path.join(model.custom_live_iso_directory, 'casper', 'vmlinuz.efi')
38+ target_path = os.path.join(model.custom_live_iso_directory, 'casper', target_filename)
39 logger.log_data('The vmlinuz source file is', source_path)
40 logger.log_data('The vmlinuz target file is', target_path)
41 copy_boot_file(thread, source_path, 0, target_path, 2)
42@@ -1473,37 +1481,63 @@
43 if os.path.exists('/usr/lib/ISOLINUX/isohdpfx.bin'):
44 # Ubuntu 15.04 uses isolinux (/usr/lib/ISOLINUX/isohdpfx.bin).
45 logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/ISOLINUX/isohdpfx.bin')
46- command = 'xorriso'\
47- ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
48- ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
49- ' -c isolinux/boot.cat'\
50- ' -b isolinux/isolinux.bin'\
51- ' -no-emul-boot'\
52- ' -boot-load-size 4'\
53- ' -boot-info-table'\
54- ' -eltorito-alt-boot'\
55- ' -e boot/grub/efi.img'\
56- ' -no-emul-boot'\
57- ' -isohybrid-gpt-basdat'\
58- ' -o "%s" .'\
59- % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
60+
61+ if os.path.exists('boot/grub/efi.img'):
62+ command = 'xorriso'\
63+ ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
64+ ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
65+ ' -c isolinux/boot.cat'\
66+ ' -b isolinux/isolinux.bin'\
67+ ' -no-emul-boot'\
68+ ' -boot-load-size 4'\
69+ ' -boot-info-table'\
70+ ' -eltorito-alt-boot'\
71+ ' -e boot/grub/efi.img'\
72+ ' -no-emul-boot'\
73+ ' -isohybrid-gpt-basdat'\
74+ ' -o "%s" .'\
75+ % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
76+ else:
77+ command = 'xorriso'\
78+ ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
79+ ' -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin'\
80+ ' -c isolinux/boot.cat'\
81+ ' -b isolinux/isolinux.bin'\
82+ ' -no-emul-boot'\
83+ ' -boot-load-size 4'\
84+ ' -boot-info-table'\
85+ ' -o "%s" .'\
86+ % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
87 elif os.path.exists('/usr/lib/syslinux/isohdpfx.bin'):
88 # Ubuntu 14.04 uses syslinux-common (/usr/lib/syslinux/isohdpfx.bin).
89 logger.log_data('Using xorriso with isohybrid MBR', '/usr/lib/syslinux/isohdpfx.bin')
90- command = 'xorriso'\
91- ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
92- ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
93- ' -c isolinux/boot.cat'\
94- ' -b isolinux/isolinux.bin'\
95- ' -no-emul-boot'\
96- ' -boot-load-size 4'\
97- ' -boot-info-table'\
98- ' -eltorito-alt-boot'\
99- ' -e boot/grub/efi.img'\
100- ' -no-emul-boot'\
101- ' -isohybrid-gpt-basdat'\
102- ' -o "%s" .'\
103- % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
104+
105+ if os.path.exists('boot/grub/efi.img'):
106+ command = 'xorriso'\
107+ ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
108+ ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
109+ ' -c isolinux/boot.cat'\
110+ ' -b isolinux/isolinux.bin'\
111+ ' -no-emul-boot'\
112+ ' -boot-load-size 4'\
113+ ' -boot-info-table'\
114+ ' -eltorito-alt-boot'\
115+ ' -e boot/grub/efi.img'\
116+ ' -no-emul-boot'\
117+ ' -isohybrid-gpt-basdat'\
118+ ' -o "%s" .'\
119+ % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
120+ else:
121+ command = 'xorriso'\
122+ ' -as mkisofs -r -V "%s" -cache-inodes -J -l'\
123+ ' -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin'\
124+ ' -c isolinux/boot.cat'\
125+ ' -b isolinux/isolinux.bin'\
126+ ' -no-emul-boot'\
127+ ' -boot-load-size 4'\
128+ ' -boot-info-table'\
129+ ' -o "%s" .'\
130+ % (model.custom_iso_image_volume_id, model.custom_iso_image_filepath)
131 else:
132 logger.log_data('Using mkisofs', 'No isohybrid MBR available.')
133 command = 'mkisofs -r -V "%s" -cache-inodes -J -l'\

Subscribers

People subscribed via source and target branches