* new upstream release
* pacman hooks - remove info file handling from install script * fix Intel ucode handling (FS#47941) * remove trailing white spaces from PKGBUILD
This commit is contained in:
parent
25ca70055e
commit
b7cfff4062
54
0002-intel-ucode.patch
Normal file
54
0002-intel-ucode.patch
Normal file
@ -0,0 +1,54 @@
|
||||
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||||
index 5a78513..39bd854 100644
|
||||
--- a/util/grub.d/10_linux.in
|
||||
+++ b/util/grub.d/10_linux.in
|
||||
@@ -136,10 +136,12 @@ EOF
|
||||
if test -n "${initrd}" ; then
|
||||
# TRANSLATORS: ramdisk isn't identifier. Should be translated.
|
||||
message="$(gettext_printf "Loading initial ramdisk ...")"
|
||||
- sed "s/^/$submenu_indentation/" << EOF
|
||||
- echo '$(echo "$message" | grub_quote)'
|
||||
- initrd ${rel_dirname}/${initrd}
|
||||
-EOF
|
||||
+ printf ' %s\n' "echo '$(echo "$message" | grub_quote)'" | sed "s/^/$submenu_indentation/"
|
||||
+ printf ' %s ' 'initrd' | sed "s/^/$submenu_indentation/"
|
||||
+ for i in ${initrd}; do
|
||||
+ printf ' %s/%s' "${rel_dirname}" "${i}"
|
||||
+ done
|
||||
+ printf '\n'
|
||||
fi
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
||||
}
|
||||
@@ -189,6 +191,11 @@ while [ "x$list" != "x" ] ; do
|
||||
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
|
||||
|
||||
initrd=
|
||||
+ for i in intel-ucode.img; do
|
||||
+ if test -e "${dirname}/${i}" ; then
|
||||
+ initrd+=" ${i}"
|
||||
+ fi
|
||||
+ done
|
||||
for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
|
||||
"initrd-${version}" "initramfs-${version}.img" \
|
||||
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
|
||||
@@ -198,7 +205,7 @@ while [ "x$list" != "x" ] ; do
|
||||
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
|
||||
"initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
|
||||
if test -e "${dirname}/${i}" ; then
|
||||
- initrd="$i"
|
||||
+ initrd+=" $i"
|
||||
break
|
||||
fi
|
||||
done
|
||||
@@ -217,7 +224,7 @@ while [ "x$list" != "x" ] ; do
|
||||
fi
|
||||
|
||||
if test -n "${initrd}" ; then
|
||||
- gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2
|
||||
+ gettext_printf "Found initrd image(s) in %s:%s\n" "${dirname}" "${initrd}" >&2
|
||||
elif test -z "${initramfs}" ; then
|
||||
# "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's
|
||||
# no initrd or builtin initramfs, it can't work here.
|
||||
--
|
||||
2.7.1
|
||||
|
194
10_archlinux
194
10_archlinux
@ -1,194 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
##
|
||||
## grub-mkconfig helper script specific to Arch Linux
|
||||
## Contributed by "Keshav Amburay" <the ddoott ridikulus ddoott rat aatt geemmayil ddoott ccoomm>
|
||||
## Updated on 08 February 2014
|
||||
##
|
||||
## Script based on do_grub_config() function in Arch Linux Archboot ISO Installer/Setup script
|
||||
## Some parts taken from /etc/grub.d/10_linux script shipped by GRUB(2) upstream
|
||||
##
|
||||
## This script can be freely distributed and/or modified
|
||||
## 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.
|
||||
##
|
||||
## This script 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.
|
||||
##
|
||||
|
||||
_FUNC_GRUB_FILE_PRESENT() {
|
||||
|
||||
[[ -z "${GRUB_PLATFORM}" ]] && GRUB_PLATFORM="x86"
|
||||
|
||||
if [[ "${GRUB_PLATFORM}" == "x86" ]]; then
|
||||
check="--is-x86-linux32"
|
||||
elif [[ "${GRUB_PLATFORM}" == "i386-xen-pae" ]]; then
|
||||
check="--is-i386-xen-pae-domu"
|
||||
elif [[ "${GRUB_PLATFORM}" == "x86_64-xen" ]]; then
|
||||
check="--is-x86_64-xen-domu"
|
||||
else
|
||||
check="--is-${GRUB_PLATFORM}-linux"
|
||||
fi
|
||||
|
||||
case "${GRUB_PLATFORM}" in
|
||||
x86)
|
||||
list="$(for i in "${GRUB_ROOT}"/boot/vmlinuz-linux* ; do
|
||||
if grub_file_is_not_garbage "${i}" && "${grub_file}" ${check} "${i}" ; then echo -n "${i} " ; fi
|
||||
done)" ;;
|
||||
*)
|
||||
list="$(for i in "${GRUB_ROOT}"/boot/vmlinuz-linux* ; do
|
||||
if grub_file_is_not_garbage "${i}" && "${grub_file}" ${check} "${i}" ; then echo -n "${i} " ; fi
|
||||
done)" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
set -e
|
||||
|
||||
prefix="/usr"
|
||||
exec_prefix="${prefix}"
|
||||
datarootdir="/usr/share"
|
||||
datadir="${datarootdir}"
|
||||
sysconfdir="/etc"
|
||||
|
||||
. "${datarootdir}/grub/grub-mkconfig_lib"
|
||||
|
||||
. "${sysconfdir}/default/grub"
|
||||
|
||||
export TEXTDOMAIN="grub"
|
||||
export TEXTDOMAINDIR="${datarootdir}/locale"
|
||||
|
||||
CLASS="--class arch-linux --class arch --class gnu-linux --class gnu --class os"
|
||||
|
||||
[[ "${grub_file}" != "" ]] && _FUNC_GRUB_FILE_PRESENT
|
||||
|
||||
BOOT_PART_FS_UUID="$(${grub_probe} --target="fs_uuid" "/boot" 2>/dev/null)"
|
||||
BOOT_PART_HINTS_STRING="$(${grub_probe} --target="hints_string" "/boot" 2>/dev/null || true)"
|
||||
BOOT_PART_FS="$(${grub_probe} --target="fs" "/boot" 2>/dev/null)"
|
||||
|
||||
ROOT_PART_GRUB_DEVICE="$(${grub_probe} --target=device / || true)"
|
||||
ROOT_PART_FS="$(${grub_probe} --device ${ROOT_PART_GRUB_DEVICE} --target=fs 2> /dev/null || echo "unknown")"
|
||||
|
||||
if [[ "${GRUB_LINUX_ROOT_DEVICE}" == "" ]]; then
|
||||
|
||||
case "${ROOT_PART_FS}" in
|
||||
btrfs)
|
||||
rootsubvol="$(make_system_path_relative_to_its_root /)"
|
||||
rootsubvol="${rootsubvol#/}"
|
||||
if [[ "${rootsubvol}" != "" ]]; then
|
||||
GRUB_LINUX_ROOT_DEVICE="subvol=${rootsubvol}"
|
||||
fi
|
||||
;;
|
||||
zfs)
|
||||
rpool="$(${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true)"
|
||||
bootfs="$(make_system_path_relative_to_its_root / | sed -e "s,@$,,")"
|
||||
GRUB_LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "${GRUB_DEVICE_UUID}" == "" ]] || \
|
||||
[[ "${GRUB_DISABLE_LINUX_UUID}" == "true" ]] || \
|
||||
[[ ! -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" ]] || \
|
||||
uses_abstraction "${GRUB_DEVICE}" lvm ; then
|
||||
GRUB_LINUX_ROOT_DEVICE="${GRUB_DEVICE}"
|
||||
else
|
||||
GRUB_LINUX_ROOT_DEVICE="UUID=${GRUB_DEVICE_UUID}"
|
||||
fi
|
||||
fi
|
||||
|
||||
[[ "${GRUB_LINUX_PARAMS}" == "" ]] && GRUB_LINUX_PARAMS="${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||
|
||||
for _KERNEL_ in ${list} ; do
|
||||
|
||||
echo "Found linux image: ${_KERNEL_}" >&2
|
||||
|
||||
basename="$(basename "${_KERNEL_}")"
|
||||
dirname="$(dirname "${_KERNEL_}")"
|
||||
REAL_DIR="$(make_system_path_relative_to_its_root "${dirname}")"
|
||||
|
||||
_KERNEL_FILE_="$(echo ${_KERNEL_} | sed 's,/boot/,,g')"
|
||||
_KERNEL_PKG_="pkg-$(echo ${_KERNEL_FILE_} | sed 's,vmlinuz-,,g')"
|
||||
|
||||
_INITRAMFS_="${_KERNEL_FILE_/vmlinuz-/initramfs-}.img"
|
||||
|
||||
if [[ -e "/boot/${_INITRAMFS_}" ]]; then
|
||||
|
||||
echo "Found initramfs image: /boot/${_INITRAMFS_}" >&2
|
||||
|
||||
cat << EOF
|
||||
|
||||
menuentry "Arch Linux ${_KERNEL_PKG_} kernel" ${CLASS} {
|
||||
$(save_default_entry)
|
||||
if [ x\$feature_all_video_module = xy ]; then
|
||||
insmod all_video
|
||||
fi
|
||||
set gfxpayload=keep
|
||||
insmod ${BOOT_PART_FS}
|
||||
if [ x\$feature_platform_search_hint = xy ]; then
|
||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_HINTS_STRING} ${BOOT_PART_FS_UUID}
|
||||
else
|
||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
||||
fi
|
||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
||||
linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel initramfs ...'
|
||||
initrd ${REAL_DIR}/${_INITRAMFS_}
|
||||
}
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
_INITRAMFS_FALLBACK_="${_KERNEL_FILE_/vmlinuz-/initramfs-}-fallback.img"
|
||||
|
||||
if [[ -e "/boot/${_INITRAMFS_FALLBACK_}" ]]; then
|
||||
|
||||
echo "Found fallback initramfs image: /boot/${_INITRAMFS_FALLBACK_}" >&2
|
||||
|
||||
cat << EOF
|
||||
|
||||
menuentry "Arch Linux ${_KERNEL_PKG_} kernel (fallback initramfs)" ${CLASS} {
|
||||
$(save_default_entry)
|
||||
if [ x\$feature_all_video_module = xy ]; then
|
||||
insmod all_video
|
||||
fi
|
||||
set gfxpayload=keep
|
||||
insmod ${BOOT_PART_FS}
|
||||
if [ x\$feature_platform_search_hint = xy ]; then
|
||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_HINTS_STRING} ${BOOT_PART_FS_UUID}
|
||||
else
|
||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
||||
fi
|
||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
||||
linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel fallback initramfs ...'
|
||||
initrd ${REAL_DIR}/${_INITRAMFS_FALLBACK_}
|
||||
}
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [[ ! -e "/boot/${_INITRAMFS_}" ]] && [[ ! -e "/boot/${_INITRAMFS_FALLBACK_}" ]]; then
|
||||
cat << EOF
|
||||
|
||||
menuentry "Arch Linux ${_KERNEL_PKG_} kernel (no initramfs)" ${CLASS} {
|
||||
$(save_default_entry)
|
||||
if [ x\$feature_all_video_module = xy ]; then
|
||||
insmod all_video
|
||||
fi
|
||||
set gfxpayload=keep
|
||||
insmod ${BOOT_PART_FS}
|
||||
if [ x\$feature_platform_search_hint = xy ]; then
|
||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_HINTS_STRING} ${BOOT_PART_FS_UUID}
|
||||
else
|
||||
search --no-floppy --fs-uuid --set=root ${BOOT_PART_FS_UUID}
|
||||
fi
|
||||
echo 'Loading Arch Linux ${_KERNEL_PKG_} kernel ...'
|
||||
linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS}
|
||||
}
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
done
|
39
PKGBUILD
39
PKGBUILD
@ -9,8 +9,8 @@ _IA32_EFI_IN_ARCH_X64="1"
|
||||
_GRUB_EMU_BUILD="0"
|
||||
|
||||
_pkgver="2.02"
|
||||
_GRUB_GIT_TAG="grub-2.02-beta2"
|
||||
_GRUB_EXTRAS_COMMIT=4a56e2c2cc3d78f12f1788c27669a651071dee49
|
||||
_GRUB_GIT_TAG="grub-2.02-beta3"
|
||||
_GRUB_EXTRAS_COMMIT="f2a079441939eee7251bf141986cdd78946e1d20"
|
||||
|
||||
_UNIFONT_VER="6.3.20131217"
|
||||
|
||||
@ -22,8 +22,8 @@ _UNIFONT_VER="6.3.20131217"
|
||||
|
||||
pkgname="grub"
|
||||
pkgdesc="GNU GRand Unified Bootloader (2)"
|
||||
pkgver=2.02.beta2
|
||||
pkgrel=6
|
||||
pkgver=2.02.beta3
|
||||
pkgrel=1
|
||||
epoch=1
|
||||
url="https://www.gnu.org/software/grub/"
|
||||
arch=('x86_64' 'i686')
|
||||
@ -58,9 +58,9 @@ source=("grub-${_pkgver}::git+git://git.sv.gnu.org/grub.git#tag=${_GRUB_GIT_TAG}
|
||||
"http://ftp.gnu.org/gnu/unifont/unifont-${_UNIFONT_VER}/unifont-${_UNIFONT_VER}.bdf.gz"
|
||||
"http://ftp.gnu.org/gnu/unifont/unifont-${_UNIFONT_VER}/unifont-${_UNIFONT_VER}.bdf.gz.sig"
|
||||
'0001-Fix-security-issue-when-reading-username-and-passwor.patch'
|
||||
'grub-10_linux-detect-archlinux-initramfs.patch'
|
||||
'grub-intel-ucode.patch'
|
||||
'grub-add-GRUB_COLOR_variables.patch'
|
||||
'0002-intel-ucode.patch'
|
||||
'0003-10_linux-detect-archlinux-initramfs.patch'
|
||||
'0004-add-GRUB_COLOR_variables.patch'
|
||||
'60_memtest86+'
|
||||
'grub.default'
|
||||
'grub.cfg')
|
||||
@ -70,8 +70,8 @@ md5sums=('SKIP'
|
||||
'728b7439ac733a7c0d56049adec364c7'
|
||||
'SKIP'
|
||||
'9589ec46a04f9bb4d5da987340a4a324'
|
||||
'e582a1ca6b06444e891f3b46af13d563'
|
||||
'945527e0de8d384166a4cf23439ae9ee'
|
||||
'a678629bc82c4e70c48d28242036d1d7'
|
||||
'e506ae4a9f9f7d1b765febfa84e10d48'
|
||||
'be55eabc102f2c60b38ed35c203686d6'
|
||||
'a03ffd56324520393bf574cefccb893d'
|
||||
@ -84,23 +84,22 @@ _pkgver() {
|
||||
}
|
||||
|
||||
prepare() {
|
||||
|
||||
cd "${srcdir}/grub-${_pkgver}/"
|
||||
|
||||
# CVE-2015-8370
|
||||
patch -Np1 -i ../0001-Fix-security-issue-when-reading-username-and-passwor.patch
|
||||
|
||||
msg "Patch to load Intel microcode"
|
||||
patch -Np1 -i "${srcdir}/grub-intel-ucode.patch"
|
||||
patch -Np1 -i "${srcdir}/0002-intel-ucode.patch"
|
||||
echo
|
||||
|
||||
msg "Patch to detect of Arch Linux initramfs images by grub-mkconfig"
|
||||
patch -Np1 -i "${srcdir}/grub-10_linux-detect-archlinux-initramfs.patch"
|
||||
patch -Np1 -i "${srcdir}/0003-10_linux-detect-archlinux-initramfs.patch"
|
||||
echo
|
||||
|
||||
msg "Patch to enable GRUB_COLOR_* variables in grub-mkconfig"
|
||||
## Based on http://lists.gnu.org/archive/html/grub-devel/2012-02/msg00021.html
|
||||
patch -Np1 -i "${srcdir}/grub-add-GRUB_COLOR_variables.patch"
|
||||
patch -Np1 -i "${srcdir}/0004-add-GRUB_COLOR_variables.patch"
|
||||
echo
|
||||
|
||||
msg "Fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme"
|
||||
@ -124,11 +123,9 @@ prepare() {
|
||||
|
||||
msg "Avoid problem with unifont during compile of grub, http://savannah.gnu.org/bugs/?40330 and https://bugs.archlinux.org/task/37847"
|
||||
cp "${srcdir}/unifont-${_UNIFONT_VER}.bdf" "${srcdir}/grub-${_pkgver}/unifont.bdf"
|
||||
|
||||
}
|
||||
|
||||
_build_grub-common_and_bios() {
|
||||
|
||||
msg "Set ARCH dependent variables for bios build"
|
||||
if [[ "${CARCH}" == 'x86_64' ]]; then
|
||||
_EFIEMU="--enable-efiemu"
|
||||
@ -190,7 +187,6 @@ _build_grub-common_and_bios() {
|
||||
}
|
||||
|
||||
_build_grub-efi() {
|
||||
|
||||
msg "Copy the source for building the ${_EFI_ARCH} efi part"
|
||||
cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}"
|
||||
cd "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}/"
|
||||
@ -237,11 +233,9 @@ _build_grub-efi() {
|
||||
msg "Run make for ${_EFI_ARCH} efi build"
|
||||
make
|
||||
echo
|
||||
|
||||
}
|
||||
|
||||
_build_grub-emu() {
|
||||
|
||||
msg "Copy the source for building the emu part"
|
||||
cp -r "${srcdir}/grub-${_pkgver}/" "${srcdir}/grub-${_pkgver}-emu/"
|
||||
|
||||
@ -288,11 +282,9 @@ _build_grub-emu() {
|
||||
msg "Run make for emu build"
|
||||
make
|
||||
echo
|
||||
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
cd "${srcdir}/grub-${_pkgver}/"
|
||||
|
||||
msg "Build grub bios stuff"
|
||||
@ -314,11 +306,9 @@ build() {
|
||||
_build_grub-emu
|
||||
echo
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
_package_grub-common_and_bios() {
|
||||
|
||||
cd "${srcdir}/grub-${_pkgver}-bios/"
|
||||
|
||||
msg "Run make install for bios build"
|
||||
@ -338,11 +328,9 @@ _package_grub-common_and_bios() {
|
||||
|
||||
msg "Install grub.cfg for backup array"
|
||||
install -D -m0644 "${srcdir}/grub.cfg" "${pkgdir}/boot/grub/grub.cfg"
|
||||
|
||||
}
|
||||
|
||||
_package_grub-efi() {
|
||||
|
||||
cd "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}/"
|
||||
|
||||
msg "Run make install for ${_EFI_ARCH} efi build"
|
||||
@ -353,11 +341,9 @@ _package_grub-efi() {
|
||||
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.module || true
|
||||
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.image || true
|
||||
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true
|
||||
|
||||
}
|
||||
|
||||
_package_grub-emu() {
|
||||
|
||||
cd "${srcdir}/grub-${_pkgver}-emu/"
|
||||
|
||||
msg "Run make install for emu build"
|
||||
@ -368,11 +354,9 @@ _package_grub-emu() {
|
||||
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.module || true
|
||||
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.image || true
|
||||
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/{kernel.exec,gdb_grub,gmodule.pl} || true
|
||||
|
||||
}
|
||||
|
||||
package() {
|
||||
|
||||
cd "${srcdir}/grub-${_pkgver}/"
|
||||
|
||||
msg "Package grub ${_EFI_ARCH} efi stuff"
|
||||
@ -392,5 +376,4 @@ package() {
|
||||
|
||||
msg "Package grub bios stuff"
|
||||
_package_grub-common_and_bios
|
||||
|
||||
}
|
||||
|
@ -1,143 +0,0 @@
|
||||
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
|
||||
index db58ab9..e66e139 100644
|
||||
--- a/util/grub-mkconfig.in
|
||||
+++ b/util/grub-mkconfig.in
|
||||
@@ -212,6 +212,8 @@ export GRUB_DEFAULT \
|
||||
GRUB_THEME \
|
||||
GRUB_GFXPAYLOAD_LINUX \
|
||||
GRUB_DISABLE_OS_PROBER \
|
||||
+ GRUB_COLOR_NORMAL \
|
||||
+ GRUB_COLOR_HIGHLIGHT \
|
||||
GRUB_INIT_TUNE \
|
||||
GRUB_SAVEDEFAULT \
|
||||
GRUB_ENABLE_CRYPTODISK \
|
||||
diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
|
||||
index 9838720..dbb5dd2 100644
|
||||
--- a/util/grub.d/00_header.in
|
||||
+++ b/util/grub.d/00_header.in
|
||||
@@ -125,6 +125,14 @@ cat <<EOF
|
||||
|
||||
EOF
|
||||
|
||||
+if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then
|
||||
+ cat << EOF
|
||||
+set menu_color_normal=$GRUB_COLOR_NORMAL
|
||||
+set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT
|
||||
+
|
||||
+EOF
|
||||
+fi
|
||||
+
|
||||
serial=0;
|
||||
gfxterm=0;
|
||||
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
|
||||
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||||
index e27d6f7..0a255f5 100644
|
||||
--- a/util/grub.d/10_linux.in
|
||||
+++ b/util/grub.d/10_linux.in
|
||||
@@ -87,6 +87,8 @@ linux_entry ()
|
||||
case $type in
|
||||
recovery)
|
||||
title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;;
|
||||
+ fallback)
|
||||
+ title="$(gettext_printf "%s, with Linux %s (Fallback initramfs)" "${os}" "${version}")" ;;
|
||||
*)
|
||||
title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
|
||||
esac
|
||||
@@ -100,7 +102,7 @@ linux_entry ()
|
||||
else
|
||||
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
|
||||
fi
|
||||
- if [ x$type != xrecovery ] ; then
|
||||
+ if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then
|
||||
save_default_entry | grub_add_tab
|
||||
fi
|
||||
|
||||
@@ -132,7 +134,8 @@ linux_entry ()
|
||||
fi
|
||||
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
|
||||
fi
|
||||
- message="$(gettext_printf "Loading Linux %s ..." ${version})"
|
||||
+
|
||||
+ message="$(gettext_printf "Loading Linux %s ..." "${version}")"
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
||||
echo '$(echo "$message" | grub_quote)'
|
||||
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
|
||||
@@ -190,7 +193,22 @@ while [ "x$list" != "x" ] ; do
|
||||
alt_version=`echo $version | sed -e "s,\.old$,,g"`
|
||||
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
|
||||
|
||||
+ if test -e "/etc/arch-release" ; then
|
||||
+ if echo "${basename}" | grep -q 'vmlinuz-linux' ; then
|
||||
+ version="`echo "${basename}" | sed -e 's,vmlinuz-linux,,g'`"
|
||||
+
|
||||
+ if [ "x${version}" = "x" ] ; then
|
||||
+ version="core repo kernel"
|
||||
+ else
|
||||
+ version="`echo "${version}" | sed -e 's,-,,g'`"
|
||||
+ version="${version} kernel"
|
||||
+ fi
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
initrd=
|
||||
+ initrd_arch="`echo "${basename}" | sed -e 's,vmlinuz,initramfs,g'`"
|
||||
+
|
||||
for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
|
||||
"initrd-${version}" "initramfs-${version}.img" \
|
||||
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
|
||||
@@ -198,7 +216,8 @@ while [ "x$list" != "x" ] ; do
|
||||
"initramfs-genkernel-${version}" \
|
||||
"initramfs-genkernel-${alt_version}" \
|
||||
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
|
||||
- "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
|
||||
+ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" \
|
||||
+ "${initrd_arch}.img" ; do
|
||||
if test -e "${dirname}/${i}" ; then
|
||||
initrd="$i"
|
||||
break
|
||||
@@ -226,6 +245,22 @@ while [ "x$list" != "x" ] ; do
|
||||
linux_root_device_thisversion=${GRUB_DEVICE}
|
||||
fi
|
||||
|
||||
+ if test -e "/etc/arch-release" ; then
|
||||
+ is_first_entry="false"
|
||||
+
|
||||
+ linux_entry "${OS}" "${version}" true \
|
||||
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||
+
|
||||
+ for i in "${initrd_arch}-fallback.img" "initramfs-${version}-fallback.img" ; do
|
||||
+ if test -e "${dirname}/${i}" ; then
|
||||
+ initrd="${i}"
|
||||
+ linux_entry "${OS}" "${version}" fallback \
|
||||
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+ fi
|
||||
+
|
||||
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
|
||||
linux_entry "${OS}" "${version}" simple \
|
||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||
@@ -240,8 +275,11 @@ while [ "x$list" != "x" ] ; do
|
||||
is_top_level=false
|
||||
fi
|
||||
|
||||
+ if ! test -e "/etc/arch-release" ; then
|
||||
linux_entry "${OS}" "${version}" advanced \
|
||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||
+ fi
|
||||
+
|
||||
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
|
||||
linux_entry "${OS}" "${version}" recovery \
|
||||
"single ${GRUB_CMDLINE_LINUX}"
|
||||
@@ -252,8 +290,10 @@ done
|
||||
|
||||
# If at least one kernel was found, then we need to
|
||||
# add a closing '}' for the submenu command.
|
||||
+if ! test -e "/etc/arch-release" ; then
|
||||
if [ x"$is_top_level" != xtrue ]; then
|
||||
echo '}'
|
||||
fi
|
||||
+fi
|
||||
|
||||
echo "$title_correction_code"
|
@ -1,11 +0,0 @@
|
||||
--- util/grub.d/10_linux.in.old 2013-07-28 08:55:47.825946239 +0200
|
||||
+++ util/grub.d/10_linux.in 2013-07-28 08:56:14.082201512 +0200
|
||||
@@ -138,7 +138,7 @@
|
||||
message="$(gettext_printf "Loading Linux %s ..." "${version}")"
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
||||
echo '$(echo "$message" | grub_quote)'
|
||||
- linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
|
||||
+ linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} rw ${args}
|
||||
EOF
|
||||
if test -n "${initrd}" ; then
|
||||
# TRANSLATORS: ramdisk isn't identifier. Should be translated.
|
@ -1,54 +0,0 @@
|
||||
There is no explicit option to turn off alignment; it is implicitly
|
||||
disabled if one of --separator or --nameprefixes option is used.
|
||||
|
||||
--separator was added in 2007, --nameprefixes - in 2009. So let's use
|
||||
--separator to extend range of versions we are compatible with. Note that
|
||||
one or another must be used, current parsing is broken otherwise.
|
||||
|
||||
Signed-off-by: Andrey Borzenkov <address@hidden>
|
||||
|
||||
---
|
||||
util/getroot.c | 12 +++++++++---
|
||||
1 file changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/util/getroot.c b/util/getroot.c
|
||||
index 2ad8a55..3afcf96 100644
|
||||
--- a/util/getroot.c
|
||||
+++ b/util/getroot.c
|
||||
@@ -1322,7 +1322,7 @@ grub_util_get_dev_abstraction (const char *os_dev)
|
||||
static void
|
||||
pull_lvm_by_command (const char *os_dev)
|
||||
{
|
||||
- char *argv[6];
|
||||
+ char *argv[8];
|
||||
int fd;
|
||||
pid_t pid;
|
||||
FILE *mdadm;
|
||||
@@ -1351,12 +1351,17 @@ pull_lvm_by_command (const char *os_dev)
|
||||
|
||||
/* execvp has inconvenient types, hence the casts. None of these
|
||||
strings will actually be modified. */
|
||||
+ /* by default PV name is left aligned in 10 character field, meaning that
|
||||
+ we do not know where name ends. Using dummy --separator disables
|
||||
+ alignment. We have a single field, so separator itself is not output */
|
||||
argv[0] = (char *) "vgs";
|
||||
argv[1] = (char *) "--options";
|
||||
argv[2] = (char *) "pv_name";
|
||||
argv[3] = (char *) "--noheadings";
|
||||
- argv[4] = vgname;
|
||||
- argv[5] = NULL;
|
||||
+ argv[4] = (char *) "--separator";
|
||||
+ argv[5] = (char *) ":";
|
||||
+ argv[6] = vgname;
|
||||
+ argv[7] = NULL;
|
||||
|
||||
pid = exec_pipe (argv, &fd);
|
||||
free (vgname);
|
||||
@@ -1376,6 +1381,7 @@ pull_lvm_by_command (const char *os_dev)
|
||||
while (getline (&buf, &len, mdadm) > 0)
|
||||
{
|
||||
char *ptr;
|
||||
+ /* LVM adds two spaces as standard prefix */
|
||||
for (ptr = buf; ptr < buf + 2 && *ptr == ' '; ptr++);
|
||||
if (*ptr == '\0')
|
||||
continue;
|
@ -1,26 +0,0 @@
|
||||
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||||
index d2e2a8f..f67e50f 100644
|
||||
--- a/util/grub.d/10_linux.in
|
||||
+++ b/util/grub.d/10_linux.in
|
||||
@@ -65,6 +65,12 @@ case x"$GRUB_FS" in
|
||||
;;
|
||||
esac
|
||||
|
||||
+intel_ucode=
|
||||
+if test -e "/boot/intel-ucode.img" ; then
|
||||
+ gettext_printf "Found Intel Microcode image\n" >&2
|
||||
+ intel_ucode="$(make_system_path_relative_to_its_root /boot/intel-ucode.img)"
|
||||
+fi
|
||||
+
|
||||
title_correction_code=
|
||||
|
||||
linux_entry ()
|
||||
@@ -136,7 +142,7 @@ EOF
|
||||
message="$(gettext_printf "Loading initial ramdisk ...")"
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
||||
echo '$(echo "$message" | grub_quote)'
|
||||
- initrd ${rel_dirname}/${initrd}
|
||||
+ initrd ${intel_ucode} ${rel_dirname}/${initrd}
|
||||
EOF
|
||||
fi
|
||||
sed "s/^/$submenu_indentation/" << EOF
|
18
grub.install
18
grub.install
@ -1,6 +1,3 @@
|
||||
infodir="usr/share/info"
|
||||
filelist=('grub.info' 'grub-dev.info')
|
||||
|
||||
post_install() {
|
||||
if [ -f /boot/grub/grub.cfg.pacsave ]; then
|
||||
echo "Copying /boot/grub/grub.cfg.pacsave to /boot/grub/grub.cfg"
|
||||
@ -14,20 +11,5 @@ EOM
|
||||
|
||||
grub-mkconfig -o /boot/grub/grub.cfg.example 2> /dev/null
|
||||
echo "done."
|
||||
|
||||
for file in ${filelist[@]}; do
|
||||
install-info ${infodir}/${file}.gz ${infodir}/dir 2> /dev/null
|
||||
done
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
for file in ${filelist[@]}; do
|
||||
install-info ${infodir}/${file}.gz ${infodir}/dir 2> /dev/null
|
||||
done
|
||||
}
|
||||
|
||||
pre_remove() {
|
||||
for file in ${filelist[@]}; do
|
||||
install-info --delete ${infodir}/${file} ${infodir}/dir 2> /dev/null
|
||||
done
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user