From 84c48e50979b56920e2606537abec7bb18ff1c8e Mon Sep 17 00:00:00 2001 From: Michał Masłowski Date: Mon, 8 Aug 2011 21:06:49 +0200 Subject: Fix building grub2 and patch grub-mkconfig to find new kernels. Symlinks will be ignored when finding files, to not make entries for compatibility symlinks in new configuration. Version is not included in menu entry name if it doesn't contain a dot, since it's not useful. --- libre/grub2/PKGBUILD | 17 ++++++++----- libre/grub2/parabola-mkconfig.patch | 51 +++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 libre/grub2/parabola-mkconfig.patch (limited to 'libre/grub2') diff --git a/libre/grub2/PKGBUILD b/libre/grub2/PKGBUILD index 6d884dcea..7c1c0177a 100644 --- a/libre/grub2/PKGBUILD +++ b/libre/grub2/PKGBUILD @@ -11,11 +11,11 @@ _grub2_915_ver=6 pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-i386') pkgbase="grub2" pkgver='1.99~rc1' -pkgrel=4 +pkgrel=4.1 url="http://www.gnu.org/software/grub/" arch=('i686' 'x86_64') license=('GPL3') -makedepends=('bdf-unifont' 'python2' 'xz' 'autogen' 'texinfo' 'help2man' 'gettext' 'device-mapper') +makedepends=('bdf-unifont' 'python2' 'xz' 'autogen' 'texinfo' 'help2man' 'gettext' 'device-mapper' 'flex') options=(strip purge docs zipman !emptydirs) source=("ftp://alpha.gnu.org/gnu/grub/grub-${pkgver}.tar.gz" @@ -27,7 +27,8 @@ source=("ftp://alpha.gnu.org/gnu/grub/grub-${pkgver}.tar.gz" 'grub.default' 'grub.cfg' '20_memtest86+' - '05_archtheme') + '05_archtheme' + 'parabola-mkconfig.patch') noextract=("grub2_extras_lua_r${_grub2_lua_ver}.tar.xz" "grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz" @@ -55,6 +56,7 @@ build_grub2-common_and_bios() { ## 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/ @@ -88,7 +90,8 @@ build_grub2-common_and_bios() { --bindir=/bin --sbindir=/sbin \ --mandir=/usr/share/man --infodir=/usr/share/info \ --sysconfdir=/etc --enable-nls \ - --program-transform-name=s,grub,grub, + --program-transform-name=s,grub,grub, \ + --disable-werror CFLAGS="" make } @@ -118,7 +121,8 @@ build_grub2-efi() { --prefix=/usr --bindir=/bin \ --sbindir=/sbin --mandir=/usr/share/man \ --infodir=/usr/share/info --sysconfdir=/etc \ - --enable-nls --program-transform-name=s,grub,grub, + --enable-nls --program-transform-name=s,grub,grub, \ + --disable-werror CFLAGS="" make } @@ -201,4 +205,5 @@ md5sums=('fd602ffaada5ba7939d0ea47091841a5' '50123c37cf145a98aba4ffb0fc4efba1' '7cb90ebb04b856ded6ae171c3658fba2' '5a07e04c4ecb8ed145d54fec3043e0d5' - 'e143ae2e453b7c3ced309667df30da55') + 'e143ae2e453b7c3ced309667df30da55' + 'bc369fcd7576beba804cad91f2b79f8f') diff --git a/libre/grub2/parabola-mkconfig.patch b/libre/grub2/parabola-mkconfig.patch new file mode 100644 index 000000000..d9aae8501 --- /dev/null +++ b/libre/grub2/parabola-mkconfig.patch @@ -0,0 +1,51 @@ +diff -ru grub-1.99~rc1-orig/util/grub.d/10_linux.in grub-1.99~rc1/util/grub.d/10_linux.in +--- grub-1.99~rc1-orig/util/grub.d/10_linux.in 2011-08-08 17:03:17.177418423 +0200 ++++ grub-1.99~rc1/util/grub.d/10_linux.in 2011-08-08 19:36:17.307138530 +0200 +@@ -57,12 +57,22 @@ + version="$2" + recovery="$3" + args="$4" +- if ${recovery} ; then +- title="$(gettext_quoted "%s, with Linux %s (recovery mode)")" ++ if echo "$version" | fgrep . ; then ++ if ${recovery} ; then ++ title="$(gettext_quoted "%s, with Linux %s (recovery mode)")" ++ else ++ title="$(gettext_quoted "%s, with Linux %s")" ++ fi ++ printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}" + else +- title="$(gettext_quoted "%s, with Linux %s")" ++ # Parabola GNU/Linux-libre doesn't put kernel version in its file name. ++ if ${recovery} ; then ++ title="$(gettext_quoted "%s (recovery mode)")" ++ else ++ title="%s" ++ fi ++ printf "menuentry '${title}' ${CLASS} {\n" "${os}" + fi +- printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}" + if ! ${recovery} ; then + save_default_entry | sed -e "s/^/\t/" + fi +@@ -123,7 +133,7 @@ + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` + version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` +- base_init=`echo $basename | sed -e "s,vmlinuz,kernel,g"` ++ base_init=`echo $basename | sed -e "s,vmlinuz,initramfs,g"` + alt_version="${base_init}-fallback" + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + +diff -ru grub-1.99~rc1-orig/util/grub-mkconfig_lib.in grub-1.99~rc1/util/grub-mkconfig_lib.in +--- grub-1.99~rc1-orig/util/grub-mkconfig_lib.in 2011-08-08 17:03:17.177418423 +0200 ++++ grub-1.99~rc1/util/grub-mkconfig_lib.in 2011-08-08 17:04:48.064082390 +0200 +@@ -130,7 +130,7 @@ + + grub_file_is_not_garbage () + { +- if test -f "$1" ; then ++ if test -f "$1" -a ! -L "$1" ; then + case "$1" in + *.dpkg-*) return 1 ;; # debian dpkg + README*) return 1 ;; # documentation -- cgit v1.2.3-54-g00ecf