summaryrefslogtreecommitdiff
path: root/libre/grub2
diff options
context:
space:
mode:
authorMichał Masłowski <mtjm@mtjm.eu>2011-08-08 21:06:49 +0200
committerMichał Masłowski <mtjm@mtjm.eu>2011-08-08 21:06:49 +0200
commit84c48e50979b56920e2606537abec7bb18ff1c8e (patch)
tree06a7b4e864f74fee5d18f94cc26c20cb984b8d47 /libre/grub2
parent0f0d024626ba041880f5e1b140a409eddb50d3e4 (diff)
downloadabslibre-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/PKGBUILD17
-rw-r--r--libre/grub2/parabola-mkconfig.patch51
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