diff options
author | Hongxu Jia <hongxu.jia@windriver.com> | 2018-01-17 03:25:58 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-01-19 12:37:14 +0000 |
commit | 4e9bb03238af48c70075037a77094a8c1bddf284 (patch) | |
tree | 10da8ca3b125bdce90889612cccef8e5f532fb20 /meta | |
parent | 975591a8d6cbea068d52417df0dfdd20aa586175 (diff) | |
download | poky-4e9bb03238af48c70075037a77094a8c1bddf284.tar.gz |
grub/grub-efi: fix conflict
While installing grub and grub-efi, there are conflict files
in ${sysconfdir} ${datadir} ${bindir} ${sbindir}.
- Since all of the conflicted files are tools which is
common for grub and grub-efi, we split them (except
grub-editenv) to grub-common in grub.
- The package grub-common runtime depends grub-editenv
- The package grub-editenv runtime provides grub-efi-editenv
- Remove SYSROOT_DIRS_BLACKLIST
- The recipe grub-efi does not generate the duplicated files
and use runtime depends grub-common to instead
Debian and Fedora do the similar thing.
Debian use a common package grub-common for both of pc bios and efi,
and use package grub-pc-bin for pc bios, grub-efi-amd64-bin for efi.
Both of grub-pc-bin and grub-efi-amd64-bin requires grub-common.
https://packages.debian.org/sid/grub-common
https://packages.debian.org/jessie/grub-pc-bin
https://packages.debian.org/jessie/grub-efi-amd64-bin
Fedora use a common package grub2-tools for both of pc bios and efi,
and use package grub2 for pc bios, grub2-efi-modules for efi.
Both of grub2 and grub2-efi-modules requires grub2-tools.
https://www.rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/g/grub2-tools-2.02-0.34.fc24.x86_64.html
https://www.rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/g/grub2-2.02-0.34.fc24.x86_64.html
https://www.rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/g/grub2-efi-modules-2.02-0.34.fc24.x86_64.html
[YOCTO #11639]
(From OE-Core rev: 6fd0bc313c6035b7de5b7a62cbbcd1d6f546c7f9)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-bsp/grub/grub-efi_2.02.bb | 9 | ||||
-rw-r--r-- | meta/recipes-bsp/grub/grub2.inc | 8 | ||||
-rw-r--r-- | meta/recipes-bsp/grub/grub_2.02.bb | 14 |
3 files changed, 18 insertions, 13 deletions
diff --git a/meta/recipes-bsp/grub/grub-efi_2.02.bb b/meta/recipes-bsp/grub/grub-efi_2.02.bb index 128da162d0..112a99dcfb 100644 --- a/meta/recipes-bsp/grub/grub-efi_2.02.bb +++ b/meta/recipes-bsp/grub/grub-efi_2.02.bb | |||
@@ -3,7 +3,7 @@ require grub2.inc | |||
3 | GRUBPLATFORM = "efi" | 3 | GRUBPLATFORM = "efi" |
4 | 4 | ||
5 | DEPENDS_append_class-target = " grub-efi-native" | 5 | DEPENDS_append_class-target = " grub-efi-native" |
6 | RDEPENDS_${PN}_class-target = "diffutils freetype" | 6 | RDEPENDS_${PN}_class-target = "diffutils freetype grub-common" |
7 | 7 | ||
8 | SRC_URI += " \ | 8 | SRC_URI += " \ |
9 | file://cfg \ | 9 | file://cfg \ |
@@ -41,7 +41,9 @@ do_install_class-native() { | |||
41 | install -m 755 grub-mkimage ${D}${bindir} | 41 | install -m 755 grub-mkimage ${D}${bindir} |
42 | } | 42 | } |
43 | 43 | ||
44 | do_install_append_class-target() { | 44 | do_install_class-target() { |
45 | oe_runmake 'DESTDIR=${D}' -C grub-core install | ||
46 | |||
45 | # Remove build host references... | 47 | # Remove build host references... |
46 | find "${D}" -name modinfo.sh -type f -exec \ | 48 | find "${D}" -name modinfo.sh -type f -exec \ |
47 | sed -i \ | 49 | sed -i \ |
@@ -69,8 +71,7 @@ do_deploy_class-native() { | |||
69 | 71 | ||
70 | addtask deploy after do_install before do_build | 72 | addtask deploy after do_install before do_build |
71 | 73 | ||
72 | FILES_${PN} += "${libdir}/grub/${GRUB_TARGET}-efi \ | 74 | FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \ |
73 | ${datadir}/grub \ | ||
74 | " | 75 | " |
75 | 76 | ||
76 | # 64-bit binaries are expected for the bootloader with an x32 userland | 77 | # 64-bit binaries are expected for the bootloader with an x32 userland |
diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc index 28f96bb162..79a84e9ac5 100644 --- a/meta/recipes-bsp/grub/grub2.inc +++ b/meta/recipes-bsp/grub/grub2.inc | |||
@@ -67,12 +67,4 @@ do_configure_prepend() { | |||
67 | ${S}/autogen.sh ) | 67 | ${S}/autogen.sh ) |
68 | } | 68 | } |
69 | 69 | ||
70 | # grub and grub-efi's sysroot/${datadir}/grub/grub-mkconfig_lib are | ||
71 | # conflicted, remove it since no one uses it. | ||
72 | SYSROOT_DIRS_BLACKLIST += "${datadir}/grub/grub-mkconfig_lib" | ||
73 | |||
74 | PACKAGES =+ "${PN}-editenv" | ||
75 | |||
76 | FILES_${PN}-editenv = "${bindir}/grub-editenv" | ||
77 | RDEPENDS_${PN} += "${PN}-editenv" | ||
78 | RDEPENDS_${PN}_class-native = "" | 70 | RDEPENDS_${PN}_class-native = "" |
diff --git a/meta/recipes-bsp/grub/grub_2.02.bb b/meta/recipes-bsp/grub/grub_2.02.bb index 3e61f6a16d..e0973759fb 100644 --- a/meta/recipes-bsp/grub/grub_2.02.bb +++ b/meta/recipes-bsp/grub/grub_2.02.bb | |||
@@ -1,6 +1,18 @@ | |||
1 | require grub2.inc | 1 | require grub2.inc |
2 | 2 | ||
3 | RDEPENDS_${PN} += "diffutils freetype" | 3 | RDEPENDS_${PN}-common += "${PN}-editenv" |
4 | RDEPENDS_${PN} += "diffutils freetype ${PN}-common" | ||
5 | |||
6 | RPROVIDES_${PN}-editenv += "${PN}-efi-editenv" | ||
7 | |||
8 | PACKAGES =+ "${PN}-editenv ${PN}-common" | ||
9 | FILES_${PN}-editenv = "${bindir}/grub-editenv" | ||
10 | FILES_${PN}-common = " \ | ||
11 | ${bindir} \ | ||
12 | ${sysconfdir} \ | ||
13 | ${sbindir} \ | ||
14 | ${datadir}/grub \ | ||
15 | " | ||
4 | 16 | ||
5 | do_install_append () { | 17 | do_install_append () { |
6 | install -d ${D}${sysconfdir}/grub.d | 18 | install -d ${D}${sysconfdir}/grub.d |