Hello community, here is the log from the commit of package kiwi for openSUSE:Factory checked in at 2013-02-18 13:48:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kiwi (Old) and /work/SRC/openSUSE:Factory/.kiwi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiwi", Maintainer is "m...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/kiwi/kiwi.changes 2013-02-13 17:27:55.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.changes 2013-02-18 13:48:09.000000000 +0100 @@ -1,0 +2,94 @@ +Mon Feb 18 11:05:44 CET 2013 - m...@suse.de + +- v5.04.46 released + +------------------------------------------------------------------- +Mon Feb 18 09:57:40 CET 2013 - m...@suse.de + +- switch back to firmware='bios' and print a warning if uefi + is requested on another than the x86_64 architecture. on SUSE + we provide signed loaders and kernels for x86_64 only + +------------------------------------------------------------------- +Mon Feb 18 09:46:42 CET 2013 - m...@suse.de + +- secure boot grub commands are linuxefi and initrdefi + fix this also for oem disk images + +------------------------------------------------------------------- +Mon Feb 18 09:33:58 CET 2013 - m...@suse.de + +- fixed building of i386-efi (32bit) live EFI iso images + +------------------------------------------------------------------- +Sun Feb 17 23:50:36 CET 2013 - m...@suse.de + +- check for grub2 conf tool name before using it. with + openSUSE 12.3 the grub2-efi-... tool chain was removed + thus kiwi needs to check this before calling the mkconfig + command + +------------------------------------------------------------------- +Sun Feb 17 23:45:14 CET 2013 - m...@suse.de + +- better logging messages for framebuffer device setup and + initrd creation for reboot of the system by either dracut + or mkinitrd + +------------------------------------------------------------------- +Sun Feb 17 18:55:49 CET 2013 - m...@suse.de + +- increased default boot partition size to 200MB (+50M) + the plymouth splash data is huge. Just to give an example + 12.2 SUSE plymouth theme data is ~3M, 12.3 SUSE plymouth + theme data is about 23M. That blows up the initrd and + needs more space on the boot partition + +------------------------------------------------------------------- +Sun Feb 17 18:41:30 CET 2013 - m...@suse.de + +- make sure temporary config.lxc is removed after execution + +------------------------------------------------------------------- +Sun Feb 17 14:30:29 CET 2013 - m...@suse.de + +- EFI/UEFI fixes according to standard + * EFI/BOOT is required instead of efi/boot + * eltorito alternative loader path must be boot/<arch>/efi + * secure boot grub commands are linuxefi and initrdefi + * check for 64bit or 32bit efi module + +------------------------------------------------------------------- +Sun Feb 17 14:28:04 CET 2013 - m...@suse.de + +- KIWICollect install media package collector fixes + * pass all needed arguments to the KIWIIsoLinux constructor + * set logfile to terminal + +------------------------------------------------------------------- +Fri Feb 15 16:57:28 CET 2013 - m...@suse.de + +- v5.04.45 released + +------------------------------------------------------------------- +Fri Feb 15 16:45:29 CET 2013 - m...@suse.de + +- systemd related fixes causing the first boot to hang + * setupConsole should not run at all in case of systemd + * systemd has been moved to /usr/lib/systemd/systemd thus + /bin/systemd is now a link and that causes several + bash test calls to fail + * quit plymouth inside the initrd if the system image + doesn't have plymouth installed + * make debugging plymouth problems more easy by evaluating + the options plymouth.enable and/or rd.plymouth like + the mkinitrd scripts does it + +------------------------------------------------------------------- +Fri Feb 15 16:44:17 CET 2013 - m...@suse.de + +- systemd has been moved to /usr/lib/systemd with openSUSE 12.3 + thus the function baseSetRunlevel() needs to address old and + new location + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kiwi.spec ++++++ --- /var/tmp/diff_new_pack.SI1T1c/_old 2013-02-18 13:48:15.000000000 +0100 +++ /var/tmp/diff_new_pack.SI1T1c/_new 2013-02-18 13:48:15.000000000 +0100 @@ -26,7 +26,7 @@ Summary: openSUSE - KIWI Image System License: GPL-2.0 Group: System/Management -Version: 5.04.44 +Version: 5.04.46 Release: 0 # requirements to build packages BuildRequires: e2fsprogs ++++++ kiwi-docu.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/kiwi/kiwi-docu.tar.bz2 /work/SRC/openSUSE:Factory/.kiwi.new/kiwi-docu.tar.bz2 differ: char 11, line 1 ++++++ kiwi.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/.revision new/kiwi/.revision --- old/kiwi/.revision 2013-02-07 08:55:37.000000000 +0100 +++ new/kiwi/.revision 2013-02-07 08:55:37.000000000 +0100 @@ -1 +1 @@ -d8b03a59d1b1f49f9dc6f848d1823b7dca504d69 +a7cd6879743694b1b8d5e034140f76a5ebf8c433 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIBoot.pm new/kiwi/modules/KIWIBoot.pm --- old/kiwi/modules/KIWIBoot.pm 2013-02-13 15:41:25.000000000 +0100 +++ new/kiwi/modules/KIWIBoot.pm 2013-02-18 11:07:44.000000000 +0100 @@ -425,6 +425,13 @@ if ($type{firmware}) { $firmware = $type{firmware}; } + if (($firmware eq 'uefi') && ($arch ne 'x86_64')) { + $kiwi -> warning ( + "UEFI Secure boot is only supported on x86_64" + ); + $kiwi -> skipped (); + $firmware = 'bios'; + } } #========================================== # check partitioner @@ -610,6 +617,10 @@ } else { $bootloader = "grub"; } + my $efi_arch= 'x86_64'; + if ($arch ne 'x86_64') { + $efi_arch = 'i386'; + } my $status; my $result; my $tmpdir; @@ -848,17 +859,28 @@ $kiwi -> done(); } #========================================== + # copy grub2 config file to efi path too + #------------------------------------------ + if (($firmware eq "efi") || ($firmware eq "uefi")) { + qxx ("mkdir -p $tmpdir/EFI/BOOT"); + qxx ("cp $tmpdir/boot/grub2-efi/grub.cfg $tmpdir/EFI/BOOT"); + } + #========================================== # make iso EFI bootable #------------------------------------------ if (($firmware eq "efi") || ($firmware eq "uefi")) { - my $efi_fat = "$tmpdir/boot/grub2-efi/efiboot.img"; - $status = qxx ("qemu-img create $efi_fat 4M 2>&1"); + my $efi_fat = "$tmpdir/boot/$efi_arch/efi"; + $status = qxx ("mkdir -p $tmpdir/boot/$efi_arch"); $result = $? >> 8; if ($result == 0) { + $status = qxx ("qemu-img create $efi_fat 4M 2>&1"); + $result = $? >> 8; + } + if ($result == 0) { $status = qxx ("/sbin/mkdosfs -n 'BOOT' $efi_fat 2>&1"); $result = $? >> 8; if ($result == 0) { - $status = qxx ("mcopy -Do -s -i $efi_fat $tmpdir/efi :: 2>&1"); + $status = qxx ("mcopy -Do -s -i $efi_fat $tmpdir/EFI :: 2>&1"); $result = $? >> 8; } } @@ -870,12 +892,6 @@ } } #========================================== - # copy grub2 config file to efi path too - #------------------------------------------ - if (($firmware eq "efi") || ($firmware eq "uefi")) { - qxx ("cp $tmpdir/boot/grub2-efi/grub.cfg $tmpdir/efi/boot"); - } - #========================================== # Create an iso image from the tree #------------------------------------------ $kiwi -> info ("Creating ISO image..."); @@ -893,7 +909,7 @@ $base.= "-R -J -f -b boot/grub2/i386-pc/eltorito.img -no-emul-boot "; $base.= "-boot-load-size 4 -boot-info-table -udf -allow-limited-size "; if (($firmware eq "efi") || ($firmware eq "uefi")) { - $base.= "-eltorito-alt-boot -b boot/grub2-efi/efiboot.img "; + $base.= "-eltorito-alt-boot -b boot/$efi_arch/efi "; $base.= "-no-emul-boot "; } $opts.= "-joliet-long "; @@ -2592,8 +2608,8 @@ # Mount efi jump boot space on this disk #------------------------------------------ my $jump = $deviceMap{jump}; - qxx ("mkdir -p $loopdir/efi"); - if (! KIWIGlobals -> instance() -> mount ($jump, "$loopdir/efi")) { + qxx ("mkdir -p $loopdir/EFI"); + if (! KIWIGlobals -> instance() -> mount ($jump, "$loopdir/EFI")) { $kiwi -> failed (); $kiwi -> error ("Couldn't mount image jump device: $boot"); $kiwi -> failed (); @@ -2612,8 +2628,8 @@ #========================================== # Adapt efi boot path on jump partition #------------------------------------------ - qxx ("mkdir -p $loopdir/efi/efi"); - qxx ("mv $loopdir/efi/boot $loopdir/efi/efi"); + qxx ("mkdir -p $loopdir/EFI/EFI"); + qxx ("mv $loopdir/EFI/BOOT $loopdir/EFI/EFI"); } #========================================== # umount entire boot space @@ -3331,7 +3347,7 @@ if (($firmware eq "efi") || ($firmware eq "uefi")) { push @bootdir,"$tmpdir/boot/grub2-efi/$efipc"; push @bootdir,"$tmpdir/boot/grub2/$grubpc"; - push @bootdir,"$tmpdir/efi/boot"; + push @bootdir,"$tmpdir/EFI/BOOT"; } else { push @bootdir,"$tmpdir/boot/grub2/$grubpc"; } @@ -3479,7 +3495,7 @@ $kiwi -> failed (); return; } - my $core = "$tmpdir/efi/boot/bootx64.efi"; + my $core = "$tmpdir/EFI/BOOT/bootx64.efi"; my @modules = ( 'fat','ext2','part_gpt','efi_gop','iso9660','chain', 'linux','echo','configfile','boot','search_label', @@ -3487,6 +3503,9 @@ 'video','video_fb','normal' ); my $fo = 'x86_64-efi'; + if ($arch ne 'x86_64') { + $fo = 'i386-efi'; + } $status = qxx ( "$grub2_mkimage -O $fo -o $core -c $bootefi @modules 2>&1" ); @@ -3537,12 +3556,12 @@ return; } $status = qxx ( - "cp $tmpdir/$s_shim_ms $tmpdir/efi/boot/bootx64.efi 2>&1" + "cp $tmpdir/$s_shim_ms $tmpdir/EFI/BOOT/bootx64.efi 2>&1" ); $result = $? >> 8; if ($result != 0) { $status = qxx ( - "cp $tmpdir/$s_shim_suse $tmpdir/efi/boot/bootx64.efi 2>&1" + "cp $tmpdir/$s_shim_suse $tmpdir/EFI/BOOT/bootx64.efi 2>&1" ); $result = $? >> 8; } @@ -3553,7 +3572,7 @@ return; } $status = qxx ( - "cp $tmpdir/$s_signed $tmpdir/efi/boot/grub.efi 2>&1"); + "cp $tmpdir/$s_signed $tmpdir/EFI/BOOT/grub.efi 2>&1"); $result = $? >> 8; if ($result != 0) { $kiwi -> failed (); @@ -3884,9 +3903,9 @@ #========================================== # kernel loader command #------------------------------------------ - my $linux = 'linux'; + my $efi_suffix = ''; if ($firmware eq "uefi") { - $linux = 'linuxefi'; + $efi_suffix = 'efi'; } #========================================== # Theme and Fonts table @@ -4013,7 +4032,7 @@ print $FD ' --class opensuse --class os {'."\n"; if (($firmware eq "efi") || ($firmware eq "uefi")) { print $FD "\t"."set root='hd0,1'"."\n"; - print $FD "\t".'chainloader /efi/boot/bootx64.efi'."\n"; + print $FD "\t".'chainloader /EFI/BOOT/bootx64.efi'."\n"; } else { print $FD "\t"."set root='hd0'"."\n"; if ($dev eq '(cd)') { @@ -4047,30 +4066,30 @@ if ($iso) { print $FD "\t"."echo Loading linux...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/linux"; + print $FD "\t"."linux$efi_suffix /boot/linux"; print $FD ' ramdisk_size=512000 ramdisk_blocksize=4096'; print $FD " cdinst=1 loader=$bloader splash=silent"; } elsif (($type=~ /^KIWI USB/)||($imgtype=~ /vmx|oem|split/)) { print $FD "\t"."echo Loading linux.vmx...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/linux.vmx"; + print $FD "\t"."linux$efi_suffix /boot/linux.vmx"; print $FD " loader=$bloader splash=silent"; } else { print $FD "\t"."echo Loading linux...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/linux"; + print $FD "\t"."linux$efi_suffix /boot/linux"; print $FD " loader=$bloader splash=silent"; } print $FD $cmdline; if ($iso) { print $FD "\t"."echo Loading initrd...\n"; - print $FD "\t"."initrd /boot/initrd\n"; + print $FD "\t"."initrd$efi_suffix /boot/initrd\n"; } elsif (($type=~ /^KIWI USB/)||($imgtype=~ /vmx|oem|split/)) { print $FD "\t"."echo Loading initrd.vmx...\n"; - print $FD "\t"."initrd /boot/initrd.vmx\n"; + print $FD "\t"."initrd$efi_suffix /boot/initrd.vmx\n"; } else { print $FD "\t"."echo Loading initrd...\n"; - print $FD "\t"."initrd /boot/initrd\n"; + print $FD "\t"."initrd$efi_suffix /boot/initrd\n"; } print $FD "}\n"; } else { @@ -4121,7 +4140,7 @@ if ($iso) { print $FD "\t"."echo Loading linux...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/linux"; + print $FD "\t"."linux$efi_suffix /boot/linux"; print $FD ' ramdisk_size=512000 ramdisk_blocksize=4096'; print $FD " cdinst=1 loader=$bloader splash=silent"; } elsif ( @@ -4130,28 +4149,28 @@ ) { print $FD "\t"."echo Loading linux.vmx...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/linux.vmx"; + print $FD "\t"."linux$efi_suffix /boot/linux.vmx"; print $FD " loader=$bloader splash=silent"; } else { print $FD "\t"."echo Loading linux...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/linux"; + print $FD "\t"."linux$efi_suffix /boot/linux"; print $FD " loader=$bloader splash=silent"; } print $FD " @failsafe"; print $FD $cmdline; if ($iso) { print $FD "\t"."echo Loading initrd...\n"; - print $FD "\t"."initrd /boot/initrd\n"; + print $FD "\t"."initrd$efi_suffix /boot/initrd\n"; } elsif ( ($type=~ /^KIWI USB/) || ($imgtype=~ /vmx|oem|split/) ) { print $FD "\t"."echo Loading initrd.vmx...\n"; - print $FD "\t"."initrd /boot/initrd.vmx\n"; + print $FD "\t"."initrd$efi_suffix /boot/initrd.vmx\n"; } else { print $FD "\t"."echo Loading initrd...\n"; - print $FD "\t"."initrd /boot/initrd\n"; + print $FD "\t"."initrd$efi_suffix /boot/initrd\n"; } print $FD "}\n"; } else { @@ -4897,7 +4916,7 @@ # EFI #------------------------------------------ if (($firmware eq "efi") || ($firmware eq "uefi")) { - $status = qxx ("cp -a $source/efi $dest"); + $status = qxx ("cp -a $source/EFI $dest"); $result = $? >> 8; if ($result != 0) { $kiwi -> failed (); @@ -6513,8 +6532,8 @@ my $kiwi = $this->{kiwi}; my $xml = $this->{xml}; my %type = %{$xml->getImageTypeAndAttributes_legacy()}; - my $needMB = 150; - my $wantMB = 150; + my $needMB = 200; + my $wantMB = 200; if ($type{bootpartsize}) { $wantMB = $type{bootpartsize}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWICollect.pm new/kiwi/modules/KIWICollect.pm --- old/kiwi/modules/KIWICollect.pm 2013-02-13 15:41:20.000000000 +0100 +++ new/kiwi/modules/KIWICollect.pm 2013-02-18 11:07:44.000000000 +0100 @@ -130,6 +130,7 @@ bless $this, $class; $this->{m_logger} = KIWILog -> instance(); + $this->{m_logger}->setLogFile("terminal"); #========================================== # Module Parameters @@ -754,7 +755,7 @@ $this->{m_basesubdir}->{$cd}, $isoname, $attr, - $checkmedia + $checkmedia, $this->{cmdL}, $this->{m_xml} ); # Just the first media is usually bootable at SUSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIConfig.sh new/kiwi/modules/KIWIConfig.sh --- old/kiwi/modules/KIWIConfig.sh 2013-02-06 22:22:37.000000000 +0100 +++ new/kiwi/modules/KIWIConfig.sh 2013-02-18 08:55:21.000000000 +0100 @@ -1627,14 +1627,16 @@ # the specified value # ---- local RUNLEVEL=$1 + local target=/usr/lib/systemd/system/runlevel$RUNLEVEL.target + if [ ! -f $target ];then + target=/lib/systemd/system/runlevel$RUNLEVEL.target + fi case "$RUNLEVEL" in 1|2|3|5) sed -i "s/id:[0123456]:initdefault:/id:$RUNLEVEL:initdefault:/" \ /etc/inittab if test -d /etc/systemd/system; then - ln -sf \ - /lib/systemd/system/runlevel$RUNLEVEL.target \ - /etc/systemd/system/default.target + ln -sf $target /etc/systemd/system/default.target fi ;; *) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIGlobals.pm new/kiwi/modules/KIWIGlobals.pm --- old/kiwi/modules/KIWIGlobals.pm 2013-02-13 15:41:25.000000000 +0100 +++ new/kiwi/modules/KIWIGlobals.pm 2013-02-18 11:07:44.000000000 +0100 @@ -832,6 +832,10 @@ "lxc-execute -n kiwi -f $root/config.lxc true 2>&1" ); $code = $? >> 8; + #========================================== + # cleanup lxc + #------------------------------------------ + KIWIQX::qxx ("rm -f $root/config.lxc 2>&1"); } } } @@ -927,7 +931,7 @@ # Globals (generic) #------------------------------------------ my %data; - $data{Version} = "5.04.44"; + $data{Version} = "5.04.46"; $data{Publisher} = "SUSE LINUX GmbH"; $data{Preparer} = "KIWI - http://opensuse.github.com/kiwi"; $data{ConfigName} = "config.xml"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIImage.pm new/kiwi/modules/KIWIImage.pm --- old/kiwi/modules/KIWIImage.pm 2013-02-12 16:05:58.000000000 +0100 +++ new/kiwi/modules/KIWIImage.pm 2013-02-18 11:07:44.000000000 +0100 @@ -1477,7 +1477,6 @@ my $this = shift; my $para = shift; my $kiwi = $this->{kiwi}; - my $arch = $this->{arch}; my $sxml = $this->{xml}; my $cmdL = $this->{cmdL}; my $idest= $cmdL->getImageIntermediateTargetDir(); @@ -2060,6 +2059,13 @@ if ($stype{firmware}) { $firmware = $stype{firmware}; } + if (($firmware eq 'uefi') && ($isoarch ne 'x86_64')) { + $kiwi -> warning ( + "UEFI Secure boot is only supported on x86_64" + ); + $kiwi -> skipped (); + $firmware = 'bios'; + } #========================================== # Create bootloader configuration #------------------------------------------ @@ -2067,26 +2073,30 @@ #========================================== # Setup grub2 if efi live iso is requested #------------------------------------------ - my $grub = 'grub2-efi'; + my $grub = 'grub2-efi'; + my $efi_fo = 'x86_64-efi'; + if ($isoarch ne 'x86_64') { + $efi_fo = 'i386-efi'; + } if (! -d "$tmpdir/usr/lib/$grub") { $grub = 'grub2'; } my @theme = $sxml -> getBootTheme_legacy(); - my $ir_modules = "$tmpdir/usr/lib/$grub/x86_64-efi"; + my $ir_modules = "$tmpdir/usr/lib/$grub/$efi_fo"; my $ir_themes = "$tmpdir/usr/share/grub2/themes"; my $ir_bgnds = "$tmpdir/usr/share/grub2/backgrounds"; my $ir_font = "$tmpdir/usr/share/grub2/unicode.pf2"; - my $efi_modules= "$CD/efi/boot"; - my $cd_modules = "$CD/boot/grub2-efi/x86_64-efi"; + my $efi_modules= "$CD/EFI/BOOT"; + my $cd_modules = "$CD/boot/grub2-efi/$efi_fo"; my $cd_loader = "$CD/boot/grub2-efi"; my $theme = $theme[1]; my $ir_bg = "$ir_bgnds/$theme/1024x768.png"; my $cd_bg = "$cd_loader/themes/$theme/background.png"; my $fodir = '/boot/grub2-efi/themes/'; my $ascii = 'ascii.pf2'; - my $linux = 'linux'; + my $efi_suffix = ''; if ($firmware eq "uefi") { - $linux = 'linuxefi'; + $efi_suffix = 'efi'; } my @fonts = ( "DejaVuSans-Bold14.pf2", @@ -2106,7 +2116,7 @@ # Check for grub2-efi #------------------------------------------ if (! -d $ir_modules) { - $kiwi -> error ("Couldn't find grub2-efi in initrd"); + $kiwi -> error ("Couldn't find EFI grub2 data in: $ir_modules"); $kiwi -> failed (); return; } @@ -2160,16 +2170,15 @@ $kiwi -> failed (); return; } - my $core = "$CD/efi/boot/bootx64.efi"; + my $core = "$CD/EFI/BOOT/bootx64.efi"; my @modules = ( 'fat','ext2','part_gpt','efi_gop','iso9660','chain', 'linux','echo','configfile','boot','search_label', 'search_fs_file','search','search_fs_uuid','ls', 'video','video_fb','normal','test','sleep' ); - my $fo = 'x86_64-efi'; $status = qxx ( - "$grub2_mkimage -O $fo -o $core -c $bootefi @modules 2>&1" + "$grub2_mkimage -O $efi_fo -o $core -c $bootefi @modules 2>&1" ); $result = $? >> 8; if ($result != 0) { @@ -2207,12 +2216,12 @@ return; } $status = qxx ( - "cp $s_shim_ms $CD/efi/boot/bootx64.efi 2>&1" + "cp $s_shim_ms $CD/EFI/BOOT/bootx64.efi 2>&1" ); $result = $? >> 8; if ($result != 0) { $status = qxx ( - "cp $s_shim_suse $CD/efi/boot/bootx64.efi 2>&1" + "cp $s_shim_suse $CD/EFI/BOOT/bootx64.efi 2>&1" ); $result = $? >> 8; } @@ -2222,7 +2231,7 @@ $kiwi -> failed (); return; } - $status = qxx ("cp $s_signed $CD/efi/boot/grub.efi 2>&1"); + $status = qxx ("cp $s_signed $CD/EFI/BOOT/grub.efi 2>&1"); $result = $? >> 8; if ($result != 0) { $kiwi -> failed (); @@ -2233,26 +2242,6 @@ $kiwi -> done(); } #========================================== - # make iso EFI bootable - #------------------------------------------ - my $efi_fat = "$CD/boot/grub2-efi/efiboot.img"; - $status = qxx ("qemu-img create $efi_fat 4M 2>&1"); - $result = $? >> 8; - if ($result == 0) { - $status = qxx ("/sbin/mkdosfs -n 'BOOT' $efi_fat 2>&1"); - $result = $? >> 8; - if ($result == 0) { - $status = qxx ("mcopy -Do -s -i $efi_fat $CD/efi :: 2>&1"); - $result = $? >> 8; - } - } - if ($result != 0) { - $kiwi -> error ("Failed creating efi fat image: $status"); - $kiwi -> failed (); - return; - } - $efibootloadsize = -s $efi_fat; - #========================================== # create grub configuration #------------------------------------------ $kiwi -> info ("Creating grub2 configuration file..."); @@ -2304,11 +2293,11 @@ if (! $isxen) { print $FD "\t"."echo Loading linux...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/$isoarch/loader/linux"; + print $FD "\t"."linux$efi_suffix /boot/$isoarch/loader/linux"; print $FD ' ramdisk_size=512000 ramdisk_blocksize=4096'; print $FD " splash=silent"."\n"; print $FD "\t"."echo Loading initrd...\n"; - print $FD "\t"."initrd /boot/$isoarch/loader/initrd\n"; + print $FD "\t"."initrd$efi_suffix /boot/$isoarch/loader/initrd\n"; print $FD "}\n"; } else { print $FD "\t"."echo Loading Xen\n"; @@ -2330,12 +2319,12 @@ if (! $isxen) { print $FD "\t"."echo Loading linux...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/$isoarch/loader/linux"; + print $FD "\t"."linux$efi_suffix /boot/$isoarch/loader/linux"; print $FD ' ramdisk_size=512000 ramdisk_blocksize=4096'; print $FD " splash=silent"; print $FD " @failsafe"."\n"; print $FD "\t"."echo Loading initrd...\n"; - print $FD "\t"."initrd /boot/$isoarch/loader/initrd\n"; + print $FD "\t"."initrd$efi_suffix /boot/$isoarch/loader/initrd\n"; print $FD "}\n"; } else { print $FD "\t"."echo Loading Xen\n"; @@ -2359,10 +2348,10 @@ if (! $isxen) { print $FD "\t"."echo Loading linux...\n"; print $FD "\t"."set gfxpayload=keep"."\n"; - print $FD "\t"."$linux /boot/$isoarch/loader/linux"; + print $FD "\t"."linux$efi_suffix /boot/$isoarch/loader/linux"; print $FD " mediacheck=1 splash=silent"; print $FD "\t"."echo Loading initrd...\n"; - print $FD "\t"."initrd /boot/$isoarch/loader/initrd\n"; + print $FD "\t"."initrd$efi_suffix /boot/$isoarch/loader/initrd\n"; print $FD "}\n"; } else { print $FD "\t"."echo Loading Xen\n"; @@ -2386,7 +2375,7 @@ print $FD 'menuentry "Boot from Hard Disk"'; print $FD ' --class opensuse --class os {'."\n"; print $FD "\t"."set root='hd0,1'"."\n"; - print $FD "\t".'chainloader /efi/boot/bootx64.efi'."\n"; + print $FD "\t".'chainloader /EFI/BOOT/bootx64.efi'."\n"; print $FD '}'."\n"; #========================================== # setup memtest entry @@ -2400,8 +2389,28 @@ #========================================== # copy grub config to efi directory too #------------------------------------------ - qxx ("cp $CD/boot/grub2-efi/grub.cfg $CD/efi/boot"); + qxx ("cp $CD/boot/grub2-efi/grub.cfg $CD/EFI/BOOT"); $kiwi -> done(); + #========================================== + # make iso EFI bootable + #------------------------------------------ + my $efi_fat = "$CD/boot/$isoarch/efi"; + $status = qxx ("qemu-img create $efi_fat 4M 2>&1"); + $result = $? >> 8; + if ($result == 0) { + $status = qxx ("/sbin/mkdosfs -n 'BOOT' $efi_fat 2>&1"); + $result = $? >> 8; + if ($result == 0) { + $status = qxx ("mcopy -Do -s -i $efi_fat $CD/EFI :: 2>&1"); + $result = $? >> 8; + } + } + if ($result != 0) { + $kiwi -> error ("Failed creating efi fat image: $status"); + $kiwi -> failed (); + return; + } + $efibootloadsize = -s $efi_fat; } #========================================== # copy base graphics boot CD files diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWIIsoLinux.pm new/kiwi/modules/KIWIIsoLinux.pm --- old/kiwi/modules/KIWIIsoLinux.pm 2013-02-07 10:34:44.000000000 +0100 +++ new/kiwi/modules/KIWIIsoLinux.pm 2013-02-18 11:07:44.000000000 +0100 @@ -392,7 +392,7 @@ #========================================== # update sort file #------------------------------------------ - qxx ("echo $src/boot/grub2-efi/efiboot.img 1000001 >> $sort"); + qxx ("echo $src/boot/x86_64/efi 1000001 >> $sort"); #========================================== # add end-of-header marker #------------------------------------------ @@ -404,7 +404,7 @@ $para.= ' -eltorito-alt-boot '; # FIXME: setting the size limits it, which is pretty bad # $para.= " -boot-load-size $size"; - $para.= ' -b boot/grub2-efi/efiboot.img'; + $para.= ' -b boot/x86_64/efi'; $para.= ' -no-emul-boot -joliet-long -hide glump -hide-joliet glump'; $this -> {params} = $para; return $this; @@ -758,6 +758,9 @@ } $iso_blk -> close(); $iso_fd -> close(); + $kiwi -> loginfo (" + KIWIIsoLinux::findAndCopyMagicBlock start block at: $start\n" + ); $this->{efi_offset} = $start * 4; $this->{efi_loop_offset} = $start * 2048; return $start; @@ -857,7 +860,7 @@ #========================================== # Call mkisofs second stage #------------------------------------------ - if ($firmware eq "efi") { + if ($firmware eq "efi" || $firmware eq "uefi") { if (! $this -> findAndCopyMagicBlock()) { $kiwi -> error ("Failed to read magic iso header"); $kiwi -> failed (); @@ -1055,12 +1058,12 @@ my $partOpt = $optNames{'partok'}; my $uefiOpt = $optNames{'uefi'}; my $offset = 64; - if (($firmware eq 'efi') && (! $uefiOpt)) { + if (($firmware eq 'efi' || $firmware eq 'uefi') && (! $uefiOpt)) { $kiwi -> warning ("installed isohybrid does not support EFI"); $kiwi -> skipped (); $firmware = 'bios'; } - if ($firmware eq 'efi') { + if ($firmware eq 'efi' || $firmware eq 'uefi') { $offset = $this->{efi_offset}; } #========================================== @@ -1070,7 +1073,7 @@ if ($mbrid) { $cmd.= " $idOpt $mbrid $typeOpt 0x83"; } - if ($firmware eq 'efi') { + if ($firmware eq 'efi' || $firmware eq 'uefi') { $cmd.= " $uefiOpt"; } $data = qxx ("$cmd $iso 2>&1"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWILinuxRC.sh new/kiwi/modules/KIWILinuxRC.sh --- old/kiwi/modules/KIWILinuxRC.sh 2013-02-13 15:41:25.000000000 +0100 +++ new/kiwi/modules/KIWILinuxRC.sh 2013-02-18 11:07:44.000000000 +0100 @@ -28,6 +28,7 @@ export HYBRID_PERSISTENT_DIR=/read-write export UTIMER_INFO=/dev/utimer export bootLoaderOK=0 +export enablePlymouth=1 #====================================== # Exports (console) @@ -487,10 +488,12 @@ #-------------------------------------- function createFramebufferDevices { if [ -f /proc/fb ]; then - Echo "Creating framebuffer devices" while read fbnum fbtype; do if [ $(($fbnum < 32)) ] ; then - [ -c /dev/fb$fbnum ] || mknod -m 0660 /dev/fb$fbnum c 29 $fbnum + if [ ! -c /dev/fb$fbnum ];then + Echo "Creating framebuffer device: /dev/fb$fbnum" + mknod -m 0660 /dev/fb$fbnum c 29 $fbnum + fi fi done < /proc/fb fi @@ -661,8 +664,18 @@ udevTrigger # wait for events to finish udevPending - # start plymouth if it exists - startPlymouth + # start plymouth if it exists and enabled + for o in $(cat /proc/cmdline) ; do + case "$o" in + plymouth.enable=0*|rd.plymouth=0*) + enablePlymouth=0 + break + ;; + esac + done + if [ $enablePlymouth -eq 1 ]; then + startPlymouth + fi } #====================================== # moduleLoadBeforeUdev @@ -876,8 +889,8 @@ local instTool=grub2-install local confPath=/boot/grub2/grub.cfg if [ "$partedTableType" = "gpt" ];then - confTool=grub2-efi-mkconfig - instTool=grub2-efi-install + which grub2-efi-mkconfig &>/dev/null && confTool=grub2-efi-mkconfig + which grub2-efi-install &>/dev/null && instTool=grub2-efi-install confPath=/boot/grub2-efi/grub.cfg fi if ! which $confTool &>/dev/null;then @@ -979,8 +992,8 @@ # check tool status #-------------------------------------- if [ "$partedTableType" = "gpt" ];then - confTool=grub2-efi-mkconfig - instTool=grub2-efi-install + which grub2-efi-mkconfig &>/dev/null && confTool=grub2-efi-mkconfig + which grub2-efi-install &>/dev/null && instTool=grub2-efi-install confPath=/boot/grub2-efi/grub.cfg fi if ! which $confTool &>/dev/null;then @@ -1053,6 +1066,7 @@ done setupDefaultTheme if [ $systemMap -eq 1 ];then + Echo "Creating dracut based initrd" if [ ! -e /proc/mounts ];then mount -t proc proc /proc umountProc=1 @@ -1127,6 +1141,7 @@ done setupDefaultTheme if [ $systemMap -eq 1 ];then + Echo "Creating mkinitrd based initrd" if [ ! -e /proc/mounts ];then mount -t proc proc /proc umountProc=1 @@ -2888,12 +2903,12 @@ #====================================== # check for kiwi_JumpPart #-------------------------------------- - if [ ! -z "$kiwi_JumpPart" ] && [ -d /mnt/$mount/efi ];then + if [ ! -z "$kiwi_JumpPart" ] && [ -d /mnt/$mount/EFI ];then local jdev=$(ddn $imageDiskDevice $kiwi_JumpPart) local fstype=$(blkid $jdev -s TYPE -o value) if [ ! -z "$fstype" ];then jdev=$(getDiskID $jdev) - echo "$jdev /boot/efi $fstype defaults 0 0" >> $nfstab + echo "$jdev /boot/EFI $fstype defaults 0 0" >> $nfstab fi fi } @@ -4031,8 +4046,8 @@ # updateMTAB #-------------------------------------- function updateMTAB { - prefix=$1 - umount=0 + local prefix=$1 + local umount=0 if [ ! -e /proc/mounts ];then mount -t proc proc /proc umount=1 @@ -6675,7 +6690,7 @@ # check for init kernel option #-------------------------------------- if [ -z "$init" ];then - if [ -f /mnt/bin/systemd ];then + if [ -e /mnt/bin/systemd ];then export init=/bin/systemd else export init=/sbin/init @@ -6774,6 +6789,12 @@ #-------------------------------------- if which plymouthd &>/dev/null;then plymouth update-root-fs --new-root-dir=/mnt + #====================================== + # stop if not installed in system image + #-------------------------------------- + if [ ! -e /mnt/usr/bin/plymouth ];then + plymouth quit + fi fi #====================================== # export root block device @@ -8886,9 +8907,16 @@ # ---- local itab=/etc/inittab local stty=/etc/securetty + local init=/bin/systemd local xvc="X0:12345:respawn:/sbin/mingetty --noclear xvc0 linux" local hvc="H0:12345:respawn:/sbin/mingetty --noclear hvc0 linux" #====================================== + # return early in case of systemd + #-------------------------------------- + if [ -e $init ];then + return + fi + #====================================== # create tty nodes if not done #-------------------------------------- setupTTY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWISchema.rnc new/kiwi/modules/KIWISchema.rnc --- old/kiwi/modules/KIWISchema.rnc 2013-02-06 22:22:37.000000000 +0100 +++ new/kiwi/modules/KIWISchema.rnc 2013-02-18 11:07:44.000000000 +0100 @@ -1516,7 +1516,7 @@ k.type.bootpartsize.attribute = ## For images with a separate boot partition this attribute ## specifies the size in MB. If not set the min bootpart - ## size is set to 150 MB + ## size is set to 200 MB attribute bootpartsize { xsd:nonNegativeInteger } k.type.bootprofile.attribute = ## Specifies the boot profile defined in the boot image diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi/modules/KIWISchema.rng new/kiwi/modules/KIWISchema.rng --- old/kiwi/modules/KIWISchema.rng 2013-02-06 22:22:37.000000000 +0100 +++ new/kiwi/modules/KIWISchema.rng 2013-02-18 11:07:44.000000000 +0100 @@ -2020,7 +2020,7 @@ <attribute name="bootpartsize"> <a:documentation>For images with a separate boot partition this attribute specifies the size in MB. If not set the min bootpart -size is set to 150 MB</a:documentation> +size is set to 200 MB</a:documentation> <data type="nonNegativeInteger"/> </attribute> </define> -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org