diff options
author | Michał Masłowski <mtjm@mtjm.eu> | 2011-08-08 21:06:49 +0200 |
---|---|---|
committer | Michał Masłowski <mtjm@mtjm.eu> | 2011-08-08 21:06:49 +0200 |
commit | 84c48e50979b56920e2606537abec7bb18ff1c8e (patch) | |
tree | 06a7b4e864f74fee5d18f94cc26c20cb984b8d47 /libre/grub2 | |
parent | 0f0d024626ba041880f5e1b140a409eddb50d3e4 (diff) | |
download | abslibre-84c48e50979b56920e2606537abec7bb18ff1c8e.tar.gz abslibre-84c48e50979b56920e2606537abec7bb18ff1c8e.tar.bz2 abslibre-84c48e50979b56920e2606537abec7bb18ff1c8e.zip |
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.
Diffstat (limited to 'libre/grub2')
-rw-r--r-- | libre/grub2/PKGBUILD | 17 | ||||
-rw-r--r-- | libre/grub2/parabola-mkconfig.patch | 51 |
2 files changed, 62 insertions, 6 deletions
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 |