* 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"
|
_GRUB_EMU_BUILD="0"
|
||||||
|
|
||||||
_pkgver="2.02"
|
_pkgver="2.02"
|
||||||
_GRUB_GIT_TAG="grub-2.02-beta2"
|
_GRUB_GIT_TAG="grub-2.02-beta3"
|
||||||
_GRUB_EXTRAS_COMMIT=4a56e2c2cc3d78f12f1788c27669a651071dee49
|
_GRUB_EXTRAS_COMMIT="f2a079441939eee7251bf141986cdd78946e1d20"
|
||||||
|
|
||||||
_UNIFONT_VER="6.3.20131217"
|
_UNIFONT_VER="6.3.20131217"
|
||||||
|
|
||||||
@ -22,8 +22,8 @@ _UNIFONT_VER="6.3.20131217"
|
|||||||
|
|
||||||
pkgname="grub"
|
pkgname="grub"
|
||||||
pkgdesc="GNU GRand Unified Bootloader (2)"
|
pkgdesc="GNU GRand Unified Bootloader (2)"
|
||||||
pkgver=2.02.beta2
|
pkgver=2.02.beta3
|
||||||
pkgrel=6
|
pkgrel=1
|
||||||
epoch=1
|
epoch=1
|
||||||
url="https://www.gnu.org/software/grub/"
|
url="https://www.gnu.org/software/grub/"
|
||||||
arch=('x86_64' 'i686')
|
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"
|
||||||
"http://ftp.gnu.org/gnu/unifont/unifont-${_UNIFONT_VER}/unifont-${_UNIFONT_VER}.bdf.gz.sig"
|
"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'
|
'0001-Fix-security-issue-when-reading-username-and-passwor.patch'
|
||||||
'grub-10_linux-detect-archlinux-initramfs.patch'
|
'0002-intel-ucode.patch'
|
||||||
'grub-intel-ucode.patch'
|
'0003-10_linux-detect-archlinux-initramfs.patch'
|
||||||
'grub-add-GRUB_COLOR_variables.patch'
|
'0004-add-GRUB_COLOR_variables.patch'
|
||||||
'60_memtest86+'
|
'60_memtest86+'
|
||||||
'grub.default'
|
'grub.default'
|
||||||
'grub.cfg')
|
'grub.cfg')
|
||||||
@ -70,8 +70,8 @@ md5sums=('SKIP'
|
|||||||
'728b7439ac733a7c0d56049adec364c7'
|
'728b7439ac733a7c0d56049adec364c7'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
'9589ec46a04f9bb4d5da987340a4a324'
|
'9589ec46a04f9bb4d5da987340a4a324'
|
||||||
|
'e582a1ca6b06444e891f3b46af13d563'
|
||||||
'945527e0de8d384166a4cf23439ae9ee'
|
'945527e0de8d384166a4cf23439ae9ee'
|
||||||
'a678629bc82c4e70c48d28242036d1d7'
|
|
||||||
'e506ae4a9f9f7d1b765febfa84e10d48'
|
'e506ae4a9f9f7d1b765febfa84e10d48'
|
||||||
'be55eabc102f2c60b38ed35c203686d6'
|
'be55eabc102f2c60b38ed35c203686d6'
|
||||||
'a03ffd56324520393bf574cefccb893d'
|
'a03ffd56324520393bf574cefccb893d'
|
||||||
@ -84,23 +84,22 @@ _pkgver() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
|
|
||||||
cd "${srcdir}/grub-${_pkgver}/"
|
cd "${srcdir}/grub-${_pkgver}/"
|
||||||
|
|
||||||
# CVE-2015-8370
|
# CVE-2015-8370
|
||||||
patch -Np1 -i ../0001-Fix-security-issue-when-reading-username-and-passwor.patch
|
patch -Np1 -i ../0001-Fix-security-issue-when-reading-username-and-passwor.patch
|
||||||
|
|
||||||
msg "Patch to load Intel microcode"
|
msg "Patch to load Intel microcode"
|
||||||
patch -Np1 -i "${srcdir}/grub-intel-ucode.patch"
|
patch -Np1 -i "${srcdir}/0002-intel-ucode.patch"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
msg "Patch to detect of Arch Linux initramfs images by grub-mkconfig"
|
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
|
echo
|
||||||
|
|
||||||
msg "Patch to enable GRUB_COLOR_* variables in grub-mkconfig"
|
msg "Patch to enable GRUB_COLOR_* variables in grub-mkconfig"
|
||||||
## Based on http://lists.gnu.org/archive/html/grub-devel/2012-02/msg00021.html
|
## 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
|
echo
|
||||||
|
|
||||||
msg "Fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme"
|
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"
|
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"
|
cp "${srcdir}/unifont-${_UNIFONT_VER}.bdf" "${srcdir}/grub-${_pkgver}/unifont.bdf"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_build_grub-common_and_bios() {
|
_build_grub-common_and_bios() {
|
||||||
|
|
||||||
msg "Set ARCH dependent variables for bios build"
|
msg "Set ARCH dependent variables for bios build"
|
||||||
if [[ "${CARCH}" == 'x86_64' ]]; then
|
if [[ "${CARCH}" == 'x86_64' ]]; then
|
||||||
_EFIEMU="--enable-efiemu"
|
_EFIEMU="--enable-efiemu"
|
||||||
@ -190,7 +187,6 @@ _build_grub-common_and_bios() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_build_grub-efi() {
|
_build_grub-efi() {
|
||||||
|
|
||||||
msg "Copy the source for building the ${_EFI_ARCH} efi part"
|
msg "Copy the source for building the ${_EFI_ARCH} efi part"
|
||||||
cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}"
|
cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}"
|
||||||
cd "${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"
|
msg "Run make for ${_EFI_ARCH} efi build"
|
||||||
make
|
make
|
||||||
echo
|
echo
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_build_grub-emu() {
|
_build_grub-emu() {
|
||||||
|
|
||||||
msg "Copy the source for building the emu part"
|
msg "Copy the source for building the emu part"
|
||||||
cp -r "${srcdir}/grub-${_pkgver}/" "${srcdir}/grub-${_pkgver}-emu/"
|
cp -r "${srcdir}/grub-${_pkgver}/" "${srcdir}/grub-${_pkgver}-emu/"
|
||||||
|
|
||||||
@ -288,11 +282,9 @@ _build_grub-emu() {
|
|||||||
msg "Run make for emu build"
|
msg "Run make for emu build"
|
||||||
make
|
make
|
||||||
echo
|
echo
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
|
|
||||||
cd "${srcdir}/grub-${_pkgver}/"
|
cd "${srcdir}/grub-${_pkgver}/"
|
||||||
|
|
||||||
msg "Build grub bios stuff"
|
msg "Build grub bios stuff"
|
||||||
@ -314,11 +306,9 @@ build() {
|
|||||||
_build_grub-emu
|
_build_grub-emu
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_package_grub-common_and_bios() {
|
_package_grub-common_and_bios() {
|
||||||
|
|
||||||
cd "${srcdir}/grub-${_pkgver}-bios/"
|
cd "${srcdir}/grub-${_pkgver}-bios/"
|
||||||
|
|
||||||
msg "Run make install for bios build"
|
msg "Run make install for bios build"
|
||||||
@ -338,11 +328,9 @@ _package_grub-common_and_bios() {
|
|||||||
|
|
||||||
msg "Install grub.cfg for backup array"
|
msg "Install grub.cfg for backup array"
|
||||||
install -D -m0644 "${srcdir}/grub.cfg" "${pkgdir}/boot/grub/grub.cfg"
|
install -D -m0644 "${srcdir}/grub.cfg" "${pkgdir}/boot/grub/grub.cfg"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_package_grub-efi() {
|
_package_grub-efi() {
|
||||||
|
|
||||||
cd "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}/"
|
cd "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}/"
|
||||||
|
|
||||||
msg "Run make install for ${_EFI_ARCH} efi build"
|
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"/*.module || true
|
||||||
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.image || 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
|
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_package_grub-emu() {
|
_package_grub-emu() {
|
||||||
|
|
||||||
cd "${srcdir}/grub-${_pkgver}-emu/"
|
cd "${srcdir}/grub-${_pkgver}-emu/"
|
||||||
|
|
||||||
msg "Run make install for emu build"
|
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"/*.module || true
|
||||||
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.image || 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
|
rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/{kernel.exec,gdb_grub,gmodule.pl} || true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
|
|
||||||
cd "${srcdir}/grub-${_pkgver}/"
|
cd "${srcdir}/grub-${_pkgver}/"
|
||||||
|
|
||||||
msg "Package grub ${_EFI_ARCH} efi stuff"
|
msg "Package grub ${_EFI_ARCH} efi stuff"
|
||||||
@ -392,5 +376,4 @@ package() {
|
|||||||
|
|
||||||
msg "Package grub bios stuff"
|
msg "Package grub bios stuff"
|
||||||
_package_grub-common_and_bios
|
_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() {
|
post_install() {
|
||||||
if [ -f /boot/grub/grub.cfg.pacsave ]; then
|
if [ -f /boot/grub/grub.cfg.pacsave ]; then
|
||||||
echo "Copying /boot/grub/grub.cfg.pacsave to /boot/grub/grub.cfg"
|
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
|
grub-mkconfig -o /boot/grub/grub.cfg.example 2> /dev/null
|
||||||
echo "done."
|
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