Merge lp:~vorlon/ubuntu/saucy/grub2/lp.1236625 into lp:~ubuntu-core-dev/ubuntu/raring/grub2/raring

Proposed by Steve Langasek
Status: Superseded
Proposed branch: lp:~vorlon/ubuntu/saucy/grub2/lp.1236625
Merge into: lp:~ubuntu-core-dev/ubuntu/raring/grub2/raring
Diff against target: 3698 lines (+1964/-711)
68 files modified
Makefile.util.def (+6/-0)
config.h.in (+2/-0)
configure.ac (+16/-0)
debian/bug-script (+1/-1)
debian/build-efi-images (+24/-6)
debian/changelog (+249/-0)
debian/config.in (+3/-2)
debian/control (+3/-3)
debian/dirs.in (+0/-1)
debian/grub-common.install.in (+0/-1)
debian/grub-common.maintscript.hurd.in (+3/-0)
debian/grub-common.maintscript.kfreebsd.in (+3/-0)
debian/grub-common.maintscript.linux.in (+3/-0)
debian/grub.d/05_debian_theme (+24/-16)
debian/grub2.dirs (+0/-1)
debian/grub2.install (+0/-2)
debian/install-bin.in (+0/-3)
debian/install.in (+0/-2)
debian/patches/acpihalt_improvements.patch (+191/-0)
debian/patches/efi_always_install_grub_cfg.patch (+36/-0)
debian/patches/efidisk_non_512_sectors.patch (+56/-0)
debian/patches/install_bios_setup_path.patch (+20/-0)
debian/patches/install_signed.patch (+9/-13)
debian/patches/maybe_quiet.patch (+362/-0)
debian/patches/mkconfig_emacs_autosave.patch (+20/-0)
debian/patches/mkconfig_signed_kernel.patch (+2/-2)
debian/patches/mkconfig_ubuntu_distributor.patch (+11/-7)
debian/patches/os_prober_efi.patch (+36/-0)
debian/patches/probe_error_handling.patch (+22/-0)
debian/patches/restore_mkdevicemap.patch (+1/-1)
debian/patches/script_check_no_commands.patch (+87/-0)
debian/patches/series (+12/-7)
debian/patches/sleep_shift.patch (+53/-0)
debian/patches/texinfo_ordering.patch (+21/-0)
debian/patches/ubuntu_acpihalt_improvements.patch (+0/-191)
debian/patches/ubuntu_crashkernel.patch (+3/-3)
debian/patches/ubuntu_failed_boot_menu.patch (+27/-5)
debian/patches/ubuntu_gfxpayload_filter.patch (+2/-2)
debian/patches/ubuntu_linux_quiet.patch (+0/-41)
debian/patches/ubuntu_normal_quiet.patch (+0/-62)
debian/patches/ubuntu_quick_boot.patch (+17/-8)
debian/patches/ubuntu_quiet_grub_loading.patch (+0/-106)
debian/patches/ubuntu_really_quiet.patch (+0/-77)
debian/patches/ubuntu_recovery_nomodeset.patch (+2/-2)
debian/patches/ubuntu_sleep_shift.patch (+0/-53)
debian/patches/ubuntu_vt_handoff.patch (+3/-3)
debian/patches/ubuntu_wubi_no_windows.patch (+0/-47)
debian/patches/wubi_no_windows.patch (+47/-0)
debian/po/hu.po (+411/-0)
debian/postinst.in (+2/-3)
debian/rules (+19/-10)
docs/grub-dev.texi (+1/-1)
grub-core/boot/i386/pc/boot.S (+5/-1)
grub-core/boot/i386/pc/diskboot.S (+10/-1)
grub-core/disk/efi/efidisk.c (+14/-7)
grub-core/kern/main.c (+11/-0)
grub-core/kern/rescue_reader.c (+4/-0)
grub-core/normal/main.c (+6/-0)
grub-core/normal/menu.c (+14/-1)
tests/grub_script_no_commands.in (+21/-0)
util/deviceiter.c (+1/-1)
util/getroot.c (+1/-0)
util/grub-install.in (+13/-9)
util/grub-mkconfig.in (+1/-1)
util/grub-script-check.c (+9/-1)
util/grub.d/00_header.in (+14/-0)
util/grub.d/10_linux.in (+11/-7)
util/grub.d/30_os-prober.in (+19/-0)
To merge this branch: bzr merge lp:~vorlon/ubuntu/saucy/grub2/lp.1236625
Reviewer Review Type Date Requested Status
Colin Watson Pending
Review via email: mp+189745@code.launchpad.net

This proposal has been superseded by a proposal from 2013-10-08.

Description of the change

This seems like the straightforward fix for bug #1236625, please let me know
if I've screwed it up somewhere :)

To post a comment you must log in.
2356. By Steve Langasek

Rename patch, per Colin

2357. By Steve Langasek

rearrange the patch at Colin's request

2358. By Steve Langasek

Remove accidentally-included cruft from the patch

Unmerged revisions

2358. By Steve Langasek

Remove accidentally-included cruft from the patch

2357. By Steve Langasek

rearrange the patch at Colin's request

2356. By Steve Langasek

Rename patch, per Colin

2355. By Steve Langasek

debian/patches/efi_always_install_grub_cfg.patch: unconditionally
create grub.cfg on our EFI boot partition. Closes LP: #1236625.

2354. By Colin Watson

releasing package grub2 version 2.00-19ubuntu1

2353. By Colin Watson

merge from Debian 2.00-19

2352. By Colin Watson

* Backport from upstream:
  - Handle partitions on non-512B EFI disks (LP: #1065281).

2351. By Colin Watson

releasing package grub2 version 2.00-18ubuntu4

2350. By Colin Watson

Restore "-p /EFI/ubuntu" to the grub-mkimage call that creates
grubx64.efi, to fix the case of booting from a hard disk with Secure
Boot enabled.

2349. By Colin Watson

releasing package grub2 version 2.00-18ubuntu3

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Makefile.util.def'
2--- Makefile.util.def 2013-02-01 17:45:21 +0000
3+++ Makefile.util.def 2013-10-08 00:15:07 +0000
4@@ -701,6 +701,12 @@
5
6 script = {
7 testcase;
8+ name = grub_script_no_commands;
9+ common = tests/grub_script_no_commands.in;
10+};
11+
12+script = {
13+ testcase;
14 name = partmap_test;
15 common = tests/partmap_test.in;
16 };
17
18=== modified file 'config.h.in'
19--- config.h.in 2012-02-04 20:47:29 +0000
20+++ config.h.in 2013-10-08 00:15:07 +0000
21@@ -41,6 +41,8 @@
22 #define NEED_REGISTER_FRAME_INFO @NEED_REGISTER_FRAME_INFO@
23 /* Define to 1 to enable disk cache statistics. */
24 #define DISK_CACHE_STATS @DISK_CACHE_STATS@
25+/* Define to 1 to make GRUB quieter at boot time. */
26+#define QUIET_BOOT @QUIET_BOOT@
27
28 #define GRUB_TARGET_CPU "@GRUB_TARGET_CPU@"
29 #define GRUB_PLATFORM "@GRUB_PLATFORM@"
30
31=== modified file 'configure.ac'
32--- configure.ac 2012-09-04 17:12:59 +0000
33+++ configure.ac 2013-10-08 00:15:07 +0000
34@@ -1076,6 +1076,17 @@
35 AC_SUBST([LIBZFS])
36 AC_SUBST([LIBNVPAIR])
37
38+AC_ARG_ENABLE([quiet-boot],
39+ [AS_HELP_STRING([--enable-quiet-boot],
40+ [emit fewer messages at boot time (default=no)])],
41+ [], [enable_quiet_boot=no])
42+if test x"$enable_quiet_boot" = xyes ; then
43+ QUIET_BOOT=1
44+else
45+ QUIET_BOOT=0
46+fi
47+AC_SUBST([QUIET_BOOT])
48+
49 LIBS=""
50
51 AC_SUBST([FONT_SOURCE])
52@@ -1232,5 +1243,10 @@
53 else
54 echo With libzfs support: No "($libzfs_excuse)"
55 fi
56+if [ x"$enable_quiet_boot" = xyes ]; then
57+echo With quiet boot: Yes
58+else
59+echo With quiet boot: No
60+fi
61 echo "*******************************************************"
62 ]
63
64=== renamed file 'debian/presubj' => 'debian/bug-presubj'
65=== renamed file 'debian/script' => 'debian/bug-script'
66--- debian/script 2011-03-28 22:49:42 +0000
67+++ debian/bug-script 2013-10-08 00:15:07 +0000
68@@ -44,7 +44,7 @@
69 if [ "$REPLY" = yep ]; then
70 echo >&3
71 echo "*********************** BEGIN LVM" >&3
72- su root -c "vgdisplay; pvdisplay; lvdisplay" >&3
73+ su root -c "vgdisplay; pvdisplay; lvdisplay" >&3 || true
74 echo "*********************** END LVM" >&3
75 fi
76
77
78=== modified file 'debian/build-efi-images'
79--- debian/build-efi-images 2013-02-01 17:45:21 +0000
80+++ debian/build-efi-images 2013-10-08 00:15:07 +0000
81@@ -47,10 +47,20 @@
82
83 # Skeleton configuration file which finds the real boot disk.
84 cat >"$workdir/grub.cfg" <<EOF
85-if ! search --file --set=root /.disk/info; then
86- search --file --set=root /.disk/mini-info
87-fi
88-set prefix=(\$root)/boot/grub
89+if [ -z "\$prefix" -o ! -e "\$prefix" ]; then
90+ if ! search --file --set=root /.disk/info; then
91+ search --file --set=root /.disk/mini-info
92+ fi
93+ set prefix=(\$root)/boot/grub
94+fi
95+if [ -e \$prefix/$platform/grub.cfg ]; then
96+ source \$prefix/$platform/grub.cfg
97+else
98+ source \$prefix/grub.cfg
99+fi
100+EOF
101+
102+cat >"$workdir/grub-netboot.cfg" <<EOF
103 if [ -e \$prefix/$platform/grub.cfg ]; then
104 source \$prefix/$platform/grub.cfg
105 else
106@@ -61,20 +71,28 @@
107 mkfs.msdos -C "$workdir/memdisk.fat" 64
108 mcopy -i "$workdir/memdisk.fat" "$workdir/grub.cfg" ::grub.cfg
109
110+mkfs.msdos -C "$workdir/memdisk-netboot.fat" 64
111+mcopy -i "$workdir/memdisk-netboot.fat" "$workdir/grub-netboot.cfg" ::grub.cfg
112+
113 CD_MODULES="
114 all_video boot btrfs cat chain configfile echo efifwsetup
115- efinet ext2 fat font gfxmenu gfxterm gzio halt hfsplus
116+ efinet ext2 fat font gettext gfxmenu gfxterm gzio halt hfsplus
117 iso9660 jpeg keystatus loadenv linux linuxefi memdisk minicmd
118 normal part_apple part_msdos part_gpt password_pbkdf2 png
119 reboot search search_fs_uuid search_fs_file search_label sleep
120 test video"
121 GRUB_MODULES="$CD_MODULES lvm mdraid09 mdraid1x"
122+NET_MODULES="$CD_MODULES tftp"
123
124 "$grub_mkimage" -O "$platform" -o "$outdir/gcd$efi_name.efi" \
125- -d "$grub_core" -p /EFI/BOOT \
126+ -d "$grub_core" \
127 -c "$workdir/grub-bootstrap.cfg" -m "$workdir/memdisk.fat" \
128+ -p /boot/grub \
129 $CD_MODULES
130 "$grub_mkimage" -O "$platform" -o "$outdir/grub$efi_name.efi" \
131 -d "$grub_core" -p /EFI/ubuntu $GRUB_MODULES
132+"$grub_mkimage" -O "$platform" -o "$outdir/grubnet$efi_name.efi" \
133+ -d "$grub_core" -c "$workdir/grub-bootstrap.cfg" \
134+ -m "$workdir/memdisk-netboot.fat" -p /grub $NET_MODULES
135
136 exit 0
137
138=== modified file 'debian/changelog'
139--- debian/changelog 2013-04-09 09:14:57 +0000
140+++ debian/changelog 2013-10-08 00:15:07 +0000
141@@ -1,3 +1,244 @@
142+grub2 (2.00-19ubuntu2) UNRELEASED; urgency=low
143+
144+ * debian/patches/efi_always_install_grub_cfg.patch: unconditionally
145+ create grub.cfg on our EFI boot partition. Closes LP: #1236625.
146+
147+ -- Steve Langasek <steve.langasek@ubuntu.com> Mon, 07 Oct 2013 16:55:32 -0700
148+
149+grub2 (2.00-19ubuntu1) saucy; urgency=low
150+
151+ * Resynchronise with Debian. Remaining changes:
152+ - Default to hiding the menu; holding down Shift at boot will show it.
153+ - Add crashkernel option.
154+ - Bypass menu unless other OSes are installed or Shift is pressed.
155+ - Show the boot menu if the previous boot failed.
156+ - Check hardware support before using gfxpayload=keep.
157+ - Set vt.handoff=7 for smooth handoff to kernel graphical mode.
158+ - In recovery mode, add nomodeset to the Linux kernel arguments, and
159+ remove the 'set gfxpayload=keep' command.
160+ - Handle probing striped DM-RAID devices.
161+
162+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 18 Sep 2013 21:20:28 +0100
163+
164+grub2 (2.00-19) unstable; urgency=low
165+
166+ [ Colin Watson ]
167+ * Merge from Ubuntu:
168+ - debian/build-efi-images: Where possible, make use of the device path
169+ derived from the EFI Loaded Image Protocol to compute the prefix
170+ (LP: #1097570).
171+ - debian/build-efi-images: Add a netboot image target to our set of
172+ prebuilt EFI images (thanks, Steve Langasek).
173+ * Backport from upstream:
174+ - Handle partitions on non-512B EFI disks (LP: #1065281).
175+
176+ [ Phillip Susi ]
177+ * restore_mkdevicemap.patch: Fix dmraid uuid check to look for "DMRAID-"
178+ anywhere instead of only at the start, since kpartx prefixes it with
179+ "partN-" (LP: #1183915).
180+
181+ -- Colin Watson <cjwatson@debian.org> Wed, 18 Sep 2013 17:18:27 +0100
182+
183+grub2 (2.00-18ubuntu4) saucy; urgency=low
184+
185+ * Restore "-p /EFI/ubuntu" to the grub-mkimage call that creates
186+ grubx64.efi, to fix the case of booting from a hard disk with Secure
187+ Boot enabled.
188+
189+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 12 Sep 2013 15:27:32 +0100
190+
191+grub2 (2.00-18ubuntu3) saucy; urgency=low
192+
193+ * Fix recordfail-disabling patch to take account of the GRUB_PREFIX
194+ variable no longer existing.
195+
196+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 11 Sep 2013 17:41:22 +0100
197+
198+grub2 (2.00-18ubuntu2) saucy; urgency=low
199+
200+ [ Colin Watson ]
201+ * debian/build-efi-images: Where possible, make use of the device path
202+ derived from the EFI Loaded Image Protocol to compute the prefix
203+ (LP: #1097570).
204+
205+ [ Steve Langasek ]
206+ * debian/build-efi-images: Add a netboot image target to our set of
207+ prebuilt EFI images.
208+
209+ [ Richard Laager ]
210+ * Disable the use of recordfail for filesystems to which GRUB cannot write
211+ (LP: #913336).
212+
213+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 11 Sep 2013 14:58:41 +0100
214+
215+grub2 (2.00-18ubuntu1) saucy; urgency=low
216+
217+ * Resynchronise with Debian. Remaining changes:
218+ - Default to hiding the menu; holding down Shift at boot will show it.
219+ - Add crashkernel option.
220+ - Bypass menu unless other OSes are installed or Shift is pressed.
221+ - Show the boot menu if the previous boot failed.
222+ - Check hardware support before using gfxpayload=keep.
223+ - Set vt.handoff=7 for smooth handoff to kernel graphical mode.
224+ - In recovery mode, add nomodeset to the Linux kernel arguments, and
225+ remove the 'set gfxpayload=keep' command.
226+ - Handle probing striped DM-RAID devices.
227+
228+ -- Colin Watson <cjwatson@ubuntu.com> Mon, 26 Aug 2013 21:59:39 +0200
229+
230+grub2 (2.00-18) unstable; urgency=low
231+
232+ * Add gettext module to signed UEFI images (LP: #1104627).
233+ * Put the preprocessor definition for quiet-boot in the right place so
234+ that it actually takes effect.
235+
236+ -- Colin Watson <cjwatson@debian.org> Mon, 26 Aug 2013 17:23:09 +0100
237+
238+grub2 (2.00-17ubuntu1) saucy; urgency=low
239+
240+ * Resynchronise with Debian. Remaining changes:
241+ - Default to hiding the menu; holding down Shift at boot will show it.
242+ - Add crashkernel option.
243+ - Bypass menu unless other OSes are installed or Shift is pressed.
244+ - Show the boot menu if the previous boot failed.
245+ - Check hardware support before using gfxpayload=keep.
246+ - Set vt.handoff=7 for smooth handoff to kernel graphical mode.
247+ - In recovery mode, add nomodeset to the Linux kernel arguments, and
248+ remove the 'set gfxpayload=keep' command.
249+ - Handle probing striped DM-RAID devices.
250+
251+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 15 Aug 2013 11:40:37 +0200
252+
253+grub2 (2.00-17) unstable; urgency=low
254+
255+ * Really include patches to reduce visual clutter in normal mode when
256+ building for Ubuntu.
257+
258+ -- Colin Watson <cjwatson@debian.org> Thu, 15 Aug 2013 09:58:59 +0100
259+
260+grub2 (2.00-16) unstable; urgency=low
261+
262+ * Make reportbug script file robust against su authentication failures and
263+ missing LVM commands.
264+ * Backport from upstream:
265+ - Move @itemize after @subsection to satisfy texinfo-5.1.
266+ - grub-mkconfig: Fix detection of Emacs autosave files.
267+ - Fix spurious failure on Xen partition devices without disk devices
268+ (closes: #708614).
269+ * Merge from Ubuntu:
270+ - Treat Kubuntu as an alias for Ubuntu in GRUB_DISTRIBUTOR (Harald
271+ Sitter).
272+ - Make any EFI system boot into the shim (if installed) even if
273+ SecureBoot is disabled (Stéphane Graber).
274+ - Allow Shift to interrupt 'sleep --interruptible'.
275+ - If building for Ubuntu:
276+ + Reduce visual clutter in normal mode.
277+ + Remove verbose messages printed before reading configuration.
278+ + Suppress kernel/initrd progress messages, except in recovery mode.
279+ + Suppress "GRUB loading" message unless Shift is held down.
280+ - Skip Windows os-prober entries on Wubi systems.
281+ * Consolidate debian/rules logic for when to build signed images.
282+
283+ -- Colin Watson <cjwatson@debian.org> Thu, 15 Aug 2013 08:35:53 +0100
284+
285+grub2 (2.00-15ubuntu2) saucy; urgency=low
286+
287+ * Add ubuntu_shim_by_default.patch that makes any EFI system boot into
288+ the shim (if installed) even if SecureBoot is disabled. (LP: #1184297)
289+
290+ -- Stéphane Graber <stgraber@ubuntu.com> Thu, 18 Jul 2013 15:40:25 -0400
291+
292+grub2 (2.00-15ubuntu1) saucy; urgency=low
293+
294+ [ Colin Watson ]
295+ * Resynchronise with Debian. Remaining changes:
296+ - Default to hiding the menu; holding down Shift at boot will show it.
297+ - Add crashkernel option.
298+ - Bypass menu unless other OSes are installed or Shift is pressed.
299+ - Allow Shift to interrupt 'sleep --interruptible'.
300+ - Reduce visual clutter in normal mode.
301+ - Remove verbose messages printed before reading configuration.
302+ - Suppress kernel/initrd progress messages, except in recovery mode.
303+ - Show the boot menu if the previous boot failed.
304+ - Suppress "GRUB loading" message unless Shift is held down.
305+ - Check hardware support before using gfxpayload=keep.
306+ - Set vt.handoff=7 for smooth handoff to kernel graphical mode.
307+ - In recovery mode, add nomodeset to the Linux kernel arguments, and
308+ remove the 'set gfxpayload=keep' command.
309+ - Skip Windows os-prober entries on Wubi systems, and suppress the menu
310+ by default if those are the only other-OS entries.
311+ - Handle probing striped DM-RAID devices.
312+ - Disable cursor as early as possible in grub_main.
313+ - Treat Kubuntu as an alias for Ubuntu in GRUB_DISTRIBUTOR.
314+
315+ [ Harald Sitter ]
316+ * Update mkconfig_ubuntu_distributor.patch to handle Kubuntu like Ubuntu;
317+ no GNU/Linux suffix.
318+
319+ -- Colin Watson <cjwatson@ubuntu.com> Sat, 13 Jul 2013 17:08:01 +0100
320+
321+grub2 (2.00-15) unstable; urgency=low
322+
323+ [ Colin Watson ]
324+ * Install reportbug presubj and script files in all binary packages.
325+ * Make grub-yeeloong.postinst explicitly install with
326+ --target=mipsel-loongson (closes: #708204).
327+ * Make grub-script-check fail on scripts containing no commands (closes:
328+ #713886).
329+ * Make the description of grub-firmware-qemu a little more generic, rather
330+ than assuming that bochsbios provides qemu's default BIOS image (closes:
331+ #714277).
332+ * Don't assume that the presence of /etc/default/grub or
333+ /etc/default/grub.d/*.cfg means that any particular item is set in it
334+ (LP: #1199731).
335+
336+ [ Debconf translations ]
337+ * Hungarian (Dr. Nagy Elemér Károly).
338+
339+ -- Colin Watson <cjwatson@debian.org> Sat, 13 Jul 2013 11:04:15 +0100
340+
341+grub2 (2.00-14ubuntu1) saucy; urgency=low
342+
343+ * Resynchronise with Debian. Remaining changes:
344+ - Default to hiding the menu; holding down Shift at boot will show it.
345+ - Add crashkernel option.
346+ - Bypass menu unless other OSes are installed or Shift is pressed.
347+ - Allow Shift to interrupt 'sleep --interruptible'.
348+ - Reduce visual clutter in normal mode.
349+ - Remove verbose messages printed before reading configuration.
350+ - Suppress kernel/initrd progress messages, except in recovery mode.
351+ - Show the boot menu if the previous boot failed.
352+ - Suppress "GRUB loading" message unless Shift is held down.
353+ - Check hardware support before using gfxpayload=keep.
354+ - Set vt.handoff=7 for smooth handoff to kernel graphical mode.
355+ - In recovery mode, add nomodeset to the Linux kernel arguments, and
356+ remove the 'set gfxpayload=keep' command.
357+ - Skip Windows os-prober entries on Wubi systems, and suppress the menu
358+ by default if those are the only other-OS entries.
359+ - Handle probing striped DM-RAID devices.
360+ - Disable cursor as early as possible in grub_main.
361+ - Treat Kubuntu as an alias for Ubuntu in GRUB_DISTRIBUTOR.
362+
363+ -- Colin Watson <cjwatson@ubuntu.com> Thu, 09 May 2013 11:38:58 +0100
364+
365+grub2 (2.00-14) unstable; urgency=low
366+
367+ * Merge from Ubuntu:
368+ - Don't call update-grub in the zz-update-grub kernel hook if
369+ /boot/grub/grub.cfg doesn't exist.
370+ - acpihalt: expand parser to handle SSDTs and some more opcodes. Fixes
371+ test suite hang with current seabios.
372+ * Remove kernel-specific grub.d conffiles that were dropped from packages
373+ built for all but their corresponding kernel type in 1.96+20090307-1
374+ (closes: #703539).
375+ * Look for grub-bios-setup in /usr/lib/grub/i386-pc/ as well (closes:
376+ #705636).
377+ * Merge 1.99-27.1 (thanks, Steve McIntyre):
378+ - Add entries for Windows Boot Manager found via UEFI in os-prober
379+ (closes: #698914).
380+
381+ -- Colin Watson <cjwatson@debian.org> Thu, 09 May 2013 00:14:55 +0100
382+
383 grub2 (2.00-13ubuntu3) raring; urgency=low
384
385 * In 05_debian_theme treat 'Kubuntu' as Ubuntu alias in $GRUB_DISTRIBUTOR.
386@@ -701,6 +942,14 @@
387
388 -- Colin Watson <cjwatson@debian.org> Thu, 06 Sep 2012 19:04:21 +0100
389
390+grub2 (1.99-27.1) unstable; urgency=medium
391+
392+ * NMU
393+ * Add entries for Windows Boot Manager found via UEFI in
394+ os-prober. Closes: #698914 before the Wheezy release.
395+
396+ -- Steve McIntyre <93sam@debian.org> Fri, 26 Apr 2013 23:53:34 +0100
397+
398 grub2 (1.99-27) unstable; urgency=low
399
400 * Amend gfxpayload_keep_default.patch to no longer remove the call to
401
402=== modified file 'debian/config.in'
403--- debian/config.in 2013-01-21 13:18:16 +0000
404+++ debian/config.in 2013-10-08 00:15:07 +0000
405@@ -47,13 +47,14 @@
406
407 for x in /etc/default/grub /etc/default/grub.d/*.cfg ; do
408 if [ -e "$x" ]; then
409- DEFAULT_FOUND="yes"
410 . "$x"
411 fi
412 done
413
414-if [ "$DEFAULT_FOUND" = "yes" ]; then
415+if [ "${GRUB_CMDLINE_LINUX+set}" = set ]; then
416 db_set grub2/linux_cmdline "$GRUB_CMDLINE_LINUX"
417+fi
418+if [ "${GRUB_CMDLINE_LINUX_DEFAULT+set}" = set ]; then
419 db_set grub2/linux_cmdline_default "$GRUB_CMDLINE_LINUX_DEFAULT"
420
421 case @PACKAGE@ in
422
423=== modified file 'debian/control'
424--- debian/control 2013-02-01 17:45:21 +0000
425+++ debian/control 2013-10-08 00:15:07 +0000
426@@ -42,7 +42,7 @@
427 Homepage: http://www.gnu.org/software/grub/
428 XS-Debian-Vcs-Bzr: http://anonscm.debian.org/bzr/pkg-grub/trunk/grub/
429 XS-Debian-Vcs-Browser: http://anonscm.debian.org/loggerhead/pkg-grub/trunk/grub/
430-Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-core-dev/ubuntu/raring/grub2/raring
431+Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-core-dev/ubuntu/saucy/grub2/saucy
432
433 Package: grub2
434 Section: oldlibs
435@@ -439,8 +439,8 @@
436 Multi-Arch: foreign
437 Description: GRUB firmware image for QEMU
438 This package contains a binary of GRUB that has been built for use as
439- firmware for QEMU. It can be used as a replacement for the standard
440- PC BIOS provided by the bochsbios package (bios.bin).
441+ firmware for QEMU. It can be used as a replacement for other PC BIOS
442+ images provided by seabios, bochsbios, and so on.
443 .
444 In order to make QEMU use this firmware, simply add `-bios grub.bin' when
445 invoking it.
446
447=== modified file 'debian/dirs.in'
448--- debian/dirs.in 2009-08-30 11:51:21 +0000
449+++ debian/dirs.in 2013-10-08 00:15:07 +0000
450@@ -1,4 +1,3 @@
451 usr/bin
452 usr/sbin
453 usr/share/grub
454-usr/share/bug/@PACKAGE@
455
456=== modified file 'debian/grub-common.install.in'
457--- debian/grub-common.install.in 2012-09-14 13:57:40 +0000
458+++ debian/grub-common.install.in 2013-10-08 00:15:07 +0000
459@@ -1,4 +1,3 @@
460-../../debian/presubj usr/share/bug/grub-common
461 ../../debian/apport/source_grub2.py usr/share/apport/package-hooks/
462 ../../debian/grub.d etc
463
464
465=== added file 'debian/grub-common.maintscript.hurd.in'
466--- debian/grub-common.maintscript.hurd.in 1970-01-01 00:00:00 +0000
467+++ debian/grub-common.maintscript.hurd.in 2013-10-08 00:15:07 +0000
468@@ -0,0 +1,3 @@
469+# Removed in 1.96+20090307-1.
470+rm_conffile /etc/grub.d/10_freebsd 2.00-14~
471+rm_conffile /etc/grub.d/10_linux 2.00-14~
472
473=== added file 'debian/grub-common.maintscript.kfreebsd.in'
474--- debian/grub-common.maintscript.kfreebsd.in 1970-01-01 00:00:00 +0000
475+++ debian/grub-common.maintscript.kfreebsd.in 2013-10-08 00:15:07 +0000
476@@ -0,0 +1,3 @@
477+# Removed in 1.96+20090307-1.
478+rm_conffile /etc/grub.d/10_hurd 2.00-14~
479+rm_conffile /etc/grub.d/10_linux 2.00-14~
480
481=== added file 'debian/grub-common.maintscript.linux.in'
482--- debian/grub-common.maintscript.linux.in 1970-01-01 00:00:00 +0000
483+++ debian/grub-common.maintscript.linux.in 2013-10-08 00:15:07 +0000
484@@ -0,0 +1,3 @@
485+# Removed in 1.96+20090307-1.
486+rm_conffile /etc/grub.d/10_freebsd 2.00-14~
487+rm_conffile /etc/grub.d/10_hurd 2.00-14~
488
489=== modified file 'debian/grub.d/05_debian_theme'
490--- debian/grub.d/05_debian_theme 2013-04-09 09:14:57 +0000
491+++ debian/grub.d/05_debian_theme 2013-10-08 00:15:07 +0000
492@@ -28,19 +28,22 @@
493 BACKGROUND_CACHE=".background_cache"
494
495 set_default_theme(){
496- if [ "$GRUB_DISTRIBUTOR" = Ubuntu ] || [ "$GRUB_DISTRIBUTOR" = Kubuntu ]; then
497- # Set a monochromatic theme for Ubuntu.
498- echo "${1}set menu_color_normal=white/black"
499- echo "${1}set menu_color_highlight=black/light-gray"
500+ case $GRUB_DISTRIBUTOR in
501+ Ubuntu|Kubuntu)
502+ # Set a monochromatic theme for Ubuntu.
503+ echo "${1}set menu_color_normal=white/black"
504+ echo "${1}set menu_color_highlight=black/light-gray"
505
506- if [ -e /lib/plymouth/themes/default.grub ]; then
507- sed "s/^/${1}/" /lib/plymouth/themes/default.grub
508- fi
509- else
510- # Set the traditional Debian blue theme.
511- echo "${1}set menu_color_normal=cyan/blue"
512- echo "${1}set menu_color_highlight=white/blue"
513- fi
514+ if [ -e /lib/plymouth/themes/default.grub ]; then
515+ sed "s/^/${1}/" /lib/plymouth/themes/default.grub
516+ fi
517+ ;;
518+ *)
519+ # Set the traditional Debian blue theme.
520+ echo "${1}set menu_color_normal=cyan/blue"
521+ echo "${1}set menu_color_highlight=white/blue"
522+ ;;
523+ esac
524 }
525
526 module_available(){
527@@ -170,10 +173,15 @@
528 fi
529
530 # If we haven't found a background image yet, use the default from desktop-base.
531-if [ "$GRUB_DISTRIBUTOR" != Ubuntu ] && [ "$GRUB_DISTRIBUTOR" != Kubuntu ] && \
532- set_background_image "/usr/share/images/desktop-base/desktop-grub.png"; then
533- exit 0
534-fi
535+case $GRUB_DISTRIBUTOR in
536+ Ubuntu|Kubuntu)
537+ ;;
538+ *)
539+ if set_background_image "/usr/share/images/desktop-base/desktop-grub.png"; then
540+ exit 0
541+ fi
542+ ;;
543+esac
544
545 # Finally, if all of the above fails, use the default theme.
546 set_default_theme
547
548=== removed file 'debian/grub2.dirs'
549--- debian/grub2.dirs 2007-05-15 19:52:26 +0000
550+++ debian/grub2.dirs 1970-01-01 00:00:00 +0000
551@@ -1,1 +0,0 @@
552-usr/share/bug/grub2
553
554=== removed file 'debian/grub2.install'
555--- debian/grub2.install 2007-05-15 19:52:26 +0000
556+++ debian/grub2.install 1970-01-01 00:00:00 +0000
557@@ -1,2 +0,0 @@
558-debian/presubj usr/share/bug/grub2
559-debian/script usr/share/bug/grub2
560
561=== modified file 'debian/install-bin.in'
562--- debian/install-bin.in 2012-09-14 10:59:14 +0000
563+++ debian/install-bin.in 2013-10-08 00:15:07 +0000
564@@ -1,6 +1,3 @@
565-../../debian/presubj usr/share/bug/@PACKAGE@
566-../../debian/script usr/share/bug/@PACKAGE@
567-
568 usr/lib/grub/@CPU_PLATFORM@/*.img
569 usr/lib/grub/@CPU_PLATFORM@/*.lst
570 usr/lib/grub/@CPU_PLATFORM@/*.mod
571
572=== modified file 'debian/install.in'
573--- debian/install.in 2012-09-14 10:59:14 +0000
574+++ debian/install.in 2013-10-08 00:15:07 +0000
575@@ -1,4 +1,2 @@
576-../../debian/presubj usr/share/bug/@PACKAGE@
577-../../debian/script usr/share/bug/@PACKAGE@
578 ../../debian/kernel/zz-update-grub etc/kernel/postinst.d
579 ../../debian/kernel/zz-update-grub etc/kernel/postrm.d
580
581=== added file 'debian/patches/acpihalt_improvements.patch'
582--- debian/patches/acpihalt_improvements.patch 1970-01-01 00:00:00 +0000
583+++ debian/patches/acpihalt_improvements.patch 2013-10-08 00:15:07 +0000
584@@ -0,0 +1,191 @@
585+Description: acpihalt: expand parser to handle SSDTs and some more opcodes
586+Author: Colin Watson <cjwatson@ubuntu.com>
587+Forwarded: https://lists.gnu.org/archive/html/grub-devel/2013-03/msg00060.html
588+Last-Update: 2013-05-09
589+
590+Index: b/grub-core/commands/acpihalt.c
591+===================================================================
592+--- a/grub-core/commands/acpihalt.c
593++++ b/grub-core/commands/acpihalt.c
594+@@ -41,6 +41,7 @@
595+ #endif
596+
597+ #ifndef GRUB_DSDT_TEST
598++#include <grub/mm.h>
599+ #include <grub/misc.h>
600+ #include <grub/time.h>
601+ #include <grub/cpu/io.h>
602+@@ -146,6 +147,10 @@
603+ ptr += skip_name_string (ptr, end);
604+ ptr++;
605+ break;
606++ case GRUB_ACPI_EXTOPCODE_EVENT_OP:
607++ ptr++;
608++ ptr += skip_name_string (ptr, end);
609++ break;
610+ case GRUB_ACPI_EXTOPCODE_OPERATION_REGION:
611+ ptr++;
612+ ptr += skip_name_string (ptr, end);
613+@@ -158,7 +163,12 @@
614+ return 0;
615+ break;
616+ case GRUB_ACPI_EXTOPCODE_FIELD_OP:
617++ case GRUB_ACPI_EXTOPCODE_DEVICE_OP:
618++ case GRUB_ACPI_EXTOPCODE_PROCESSOR_OP:
619++ case GRUB_ACPI_EXTOPCODE_POWER_RES_OP:
620++ case GRUB_ACPI_EXTOPCODE_THERMAL_ZONE_OP:
621+ case GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP:
622++ case GRUB_ACPI_EXTOPCODE_BANK_FIELD_OP:
623+ ptr++;
624+ ptr += decode_length (ptr, 0);
625+ break;
626+@@ -170,12 +180,14 @@
627+ }
628+
629+ static int
630+-get_sleep_type (grub_uint8_t *table, grub_uint8_t *end)
631++get_sleep_type (grub_uint8_t *table, grub_uint8_t *ptr, grub_uint8_t *end,
632++ grub_uint8_t *scope, int scope_len)
633+ {
634+- grub_uint8_t *ptr, *prev = table;
635+- int sleep_type = -1;
636++ grub_uint8_t *prev = table;
637++ int sleep_type = -2;
638+
639+- ptr = table + sizeof (struct grub_acpi_table_header);
640++ if (!ptr)
641++ ptr = table + sizeof (struct grub_acpi_table_header);
642+ while (ptr < end && prev < ptr)
643+ {
644+ int add;
645+@@ -202,7 +214,8 @@
646+ }
647+ case GRUB_ACPI_OPCODE_NAME:
648+ ptr++;
649+- if (memcmp (ptr, "_S5_", 4) == 0 || memcmp (ptr, "\\_S5_", 4) == 0)
650++ if ((!scope || memcmp (scope, "\\", scope_len) == 0) &&
651++ (memcmp (ptr, "_S5_", 4) == 0 || memcmp (ptr, "\\_S5_", 4) == 0))
652+ {
653+ int ll;
654+ grub_uint8_t *ptr2 = ptr;
655+@@ -241,6 +254,25 @@
656+ return -1;
657+ break;
658+ case GRUB_ACPI_OPCODE_SCOPE:
659++ {
660++ int scope_sleep_type;
661++ int ll;
662++ grub_uint8_t *name;
663++ int name_len;
664++
665++ ptr++;
666++ add = decode_length (ptr, &ll);
667++ name = ptr + ll;
668++ name_len = skip_name_string (name, ptr + add);
669++ if (!name_len)
670++ return -1;
671++ scope_sleep_type = get_sleep_type (table, name + name_len,
672++ ptr + add, name, name_len);
673++ if (scope_sleep_type != -2)
674++ return scope_sleep_type;
675++ ptr += add;
676++ break;
677++ }
678+ case GRUB_ACPI_OPCODE_IF:
679+ case GRUB_ACPI_OPCODE_METHOD:
680+ {
681+@@ -291,7 +323,7 @@
682+ return 2;
683+ }
684+
685+- printf ("Sleep type = %d\n", get_sleep_type (buf, buf + len));
686++ printf ("Sleep type = %d\n", get_sleep_type (buf, NULL, buf + len, NULL, 0));
687+ free (buf);
688+ fclose (f);
689+ return 0;
690+@@ -304,8 +336,10 @@
691+ {
692+ struct grub_acpi_rsdp_v20 *rsdp2;
693+ struct grub_acpi_rsdp_v10 *rsdp1;
694+- struct grub_acpi_table_header *rsdt;
695+- grub_uint32_t *entry_ptr;
696++ struct grub_acpi_table_header *rsdt;
697++ grub_uint32_t *entry_ptr;
698++ grub_uint32_t port = 0;
699++ int sleep_type = -1;
700+
701+ rsdp2 = grub_acpi_get_rsdpv2 ();
702+ if (rsdp2)
703+@@ -324,33 +358,39 @@
704+ {
705+ if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "FACP", 4) == 0)
706+ {
707+- grub_uint32_t port;
708+ struct grub_acpi_fadt *fadt
709+ = ((struct grub_acpi_fadt *) (grub_addr_t) *entry_ptr);
710+ struct grub_acpi_table_header *dsdt
711+ = (struct grub_acpi_table_header *) (grub_addr_t) fadt->dsdt_addr;
712+- int sleep_type = -1;
713++ grub_uint8_t *buf = (grub_uint8_t *) dsdt;
714+
715+ port = fadt->pm1a;
716+
717+ grub_dprintf ("acpi", "PM1a port=%x\n", port);
718+
719+ if (grub_memcmp (dsdt->signature, "DSDT",
720+- sizeof (dsdt->signature)) != 0)
721+- break;
722++ sizeof (dsdt->signature)) == 0)
723++ sleep_type = get_sleep_type (buf, NULL, buf + dsdt->length,
724++ NULL, 0);
725++ }
726++ else if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "SSDT", 4) == 0)
727++ {
728++ struct grub_acpi_table_header *ssdt
729++ = (struct grub_acpi_table_header *) (grub_addr_t) *entry_ptr;
730++ grub_uint8_t *buf = (grub_uint8_t *) ssdt;
731+
732+- sleep_type = get_sleep_type ((grub_uint8_t *) dsdt,
733+- (grub_uint8_t *) dsdt + dsdt->length);
734++ grub_dprintf ("acpi", "SSDT = %p\n", ssdt);
735+
736+- if (sleep_type < 0 || sleep_type >= 8)
737+- break;
738++ sleep_type = get_sleep_type (buf, NULL, buf + ssdt->length, NULL, 0);
739++ }
740++ }
741+
742+- grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n",
743+- sleep_type, port);
744++ if (port && sleep_type >= 0 && sleep_type < 8)
745++ {
746++ grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n", sleep_type, port);
747+
748+- grub_outw (GRUB_ACPI_SLP_EN
749+- | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET), port & 0xffff);
750+- }
751++ grub_outw (GRUB_ACPI_SLP_EN | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET),
752++ port & 0xffff);
753+ }
754+
755+ grub_millisleep (1500);
756+Index: b/include/grub/acpi.h
757+===================================================================
758+--- a/include/grub/acpi.h
759++++ b/include/grub/acpi.h
760+@@ -174,9 +174,15 @@
761+ enum
762+ {
763+ GRUB_ACPI_EXTOPCODE_MUTEX = 0x01,
764++ GRUB_ACPI_EXTOPCODE_EVENT_OP = 0x02,
765+ GRUB_ACPI_EXTOPCODE_OPERATION_REGION = 0x80,
766+ GRUB_ACPI_EXTOPCODE_FIELD_OP = 0x81,
767++ GRUB_ACPI_EXTOPCODE_DEVICE_OP = 0x82,
768++ GRUB_ACPI_EXTOPCODE_PROCESSOR_OP = 0x83,
769++ GRUB_ACPI_EXTOPCODE_POWER_RES_OP = 0x84,
770++ GRUB_ACPI_EXTOPCODE_THERMAL_ZONE_OP = 0x85,
771+ GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP = 0x86,
772++ GRUB_ACPI_EXTOPCODE_BANK_FIELD_OP = 0x87,
773+ };
774+
775+ #endif /* ! GRUB_ACPI_HEADER */
776
777=== added file 'debian/patches/efi_always_install_grub_cfg.patch'
778--- debian/patches/efi_always_install_grub_cfg.patch 1970-01-01 00:00:00 +0000
779+++ debian/patches/efi_always_install_grub_cfg.patch 2013-10-08 00:15:07 +0000
780@@ -0,0 +1,36 @@
781+Description: unconditionally create grub.cfg on our EFI boot partition
782+ When grub is installed to the EFI partition with Secure Boot support, it
783+ always needs some config to tell it the prefix to the /boot/grub disk,
784+ because we aren't modifying the grub image at runtime to set the root.
785+ So even though when using LVM we don't need to search for the root using
786+ search.fs_uuid, we do need to use load.cfg to tell grub what that root
787+ is.
788+Author: Steve Langasek <steve.langasek@ubuntu.com>
789+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1236625
790+Forwarded: no
791+Last-Update: 2013-10-07
792+
793+Index: lp.1236625/util/grub-install.in
794+===================================================================
795+--- lp.1236625.orig/util/grub-install.in
796++++ lp.1236625/util/grub-install.in
797+@@ -848,10 +848,16 @@
798+ else
799+ cp "$efi_signed" "${efidir}/${efi_file}"
800+ fi
801+- if [ x"$config_opt_file" != x ]; then
802+- cp "${config_opt_file}" "${efidir}/grub.cfg"
803+- echo 'configfile $prefix/grub.cfg' >> "${efidir}/grub.cfg"
804++ if [ x"$config_opt_file" = x ]; then
805++ # So we have a device abstraction; we don't need to search for
806++ # the root, but we do need to tell grub where it is.
807++ hints="`echo "${grub_device}" | xargs "$grub_probe" --device-map="${device_map}" --target=efi_hints --device`"
808++ echo "set root=$hints" >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
809++ echo 'set prefix=($root)'"$(echo "${relative_grubdir}" | sed "s,\\([ \"'\\\\]\\),\\\\\\1,g")" >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
810++ config_opt_file="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
811+ fi
812++ cp "${config_opt_file}" "${efidir}/grub.cfg"
813++ echo 'configfile $prefix/grub.cfg' >> "${efidir}/grub.cfg"
814+ else
815+ cp "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" "${efidir}/${efi_file}"
816+ # For old macs. Suggested by Peter Jones.
817
818=== added file 'debian/patches/efidisk_non_512_sectors.patch'
819--- debian/patches/efidisk_non_512_sectors.patch 1970-01-01 00:00:00 +0000
820+++ debian/patches/efidisk_non_512_sectors.patch 2013-10-08 00:15:07 +0000
821@@ -0,0 +1,56 @@
822+Description: Handle partitions on non-512B EFI disks
823+Origin: backport, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/4795
824+Author: Peter Jones <pjones@redhat.com>
825+Author: Vladimir Serbinenko <phcoder@gmail.com>
826+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1065281
827+Forwarded: not-needed
828+Last-Update: 2013-09-18
829+
830+Index: b/grub-core/disk/efi/efidisk.c
831+===================================================================
832+--- a/grub-core/disk/efi/efidisk.c
833++++ b/grub-core/disk/efi/efidisk.c
834+@@ -668,9 +668,11 @@
835+ && (GRUB_EFI_DEVICE_PATH_SUBTYPE (c->last_device_path)
836+ == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
837+ && (grub_partition_get_start (disk->partition)
838+- == hd.partition_start)
839++ == (hd.partition_start << (disk->log_sector_size
840++ - GRUB_DISK_SECTOR_BITS)))
841+ && (grub_partition_get_len (disk->partition)
842+- == hd.partition_size))
843++ == (hd.partition_size << (disk->log_sector_size
844++ - GRUB_DISK_SECTOR_BITS))))
845+ {
846+ handle = c->handle;
847+ return 1;
848+@@ -763,11 +765,14 @@
849+ auto int find_partition (grub_disk_t disk, const grub_partition_t part);
850+
851+ /* Find the identical partition. */
852+- int find_partition (grub_disk_t disk __attribute__ ((unused)),
853+- const grub_partition_t part)
854++ int find_partition (grub_disk_t disk, const grub_partition_t part)
855+ {
856+- if (grub_partition_get_start (part) == hd.partition_start
857+- && grub_partition_get_len (part) == hd.partition_size)
858++ if (grub_partition_get_start (part)
859++ == (hd.partition_start << (disk->log_sector_size
860++ - GRUB_DISK_SECTOR_BITS))
861++ && grub_partition_get_len (part)
862++ == (hd.partition_size << (disk->log_sector_size
863++ - GRUB_DISK_SECTOR_BITS)))
864+ {
865+ partition_name = grub_partition_get_name (part);
866+ return 1;
867+@@ -799,7 +804,9 @@
868+ /* Find a partition which matches the hard drive device path. */
869+ grub_memcpy (&hd, ldp, sizeof (hd));
870+ if (hd.partition_start == 0
871+- && hd.partition_size == grub_disk_get_size (parent))
872++ && (hd.partition_size << (parent->log_sector_size
873++ - GRUB_DISK_SECTOR_BITS))
874++ == grub_disk_get_size (parent))
875+ {
876+ dev_name = grub_strdup (parent->name);
877+ }
878
879=== added file 'debian/patches/install_bios_setup_path.patch'
880--- debian/patches/install_bios_setup_path.patch 1970-01-01 00:00:00 +0000
881+++ debian/patches/install_bios_setup_path.patch 2013-10-08 00:15:07 +0000
882@@ -0,0 +1,20 @@
883+Description: Look for grub-bios-setup in /usr/lib/grub/i386-pc/ as well
884+Author: Colin Watson <cjwatson@debian.org>
885+Bug-Debian: http://bugs.debian.org/705636
886+Forwarded: no
887+Last-Update: 2013-04-17
888+
889+Index: b/util/grub-install.in
890+===================================================================
891+--- a/util/grub-install.in
892++++ b/util/grub-install.in
893+@@ -363,6 +363,9 @@
894+
895+ if test "x$grub_setup" = x && [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-pc" ]; then
896+ grub_setup="${sbindir}/`echo grub-bios-setup | sed ${transform}`"
897++ if [ ! -e "$grub_setup" ]; then
898++ grub_setup="${source_dir}/`echo grub-bios-setup | sed ${transform}`"
899++ fi
900+ fi
901+
902+ if test "x$grub_setup" = x && [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "sparc64-ieee1275" ]; then
903
904=== modified file 'debian/patches/install_signed.patch'
905--- debian/patches/install_signed.patch 2013-01-29 06:22:50 +0000
906+++ debian/patches/install_signed.patch 2013-10-08 00:15:07 +0000
907@@ -1,26 +1,22 @@
908 Description: Install signed images if UEFI Secure Boot is enabled
909 Author: Colin Watson <cjwatson@ubuntu.com>
910+Author: Stéphane Graber <stgraber@ubuntu.com>
911 Forwarded: no
912-Last-Update: 2012-12-10
913+Last-Update: 2013-08-12
914
915 Index: b/util/grub-install.in
916 ===================================================================
917 --- a/util/grub-install.in
918 +++ b/util/grub-install.in
919-@@ -63,6 +63,12 @@
920+@@ -63,6 +63,7 @@
921
922 removable=no
923 efi_quiet=
924-+sb_var=/sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data
925-+if [ -e "$sb_var" ] && [ "$(printf %x \'"$(cat "$sb_var")")" = 1 ]; then
926-+ uefi_secure_boot=yes
927-+else
928-+ uefi_secure_boot=no
929-+fi
930++uefi_secure_boot=yes
931
932 # Get GRUB_DISTRIBUTOR.
933 if test -f "${sysconfdir}/default/grub" ; then
934-@@ -117,6 +123,8 @@
935+@@ -117,6 +118,8 @@
936 print_option_help "--removable" "$(gettext "the installation device is removable. This option is only available on EFI.")"
937 print_option_help "--bootloader-id=$(gettext "ID")" "$(gettext "the ID of bootloader. This option is only available on EFI.")"
938 print_option_help "--efi-directory=$(gettext "DIR")" "$(gettext "use DIR as the EFI System Partition root.")"
939@@ -29,7 +25,7 @@
940 echo
941 gettext "INSTALL_DEVICE must be system device filename.";echo
942 echo
943-@@ -258,6 +266,11 @@
944+@@ -258,6 +261,11 @@
945 -f | --force)
946 setup_force="--force" ;;
947
948@@ -41,7 +37,7 @@
949 -*)
950 gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2
951 usage
952-@@ -460,39 +473,32 @@
953+@@ -460,39 +468,32 @@
954 # not collide with other vendors. To minimise collisions, we use the
955 # name of our distributor if possible.
956 efi_distributor="$bootloader_id"
957@@ -98,7 +94,7 @@
958 # TODO: We should also use efibootmgr, if available, to add a Boot
959 # entry for ourselves.
960 fi
961-@@ -653,7 +659,7 @@
962+@@ -653,7 +654,7 @@
963 install_drive="$grub_drive"
964 fi
965
966@@ -107,7 +103,7 @@
967 # generic method (used on coreboot and ata mod)
968 uuid=
969 if [ x"$force_file_id" != xy ]; then
970-@@ -828,10 +834,32 @@
971+@@ -828,10 +829,32 @@
972 gettext "You will have to set \`SystemPartition' and \`OSLoader' manually." 1>&2
973 echo 1>&2
974 elif [ x"$grub_modinfo_platform" = xefi ]; then
975
976=== added file 'debian/patches/maybe_quiet.patch'
977--- debian/patches/maybe_quiet.patch 1970-01-01 00:00:00 +0000
978+++ debian/patches/maybe_quiet.patch 2013-10-08 00:15:07 +0000
979@@ -0,0 +1,362 @@
980+Description: Add configure option to reduce visual clutter at boot time
981+ If this option is enabled, then do all of the following:
982+ .
983+ Don't display introductory message about line editing unless we're actually
984+ offering a shell prompt. (This is believed to be a workaround for a
985+ different bug. We'll go with this for now, but will drop this in favour of
986+ a better fix upstream if somebody figures out what that is.)
987+ .
988+ Don't clear the screen just before booting if we never drew the menu in the
989+ first place.
990+ .
991+ Remove verbose messages printed before reading configuration. In some ways
992+ this is awkward because it makes debugging harder, but it's a requirement
993+ for a smooth-looking boot process; we may be able to do better in future.
994+ Upstream doesn't want this, though.
995+ .
996+ Disable the cursor as well, for similar reasons of tidiness.
997+ .
998+ Suppress kernel/initrd progress messages, except in recovery mode.
999+ .
1000+ Suppress "GRUB loading" message unless Shift is held down. Upstream
1001+ doesn't want this, as it makes debugging harder. Ubuntu wants it to
1002+ provide a cleaner boot experience.
1003+Author: Colin Watson <cjwatson@ubuntu.com>
1004+Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922
1005+Bug-Ubuntu: https://bugs.launchpad.net/bugs/861048
1006+Forwarded: (partial) http://lists.gnu.org/archive/html/grub-devel/2009-09/msg00056.html
1007+Last-Update: 2013-08-26
1008+
1009+Index: b/config.h.in
1010+===================================================================
1011+--- a/config.h.in
1012++++ b/config.h.in
1013+@@ -41,6 +41,8 @@
1014+ #define NEED_REGISTER_FRAME_INFO @NEED_REGISTER_FRAME_INFO@
1015+ /* Define to 1 to enable disk cache statistics. */
1016+ #define DISK_CACHE_STATS @DISK_CACHE_STATS@
1017++/* Define to 1 to make GRUB quieter at boot time. */
1018++#define QUIET_BOOT @QUIET_BOOT@
1019+
1020+ #define GRUB_TARGET_CPU "@GRUB_TARGET_CPU@"
1021+ #define GRUB_PLATFORM "@GRUB_PLATFORM@"
1022+Index: b/configure.ac
1023+===================================================================
1024+--- a/configure.ac
1025++++ b/configure.ac
1026+@@ -1076,6 +1076,17 @@
1027+ AC_SUBST([LIBZFS])
1028+ AC_SUBST([LIBNVPAIR])
1029+
1030++AC_ARG_ENABLE([quiet-boot],
1031++ [AS_HELP_STRING([--enable-quiet-boot],
1032++ [emit fewer messages at boot time (default=no)])],
1033++ [], [enable_quiet_boot=no])
1034++if test x"$enable_quiet_boot" = xyes ; then
1035++ QUIET_BOOT=1
1036++else
1037++ QUIET_BOOT=0
1038++fi
1039++AC_SUBST([QUIET_BOOT])
1040++
1041+ LIBS=""
1042+
1043+ AC_SUBST([FONT_SOURCE])
1044+@@ -1232,5 +1243,10 @@
1045+ else
1046+ echo With libzfs support: No "($libzfs_excuse)"
1047+ fi
1048++if [ x"$enable_quiet_boot" = xyes ]; then
1049++echo With quiet boot: Yes
1050++else
1051++echo With quiet boot: No
1052++fi
1053+ echo "*******************************************************"
1054+ ]
1055+Index: b/grub-core/boot/i386/pc/boot.S
1056+===================================================================
1057+--- a/grub-core/boot/i386/pc/boot.S
1058++++ b/grub-core/boot/i386/pc/boot.S
1059+@@ -19,6 +19,9 @@
1060+
1061+ #include <grub/symbol.h>
1062+ #include <grub/machine/boot.h>
1063++#ifdef QUIET_BOOT
1064++#include <grub/machine/memory.h>
1065++#endif
1066+
1067+ /*
1068+ * defines for the code go here
1069+@@ -150,9 +153,17 @@
1070+ /* save drive reference first thing! */
1071+ pushw %dx
1072+
1073++#ifdef QUIET_BOOT
1074++ /* is either shift key held down? */
1075++ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx
1076++ andb $3, (%bx)
1077++ jz 2f
1078++#endif
1079++
1080+ /* print a notification message on the screen */
1081+ MSG(notification_string)
1082+
1083++2:
1084+ /* set %si to the disk address packet */
1085+ movw $disk_address_packet, %si
1086+
1087+Index: b/grub-core/boot/i386/pc/diskboot.S
1088+===================================================================
1089+--- a/grub-core/boot/i386/pc/diskboot.S
1090++++ b/grub-core/boot/i386/pc/diskboot.S
1091+@@ -18,6 +18,9 @@
1092+
1093+ #include <grub/symbol.h>
1094+ #include <grub/machine/boot.h>
1095++#ifdef QUIET_BOOT
1096++#include <grub/machine/memory.h>
1097++#endif
1098+
1099+ /*
1100+ * defines for the code go here
1101+@@ -25,6 +28,12 @@
1102+
1103+ #define MSG(x) movw $x, %si; call LOCAL(message)
1104+
1105++#ifdef QUIET_BOOT
1106++#define SILENT(x) call LOCAL(check_silent); jz LOCAL(x)
1107++#else
1108++#define SILENT(x)
1109++#endif
1110++
1111+ .file "diskboot.S"
1112+
1113+ .text
1114+@@ -50,11 +59,14 @@
1115+ /* save drive reference first thing! */
1116+ pushw %dx
1117+
1118++ SILENT(after_notification_string)
1119++
1120+ /* print a notification message on the screen */
1121+ pushw %si
1122+ MSG(notification_string)
1123+ popw %si
1124+
1125++LOCAL(after_notification_string):
1126+ /* this sets up for the first run through "bootloop" */
1127+ movw $LOCAL(firstlist), %di
1128+
1129+@@ -279,7 +291,10 @@
1130+ /* restore addressing regs and print a dot with correct DS
1131+ (MSG modifies SI, which is saved, and unused AX and BX) */
1132+ popw %ds
1133++ SILENT(after_notification_step)
1134+ MSG(notification_step)
1135++
1136++LOCAL(after_notification_step):
1137+ popa
1138+
1139+ /* check if finished with this dataset */
1140+@@ -295,8 +310,11 @@
1141+ /* END OF MAIN LOOP */
1142+
1143+ LOCAL(bootit):
1144++ SILENT(after_notification_done)
1145+ /* print a newline */
1146+ MSG(notification_done)
1147++
1148++LOCAL(after_notification_done):
1149+ popw %dx /* this makes sure %dl is our "boot" drive */
1150+ ljmp $0, $(GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200)
1151+
1152+@@ -320,6 +338,14 @@
1153+ /* go here when you need to stop the machine hard after an error condition */
1154+ LOCAL(stop): jmp LOCAL(stop)
1155+
1156++#ifdef QUIET_BOOT
1157++LOCAL(check_silent):
1158++ /* is either shift key held down? */
1159++ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx
1160++ andb $3, (%bx)
1161++ ret
1162++#endif
1163++
1164+ notification_string: .asciz "loading"
1165+
1166+ notification_step: .asciz "."
1167+Index: b/grub-core/kern/main.c
1168+===================================================================
1169+--- a/grub-core/kern/main.c
1170++++ b/grub-core/kern/main.c
1171+@@ -207,13 +207,23 @@
1172+ void __attribute__ ((noreturn))
1173+ grub_main (void)
1174+ {
1175++#ifdef QUIET_BOOT
1176++ struct grub_term_output *term;
1177++#endif
1178++
1179+ /* First of all, initialize the machine. */
1180+ grub_machine_init ();
1181+
1182++#ifdef QUIET_BOOT
1183++ /* Disable the cursor until we need it. */
1184++ FOR_ACTIVE_TERM_OUTPUTS(term)
1185++ grub_term_setcursor (term, 0);
1186++#else
1187+ /* Hello. */
1188+ grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT);
1189+ grub_printf ("Welcome to GRUB!\n\n");
1190+ grub_setcolorstate (GRUB_TERM_COLOR_STANDARD);
1191++#endif
1192+
1193+ /* Load pre-loaded modules and free the space. */
1194+ grub_register_exported_symbols ();
1195+@@ -232,5 +242,12 @@
1196+
1197+ grub_load_config ();
1198+ grub_load_normal_mode ();
1199++
1200++#ifdef QUIET_BOOT
1201++ /* If we have to enter rescue mode, enable the cursor again. */
1202++ FOR_ACTIVE_TERM_OUTPUTS(term)
1203++ grub_term_setcursor (term, 1);
1204++#endif
1205++
1206+ grub_rescue_run ();
1207+ }
1208+Index: b/grub-core/kern/rescue_reader.c
1209+===================================================================
1210+--- a/grub-core/kern/rescue_reader.c
1211++++ b/grub-core/kern/rescue_reader.c
1212+@@ -77,7 +77,9 @@
1213+ void __attribute__ ((noreturn))
1214+ grub_rescue_run (void)
1215+ {
1216++#ifdef QUIET_BOOT
1217+ grub_printf ("Entering rescue mode...\n");
1218++#endif
1219+
1220+ while (1)
1221+ {
1222+Index: b/grub-core/normal/main.c
1223+===================================================================
1224+--- a/grub-core/normal/main.c
1225++++ b/grub-core/normal/main.c
1226+@@ -399,6 +399,15 @@
1227+ grub_normal_read_line_real (char **line, int cont, int nested)
1228+ {
1229+ const char *prompt;
1230++#ifdef QUIET_BOOT
1231++ static int displayed_intro;
1232++
1233++ if (! displayed_intro)
1234++ {
1235++ grub_normal_reader_init (nested);
1236++ displayed_intro = 1;
1237++ }
1238++#endif
1239+
1240+ if (cont)
1241+ /* TRANSLATORS: it's command line prompt. */
1242+@@ -446,7 +455,9 @@
1243+ return;
1244+ }
1245+
1246++#ifndef QUIET_BOOT
1247+ grub_normal_reader_init (nested);
1248++#endif
1249+
1250+ while (1)
1251+ {
1252+Index: b/grub-core/normal/menu.c
1253+===================================================================
1254+--- a/grub-core/normal/menu.c
1255++++ b/grub-core/normal/menu.c
1256+@@ -669,12 +669,18 @@
1257+
1258+ /* Callback invoked immediately before a menu entry is executed. */
1259+ static void
1260+-notify_booting (grub_menu_entry_t entry,
1261++notify_booting (grub_menu_entry_t entry
1262++#ifdef QUIET_BOOT
1263++ __attribute__((unused))
1264++#endif
1265++ ,
1266+ void *userdata __attribute__((unused)))
1267+ {
1268++#ifndef QUIET_BOOT
1269+ grub_printf (" ");
1270+ grub_printf_ (N_("Booting `%s'"), entry->title);
1271+ grub_printf ("\n\n");
1272++#endif
1273+ }
1274+
1275+ /* Callback invoked when a default menu entry executed because of a timeout
1276+@@ -722,6 +728,9 @@
1277+ int boot_entry;
1278+ grub_menu_entry_t e;
1279+ int auto_boot;
1280++#ifdef QUIET_BOOT
1281++ int initial_timeout = grub_menu_get_timeout ();
1282++#endif
1283+
1284+ boot_entry = run_menu (menu, nested, &auto_boot);
1285+ if (boot_entry < 0)
1286+@@ -731,7 +740,11 @@
1287+ if (! e)
1288+ continue; /* Menu is empty. */
1289+
1290+- grub_cls ();
1291++#ifdef QUIET_BOOT
1292++ /* Only clear the screen if we drew the menu in the first place. */
1293++ if (initial_timeout != 0)
1294++#endif
1295++ grub_cls ();
1296+
1297+ if (auto_boot)
1298+ grub_menu_execute_with_fallback (menu, e, autobooted,
1299+Index: b/util/grub.d/10_linux.in
1300+===================================================================
1301+--- a/util/grub.d/10_linux.in
1302++++ b/util/grub.d/10_linux.in
1303+@@ -20,6 +20,7 @@
1304+ prefix="@prefix@"
1305+ exec_prefix="@exec_prefix@"
1306+ datarootdir="@datarootdir@"
1307++quiet_boot="@QUIET_BOOT@"
1308+
1309+ . "@datadir@/@PACKAGE@/grub-mkconfig_lib"
1310+
1311+@@ -140,10 +141,12 @@
1312+ fi
1313+ printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
1314+ fi
1315+- message="$(gettext_printf "Loading Linux %s ..." ${version})"
1316+- sed "s/^/$submenu_indentation/" << EOF
1317++ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
1318++ message="$(gettext_printf "Loading Linux %s ..." ${version})"
1319++ sed "s/^/$submenu_indentation/" << EOF
1320+ echo '$(echo "$message" | grub_quote)'
1321+ EOF
1322++ fi
1323+ if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then
1324+ sed "s/^/$submenu_indentation/" << EOF
1325+ linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}
1326+@@ -155,9 +158,13 @@
1327+ fi
1328+ if test -n "${initrd}" ; then
1329+ # TRANSLATORS: ramdisk isn't identifier. Should be translated.
1330+- message="$(gettext_printf "Loading initial ramdisk ...")"
1331+- sed "s/^/$submenu_indentation/" << EOF
1332++ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
1333++ message="$(gettext_printf "Loading initial ramdisk ...")"
1334++ sed "s/^/$submenu_indentation/" << EOF
1335+ echo '$(echo "$message" | grub_quote)'
1336++EOF
1337++ fi
1338++ sed "s/^/$submenu_indentation/" << EOF
1339+ initrd ${rel_dirname}/${initrd}
1340+ EOF
1341+ fi
1342
1343=== added file 'debian/patches/mkconfig_emacs_autosave.patch'
1344--- debian/patches/mkconfig_emacs_autosave.patch 1970-01-01 00:00:00 +0000
1345+++ debian/patches/mkconfig_emacs_autosave.patch 2013-10-08 00:15:07 +0000
1346@@ -0,0 +1,20 @@
1347+Description: Fix detection of Emacs autosave files
1348+Author: Colin Watson <cjwatson@ubuntu.com>
1349+Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/5089
1350+Forwarded: not-needed
1351+Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/5089
1352+Last-Update: 2013-08-11
1353+
1354+Index: b/util/grub-mkconfig.in
1355+===================================================================
1356+--- a/util/grub-mkconfig.in
1357++++ b/util/grub-mkconfig.in
1358+@@ -253,7 +253,7 @@
1359+ # emacsen backup files. FIXME: support other editors
1360+ *~) ;;
1361+ # emacsen autosave files. FIXME: support other editors
1362+- \#*\#) ;;
1363++ */\#*\#) ;;
1364+ *)
1365+ if grub_file_is_not_garbage "$i" && test -x "$i" ; then
1366+ echo
1367
1368=== modified file 'debian/patches/mkconfig_signed_kernel.patch'
1369--- debian/patches/mkconfig_signed_kernel.patch 2013-01-29 06:15:21 +0000
1370+++ debian/patches/mkconfig_signed_kernel.patch 2013-10-08 00:15:07 +0000
1371@@ -7,7 +7,7 @@
1372 ===================================================================
1373 --- a/util/grub.d/10_linux.in
1374 +++ b/util/grub.d/10_linux.in
1375-@@ -140,8 +140,16 @@
1376+@@ -143,8 +143,16 @@
1377 message="$(gettext_printf "Loading Linux %s ..." ${version})"
1378 sed "s/^/$submenu_indentation/" << EOF
1379 echo '$(echo "$message" | grub_quote)'
1380@@ -24,7 +24,7 @@
1381 if test -n "${initrd}" ; then
1382 # TRANSLATORS: ramdisk isn't identifier. Should be translated.
1383 message="$(gettext_printf "Loading initial ramdisk ...")"
1384-@@ -187,6 +195,13 @@
1385+@@ -190,6 +198,13 @@
1386 is_first_entry=true
1387 while [ "x$list" != "x" ] ; do
1388 linux=`version_find_latest $list`
1389
1390=== modified file 'debian/patches/mkconfig_ubuntu_distributor.patch'
1391--- debian/patches/mkconfig_ubuntu_distributor.patch 2013-01-29 05:50:16 +0000
1392+++ debian/patches/mkconfig_ubuntu_distributor.patch 2013-10-08 00:15:07 +0000
1393@@ -2,23 +2,27 @@
1394 Ubuntu is called "Ubuntu", not "Ubuntu GNU/Linux".
1395 Author: Mario Limonciello <Mario_Limonciello@dell.com>
1396 Author: Colin Watson <cjwatson@debian.org>
1397+Author: Harald Sitter <apachelogger@kubuntu.org>
1398 Forwarded: not-needed
1399-Last-Update: 2013-01-29
1400+Last-Update: 2013-08-12
1401
1402 Index: b/util/grub.d/10_linux.in
1403 ===================================================================
1404 --- a/util/grub.d/10_linux.in
1405 +++ b/util/grub.d/10_linux.in
1406-@@ -31,7 +31,11 @@
1407+@@ -31,7 +31,14 @@
1408 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
1409 OS=GNU/Linux
1410 else
1411 - OS="${GRUB_DISTRIBUTOR} GNU/Linux"
1412-+ if [ "${GRUB_DISTRIBUTOR}" = "Ubuntu" ] ; then
1413-+ OS="${GRUB_DISTRIBUTOR}"
1414-+ else
1415-+ OS="${GRUB_DISTRIBUTOR} GNU/Linux"
1416-+ fi
1417++ case ${GRUB_DISTRIBUTOR} in
1418++ Ubuntu|Kubuntu)
1419++ OS="${GRUB_DISTRIBUTOR}"
1420++ ;;
1421++ *)
1422++ OS="${GRUB_DISTRIBUTOR} GNU/Linux"
1423++ ;;
1424++ esac
1425 CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
1426 fi
1427
1428
1429=== added file 'debian/patches/os_prober_efi.patch'
1430--- debian/patches/os_prober_efi.patch 1970-01-01 00:00:00 +0000
1431+++ debian/patches/os_prober_efi.patch 2013-10-08 00:15:07 +0000
1432@@ -0,0 +1,36 @@
1433+Index: b/util/grub.d/30_os-prober.in
1434+===================================================================
1435+--- a/util/grub.d/30_os-prober.in
1436++++ b/util/grub.d/30_os-prober.in
1437+@@ -35,6 +35,11 @@
1438+ exit 0
1439+ fi
1440+
1441++# Try to load the efivars module, in case it's needed for EFI support
1442++# to work below. Hide the errors in case it's not available, there is
1443++# no need to scare people here.
1444++modprobe efivars >/dev/null 2>&1 || true
1445++
1446+ OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
1447+ if [ -z "${OSPROBED}" ] ; then
1448+ # empty os-prober output, nothing doing
1449+@@ -144,6 +149,19 @@
1450+ }
1451+ EOF
1452+ ;;
1453++ efi)
1454++ EFIPATH=${DEVICE#*@}
1455++ DEVICE=${DEVICE%@*}
1456++ cat << EOF
1457++menuentry "${LONGNAME} (UEFI on ${DEVICE})" --class windows --class os {
1458++EOF
1459++ save_default_entry | sed -e "s/^/\t/"
1460++ prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
1461++ cat <<EOF
1462++ chainloader ${EFIPATH}
1463++}
1464++EOF
1465++ ;;
1466+ linux)
1467+ LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
1468+ prepare_boot_cache=
1469
1470=== added file 'debian/patches/probe_error_handling.patch'
1471--- debian/patches/probe_error_handling.patch 1970-01-01 00:00:00 +0000
1472+++ debian/patches/probe_error_handling.patch 2013-10-08 00:15:07 +0000
1473@@ -0,0 +1,22 @@
1474+Description: Fix spurious failure on Xen partition devices without disk devices
1475+ Zero out grub_errno in the case where we handle GRUB_ERR_UNKNOWN_DEVICE by
1476+ falling back to the partition device, otherwise a later call to this
1477+ function may fail spuriously.
1478+Author: Colin Watson <cjwatson@ubuntu.com>
1479+Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/5092
1480+Bug-Debian: http://bugs.debian.org/708614
1481+Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/5092
1482+Last-Update: 2013-08-13
1483+
1484+Index: b/util/getroot.c
1485+===================================================================
1486+--- a/util/getroot.c
1487++++ b/util/getroot.c
1488+@@ -2316,6 +2316,7 @@
1489+ grub_util_warn
1490+ (_("disk does not exist, so falling back to partition device %s"),
1491+ os_dev);
1492++ grub_errno = GRUB_ERR_NONE;
1493+
1494+ canon = canonicalize_file_name (os_dev);
1495+ drive = find_system_device (canon ? : os_dev, &st, 0, 1);
1496
1497=== modified file 'debian/patches/restore_mkdevicemap.patch'
1498--- debian/patches/restore_mkdevicemap.patch 2012-09-05 13:02:04 +0000
1499+++ debian/patches/restore_mkdevicemap.patch 2013-10-08 00:15:07 +0000
1500@@ -961,7 +961,7 @@
1501 + dmraid_check (node_name, "dm_tree_node_get_name failed\n");
1502 + node_uuid = dm_tree_node_get_uuid (second);
1503 + dmraid_check (node_uuid, "dm_tree_node_get_uuid failed\n");
1504-+ if (strncmp (node_uuid, "DMRAID-", 7) != 0)
1505++ if (strstr (node_uuid, "DMRAID-") == 0)
1506 + {
1507 + grub_dprintf ("deviceiter", "%s is not DM-RAID\n", node_name);
1508 + goto dmraid_next_child;
1509
1510=== added file 'debian/patches/script_check_no_commands.patch'
1511--- debian/patches/script_check_no_commands.patch 1970-01-01 00:00:00 +0000
1512+++ debian/patches/script_check_no_commands.patch 2013-10-08 00:15:07 +0000
1513@@ -0,0 +1,87 @@
1514+Description: Guard against scripts containing no commands
1515+ Make grub-script-check fail on scripts containing no commands, to guard
1516+ against corrupted grub-mkconfig setups that produce no useful output.
1517+Origin: backport, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/5044
1518+Author: Colin Watson <cjwatson@debian.org>
1519+Bug-Debian: http://bugs.debian.org/713886
1520+Forwarded: not-needed
1521+Last-Update: 2013-07-13
1522+
1523+Index: b/Makefile.util.def
1524+===================================================================
1525+--- a/Makefile.util.def
1526++++ b/Makefile.util.def
1527+@@ -701,6 +701,12 @@
1528+
1529+ script = {
1530+ testcase;
1531++ name = grub_script_no_commands;
1532++ common = tests/grub_script_no_commands.in;
1533++};
1534++
1535++script = {
1536++ testcase;
1537+ name = partmap_test;
1538+ common = tests/partmap_test.in;
1539+ };
1540+Index: b/tests/grub_script_no_commands.in
1541+===================================================================
1542+--- /dev/null
1543++++ b/tests/grub_script_no_commands.in
1544+@@ -0,0 +1,21 @@
1545++#! /bin/sh
1546++set -e
1547++
1548++# grub-script-check refuses to pass a file with no commands; this usually
1549++# indicates a bug in the code generating that file.
1550++
1551++@builddir@/grub-script-check <<EOF && exit 1
1552++
1553++EOF
1554++
1555++@builddir@/grub-script-check <<EOF && exit 1
1556++# comment
1557++EOF
1558++
1559++@builddir@/grub-script-check <<EOF && exit 1
1560++# comment 1
1561++# comment 2
1562++
1563++EOF
1564++
1565++exit 0
1566+Index: b/util/grub-script-check.c
1567+===================================================================
1568+--- a/util/grub-script-check.c
1569++++ b/util/grub-script-check.c
1570+@@ -92,7 +92,7 @@
1571+ int lineno = 0;
1572+ FILE *file = 0;
1573+ struct arguments arguments;
1574+- int found_input = 0;
1575++ int found_input = 0, found_cmd = 0;
1576+ struct grub_script *script = NULL;
1577+
1578+ auto grub_err_t get_config_line (char **line, int cont);
1579+@@ -177,6 +177,8 @@
1580+ script = grub_script_parse (input, get_config_line);
1581+ if (script)
1582+ {
1583++ if (script->cmd)
1584++ found_cmd = 1;
1585+ grub_script_execute (script);
1586+ grub_script_free (script);
1587+ }
1588+@@ -191,6 +193,12 @@
1589+ fprintf (stderr, _("Syntax error at line %u\n"), lineno);
1590+ return 1;
1591+ }
1592++ if (! found_cmd)
1593++ {
1594++ fprintf (stderr, _("Script contains no commands and will do nothing\n"),
1595++ arguments.filename);
1596++ return 1;
1597++ }
1598+
1599+ return 0;
1600+ }
1601
1602=== modified file 'debian/patches/series'
1603--- debian/patches/series 2013-03-13 00:30:03 +0000
1604+++ debian/patches/series 2013-10-08 00:15:07 +0000
1605@@ -43,17 +43,22 @@
1606 linuxefi_non_sb_fallback.patch
1607 mkconfig_signed_kernel.patch
1608 install_signed.patch
1609+install_bios_setup_path.patch
1610+os_prober_efi.patch
1611+acpihalt_improvements.patch
1612+script_check_no_commands.patch
1613+texinfo_ordering.patch
1614+mkconfig_emacs_autosave.patch
1615+sleep_shift.patch
1616+probe_error_handling.patch
1617+wubi_no_windows.patch
1618+maybe_quiet.patch
1619+efidisk_non_512_sectors.patch
1620 ubuntu_crashkernel.patch
1621 ubuntu_quick_boot.patch
1622-ubuntu_sleep_shift.patch
1623-ubuntu_normal_quiet.patch
1624-ubuntu_really_quiet.patch
1625-ubuntu_linux_quiet.patch
1626 ubuntu_failed_boot_menu.patch
1627-ubuntu_quiet_grub_loading.patch
1628 ubuntu_gfxpayload_filter.patch
1629 ubuntu_vt_handoff.patch
1630 ubuntu_recovery_nomodeset.patch
1631-ubuntu_wubi_no_windows.patch
1632 ubuntu_probe_dmraid.patch
1633-ubuntu_acpihalt_improvements.patch
1634+efi_always_install_grub_cfg.patch
1635
1636=== added file 'debian/patches/sleep_shift.patch'
1637--- debian/patches/sleep_shift.patch 1970-01-01 00:00:00 +0000
1638+++ debian/patches/sleep_shift.patch 2013-10-08 00:15:07 +0000
1639@@ -0,0 +1,53 @@
1640+Description: Allow Shift to interrupt 'sleep --interruptible'
1641+ Upstream would like to consider this at more length. See
1642+ http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00718.html, and the
1643+ rest of the thread for context.
1644+Author: Colin Watson <cjwatson@ubuntu.com>
1645+Forwarded: http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00694.html
1646+Last-Update: 2012-09-06
1647+
1648+Index: b/grub-core/commands/sleep.c
1649+===================================================================
1650+--- a/grub-core/commands/sleep.c
1651++++ b/grub-core/commands/sleep.c
1652+@@ -46,6 +46,31 @@
1653+ grub_refresh ();
1654+ }
1655+
1656++static int
1657++grub_check_keyboard (void)
1658++{
1659++ int mods = 0;
1660++ grub_term_input_t term;
1661++
1662++ if (grub_term_poll_usb)
1663++ grub_term_poll_usb ();
1664++
1665++ FOR_ACTIVE_TERM_INPUTS(term)
1666++ {
1667++ if (term->getkeystatus)
1668++ mods |= term->getkeystatus (term);
1669++ }
1670++
1671++ if (mods >= 0 &&
1672++ (mods & (GRUB_TERM_STATUS_LSHIFT | GRUB_TERM_STATUS_RSHIFT)) != 0)
1673++ return 1;
1674++
1675++ if (grub_getkey_noblock () == GRUB_TERM_ESC)
1676++ return 1;
1677++
1678++ return 0;
1679++}
1680++
1681+ /* Based on grub_millisleep() from kern/generic/millisleep.c. */
1682+ static int
1683+ grub_interruptible_millisleep (grub_uint32_t ms)
1684+@@ -55,7 +80,7 @@
1685+ start = grub_get_time_ms ();
1686+
1687+ while (grub_get_time_ms () - start < ms)
1688+- if (grub_getkey_noblock () == GRUB_TERM_ESC)
1689++ if (grub_check_keyboard ())
1690+ return 1;
1691+
1692+ return 0;
1693
1694=== added file 'debian/patches/texinfo_ordering.patch'
1695--- debian/patches/texinfo_ordering.patch 1970-01-01 00:00:00 +0000
1696+++ debian/patches/texinfo_ordering.patch 2013-10-08 00:15:07 +0000
1697@@ -0,0 +1,21 @@
1698+Description: Move @itemize after @subsection to satisfy texinfo-5.1
1699+Author: Bryan Hundven <bryanhundven@gmail.com>
1700+Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/4813
1701+Forwarded: not-needed
1702+Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/4813
1703+Last-Update: 2013-08-11
1704+
1705+Index: b/docs/grub-dev.texi
1706+===================================================================
1707+--- a/docs/grub-dev.texi
1708++++ b/docs/grub-dev.texi
1709+@@ -1394,8 +1394,8 @@
1710+
1711+ @node Bitmap API
1712+ @section Bitmap API
1713+-@itemize
1714+ @subsection grub_video_bitmap_create
1715++@itemize
1716+ @item Prototype:
1717+ @example
1718+ grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap, unsigned int width, unsigned int height, enum grub_video_blit_format blit_format)
1719
1720=== removed file 'debian/patches/ubuntu_acpihalt_improvements.patch'
1721--- debian/patches/ubuntu_acpihalt_improvements.patch 2013-03-13 00:30:03 +0000
1722+++ debian/patches/ubuntu_acpihalt_improvements.patch 1970-01-01 00:00:00 +0000
1723@@ -1,191 +0,0 @@
1724-Description: acpihalt: expand parser to handle SSDTs and some more opcodes
1725-Author: Colin Watson <cjwatson@ubuntu.com>
1726-Forwarded: https://lists.gnu.org/archive/html/grub-devel/2013-03/msg00060.html
1727-Last-Update: 2013-03-13
1728-
1729-Index: b/grub-core/commands/acpihalt.c
1730-===================================================================
1731---- a/grub-core/commands/acpihalt.c
1732-+++ b/grub-core/commands/acpihalt.c
1733-@@ -41,6 +41,7 @@
1734- #endif
1735-
1736- #ifndef GRUB_DSDT_TEST
1737-+#include <grub/mm.h>
1738- #include <grub/misc.h>
1739- #include <grub/time.h>
1740- #include <grub/cpu/io.h>
1741-@@ -146,6 +147,10 @@
1742- ptr += skip_name_string (ptr, end);
1743- ptr++;
1744- break;
1745-+ case GRUB_ACPI_EXTOPCODE_EVENT_OP:
1746-+ ptr++;
1747-+ ptr += skip_name_string (ptr, end);
1748-+ break;
1749- case GRUB_ACPI_EXTOPCODE_OPERATION_REGION:
1750- ptr++;
1751- ptr += skip_name_string (ptr, end);
1752-@@ -158,7 +163,12 @@
1753- return 0;
1754- break;
1755- case GRUB_ACPI_EXTOPCODE_FIELD_OP:
1756-+ case GRUB_ACPI_EXTOPCODE_DEVICE_OP:
1757-+ case GRUB_ACPI_EXTOPCODE_PROCESSOR_OP:
1758-+ case GRUB_ACPI_EXTOPCODE_POWER_RES_OP:
1759-+ case GRUB_ACPI_EXTOPCODE_THERMAL_ZONE_OP:
1760- case GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP:
1761-+ case GRUB_ACPI_EXTOPCODE_BANK_FIELD_OP:
1762- ptr++;
1763- ptr += decode_length (ptr, 0);
1764- break;
1765-@@ -170,12 +180,14 @@
1766- }
1767-
1768- static int
1769--get_sleep_type (grub_uint8_t *table, grub_uint8_t *end)
1770-+get_sleep_type (grub_uint8_t *table, grub_uint8_t *ptr, grub_uint8_t *end,
1771-+ grub_uint8_t *scope, int scope_len)
1772- {
1773-- grub_uint8_t *ptr, *prev = table;
1774-- int sleep_type = -1;
1775-+ grub_uint8_t *prev = table;
1776-+ int sleep_type = -2;
1777-
1778-- ptr = table + sizeof (struct grub_acpi_table_header);
1779-+ if (!ptr)
1780-+ ptr = table + sizeof (struct grub_acpi_table_header);
1781- while (ptr < end && prev < ptr)
1782- {
1783- int add;
1784-@@ -202,7 +214,8 @@
1785- }
1786- case GRUB_ACPI_OPCODE_NAME:
1787- ptr++;
1788-- if (memcmp (ptr, "_S5_", 4) == 0 || memcmp (ptr, "\\_S5_", 4) == 0)
1789-+ if ((!scope || memcmp (scope, "\\", scope_len) == 0) &&
1790-+ (memcmp (ptr, "_S5_", 4) == 0 || memcmp (ptr, "\\_S5_", 4) == 0))
1791- {
1792- int ll;
1793- grub_uint8_t *ptr2 = ptr;
1794-@@ -241,6 +254,25 @@
1795- return -1;
1796- break;
1797- case GRUB_ACPI_OPCODE_SCOPE:
1798-+ {
1799-+ int scope_sleep_type;
1800-+ int ll;
1801-+ grub_uint8_t *name;
1802-+ int name_len;
1803-+
1804-+ ptr++;
1805-+ add = decode_length (ptr, &ll);
1806-+ name = ptr + ll;
1807-+ name_len = skip_name_string (name, ptr + add);
1808-+ if (!name_len)
1809-+ return -1;
1810-+ scope_sleep_type = get_sleep_type (table, name + name_len,
1811-+ ptr + add, name, name_len);
1812-+ if (scope_sleep_type != -2)
1813-+ return scope_sleep_type;
1814-+ ptr += add;
1815-+ break;
1816-+ }
1817- case GRUB_ACPI_OPCODE_IF:
1818- case GRUB_ACPI_OPCODE_METHOD:
1819- {
1820-@@ -291,7 +323,7 @@
1821- return 2;
1822- }
1823-
1824-- printf ("Sleep type = %d\n", get_sleep_type (buf, buf + len));
1825-+ printf ("Sleep type = %d\n", get_sleep_type (buf, NULL, buf + len, NULL, 0));
1826- free (buf);
1827- fclose (f);
1828- return 0;
1829-@@ -304,8 +336,10 @@
1830- {
1831- struct grub_acpi_rsdp_v20 *rsdp2;
1832- struct grub_acpi_rsdp_v10 *rsdp1;
1833-- struct grub_acpi_table_header *rsdt;
1834-- grub_uint32_t *entry_ptr;
1835-+ struct grub_acpi_table_header *rsdt;
1836-+ grub_uint32_t *entry_ptr;
1837-+ grub_uint32_t port = 0;
1838-+ int sleep_type = -1;
1839-
1840- rsdp2 = grub_acpi_get_rsdpv2 ();
1841- if (rsdp2)
1842-@@ -324,33 +358,39 @@
1843- {
1844- if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "FACP", 4) == 0)
1845- {
1846-- grub_uint32_t port;
1847- struct grub_acpi_fadt *fadt
1848- = ((struct grub_acpi_fadt *) (grub_addr_t) *entry_ptr);
1849- struct grub_acpi_table_header *dsdt
1850- = (struct grub_acpi_table_header *) (grub_addr_t) fadt->dsdt_addr;
1851-- int sleep_type = -1;
1852-+ grub_uint8_t *buf = (grub_uint8_t *) dsdt;
1853-
1854- port = fadt->pm1a;
1855-
1856- grub_dprintf ("acpi", "PM1a port=%x\n", port);
1857-
1858- if (grub_memcmp (dsdt->signature, "DSDT",
1859-- sizeof (dsdt->signature)) != 0)
1860-- break;
1861-+ sizeof (dsdt->signature)) == 0)
1862-+ sleep_type = get_sleep_type (buf, NULL, buf + dsdt->length,
1863-+ NULL, 0);
1864-+ }
1865-+ else if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "SSDT", 4) == 0)
1866-+ {
1867-+ struct grub_acpi_table_header *ssdt
1868-+ = (struct grub_acpi_table_header *) (grub_addr_t) *entry_ptr;
1869-+ grub_uint8_t *buf = (grub_uint8_t *) ssdt;
1870-
1871-- sleep_type = get_sleep_type ((grub_uint8_t *) dsdt,
1872-- (grub_uint8_t *) dsdt + dsdt->length);
1873-+ grub_dprintf ("acpi", "SSDT = %p\n", ssdt);
1874-
1875-- if (sleep_type < 0 || sleep_type >= 8)
1876-- break;
1877-+ sleep_type = get_sleep_type (buf, NULL, buf + ssdt->length, NULL, 0);
1878-+ }
1879-+ }
1880-
1881-- grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n",
1882-- sleep_type, port);
1883-+ if (port && sleep_type >= 0 && sleep_type < 8)
1884-+ {
1885-+ grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n", sleep_type, port);
1886-
1887-- grub_outw (GRUB_ACPI_SLP_EN
1888-- | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET), port & 0xffff);
1889-- }
1890-+ grub_outw (GRUB_ACPI_SLP_EN | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET),
1891-+ port & 0xffff);
1892- }
1893-
1894- grub_millisleep (1500);
1895-Index: b/include/grub/acpi.h
1896-===================================================================
1897---- a/include/grub/acpi.h
1898-+++ b/include/grub/acpi.h
1899-@@ -174,9 +174,15 @@
1900- enum
1901- {
1902- GRUB_ACPI_EXTOPCODE_MUTEX = 0x01,
1903-+ GRUB_ACPI_EXTOPCODE_EVENT_OP = 0x02,
1904- GRUB_ACPI_EXTOPCODE_OPERATION_REGION = 0x80,
1905- GRUB_ACPI_EXTOPCODE_FIELD_OP = 0x81,
1906-+ GRUB_ACPI_EXTOPCODE_DEVICE_OP = 0x82,
1907-+ GRUB_ACPI_EXTOPCODE_PROCESSOR_OP = 0x83,
1908-+ GRUB_ACPI_EXTOPCODE_POWER_RES_OP = 0x84,
1909-+ GRUB_ACPI_EXTOPCODE_THERMAL_ZONE_OP = 0x85,
1910- GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP = 0x86,
1911-+ GRUB_ACPI_EXTOPCODE_BANK_FIELD_OP = 0x87,
1912- };
1913-
1914- #endif /* ! GRUB_ACPI_HEADER */
1915
1916=== modified file 'debian/patches/ubuntu_crashkernel.patch'
1917--- debian/patches/ubuntu_crashkernel.patch 2013-02-01 17:45:21 +0000
1918+++ debian/patches/ubuntu_crashkernel.patch 2013-10-08 00:15:07 +0000
1919@@ -11,7 +11,7 @@
1920 ===================================================================
1921 --- a/util/grub.d/10_linux.in
1922 +++ b/util/grub.d/10_linux.in
1923-@@ -82,6 +82,11 @@
1924+@@ -86,6 +86,11 @@
1925
1926 title_correction_code=
1927
1928@@ -23,7 +23,7 @@
1929 linux_entry ()
1930 {
1931 os="$1"
1932-@@ -248,7 +253,7 @@
1933+@@ -258,7 +263,7 @@
1934
1935 if [ "x$is_first_entry" = xtrue ]; then
1936 linux_entry "${OS}" "${version}" simple \
1937@@ -32,7 +32,7 @@
1938
1939 submenu_indentation="\t"
1940
1941-@@ -260,7 +265,7 @@
1942+@@ -270,7 +275,7 @@
1943 fi
1944
1945 linux_entry "${OS}" "${version}" advanced \
1946
1947=== modified file 'debian/patches/ubuntu_failed_boot_menu.patch'
1948--- debian/patches/ubuntu_failed_boot_menu.patch 2013-02-01 17:45:21 +0000
1949+++ debian/patches/ubuntu_failed_boot_menu.patch 2013-10-08 00:15:07 +0000
1950@@ -2,14 +2,23 @@
1951 "Failure" here is defined as failing to get to the end of one of the normal
1952 runlevels.
1953 Author: Colin Watson <cjwatson@ubuntu.com>
1954+Author: Richard Laager <rlaager@wiktel.com>
1955 Forwarded: no
1956-Last-Update: 2012-09-06
1957+Last-Update: 2013-09-11
1958
1959 Index: b/util/grub.d/00_header.in
1960 ===================================================================
1961 --- a/util/grub.d/00_header.in
1962 +++ b/util/grub.d/00_header.in
1963-@@ -46,6 +46,7 @@
1964+@@ -23,6 +23,7 @@
1965+ exec_prefix="@exec_prefix@"
1966+ datarootdir="@datarootdir@"
1967+ grub_lang=`echo $LANG | cut -d . -f 1`
1968++grubdir="`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'`"
1969+
1970+ export TEXTDOMAIN=@PACKAGE@
1971+ export TEXTDOMAINDIR="@localedir@"
1972+@@ -46,6 +47,7 @@
1973
1974 cat << EOF
1975 if [ -s \$prefix/grubenv ]; then
1976@@ -17,19 +26,32 @@
1977 load_env
1978 fi
1979 EOF
1980-@@ -87,6 +88,11 @@
1981+@@ -87,6 +89,24 @@
1982 fi
1983 }
1984
1985 +function recordfail {
1986 + set recordfail=1
1987++EOF
1988++FS="$(grub-probe --target=fs "${grubdir}")"
1989++case "$FS" in
1990++ btrfs | cpiofs | newc | odc | romfs | squash4 | tarfs | zfs)
1991++ cat <<EOF
1992++ # GRUB lacks write support for $FS, so recordfail support is disabled.
1993++EOF
1994++ ;;
1995++ *)
1996++ cat <<EOF
1997 + if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
1998++EOF
1999++esac
2000++cat <<EOF
2001 +}
2002 +
2003 function load_video {
2004 EOF
2005 if [ -n "${GRUB_VIDEO_BACKEND}" ]; then
2006-@@ -273,7 +279,11 @@
2007+@@ -273,7 +293,11 @@
2008 make_timeout ()
2009 {
2010 cat << EOF
2011@@ -46,7 +68,7 @@
2012 ===================================================================
2013 --- a/util/grub.d/10_linux.in
2014 +++ b/util/grub.d/10_linux.in
2015-@@ -114,6 +114,7 @@
2016+@@ -118,6 +118,7 @@
2017 else
2018 echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
2019 fi
2020
2021=== modified file 'debian/patches/ubuntu_gfxpayload_filter.patch'
2022--- debian/patches/ubuntu_gfxpayload_filter.patch 2013-02-01 17:45:21 +0000
2023+++ debian/patches/ubuntu_gfxpayload_filter.patch 2013-10-08 00:15:07 +0000
2024@@ -177,7 +177,7 @@
2025 ===================================================================
2026 --- a/util/grub.d/10_linux.in
2027 +++ b/util/grub.d/10_linux.in
2028-@@ -127,8 +127,8 @@
2029+@@ -131,8 +131,8 @@
2030 if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
2031 echo " load_video" | sed "s/^/$submenu_indentation/"
2032 fi
2033@@ -187,7 +187,7 @@
2034
2035 echo " insmod gzio" | sed "s/^/$submenu_indentation/"
2036
2037-@@ -200,6 +200,35 @@
2038+@@ -204,6 +204,35 @@
2039 boot_device_id=
2040 title_correction_code=
2041
2042
2043=== removed file 'debian/patches/ubuntu_linux_quiet.patch'
2044--- debian/patches/ubuntu_linux_quiet.patch 2013-02-01 17:45:21 +0000
2045+++ debian/patches/ubuntu_linux_quiet.patch 1970-01-01 00:00:00 +0000
2046@@ -1,41 +0,0 @@
2047-Description: Suppress kernel/initrd progress messages, except in recovery mode
2048-Author: Colin Watson <cjwatson@ubuntu.com>
2049-Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922
2050-Forwarded: no
2051-Last-Update: 2013-02-01
2052-
2053-Index: b/util/grub.d/10_linux.in
2054-===================================================================
2055---- a/util/grub.d/10_linux.in
2056-+++ b/util/grub.d/10_linux.in
2057-@@ -142,10 +142,12 @@
2058- fi
2059- printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
2060- fi
2061-- message="$(gettext_printf "Loading Linux %s ..." ${version})"
2062-- sed "s/^/$submenu_indentation/" << EOF
2063-+ if [ x$type != xsimple ]; then
2064-+ message="$(gettext_printf "Loading Linux %s ..." ${version})"
2065-+ sed "s/^/$submenu_indentation/" << EOF
2066- echo '$(echo "$message" | grub_quote)'
2067- EOF
2068-+ fi
2069- if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then
2070- sed "s/^/$submenu_indentation/" << EOF
2071- linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}
2072-@@ -157,9 +159,13 @@
2073- fi
2074- if test -n "${initrd}" ; then
2075- # TRANSLATORS: ramdisk isn't identifier. Should be translated.
2076-- message="$(gettext_printf "Loading initial ramdisk ...")"
2077-- sed "s/^/$submenu_indentation/" << EOF
2078-+ if [ x$type != xsimple ]; then
2079-+ message="$(gettext_printf "Loading initial ramdisk ...")"
2080-+ sed "s/^/$submenu_indentation/" << EOF
2081- echo '$(echo "$message" | grub_quote)'
2082-+EOF
2083-+ fi
2084-+ sed "s/^/$submenu_indentation/" << EOF
2085- initrd ${rel_dirname}/${initrd}
2086- EOF
2087- fi
2088
2089=== removed file 'debian/patches/ubuntu_normal_quiet.patch'
2090--- debian/patches/ubuntu_normal_quiet.patch 2012-09-07 12:39:02 +0000
2091+++ debian/patches/ubuntu_normal_quiet.patch 1970-01-01 00:00:00 +0000
2092@@ -1,62 +0,0 @@
2093-Description: Reduce visual clutter in normal mode
2094- Don't display introductory message about line editing unless we're actually
2095- offering a shell prompt. (This is believed to be a workaround for a
2096- different bug. We'll go with this for now, but will drop this in favour of
2097- a better fix upstream if somebody figures out what that is.)
2098- .
2099- Don't clear the screen just before booting if we never drew the menu in the
2100- first place.
2101-Author: Colin Watson <cjwatson@ubuntu.com>
2102-Forwarded: http://lists.gnu.org/archive/html/grub-devel/2009-09/msg00056.html
2103-Last-Update: 2012-09-06
2104-
2105-Index: b/grub-core/normal/main.c
2106-===================================================================
2107---- a/grub-core/normal/main.c
2108-+++ b/grub-core/normal/main.c
2109-@@ -399,6 +399,13 @@
2110- grub_normal_read_line_real (char **line, int cont, int nested)
2111- {
2112- const char *prompt;
2113-+ static int displayed_intro;
2114-+
2115-+ if (! displayed_intro)
2116-+ {
2117-+ grub_normal_reader_init (nested);
2118-+ displayed_intro = 1;
2119-+ }
2120-
2121- if (cont)
2122- /* TRANSLATORS: it's command line prompt. */
2123-@@ -446,8 +453,6 @@
2124- return;
2125- }
2126-
2127-- grub_normal_reader_init (nested);
2128--
2129- while (1)
2130- {
2131- char *line;
2132-Index: b/grub-core/normal/menu.c
2133-===================================================================
2134---- a/grub-core/normal/menu.c
2135-+++ b/grub-core/normal/menu.c
2136-@@ -722,6 +722,7 @@
2137- int boot_entry;
2138- grub_menu_entry_t e;
2139- int auto_boot;
2140-+ int initial_timeout = grub_menu_get_timeout ();
2141-
2142- boot_entry = run_menu (menu, nested, &auto_boot);
2143- if (boot_entry < 0)
2144-@@ -731,7 +732,9 @@
2145- if (! e)
2146- continue; /* Menu is empty. */
2147-
2148-- grub_cls ();
2149-+ /* Only clear the screen if we drew the menu in the first place. */
2150-+ if (initial_timeout != 0)
2151-+ grub_cls ();
2152-
2153- if (auto_boot)
2154- grub_menu_execute_with_fallback (menu, e, autobooted,
2155
2156=== modified file 'debian/patches/ubuntu_quick_boot.patch'
2157--- debian/patches/ubuntu_quick_boot.patch 2012-09-26 16:27:19 +0000
2158+++ debian/patches/ubuntu_quick_boot.patch 2013-10-08 00:15:07 +0000
2159@@ -10,7 +10,7 @@
2160 https://wiki.ubuntu.com/DesktopExperienceTeam/KarmicBootExperienceDesignSpec#Bootloader.
2161 Author: Colin Watson <cjwatson@ubuntu.com>
2162 Forwarded: no
2163-Last-Update: 2012-09-26
2164+Last-Update: 2013-05-09
2165
2166 Index: b/util/grub.d/00_header.in
2167 ===================================================================
2168@@ -44,7 +44,7 @@
2169 ===================================================================
2170 --- a/util/grub.d/30_os-prober.in
2171 +++ b/util/grub.d/30_os-prober.in
2172-@@ -26,22 +26,80 @@
2173+@@ -26,12 +26,68 @@
2174
2175 . "@datadir@/@PACKAGE@/grub-mkconfig_lib"
2176
2177@@ -113,6 +113,7 @@
2178 exit 0
2179 fi
2180
2181+@@ -43,10 +99,12 @@
2182 OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
2183 if [ -z "${OSPROBED}" ] ; then
2184 # empty os-prober output, nothing doing
2185@@ -125,15 +126,23 @@
2186 if [ x$2 = x32 ]; then
2187 # TRANSLATORS: it refers to kernel architecture (32-bit)
2188 bitstr="$(gettext "(32-bit)")"
2189-@@ -122,6 +180,7 @@
2190- case ${BOOT} in
2191- chain)
2192+@@ -146,6 +204,7 @@
2193+ ;;
2194+ esac
2195
2196 + found_other_os=1
2197 onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
2198 cat << EOF
2199 menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class windows --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' {
2200-@@ -174,6 +233,7 @@
2201+@@ -169,6 +228,7 @@
2202+ EOF
2203+ ;;
2204+ efi)
2205++ found_other_os=1
2206+ EFIPATH=${DEVICE#*@}
2207+ DEVICE=${DEVICE%@*}
2208+ cat << EOF
2209+@@ -211,6 +271,7 @@
2210 [ "${prepare_boot_cache}" ] || continue
2211 fi
2212
2213@@ -141,7 +150,7 @@
2214 onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
2215 recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true
2216 counter=1
2217-@@ -240,6 +300,7 @@
2218+@@ -277,6 +338,7 @@
2219 osx_entry xnu_kernel64 64
2220 ;;
2221 hurd)
2222@@ -149,7 +158,7 @@
2223 onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
2224 cat << EOF
2225 menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class hurd --class gnu --class os \$menuentry_id_option 'osprober-gnuhurd-/boot/gnumach.gz-false-$(grub_get_device_id "${DEVICE}")' {
2226-@@ -272,3 +333,5 @@
2227+@@ -309,3 +371,5 @@
2228 ;;
2229 esac
2230 done
2231
2232=== removed file 'debian/patches/ubuntu_quiet_grub_loading.patch'
2233--- debian/patches/ubuntu_quiet_grub_loading.patch 2012-09-07 12:39:02 +0000
2234+++ debian/patches/ubuntu_quiet_grub_loading.patch 1970-01-01 00:00:00 +0000
2235@@ -1,106 +0,0 @@
2236-Description: Suppress "GRUB loading" message unless Shift is held down
2237- Upstream doesn't want this, as it makes debugging harder. Ubuntu wants it
2238- to provide a cleaner boot experience.
2239-Author: Colin Watson <cjwatson@ubuntu.com>
2240-Forwarded: not-needed
2241-Last-Update: 2012-09-06
2242-
2243-Index: b/grub-core/boot/i386/pc/boot.S
2244-===================================================================
2245---- a/grub-core/boot/i386/pc/boot.S
2246-+++ b/grub-core/boot/i386/pc/boot.S
2247-@@ -18,6 +18,7 @@
2248- */
2249-
2250- #include <grub/symbol.h>
2251-+#include <grub/machine/memory.h>
2252- #include <grub/machine/boot.h>
2253-
2254- /*
2255-@@ -150,9 +151,15 @@
2256- /* save drive reference first thing! */
2257- pushw %dx
2258-
2259-+ /* is either shift key held down? */
2260-+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx
2261-+ andb $3, (%bx)
2262-+ jz 2f
2263-+
2264- /* print a notification message on the screen */
2265- MSG(notification_string)
2266-
2267-+2:
2268- /* set %si to the disk address packet */
2269- movw $disk_address_packet, %si
2270-
2271-Index: b/grub-core/boot/i386/pc/diskboot.S
2272-===================================================================
2273---- a/grub-core/boot/i386/pc/diskboot.S
2274-+++ b/grub-core/boot/i386/pc/diskboot.S
2275-@@ -17,6 +17,7 @@
2276- */
2277-
2278- #include <grub/symbol.h>
2279-+#include <grub/machine/memory.h>
2280- #include <grub/machine/boot.h>
2281-
2282- /*
2283-@@ -24,6 +25,7 @@
2284- */
2285-
2286- #define MSG(x) movw $x, %si; call LOCAL(message)
2287-+#define SILENT(x) call LOCAL(check_silent); jz LOCAL(x)
2288-
2289- .file "diskboot.S"
2290-
2291-@@ -50,11 +52,14 @@
2292- /* save drive reference first thing! */
2293- pushw %dx
2294-
2295-+ SILENT(after_notification_string)
2296-+
2297- /* print a notification message on the screen */
2298- pushw %si
2299- MSG(notification_string)
2300- popw %si
2301-
2302-+LOCAL(after_notification_string):
2303- /* this sets up for the first run through "bootloop" */
2304- movw $LOCAL(firstlist), %di
2305-
2306-@@ -279,7 +284,10 @@
2307- /* restore addressing regs and print a dot with correct DS
2308- (MSG modifies SI, which is saved, and unused AX and BX) */
2309- popw %ds
2310-+ SILENT(after_notification_step)
2311- MSG(notification_step)
2312-+
2313-+LOCAL(after_notification_step):
2314- popa
2315-
2316- /* check if finished with this dataset */
2317-@@ -295,8 +303,11 @@
2318- /* END OF MAIN LOOP */
2319-
2320- LOCAL(bootit):
2321-+ SILENT(after_notification_done)
2322- /* print a newline */
2323- MSG(notification_done)
2324-+
2325-+LOCAL(after_notification_done):
2326- popw %dx /* this makes sure %dl is our "boot" drive */
2327- ljmp $0, $(GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200)
2328-
2329-@@ -320,6 +331,12 @@
2330- /* go here when you need to stop the machine hard after an error condition */
2331- LOCAL(stop): jmp LOCAL(stop)
2332-
2333-+LOCAL(check_silent):
2334-+ /* is either shift key held down? */
2335-+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx
2336-+ andb $3, (%bx)
2337-+ ret
2338-+
2339- notification_string: .asciz "loading"
2340-
2341- notification_step: .asciz "."
2342
2343=== removed file 'debian/patches/ubuntu_really_quiet.patch'
2344--- debian/patches/ubuntu_really_quiet.patch 2012-09-07 12:39:02 +0000
2345+++ debian/patches/ubuntu_really_quiet.patch 1970-01-01 00:00:00 +0000
2346@@ -1,77 +0,0 @@
2347-Description: Remove verbose messages printed before reading configuration
2348- In some ways this is awkward because it makes debugging harder, but it's a
2349- requirement for a smooth-looking boot process; we may be able to do better in
2350- future. Upstream doesn't want this, though.
2351- .
2352- We disable the cursor as well, for similar reasons of tidiness.
2353-Author: Colin Watson <cjwatson@ubuntu.com>
2354-Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922
2355-Bug-Ubuntu: https://bugs.launchpad.net/bugs/861048
2356-Forwarded: not-needed
2357-Last-Update: 2012-09-06
2358-
2359-Index: b/grub-core/kern/main.c
2360-===================================================================
2361---- a/grub-core/kern/main.c
2362-+++ b/grub-core/kern/main.c
2363-@@ -207,13 +207,14 @@
2364- void __attribute__ ((noreturn))
2365- grub_main (void)
2366- {
2367-+ struct grub_term_output *term;
2368-+
2369- /* First of all, initialize the machine. */
2370- grub_machine_init ();
2371-
2372-- /* Hello. */
2373-- grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT);
2374-- grub_printf ("Welcome to GRUB!\n\n");
2375-- grub_setcolorstate (GRUB_TERM_COLOR_STANDARD);
2376-+ /* Disable the cursor until we need it. */
2377-+ FOR_ACTIVE_TERM_OUTPUTS(term)
2378-+ grub_term_setcursor (term, 0);
2379-
2380- /* Load pre-loaded modules and free the space. */
2381- grub_register_exported_symbols ();
2382-@@ -232,5 +233,10 @@
2383-
2384- grub_load_config ();
2385- grub_load_normal_mode ();
2386-+
2387-+ /* If we have to enter rescue mode, enable the cursor again. */
2388-+ FOR_ACTIVE_TERM_OUTPUTS(term)
2389-+ grub_term_setcursor (term, 1);
2390-+
2391- grub_rescue_run ();
2392- }
2393-Index: b/grub-core/kern/rescue_reader.c
2394-===================================================================
2395---- a/grub-core/kern/rescue_reader.c
2396-+++ b/grub-core/kern/rescue_reader.c
2397-@@ -77,8 +77,6 @@
2398- void __attribute__ ((noreturn))
2399- grub_rescue_run (void)
2400- {
2401-- grub_printf ("Entering rescue mode...\n");
2402--
2403- while (1)
2404- {
2405- char *line;
2406-Index: b/grub-core/normal/menu.c
2407-===================================================================
2408---- a/grub-core/normal/menu.c
2409-+++ b/grub-core/normal/menu.c
2410-@@ -669,12 +669,9 @@
2411-
2412- /* Callback invoked immediately before a menu entry is executed. */
2413- static void
2414--notify_booting (grub_menu_entry_t entry,
2415-+notify_booting (grub_menu_entry_t entry __attribute__((unused)),
2416- void *userdata __attribute__((unused)))
2417- {
2418-- grub_printf (" ");
2419-- grub_printf_ (N_("Booting `%s'"), entry->title);
2420-- grub_printf ("\n\n");
2421- }
2422-
2423- /* Callback invoked when a default menu entry executed because of a timeout
2424
2425=== modified file 'debian/patches/ubuntu_recovery_nomodeset.patch'
2426--- debian/patches/ubuntu_recovery_nomodeset.patch 2013-02-01 17:45:21 +0000
2427+++ debian/patches/ubuntu_recovery_nomodeset.patch 2013-10-08 00:15:07 +0000
2428@@ -10,7 +10,7 @@
2429 ===================================================================
2430 --- a/util/grub.d/10_linux.in
2431 +++ b/util/grub.d/10_linux.in
2432-@@ -134,7 +134,9 @@
2433+@@ -138,7 +138,9 @@
2434 echo " load_video" | sed "s/^/$submenu_indentation/"
2435 fi
2436 fi
2437@@ -21,7 +21,7 @@
2438
2439 echo " insmod gzio" | sed "s/^/$submenu_indentation/"
2440
2441-@@ -322,10 +324,10 @@
2442+@@ -326,10 +328,10 @@
2443 if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
2444 if [ -x /lib/recovery-mode/recovery-menu ]; then
2445 linux_entry "${OS}" "${version}" recovery \
2446
2447=== removed file 'debian/patches/ubuntu_sleep_shift.patch'
2448--- debian/patches/ubuntu_sleep_shift.patch 2012-09-07 12:39:02 +0000
2449+++ debian/patches/ubuntu_sleep_shift.patch 1970-01-01 00:00:00 +0000
2450@@ -1,53 +0,0 @@
2451-Description: Allow Shift to interrupt 'sleep --interruptible'
2452- Upstream would like to consider this at more length. See
2453- http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00718.html, and the
2454- rest of the thread for context.
2455-Author: Colin Watson <cjwatson@ubuntu.com>
2456-Forwarded: http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00694.html
2457-Last-Update: 2012-09-06
2458-
2459-Index: b/grub-core/commands/sleep.c
2460-===================================================================
2461---- a/grub-core/commands/sleep.c
2462-+++ b/grub-core/commands/sleep.c
2463-@@ -46,6 +46,31 @@
2464- grub_refresh ();
2465- }
2466-
2467-+static int
2468-+grub_check_keyboard (void)
2469-+{
2470-+ int mods = 0;
2471-+ grub_term_input_t term;
2472-+
2473-+ if (grub_term_poll_usb)
2474-+ grub_term_poll_usb ();
2475-+
2476-+ FOR_ACTIVE_TERM_INPUTS(term)
2477-+ {
2478-+ if (term->getkeystatus)
2479-+ mods |= term->getkeystatus (term);
2480-+ }
2481-+
2482-+ if (mods >= 0 &&
2483-+ (mods & (GRUB_TERM_STATUS_LSHIFT | GRUB_TERM_STATUS_RSHIFT)) != 0)
2484-+ return 1;
2485-+
2486-+ if (grub_getkey_noblock () == GRUB_TERM_ESC)
2487-+ return 1;
2488-+
2489-+ return 0;
2490-+}
2491-+
2492- /* Based on grub_millisleep() from kern/generic/millisleep.c. */
2493- static int
2494- grub_interruptible_millisleep (grub_uint32_t ms)
2495-@@ -55,7 +80,7 @@
2496- start = grub_get_time_ms ();
2497-
2498- while (grub_get_time_ms () - start < ms)
2499-- if (grub_getkey_noblock () == GRUB_TERM_ESC)
2500-+ if (grub_check_keyboard ())
2501- return 1;
2502-
2503- return 0;
2504
2505=== modified file 'debian/patches/ubuntu_vt_handoff.patch'
2506--- debian/patches/ubuntu_vt_handoff.patch 2013-02-01 17:45:21 +0000
2507+++ debian/patches/ubuntu_vt_handoff.patch 2013-10-08 00:15:07 +0000
2508@@ -12,7 +12,7 @@
2509 ===================================================================
2510 --- a/util/grub.d/10_linux.in
2511 +++ b/util/grub.d/10_linux.in
2512-@@ -82,6 +82,12 @@
2513+@@ -86,6 +86,12 @@
2514
2515 title_correction_code=
2516
2517@@ -25,7 +25,7 @@
2518 # add crashkernel option if we have the required tools
2519 if [ -x "/usr/bin/makedumpfile" ] && [ -x "/sbin/kexec" ]; then
2520 GRUB_CMDLINE_EXTRA="$GRUB_CMDLINE_EXTRA crashkernel=384M-2G:64M,2G-:128M"
2521-@@ -128,7 +134,7 @@
2522+@@ -132,7 +138,7 @@
2523 echo " load_video" | sed "s/^/$submenu_indentation/"
2524 fi
2525 fi
2526@@ -34,7 +34,7 @@
2527
2528 echo " insmod gzio" | sed "s/^/$submenu_indentation/"
2529
2530-@@ -200,6 +206,17 @@
2531+@@ -204,6 +210,17 @@
2532 boot_device_id=
2533 title_correction_code=
2534
2535
2536=== removed file 'debian/patches/ubuntu_wubi_no_windows.patch'
2537--- debian/patches/ubuntu_wubi_no_windows.patch 2012-09-07 12:39:02 +0000
2538+++ debian/patches/ubuntu_wubi_no_windows.patch 1970-01-01 00:00:00 +0000
2539@@ -1,47 +0,0 @@
2540-Description: Skip Windows os-prober entries on Wubi systems
2541- Since we're already being booted from the Windows boot loader, including
2542- entries that take us back to it mostly just causes confusion, and stops us
2543- from being able to hide the menu if there are no other OSes installed.
2544- .
2545- https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-wubi
2546-Author: Colin Watson <cjwatson@ubuntu.com>
2547-Forwarded: not-needed
2548-Last-Update: 2012-09-06
2549-
2550-Index: b/util/grub.d/30_os-prober.in
2551-===================================================================
2552---- a/util/grub.d/30_os-prober.in
2553-+++ b/util/grub.d/30_os-prober.in
2554-@@ -165,6 +165,8 @@
2555-
2556- used_osprober_linux_ids=
2557-
2558-+wubi=
2559-+
2560- for OS in ${OSPROBED} ; do
2561- DEVICE="`echo ${OS} | cut -d ':' -f 1`"
2562- LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
2563-@@ -180,6 +182,23 @@
2564- case ${BOOT} in
2565- chain)
2566-
2567-+ case ${LONGNAME} in
2568-+ Windows*)
2569-+ if [ -z "$wubi" ]; then
2570-+ if [ -x /usr/share/lupin-support/grub-mkimage ] && \
2571-+ /usr/share/lupin-support/grub-mkimage --test; then
2572-+ wubi=yes
2573-+ else
2574-+ wubi=no
2575-+ fi
2576-+ fi
2577-+ if [ "$wubi" = yes ]; then
2578-+ echo "Skipping ${LONGNAME} on Wubi system" >&2
2579-+ continue
2580-+ fi
2581-+ ;;
2582-+ esac
2583-+
2584- found_other_os=1
2585- onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
2586- cat << EOF
2587
2588=== added file 'debian/patches/wubi_no_windows.patch'
2589--- debian/patches/wubi_no_windows.patch 1970-01-01 00:00:00 +0000
2590+++ debian/patches/wubi_no_windows.patch 2013-10-08 00:15:07 +0000
2591@@ -0,0 +1,47 @@
2592+Description: Skip Windows os-prober entries on Wubi systems
2593+ Since we're already being booted from the Windows boot loader, including
2594+ entries that take us back to it mostly just causes confusion, and stops us
2595+ from being able to hide the menu if there are no other OSes installed.
2596+ .
2597+ https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-wubi
2598+Author: Colin Watson <cjwatson@ubuntu.com>
2599+Forwarded: not-needed
2600+Last-Update: 2013-08-13
2601+
2602+Index: b/util/grub.d/30_os-prober.in
2603+===================================================================
2604+--- a/util/grub.d/30_os-prober.in
2605++++ b/util/grub.d/30_os-prober.in
2606+@@ -112,6 +112,8 @@
2607+
2608+ used_osprober_linux_ids=
2609+
2610++wubi=
2611++
2612+ for OS in ${OSPROBED} ; do
2613+ DEVICE="`echo ${OS} | cut -d ':' -f 1`"
2614+ LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
2615+@@ -127,6 +129,23 @@
2616+ case ${BOOT} in
2617+ chain)
2618+
2619++ case ${LONGNAME} in
2620++ Windows*)
2621++ if [ -z "$wubi" ]; then
2622++ if [ -x /usr/share/lupin-support/grub-mkimage ] && \
2623++ /usr/share/lupin-support/grub-mkimage --test; then
2624++ wubi=yes
2625++ else
2626++ wubi=no
2627++ fi
2628++ fi
2629++ if [ "$wubi" = yes ]; then
2630++ echo "Skipping ${LONGNAME} on Wubi system" >&2
2631++ continue
2632++ fi
2633++ ;;
2634++ esac
2635++
2636+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
2637+ cat << EOF
2638+ menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class windows --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' {
2639
2640=== added file 'debian/po/hu.po'
2641--- debian/po/hu.po 1970-01-01 00:00:00 +0000
2642+++ debian/po/hu.po 2013-10-08 00:15:07 +0000
2643@@ -0,0 +1,411 @@
2644+# SOME DESCRIPTIVE TITLE.
2645+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2646+# This file is distributed under the same license as the PACKAGE package.
2647+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
2648+# Dr. Nagy Elemér Károly <eknagy@omikk.bme.hu>, 2013.
2649+#
2650+msgid ""
2651+msgstr ""
2652+"Project-Id-Version: grub2\n"
2653+"Report-Msgid-Bugs-To: grub2@packages.debian.org\n"
2654+"POT-Creation-Date: 2011-05-27 13:33+0100\n"
2655+"PO-Revision-Date: 2013-05-18 15:44+0200\n"
2656+"Last-Translator: Dr. Nagy Elemér Károly <eknagy@omikk.bme.hu>\n"
2657+"Language-Team: Hungarian <debian-l10n-hungarian@lists.d.o>\n"
2658+"Language: \n"
2659+"MIME-Version: 1.0\n"
2660+"Content-Type: text/plain; charset=UTF-8\n"
2661+"Content-Transfer-Encoding: UTF-8\n"
2662+"Plural-Forms: ???\n"
2663+
2664+#. Type: boolean
2665+#. Description
2666+#: ../grub-pc.templates.in:2001
2667+msgid "Chainload from menu.lst?"
2668+msgstr "Továbbtöltsünk a menu.lst-ből?"
2669+
2670+#. Type: boolean
2671+#. Description
2672+#: ../grub-pc.templates.in:2001
2673+msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub."
2674+msgstr ""
2675+"A GRUB frissítő program észlelte, hogy régi GRUB beállítás van a /boot/grub-"
2676+"ban."
2677+
2678+#. Type: boolean
2679+#. Description
2680+#: ../grub-pc.templates.in:2001
2681+msgid ""
2682+"In order to replace the Legacy version of GRUB in your system, it is "
2683+"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image "
2684+"from your existing GRUB Legacy setup. This step can be automatically "
2685+"performed now."
2686+msgstr ""
2687+"A régi GRUB lecserélése érdekében javasolt, hogy a /boot/grub/menu.lst fájlt "
2688+"úgy módosítsuk, hogy egy GRUB2 betöltőképet töltsön be a régi GRUB. Ezt "
2689+"automatikusan elvégezhetjük most."
2690+
2691+#. Type: boolean
2692+#. Description
2693+#: ../grub-pc.templates.in:2001
2694+msgid ""
2695+"It's recommended that you accept chainloading GRUB 2 from menu.lst, and "
2696+"verify that the new GRUB 2 setup works before it is written to the MBR "
2697+"(Master Boot Record)."
2698+msgstr ""
2699+"Javaslom, hogy a menu.lst-ből töltsük tovább a GRUB 2-t, és ellenőrizzük, "
2700+"hogy működik-e az új GRUB 2 beállítása, mielőtt az MBR-be (Master Boot "
2701+"Record) írnánk"
2702+
2703+#. Type: boolean
2704+#. Description
2705+#: ../grub-pc.templates.in:2001
2706+msgid ""
2707+"Whatever your decision, you can replace the old MBR image with GRUB 2 later "
2708+"by issuing the following command as root:"
2709+msgstr ""
2710+"Bárhogy is döntesz most, a régi MBR képet kicserélheted a GRUB2 "
2711+"betöltőképével, ha rendszergazdaként (root) kiadod a következő parancsot:"
2712+
2713+#. Type: multiselect
2714+#. Description
2715+#. Type: multiselect
2716+#. Description
2717+#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001
2718+msgid "GRUB install devices:"
2719+msgstr "GRUB telepítési eszközök:"
2720+
2721+#. Type: multiselect
2722+#. Description
2723+#: ../grub-pc.templates.in:3001
2724+msgid ""
2725+"The grub-pc package is being upgraded. This menu allows you to select which "
2726+"devices you'd like grub-install to be automatically run for, if any."
2727+msgstr ""
2728+"A grub-pc csomagot frissítjük. Ebben a menüben kiválaszthatod, hogy melyik "
2729+"egységekre szeretnéd automatikusan futtatni a grub-install parancsot, ha van "
2730+"ilyen."
2731+
2732+#. Type: multiselect
2733+#. Description
2734+#: ../grub-pc.templates.in:3001
2735+msgid ""
2736+"Running grub-install automatically is recommended in most situations, to "
2737+"prevent the installed GRUB core image from getting out of sync with GRUB "
2738+"modules or grub.cfg."
2739+msgstr ""
2740+"A grub-install automatikus futtatása erősen javasolt a legtöbb esetben, mert "
2741+"megakadályozza, hogy a GRUB töltőkép más verziójú legyen, mint a GRUB "
2742+"modulok vagy a grub.cfg fájl."
2743+
2744+#. Type: multiselect
2745+#. Description
2746+#. Type: multiselect
2747+#. Description
2748+#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001
2749+msgid ""
2750+"If you're unsure which drive is designated as boot drive by your BIOS, it is "
2751+"often a good idea to install GRUB to all of them."
2752+msgstr ""
2753+"Ha nem vagy benne biztos, hogy melyik meghajtó van rendszerlemeznek "
2754+"beállítva a BIOS-ban, jó ötlet lehet mindegyikre feltelepíteni a GRUB-ot."
2755+
2756+#. Type: multiselect
2757+#. Description
2758+#. Type: multiselect
2759+#. Description
2760+#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001
2761+msgid ""
2762+"Note: it is possible to install GRUB to partition boot records as well, and "
2763+"some appropriate partitions are offered here. However, this forces GRUB to "
2764+"use the blocklist mechanism, which makes it less reliable, and therefore is "
2765+"not recommended."
2766+msgstr ""
2767+"Megjegyzés: A GRUB-ot nemcsak lemez, de partíció rendszerbetöltő részére is "
2768+"lehet telepíteni, és ha van erre alkalmas partíció, azt is felkínáljuk itt. "
2769+"Mivel azonban így a GRUB kénytelen a blokklista módszert (blocklist) "
2770+"alkalmazni, amely kevésbé megbízható, így ez nem javasolt."
2771+
2772+#. Type: multiselect
2773+#. Description
2774+#: ../grub-pc.templates.in:4001
2775+msgid ""
2776+"The GRUB boot loader was previously installed to a disk that is no longer "
2777+"present, or whose unique identifier has changed for some reason. It is "
2778+"important to make sure that the installed GRUB core image stays in sync with "
2779+"GRUB modules and grub.cfg. Please check again to make sure that GRUB is "
2780+"written to the appropriate boot devices."
2781+msgstr ""
2782+"A GRUB rendszerbetöltő korábban egy olyan lemezre volt telepítve, amely "
2783+"hiányzik vagy amelynek megváltozott az egyedi azonosítója. Fontos, hogy "
2784+"biztosítsuk, hogy a GRUB töltőkép ugyanolyan verziójú legyen, mint a GRUB "
2785+"modulok és a grub.cfg. Kérlek ellenőrizd még egyszer hogy biztosan a "
2786+"megfelelő eszközre írjuk a GRUB-ot."
2787+
2788+#. Type: text
2789+#. Description
2790+#. Disk sizes are in decimal megabytes, to match how disk manufacturers
2791+#. usually describe them.
2792+#: ../grub-pc.templates.in:5001
2793+msgid "${DEVICE} (${SIZE} MB; ${MODEL})"
2794+msgstr "${DEVICE} (${SIZE} MB; ${MODEL})"
2795+
2796+#. Type: text
2797+#. Description
2798+#. The "-" is used to indicate indentation. Leading spaces may not work.
2799+#: ../grub-pc.templates.in:6001
2800+msgid "- ${DEVICE} (${SIZE} MB; ${PATH})"
2801+msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})"
2802+
2803+#. Type: boolean
2804+#. Description
2805+#: ../grub-pc.templates.in:7001
2806+msgid "Writing GRUB to boot device failed - continue?"
2807+msgstr "Nem sikerül a GRUB-ot a rendszerlemezre írni - folytassuk?"
2808+
2809+#. Type: boolean
2810+#. Description
2811+#. Type: boolean
2812+#. Description
2813+#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001
2814+msgid "GRUB failed to install to the following devices:"
2815+msgstr "Nem sikerült a GRUB-ot a következő eszközökre telepíteni:"
2816+
2817+#. Type: boolean
2818+#. Description
2819+#: ../grub-pc.templates.in:7001
2820+msgid ""
2821+"Do you want to continue anyway? If you do, your computer may not start up "
2822+"properly."
2823+msgstr ""
2824+"Ennek ellenére folytatni akarod? Ha folytatod, lehet, hogy a számítógéped "
2825+"nem fog elindulni."
2826+
2827+#. Type: boolean
2828+#. Description
2829+#: ../grub-pc.templates.in:8001
2830+msgid "Writing GRUB to boot device failed - try again?"
2831+msgstr "Nem sikerül a GRUB-ot a rendszerlemezre írni - megpróbáljuk újra?"
2832+
2833+#. Type: boolean
2834+#. Description
2835+#: ../grub-pc.templates.in:8001
2836+msgid ""
2837+"You may be able to install GRUB to some other device, although you should "
2838+"check that your system will boot from that device. Otherwise, the upgrade "
2839+"from GRUB Legacy will be canceled."
2840+msgstr ""
2841+"Megpróbálhatod egy másik eszközre telepíteni a GRUB-ot, de ehhez célszerű "
2842+"ellenőrizni, hogy az adott eszközről el tud-e indulni a rendszer. Egyébként "
2843+"a régi GRUB frissítését visszavonjuk."
2844+
2845+#. Type: boolean
2846+#. Description
2847+#: ../grub-pc.templates.in:9001
2848+msgid "Continue without installing GRUB?"
2849+msgstr "GRUB telepítése nélkül folytassuk:"
2850+
2851+#. Type: boolean
2852+#. Description
2853+#: ../grub-pc.templates.in:9001
2854+msgid ""
2855+"You chose not to install GRUB to any devices. If you continue, the boot "
2856+"loader may not be properly configured, and when this computer next starts up "
2857+"it will use whatever was previously in the boot sector. If there is an "
2858+"earlier version of GRUB 2 in the boot sector, it may be unable to load "
2859+"modules or handle the current configuration file."
2860+msgstr ""
2861+"Úgy döntöttél, hogy ne telepítsük a GRUB-ot egyetlen eszközre sem. Ha "
2862+"folytatod, lehet, hogy nem lesz jól beállítva a rendszerbetöltőd és a "
2863+"számítógéped következő indulásakor az fog elindulni, ami korábban a "
2864+"rendszerbetöltő szektorban volt. Ha ebben a GRUB 2 egy régebbi verziója van, "
2865+"lehet, hogy nem tudja majd betölteni a moduljait vagy nem lesz képes "
2866+"értelmezni a jelenlegi konfigurációs fájlt."
2867+
2868+#. Type: boolean
2869+#. Description
2870+#: ../grub-pc.templates.in:9001
2871+msgid ""
2872+"If you are already using a different boot loader and want to carry on doing "
2873+"so, or if this is a special environment where you do not need a boot loader, "
2874+"then you should continue anyway. Otherwise, you should install GRUB "
2875+"somewhere."
2876+msgstr ""
2877+"Ha már egy másik rendszerbetöltőt használsz és annál maradnál, vagy ha olyan "
2878+"különleges környezetben dolgozol, ahol nincs szükséged rendszerbetöltőre, "
2879+"folytathatod. Minden más esetben valahová telepítened kellene a GRUB-ot."
2880+
2881+#. Type: boolean
2882+#. Description
2883+#: ../grub-pc.templates.in:10001
2884+msgid "Remove GRUB 2 from /boot/grub?"
2885+msgstr "Kiszedjem a GRUB 2-t a /boot/grub-ból?"
2886+
2887+#. Type: boolean
2888+#. Description
2889+#: ../grub-pc.templates.in:10001
2890+msgid "Do you want to have all GRUB 2 files removed from /boot/grub?"
2891+msgstr "Azt szeretnéd, hogy minden GRUB 2 fájlt kiszedjek a /boot/grub-ból?"
2892+
2893+#. Type: boolean
2894+#. Description
2895+#: ../grub-pc.templates.in:10001
2896+msgid ""
2897+"This will make the system unbootable unless another boot loader is installed."
2898+msgstr ""
2899+"Ezzel a rendszert indulásra képtelen állapotba hozod, hacsak nem telepítesz "
2900+"másik rendszerbetöltőt."
2901+
2902+#. Type: boolean
2903+#. Description
2904+#: ../grub-pc.templates.in:11001
2905+msgid "Finish conversion to GRUB 2 now?"
2906+msgstr "Befejezed most az átállást a GRUB 2-re?"
2907+
2908+#. Type: boolean
2909+#. Description
2910+#: ../grub-pc.templates.in:11001
2911+msgid ""
2912+"This system still has files from the GRUB Legacy boot loader installed, but "
2913+"it now also has GRUB 2 boot records installed on these disks:"
2914+msgstr ""
2915+"Ezen a rendszeren még mindig vannak a régi GRUB rendszerbetöltőhöz tartozó "
2916+"fájlok, de a következő lemezeken már a GRUB 2 rendszerbetöltő van telepítve:"
2917+
2918+#. Type: boolean
2919+#. Description
2920+#: ../grub-pc.templates.in:11001
2921+msgid ""
2922+"It seems likely that GRUB Legacy is no longer in use, and that you should "
2923+"instead upgrade the GRUB 2 images on these disks and finish the conversion "
2924+"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these "
2925+"GRUB 2 images, then they may be incompatible with the new packages and cause "
2926+"your system to stop booting properly."
2927+msgstr ""
2928+"Úgy tűnik, hogy a régi GRUB már nincs használatban és hogy jobb lenne, ha a "
2929+"GRUB 2 betöltőképekre frissítenénk ezeket a lemezeket és ha a régi GRUB "
2930+"fájlok eltávolításával befejeznénk az áttérést a GRUB 2-re. Ha nem frissíted "
2931+"ezeket a GRUB2 betöltőképeket, akkor inkompatibilisek lehetnek az új "
2932+"csomagokkal és lehet, hogy nem fog elindulni a rendszer."
2933+
2934+#. Type: boolean
2935+#. Description
2936+#: ../grub-pc.templates.in:11001
2937+msgid ""
2938+"You should generally finish the conversion to GRUB 2 unless these boot "
2939+"records were created by a GRUB 2 installation on some other operating system."
2940+msgstr ""
2941+"Általában célszerű befejezni a GRUB 2-re áttérést, kivéve ha ezek a "
2942+"rendszerbetöltő rekordok egy másik operációs rendszeren futó GRUB 2 "
2943+"telepítéssel készültek."
2944+
2945+#. Type: string
2946+#. Description
2947+#: ../templates.in:1001
2948+msgid "Linux command line:"
2949+msgstr "Linux parancssor:"
2950+
2951+#. Type: string
2952+#. Description
2953+#: ../templates.in:1001
2954+msgid ""
2955+"The following Linux command line was extracted from /etc/default/grub or the "
2956+"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is "
2957+"correct, and modify it if necessary. The command line is allowed to be empty."
2958+msgstr ""
2959+"A következő Linux parancssor az /etc/default/grub vagy a régi GRUB menu.lst "
2960+"fájljában lévő `kopt' paraméterből származik. Kérlek ellenőrizd, hogy helyes-"
2961+"e, és módosítsd, ha szükséges. A parancssor lehet üres is."
2962+
2963+#. Type: string
2964+#. Description
2965+#: ../templates.in:2001
2966+msgid "Linux default command line:"
2967+msgstr "Az alapértelmezett Linux parancssor:"
2968+
2969+#. Type: string
2970+#. Description
2971+#: ../templates.in:2001
2972+msgid ""
2973+"The following string will be used as Linux parameters for the default menu "
2974+"entry but not for the recovery mode."
2975+msgstr ""
2976+"A következő sort fogjuk Linux paraméternek használni az alapértelmezett "
2977+"(default) menüben, de a rendszervisszaállító (recovery) módban nem."
2978+
2979+#. Type: string
2980+#. Description
2981+#: ../templates.in:3001
2982+msgid "kFreeBSD command line:"
2983+msgstr "kFreeBSD parancssor:"
2984+
2985+#. Type: string
2986+#. Description
2987+#: ../templates.in:3001
2988+msgid ""
2989+"The following kFreeBSD command line was extracted from /etc/default/grub or "
2990+"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is "
2991+"correct, and modify it if necessary. The command line is allowed to be empty."
2992+msgstr ""
2993+"A következő kFreeBSD parancssor az /etc/default/grub vagy a régi GRUB menu."
2994+"lst fájljában lévő `kopt' paraméterből származik. Kérlek ellenőrizd, hogy "
2995+"helyes-e, és módosítsd, ha szükséges. A parancssor lehet üres is."
2996+
2997+#. Type: string
2998+#. Description
2999+#: ../templates.in:4001
3000+msgid "kFreeBSD default command line:"
3001+msgstr "Az alapértelmezett kFreeBSD parancssor:"
3002+
3003+#. Type: string
3004+#. Description
3005+#: ../templates.in:4001
3006+msgid ""
3007+"The following string will be used as kFreeBSD parameters for the default "
3008+"menu entry but not for the recovery mode."
3009+msgstr ""
3010+"A következő sort fogjuk kFreeBSD paraméternek használni az alapértelmezett "
3011+"(default) menüben, de a rendszervisszaállító (recovery) módban nem."
3012+
3013+#. Type: note
3014+#. Description
3015+#: ../templates.in:5001
3016+msgid "/boot/grub/device.map has been regenerated"
3017+msgstr "A /boot/grub/device.map fájlt újraépítettem."
3018+
3019+#. Type: note
3020+#. Description
3021+#: ../templates.in:5001
3022+msgid ""
3023+"The file /boot/grub/device.map has been rewritten to use stable device "
3024+"names. In most cases, this should significantly reduce the need to change it "
3025+"in future, and boot menu entries generated by GRUB should not be affected."
3026+msgstr ""
3027+"A /boot/grub/device.map fájlt újraírtam, így már stabil eszköznevek "
3028+"szerepelnek benn. A legtöbb esetben ez jelentősen csökkenti a szükséges "
3029+"változtatások számát a jövőben, és a GRUB által készített menüpontoknak "
3030+"ettől nem kéne megváltozniuk változniuk."
3031+
3032+#. Type: note
3033+#. Description
3034+#: ../templates.in:5001
3035+msgid ""
3036+"However, since more than one disk is present in the system, it is possible "
3037+"that the system is depending on the old device map. Please check whether "
3038+"there are any custom boot menu entries that rely on GRUB's (hdN) drive "
3039+"numbering, and update them if necessary."
3040+msgstr ""
3041+"Mivel azonban egynél több lemez van a rendszervben, lehetséges, hogy a "
3042+"rendszernek szüksége van a régi eszköztérképre. Kérelk ellenőrizd, hogy van-"
3043+"e olyan saját készítésű rendszerbetöltő menüpontod amelyik a GRUB (hdN) "
3044+"eszközszámozását használja, és frissítsd, ha szükséges."
3045+
3046+#. Type: note
3047+#. Description
3048+#: ../templates.in:5001
3049+msgid ""
3050+"If you do not understand this message, or if there are no custom boot menu "
3051+"entries, you can ignore this message."
3052+msgstr ""
3053+"Ha nem érted ezt az üzenetet, vagy ha nem csináltal saját készítésű "
3054+"rendszerbetöltő menüpontot, ne is törődj vele, lépj tovább."
3055
3056=== modified file 'debian/postinst.in'
3057--- debian/postinst.in 2013-01-29 05:52:31 +0000
3058+++ debian/postinst.in 2013-10-08 00:15:07 +0000
3059@@ -284,11 +284,10 @@
3060 {
3061 for x in /etc/default/grub /etc/default/grub.d/*.cfg; do
3062 if [ -e "$x" ]; then
3063- DEFAULT_FOUND="yes"
3064 . "$x"
3065 fi
3066 done
3067- if [ "$DEFAULT_FOUND" = "yes" ]; then
3068+ if [ "$(eval echo "\${$1+set}")" = set ]; then
3069 eval echo "\$$1"
3070 else
3071 return
3072@@ -697,7 +696,7 @@
3073 ;;
3074
3075 grub-yeeloong)
3076- grub-install
3077+ grub-install --target=mipsel-loongson
3078 ;;
3079 esac
3080
3081
3082=== modified file 'debian/rules'
3083--- debian/rules 2013-02-01 17:45:21 +0000
3084+++ debian/rules 2013-10-08 00:15:07 +0000
3085@@ -35,7 +35,7 @@
3086
3087 confflags = PACKAGE_VERSION="$(deb_version)" PACKAGE_STRING="GRUB $(deb_version)" CC=$(CC) TARGET_CC=$(CC) --enable-grub-mkfont
3088
3089-AUTOGEN_DEB_FILES = config templates preinst postinst postrm dirs install links
3090+AUTOGEN_DEB_FILES = config templates preinst postinst postrm dirs install links maintscript
3091
3092 BUILD_PACKAGES := $(strip $(shell dh_listpackages))
3093 REAL_PACKAGES = grub-emu grub-pc grub-coreboot grub-efi-ia32 grub-efi-amd64 grub-efi-ia64 grub-ieee1275 grub-firmware-qemu grub-yeeloong
3094@@ -54,10 +54,20 @@
3095
3096 ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
3097 DEFAULT_CMDLINE := quiet splash
3098+confflags += --enable-quiet-boot
3099 else
3100 DEFAULT_CMDLINE := quiet
3101 endif
3102
3103+SB_PACKAGE :=
3104+ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
3105+ifeq ($(DEB_HOST_ARCH),amd64)
3106+SB_PACKAGE := grub-efi-amd64
3107+SB_PLATFORM := x86_64-efi
3108+SB_EFI_NAME := x64
3109+endif
3110+endif
3111+
3112 %:
3113 dh $@ --parallel
3114
3115@@ -325,6 +335,9 @@
3116 override_dh_installinit:
3117 dh_installinit -- start 99 2 3 4 5 .
3118
3119+override_dh_bugfiles:
3120+ dh_bugfiles -A
3121+
3122 override_dh_strip:
3123 dh_strip -X/usr/bin/grub-emu
3124
3125@@ -344,19 +357,17 @@
3126
3127 override_dh_builddeb:
3128 dh_builddeb -- -Zxz
3129-ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
3130-ifeq ($(DEB_HOST_ARCH),amd64)
3131+ifneq (,$(SB_PACKAGE))
3132 debian/build-efi-images \
3133 build/grub-$(COMMON_PLATFORM)/grub-mkimage \
3134- build/grub-efi-amd64/grub-core \
3135+ build/$(SB_PACKAGE)/grub-core \
3136 debian/grub2-images/$(deb_version) \
3137- x86_64-efi x64
3138+ $(SB_PLATFORM) $(SB_EFI_NAME)
3139 echo $(deb_version) \
3140 > debian/grub2-images/$(deb_version)/version
3141 cd debian/grub2-images && tar czvf ../../../$(TARNAME) .
3142 dpkg-distaddfile $(TARNAME) raw-uefi -
3143 endif
3144-endif
3145
3146 override_dh_auto_clean:
3147 -rm -rf build
3148@@ -366,17 +377,15 @@
3149 dh_autoreconf_clean
3150 dh_clean
3151
3152- chmod +x debian/{script,grub.d/*,legacy/*,kernel/*}
3153+ chmod +x debian/{bug-script,grub.d/*,legacy/*,kernel/*}
3154
3155 for i in $(AUTOGEN_DEB_FILES) ; do \
3156 rm -f debian/grub-{pc,efi-*,ieee1275,coreboot,yeeloong,emu}{,-bin,-dbg}.$$i ; \
3157 done
3158 rm -rf debian/tmp-*/
3159-ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
3160-ifeq ($(DEB_HOST_ARCH),amd64)
3161+ifneq (,$(SB_PACKAGE))
3162 rm -rf debian/grub2-images
3163 endif
3164-endif
3165
3166 # make sure PO files are always up-to-date
3167 debconf-updatepo
3168
3169=== modified file 'docs/grub-dev.texi'
3170--- docs/grub-dev.texi 2012-05-22 07:15:28 +0000
3171+++ docs/grub-dev.texi 2013-10-08 00:15:07 +0000
3172@@ -1394,8 +1394,8 @@
3173
3174 @node Bitmap API
3175 @section Bitmap API
3176-@itemize
3177 @subsection grub_video_bitmap_create
3178+@itemize
3179 @item Prototype:
3180 @example
3181 grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap, unsigned int width, unsigned int height, enum grub_video_blit_format blit_format)
3182
3183=== modified file 'grub-core/boot/i386/pc/boot.S'
3184--- grub-core/boot/i386/pc/boot.S 2012-09-07 12:39:02 +0000
3185+++ grub-core/boot/i386/pc/boot.S 2013-10-08 00:15:07 +0000
3186@@ -18,8 +18,10 @@
3187 */
3188
3189 #include <grub/symbol.h>
3190+#include <grub/machine/boot.h>
3191+#ifdef QUIET_BOOT
3192 #include <grub/machine/memory.h>
3193-#include <grub/machine/boot.h>
3194+#endif
3195
3196 /*
3197 * defines for the code go here
3198@@ -151,10 +153,12 @@
3199 /* save drive reference first thing! */
3200 pushw %dx
3201
3202+#ifdef QUIET_BOOT
3203 /* is either shift key held down? */
3204 movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx
3205 andb $3, (%bx)
3206 jz 2f
3207+#endif
3208
3209 /* print a notification message on the screen */
3210 MSG(notification_string)
3211
3212=== modified file 'grub-core/boot/i386/pc/diskboot.S'
3213--- grub-core/boot/i386/pc/diskboot.S 2012-09-07 12:39:02 +0000
3214+++ grub-core/boot/i386/pc/diskboot.S 2013-10-08 00:15:07 +0000
3215@@ -17,15 +17,22 @@
3216 */
3217
3218 #include <grub/symbol.h>
3219+#include <grub/machine/boot.h>
3220+#ifdef QUIET_BOOT
3221 #include <grub/machine/memory.h>
3222-#include <grub/machine/boot.h>
3223+#endif
3224
3225 /*
3226 * defines for the code go here
3227 */
3228
3229 #define MSG(x) movw $x, %si; call LOCAL(message)
3230+
3231+#ifdef QUIET_BOOT
3232 #define SILENT(x) call LOCAL(check_silent); jz LOCAL(x)
3233+#else
3234+#define SILENT(x)
3235+#endif
3236
3237 .file "diskboot.S"
3238
3239@@ -331,11 +338,13 @@
3240 /* go here when you need to stop the machine hard after an error condition */
3241 LOCAL(stop): jmp LOCAL(stop)
3242
3243+#ifdef QUIET_BOOT
3244 LOCAL(check_silent):
3245 /* is either shift key held down? */
3246 movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx
3247 andb $3, (%bx)
3248 ret
3249+#endif
3250
3251 notification_string: .asciz "loading"
3252
3253
3254=== modified file 'grub-core/disk/efi/efidisk.c'
3255--- grub-core/disk/efi/efidisk.c 2012-06-09 08:43:24 +0000
3256+++ grub-core/disk/efi/efidisk.c 2013-10-08 00:15:07 +0000
3257@@ -668,9 +668,11 @@
3258 && (GRUB_EFI_DEVICE_PATH_SUBTYPE (c->last_device_path)
3259 == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
3260 && (grub_partition_get_start (disk->partition)
3261- == hd.partition_start)
3262+ == (hd.partition_start << (disk->log_sector_size
3263+ - GRUB_DISK_SECTOR_BITS)))
3264 && (grub_partition_get_len (disk->partition)
3265- == hd.partition_size))
3266+ == (hd.partition_size << (disk->log_sector_size
3267+ - GRUB_DISK_SECTOR_BITS))))
3268 {
3269 handle = c->handle;
3270 return 1;
3271@@ -763,11 +765,14 @@
3272 auto int find_partition (grub_disk_t disk, const grub_partition_t part);
3273
3274 /* Find the identical partition. */
3275- int find_partition (grub_disk_t disk __attribute__ ((unused)),
3276- const grub_partition_t part)
3277+ int find_partition (grub_disk_t disk, const grub_partition_t part)
3278 {
3279- if (grub_partition_get_start (part) == hd.partition_start
3280- && grub_partition_get_len (part) == hd.partition_size)
3281+ if (grub_partition_get_start (part)
3282+ == (hd.partition_start << (disk->log_sector_size
3283+ - GRUB_DISK_SECTOR_BITS))
3284+ && grub_partition_get_len (part)
3285+ == (hd.partition_size << (disk->log_sector_size
3286+ - GRUB_DISK_SECTOR_BITS)))
3287 {
3288 partition_name = grub_partition_get_name (part);
3289 return 1;
3290@@ -799,7 +804,9 @@
3291 /* Find a partition which matches the hard drive device path. */
3292 grub_memcpy (&hd, ldp, sizeof (hd));
3293 if (hd.partition_start == 0
3294- && hd.partition_size == grub_disk_get_size (parent))
3295+ && (hd.partition_size << (parent->log_sector_size
3296+ - GRUB_DISK_SECTOR_BITS))
3297+ == grub_disk_get_size (parent))
3298 {
3299 dev_name = grub_strdup (parent->name);
3300 }
3301
3302=== modified file 'grub-core/kern/main.c'
3303--- grub-core/kern/main.c 2012-09-07 12:39:02 +0000
3304+++ grub-core/kern/main.c 2013-10-08 00:15:07 +0000
3305@@ -207,14 +207,23 @@
3306 void __attribute__ ((noreturn))
3307 grub_main (void)
3308 {
3309+#ifdef QUIET_BOOT
3310 struct grub_term_output *term;
3311+#endif
3312
3313 /* First of all, initialize the machine. */
3314 grub_machine_init ();
3315
3316+#ifdef QUIET_BOOT
3317 /* Disable the cursor until we need it. */
3318 FOR_ACTIVE_TERM_OUTPUTS(term)
3319 grub_term_setcursor (term, 0);
3320+#else
3321+ /* Hello. */
3322+ grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT);
3323+ grub_printf ("Welcome to GRUB!\n\n");
3324+ grub_setcolorstate (GRUB_TERM_COLOR_STANDARD);
3325+#endif
3326
3327 /* Load pre-loaded modules and free the space. */
3328 grub_register_exported_symbols ();
3329@@ -234,9 +243,11 @@
3330 grub_load_config ();
3331 grub_load_normal_mode ();
3332
3333+#ifdef QUIET_BOOT
3334 /* If we have to enter rescue mode, enable the cursor again. */
3335 FOR_ACTIVE_TERM_OUTPUTS(term)
3336 grub_term_setcursor (term, 1);
3337+#endif
3338
3339 grub_rescue_run ();
3340 }
3341
3342=== modified file 'grub-core/kern/rescue_reader.c'
3343--- grub-core/kern/rescue_reader.c 2012-09-07 12:39:02 +0000
3344+++ grub-core/kern/rescue_reader.c 2013-10-08 00:15:07 +0000
3345@@ -77,6 +77,10 @@
3346 void __attribute__ ((noreturn))
3347 grub_rescue_run (void)
3348 {
3349+#ifdef QUIET_BOOT
3350+ grub_printf ("Entering rescue mode...\n");
3351+#endif
3352+
3353 while (1)
3354 {
3355 char *line;
3356
3357=== modified file 'grub-core/normal/main.c'
3358--- grub-core/normal/main.c 2012-09-07 12:39:02 +0000
3359+++ grub-core/normal/main.c 2013-10-08 00:15:07 +0000
3360@@ -399,6 +399,7 @@
3361 grub_normal_read_line_real (char **line, int cont, int nested)
3362 {
3363 const char *prompt;
3364+#ifdef QUIET_BOOT
3365 static int displayed_intro;
3366
3367 if (! displayed_intro)
3368@@ -406,6 +407,7 @@
3369 grub_normal_reader_init (nested);
3370 displayed_intro = 1;
3371 }
3372+#endif
3373
3374 if (cont)
3375 /* TRANSLATORS: it's command line prompt. */
3376@@ -453,6 +455,10 @@
3377 return;
3378 }
3379
3380+#ifndef QUIET_BOOT
3381+ grub_normal_reader_init (nested);
3382+#endif
3383+
3384 while (1)
3385 {
3386 char *line;
3387
3388=== modified file 'grub-core/normal/menu.c'
3389--- grub-core/normal/menu.c 2012-09-07 12:39:02 +0000
3390+++ grub-core/normal/menu.c 2013-10-08 00:15:07 +0000
3391@@ -669,9 +669,18 @@
3392
3393 /* Callback invoked immediately before a menu entry is executed. */
3394 static void
3395-notify_booting (grub_menu_entry_t entry __attribute__((unused)),
3396+notify_booting (grub_menu_entry_t entry
3397+#ifdef QUIET_BOOT
3398+ __attribute__((unused))
3399+#endif
3400+ ,
3401 void *userdata __attribute__((unused)))
3402 {
3403+#ifndef QUIET_BOOT
3404+ grub_printf (" ");
3405+ grub_printf_ (N_("Booting `%s'"), entry->title);
3406+ grub_printf ("\n\n");
3407+#endif
3408 }
3409
3410 /* Callback invoked when a default menu entry executed because of a timeout
3411@@ -719,7 +728,9 @@
3412 int boot_entry;
3413 grub_menu_entry_t e;
3414 int auto_boot;
3415+#ifdef QUIET_BOOT
3416 int initial_timeout = grub_menu_get_timeout ();
3417+#endif
3418
3419 boot_entry = run_menu (menu, nested, &auto_boot);
3420 if (boot_entry < 0)
3421@@ -729,8 +740,10 @@
3422 if (! e)
3423 continue; /* Menu is empty. */
3424
3425+#ifdef QUIET_BOOT
3426 /* Only clear the screen if we drew the menu in the first place. */
3427 if (initial_timeout != 0)
3428+#endif
3429 grub_cls ();
3430
3431 if (auto_boot)
3432
3433=== added file 'tests/grub_script_no_commands.in'
3434--- tests/grub_script_no_commands.in 1970-01-01 00:00:00 +0000
3435+++ tests/grub_script_no_commands.in 2013-10-08 00:15:07 +0000
3436@@ -0,0 +1,21 @@
3437+#! /bin/sh
3438+set -e
3439+
3440+# grub-script-check refuses to pass a file with no commands; this usually
3441+# indicates a bug in the code generating that file.
3442+
3443+@builddir@/grub-script-check <<EOF && exit 1
3444+
3445+EOF
3446+
3447+@builddir@/grub-script-check <<EOF && exit 1
3448+# comment
3449+EOF
3450+
3451+@builddir@/grub-script-check <<EOF && exit 1
3452+# comment 1
3453+# comment 2
3454+
3455+EOF
3456+
3457+exit 0
3458
3459=== modified file 'util/deviceiter.c'
3460--- util/deviceiter.c 2012-09-05 13:02:04 +0000
3461+++ util/deviceiter.c 2013-10-08 00:15:07 +0000
3462@@ -913,7 +913,7 @@
3463 dmraid_check (node_name, "dm_tree_node_get_name failed\n");
3464 node_uuid = dm_tree_node_get_uuid (second);
3465 dmraid_check (node_uuid, "dm_tree_node_get_uuid failed\n");
3466- if (strncmp (node_uuid, "DMRAID-", 7) != 0)
3467+ if (strstr (node_uuid, "DMRAID-") == 0)
3468 {
3469 grub_dprintf ("deviceiter", "%s is not DM-RAID\n", node_name);
3470 goto dmraid_next_child;
3471
3472=== modified file 'util/getroot.c'
3473--- util/getroot.c 2012-09-26 16:27:19 +0000
3474+++ util/getroot.c 2013-10-08 00:15:07 +0000
3475@@ -2322,6 +2322,7 @@
3476 grub_util_warn
3477 (_("disk does not exist, so falling back to partition device %s"),
3478 os_dev);
3479+ grub_errno = GRUB_ERR_NONE;
3480
3481 canon = canonicalize_file_name (os_dev);
3482 drive = find_system_device (canon ? : os_dev, &st, 0, 1);
3483
3484=== modified file 'util/grub-install.in'
3485--- util/grub-install.in 2013-02-01 17:45:21 +0000
3486+++ util/grub-install.in 2013-10-08 00:15:07 +0000
3487@@ -63,12 +63,7 @@
3488
3489 removable=no
3490 efi_quiet=
3491-sb_var=/sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data
3492-if [ -e "$sb_var" ] && [ "$(printf %x \'"$(cat "$sb_var")")" = 1 ]; then
3493- uefi_secure_boot=yes
3494-else
3495- uefi_secure_boot=no
3496-fi
3497+uefi_secure_boot=yes
3498
3499 # Get GRUB_DISTRIBUTOR.
3500 if test -f "${sysconfdir}/default/grub" ; then
3501@@ -368,6 +363,9 @@
3502
3503 if test "x$grub_setup" = x && [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-pc" ]; then
3504 grub_setup="${sbindir}/`echo grub-bios-setup | sed ${transform}`"
3505+ if [ ! -e "$grub_setup" ]; then
3506+ grub_setup="${source_dir}/`echo grub-bios-setup | sed ${transform}`"
3507+ fi
3508 fi
3509
3510 if test "x$grub_setup" = x && [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "sparc64-ieee1275" ]; then
3511@@ -850,10 +848,16 @@
3512 else
3513 cp "$efi_signed" "${efidir}/${efi_file}"
3514 fi
3515- if [ x"$config_opt_file" != x ]; then
3516- cp "${config_opt_file}" "${efidir}/grub.cfg"
3517- echo 'configfile $prefix/grub.cfg' >> "${efidir}/grub.cfg"
3518+ if [ x"$config_opt_file" = x ]; then
3519+ # So we have a device abstraction; we don't need to search for
3520+ # the root, but we do need to tell grub where it is.
3521+ hints="`echo "${grub_device}" | xargs "$grub_probe" --device-map="${device_map}" --target=efi_hints --device`"
3522+ echo "set root=$hints" >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
3523+ echo 'set prefix=($root)'"$(echo "${relative_grubdir}" | sed "s,\\([ \"'\\\\]\\),\\\\\\1,g")" >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
3524+ config_opt_file="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
3525 fi
3526+ cp "${config_opt_file}" "${efidir}/grub.cfg"
3527+ echo 'configfile $prefix/grub.cfg' >> "${efidir}/grub.cfg"
3528 else
3529 cp "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" "${efidir}/${efi_file}"
3530 # For old macs. Suggested by Peter Jones.
3531
3532=== modified file 'util/grub-mkconfig.in'
3533--- util/grub-mkconfig.in 2013-01-03 11:40:01 +0000
3534+++ util/grub-mkconfig.in 2013-10-08 00:15:07 +0000
3535@@ -254,7 +254,7 @@
3536 # emacsen backup files. FIXME: support other editors
3537 *~) ;;
3538 # emacsen autosave files. FIXME: support other editors
3539- \#*\#) ;;
3540+ */\#*\#) ;;
3541 *)
3542 if grub_file_is_not_garbage "$i" && test -x "$i" ; then
3543 echo
3544
3545=== modified file 'util/grub-script-check.c'
3546--- util/grub-script-check.c 2012-03-06 11:02:38 +0000
3547+++ util/grub-script-check.c 2013-10-08 00:15:07 +0000
3548@@ -92,7 +92,7 @@
3549 int lineno = 0;
3550 FILE *file = 0;
3551 struct arguments arguments;
3552- int found_input = 0;
3553+ int found_input = 0, found_cmd = 0;
3554 struct grub_script *script = NULL;
3555
3556 auto grub_err_t get_config_line (char **line, int cont);
3557@@ -177,6 +177,8 @@
3558 script = grub_script_parse (input, get_config_line);
3559 if (script)
3560 {
3561+ if (script->cmd)
3562+ found_cmd = 1;
3563 grub_script_execute (script);
3564 grub_script_free (script);
3565 }
3566@@ -191,6 +193,12 @@
3567 fprintf (stderr, _("Syntax error at line %u\n"), lineno);
3568 return 1;
3569 }
3570+ if (! found_cmd)
3571+ {
3572+ fprintf (stderr, _("Script contains no commands and will do nothing\n"),
3573+ arguments.filename);
3574+ return 1;
3575+ }
3576
3577 return 0;
3578 }
3579
3580=== modified file 'util/grub.d/00_header.in'
3581--- util/grub.d/00_header.in 2012-09-07 12:39:02 +0000
3582+++ util/grub.d/00_header.in 2013-10-08 00:15:07 +0000
3583@@ -23,6 +23,7 @@
3584 exec_prefix="@exec_prefix@"
3585 datarootdir="@datarootdir@"
3586 grub_lang=`echo $LANG | cut -d . -f 1`
3587+grubdir="`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'`"
3588
3589 export TEXTDOMAIN=@PACKAGE@
3590 export TEXTDOMAINDIR="@localedir@"
3591@@ -90,7 +91,20 @@
3592
3593 function recordfail {
3594 set recordfail=1
3595+EOF
3596+FS="$(grub-probe --target=fs "${grubdir}")"
3597+case "$FS" in
3598+ btrfs | cpiofs | newc | odc | romfs | squash4 | tarfs | zfs)
3599+ cat <<EOF
3600+ # GRUB lacks write support for $FS, so recordfail support is disabled.
3601+EOF
3602+ ;;
3603+ *)
3604+ cat <<EOF
3605 if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
3606+EOF
3607+esac
3608+cat <<EOF
3609 }
3610
3611 function load_video {
3612
3613=== modified file 'util/grub.d/10_linux.in'
3614--- util/grub.d/10_linux.in 2013-02-01 17:45:21 +0000
3615+++ util/grub.d/10_linux.in 2013-10-08 00:15:07 +0000
3616@@ -20,6 +20,7 @@
3617 prefix="@prefix@"
3618 exec_prefix="@exec_prefix@"
3619 datarootdir="@datarootdir@"
3620+quiet_boot="@QUIET_BOOT@"
3621
3622 . "@datadir@/@PACKAGE@/grub-mkconfig_lib"
3623
3624@@ -31,11 +32,14 @@
3625 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
3626 OS=GNU/Linux
3627 else
3628- if [ "${GRUB_DISTRIBUTOR}" = "Ubuntu" ] ; then
3629- OS="${GRUB_DISTRIBUTOR}"
3630- else
3631- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
3632- fi
3633+ case ${GRUB_DISTRIBUTOR} in
3634+ Ubuntu|Kubuntu)
3635+ OS="${GRUB_DISTRIBUTOR}"
3636+ ;;
3637+ *)
3638+ OS="${GRUB_DISTRIBUTOR} GNU/Linux"
3639+ ;;
3640+ esac
3641 CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
3642 fi
3643
3644@@ -151,7 +155,7 @@
3645 fi
3646 printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
3647 fi
3648- if [ x$type != xsimple ]; then
3649+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
3650 message="$(gettext_printf "Loading Linux %s ..." ${version})"
3651 sed "s/^/$submenu_indentation/" << EOF
3652 echo '$(echo "$message" | grub_quote)'
3653@@ -168,7 +172,7 @@
3654 fi
3655 if test -n "${initrd}" ; then
3656 # TRANSLATORS: ramdisk isn't identifier. Should be translated.
3657- if [ x$type != xsimple ]; then
3658+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
3659 message="$(gettext_printf "Loading initial ramdisk ...")"
3660 sed "s/^/$submenu_indentation/" << EOF
3661 echo '$(echo "$message" | grub_quote)'
3662
3663=== modified file 'util/grub.d/30_os-prober.in'
3664--- util/grub.d/30_os-prober.in 2012-09-26 16:27:19 +0000
3665+++ util/grub.d/30_os-prober.in 2013-10-08 00:15:07 +0000
3666@@ -91,6 +91,11 @@
3667 exit 0
3668 fi
3669
3670+# Try to load the efivars module, in case it's needed for EFI support
3671+# to work below. Hide the errors in case it's not available, there is
3672+# no need to scare people here.
3673+modprobe efivars >/dev/null 2>&1 || true
3674+
3675 OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
3676 if [ -z "${OSPROBED}" ] ; then
3677 # empty os-prober output, nothing doing
3678@@ -222,6 +227,20 @@
3679 }
3680 EOF
3681 ;;
3682+ efi)
3683+ found_other_os=1
3684+ EFIPATH=${DEVICE#*@}
3685+ DEVICE=${DEVICE%@*}
3686+ cat << EOF
3687+menuentry "${LONGNAME} (UEFI on ${DEVICE})" --class windows --class os {
3688+EOF
3689+ save_default_entry | sed -e "s/^/\t/"
3690+ prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
3691+ cat <<EOF
3692+ chainloader ${EFIPATH}
3693+}
3694+EOF
3695+ ;;
3696 linux)
3697 LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
3698 prepare_boot_cache=

Subscribers

People subscribed via source and target branches