diff options
20 files changed, 1731 insertions, 0 deletions
diff --git a/libre/grub-git/0001-Fix-security-issue-when-reading-username-and-passwor.patch b/libre/grub-git/0001-Fix-security-issue-when-reading-username-and-passwor.patch new file mode 100644 index 000000000..aa07f2ffc --- /dev/null +++ b/libre/grub-git/0001-Fix-security-issue-when-reading-username-and-passwor.patch @@ -0,0 +1,47 @@ +From e16eeda1200deabd0d3a4af968d526d62845a85f Mon Sep 17 00:00:00 2001 +From: Hector Marco-Gisbert <hecmargi@upv.es> +Date: Fri, 13 Nov 2015 16:21:09 +0100 +Subject: [PATCH] Fix security issue when reading username and password + + This patch fixes two integer underflows at: + * grub-core/lib/crypto.c + * grub-core/normal/auth.c + +Resolves: CVE-2015-8370 + +Signed-off-by: Hector Marco-Gisbert <hecmargi@upv.es> +Signed-off-by: Ismael Ripoll-Ripoll <iripoll@disca.upv.es> +--- + grub-core/lib/crypto.c | 2 +- + grub-core/normal/auth.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c +index 010e550..524a3d8 100644 +--- a/grub-core/lib/crypto.c ++++ b/grub-core/lib/crypto.c +@@ -468,7 +468,7 @@ grub_password_get (char buf[], unsigned buf_size) + break; + } + +- if (key == '\b') ++ if (key == '\b' && cur_len) + { + cur_len--; + continue; +diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c +index c6bd96e..5782ec5 100644 +--- a/grub-core/normal/auth.c ++++ b/grub-core/normal/auth.c +@@ -172,7 +172,7 @@ grub_username_get (char buf[], unsigned buf_size) + break; + } + +- if (key == '\b') ++ if (key == '\b' && cur_len) + { + cur_len--; + grub_printf ("\b"); +-- +2.6.4 + diff --git a/libre/grub-git/0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch b/libre/grub-git/0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch new file mode 100644 index 000000000..e043633af --- /dev/null +++ b/libre/grub-git/0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch @@ -0,0 +1,50 @@ +From d09689a5a2863043d007c1acb9bf0a8d1d3b776d Mon Sep 17 00:00:00 2001 +From: Colin Watson <cjwatson@ubuntu.com> +Date: Fri, 28 Dec 2012 06:43:35 +0000 +Subject: [PATCH 069/364] Backport gnulib fixes for C11. Fixes Savannah bug + #37738. + +* grub-core/gnulib/stdio.in.h (gets): Warn on use only if +HAVE_RAW_DECL_GETS. +* m4/stdio_h.m4 (gl_STDIO_H): Check for gets. +--- + ChangeLog | 8 ++++++++ + grub-core/gnulib/stdio.in.h | 6 ++++-- + m4/stdio_h.m4 | 2 +- + 3 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/grub-core/gnulib/stdio.in.h b/grub-core/gnulib/stdio.in.h +index 80b9dbf..a8b00c6 100644 +--- a/grub-core/gnulib/stdio.in.h ++++ b/grub-core/gnulib/stdio.in.h +@@ -138,10 +138,12 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " + #endif + + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning; besides, C11 ++ removed it. */ + #undef gets ++#if HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); ++#endif + + #if @GNULIB_FOPEN@ + # if @REPLACE_FOPEN@ +diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 +index f5650cd..8458bec 100644 +--- a/m4/stdio_h.m4 ++++ b/m4/stdio_h.m4 +@@ -37,7 +37,7 @@ AC_DEFUN([gl_STDIO_H], + dnl corresponding gnulib module is not in use, and which is not + dnl guaranteed by C89. + gl_WARN_ON_USE_PREPARE([[#include <stdio.h> +- ]], [dprintf fpurge fseeko ftello getdelim getline popen renameat ++ ]], [dprintf fpurge fseeko ftello getdelim getline gets popen renameat + snprintf tmpfile vdprintf vsnprintf]) + ]) + +-- +1.8.1.4 + diff --git a/libre/grub-git/09_parabola b/libre/grub-git/09_parabola new file mode 100644 index 000000000..90a9062a3 --- /dev/null +++ b/libre/grub-git/09_parabola @@ -0,0 +1,195 @@ +#!/usr/bin/env bash + +## +## grub-mkconfig helper script specific to Parabola GNU/Linux-libre +## Contributed by "Keshav Amburay" <the ddoott ridikulus ddoott rat aatt geemmayil ddoott ccoomm> +## Rebranded for Parabola by "André Silva" <emulatorman@parabola.nu> +## Updated on 08 February 2014 +## +## Script based on do_grub_config() function in Arch 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 parabola --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 "Parabola GNU/Linux-libre ${_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 Parabola GNU/Linux-libre ${_KERNEL_PKG_} kernel ...' + linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS} + echo 'Loading Parabola GNU/Linux-libre ${_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 "Parabola GNU/Linux-libre ${_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 Parabola GNU/Linux-libre ${_KERNEL_PKG_} kernel ...' + linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS} + echo 'Loading Parabola GNU/Linux-libre ${_KERNEL_PKG_} kernel fallback initramfs ...' + initrd ${REAL_DIR}/${_INITRAMFS_FALLBACK_} +} + +EOF + fi + + if [[ ! -e "/boot/${_INITRAMFS_}" ]] && [[ ! -e "/boot/${_INITRAMFS_FALLBACK_}" ]]; then +cat << EOF + +menuentry "Parabola GNU/Linux-libre ${_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 Parabola GNU/Linux-libre ${_KERNEL_PKG_} kernel ...' + linux ${REAL_DIR}/${_KERNEL_FILE_} root=${GRUB_LINUX_ROOT_DEVICE} rw ${GRUB_LINUX_PARAMS} +} + +EOF + fi + +done diff --git a/libre/grub-git/60_memtest86+ b/libre/grub-git/60_memtest86+ new file mode 100644 index 000000000..086f0cc84 --- /dev/null +++ b/libre/grub-git/60_memtest86+ @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +######################################################## +# This script generates a memtest86+ entry on grub.cfg # +# if memtest is installed on the system. # +######################################################## + +prefix="/usr" +exec_prefix="${prefix}" + +datarootdir="/usr/share" +datadir="${datarootdir}" + +. "${datadir}/grub/grub-mkconfig_lib" + +MEMTEST86_IMAGE="/boot/memtest86+/memtest.bin" +CLASS="--class memtest86 --class gnu --class tool" + +if [ -e "${MEMTEST86_IMAGE}" ] && is_path_readable_by_grub "${MEMTEST86_IMAGE}" ; then + ## image exists, create menu entry + echo "Found memtest86+ image: ${MEMTEST86_IMAGE}" >&2 + _GRUB_MEMTEST_HINTS_STRING="$(${grub_probe} --target=hints_string ${MEMTEST86_IMAGE})" + _GRUB_MEMTEST_FS_UUID="$(${grub_probe} --target=fs_uuid ${MEMTEST86_IMAGE})" + _GRUB_MEMTEST_REL_PATH="$(make_system_path_relative_to_its_root ${MEMTEST86_IMAGE})" + cat << EOF +if [ "\${grub_platform}" == "pc" ]; then + menuentry "Memory Tester (memtest86+)" ${CLASS} { + search --fs-uuid --no-floppy --set=root ${_GRUB_MEMTEST_HINTS_STRING} ${_GRUB_MEMTEST_FS_UUID} + linux16 ${_GRUB_MEMTEST_REL_PATH} ${GRUB_CMDLINE_MEMTEST86} + } +fi +EOF +fi diff --git a/libre/grub-git/PKGBUILD b/libre/grub-git/PKGBUILD new file mode 100644 index 000000000..e0b0a1a2e --- /dev/null +++ b/libre/grub-git/PKGBUILD @@ -0,0 +1,528 @@ +# Maintainer: André Silva <emulatorman@parabola.nu> +# Maintainer: Márcio Silva <coadde@parabola.nu> + +_UNIFONT_VER='8.0.01' + +pkgbase='grub-git' +pkgname+=('grub-am335x_bone-git' 'grub-udoo-git' 'grub-omap3_beagle-git' + 'grub-omap3_beagle_xm-git' 'grub-omap3_beagle_xm_ab-git') +pkgdesc='GNU GRand Unified Bootloader (2), (Parabola rebranded)' +pkgver='r9296.92bbf25' +pkgrel='1' +url='https://www.gnu.org/software/grub/' +arch=('armv7h') +license=('GPL3') +backup=('etc/default/grub' 'etc/grub.d/40_custom') +install="grub.install" +options=('!makeflags') +depends=('sh' 'xz' 'gettext' 'device-mapper') +makedepends=('git' 'rsync' 'xz' 'freetype2' 'ttf-dejavu' 'python' 'autogen' + 'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse') + +optdepends=('freetype2: For grub-mkfont usage' + 'fuse: For grub-mount usage' + 'dosfstools: For grub-mkrescue FAT FS and EFI support' + 'libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue' + 'os-prober: To detect other OSes when generating grub.cfg in BIOS systems' + 'mtools: For grub-mkrescue FAT FS support') + +source=("grub-${pkgver}::git+git://git.sv.gnu.org/grub.git" + "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-20_linux_xen-detect-parabola-initramfs.patch' + 'grub-add-GRUB_COLOR_variables.patch' + '60_memtest86+' + 'grub.default' + 'grub-10_linux-20_linux_xen-detect-am335x_bone+am335x_boneblack-devicetree-file.patch' + 'grub-10_linux-20_linux_xen-detect-omap3_beagle-devicetree-file.patch' + 'grub-10_linux-20_linux_xen-detect-omap3_beagle_xm-devicetree-file.patch' + 'grub-10_linux-20_linux_xen-detect-omap3_beagle_xm_ab-devicetree-file.patch' + 'grub-10_linux-20_linux_xen-detect-udoo-devicetree-file.patch' + 'grub-10_linux-20_linux_xen-rebrand-free-distros.patch') + +md5sums=('SKIP' + '31cd5b872d38a3a3581ef1f7b2ef1216' + 'SKIP' + '9589ec46a04f9bb4d5da987340a4a324' + '3a9bb9bafe0062388e11f72f0e80ba7e' + 'e506ae4a9f9f7d1b765febfa84e10d48' + 'be55eabc102f2c60b38ed35c203686d6' + '8d1dd54ae4a1b550c097e056892ce953' + 'a46695e19b588a53b8bac9e3b3c56096' + '803f5b5f56ba6d74ca84aea67659116e' + 'b2c20ce3aa7944636b3ea499b40f2160' + '7e3245bdd30e291f44ab8a00b8a38f3e' + '95b721dfe74f42df52b7ae94e0e7c067' + 'e0133ad89ab3014210d4599f396a556e') + +validpgpkeys=('95D2E9AB8740D8046387FD151A09227B1F435A33') #Paul Hardy + +pkgver() { + cd "${srcdir}/grub-${pkgver}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "${srcdir}/grub-${pkgver}/" + + msg 'CVE-2015-8370' + patch -Np1 -i "${srcdir}/0001-Fix-security-issue-when-reading-username-and-passwor.patch" + + msg 'Patch to detect of Parabola GNU/Linux-libre initramfs images by grub-mkconfig' + patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-parabola-initramfs.patch" + + 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" + + msg 'Fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme' + sed 's|/usr/share/fonts/dejavu|/usr/share/fonts/dejavu /usr/share/fonts/TTF|g' -i "${srcdir}/grub-${pkgver}/configure.ac" + + msg 'Rebranding for some free distros' + patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-rebrand-free-distros.patch" + + msg "Fix mkinitcpio 'rw' FS#36275" + sed 's| ro | rw |g' -i "${srcdir}/grub-${pkgver}/util/grub.d/10_linux.in" + + # msg 'autogen.sh requires python (2/3). since bzr is in makedepends, use python2 and no need to pull python3' + # sed 's|python |python2 |g' -i "${srcdir}/grub-${pkgver}/autogen.sh" + + msg 'Pull in latest language files' + ./linguas.sh + + msg 'Remove not working langs which need LC_ALL=C.UTF-8' + sed -e 's#en@cyrillic en@greek##g' -i "${srcdir}/grub-${pkgver}/po/LINGUAS" + + 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-uboot_am335x-bone() { + msg "Copy the source for building the U-Boot (am335x-bone) part" + cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-uboot_am335x-bone" + cd "${srcdir}/grub-${pkgver}-uboot_am335x-bone/" + + msg 'Patch to detect am335x-bone device tree blob file (dtb)' + patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-am335x_bone+am335x_boneblack-devicetree-file.patch" + + msg 'change memory adapted for am335x-bone support' + sed -i '\|arm_uboot_ldflags| s|0x08000000|0x82000000| + \|GRUB_KERNEL_ARM_UBOOT_LINK_ADDR| s|0x08000000|0x82000000| + ' grub-core/Makefile.core.def \ + include/grub/offsets.h + #sed -i '\|LINUX_ADDRESS| s|start_of_ram [+] 0x8000|0x82000000| + # \|LINUX_INITRD_ADDRESS| s|start_of_ram [+] 0x02000000|0x88080000| + # \|LINUX_FDT_ADDRESS| s|LINUX_INITRD_ADDRESS [-] 0x10000|0x88000000| + # ' include/grub/arm/linux.h + sed -i '\|grub_arm_disable_caches_mmu|,+4 d + ' grub-core/loader/arm/linux.c + + msg 'Unset all compiler FLAGS for U-Boot (am335x-bone) build' + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + + cd "${srcdir}/grub-${pkgver}-uboot_am335x-bone/" + + msg 'Run autogen.sh for U-Boot (am335x-bone) build' + ./autogen.sh + + msg 'Run ./configure for U-Boot (am335x-bone) build' + ./configure \ + --with-platform='uboot' \ + --target='arm' \ + --disable-efiemu \ + --enable-mm-debug \ + --enable-nls \ + --enable-device-mapper \ + --enable-cache-stats \ + --enable-boot-time \ + --enable-grub-mkfont \ + --enable-grub-mount \ + --prefix='/usr' \ + --bindir='/usr/bin' \ + --sbindir='/usr/bin' \ + --mandir='/usr/share/man' \ + --infodir='/usr/share/info' \ + --datarootdir='/usr/share' \ + --sysconfdir='/etc' \ + --program-prefix='' \ + --with-bootdir='/boot' \ + --with-grubdir='grub' \ + --disable-silent-rules \ + --disable-werror + + msg 'Run make for U-Boot (am335x-bone) build' + make +} + +_build_grub-uboot_omap3_beagle() { + msg "Copy the source for building the U-Boot (omap3_beagle) part" + cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-uboot_omap3_beagle" + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle/" + + msg 'Patch to detect omap3_beagle device tree blob file (dtb)' + patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-omap3_beagle-devicetree-file.patch" + + msg 'change memory adapted for omap3_beagle support' + sed -i '\|arm_uboot_ldflags| s|0x08000000|0x82000000| + \|GRUB_KERNEL_ARM_UBOOT_LINK_ADDR| s|0x08000000|0x82000000| + ' grub-core/Makefile.core.def \ + include/grub/offsets.h + #sed -i '\|LINUX_ADDRESS| s|start_of_ram [+] 0x8000|0x82000000| + # \|LINUX_INITRD_ADDRESS| s|start_of_ram [+] 0x02000000|0x88080000| + # \|LINUX_FDT_ADDRESS| s|LINUX_INITRD_ADDRESS [-] 0x10000|0x88000000| + # ' include/grub/arm/linux.h + sed -i '\|grub_arm_disable_caches_mmu|,+4 d + ' grub-core/loader/arm/linux.c + + msg 'Unset all compiler FLAGS for U-Boot (omap3_beagle) build' + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle/" + + msg 'Run autogen.sh for U-Boot (omap3_beagle) build' + ./autogen.sh + + msg 'Run ./configure for U-Boot (omap3_beagle) build' + ./configure \ + --with-platform='uboot' \ + --target='arm' \ + --disable-efiemu \ + --enable-mm-debug \ + --enable-nls \ + --enable-device-mapper \ + --enable-cache-stats \ + --enable-boot-time \ + --enable-grub-mkfont \ + --enable-grub-mount \ + --prefix='/usr' \ + --bindir='/usr/bin' \ + --sbindir='/usr/bin' \ + --mandir='/usr/share/man' \ + --infodir='/usr/share/info' \ + --datarootdir='/usr/share' \ + --sysconfdir='/etc' \ + --program-prefix='' \ + --with-bootdir='/boot' \ + --with-grubdir='grub' \ + --disable-silent-rules \ + --disable-werror + + msg 'Run make for U-Boot (omap3_beagle) build' + make +} + +_build_grub-uboot_omap3_beagle_xm() { + msg "Copy the source for building the U-Boot (omap3_beagle_xm) part" + cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm" + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm/" + + msg 'Patch to detect omap3_beagle_xm device tree blob file (dtb)' + patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm-devicetree-file.patch" + + msg 'change memory adapted for omap3_beagle_xm support' + sed -i '\|arm_uboot_ldflags| s|0x08000000|0x82000000| + \|GRUB_KERNEL_ARM_UBOOT_LINK_ADDR| s|0x08000000|0x82000000| + ' grub-core/Makefile.core.def \ + include/grub/offsets.h + #sed -i '\|LINUX_ADDRESS| s|start_of_ram [+] 0x8000|0x82000000| + # \|LINUX_INITRD_ADDRESS| s|start_of_ram [+] 0x02000000|0x88080000| + # \|LINUX_FDT_ADDRESS| s|LINUX_INITRD_ADDRESS [-] 0x10000|0x88000000| + # ' include/grub/arm/linux.h + sed -i '\|grub_arm_disable_caches_mmu|,+4 d + ' grub-core/loader/arm/linux.c + + msg 'Unset all compiler FLAGS for U-Boot (omap3_beagle_xm) build' + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm/" + + msg 'Run autogen.sh for U-Boot (omap3_beagle_xm) build' + ./autogen.sh + + msg 'Run ./configure for U-Boot (omap3_beagle_xm) build' + ./configure \ + --with-platform='uboot' \ + --target='arm' \ + --disable-efiemu \ + --enable-mm-debug \ + --enable-nls \ + --enable-device-mapper \ + --enable-cache-stats \ + --enable-boot-time \ + --enable-grub-mkfont \ + --enable-grub-mount \ + --prefix='/usr' \ + --bindir='/usr/bin' \ + --sbindir='/usr/bin' \ + --mandir='/usr/share/man' \ + --infodir='/usr/share/info' \ + --datarootdir='/usr/share' \ + --sysconfdir='/etc' \ + --program-prefix='' \ + --with-bootdir='/boot' \ + --with-grubdir='grub' \ + --disable-silent-rules \ + --disable-werror + + msg 'Run make for U-Boot (omap3_beagle_xm) build' + make +} + +_build_grub-uboot_omap3_beagle_xm_ab() { + msg "Copy the source for building the U-Boot (omap3_beagle_xm_ab) part" + cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm_ab" + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm_ab/" + + msg 'Patch to detect omap3_beagle_xm_ab device tree blob file (dtb)' + patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm_ab-devicetree-file.patch" + + msg 'change memory adapted for omap3_beagle_xm_ab support' + sed -i '\|arm_uboot_ldflags| s|0x08000000|0x82000000| + \|GRUB_KERNEL_ARM_UBOOT_LINK_ADDR| s|0x08000000|0x82000000| + ' grub-core/Makefile.core.def \ + include/grub/offsets.h + #sed -i '\|LINUX_ADDRESS| s|start_of_ram [+] 0x8000|0x82000000| + # \|LINUX_INITRD_ADDRESS| s|start_of_ram [+] 0x02000000|0x88080000| + # \|LINUX_FDT_ADDRESS| s|LINUX_INITRD_ADDRESS [-] 0x10000|0x88000000| + # ' include/grub/arm/linux.h + sed -i '\|grub_arm_disable_caches_mmu|,+4 d + ' grub-core/loader/arm/linux.c + + msg 'Unset all compiler FLAGS for U-Boot (omap3_beagle_xm_ab) build' + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm_ab/" + + msg 'Run autogen.sh for U-Boot (omap3_beagle_xm_ab) build' + ./autogen.sh + + msg 'Run ./configure for U-Boot (omap3_beagle_xm_ab) build' + ./configure \ + --with-platform='uboot' \ + --target='arm' \ + --disable-efiemu \ + --enable-mm-debug \ + --enable-nls \ + --enable-device-mapper \ + --enable-cache-stats \ + --enable-boot-time \ + --enable-grub-mkfont \ + --enable-grub-mount \ + --prefix='/usr' \ + --bindir='/usr/bin' \ + --sbindir='/usr/bin' \ + --mandir='/usr/share/man' \ + --infodir='/usr/share/info' \ + --datarootdir='/usr/share' \ + --sysconfdir='/etc' \ + --program-prefix='' \ + --with-bootdir='/boot' \ + --with-grubdir='grub' \ + --disable-silent-rules \ + --disable-werror + + msg 'Run make for U-Boot (omap3_beagle_xm_ab) build' + make +} + +_build_grub-uboot_udoo() { + msg "Copy the source for building the U-Boot (udoo) part" + cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-uboot_udoo" + cd "${srcdir}/grub-${pkgver}-uboot_udoo/" + + msg 'Patch to detect udoo device tree blob file (dtb)' + patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-udoo-devicetree-file.patch" + + msg 'change memory adapted for udoo support' + sed -i '\|arm_uboot_ldflags| s|0x08000000|0x12000000| + \|GRUB_KERNEL_ARM_UBOOT_LINK_ADDR| s|0x08000000|0x12000000| + ' grub-core/Makefile.core.def \ + include/grub/offsets.h + #sed -i '\|LINUX_ADDRESS| s|start_of_ram [+] 0x8000|0x12000000| + # \|LINUX_INITRD_ADDRESS| s|start_of_ram [+] 0x02000000|0x12A00000| + # \|LINUX_FDT_ADDRESS| s|LINUX_INITRD_ADDRESS [-] 0x10000|0x18000000| + # ' include/grub/arm/linux.h + sed -i '\|grub_arm_disable_caches_mmu|,+4 d + ' grub-core/loader/arm/linux.c + + msg 'Unset all compiler FLAGS for U-Boot (udoo) build' + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + + cd "${srcdir}/grub-${pkgver}-uboot_udoo/" + + msg 'Run autogen.sh for U-Boot (udoo) build' + ./autogen.sh + + msg 'Run ./configure for U-Boot (udoo) build' + ./configure \ + --with-platform='uboot' \ + --target='arm' \ + --disable-efiemu \ + --enable-mm-debug \ + --enable-nls \ + --enable-device-mapper \ + --enable-cache-stats \ + --enable-boot-time \ + --enable-grub-mkfont \ + --enable-grub-mount \ + --prefix='/usr' \ + --bindir='/usr/bin' \ + --sbindir='/usr/bin' \ + --mandir='/usr/share/man' \ + --infodir='/usr/share/info' \ + --datarootdir='/usr/share' \ + --sysconfdir='/etc' \ + --program-prefix='' \ + --with-bootdir='/boot' \ + --with-grubdir='grub' \ + --disable-silent-rules \ + --disable-werror + + msg 'Run make for U-Boot (udoo) build' + make +} + +build() { + cd "${srcdir}/grub-${pkgver}/" + + msg 'Build grub U-Boot for BeagleBone and BeagleBone Black (am335x-bone) stuff' + _build_grub-uboot_am335x-bone + + msg 'Build grub U-Boot for BeagleBoard (omap3_beagle) stuff' + _build_grub-uboot_omap3_beagle + + msg 'Build grub U-Boot for BeagleBoard-xM (omap3_beagle_xm) stuff' + _build_grub-uboot_omap3_beagle_xm + + msg 'Build grub U-Boot for BeagleBoard-xM rev A/B (omap3_beagle_xm_ab) stuff' + _build_grub-uboot_omap3_beagle_xm_ab + + msg 'Build grub U-Boot for UDOO (udoo) stuff' + _build_grub-uboot_udoo +} + +package_grub-am335x_bone-git() { + pkgdesc='GNU GRand Unified Bootloader (2) for BeagleBone and BeagleBone Black (am335x-bone), (Parabola rebranded)' + provides=('grub-am335x_bone') + conflicts=('grub-am335x_bone') + + cd "${srcdir}/grub-${pkgver}-uboot_am335x-bone/" + + msg 'Package grub U-Boot stuff' + + msg 'Run make install for U-Boot build' + make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install + + msg 'Remove gdb debugging related files for U-Boot build' + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.module || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.image || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/{kernel.exec,gdb_grub,gmodule.pl} || true + + msg 'Install /etc/default/grub (used by grub-mkconfig)' + install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" +} + +package_grub-omap3_beagle-git() { + pkgdesc='GNU GRand Unified Bootloader (2) for BeagleBoard (omap3_beagle), (Parabola rebranded)' + provides=('grub-beagleboard' 'grub-omap3_beagle') + conflicts=('grub-omap3_beagle') + + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle/" + + msg 'Package grub U-Boot stuff' + + msg 'Run make install for U-Boot build' + make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install + + msg 'Remove gdb debugging related files for U-Boot build' + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.module || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.image || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/{kernel.exec,gdb_grub,gmodule.pl} || true + + msg 'Install /etc/default/grub (used by grub-mkconfig)' + install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" +} + +package_grub-omap3_beagle_xm-git() { + pkgdesc='GNU GRand Unified Bootloader (2) for BeagleBoard-xM (omap3_beagle_xm), (Parabola rebranded)' + provides=('grub-beagleboard' 'grub-omap3_beagle_xm') + conflicts=('grub-omap3_beagle_xm') + + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm/" + + msg 'Package grub U-Boot stuff' + + msg 'Run make install for U-Boot build' + make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install + + msg 'Remove gdb debugging related files for U-Boot build' + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.module || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.image || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/{kernel.exec,gdb_grub,gmodule.pl} || true + + msg 'Install /etc/default/grub (used by grub-mkconfig)' + install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" +} + +package_grub-omap3_beagle_xm_ab-git() { + pkgdesc='GNU GRand Unified Bootloader (2) for BeagleBoard-xM rev A/B (omap3_beagle_xm_ab), (Parabola rebranded)' + provides=('grub-beagleboard' 'grub-omap3_beagle_xm_ab') + conflicts=('grub-omap3_beagle_xm_ab') + + cd "${srcdir}/grub-${pkgver}-uboot_omap3_beagle_xm_ab/" + + msg 'Package grub U-Boot stuff' + + msg 'Run make install for U-Boot build' + make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install + + msg 'Remove gdb debugging related files for U-Boot build' + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.module || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.image || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/{kernel.exec,gdb_grub,gmodule.pl} || true + + msg 'Install /etc/default/grub (used by grub-mkconfig)' + install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" +} + +package_grub-udoo-git() { + pkgdesc='GNU GRand Unified Bootloader (2) for UDOO (udoo), (Parabola rebranded)' + provides=('grub-udoo') + conflicts=('grub-udoo') + + cd "${srcdir}/grub-${pkgver}-uboot_udoo/" + + msg 'Package grub U-Boot stuff' + + msg 'Run make install for U-Boot build' + make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install + + msg 'Remove gdb debugging related files for U-Boot build' + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.module || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.image || true + rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/{kernel.exec,gdb_grub,gmodule.pl} || true + + msg 'Install /etc/default/grub (used by grub-mkconfig)' + install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" +} diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-am335x_bone+-devicetree-file.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-am335x_bone+-devicetree-file.patch new file mode 100644 index 000000000..b620a39d0 --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-am335x_bone+-devicetree-file.patch @@ -0,0 +1,92 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-10-16 08:28:56.901970897 -0300 ++++ b/util/grub.d/10_linux.in 2015-10-16 08:30:45.112786124 -0300 +@@ -139,6 +139,25 @@ + initrd ${rel_dirname}/${initrd} + EOF + fi ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-bone.dtb ++EOF ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb ++EOF ++ fi ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -222,6 +241,16 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-bone.dtb" >&2 ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-boneblack.dtb" >&2 ++ fi ++ 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}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-10-16 08:28:56.901970897 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-10-16 08:31:03.152921373 -0300 +@@ -132,6 +132,25 @@ + module --nounzip ${rel_dirname}/${initrd} + EOF + fi ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-bone.dtb ++EOF ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb ++EOF ++ fi ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -235,6 +254,16 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-bone.dtb" >&2 ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-boneblack.dtb" >&2 ++ fi ++ fi ++ + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-am335x_bone+am335x_boneblack-devicetree-file.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-am335x_bone+am335x_boneblack-devicetree-file.patch new file mode 100644 index 000000000..b620a39d0 --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-am335x_bone+am335x_boneblack-devicetree-file.patch @@ -0,0 +1,92 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-10-16 08:28:56.901970897 -0300 ++++ b/util/grub.d/10_linux.in 2015-10-16 08:30:45.112786124 -0300 +@@ -139,6 +139,25 @@ + initrd ${rel_dirname}/${initrd} + EOF + fi ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-bone.dtb ++EOF ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb ++EOF ++ fi ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -222,6 +241,16 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-bone.dtb" >&2 ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-boneblack.dtb" >&2 ++ fi ++ 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}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-10-16 08:28:56.901970897 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-10-16 08:31:03.152921373 -0300 +@@ -132,6 +132,25 @@ + module --nounzip ${rel_dirname}/${initrd} + EOF + fi ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-bone.dtb ++EOF ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb ++EOF ++ fi ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -235,6 +254,16 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-bone.dtb" >&2 ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-boneblack.dtb" >&2 ++ fi ++ fi ++ + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle+-devicetree-file.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle+-devicetree-file.patch new file mode 100644 index 000000000..b620a39d0 --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle+-devicetree-file.patch @@ -0,0 +1,92 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-10-16 08:28:56.901970897 -0300 ++++ b/util/grub.d/10_linux.in 2015-10-16 08:30:45.112786124 -0300 +@@ -139,6 +139,25 @@ + initrd ${rel_dirname}/${initrd} + EOF + fi ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-bone.dtb ++EOF ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb ++EOF ++ fi ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -222,6 +241,16 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-bone.dtb" >&2 ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-boneblack.dtb" >&2 ++ fi ++ 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}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-10-16 08:28:56.901970897 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-10-16 08:31:03.152921373 -0300 +@@ -132,6 +132,25 @@ + module --nounzip ${rel_dirname}/${initrd} + EOF + fi ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-bone.dtb ++EOF ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree file ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/am335x-boneblack.dtb ++EOF ++ fi ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -235,6 +254,16 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BONE' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-bone.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-bone.dtb" >&2 ++ fi ++ elif [ "$(cat /sys/devices/platform/bone_capemgr/baseboard/board-name)" = 'A335BNLT' ]; then ++ if test -f "${dirname}/dtbs/${version}/am335x-boneblack.dtb" ; then ++ gettext_printf "Found device tree file: %s\n" "${dirname}/dtbs/${version}/am335x-boneblack.dtb" >&2 ++ fi ++ fi ++ + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle-devicetree-file.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle-devicetree-file.patch new file mode 100644 index 000000000..0e5bc382a --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle-devicetree-file.patch @@ -0,0 +1,58 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 18:43:26.911364096 -0300 +@@ -139,6 +139,14 @@ + initrd ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/omap3-beagle.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/omap3-beagle.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -222,6 +230,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/omap3-beagle.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/omap3-beagle.dtb" >&2 ++ 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}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 18:47:34.953427471 -0300 +@@ -132,6 +132,14 @@ + module --nounzip ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/omap3-beagle.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/omap3-beagle.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -235,6 +243,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/omap3-beagle.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/omap3-beagle.dtb" >&2 ++ fi ++ + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm-devicetree-file.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm-devicetree-file.patch new file mode 100644 index 000000000..387ebbcc5 --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm-devicetree-file.patch @@ -0,0 +1,58 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 18:43:26.911364096 -0300 +@@ -139,6 +139,14 @@ + initrd ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/omap3-beagle-xm.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/omap3-beagle-xm.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -222,6 +230,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/omap3-beagle-xm.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/omap3-beagle-xm.dtb" >&2 ++ 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}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 18:47:34.953427471 -0300 +@@ -132,6 +132,14 @@ + module --nounzip ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/omap3-beagle-xm.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/omap3-beagle-xm.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -235,6 +243,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/omap3-beagle-xm.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/omap3-beagle-xm.dtb" >&2 ++ fi ++ + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm_ab-devicetree-file.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm_ab-devicetree-file.patch new file mode 100644 index 000000000..31b59890e --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-omap3_beagle_xm_ab-devicetree-file.patch @@ -0,0 +1,58 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 18:43:26.911364096 -0300 +@@ -139,6 +139,14 @@ + initrd ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -222,6 +230,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb" >&2 ++ 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}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 18:47:34.953427471 -0300 +@@ -132,6 +132,14 @@ + module --nounzip ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -235,6 +243,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/omap3-beagle-xm-ab.dtb" >&2 ++ fi ++ + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-parabola-initramfs.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-parabola-initramfs.patch new file mode 100644 index 000000000..8184871b5 --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-parabola-initramfs.patch @@ -0,0 +1,126 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 15:34:19.822404966 -0300 +@@ -80,9 +80,11 @@ + if [ x$type != xsimple ] ; then + case $type in + recovery) +- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; ++ title="$(gettext_printf "%s, %s kernel (recovery mode)" "${os}" "${version}")" ;; ++ fallback) ++ title="$(gettext_printf "%s, %s kernel (fallback initramfs)" "${os}" "${version}")" ;; + *) +- title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; ++ title="$(gettext_printf "%s, %s kernel" "${os}" "${version}")" ;; + esac + if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then + replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" +@@ -94,7 +96,7 @@ + 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 + +@@ -126,7 +128,7 @@ + fi + printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" + fi +- message="$(gettext_printf "Loading Linux %s ..." ${version})" ++ message="$(gettext_printf "Loading %s kernel ..." ${version})" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} +@@ -182,7 +184,7 @@ + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` +- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` ++ version=`echo $basename | sed -e "s,vmlinuz-,,g"` + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + +@@ -238,6 +240,18 @@ + + linux_entry "${OS}" "${version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ ++ if test -e "${dirname}/initramfs-${version}-fallback.img" ; then ++ initrd="initramfs-${version}-fallback.img" ++ ++ if test -n "${initrd}" ; then ++ gettext_printf "Found fallback initramfs image: %s\n" "${dirname}/${initrd}" >&2 ++ fi ++ ++ linux_entry "${OS}" "${version}" fallback \ ++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" ++ fi ++ + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" recovery \ + "single ${GRUB_CMDLINE_LINUX}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 15:35:00.589739244 -0300 +@@ -88,9 +88,11 @@ + fi + if [ x$type != xsimple ] ; then + if [ x$type = xrecovery ] ; then +- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${xen_version}" "${version}")" ++ title="$(gettext_printf "%s, with Xen %s and %s kernel (recovery mode)" "${os}" "${xen_version}" "${version}")" ++ elif [ x$type = xfallback ] ; then ++ title="$(gettext_printf "%s, with Xen %s and %s kernel (fallback initramfs)" "${os}" "${xen_version}" "${version}")" + else +- title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" ++ title="$(gettext_printf "%s, with Xen %s and %s kernel" "${os}" "${xen_version}" "${version}")" + fi + replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" + if [ x"Xen ${xen_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then +@@ -103,7 +105,7 @@ + title="$(gettext_printf "%s, with Xen hypervisor" "${os}")" + echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-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 | sed "s/^/$submenu_indentation/" + fi + +@@ -112,7 +114,7 @@ + fi + printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" + xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})" +- lmessage="$(gettext_printf "Loading Linux %s ..." ${version})" ++ lmessage="$(gettext_printf "Loading %s kernel ..." ${version})" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$xmessage" | grub_quote)' + if [ "\$grub_platform" = "pc" -o "\$grub_platform" = "" ]; then +@@ -210,7 +212,7 @@ + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` +- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` ++ version=`echo $basename | sed -e "s,vmlinuz-,,g"` + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + +@@ -252,6 +254,18 @@ + + linux_entry "${OS}" "${version}" "${xen_version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" ++ ++ if test -e "${dirname}/initramfs-${version}-fallback.img" ; then ++ initrd="initramfs-${version}-fallback.img" ++ ++ if test -n "${initrd}" ; then ++ gettext_printf "Found fallback initramfs image: %s\n" "${dirname}/${initrd}" >&2 ++ fi ++ ++ linux_entry "${OS}" "${version}" "${xen_version}" fallback \ ++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" ++ fi ++ + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" "${xen_version}" recovery \ + "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-detect-udoo-devicetree-file.patch b/libre/grub-git/grub-10_linux-20_linux_xen-detect-udoo-devicetree-file.patch new file mode 100644 index 000000000..7cd6be6b4 --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-detect-udoo-devicetree-file.patch @@ -0,0 +1,58 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 18:43:26.911364096 -0300 +@@ -139,6 +139,14 @@ + initrd ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/imx6q-udoo.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/imx6q-udoo.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -222,6 +230,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/imx6q-udoo.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/imx6q-udoo.dtb" >&2 ++ 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}" +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 18:47:34.953427471 -0300 +@@ -132,6 +132,14 @@ + module --nounzip ${rel_dirname}/${initrd} + EOF + fi ++ if test -d "${rel_dirname}/dtbs/${version}/imx6q-udoo.dtb" ; then ++ # TRANSLATORS: Device tree path isn't identifier. Should be translated. ++ message="$(gettext_printf "Loading devices tree path ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/dtbs/${version}/imx6q-udoo.dtb ++EOF ++ fi + sed "s/^/$submenu_indentation/" << EOF + } + EOF +@@ -235,6 +243,10 @@ + linux_root_device_thisversion=${GRUB_DEVICE} + fi + ++ if test -d "${dirname}/dtbs/${version}/imx6q-udoo.dtb" ; then ++ gettext_printf "Found device tree directory: %s\n" "${dirname}/dtbs/${version}/imx6q-udoo.dtb" >&2 ++ fi ++ + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" diff --git a/libre/grub-git/grub-10_linux-20_linux_xen-rebrand-free-distros.patch b/libre/grub-git/grub-10_linux-20_linux_xen-rebrand-free-distros.patch new file mode 100644 index 000000000..47added0d --- /dev/null +++ b/libre/grub-git/grub-10_linux-20_linux_xen-rebrand-free-distros.patch @@ -0,0 +1,44 @@ +diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +--- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/10_linux.in 2015-09-27 14:58:23.533917184 -0300 +@@ -31,7 +31,17 @@ + if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux + else +- OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then ++ OS="${GRUB_DISTRIBUTOR} Linux and GNU" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then ++ OS="${GRUB_DISTRIBUTOR} GNU+Linux" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ else ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ fi + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + fi + +diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +--- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300 ++++ b/util/grub.d/20_linux_xen.in 2015-09-27 14:59:16.319319658 -0300 +@@ -31,7 +31,17 @@ + if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux + else +- OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then ++ OS="${GRUB_DISTRIBUTOR} Linux and GNU" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then ++ OS="${GRUB_DISTRIBUTOR} GNU+Linux" ++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre" ++ else ++ OS="${GRUB_DISTRIBUTOR} GNU/Linux" ++ fi + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + fi + diff --git a/libre/grub-git/grub-2.00-fix-docs.patch b/libre/grub-git/grub-2.00-fix-docs.patch new file mode 100644 index 000000000..0aa481154 --- /dev/null +++ b/libre/grub-git/grub-2.00-fix-docs.patch @@ -0,0 +1,21 @@ +From 40d6b00fa48ae9c1cecf143da5c6061f6ffcb719 Mon Sep 17 00:00:00 2001 +From: Ray Strode <rstrode@redhat.com +Date: Tue, 12 Mar 2013 15:23:02 -0400 +Subject: [PATCH] Fix docs + +I think the doc generation tools got stricter, so fix up the .texi file +to work. + +diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi +--- a/docs/grub-dev.texi ++++ b/docs/grub-dev.texi +@@ -1394,8 +1394,8 @@ grub_video_blit_glyph (&glyph, color, 0, + + @node Bitmap API + @section Bitmap API +-@itemize + @subsection grub_video_bitmap_create ++@itemize + @item Prototype: + @example + grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap, unsigned int width, unsigned int height, enum grub_video_blit_format blit_format) diff --git a/libre/grub-git/grub-2.00-mkinitcpio-0.15.patch b/libre/grub-git/grub-2.00-mkinitcpio-0.15.patch new file mode 100644 index 000000000..1af848fa3 --- /dev/null +++ b/libre/grub-git/grub-2.00-mkinitcpio-0.15.patch @@ -0,0 +1,11 @@ +--- 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. diff --git a/libre/grub-git/grub-2.00.5086-fix-lvm-parsing.patch b/libre/grub-git/grub-2.00.5086-fix-lvm-parsing.patch new file mode 100644 index 000000000..9a2eb3ff7 --- /dev/null +++ b/libre/grub-git/grub-2.00.5086-fix-lvm-parsing.patch @@ -0,0 +1,54 @@ +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; diff --git a/libre/grub-git/grub-add-GRUB_COLOR_variables.patch b/libre/grub-git/grub-add-GRUB_COLOR_variables.patch new file mode 100644 index 000000000..c113a81d5 --- /dev/null +++ b/libre/grub-git/grub-add-GRUB_COLOR_variables.patch @@ -0,0 +1,32 @@ +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index 3390ba9..c416489 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -218,6 +218,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 d2e7252..8259f45 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/libre/grub-git/grub.default b/libre/grub-git/grub.default new file mode 100644 index 000000000..56585a47d --- /dev/null +++ b/libre/grub-git/grub.default @@ -0,0 +1,50 @@ +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR="Parabola" +GRUB_CMDLINE_LINUX_DEFAULT="quiet" +GRUB_CMDLINE_LINUX="" + +# Preload both GPT and MBR modules so that they are not missed +GRUB_PRELOAD_MODULES="part_gpt part_msdos" + +# Uncomment to enable Hidden Menu, and optionally hide the timeout count +#GRUB_HIDDEN_TIMEOUT=5 +#GRUB_HIDDEN_TIMEOUT_QUIET=true + +# Uncomment to use basic console +GRUB_TERMINAL_INPUT=console + +# Uncomment to disable graphical terminal +#GRUB_TERMINAL_OUTPUT=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +GRUB_GFXMODE=auto + +# Uncomment to allow the kernel use the same resolution used by grub +GRUB_GFXPAYLOAD_LINUX=keep + +# Uncomment if you want GRUB to pass to the Linux kernel the old parameter +# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +GRUB_DISABLE_RECOVERY=true + +# Uncomment and set to the desired menu colors. Used by normal and wallpaper +# modes only. Entries specified as foreground/background. +GRUB_COLOR_NORMAL="magenta/black" +GRUB_COLOR_HIGHLIGHT="white/magenta" + +# Uncomment one of them for the gfx desired, a image background or a gfxtheme +#GRUB_BACKGROUND="/path/to/wallpaper" +#GRUB_THEME="/path/to/gfxtheme" + +# Uncomment to get a beep at GRUB start +#GRUB_INIT_TUNE="480 440 1" + +#GRUB_SAVEDEFAULT="true" + +# Disable advanced submenu +GRUB_DISABLE_SUBMENU="y" diff --git a/libre/grub-git/grub.install b/libre/grub-git/grub.install new file mode 100644 index 000000000..9188b357a --- /dev/null +++ b/libre/grub-git/grub.install @@ -0,0 +1,33 @@ +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" + install -D -m0644 /boot/grub/grub.cfg.pacsave /boot/grub/grub.cfg + fi + + cat << 'EOM' +Generating grub.cfg.example config file... +This may fail on some machines running a custom kernel. +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 +} |