Hello community,
here is the log from the commit of package kiwi for openSUSE:12.3 checked in at 2013-02-18 13:48:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3/kiwi (Old)
and /work/SRC/openSUSE:12.3/.kiwi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiwi", Maintainer is "ms@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:12.3/kiwi/kiwi.changes 2013-02-13 17:28:03.000000000 +0100
+++ /work/SRC/openSUSE:12.3/.kiwi.new/kiwi.changes 2013-02-18 13:48:19.000000000 +0100
@@ -1,0 +2,94 @@
+Mon Feb 18 11:05:44 CET 2013 - ms@suse.de
+
+- v5.04.46 released
+
+-------------------------------------------------------------------
+Mon Feb 18 09:57:40 CET 2013 - ms@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 - ms@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 - ms@suse.de
+
+- fixed building of i386-efi (32bit) live EFI iso images
+
+-------------------------------------------------------------------
+Sun Feb 17 23:50:36 CET 2013 - ms@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 - ms@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 - ms@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 - ms@suse.de
+
+- make sure temporary config.lxc is removed after execution
+
+-------------------------------------------------------------------
+Sun Feb 17 14:30:29 CET 2013 - ms@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 - ms@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 - ms@suse.de
+
+- v5.04.45 released
+
+-------------------------------------------------------------------
+Fri Feb 15 16:45:29 CET 2013 - ms@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 - ms@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
+
+-------------------------------------------------------------------
Old:
----
disable-uefi-for-x86.patch
fix-efi.patch
fix-systemd.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kiwi.spec ++++++
--- /var/tmp/diff_new_pack.nhdpQ9/_old 2013-02-18 13:48:21.000000000 +0100
+++ /var/tmp/diff_new_pack.nhdpQ9/_new 2013-02-18 13:48:21.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
@@ -116,9 +116,6 @@
Source2: %{name}-docu.tar.bz2
Source3: %{name}-repo.tar.bz2
Source4: %{name}-find-boot-requires.sh
-Patch0: fix-efi.patch
-Patch1: fix-systemd.diff
-Patch2: disable-uefi-for-x86.patch
# build root path
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -469,16 +466,13 @@
%prep
%setup -q -n %name -a2 -a3
-%patch0 -p1
-%patch1
-%patch2 -p1
%build
# empty because of rpmlint warning rpm-buildroot-usage
%if 0%{?suse_version} > 1140
%check
-#make KIWIVERBTEST=1 KIWI_NO_NET=1 test
+make KIWIVERBTEST=1 KIWI_NO_NET=1 test
%endif
%install
++++++ kiwi-docu.tar.bz2 ++++++
/work/SRC/openSUSE:12.3/kiwi/kiwi-docu.tar.bz2 /work/SRC/openSUSE:12.3/.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">