Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Staging:C
grub2
grub2-btrfs-05-grub2-mkconfig.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File grub2-btrfs-05-grub2-mkconfig.patch of Package grub2
--- util/grub-mkconfig.in | 3 ++- util/grub-mkconfig_lib.in | 4 ++++ util/grub.d/00_header.in | 24 +++++++++++++++++++++++- util/grub.d/10_linux.in | 11 ++++++++++- util/grub.d/20_linux_xen.in | 4 ++++ 5 files changed, 43 insertions(+), 3 deletions(-) Index: grub-2.02~rc1/util/grub-mkconfig_lib.in =================================================================== --- grub-2.02~rc1.orig/util/grub-mkconfig_lib.in +++ grub-2.02~rc1/util/grub-mkconfig_lib.in @@ -49,7 +49,11 @@ grub_warn () make_system_path_relative_to_its_root () { + if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ] ; then + "${grub_mkrelpath}" -r "$1" + else "${grub_mkrelpath}" "$1" + fi } is_path_readable_by_grub () Index: grub-2.02~rc1/util/grub.d/00_header.in =================================================================== --- grub-2.02~rc1.orig/util/grub.d/00_header.in +++ grub-2.02~rc1/util/grub.d/00_header.in @@ -27,6 +27,14 @@ export TEXTDOMAINDIR="@localedir@" . "$pkgdatadir/grub-mkconfig_lib" +if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ] && + [ "x${GRUB_FS}" = "xbtrfs" ] ; then + cat <<EOF +set btrfs_relative_path="y" +export btrfs_relative_path +EOF +fi + # Do this as early as possible, since other commands might depend on it. # (e.g. the `loadfont' command might need lvm or raid modules) for i in ${GRUB_PRELOAD_MODULES} ; do @@ -43,7 +51,9 @@ if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved if [ "x${GRUB_TIMEOUT_BUTTON}" = "x" ] ; then GRUB_TIMEOUT_BUTTON="$GRUB_TIMEOUT" ; fi cat << EOF -if [ -s \$prefix/grubenv ]; then +if [ -f \${config_directory}/grubenv ]; then + load_env -f \${config_directory}/grubenv +elif [ -s \$prefix/grubenv ]; then load_env fi @@ -394,3 +404,15 @@ fi if [ "x${GRUB_BADRAM}" != "x" ] ; then echo "badram ${GRUB_BADRAM}" fi + +if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ] && + [ "x${GRUB_FS}" = "xbtrfs" ] ; then + # Note: No $snapshot_num on *read-only* rollback! (bsc#901487) + cat <<EOF +if [ -n "\$extra_cmdline" ]; then + submenu "Bootable snapshot #\$snapshot_num" { + menuentry "If OK, run 'snapper rollback' and reboot." { true; } + } +fi +EOF +fi Index: grub-2.02~rc1/util/grub-mkconfig.in =================================================================== --- grub-2.02~rc1.orig/util/grub-mkconfig.in +++ grub-2.02~rc1/util/grub-mkconfig.in @@ -262,7 +262,8 @@ export GRUB_DEFAULT \ GRUB_OS_PROBER_SKIP_LIST \ GRUB_DISABLE_SUBMENU \ GRUB_CMDLINE_LINUX_RECOVERY \ - GRUB_USE_LINUXEFI + GRUB_USE_LINUXEFI \ + SUSE_BTRFS_SNAPSHOT_BOOTING if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" Index: grub-2.02~rc1/util/grub.d/10_linux.in =================================================================== --- grub-2.02~rc1.orig/util/grub.d/10_linux.in +++ grub-2.02~rc1/util/grub.d/10_linux.in @@ -59,10 +59,14 @@ fi case x"$GRUB_FS" in xbtrfs) + if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ]; then + GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} \${extra_cmdline}" + else rootsubvol="`make_system_path_relative_to_its_root /`" rootsubvol="${rootsubvol#/}" if [ "x${rootsubvol}" != x ]; then GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" + fi fi;; xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` @@ -238,7 +242,12 @@ while [ "x$list" != "x" ] ; do if [ $PLATFORM != "emu" ]; then hotkey=0 else - rel_dirname=$dirname + if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ] && + [ "x${GRUB_FS}" = "xbtrfs" ] ; then + rel_dirname="\${btrfs_subvol}$dirname" + else + rel_dirname="$dirname" + fi fi version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` alt_version=`echo $version | sed -e "s,\.old$,,g"` Index: grub-2.02~rc1/util/grub.d/20_linux_xen.in =================================================================== --- grub-2.02~rc1.orig/util/grub.d/20_linux_xen.in +++ grub-2.02~rc1/util/grub.d/20_linux_xen.in @@ -69,10 +69,14 @@ fi case x"$GRUB_FS" in xbtrfs) + if [ "x${SUSE_BTRFS_SNAPSHOT_BOOTING}" = "xtrue" ]; then + GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} \${extra_cmdline}" + else rootsubvol="`make_system_path_relative_to_its_root /`" rootsubvol="${rootsubvol#/}" if [ "x${rootsubvol}" != x ]; then GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" + fi fi;; xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor