From 059069eb0c1b03a2f1ee680eb314c38a140e710f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fabian=20Silva=20Delgado?= Date: Fri, 30 Mar 2012 03:21:36 -0300 Subject: libre/grub2 --- libre/grub2/20_memtest86+ | 10 +- libre/grub2/PKGBUILD | 368 ++++++++++++--------- libre/grub2/archlinux_grub2_mkconfig_fixes.patch | 92 ++++-- libre/grub2/archlinux_grub_mkconfig_fixes.patch | 141 ++++++++ .../fix_stack_pointer_handling_16_relocator.patch | 13 + ...config-Use_outside_GRUB_PREFIX_if_defined.patch | 15 + libre/grub2/grub.cfg | 139 ++++++-- libre/grub2/grub.default | 9 +- libre/grub2/grub2.install | 6 +- .../grub2_automake_1.11.2_pkglib_to_pkgdata.patch | 134 ++++++++ libre/grub2/grub2_bzr_export.sh | 96 +++--- libre/grub2/grub_extras_lua_args_fix.patch | 13 + 12 files changed, 777 insertions(+), 259 deletions(-) create mode 100644 libre/grub2/archlinux_grub_mkconfig_fixes.patch create mode 100644 libre/grub2/fix_stack_pointer_handling_16_relocator.patch create mode 100644 libre/grub2/grub-mkconfig-Use_outside_GRUB_PREFIX_if_defined.patch create mode 100644 libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch create mode 100644 libre/grub2/grub_extras_lua_args_fix.patch (limited to 'libre/grub2') diff --git a/libre/grub2/20_memtest86+ b/libre/grub2/20_memtest86+ index 41ca11f02..1d3096f6b 100644 --- a/libre/grub2/20_memtest86+ +++ b/libre/grub2/20_memtest86+ @@ -4,11 +4,13 @@ # if memtest is installed on the system. # ######################################################## -prefix=/usr -exec_prefix=${prefix} -libdir=${exec_prefix}/lib +prefix="/usr" +exec_prefix="${prefix}" -. ${libdir}/grub/grub-mkconfig_lib +datarootdir="/usr/share" +datadir="${datarootdir}" + +. "${datadir}/grub/grub-mkconfig_lib" MEMTEST86_IMAGE="/boot/memtest86+/memtest.bin" CLASS="--class memtest86 --class gnu --class tool" diff --git a/libre/grub2/PKGBUILD b/libre/grub2/PKGBUILD index 9f445eb1d..d84f8a62c 100644 --- a/libre/grub2/PKGBUILD +++ b/libre/grub2/PKGBUILD @@ -1,206 +1,254 @@ # Maintainer: Ronald van Haren -# Contributor: Keshav P R +# Contributor: Keshav P R <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> +# Maintainer (Parabola): André Silva -# The src pkg includes grub2_bzr_export.sh to create newer grub-extras snapshots. Modify the paths in it accordingly. +_grub_bzr_rev="4169" +_pkgver="2.00~beta2" -# _grub2_rev=3238 - -_grub2_lua_ver=20 -_grub2_gpxe_ver=12 -_grub2_ntldr_ver=17 -_grub2_915_ver=7 +_grub_lua_ver=24 +_grub_gpxe_ver=12 +_grub_ntldr_ver=21 +_grub_915_ver=9 pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-i386') -pkgbase="grub2" -pkgver='1.99' -pkgrel=4 +pkgbase=grub2 +pkgver=2.00beta2 +pkgrel=3 url="http://www.gnu.org/software/grub/" arch=('i686' 'x86_64') license=('GPL3') -epoch=1 -makedepends=('bdf-unifont' 'python2' 'xz' 'autogen' 'texinfo' 'help2man' 'gettext' 'device-mapper') -options=(strip purge docs zipman !emptydirs) - -# "http://alpha.gnu.org/gnu/grub/grub-${pkgver}.tar.xz" -source=("ftp://ftp.gnu.org/gnu/grub/grub-1.99.tar.xz" - "ftp://ftp.archlinux.org/other/grub2/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz" - "ftp://ftp.archlinux.org/other/grub2/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz" - "ftp://ftp.archlinux.org/other/grub2/grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz" - "ftp://ftp.archlinux.org/other/grub2/grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz" - 'archlinux_grub2_mkconfig_fixes.patch' - 'grub.default' - 'grub.cfg' - '20_memtest86+' - 'grub2_bzr_export.sh' - 'parabola-mkconfig.patch') - -noextract=("grub2_extras_lua_r${_grub2_lua_ver}.tar.xz" - "grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz" - "grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz" - "grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz") - -sha1sums=('a5ae9558f30ce7757a76aa130088b053a87e2fb6' - '9f2dbf7a3faab24ca92266400aa513fecd3895c8' +epoch="1" +makedepends=('rsync' 'xz' 'bdf-unifont' 'python' 'autogen' 'texinfo' + 'help2man' 'gettext' 'device-mapper' 'fuse' 'dosfstools' 'efibootmgr') + +# source=("ftp://ftp.archlinux.org/other/grub2/grub_r${_grub_bzr_rev}.tar.xz" +source=("http://alpha.gnu.org/gnu/grub/grub-${_pkgver}".tar.xz + "ftp://ftp.archlinux.org/other/grub2/grub2_extras_lua_r${_grub_lua_ver}.tar.xz" + "ftp://ftp.archlinux.org/other/grub2/grub2_extras_gpxe_r${_grub_gpxe_ver}.tar.xz" + "ftp://ftp.archlinux.org/other/grub2/grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz" + "ftp://ftp.archlinux.org/other/grub2/grub2_extras_915resolution_r${_grub_915_ver}.tar.xz" + 'archlinux_grub_mkconfig_fixes.patch' + 'grub.default' + 'grub.cfg' + '20_memtest86+') + +noextract=("grub2_extras_lua_r${_grub_lua_ver}.tar.xz" + "grub2_extras_gpxe_r${_grub_gpxe_ver}.tar.xz" + "grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz" + "grub2_extras_915resolution_r${_grub_915_ver}.tar.xz") + +sha1sums=('2ba583f9466fb676b0ae3d7a9a82d1299b153a98' + '89290031b974780c6df76893836d2477d4add895' 'b04994c005910b4bf123f034b30109d5c8d6fd86' - 'e0c1a97770cc23226cf4535c029ef50b17f67974' - '8bcaed545956bb33581e1b97ac96a2c3717ec793' - 'b7e5510c7b171e9c4dbddb42bbf54ce5ee86e2de' - 'd1252b837b13ebf817dbc45cfd4d772c7d1b621f' - '7df0516c6c45816aa330b775f1ed6f652e4f0380' - '82a27eca5277218cf57c6c5767e0b17a72f62229' - 'beb31419045db70fee7401aa6448c220a491e2a3' - '27930016362d6647282405183b9977f0a7b15c1a') + 'eb4b35b4c36b64f9405cbcbc538cb205171c1c0a' + 'd5ae2efec25616028a9d89e98b6e454f1c4c415f' + 'cdace8067562fab04aaacac8d99a4ea612fa0c5b' + '348b148d5183825f31a3d24a7ebf2d6a709f4e6a' + '6f0870673b9f994163326a416432aee7eacdbfc5' + 'ce35d7ae75cd1b5b677e894e528f96add40e77b9') -build() { - # set architecture dependent variables - if [ "${CARCH}" = "x86_64" ] ; then - _EFIEMU="--enable-efiemu" - else - _EFIEMU="--disable-efiemu" - fi - _HOST="${CARCH}" +_build_grub2-common_and_bios() { - build_grub2-common_and_bios - build_grub2-efi -} + ## copy the source for building the common/bios package + cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub_bios-${_pkgver}" + cd "${srcdir}/grub_bios-${_pkgver}" + + ## Apply Archlinux specific fixes to enable grub-mkconfig detect Arch kernels and initramfs + patch -Np1 -i "${srcdir}/archlinux_grub_mkconfig_fixes.patch" + echo + + ## add the grub-extra sources + export GRUB_CONTRIB="${srcdir}/grub_bios-${_pkgver}/grub-extras/" + install -d "${srcdir}/grub_bios-${_pkgver}/grub-extras" + + bsdtar xf "${srcdir}/grub2_extras_lua_r${_grub_lua_ver}.tar.xz" \ + -C "${srcdir}/grub_bios-${_pkgver}/grub-extras" + + bsdtar xf "${srcdir}/grub2_extras_gpxe_r${_grub_gpxe_ver}.tar.xz" \ + -C "${srcdir}/grub_bios-${_pkgver}/grub-extras" + + bsdtar xf "${srcdir}/grub2_extras_ntldr-img_r${_grub_ntldr_ver}.tar.xz" \ + -C "${srcdir}/grub_bios-${_pkgver}/grub-extras" + + bsdtar xf "${srcdir}/grub2_extras_915resolution_r${_grub_915_ver}.tar.xz" \ + -C "${srcdir}/grub_bios-${_pkgver}/grub-extras" -build_grub2-common_and_bios() { - # copy the source for building the common/bios package - cp -r ${srcdir}/grub-${pkgver} ${srcdir}/grub2_bios-${pkgver} - - ## Apply Archlinux specific fixes to enable grub2-mkconfig detect Arch kernels and initramfs - cd ${srcdir}/grub2_bios-${pkgver} - patch -Np1 -i ${srcdir}/archlinux_grub2_mkconfig_fixes.patch - patch -Np1 -i ${srcdir}/parabola-mkconfig.patch - - # add the grub-extra sources - export GRUB_CONTRIB=${srcdir}/grub2_bios-${pkgver}/grub2-extras/ - install -d ${srcdir}/grub2_bios-${pkgver}/grub2-extras - bsdtar xf ${srcdir}/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz \ - -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras - bsdtar xf ${srcdir}/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz \ - -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras - bsdtar xf ${srcdir}/grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz \ - -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras - bsdtar xf ${srcdir}/grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz \ - -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras - - ## Need to use python2 - sed -i 's|python|python2|' ${srcdir}/grub2_bios-${pkgver}/autogen.sh - - # start the actual build process - cd ${srcdir}/grub2_bios-${pkgver} + ## Requires python2 + # sed 's|python |python2 |g' -i "${srcdir}/grub_bios-${_pkgver}/autogen.sh" + + ## start the actual build process + cd "${srcdir}/grub_bios-${_pkgver}" ./autogen.sh - + ## fix unifont.bdf location so grub-mkfont can create *.pf2 files - sed -i 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|' ${srcdir}/grub2_bios-${pkgver}/configure - -# mkdir ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS -# cd ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS - + sed 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|g' -i "${srcdir}/grub_bios-${_pkgver}/configure" + + # install -d "${srcdir}/grub_bios-${_pkgver}/BUILD_BIOS" + # cd "${srcdir}/grub_bios-${_pkgver}/BUILD_BIOS" + CFLAGS="" ./configure \ - --with-platform=pc --enable-mm-debug \ - ${_EFIEMU} --host=${CARCH}-unknown-linux-gnu \ - --enable-grub-mkfont --prefix=/usr \ - --bindir=/bin --sbindir=/sbin \ - --mandir=/usr/share/man --infodir=/usr/share/info \ - --sysconfdir=/etc --enable-nls \ - --program-transform-name=s,grub,grub, - CFLAGS="" make + --with-platform="pc" \ + --target="i386" \ + --host="${CARCH}-unknown-linux-gnu" \ + "${_EFIEMU}" \ + --enable-mm-debug \ + --enable-nls \ + --enable-device-mapper \ + --enable-cache-stats \ + --enable-grub-mkfont \ + --enable-grub-mount \ + --prefix="/usr" \ + --bindir="/usr/bin" \ + --sbindir="/usr/sbin" \ + --mandir="/usr/share/man" \ + --infodir="/usr/share/info" \ + --datarootdir="/usr/share" \ + --sysconfdir="/etc" \ + --program-prefix="" \ + --with-bootdir="/boot" \ + --with-grubdir="grub" \ + --disable-werror + + CFLAGS="" make + } -build_grub2-efi() { - # copy the source for building the efi package - cp -r ${srcdir}/grub-${pkgver} ${srcdir}/grub2_efi-${pkgver} - - # add the grub-extra sources - export GRUB_CONTRIB=${srcdir}/grub2_efi-${pkgver}/grub2-extras/ - install -d ${srcdir}/grub2_efi-${pkgver}/grub2-extras - bsdtar xf ${srcdir}/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz \ - -C ${srcdir}/grub2_efi-${pkgver}/grub2-extras - bsdtar xf ${srcdir}/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz \ - -C ${srcdir}/grub2_efi-${pkgver}/grub2-extras - - ## Need to use python2 - sed -i 's|python|python2|' ${srcdir}/grub2_efi-${pkgver}/autogen.sh - - # start the actual build process - cd ${srcdir}/grub2_efi-${pkgver} +_build_grub2-efi-i386() { + + ## copy the source for building the efi package + cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub_efi-${_pkgver}" + cd "${srcdir}/grub_efi-${_pkgver}" + + export GRUB_CONTRIB="${srcdir}/grub_efi-${_pkgver}/grub-extras/" + install -d "${srcdir}/grub_efi-${_pkgver}/grub-extras" + + bsdtar xf "${srcdir}/grub2_extras_lua_r${_grub_lua_ver}.tar.xz" \ + -C "${srcdir}/grub_efi-${_pkgver}/grub-extras" + + bsdtar xf "${srcdir}/grub2_extras_gpxe_r${_grub_gpxe_ver}.tar.xz" \ + -C "${srcdir}/grub_efi-${_pkgver}/grub-extras" + + ## Requires python2 + # sed 's|python |python2 |g' -i "${srcdir}/grub_efi-${_pkgver}/autogen.sh" + + cd "${srcdir}/grub_efi-${_pkgver}" ./autogen.sh CFLAGS="" ./configure \ - --with-platform=efi --target=i386 \ - --enable-mm-debug --disable-efiemu \ - --host=${CARCH}-unknown-linux-gnu \ - --prefix=/usr --bindir=/bin \ - --sbindir=/sbin --mandir=/usr/share/man \ - --infodir=/usr/share/info --sysconfdir=/etc \ - --enable-nls --program-transform-name=s,grub,grub, - CFLAGS="" make + --with-platform="efi" \ + --target="i386" \ + --host="${CARCH}-unknown-linux-gnu" \ + --disable-efiemu \ + --enable-mm-debug \ + --enable-nls \ + --enable-device-mapper \ + --enable-cache-stats \ + --enable-grub-mkfont \ + --enable-grub-mount \ + --prefix="/usr" \ + --bindir="/usr/bin" \ + --sbindir="/usr/sbin" \ + --mandir="/usr/share/man" \ + --infodir="/usr/share/info" \ + --datarootdir="/usr/share" \ + --sysconfdir="/etc" \ + --program-prefix="" \ + --with-bootdir="/boot" \ + --with-grubdir="grub" \ + --disable-werror + + CFLAGS="" make +} + +#_get_locale_files() { +# +# cd "${srcdir}/grub-${_pkgver}" +# rsync -Lrtvz translationproject.org::tp/latest/grub/ "${srcdir}/grub-${_pkgver}/po" || true +# (cd "${srcdir}/grub-${_pkgver}/po" && ls *.po | cut -d. -f1 | xargs) > "${srcdir}/grub-${_pkgver}/po/LINGUAS" +#} + +build() { + + ## set architecture dependent variables + if [[ "${CARCH}" == 'x86_64' ]]; then + _EFIEMU="--enable-efiemu" + else + _EFIEMU="--disable-efiemu" + fi + + _HOST="${CARCH}" + + cd "${srcdir}/grub-${_pkgver}" + # _get_locale_files + + _build_grub2-common_and_bios + _build_grub2-efi-i386 + } package_grub2-common() { + pkgdesc="The GNU GRand Unified Bootloader version 2 - Files common for all platforms" - install="grub2.install" - depends=('xz' 'freetype2' 'device-mapper' 'gettext' 'texinfo') + depends=('xz' 'freetype2' 'gettext' 'device-mapper' 'fuse' 'sh') conflicts=('grub') backup=('boot/grub/grub.cfg' 'etc/default/grub' 'etc/grub.d/40_custom') - cd ${srcdir}/grub2_bios-${pkgver} - make DESTDIR=${pkgdir} install - - install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_bios-install - install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_efi_x86_64-install - install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_efi_i386-install - - sed -i "s|^\(target_cpu\)=.*|\1=i386|; \ - s|^\(platform\)=.*|\1=pc|" \ - ${pkgdir}/sbin/grub_bios-install - - sed -i "s|^\(target_cpu\)=.*|\1=x86_64|; \ - s|^\(platform\)=.*|\1=efi|" \ - ${pkgdir}/sbin/grub_efi_x86_64-install - - sed -i "s|^\(target_cpu\)=.*|\1=i386|; \ - s|^\(platform\)=.*|\1=efi|" \ - ${pkgdir}/sbin/grub_efi_i386-install - + optdepends=('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') + install="grub2.install" + options=('strip' 'purge' 'docs' 'zipman' '!emptydirs') + + cd "${srcdir}/grub_bios-${_pkgver}" + make DESTDIR="${pkgdir}/" install + ## install extra /etc/grub.d/ files - install -Dm755 ${srcdir}/20_memtest86+ ${pkgdir}/etc/grub.d/20_memtest86+ - + install -D -m0755 "${srcdir}/20_memtest86+" "${pkgdir}/etc/grub.d/20_memtest86+" + ## install /etc/default/grub (used by grub-mkconfig) - install -Dm644 ${srcdir}/grub.default ${pkgdir}/etc/default/grub + install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" ## install grub.cfg (needed so it doesn't get removed on upgrading because it was previously here) - install -Dm644 ${srcdir}/grub.cfg ${pkgdir}/boot/grub/grub.cfg + install -D -m0644 "${srcdir}/grub.cfg" "${pkgdir}/boot/grub/grub.cfg" # remove platform specific files - rm -rf ${pkgdir}/usr/lib/grub/i386-pc/ + rm -rf "${pkgdir}/usr/lib/grub/i386-pc/" + } package_grub2-bios() { - pkgdesc="The GNU GRand Unified Bootloader version 2 - Built for PC BIOS" - depends=(grub2-common=${epoch}:${pkgver}) - replaces=('grub2' 'grub2-libre') - provides=('grub2' 'grub2-libre') - - cd ${srcdir}/grub2_bios-${pkgver} - make DESTDIR=${pkgdir} install + + pkgdesc="The GNU GRand Unified Bootloader version 2 - Built for i386 PC BIOS" + depends=("grub2-common=${epoch}:${pkgver}") + options=('!strip' '!emptydirs') + + cd "${srcdir}/grub_bios-${_pkgver}" + make DESTDIR="${pkgdir}/" install ## remove non platform-specific files - rm -rf ${pkgdir}/{boot,bin,sbin,etc,usr/share} - rm ${pkgdir}/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib} + rm -rf "${pkgdir}"/{boot,etc,usr/{share,bin,sbin}} + + ## remove gdb debugging related files + rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.module || true + rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.image || true + rm -f "${pkgdir}/usr/lib/grub/i386-pc"/{kernel.exec,gdb_grub,gmodule.pl} || true + } package_grub2-efi-i386() { pkgdesc="The GNU GRand Unified Bootloader version 2 - i386 UEFI version" depends=("grub2-common=${epoch}:${pkgver}" 'dosfstools' 'efibootmgr') - optdepends=('mtools') - - cd ${srcdir}/grub2_efi-${pkgver} - make DESTDIR=${pkgdir} install + options=('!strip' '!emptydirs') + + cd "${srcdir}/grub_efi-${_pkgver}" + make DESTDIR="${pkgdir}/" install ## remove non platform-specific files - rm -rf ${pkgdir}/{boot,bin,sbin,etc,usr/share} - rm ${pkgdir}/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib} + rm -rf "${pkgdir}"/{boot,etc,usr/{share,bin,sbin}} + + ## remove gdb debugging related files + rm -f "${pkgdir}/usr/lib/grub/i386-efi"/*.module || true + rm -f "${pkgdir}/usr/lib/grub/i386-efi"/*.image || true + rm -f "${pkgdir}/usr/lib/grub/i386-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true + } diff --git a/libre/grub2/archlinux_grub2_mkconfig_fixes.patch b/libre/grub2/archlinux_grub2_mkconfig_fixes.patch index 11805e309..ef4b10ee6 100644 --- a/libre/grub2/archlinux_grub2_mkconfig_fixes.patch +++ b/libre/grub2/archlinux_grub2_mkconfig_fixes.patch @@ -1,7 +1,21 @@ -diff -Nur a/util/grub.d/00_header.in b/util/grub.d/00_header.in ---- a/util/grub.d/00_header.in 2011-04-06 13:14:27.000000000 +0200 -+++ b/util/grub.d/00_header.in 2011-08-01 15:19:57.919100452 +0200 -@@ -100,6 +100,14 @@ +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index 859c2e8..c754dd7 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -242,6 +242,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 d9bcc15..a93dcb7 100644 +--- a/util/grub.d/00_header.in ++++ b/util/grub.d/00_header.in +@@ -100,6 +100,14 @@ cat </dev/null || true`" = xbtrfs ]; then +@@ -65,7 +65,9 @@ linux_entry () version="$2" recovery="$3" args="$4" @@ -41,7 +65,17 @@ diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in title="$(gettext_quoted "%s, with Linux %s (recovery mode)")" else title="$(gettext_quoted "%s, with Linux %s")" -@@ -132,7 +134,7 @@ +@@ -113,7 +115,9 @@ EOF + fi + printf '%s\n' "${prepare_boot_cache}" + fi ++ + message="$(gettext_printf "Loading Linux %s ..." ${version})" ++ + cat << EOF + echo '$message' + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} +@@ -132,11 +136,11 @@ EOF case x`uname -m` in xi?86 | xx86_64) @@ -50,22 +84,39 @@ diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi done` ;; *) -@@ -160,7 +162,8 @@ +- list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do ++ list=`for i in /boot/vmlinuz* /boot/vmlinux* /vmlinuz* /vmlinux* /boot/kernel-* ; do + if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi + done` ;; + esac +@@ -151,16 +155,19 @@ while [ "x$list" != "x" ] ; do + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` + version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` +- alt_version=`echo $version | sed -e "s,\.old$,,g"` ++ base_init=`echo $basename | sed -e "s,vmlinuz,initramfs,g"` ++ alt_version="${base_init}-fallback" + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + + initrd= ++ + 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" \ "initrd-${alt_version}" "initramfs-${alt_version}.img" \ "initramfs-genkernel-${version}" \ - "initramfs-genkernel-${alt_version}"; do + "initramfs-genkernel-${alt_version}" \ -+ "${basename/vmlinuz/kernel}.img"; do ++ "${basename/vmlinuz/initramfs}.img" "${basename/vmlinuz/kernel}.img"; do if test -e "${dirname}/${i}" ; then initrd="$i" break -@@ -190,6 +193,15 @@ +@@ -190,6 +197,16 @@ while [ "x$list" != "x" ] ; do linux_entry "${OS}" "${version}" false \ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + for i in "initramfs-${version}-fallback.img" \ -+ "${basename/vmlinuz/kernel}-fallback.img"; do ++ "${basename/vmlinuz/initramfs}-fallback.img" "${basename/vmlinuz/kernel}-fallback.img"; do + if test -e "${dirname}/${i}"; then + initrd="$i" + linux_entry "${OS}" "${version}" true \ @@ -73,18 +124,7 @@ diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in + break + fi + done ++ if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then linux_entry "${OS}" "${version}" true \ "single ${GRUB_CMDLINE_LINUX}" -diff -Nur a/util/grub-mkconfig.in b/util/grub-mkconfig.in ---- a/util/grub-mkconfig.in 2011-04-06 17:45:53.000000000 +0200 -+++ b/util/grub-mkconfig.in 2011-08-01 15:20:49.256867648 +0200 -@@ -252,6 +252,8 @@ - GRUB_THEME \ - GRUB_GFXPAYLOAD_LINUX \ - GRUB_DISABLE_OS_PROBER \ -+ GRUB_COLOR_NORMAL \ -+ GRUB_COLOR_HIGHLIGHT \ - GRUB_INIT_TUNE \ - GRUB_SAVEDEFAULT \ - GRUB_BADRAM diff --git a/libre/grub2/archlinux_grub_mkconfig_fixes.patch b/libre/grub2/archlinux_grub_mkconfig_fixes.patch new file mode 100644 index 000000000..4b4cba92a --- /dev/null +++ b/libre/grub2/archlinux_grub_mkconfig_fixes.patch @@ -0,0 +1,141 @@ +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index df3b733..65a7fff 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -213,6 +213,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 765bfdc..b148558 100644 +--- a/util/grub.d/00_header.in ++++ b/util/grub.d/00_header.in +@@ -115,6 +115,14 @@ cat < /dev/null echo "done." diff --git a/libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch b/libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch new file mode 100644 index 000000000..0e396b210 --- /dev/null +++ b/libre/grub2/grub2_automake_1.11.2_pkglib_to_pkgdata.patch @@ -0,0 +1,134 @@ +diff --git a/ChangeLog_Keshav b/ChangeLog_Keshav +new file mode 100644 +index 0000000..0eafd65 +--- /dev/null ++++ b/ChangeLog_Keshav +@@ -0,0 +1,12 @@ ++2012-01-04 Keshav P R ++ ++ Fixes for automake 1.11.2 ++ ++ * conf/Makefile.common: Change pkglib_SCRIPTS to pkgdata_SCRIPTS. ++ * conf/Makefile.common: Change pkglib_DATA to pkgdata_DATA. ++ * Makefile.am: Likewise. ++ * gentpl.py: Likewise. ++ * util/grub-mkstandalone.in: Likewise. ++ * util/grub-mknetdir.in: Likewise. ++ * util/grub-mkrescue.in: Likewise. ++ * util/grub-mkstandalone.in: Likewise. +diff --git a/Makefile.am b/Makefile.am +index c5f486e..395b0dd 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -101,8 +101,8 @@ CLEANFILES += widthspec.h + # Install config.h into platformdir + platform_HEADERS = config.h + +-pkglib_DATA += grub-mkconfig_lib +-pkglib_DATA += update-grub_lib ++pkgdata_DATA += grub-mkconfig_lib ++pkgdata_DATA += update-grub_lib + + + if COND_i386_coreboot +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 751188b..bbd59cc 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -137,7 +137,7 @@ KERNEL_HEADER_FILES = + + man_MANS = + noinst_DATA = +-pkglib_DATA = ++pkgdata_DATA = + bin_SCRIPTS = + sbin_SCRIPTS = + bin_PROGRAMS = +@@ -147,7 +147,7 @@ check_SCRIPTS = + grubconf_DATA = + check_PROGRAMS = + noinst_SCRIPTS = +-pkglib_SCRIPTS = ++pkgdata_SCRIPTS = + noinst_PROGRAMS = + grubconf_SCRIPTS = + noinst_LIBRARIES = +diff --git a/gentpl.py b/gentpl.py +index 3008b80..a935f4d 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -512,7 +512,7 @@ def script(platform): + r += "[+ ENDIF +]" + + r += rule("[+ name +]", platform_sources(platform) + " $(top_builddir)/config.status", """ +-$(top_builddir)/config.status --file=-:$< | sed -e 's,@pkglib_DATA@,$(pkglib_DATA),g' > $@ ++$(top_builddir)/config.status --file=-:$< | sed -e 's,@pkgdata_DATA@,$(pkgdata_DATA),g' > $@ + chmod a+x [+ name +] + """) + +diff --git a/util/grub-mknetdir.in b/util/grub-mknetdir.in +index e5a2172..7f6a36d 100644 +--- a/util/grub-mknetdir.in ++++ b/util/grub-mknetdir.in +@@ -30,7 +30,7 @@ PACKAGE_VERSION=@PACKAGE_VERSION@ + host_os=@host_os@ + localedir=@datadir@/locale + datarootdir=@datarootdir@ +-pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst" ++pkgdata_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst" + + self=`basename $0` + +@@ -183,7 +183,7 @@ process_input_dir () + cp -f "$file" "$grubdir/" + fi + done +- for file in ${pkglib_DATA}; do ++ for file in ${pkgdata_DATA}; do + if test -f "${input_dir}/${file}"; then + cp -f "${input_dir}/${file}" "$grubdir/" + fi +diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in +index eff7708..f6b96d4 100644 +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -27,7 +27,7 @@ libdir=@libdir@ + PACKAGE_NAME=@PACKAGE_NAME@ + PACKAGE_TARNAME=@PACKAGE_TARNAME@ + PACKAGE_VERSION=@PACKAGE_VERSION@ +-pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst" ++pkgdata_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst" + + self=`basename $0` + +@@ -163,7 +163,7 @@ process_input_dir () + cp -f "$file" ${iso9660_dir}/boot/grub/${platform}/ + fi + done +- for file in ${pkglib_DATA}; do ++ for file in ${pkgdata_DATA}; do + if test -f "${input_dir}/${file}"; then + cp -f "${input_dir}/${file}" ${iso9660_dir}/boot/grub/${platform}/ + fi +diff --git a/util/grub-mkstandalone.in b/util/grub-mkstandalone.in +index b0dbf9b..92b7306 100644 +--- a/util/grub-mkstandalone.in ++++ b/util/grub-mkstandalone.in +@@ -27,7 +27,7 @@ libdir=@libdir@ + PACKAGE_NAME=@PACKAGE_NAME@ + PACKAGE_TARNAME=@PACKAGE_TARNAME@ + PACKAGE_VERSION=@PACKAGE_VERSION@ +-pkglib_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst" ++pkgdata_DATA="moddep.lst command.lst fs.lst partmap.lst parttool.lst handler.lst video.lst crypto.lst terminal.lst" + + self=`basename $0` + +@@ -163,7 +163,7 @@ for file in "${source_directory}/"*.mod "${source_directory}/"efiemu32.o "${sour + fi + done + +-for file in ${pkglib_DATA}; do ++for file in ${pkgdata_DATA}; do + if test -f "${source_directory}/${file}"; then + cp -f "${source_directory}/${file}" "${memdisk_dir}"/boot/grub/ + fi diff --git a/libre/grub2/grub2_bzr_export.sh b/libre/grub2/grub2_bzr_export.sh index 7c42d0c28..f40588f82 100644 --- a/libre/grub2/grub2_bzr_export.sh +++ b/libre/grub2/grub2_bzr_export.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ## For actual repos @@ -9,65 +9,67 @@ ## For launchpad mirror -# bzr branch lp:~skodabenz/grub/grub2-extras-lua lua -# bzr branch lp:~skodabenz/grub/grub2-extras-gpxe gpxe -# bzr branch lp:~skodabenz/grub/grub2-extras-ntldr-img ntldr-img -# bzr branch lp:~skodabenz/grub/grub2-extras-915resolution 915resolution +# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-lua lua +# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-gpxe gpxe +# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-ntldr-img ntldr-img +# bzr branch lp:~the-ridikulus-rat/grub/grub2-extras-915resolution 915resolution ## grub-extras zfs is integrated into grub2 bzr main repo and is no longer needed separately. -wd=${PWD}/ -output_dir=${wd}/ +_WD="${PWD}/" +_OUTPUT_DIR="${_WD}/" -grub2_bzr_dir=${wd}/grub2_BZR/ -grub2_bzr_exp_dir=${wd}/grub2_experimental_BZR/ -grub2_extras_dir=${wd}/grub2_extras_BZR/ +_ACTUAL_PKGVER="1.99" -main_snapshot() { +_GRUB2_BZR_REPO_DIR="${_WD}/grub2_BZR/" +_GRUB2_BZR_EXP_REPO_DIR="${_WD}/grub2_experimental_BZR/" +_GRUB2_EXTRAS_REPOS_DIR="${_WD}/grub2_extras_BZR/" + +_MAIN_SNAPSHOT() { - cd ${grub2_bzr_dir}/ + cd "${_GRUB2_BZR_REPO_DIR}/" echo - revnum=$(bzr revno ${grub2_bzr_dir}) - bzr export --root=grub2 --format=tar ${output_dir}/grub2_r${revnum}.tar + _REVNUM="$(bzr revno ${_GRUB2_BZR_REPO_DIR})" + bzr export --root="grub-${_ACTUAL_PKGVER}" --format="tar" "${_OUTPUT_DIR}/grub2_r${_REVNUM}.tar" echo - cd ${output_dir}/ + cd "${_OUTPUT_DIR}/" - xz -9 ${output_dir}/grub2_r${revnum}.tar + xz -9 "${_OUTPUT_DIR}/grub2_r${_REVNUM}.tar" echo } -exp_snapshot() { +_EXP_SNAPSHOT() { - cd ${grub2_bzr_exp_dir}/ + cd "${_GRUB2_BZR_EXP_REPO_DIR}/" echo - revnum=$(bzr revno ${grub2_bzr_exp_dir}) - bzr export --root=grub2_exp --format=tar ${output_dir}/grub2_exp_r${revnum}.tar + _REVNUM="$(bzr revno ${_GRUB2_BZR_EXP_REPO_DIR})" + bzr export --root="grub-${_ACTUAL_PKGVER}" --format="tar" "${_OUTPUT_DIR}/grub2_exp_r${_REVNUM}.tar" echo - cd ${output_dir}/ + cd "${_OUTPUT_DIR}/" - xz -9 ${output_dir}/grub2_exp_r${revnum}.tar + xz -9 "${_OUTPUT_DIR}/grub2_exp_r${_REVNUM}.tar" echo } -extras_snapshot() { +_EXTRAS_SNAPSHOT() { - cd ${grub2_extras_dir}/${grub2_extras_name}/ + cd "${_GRUB2_EXTRAS_REPOS_DIR}/${_GRUB2_EXTRAS_NAME}/" echo - revnum=$(bzr revno ${grub2_extras_dir}/${grub2_extras_name}) - bzr export --root=${grub2_extras_name} --format=tar ${output_dir}/grub2_extras_${grub2_extras_name}_r${revnum}.tar + _REVNUM="$(bzr revno ${_GRUB2_EXTRAS_REPOS_DIR}/${_GRUB2_EXTRAS_NAME})" + bzr export --root="${_GRUB2_EXTRAS_NAME}" --format=tar "${_OUTPUT_DIR}/grub2_extras_${_GRUB2_EXTRAS_NAME}_r${_REVNUM}.tar" echo - cd ${output_dir}/ + cd "${_OUTPUT_DIR}/" echo - xz -9 ${output_dir}/grub2_extras_${grub2_extras_name}_r${revnum}.tar + xz -9 "${_OUTPUT_DIR}/grub2_extras_${_GRUB2_EXTRAS_NAME}_r${_REVNUM}.tar" echo } @@ -76,28 +78,36 @@ echo set -x -e -# main_snapshot +echo -# exp_snapshot +_MAIN_SNAPSHOT -grub2_extras_name="lua" -extras_snapshot +echo -grub2_extras_name="gpxe" -extras_snapshot +# _EXP_SNAPSHOT + +echo -grub2_extras_name="ntldr-img" -extras_snapshot +_GRUB2_EXTRAS_NAME="lua" +_EXTRAS_SNAPSHOT -grub2_extras_name="915resolution" -extras_snapshot +_GRUB2_EXTRAS_NAME="gpxe" +_EXTRAS_SNAPSHOT + +_GRUB2_EXTRAS_NAME="ntldr-img" +_EXTRAS_SNAPSHOT + +_GRUB2_EXTRAS_NAME="915resolution" +_EXTRAS_SNAPSHOT + +echo set +x +e echo -unset wd -unset output_dir -unset grub2_bzr_dir -unset grub2_extras_dir -unset grub2_extras_name +unset _WD +unset _OUTPUT_DIR +unset _GRUB2_BZR_REPO_DIR +unset _GRUB2_EXTRAS_REPOS_DIR +unset _GRUB2_EXTRAS_NAME diff --git a/libre/grub2/grub_extras_lua_args_fix.patch b/libre/grub2/grub_extras_lua_args_fix.patch new file mode 100644 index 000000000..5cb317ce3 --- /dev/null +++ b/libre/grub2/grub_extras_lua_args_fix.patch @@ -0,0 +1,13 @@ +diff --git a/grub-extras/lua/grub_lib.c b/grub-extras/lua/grub_lib.c +index 9014320..055d620 100644 +--- a/grub-extras/lua/grub_lib.c ++++ b/grub-extras/lua/grub_lib.c +@@ -466,7 +466,7 @@ grub_lua_add_menu (lua_State *state) + if (! p) + return push_result (state); + +- grub_normal_add_menu_entry (n, args, NULL, NULL, NULL, NULL, p, 0); ++ grub_normal_add_menu_entry (n, args, NULL, NULL, NULL, NULL, NULL, p, 0); + } + else + { -- cgit v1.2.3-2-g168b