Hello community, here is the log from the commit of package grub2 for openSUSE:Factory checked in at 2014-01-20 20:42:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/grub2 (Old) and /work/SRC/openSUSE:Factory/.grub2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grub2" Changes: -------- --- /work/SRC/openSUSE:Factory/grub2/grub2.changes 2014-01-10 21:19:23.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2014-01-23 15:44:46.000000000 +0100 @@ -1,0 +2,32 @@ +Fri Jan 17 06:23:04 UTC 2014 - mch...@suse.com + +- refresh 0001-script-provide-overridable-root-by-subvol.patch +* Introduce $boot_prefix for setting prefix on seeking other /boot + directory. +- refresh 0002-script-create-menus-for-btrfs-snapshot.patch +* Support existing snapshots by creating their missing slave configs. +* Temporarily default to disable this feature until receiving more + tests from QA. +* Introduce GRUB_ENABLE_CUSTOM_SNAPSHOT_SUBMENU to allow custom + submenu for listing snapshots rather than the default one. + +------------------------------------------------------------------- +Wed Jan 15 15:46:31 UTC 2014 - arvidj...@gmail.com + +- package autoiso.cfg and osdetect.cfg as documentation +- add 0001-look-for-DejaVu-also-in-usr-share-fonts-truetype.patch - + fix configure test for DejaVu font +- add dejavu-fonts to BR (needed to build starfield theme) +- package starfield theme as grub2-branding-upstream +- add grub2-use-DejaVuSansMono-for-starfield-theme.patch - use fixed width + font for starfield theme +- clarify that grub2 subpackage contains only user space tools + +------------------------------------------------------------------- +Wed Jan 15 06:18:10 UTC 2014 - mch...@suse.com + +- add new patches for booting btrfs snapshot (fate#316522) (fate#316232) + * 0001-script-provide-overridable-root-by-subvol.patch + * 0002-script-create-menus-for-btrfs-snapshot.patch + +------------------------------------------------------------------- New: ---- 0001-look-for-DejaVu-also-in-usr-share-fonts-truetype.patch 0001-script-provide-overridable-root-by-subvol.patch 0002-script-create-menus-for-btrfs-snapshot.patch grub2-use-DejaVuSansMono-for-starfield-theme.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ grub2.spec ++++++ --- /var/tmp/diff_new_pack.qcqfdW/_old 2014-01-23 15:44:47.000000000 +0100 +++ /var/tmp/diff_new_pack.qcqfdW/_new 2014-01-23 15:44:47.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package grub2 # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -29,6 +29,7 @@ %endif BuildRequires: automake BuildRequires: bison +BuildRequires: dejavu-fonts BuildRequires: device-mapper-devel BuildRequires: fdupes BuildRequires: flex @@ -125,10 +126,14 @@ Patch29: grub2-secureboot-chainloader.patch Patch34: grub2-secureboot-use-linuxefi-on-uefi-in-os-prober.patch Patch35: grub2-linguas.sh-no-rsync.patch +Patch36: 0001-look-for-DejaVu-also-in-usr-share-fonts-truetype.patch +Patch37: grub2-use-DejaVuSansMono-for-starfield-theme.patch # Btrfs snapshot booting related patches Patch101: 0002-btrfs-add-ability-to-boot-from-subvolumes.patch Patch102: 0003-cmdline-add-envvar-loader_cmdline_append.patch Patch103: 0004-btrfs-export-subvolume-envvars.patch +Patch110: 0001-script-provide-overridable-root-by-subvol.patch +Patch111: 0002-script-create-menus-for-btrfs-snapshot.patch Requires: gettext-runtime %if 0%{?suse_version} >= 1140 Requires: os-prober @@ -153,6 +158,7 @@ architecture. It support rich scale of kernel formats, file systems, computer architectures and hardware devices. +This package includes user space utlities to manage GRUB on your system. Authors: @@ -165,6 +171,15 @@ Robert Millan Carles Pina +%package branding-upstream + +Summary: Upstream branding for GRUB2's graphical console +Group: System/Fhs +Requires: %{name} = %{version}-%{release} + +%description branding-upstream +Upstream branding for GRUB2's graphical console + %package %{grubarch} Summary: Bootloader with support for Linux, Multiboot and more @@ -240,9 +255,13 @@ %patch29 -p1 %patch34 -p1 %patch35 -p1 +%patch36 -p1 +%patch37 -p1 %patch101 -p1 %patch102 -p1 %patch103 -p1 +%patch110 -p1 +%patch111 -p1 # Generate po/LINGUAS for message catalogs ... ./linguas.sh @@ -546,6 +565,7 @@ %doc COPYING NEWS README %doc THANKS TODO ChangeLog %doc README.openSUSE +%doc docs/autoiso.cfg docs/osdetect.cfg %dir /boot/%{name} %ghost /boot/%{name}/grub.cfg %{_sysconfdir}/bash_completion.d/grub @@ -583,6 +603,7 @@ %{_bindir}/%{name}-syslinux2cfg %dir %{_libdir}/%{name} %dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/themes %if 0%{?suse_version} >= 1140 %{_datadir}/%{name}/*.pf2 %endif @@ -617,6 +638,9 @@ %{_mandir}/man8/%{name}-set-default.8.* %{_mandir}/man8/%{name}-sparc64-setup.8.* +%files branding-upstream +%{_datadir}/%{name}/themes/starfield + %if ! 0%{?only_efi:1} %files %{grubarch} ++++++ 0001-look-for-DejaVu-also-in-usr-share-fonts-truetype.patch ++++++ >From 2b1fbf23b49586e414d3212544395e18b1c0b9cb Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov <arvidj...@gmail.com> Date: Sun, 12 Jan 2014 16:16:26 +0400 Subject: [PATCH] look for DejaVu also in /usr/share/fonts/truetype It is installed in this path on openSUSE. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7c5d080..e80c074 100644 --- a/configure.ac +++ b/configure.ac @@ -1375,7 +1375,7 @@ fi if test x"$starfield_excuse" = x; then for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do - for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu; do + for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu /usr/share/fonts/truetype; do if test -f "$dir/DejaVuSans.$ext"; then DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext" break 2 -- 1.8.4 ++++++ 0001-script-provide-overridable-root-by-subvol.patch ++++++ From: Michael Chang <mch...@suse.com> Subject: provide overridable root by subvol References: fate#316522, fate#316232 Patch-Mainline: no This patch provides a environment variable $subvol that can be used to override path relative to absolute root by specific $subvol. v1: Introduce $boot_prefix for setting prefix on seeking other /boot directory. Signed-off-by: Michael Chang <mch...@suse.com> Index: grub-2.02~beta2/util/grub.d/10_linux.in =================================================================== --- grub-2.02~beta2.orig/util/grub.d/10_linux.in +++ grub-2.02~beta2/util/grub.d/10_linux.in @@ -55,7 +55,9 @@ case x"$GRUB_FS" in xbtrfs) rootsubvol="`make_system_path_relative_to_its_root /`" rootsubvol="${rootsubvol#/}" - if [ "x${rootsubvol}" != x ]; then + if [ "x$overridable_root_by_subvol" = "xtrue" ]; then + GRUB_CMDLINE_LINUX="\${rootflags} ${GRUB_CMDLINE_LINUX}" + elif [ "x${rootsubvol}" != x ]; then GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" fi;; xzfs) @@ -126,17 +128,43 @@ linux_entry () fi printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" fi + + if [ "x$overridable_root_by_subvol" = "xtrue" -a "x$GRUB_FS" = "xbtrfs" ]; then + sed "s/^/$submenu_indentation/" << EOF + if [ "x\$subvol" = "x" ]; then + bootdir="${rel_dirname}" + rootdir="${rootsubvol}" + else + bootdir="\${subvol}${dirname}" + rootdir="\${subvol}" + fi + if [ "x\${rootdir}" != "x" ]; then + rootflags="rootflags=subvol=\${rootdir}" + else + rootflags="" + fi +EOF + fi + message="$(gettext_printf "Loading Linux %s ..." ${version})" if [ -d /sys/firmware/efi ] && [ "x${GRUB_USE_LINUXEFI}" = "xtrue" ]; then sed "s/^/$submenu_indentation/" << EOF echo '$message' - linuxefi ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} EOF + if [ "x$overridable_root_by_subvol" = "xtrue" -a "x$GRUB_FS" = "xbtrfs" ]; then + echo " linuxefi \${bootdir}/${basename} root=${linux_root_device_thisversion} ro ${args}" | sed "s/^/$submenu_indentation/" + else + echo " linuxefi ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}" | sed "s/^/$submenu_indentation/" + fi else sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ${args} EOF + if [ "x$overridable_root_by_subvol" = "xtrue" -a "x$GRUB_FS" = "xbtrfs" ]; then + echo " linux \${bootdir}/${basename} root=${linux_root_device_thisversion} ${args}" | sed "s/^/$submenu_indentation/" + else + echo " linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ${args}" | sed "s/^/$submenu_indentation/" + fi fi if test -n "${initrd}" ; then # TRANSLATORS: ramdisk isn't identifier. Should be translated. @@ -144,13 +172,21 @@ EOF if [ -d /sys/firmware/efi ] && [ "x${GRUB_USE_LINUXEFI}" = "xtrue" ]; then sed "s/^/$submenu_indentation/" << EOF echo '$message' - initrdefi ${rel_dirname}/${initrd} EOF + if [ "x$overridable_root_by_subvol" = "xtrue" -a "x$GRUB_FS" = "xbtrfs" ]; then + echo " initrdefi \${bootdir}/${initrd}" | sed "s/^/$submenu_indentation/" + else + echo " initrdefi ${rel_dirname}/${initrd}" | sed "s/^/$submenu_indentation/" + fi else sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - initrd ${rel_dirname}/${initrd} EOF + if [ "x$overridable_root_by_subvol" = "xtrue" -a "x$GRUB_FS" = "xbtrfs" ]; then + echo " initrd \${bootdir}/${initrd}" | sed "s/^/$submenu_indentation/" + else + echo " initrd ${rel_dirname}/${initrd}" | sed "s/^/$submenu_indentation/" + fi fi fi sed "s/^/$submenu_indentation/" << EOF @@ -161,11 +197,11 @@ EOF machine=`uname -m` case "x$machine" in xi?86 | xx86_64) - list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do + list=`for i in ${boot_prefix}/boot/vmlinuz-* ${boot_prefix}/vmlinuz-* ${boot_prefix}/boot/kernel-* ; do if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi done` ;; *) - list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do + list=`for i in ${boot_prefix}/boot/vmlinuz-* ${boot_prefix}/boot/vmlinux-* ${boot_prefix}/vmlinuz-* ${boot_prefix}/vmlinux-* ${boot_prefix}/boot/kernel-* ; do if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi done` ;; esac ++++++ 0002-script-create-menus-for-btrfs-snapshot.patch ++++++ From: Michael Chang <mch...@suse.com> Subject: create menus for btrfs snapshot References: fate#316522, fate#316232 Patch-Mainline: no This patch adds a new script that will create the menus used for booting btrfs snapshots. v1: * Support existing snapshots by creating their missing slave configs. * Temporarily default to disable this feature until receiving more tests from QA. * Introduce GRUB_ENABLE_CUSTOM_SNAPSHOT_SUBMENU to allow custom submenu for listing snapshots rather than the default one. Signed-off-by: Michael Chang <mch...@suse.com> Index: grub-2.02~beta2/Makefile.util.def =================================================================== --- grub-2.02~beta2.orig/Makefile.util.def +++ grub-2.02~beta2/Makefile.util.def @@ -509,6 +509,13 @@ script = { installdir = grubconf; }; +script = { + name = '80_btrfs_snapshot'; + common = util/grub.d/80_btrfs_snapshot.in; + installdir = grubconf; + condition = COND_HOST_LINUX; +}; + program = { mansection = 1; name = grub-mkrescue; Index: grub-2.02~beta2/util/grub-mkconfig.in =================================================================== --- grub-2.02~beta2.orig/util/grub-mkconfig.in +++ grub-2.02~beta2/util/grub-mkconfig.in @@ -250,7 +250,10 @@ export GRUB_DEFAULT \ GRUB_OS_PROBER_SKIP_LIST \ GRUB_DISABLE_SUBMENU \ GRUB_CMDLINE_LINUX_RECOVERY \ - GRUB_USE_LINUXEFI + GRUB_USE_LINUXEFI \ + GRUB_DISABLE_BOOTING_SNAPSHOT \ + GRUB_DISABLE_BOOTING_SNAPSHOT_SUBMENU \ + GRUB_ENABLE_CUSTOM_SNAPSHOT_SUBMENU if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" Index: grub-2.02~beta2/util/grub.d/80_btrfs_snapshot.in =================================================================== --- /dev/null +++ grub-2.02~beta2/util/grub.d/80_btrfs_snapshot.in @@ -0,0 +1,174 @@ +#! /bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see <http://www.gnu.org/licenses/>. + +prefix="@prefix@" +exec_prefix="@exec_prefix@" +datarootdir="@datarootdir@" + +. "${datarootdir}/grub2/grub-mkconfig_lib" + +# It's pointless to proceed if not using Btrfs +if [ "x${GRUB_FS}" != "xbtrfs" ]; then + exit 0 +fi + +# The default master/main config path looked up by core.img +master_cfg="/boot/grub2/grub.cfg" + +# The config with submenu of bootable btrfs snapshots +master_snapshot_cfg="/boot/grub2/snapshot_submenu.cfg" + +# The slave config path in btrfs snapshot that will be sourced by master config +# The menu entries in slave config will have it's root overridable by specified +# subvolume name +slave_cfg_name="snapshot_menuentry.cfg" +slave_cfg="boot/grub2/${slave_cfg_name}" + +# The current config which is being outputted by grub-mkconfig +output_cfg=`readlink /proc/$PPID/fd/1 | sed s/.new$//` + +grub_mkconfig_dir=`dirname $0` +grub_script_check="${bindir}/grub2-script-check" + +# Stockpile directory for created slave config for snapshots without it +scanned_snapshot_cfg_dir="/boot/grub2/scanned_snapshot_cfg" + +# Remove any slave config if booting snapshot gets disabled, in case it will become +# inconsistent on further updates, note this also removes master_snapshot_cfg + +# Temporarily we disable this as it is quite new and still in developing +# It's subjected to be enabled by default in future as the option name +# GRUB_DISABLE_BOOTING_SNAPSHOT suggests. So for new you'll need to explicit +# specify GRUB_DISABLE_BOOTING_SNAPSHOT=false the update the config +if [ "x${GRUB_DISABLE_BOOTING_SNAPSHOT}" != "xfalse" ]; then + rm -f "/${slave_cfg}" + rm -f "${master_snapshot_cfg}" + rm -rf "${scanned_snapshot_cfg_dir}" + exit 0 +fi + +# Only attempt to update slave config with master +if [ "x$output_cfg" = "x$master_cfg" ]; then + # Create the slave config by redirecting the standard output to it + # Output menu entries with overridable root + overridable_root_by_subvol=true ${grub_mkconfig_dir}/10_linux >"/${slave_cfg}.new" + + # Check if the config is sane to use + if ${grub_script_check} "/${slave_cfg}.new"; then + mv -f "/${slave_cfg}.new" "/${slave_cfg}" + fi + + # Scan existing snapshots to create their missing slave configs + # This should only be done once + if [ ! -d "$scanned_snapshot_cfg_dir" ]; then + + mkdir -p "$scanned_snapshot_cfg_dir" + + for snapshot in /.snapshots/*/snapshot; do + config="${snapshot}/etc/default/grub" + + bootdir="${snapshot}/boot" + outdir="${scanned_snapshot_cfg_dir}${snapshot}" + + # skip if slave config already exists in snapshot + if [ -f "${snapshot}/${slave_cfg}" ]; then + continue + fi + + ( + # source config for kernel command lines .. etc + if [ -f "$config" ]; then + . "$config" + else + # skip when no config + continue + fi + + overridable_root_by_subvol=true boot_prefix="$bootdir" ${grub_mkconfig_dir}/10_linux > "/${slave_cfg}.new" + ) + + # Check if the config is sane to use + if ${grub_script_check} "/${slave_cfg}.new"; then + mkdir -p "$outdir" + mv -f "/${slave_cfg}.new" "${outdir}/${slave_cfg_name}" + fi + done + + fi + +fi + +# Create the bootable snapshots submenus in master config, use the ${OS} to indicate +# distribution that owns these snapshots. +if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux +else + OS="${GRUB_DISTRIBUTOR}" +fi + +# Offer an option to allow disabling (built-in) snapshot submenu. It's possible to use +# any other submenu with more integrated information retrieved from certain snapshot +# utility's metadata and this option would help to get their boot menu tidy without +# submenu with duplicated purpose. +if [ "x${GRUB_DISABLE_BOOTING_SNAPSHOT_SUBMENU}" != "xtrue" ]; then + cat <<EOF +if [ -f \${config_directory}/`basename ${master_snapshot_cfg}` ]; then + source \${config_directory}/`basename ${master_snapshot_cfg}` +elif [ -z "\${config_directory}" -a -f \$prefix/`basename ${master_snapshot_cfg}` ]; then + source \$prefix/`basename ${master_snapshot_cfg}`; +fi +EOF +fi + +# Still we create the file regardless GRUB_DISABLE_BOOTING_SNAPSHOT_SUBMENU, as it +# could be source to run as a backup +# Here we search and list snapshots created by snapper by using it's convention on +# naming snapshots + +if [ "x${GRUB_ENABLE_CUSTOM_SNAPSHOT_SUBMENU}" != "xtrue" ]; then + +# Write default config if custom one not in use + cat <<EOF >"${master_snapshot_cfg}" +insmod regexp +submenu "Bootable snapshots for ${OS}" { + for x in /.snapshots/*; do + if [ -f "\$x/snapshot/${slave_cfg}" ]; then + snapshot_found=true + submenu "\$x" "\$x" { + set subvol="\$2/snapshot" + export subvol + source "\${subvol}/${slave_cfg}" + } + elif [ -f "${scanned_snapshot_cfg_dir}\$x/snapshot/${slave_cfg_name}" ]; then + snapshot_found=true + submenu "\$x" "\$x" { + set subvol="\$2/snapshot" + export subvol + source "${scanned_snapshot_cfg_dir}\${subvol}/${slave_cfg_name}" + } + fi + done + if [ x\$snapshot_found != xtrue ]; then + submenu "Not Found" {true} + fi +} +EOF + +fi + ++++++ grub2-use-DejaVuSansMono-for-starfield-theme.patch ++++++ Index: grub-2.02~beta2/configure.ac =================================================================== --- grub-2.02~beta2.orig/configure.ac +++ grub-2.02~beta2/configure.ac @@ -1376,8 +1376,8 @@ fi if test x"$starfield_excuse" = x; then for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu /usr/share/fonts/truetype; do - if test -f "$dir/DejaVuSans.$ext"; then - DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext" + if test -f "$dir/DejaVuSansMono.$ext"; then + DJVU_FONT_SOURCE="$dir/DejaVuSansMono.$ext" break 2 fi done -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org