* [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools @ 2020-06-17 23:07 Christopher Clark 2020-06-17 23:12 ` [OE-core] " Richard Purdie 0 siblings, 1 reply; 6+ messages in thread From: Christopher Clark @ 2020-06-17 23:07 UTC (permalink / raw) To: openembedded-core Both grub-native and grub-efi-native included packaging for the grub-mkimage and grub-editenv tools, which prevented concurrent installation of both the grub-native and grub-efi-native packages. This caused errors on image generation with wic when populating partitions with both legacy and efi boot support, so resolve this by removing the duplicated tools from grub-efi-native and add a runtime dependency from it to grub-native. Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com> --- meta/recipes-bsp/grub/grub-efi_2.04.bb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/meta/recipes-bsp/grub/grub-efi_2.04.bb b/meta/recipes-bsp/grub/grub-efi_2.04.bb index b9d6225d27..ed43dee152 100644 --- a/meta/recipes-bsp/grub/grub-efi_2.04.bb +++ b/meta/recipes-bsp/grub/grub-efi_2.04.bb @@ -6,6 +6,7 @@ GRUBPLATFORM = "efi" DEPENDS_append_class-target = " grub-efi-native" RDEPENDS_${PN}_class-target = "grub-common virtual/grub-bootconf" +RDEPENDS_${PN}_class-native = "grub-native" SRC_URI += " \ file://cfg \ @@ -61,9 +62,7 @@ do_install_append_class-target() { } do_install_class-native() { - install -d ${D}${bindir} - install -m 755 grub-mkimage ${D}${bindir} - install -m 755 grub-editenv ${D}${bindir} + : } do_install_class-target() { -- 2.17.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools 2020-06-17 23:07 [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools Christopher Clark @ 2020-06-17 23:12 ` Richard Purdie 2020-06-18 8:27 ` Jacob Kroon 0 siblings, 1 reply; 6+ messages in thread From: Richard Purdie @ 2020-06-17 23:12 UTC (permalink / raw) To: Christopher Clark, openembedded-core On Wed, 2020-06-17 at 16:07 -0700, Christopher Clark wrote: > Both grub-native and grub-efi-native included packaging for the > grub-mkimage and grub-editenv tools, which prevented concurrent > installation of both the grub-native and grub-efi-native packages. > This caused errors on image generation with wic when populating > partitions with both legacy and efi boot support, so resolve this by > removing the duplicated tools from grub-efi-native and add a > runtime dependency from it to grub-native. > > Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com> > --- > meta/recipes-bsp/grub/grub-efi_2.04.bb | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/meta/recipes-bsp/grub/grub-efi_2.04.bb b/meta/recipes- > bsp/grub/grub-efi_2.04.bb > index b9d6225d27..ed43dee152 100644 > --- a/meta/recipes-bsp/grub/grub-efi_2.04.bb > +++ b/meta/recipes-bsp/grub/grub-efi_2.04.bb > @@ -6,6 +6,7 @@ GRUBPLATFORM = "efi" > > DEPENDS_append_class-target = " grub-efi-native" > RDEPENDS_${PN}_class-target = "grub-common virtual/grub-bootconf" > +RDEPENDS_${PN}_class-native = "grub-native" > > SRC_URI += " \ > file://cfg \ > @@ -61,9 +62,7 @@ do_install_append_class-target() { > } > > do_install_class-native() { > - install -d ${D}${bindir} > - install -m 755 grub-mkimage ${D}${bindir} > - install -m 755 grub-editenv ${D}${bindir} > + : > } > > do_install_class-target() { I think we want to PROVIDES_append_class-native = " grub-efi-native" in grub and then drop the BBCLASSEXTEND from grub-efi? Cheers, Richard ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools 2020-06-17 23:12 ` [OE-core] " Richard Purdie @ 2020-06-18 8:27 ` Jacob Kroon 2020-06-18 21:58 ` Christopher Clark 0 siblings, 1 reply; 6+ messages in thread From: Jacob Kroon @ 2020-06-18 8:27 UTC (permalink / raw) To: Richard Purdie, Christopher Clark, openembedded-core On 6/18/20 1:12 AM, Richard Purdie wrote: > On Wed, 2020-06-17 at 16:07 -0700, Christopher Clark wrote: >> Both grub-native and grub-efi-native included packaging for the >> grub-mkimage and grub-editenv tools, which prevented concurrent >> installation of both the grub-native and grub-efi-native packages. >> This caused errors on image generation with wic when populating >> partitions with both legacy and efi boot support, so resolve this by >> removing the duplicated tools from grub-efi-native and add a >> runtime dependency from it to grub-native. >> >> Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com> >> --- >> meta/recipes-bsp/grub/grub-efi_2.04.bb | 5 ++--- >> 1 file changed, 2 insertions(+), 3 deletions(-) >> >> diff --git a/meta/recipes-bsp/grub/grub-efi_2.04.bb b/meta/recipes- >> bsp/grub/grub-efi_2.04.bb >> index b9d6225d27..ed43dee152 100644 >> --- a/meta/recipes-bsp/grub/grub-efi_2.04.bb >> +++ b/meta/recipes-bsp/grub/grub-efi_2.04.bb >> @@ -6,6 +6,7 @@ GRUBPLATFORM = "efi" >> >> DEPENDS_append_class-target = " grub-efi-native" >> RDEPENDS_${PN}_class-target = "grub-common virtual/grub-bootconf" >> +RDEPENDS_${PN}_class-native = "grub-native" >> >> SRC_URI += " \ >> file://cfg \ >> @@ -61,9 +62,7 @@ do_install_append_class-target() { >> } >> >> do_install_class-native() { >> - install -d ${D}${bindir} >> - install -m 755 grub-mkimage ${D}${bindir} >> - install -m 755 grub-editenv ${D}${bindir} >> + : >> } >> >> do_install_class-target() { > > I think we want to PROVIDES_append_class-native = " grub-efi-native" in > grub and then drop the BBCLASSEXTEND from grub-efi? > Just for the record, I tested building grub-native (x86-64) both with platform "pc" and "efi", and in the same build directory, and all tools in ${bindir} were binary identical. Asking in #grub on freenode also confirmed this, apparently Debian packaging also assumes this. So no grub-efi-native required, and we can remove that _class_target/_class_native special handling as well. Jacob ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools 2020-06-18 8:27 ` Jacob Kroon @ 2020-06-18 21:58 ` Christopher Clark 2020-06-19 19:35 ` Jacob Kroon 0 siblings, 1 reply; 6+ messages in thread From: Christopher Clark @ 2020-06-18 21:58 UTC (permalink / raw) To: Jacob Kroon; +Cc: Richard Purdie, OE-core On Thu, Jun 18, 2020 at 1:27 AM Jacob Kroon <jacob.kroon@gmail.com> wrote: > > On 6/18/20 1:12 AM, Richard Purdie wrote: > > On Wed, 2020-06-17 at 16:07 -0700, Christopher Clark wrote: > >> Both grub-native and grub-efi-native included packaging for the > >> grub-mkimage and grub-editenv tools, which prevented concurrent > >> installation of both the grub-native and grub-efi-native packages. > >> This caused errors on image generation with wic when populating > >> partitions with both legacy and efi boot support, so resolve this by > >> removing the duplicated tools from grub-efi-native and add a > >> runtime dependency from it to grub-native.> >> > > > > I think we want to PROVIDES_append_class-native = " grub-efi-native" in > > grub and then drop the BBCLASSEXTEND from grub-efi? > > Just for the record, I tested building grub-native (x86-64) both with > platform "pc" and "efi", and in the same build directory, and all tools > in ${bindir} were binary identical. Asking in #grub on freenode also > confirmed this, apparently Debian packaging also assumes this. > > So no grub-efi-native required, and we can remove that > _class_target/_class_native special handling as well. I'm not as confident as I was about the results of the binary comparison that I did, since objdump definitely wasn't showing the strings differences that were clearly present between those binaries. I think that proposing this change was a mistake since there could well be other layers that depend on core having separate packages with behaviour specific to those that is needed. Sorry for the noise. Christopher ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools 2020-06-18 21:58 ` Christopher Clark @ 2020-06-19 19:35 ` Jacob Kroon 2020-06-19 23:03 ` Christopher Clark 0 siblings, 1 reply; 6+ messages in thread From: Jacob Kroon @ 2020-06-19 19:35 UTC (permalink / raw) To: Christopher Clark; +Cc: Richard Purdie, OE-core On 6/18/20 11:58 PM, Christopher Clark wrote: > On Thu, Jun 18, 2020 at 1:27 AM Jacob Kroon <jacob.kroon@gmail.com> wrote: >> >> On 6/18/20 1:12 AM, Richard Purdie wrote: >>> On Wed, 2020-06-17 at 16:07 -0700, Christopher Clark wrote: >>>> Both grub-native and grub-efi-native included packaging for the >>>> grub-mkimage and grub-editenv tools, which prevented concurrent >>>> installation of both the grub-native and grub-efi-native packages. >>>> This caused errors on image generation with wic when populating >>>> partitions with both legacy and efi boot support, so resolve this by >>>> removing the duplicated tools from grub-efi-native and add a >>>> runtime dependency from it to grub-native.> >> >>> >>> I think we want to PROVIDES_append_class-native = " grub-efi-native" in >>> grub and then drop the BBCLASSEXTEND from grub-efi? >> >> Just for the record, I tested building grub-native (x86-64) both with >> platform "pc" and "efi", and in the same build directory, and all tools >> in ${bindir} were binary identical. Asking in #grub on freenode also >> confirmed this, apparently Debian packaging also assumes this. >> >> So no grub-efi-native required, and we can remove that >> _class_target/_class_native special handling as well. > > I'm not as confident as I was about the results of the binary > comparison that I did, since objdump definitely wasn't showing the > strings differences that were clearly present between those binaries. > I think that proposing this change was a mistake since there could > well be other layers that depend on core having separate packages with > behaviour specific to those that is needed. Sorry for the noise. > I dug some more into this. That GRUB_PKGLIBDIR define which references the recipe specific install sysroot is actually unused and could be removed. But there are 3 other values that contain the install sysroot being encoding in the binaries: GRUB_DATADIR = $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/usr/share GRUB_LIBDIR = $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/usr/lib GRUB_SYSCONFDIR = $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/etc But all three values refer to directories that are not expected to exists at the time they are executed, right ? At least not for me using rm_work.bbclass. Where grub-mkimage is used in the efi recipe, -d is passed to override the libdir. So I'd still vote for removing grub-efi-native. Jacob ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools 2020-06-19 19:35 ` Jacob Kroon @ 2020-06-19 23:03 ` Christopher Clark 0 siblings, 0 replies; 6+ messages in thread From: Christopher Clark @ 2020-06-19 23:03 UTC (permalink / raw) To: Jacob Kroon; +Cc: Richard Purdie, OE-core On Fri, Jun 19, 2020 at 12:35 PM Jacob Kroon <jacob.kroon@gmail.com> wrote: > > On 6/18/20 11:58 PM, Christopher Clark wrote: > > On Thu, Jun 18, 2020 at 1:27 AM Jacob Kroon <jacob.kroon@gmail.com> wrote: > >> > >> On 6/18/20 1:12 AM, Richard Purdie wrote: > >>> On Wed, 2020-06-17 at 16:07 -0700, Christopher Clark wrote: > >>>> Both grub-native and grub-efi-native included packaging for the > >>>> grub-mkimage and grub-editenv tools, which prevented concurrent > >>>> installation of both the grub-native and grub-efi-native packages. > >>>> This caused errors on image generation with wic when populating > >>>> partitions with both legacy and efi boot support, so resolve this by > >>>> removing the duplicated tools from grub-efi-native and add a > >>>> runtime dependency from it to grub-native.> >> > >>> > >>> I think we want to PROVIDES_append_class-native = " grub-efi-native" in > >>> grub and then drop the BBCLASSEXTEND from grub-efi? > >> > >> Just for the record, I tested building grub-native (x86-64) both with > >> platform "pc" and "efi", and in the same build directory, and all tools > >> in ${bindir} were binary identical. Asking in #grub on freenode also > >> confirmed this, apparently Debian packaging also assumes this. > >> > >> So no grub-efi-native required, and we can remove that > >> _class_target/_class_native special handling as well. > > > > I'm not as confident as I was about the results of the binary > > comparison that I did, since objdump definitely wasn't showing the > > strings differences that were clearly present between those binaries. > > I think that proposing this change was a mistake since there could > > well be other layers that depend on core having separate packages with > > behaviour specific to those that is needed. Sorry for the noise. > > > > I dug some more into this. That GRUB_PKGLIBDIR define which references > the recipe specific install sysroot is actually unused and could be > removed. But there are 3 other values that contain the install sysroot > being encoding in the binaries: > > GRUB_DATADIR = > $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/usr/share > > GRUB_LIBDIR = > $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/usr/lib > > GRUB_SYSCONFDIR = > $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/etc > > But all three values refer to directories that are not expected to > exists at the time they are executed, right ? At least not for me using > rm_work.bbclass. Where grub-mkimage is used in the efi recipe, -d is > passed to override the libdir. grub and grub-efi are separate packages because they build different software to build systems that boot differently, and are packaged that way in multiple distros. It allows for one version of one tool to be used and a different version of the other to be used in building the same system, via Yocto/OE's flexible layer architecture. The same is true when they are used natively during a build. I don't know of a case where installing the native version of a package would instead slipstream in the tools from the other in this way, and I don't think it's right to do so: it would be counterintuitive, and so potentially time-consuming to diagnose any issues arising. > So I'd still vote for removing grub-efi-native. Please don't. Christopher ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-06-19 23:03 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-06-17 23:07 [PATCH] grub-efi-native: use RDEPENDS on grub-native instead of duplicating tools Christopher Clark 2020-06-17 23:12 ` [OE-core] " Richard Purdie 2020-06-18 8:27 ` Jacob Kroon 2020-06-18 21:58 ` Christopher Clark 2020-06-19 19:35 ` Jacob Kroon 2020-06-19 23:03 ` Christopher Clark
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox