diff --git a/20_memtest86+ b/20_memtest86+ index 2880b2a..8e77599 100644 --- a/20_memtest86+ +++ b/20_memtest86+ @@ -19,6 +19,14 @@ set -e # You should have received a copy of the GNU General Public License # along with the script. If not, see . +# WARNING WARNING WARNING WARNING WARNING WARNING WARNING +# This file is deprecated, it is going to be removed soon +# and it's functionality has been disabled. +# The package memtest86+ is going to provide a similar file. +# Until that happens, you can reenable this file by +# adding to it the execute permission. +# WARNING WARNING WARNING WARNING WARNING WARNING WARNING + . "$pkgdatadir/grub-mkconfig_lib" export TEXTDOMAIN=grub2 diff --git a/grub2-change-bash-completion-dir.patch b/grub2-change-bash-completion-dir.patch index dc3d67e..eb2b456 100644 --- a/grub2-change-bash-completion-dir.patch +++ b/grub2-change-bash-completion-dir.patch @@ -1,13 +1,859 @@ +From 9c033a0d4c8ec3e845e0b426dcacb369342beff4 Mon Sep 17 00:00:00 2001 +From: Gary Lin +Date: Mon, 29 Jan 2024 14:30:24 +0800 +Subject: [PATCH] util/bash-completion: Load scripts on demand + +There are two system directories for bash-completion scripts. One is +/usr/share/bash-completion/completions and the other is +/etc/bash_completion.d/. The 'etc' scripts are loaded in advance and +for backward compatibility while the 'usr' scripts are loaded on demand. +To load scripts on demand, it requires the corresponding script to +every command, so the main bash-completion script is split into several +subscripts for different grub commands. To share the code, the real +completion functions are still implemented in 'grub', and each +subscript sources 'grub' and invokes the corresponding function. + +Signed-off-by: Gary Lin +--- + util/bash-completion.d/Makefile.am | 114 +++++++++++++++++- + .../bash-completion.d/grub-bios-setup.bash.in | 30 +++++ + .../bash-completion.d/grub-completion.bash.in | 89 ++------------ + util/bash-completion.d/grub-editenv.bash.in | 30 +++++ + util/bash-completion.d/grub-install.bash.in | 30 +++++ + util/bash-completion.d/grub-mkconfig.bash.in | 30 +++++ + util/bash-completion.d/grub-mkfont.bash.in | 30 +++++ + util/bash-completion.d/grub-mkimage.bash.in | 30 +++++ + .../grub-mkpasswd-pbkdf2.bash.in | 30 +++++ + util/bash-completion.d/grub-mkrescue.bash.in | 30 +++++ + util/bash-completion.d/grub-probe.bash.in | 30 +++++ + util/bash-completion.d/grub-reboot.bash.in | 30 +++++ + .../grub-script-check.bash.in | 30 +++++ + .../grub-set-default.bash.in | 30 +++++ + .../grub-sparc64-setup.bash.in | 30 +++++ + 15 files changed, 510 insertions(+), 83 deletions(-) + create mode 100644 util/bash-completion.d/grub-bios-setup.bash.in + create mode 100644 util/bash-completion.d/grub-editenv.bash.in + create mode 100644 util/bash-completion.d/grub-install.bash.in + create mode 100644 util/bash-completion.d/grub-mkconfig.bash.in + create mode 100644 util/bash-completion.d/grub-mkfont.bash.in + create mode 100644 util/bash-completion.d/grub-mkimage.bash.in + create mode 100644 util/bash-completion.d/grub-mkpasswd-pbkdf2.bash.in + create mode 100644 util/bash-completion.d/grub-mkrescue.bash.in + create mode 100644 util/bash-completion.d/grub-probe.bash.in + create mode 100644 util/bash-completion.d/grub-reboot.bash.in + create mode 100644 util/bash-completion.d/grub-script-check.bash.in + create mode 100644 util/bash-completion.d/grub-set-default.bash.in + create mode 100644 util/bash-completion.d/grub-sparc64-setup.bash.in + diff --git a/util/bash-completion.d/Makefile.am b/util/bash-completion.d/Makefile.am -index 136287c..2123a3c 100644 +index 136287cf1..33fff9546 100644 --- a/util/bash-completion.d/Makefile.am +++ b/util/bash-completion.d/Makefile.am -@@ -6,7 +6,7 @@ EXTRA_DIST = $(bash_completion_source) +@@ -1,13 +1,117 @@ +- + bash_completion_source = grub-completion.bash.in + bash_completion_script = grub ++grub_bios_setup_source = grub-bios-setup.bash.in ++grub_bios_setup_script = @grub_bios_setup@ ++grub_editenv_source = grub-editenv.bash.in ++grub_editenv_script = @grub_editenv@ ++grub_install_source = grub-install.bash.in ++grub_install_script = @grub_install@ ++grub_mkconfig_source = grub-mkconfig.bash.in ++grub_mkconfig_script = @grub_mkconfig@ ++grub_mkfont_source = grub-mkfont.bash.in ++grub_mkfont_script = @grub_mkfont@ ++grub_mkimage_source = grub-mkimage.bash.in ++grub_mkimage_script = @grub_mkimage@ ++grub_mkpasswd_pbkdf2_source = grub-mkpasswd-pbkdf2.bash.in ++grub_mkpasswd_pbkdf2_script = @grub_mkpasswd_pbkdf2@ ++grub_mkrescue_source = grub-mkrescue.bash.in ++grub_mkrescue_script = @grub_mkrescue@ ++grub_probe_source = grub-probe.bash.in ++grub_probe_script = @grub_probe@ ++grub_reboot_source = grub-reboot.bash.in ++grub_reboot_script = @grub_reboot@ ++grub_script_check_source = grub-script-check.bash.in ++grub_script_check_script = @grub_script_check@ ++grub_set_default_source = grub-set-default.bash.in ++grub_set_default_script = @grub_set_default@ ++grub_sparc64_setup_source = grub-sparc64-setup.bash.in ++grub_sparc64_setup_script = @grub_sparc64_setup@ - CLEANFILES = $(bash_completion_script) config.log +-EXTRA_DIST = $(bash_completion_source) ++EXTRA_DIST = $(bash_completion_source) \ ++ $(grub_bios_setup_source) \ ++ $(grub_editenv_source) \ ++ $(grub_install_source) \ ++ $(grub_mkconfig_source) \ ++ $(grub_mkfont_source) \ ++ $(grub_mkimage_source) \ ++ $(grub_mkpasswd_pbkdf2_source) \ ++ $(grub_mkrescue_source) \ ++ $(grub_probe_source) \ ++ $(grub_reboot_source) \ ++ $(grub_script_check_source) \ ++ $(grub_set_default_source) \ ++ $(grub_sparc64_setup_source) + +-CLEANFILES = $(bash_completion_script) config.log ++CLEANFILES = $(bash_completion_script) \ ++ $(grub_bios_setup_script) \ ++ $(grub_editenv_script) \ ++ $(grub_install_script) \ ++ $(grub_mkconfig_script) \ ++ $(grub_mkfont_script) \ ++ $(grub_mkimage_script) \ ++ $(grub_mkpasswd_pbkdf2_script) \ ++ $(grub_mkrescure_script) \ ++ $(grub_probe_script) \ ++ $(grub_reboot_script) \ ++ $(grub_script_check_script) \ ++ $(grub_set_default_script) \ ++ $(grub_sparc64_setup_script) \ ++ config.log -bashcompletiondir = $(sysconfdir)/bash_completion.d -+bashcompletiondir = $(datadir)/bash-completion/completions - bashcompletion_DATA = $(bash_completion_script) +-bashcompletion_DATA = $(bash_completion_script) ++bashcompletiondir = $(datarootdir)/bash-completion/completions ++bashcompletion_DATA = $(bash_completion_script) \ ++ $(grub_bios_setup_script) \ ++ $(grub_editenv_script) \ ++ $(grub_install_script) \ ++ $(grub_mkconfig_script) \ ++ $(grub_mkfont_script) \ ++ $(grub_mkimage_script) \ ++ $(grub_mkpasswd_pbkdf2_script) \ ++ $(grub_mkrescure_script) \ ++ $(grub_probe_script) \ ++ $(grub_reboot_script) \ ++ $(grub_script_check_script) \ ++ $(grub_set_default_script) \ ++ $(grub_sparc64_setup_script) $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.status + $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_bios_setup_script): $(grub_bios_setup_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_editenv_script): $(grub_editenv_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_install_script): $(grub_install_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_mkconfig_script): $(grub_mkconfig_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_mkfont_script): $(grub_mkfont_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_mkimage_script): $(grub_mkimage_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_mkpasswd_pbkdf2_script): $(grub_mkpasswd_pbkdf2_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_mkrescue_script): $(grub_mkrescue_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_probe_script): $(grub_probe_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_reboot_script): $(grub_reboot_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_script_check_script): $(grub_script_check_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_set_default_script): $(grub_set_default_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< ++ ++$(grub_sparc64_setup_script): $(grub_sparc64_setup_source) $(top_builddir)/config.status ++ $(top_builddir)/config.status --file=$@:$< +diff --git a/util/bash-completion.d/grub-bios-setup.bash.in b/util/bash-completion.d/grub-bios-setup.bash.in +new file mode 100644 +index 000000000..2d362b5e2 +--- /dev/null ++++ b/util/bash-completion.d/grub-bios-setup.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-bios-setup@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_bios_setup () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_setup ++} ++complete -F _grub_bios_setup -o filenames @grub_bios_setup@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in +index 213ce1e57..4c88ee901 100644 +--- a/util/bash-completion.d/grub-completion.bash.in ++++ b/util/bash-completion.d/grub-completion.bash.in +@@ -150,7 +150,7 @@ __grub_list_modules () { + # + # grub-set-default & grub-reboot + # +-_grub_set_entry () { ++__grub_set_entry () { + local cur prev split=false + + COMPREPLY=() +@@ -176,21 +176,10 @@ _grub_set_entry () { + fi + } + +-__grub_set_default_program="@grub_set_default@" +-have ${__grub_set_default_program} && \ +- complete -F _grub_set_entry -o filenames ${__grub_set_default_program} +-unset __grub_set_default_program +- +-__grub_reboot_program="@grub_reboot@" +-have ${__grub_reboot_program} && \ +- complete -F _grub_set_entry -o filenames ${__grub_reboot_program} +-unset __grub_reboot_program +- +- + # + # grub-editenv + # +-_grub_editenv () { ++__grub_editenv () { + local cur prev + + COMPREPLY=() +@@ -208,16 +197,10 @@ _grub_editenv () { + create list set unset" + } + +-__grub_editenv_program="@grub_editenv@" +-have ${__grub_editenv_program} && \ +- complete -F _grub_editenv -o filenames ${__grub_editenv_program} +-unset __grub_editenv_program +- +- + # + # grub-mkconfig + # +-_grub_mkconfig () { ++__grub_mkconfig () { + local cur prev + + COMPREPLY=() +@@ -229,16 +212,11 @@ _grub_mkconfig () { + _filedir + fi + } +-__grub_mkconfig_program="@grub_mkconfig@" +-have ${__grub_mkconfig_program} && \ +- complete -F _grub_mkconfig -o filenames ${__grub_mkconfig_program} +-unset __grub_mkconfig_program +- + + # + # grub-setup + # +-_grub_setup () { ++__grub_setup () { + local cur prev split=false + + COMPREPLY=() +@@ -264,21 +242,10 @@ _grub_setup () { + fi + } + +-__grub_bios_setup_program="@grub_bios_setup@" +-have ${__grub_bios_setup_program} && \ +- complete -F _grub_setup -o filenames ${__grub_bios_setup_program} +-unset __grub_bios_setup_program +- +-__grub_sparc64_setup_program="@grub_sparc64_setup@" +-have ${__grub_sparc64_setup_program} && \ +- complete -F _grub_setup -o filenames ${__grub_sparc64_setup_program} +-unset __grub_sparc64_setup_program +- +- + # + # grub-install + # +-_grub_install () { ++__grub_install () { + local cur prev last split=false + + COMPREPLY=() +@@ -315,16 +282,11 @@ _grub_install () { + _filedir + fi + } +-__grub_install_program="@grub_install@" +-have ${__grub_install_program} && \ +- complete -F _grub_install -o filenames ${__grub_install_program} +-unset __grub_install_program +- + + # + # grub-mkfont + # +-_grub_mkfont () { ++__grub_mkfont () { + local cur + + COMPREPLY=() +@@ -337,16 +299,11 @@ _grub_mkfont () { + _filedir + fi + } +-__grub_mkfont_program="@grub_mkfont@" +-have ${__grub_mkfont_program} && \ +- complete -F _grub_mkfont -o filenames ${__grub_mkfont_program} +-unset __grub_mkfont_program +- + + # + # grub-mkrescue + # +-_grub_mkrescue () { ++__grub_mkrescue () { + local cur prev last + + COMPREPLY=() +@@ -368,16 +325,11 @@ _grub_mkrescue () { + _filedir + fi + } +-__grub_mkrescue_program="@grub_mkrescue@" +-have ${__grub_mkrescue_program} && \ +- complete -F _grub_mkrescue -o filenames ${__grub_mkrescue_program} +-unset __grub_mkrescue_program +- + + # + # grub-mkimage + # +-_grub_mkimage () { ++__grub_mkimage () { + local cur prev split=false + + COMPREPLY=() +@@ -410,16 +362,11 @@ _grub_mkimage () { + _filedir + fi + } +-__grub_mkimage_program="@grub_mkimage@" +-have ${__grub_mkimage_program} && \ +- complete -F _grub_mkimage -o filenames ${__grub_mkimage_program} +-unset __grub_mkimage_program +- + + # + # grub-mkpasswd-pbkdf2 + # +-_grub_mkpasswd_pbkdf2 () { ++__grub_mkpasswd_pbkdf2 () { + local cur + + COMPREPLY=() +@@ -432,16 +379,11 @@ _grub_mkpasswd_pbkdf2 () { + _filedir + fi + } +-__grub_mkpasswd_pbkdf2_program="@grub_mkpasswd_pbkdf2@" +-have ${__grub_mkpasswd_pbkdf2_program} && \ +- complete -F _grub_mkpasswd_pbkdf2 -o filenames ${__grub_mkpasswd_pbkdf2_program} +-unset __grub_mkpasswd_pbkdf2_program +- + + # + # grub-probe + # +-_grub_probe () { ++__grub_probe () { + local cur prev split=false + + COMPREPLY=() +@@ -470,16 +412,11 @@ _grub_probe () { + _filedir + fi + } +-__grub_probe_program="@grub_probe@" +-have ${__grub_probe_program} && \ +- complete -F _grub_probe -o filenames ${__grub_probe_program} +-unset __grub_probe_program +- + + # + # grub-script-check + # +-_grub_script_check () { ++__grub_script_check () { + local cur + + COMPREPLY=() +@@ -492,10 +429,6 @@ _grub_script_check () { + _filedir + fi + } +-__grub_script_check_program="@grub_script_check@" +-have ${__grub_script_check_program} && \ +- complete -F _grub_script_check -o filenames ${__grub_script_check_program} +- + + # Local variables: + # mode: shell-script +diff --git a/util/bash-completion.d/grub-editenv.bash.in b/util/bash-completion.d/grub-editenv.bash.in +new file mode 100644 +index 000000000..29b1333ea +--- /dev/null ++++ b/util/bash-completion.d/grub-editenv.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-editenv@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_editenv () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_editenv ++} ++complete -F _grub_editenv -o filenames @grub_editenv@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-install.bash.in b/util/bash-completion.d/grub-install.bash.in +new file mode 100644 +index 000000000..a89fc614a +--- /dev/null ++++ b/util/bash-completion.d/grub-install.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-install@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_install () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_install ++} ++complete -F _grub_install -o filenames @grub_install@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-mkconfig.bash.in b/util/bash-completion.d/grub-mkconfig.bash.in +new file mode 100644 +index 000000000..862e0c58f +--- /dev/null ++++ b/util/bash-completion.d/grub-mkconfig.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-mkconfig@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_mkconfig () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_mkconfig ++} ++complete -F _grub_mkconfig -o filenames @grub_mkconfig@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-mkfont.bash.in b/util/bash-completion.d/grub-mkfont.bash.in +new file mode 100644 +index 000000000..17baccdf5 +--- /dev/null ++++ b/util/bash-completion.d/grub-mkfont.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-mkfont@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_mkfont () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_mkfont ++} ++complete -F _grub_mkfont -o filenames @grub_mkfont@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-mkimage.bash.in b/util/bash-completion.d/grub-mkimage.bash.in +new file mode 100644 +index 000000000..a383ed3e9 +--- /dev/null ++++ b/util/bash-completion.d/grub-mkimage.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-mkimage@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_mkimage () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_mkimage ++} ++complete -F _grub_mkimage -o filenames @grub_mkimage@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-mkpasswd-pbkdf2.bash.in b/util/bash-completion.d/grub-mkpasswd-pbkdf2.bash.in +new file mode 100644 +index 000000000..32b8fd6eb +--- /dev/null ++++ b/util/bash-completion.d/grub-mkpasswd-pbkdf2.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-mkpasswd-pbkdf2@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_mkpasswd_pbkdf2 () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_mkpasswd_pbkdf2 ++} ++complete -F _grub_mkpasswd_pbkdf2 -o filenames @grub_mkpasswd_pbkdf2@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-mkrescue.bash.in b/util/bash-completion.d/grub-mkrescue.bash.in +new file mode 100644 +index 000000000..5968ba00e +--- /dev/null ++++ b/util/bash-completion.d/grub-mkrescue.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-mkresue@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_mkrescue () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_mkrescue ++} ++complete -F _grub_mkrescue -o filenames @grub_mkrescue@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-probe.bash.in b/util/bash-completion.d/grub-probe.bash.in +new file mode 100644 +index 000000000..08400f2f1 +--- /dev/null ++++ b/util/bash-completion.d/grub-probe.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-probe@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_probe () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_probe ++} ++complete -F _grub_probe -o filenames @grub_probe@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-reboot.bash.in b/util/bash-completion.d/grub-reboot.bash.in +new file mode 100644 +index 000000000..154aecea9 +--- /dev/null ++++ b/util/bash-completion.d/grub-reboot.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-reboot@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_reboot () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_set_entry ++} ++complete -F _grub_reboot -o filenames @grub_reboot@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-script-check.bash.in b/util/bash-completion.d/grub-script-check.bash.in +new file mode 100644 +index 000000000..22d376832 +--- /dev/null ++++ b/util/bash-completion.d/grub-script-check.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-script-check@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_script_check () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_script_check ++} ++complete -F _grub_script_check -o filenames @grub_script_check@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-set-default.bash.in b/util/bash-completion.d/grub-set-default.bash.in +new file mode 100644 +index 000000000..14501b4fb +--- /dev/null ++++ b/util/bash-completion.d/grub-set-default.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-set-default@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_set_default () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_set_entry ++} ++complete -F _grub_set_default -o filenames @grub_set_default@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +diff --git a/util/bash-completion.d/grub-sparc64-setup.bash.in b/util/bash-completion.d/grub-sparc64-setup.bash.in +new file mode 100644 +index 000000000..6123d7b7c +--- /dev/null ++++ b/util/bash-completion.d/grub-sparc64-setup.bash.in +@@ -0,0 +1,30 @@ ++# ++# Bash completion for @grub-sparc64-setup@ ++# ++# Copyright (C) 2024 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 . ++ ++_grub_sparc64_setup () { ++ . @datarootdir@/bash-completion/completions/grub && __grub_setup ++} ++complete -F _grub_sparc64_setup -o filenames @grub_sparc64_setup@ ++ ++# Local variables: ++# mode: shell-script ++# sh-basic-offset: 4 ++# sh-indent-comment: t ++# indent-tabs-mode: nil ++# End: ++# ex: ts=4 sw=4 et filetype=sh +-- +2.35.3 + diff --git a/grub2.changes b/grub2.changes index b7de858..9860654 100644 --- a/grub2.changes +++ b/grub2.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Mon Mar 4 08:57:36 UTC 2024 - Gary Ching-Pang Lin + +- Update grub2-change-bash-completion-dir.patch to support bash + completion correctly (bsc#1218875) +- Drop grub2-bash-completion-2.12.patch since the have() function + is not used in those scripts anymore + +------------------------------------------------------------------- +Fri Mar 1 12:44:37 UTC 2024 - Giacomo Comes + +- disable the file 20_memtest86+ + * added a deprecation note in the header + +------------------------------------------------------------------- +Thu Feb 29 10:12:12 UTC 2024 - Dr. Werner Fink + +- Add patch grub2-bash-completion-2.12.patch + The shell function have() had become deprecated with 2.11 + and had been removed from 2.12 which is now providing + the shell function _comp_have_command() (boo#1220626) + ------------------------------------------------------------------- Thu Feb 22 04:19:21 UTC 2024 - Michael Chang diff --git a/grub2.spec b/grub2.spec index 8dfb97e..503b70b 100644 --- a/grub2.spec +++ b/grub2.spec @@ -1016,7 +1016,7 @@ find %{buildroot}/%{_datadir}/%{name} \ install -m 755 %{SOURCE1} %{buildroot}/%{_sysconfdir}/grub.d/ # Script to generate memtest86+ menu entry -install -m 755 %{SOURCE7} %{buildroot}/%{_sysconfdir}/grub.d/ +install -m 644 %{SOURCE7} %{buildroot}/%{_sysconfdir}/grub.d/ # Ghost config file install -d %{buildroot}/boot/%{name} @@ -1273,7 +1273,7 @@ fi %endif %dir /boot/%{name} %ghost %attr(600, root, root) /boot/%{name}/grub.cfg -%{_datadir}/bash-completion/completions/grub +%{_datadir}/bash-completion/completions/grub* %config(noreplace) %{_sysconfdir}/default/grub %dir %{_sysconfdir}/grub.d %{_sysconfdir}/grub.d/README