Patchwork [1/2] grub2: new recipe

login
register
mail settings
Submitter Tom Zanussi
Date Sept. 14, 2011, 6:01 p.m.
Message ID <1316023313.26879.2569.camel@elmorro>
Download mbox | patch
Permalink /patch/11391/
State New, archived
Headers show

Comments

Tom Zanussi - Sept. 14, 2011, 6:01 p.m.
This adds the grub-1.98 from meta-intel while upgrading it to 1.99.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
---
 meta/recipes-bsp/grub/grub-1.99/40_custom          |    9 ++++
 .../grub/grub-1.99/grub-install.in.patch           |   15 +++++++
 meta/recipes-bsp/grub/grub_1.99.bb                 |   44 ++++++++++++++++++++
 3 files changed, 68 insertions(+), 0 deletions(-)
 create mode 100755 meta/recipes-bsp/grub/grub-1.99/40_custom
 create mode 100644 meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch
 create mode 100644 meta/recipes-bsp/grub/grub_1.99.bb
Otavio Salvador - Sept. 14, 2011, 6:07 p.m.
On Wed, Sep 14, 2011 at 15:01, Tom Zanussi <tom.zanussi@intel.com> wrote:
> +++ b/meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch
> @@ -0,0 +1,15 @@
> +Upstream-Status: Inappropriate [embedded specific]
> +
> +Index: grub-1.99/util/grub-install.in
> +===================================================================

I am sorry by be boring but this doesn't explain *why* the patch is
need. I see you change grep to not use -x option but why this is
required?
Saul Wold - Sept. 14, 2011, 6:12 p.m.
On Wed, 2011-09-14 at 13:01 -0500, Tom Zanussi wrote:
> This adds the grub-1.98 from meta-intel while upgrading it to 1.99.
> 
> Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
> ---
>  meta/recipes-bsp/grub/grub-1.99/40_custom          |    9 ++++
>  .../grub/grub-1.99/grub-install.in.patch           |   15 +++++++
>  meta/recipes-bsp/grub/grub_1.99.bb                 |   44 ++++++++++++++++++++
>  3 files changed, 68 insertions(+), 0 deletions(-)
>  create mode 100755 meta/recipes-bsp/grub/grub-1.99/40_custom
>  create mode 100644 meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch
>  create mode 100644 meta/recipes-bsp/grub/grub_1.99.bb
> 
> diff --git a/meta/recipes-bsp/grub/grub-1.99/40_custom b/meta/recipes-bsp/grub/grub-1.99/40_custom
> new file mode 100755
> index 0000000..0d80854
> --- /dev/null
> +++ b/meta/recipes-bsp/grub/grub-1.99/40_custom
> @@ -0,0 +1,9 @@
> +#!/bin/sh
> +exec tail -n +3 $0
> +# This file provides an easy way to add custom menu entries.  Simply type the
> +# menu entries you want to add after this comment.  Be careful not to change
> +# the 'exec tail' line above.
> +menuentry "Linux" {
> +    set root=(hd0,1)
> +    linux /boot/vmlinuz root=__ROOTFS__ rw __VIDEO_MODE__ __VGA_MODE__ quiet
> +}
> diff --git a/meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch b/meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch
> new file mode 100644
> index 0000000..6f6fa30
> --- /dev/null
> +++ b/meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch
> @@ -0,0 +1,15 @@
> +Upstream-Status: Inappropriate [embedded specific]
> +
Partiall header, sorry Tom, you need a signed-off-by also!

Sau!

> +Index: grub-1.99/util/grub-install.in
> +===================================================================
> +--- grub-1.99.orig/util/grub-install.in	2011-09-09 22:37:20.093906679 -0500
> ++++ grub-1.99/util/grub-install.in	2011-09-09 22:37:30.854737882 -0500
> +@@ -510,7 +510,7 @@
> + 
> + if [ "x${devabstraction_module}" = "x" ] ; then
> +     if [ x"${install_device}" != x ]; then
> +-      if echo "${install_device}" | grep -qx "(.*)" ; then
> ++      if echo "${install_device}" | grep -q "(.*)" ; then
> +         install_drive="${install_device}"
> +       else
> +         install_drive="`"$grub_probe" --device-map="${device_map}" --target=drive --device "${install_device}"`" || exit 1
> diff --git a/meta/recipes-bsp/grub/grub_1.99.bb b/meta/recipes-bsp/grub/grub_1.99.bb
> new file mode 100644
> index 0000000..d9df573
> --- /dev/null
> +++ b/meta/recipes-bsp/grub/grub_1.99.bb
> @@ -0,0 +1,44 @@
> +SUMMARY = "GRUB2 is the next-generation GRand Unified Bootloader"
> +
> +DESCRIPTION = "GRUB2 is the next generaion of a GPLed bootloader \
> +intended to unify bootloading across x86 operating systems. In \
> +addition to loading the Linux kernel, it implements the Multiboot \
> +standard, which allows for flexible loading of multiple boot images."
> +
> +HOMEPAGE = "http://www.gnu.org/software/grub/"
> +SECTION = "bootloaders"
> +PRIORITY = "optional"
> +
> +LICENSE = "GPLv3"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
> +
> +RDEPENDS = "diffutils freetype"
> +PR = "r0"
> +
> +SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
> +          file://grub-install.in.patch;apply=yes \
> +          file://40_custom"
> +
> +inherit autotools
> +inherit gettext
> +
> +EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --target=${TARGET_ARCH} --program-prefix="""
> +
> +do_configure() {
> +    oe_runconf
> +}
> +
> +python __anonymous () {
> +    import re
> +    host = bb.data.getVar('HOST_SYS', d, 1)
> +    if not re.match('x86.64.*-linux', host) and not re.match('i.86.*-linux', host):
> +        raise bb.parse.SkipPackage("incompatible with host %s" % host)
> +}
> +
> +do_install_append () {
> +    install -m 0755 ${WORKDIR}/40_custom ${D}${sysconfdir}/grub.d/40_custom
> +}
> +
> +FILES_${PN}-doc = "${datadir}"
> +FILES_${PN} = "/usr /etc"
> +

Patch

diff --git a/meta/recipes-bsp/grub/grub-1.99/40_custom b/meta/recipes-bsp/grub/grub-1.99/40_custom
new file mode 100755
index 0000000..0d80854
--- /dev/null
+++ b/meta/recipes-bsp/grub/grub-1.99/40_custom
@@ -0,0 +1,9 @@ 
+#!/bin/sh
+exec tail -n +3 $0
+# This file provides an easy way to add custom menu entries.  Simply type the
+# menu entries you want to add after this comment.  Be careful not to change
+# the 'exec tail' line above.
+menuentry "Linux" {
+    set root=(hd0,1)
+    linux /boot/vmlinuz root=__ROOTFS__ rw __VIDEO_MODE__ __VGA_MODE__ quiet
+}
diff --git a/meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch b/meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch
new file mode 100644
index 0000000..6f6fa30
--- /dev/null
+++ b/meta/recipes-bsp/grub/grub-1.99/grub-install.in.patch
@@ -0,0 +1,15 @@ 
+Upstream-Status: Inappropriate [embedded specific]
+
+Index: grub-1.99/util/grub-install.in
+===================================================================
+--- grub-1.99.orig/util/grub-install.in	2011-09-09 22:37:20.093906679 -0500
++++ grub-1.99/util/grub-install.in	2011-09-09 22:37:30.854737882 -0500
+@@ -510,7 +510,7 @@
+ 
+ if [ "x${devabstraction_module}" = "x" ] ; then
+     if [ x"${install_device}" != x ]; then
+-      if echo "${install_device}" | grep -qx "(.*)" ; then
++      if echo "${install_device}" | grep -q "(.*)" ; then
+         install_drive="${install_device}"
+       else
+         install_drive="`"$grub_probe" --device-map="${device_map}" --target=drive --device "${install_device}"`" || exit 1
diff --git a/meta/recipes-bsp/grub/grub_1.99.bb b/meta/recipes-bsp/grub/grub_1.99.bb
new file mode 100644
index 0000000..d9df573
--- /dev/null
+++ b/meta/recipes-bsp/grub/grub_1.99.bb
@@ -0,0 +1,44 @@ 
+SUMMARY = "GRUB2 is the next-generation GRand Unified Bootloader"
+
+DESCRIPTION = "GRUB2 is the next generaion of a GPLed bootloader \
+intended to unify bootloading across x86 operating systems. In \
+addition to loading the Linux kernel, it implements the Multiboot \
+standard, which allows for flexible loading of multiple boot images."
+
+HOMEPAGE = "http://www.gnu.org/software/grub/"
+SECTION = "bootloaders"
+PRIORITY = "optional"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+RDEPENDS = "diffutils freetype"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
+          file://grub-install.in.patch;apply=yes \
+          file://40_custom"
+
+inherit autotools
+inherit gettext
+
+EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --target=${TARGET_ARCH} --program-prefix="""
+
+do_configure() {
+    oe_runconf
+}
+
+python __anonymous () {
+    import re
+    host = bb.data.getVar('HOST_SYS', d, 1)
+    if not re.match('x86.64.*-linux', host) and not re.match('i.86.*-linux', host):
+        raise bb.parse.SkipPackage("incompatible with host %s" % host)
+}
+
+do_install_append () {
+    install -m 0755 ${WORKDIR}/40_custom ${D}${sysconfdir}/grub.d/40_custom
+}
+
+FILES_${PN}-doc = "${datadir}"
+FILES_${PN} = "/usr /etc"
+