Message ID | 20191106155611.31575-2-scooby22@web.de |
---|---|
State | Changes Requested |
Headers | show |
Series | package/gcnano-binaries: new package | expand |
Hello Jens, Thanks for your contribution! I suppose you're the person I met last week during the Embedded Linux Conference Europe in Lyon, who asked me about submitting this gcnano-binaries package ? In any case, glad to see this package being contributed. On Wed, 6 Nov 2019 16:56:10 +0100 Jens Kleintje <scooby22@web.de> wrote: > New package which provides the driver and binary blob libraries for the > STM32MP157 vivante gcnano gpu. > The precompiled libaries depends on wayland and libdrm. > Since the github repo has no releases/tags we use the standard git method > with explicit SHA. We need your Signed-off-by line here. > --- > package/Config.in | 1 + > package/gcnano-binaries/gcnano-binaries.hash | 2 + > package/gcnano-binaries/gcnano-binaries.mk | 87 ++++++++++++++++++++ You forgot to include the package/gcnano-binaries/Config.in file in your patch, so we cannot review the full package. Also, please add an entry in the DEVELOPERS file for this new package. > diff --git a/package/gcnano-binaries/gcnano-binaries.hash b/package/gcnano-binaries/gcnano-binaries.hash > new file mode 100644 > index 0000000000..fae7e56deb > --- /dev/null > +++ b/package/gcnano-binaries/gcnano-binaries.hash > @@ -0,0 +1,2 @@ > +sha256 19f3fe4e83ec95fd2ecb70d5cb03c7b00a13357966a9b6e56b59e5788c550c88 gcnano-binaries-c01642ed5e18cf09ecd905af193e935cb3be95ed.tar.gz > +sha256 7d209718473d18f69f75adb7caf9cb5d4b0a31da068756aa011bea617de3dc57 EULA > diff --git a/package/gcnano-binaries/gcnano-binaries.mk b/package/gcnano-binaries/gcnano-binaries.mk > new file mode 100644 > index 0000000000..806abd7840 > --- /dev/null > +++ b/package/gcnano-binaries/gcnano-binaries.mk > @@ -0,0 +1,87 @@ > +################################################################################ > +# > +# VIVANTE GCNANO BINARIES > +# > +################################################################################ > + > + > +GCNANO_BINARIES_FILE_VERSION = 6.2.4.p4 > +GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed > +GCNANO_BINARIES_SITE = https://github.com/STMicroelectronics/gcnano-binaries.git > +GCNANO_BINARIES_SITE_METHOD = git Please use the "github" helper macro: GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION)) and remove the _SITE_METHOD variable. > + > +GCNANO_BINARIES_LICENSE = MIT, Vivante End User Software License Terms > +GCNANO_BINARIES_LICENSE_FILES = EULA > +GCNANO_BINARIES_REDISTRIBUTE = NO > + > +GCNANO_BINARIES_DEPENDENCIES = linux wayland libdrm > + > +GCNANO_BINARIES_INSTALL_STAGING = YES > + > +GCNANO_BINARIES_PROVIDES = libegl libgles > + > +define GCNANO_BINARIES_EXTRACT_HELPER > + awk 'BEGIN { start = 0; } \ > + /^EOEULA/ { start = 0; } \ > + { if (start) print; } \ > + /<<EOEULA/ { start = 1; }' \ > + $(1) > $(@D)/EULA > + cd $(@D) && sh $(1) --auto-accept > + find $(@D)/$(basename $(notdir $(1))) -mindepth 1 -maxdepth 1 -exec mv {} $(@D) \; > + rmdir $(@D)/$(basename $(notdir $(1))) > +endef > + > + > +define GCNANO_BINARIES_EXTRACT_CMDS > +gzip -d -c $(GCNANO_BINARIES_DL_DIR)/gcnano-binaries-$(GCNANO_BINARIES_VERSION).tar.gz | tar --strip-components=1 -C $(@D) -xf - > +tar --strip-components=1 -xJf $(@D)/gcnano-driver-$(GCNANO_BINARIES_FILE_VERSION).tar.xz -C $(@D) These two lines look like the default extract commands, so why are you doing this ? Just because you need to call the GCNANO_BINARIES_EXTRACT_HELPER ? If so, then you don't need that, simply do: GCNANO_BINARIES_POST_EXTRACT_HOOKS += GCNANO_BINARIES_EXTRACT_HELPER and in GCNANO_BINARIES_EXTRACT_HELPER, instead of using $(1), just use $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626.bin directly. Also, could you add a comment on top of GCNANO_BINARIES_EXTRACT_HELPER to explain what it does, because it is not obvious. > +$(call GCNANO_BINARIES_EXTRACT_HELPER,$(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626.bin) > +endef > + > +GCNANO_BINARIES_MODULE_MAKE_OPTS = \ > + KERNEL_DIR=$(LINUX_DIR) \ > + SOC_PLATFORM=st-st\ Space before \ > + AQROOT=$(@D)\ Ditto. > + DEBUG=0 > + > +define GCNANO_BINARIES_INSTALL_STAGING_CMDS > + cp $(@D)/usr/lib/pkgconfig/* $(STAGING_DIR)/usr/lib/pkgconfig/ > + cp -r $(@D)/usr/lib/* $(STAGING_DIR)/usr/lib/ > + cd $(STAGING_DIR)/usr/lib; \ > + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ > + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ > + ln -sf libEGL.so libEGL.so.1; \ > + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ > + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ > + ln -sf libgbm.so libgbm.so.1; \ > + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ > + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ > + ln -sf libGLESv2.so libGLESv2.so.2; \ > + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ > + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ > + ln -sf libVSC.6.2.4.multi.release.so libVSC.so > + rm -f $(STAGING_DIR)/usr/lib/pkgconfig/wayland-egl.pc Why are you removing this .pc file ? > + cp -r $(@D)/usr/include/* $(STAGING_DIR)/usr/include/ > +endef > + > +GCNANO_BINARIES_POST_INSTALL_TARGET_HOOKS += GCNANO_BINARIES_COPY_LIBS I am not sure why you are using a GCNANO_BINARIES_POST_INSTALL_TARGET_HOOKS. Why not simply rename GCNANO_BINARIES_COPY_LIBS to GCNANO_BINARIES_INSTALL_TARGET_CMDS. > +define GCNANO_BINARIES_COPY_LIBS > + cp -r $(@D)/usr/lib/* $(TARGET_DIR)/usr/lib/ > + cd $(TARGET_DIR)/usr/lib; \ > + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ > + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ > + ln -sf libEGL.so libEGL.so.1; \ > + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ > + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ > + ln -sf libgbm.so libgbm.so.1; \ > + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ > + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ > + ln -sf libGLESv2.so libGLESv2.so.2; \ > + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ > + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ > + ln -sf libVSC.6.2.4.multi.release.so libVSC.so; > +endef The long list of symlinks to be created is not nice, but I don't really see a nicer solution to achieve the same. Perhaps one thing that could be done is to factorize stuff a bit: define GCNANO_BINARIES_INSTALL cp $(@D)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/ cp -r $(@D)/usr/lib/* $(1)/usr/lib/ cd $(1)/usr/lib; \ ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ ln -sf libEGL.so libEGL.so.1; \ ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ ln -sf libgbm.so libgbm.so.1; \ ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ ln -sf libGLESv2.so libGLESv2.so.2; \ ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ ln -sf libVSC.6.2.4.multi.release.so libVSC.so rm -f $(1)/usr/lib/pkgconfig/wayland-egl.pc cp -r $(@D)/usr/include/* $(1)/usr/include/ endef And then: define GCNANO_BINARIES_INSTALL_STAGING_CMDS $(call GCNANO_BINARIES_INSTALL,$(STAGING_DIR)) endef define GCNANO_BINARIES_INSTALL_TARGET_CMDS $(call GCNANO_BINARIES_INSTALL,$(TARGET_DIR)) endef Note: it is perfectly fine to install header files and .pc files to $(TARGET_DIR), they anyway get cleaned up later in the build. Could you rework your patch to take into account those comments ? Thanks! Thomas
> Gesendet: Mittwoch, 06. November 2019 um 23:08 Uhr > Von: "Thomas Petazzoni" <thomas.petazzoni@bootlin.com> > An: "Jens Kleintje" <scooby22@web.de> > Cc: buildroot@busybox.net > Betreff: Re: [Buildroot] [PATCH 1/2] package/gcnano-binaries: new package > Hello Jens, > Thanks for your contribution! I suppose you're the person I met last > week during the Embedded Linux Conference Europe in Lyon, who asked me > about submitting this gcnano-binaries package ? You are right. > > In any case, glad to see this package being contributed. > > On Wed, 6 Nov 2019 16:56:10 +0100 > > Jens Kleintje <scooby22@web.de> wrote: > > New package which provides the driver and binary blob libraries for the > > STM32MP157 vivante gcnano gpu. > > The precompiled libaries depends on wayland and libdrm. > > Since the github repo has no releases/tags we use the standard git method > > with explicit SHA. > We need your Signed-off-by line here. OK > > --- > > package/Config.in | 1 + > > package/gcnano-binaries/gcnano-binaries.hash | 2 + > > package/gcnano-binaries/gcnano-binaries.mk | 87 ++++++++++++++++++++ > You forgot to include the package/gcnano-binaries/Config.in file in > your patch, so we cannot review the full package. Sorry > Also, please add an entry in the DEVELOPERS file for this new package. OK > > diff --git a/package/gcnano-binaries/gcnano-binaries.hash b/package/gcnano-binaries/gcnano-binaries.hash > > new file mode 100644 > > index 0000000000..fae7e56deb > > --- /dev/null > > +++ b/package/gcnano-binaries/gcnano-binaries.hash > > @@ -0,0 +1,2 @@ > > +sha256 19f3fe4e83ec95fd2ecb70d5cb03c7b00a13357966a9b6e56b59e5788c550c88 gcnano-binaries-c01642ed5e18cf09ecd905af193e935cb3be95ed.tar.gz > > +sha256 7d209718473d18f69f75adb7caf9cb5d4b0a31da068756aa011bea617de3dc57 EULA > > diff --git a/package/gcnano-binaries/gcnano-binaries.mk b/package/gcnano-binaries/gcnano-binaries.mk > > new file mode 100644 > > index 0000000000..806abd7840 > > --- /dev/null > > +++ b/package/gcnano-binaries/gcnano-binaries.mk > > @@ -0,0 +1,87 @@ > > +################################################################################ > > +# > > +# VIVANTE GCNANO BINARIES > > +# > > +################################################################################ > > + > > + > > +GCNANO_BINARIES_FILE_VERSION = 6.2.4.p4 > > +GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed > > +GCNANO_BINARIES_SITE = https://github.com/STMicroelectronics/gcnano-binaries.git > > +GCNANO_BINARIES_SITE_METHOD = git > Please use the "github" helper macro: > GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed > GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION)) > and remove the _SITE_METHOD variable. The page (https://github.com/STMicroelectronics/gcnano-binaries) has no release and no tag. So I think there is no archive directory. > > + > > +GCNANO_BINARIES_LICENSE = MIT, Vivante End User Software License Terms > > +GCNANO_BINARIES_LICENSE_FILES = EULA > > +GCNANO_BINARIES_REDISTRIBUTE = NO > > + > > +GCNANO_BINARIES_DEPENDENCIES = linux wayland libdrm > > + > > +GCNANO_BINARIES_INSTALL_STAGING = YES > > + > > +GCNANO_BINARIES_PROVIDES = libegl libgles > > + > > +define GCNANO_BINARIES_EXTRACT_HELPER > > + awk 'BEGIN { start = 0; } \ > > + /^EOEULA/ { start = 0; } \ > > + { if (start) print; } \ > > + /<<EOEULA/ { start = 1; }' \ > > + $(1) > $(@D)/EULA > > + cd $(@D) && sh $(1) --auto-accept > > + find $(@D)/$(basename $(notdir $(1))) -mindepth 1 -maxdepth 1 -exec mv {} $(@D) \; > > + rmdir $(@D)/$(basename $(notdir $(1))) > > +endef > > + > > + > > +define GCNANO_BINARIES_EXTRACT_CMDS > > +gzip -d -c $(GCNANO_BINARIES_DL_DIR)/gcnano-binaries-$(GCNANO_BINARIES_VERSION).tar.gz | tar --strip-components=1 -C $(@D) -xf - > > +tar --strip-components=1 -xJf $(@D)/gcnano-driver-$(GCNANO_BINARIES_FILE_VERSION).tar.xz -C $(@D) > These two lines look like the default extract commands, so why are you > doing this ? Just because you need to call the > GCNANO_BINARIES_EXTRACT_HELPER ? > If so, then you don't need that, simply do: > GCNANO_BINARIES_POST_EXTRACT_HOOKS += GCNANO_BINARIES_EXTRACT_HELPER > and in GCNANO_BINARIES_EXTRACT_HELPER, instead of using $(1), just use > $(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626.bin > directly. > Also, could you add a comment on top of GCNANO_BINARIES_EXTRACT_HELPER > to explain what it does, because it is not obvious. OK > > +$(call GCNANO_BINARIES_EXTRACT_HELPER,$(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626.bin) > > +endef > > + > > +GCNANO_BINARIES_MODULE_MAKE_OPTS = \ > > + KERNEL_DIR=$(LINUX_DIR) \ > > + SOC_PLATFORM=st-st\ > Space before \ > > + AQROOT=$(@D)\ > Ditto. > > + DEBUG=0 > > + > > +define GCNANO_BINARIES_INSTALL_STAGING_CMDS > > + cp $(@D)/usr/lib/pkgconfig/* $(STAGING_DIR)/usr/lib/pkgconfig/ > > + cp -r $(@D)/usr/lib/* $(STAGING_DIR)/usr/lib/ > > + cd $(STAGING_DIR)/usr/lib; \ > > + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ > > + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ > > + ln -sf libEGL.so libEGL.so.1; \ > > + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ > > + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ > > + ln -sf libgbm.so libgbm.so.1; \ > > + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ > > + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ > > + ln -sf libGLESv2.so libGLESv2.so.2; \ > > + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ > > + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ > > + ln -sf libVSC.6.2.4.multi.release.so libVSC.so > > + rm -f $(STAGING_DIR)/usr/lib/pkgconfig/wayland-egl.pc > Why are you removing this .pc file ? The file is already provided by wayland package. I saw it from in the yocto package https://github.com/STMicroelectronics/meta-st-stm32mp/blob/thud/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc > > + cp -r $(@D)/usr/include/* $(STAGING_DIR)/usr/include/ > > +endef > > + > > +GCNANO_BINARIES_POST_INSTALL_TARGET_HOOKS += GCNANO_BINARIES_COPY_LIBS > I am not sure why you are using a > GCNANO_BINARIES_POST_INSTALL_TARGET_HOOKS. Why not simply rename > GCNANO_BINARIES_COPY_LIBS to GCNANO_BINARIES_INSTALL_TARGET_CMDS. I need to accept the EULA. But some parts I will move. > > +define GCNANO_BINARIES_COPY_LIBS > > + cp -r $(@D)/usr/lib/* $(TARGET_DIR)/usr/lib/ > > + cd $(TARGET_DIR)/usr/lib; \ > > + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ > > + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ > > + ln -sf libEGL.so libEGL.so.1; \ > > + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ > > + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ > > + ln -sf libgbm.so libgbm.so.1; \ > > + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ > > + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ > > + ln -sf libGLESv2.so libGLESv2.so.2; \ > > + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ > > + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ > > + ln -sf libVSC.6.2.4.multi.release.so libVSC.so; > > +endef > The long list of symlinks to be created is not nice, but I don't really > see a nicer solution to achieve the same. Perhaps one thing that could > be done is to factorize stuff a bit: > define GCNANO_BINARIES_INSTALL > cp $(@D)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/ > cp -r $(@D)/usr/lib/* $(1)/usr/lib/ > cd $(1)/usr/lib; \ > ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ > ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ > ln -sf libEGL.so libEGL.so.1; \ > ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ > ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ > ln -sf libgbm.so libgbm.so.1; \ > ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ > ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ > ln -sf libGLESv2.so libGLESv2.so.2; \ > ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ > ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ > ln -sf libVSC.6.2.4.multi.release.so libVSC.so > rm -f $(1)/usr/lib/pkgconfig/wayland-egl.pc > cp -r $(@D)/usr/include/* $(1)/usr/include/ > endef > And then: > define GCNANO_BINARIES_INSTALL_STAGING_CMDS > $(call GCNANO_BINARIES_INSTALL,$(STAGING_DIR)) > endef > define GCNANO_BINARIES_INSTALL_TARGET_CMDS > $(call GCNANO_BINARIES_INSTALL,$(TARGET_DIR)) > endef > Note: it is perfectly fine to install header files and .pc files to > $(TARGET_DIR), they anyway get cleaned up later in the build. OK > Could you rework your patch to take into account those comments ? Will come soon. > Thanks! > Thomas > -- > Thomas Petazzoni, CTO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com[https://bootlin.com] > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot[http://lists.busybox.net/mailman/listinfo/buildroot] Regards Jens Kleintje
Hello Jens, On Mon, 11 Nov 2019 11:19:31 +0100 "Jens Kleintje" <Scooby22@web.de> wrote: > > Please use the "github" helper macro: > > > GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed > > GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION)) > > > and remove the _SITE_METHOD variable. > The page (https://github.com/STMicroelectronics/gcnano-binaries) > has no release and no tag. So I think there is no archive directory. Not a problem, the github macro works with any arbitrary commit. > > > + rm -f $(STAGING_DIR)/usr/lib/pkgconfig/wayland-egl.pc > > > Why are you removing this .pc file ? > The file is already provided by wayland package. > I saw it from in the yocto package > https://github.com/STMicroelectronics/meta-st-stm32mp/blob/thud/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc Then, if you could add a comment in the .mk file about this, it would be good. > > Could you rework your patch to take into account those comments ? > Will come soon. Great, thanks! Thomas
> Gesendet: Montag, 11. November 2019 um 14:16 Uhr > Von: "Thomas Petazzoni" <thomas.petazzoni@bootlin.com> > An: "Jens Kleintje" <Scooby22@web.de> > Cc: buildroot@busybox.net > Betreff: Re: [Buildroot] [PATCH 1/2] package/gcnano-binaries: new package > > Hello Jens, > > On Mon, 11 Nov 2019 11:19:31 +0100 > "Jens Kleintje" <Scooby22@web.de> wrote: > > > > Please use the "github" helper macro: > > > > > GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed > > > GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION)) > > > > > and remove the _SITE_METHOD variable. > > The page (https://github.com/STMicroelectronics/gcnano-binaries) > > has no release and no tag. So I think there is no archive directory. > > Not a problem, the github macro works with any arbitrary commit. The problem is, that I get everytime the HEAD and not the commit with SHA c01642ed5e18cf09ecd905af193e935cb3be95ed. Today I got the commit with SHA 271f87d816a957bf196f6328c34110cab1224d4d. Did I miss something? > > > > > + rm -f $(STAGING_DIR)/usr/lib/pkgconfig/wayland-egl.pc > > > > > Why are you removing this .pc file ? > > The file is already provided by wayland package. > > I saw it from in the yocto package > > https://github.com/STMicroelectronics/meta-st-stm32mp/blob/thud/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc > > Then, if you could add a comment in the .mk file about this, it would > be good. > > > > Could you rework your patch to take into account those comments ? > > Will come soon. > > Great, thanks! > > Thomas > -- > Thomas Petazzoni, CTO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot >
On Mon, 11 Nov 2019 14:48:08 +0100 "Jens Kleintje" <Scooby22@web.de> wrote: > > Not a problem, the github macro works with any arbitrary commit. > The problem is, that I get everytime the HEAD and not the commit with SHA c01642ed5e18cf09ecd905af193e935cb3be95ed. > Today I got the commit with SHA 271f87d816a957bf196f6328c34110cab1224d4d. > Did I miss something? Depends on how you did it I guess. Did you do it like this: V4L2GRAB_VERSION = f8d8844d52387b3db7b8736f5e86156d9374f781 V4L2GRAB_SITE = $(call github,twam,v4l2grab,$(V4L2GRAB_VERSION)) Thomas
> Gesendet: Montag, 11. November 2019 um 14:55 Uhr > Von: "Thomas Petazzoni" <thomas.petazzoni@bootlin.com> > An: "Jens Kleintje" <Scooby22@web.de> > Cc: buildroot@busybox.net > Betreff: Re: [Buildroot] [PATCH 1/2] package/gcnano-binaries: new package > > On Mon, 11 Nov 2019 14:48:08 +0100 > "Jens Kleintje" <Scooby22@web.de> wrote: > > > > Not a problem, the github macro works with any arbitrary commit. > > The problem is, that I get everytime the HEAD and not the commit with SHA c01642ed5e18cf09ecd905af193e935cb3be95ed. > > Today I got the commit with SHA 271f87d816a957bf196f6328c34110cab1224d4d. > > Did I miss something? > > Depends on how you did it I guess. Did you do it like this: > > V4L2GRAB_VERSION = f8d8844d52387b3db7b8736f5e86156d9374f781 > V4L2GRAB_SITE = $(call github,twam,v4l2grab,$(V4L2GRAB_VERSION)) > GCNANO_BINARIES_FILE_VERSION = 6.2.4.p4 GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed GCNANO_BINARIES_SITE = $(call github,STMicroelectronics,gcnano-binaries,$(GCNANO_BINARIES_VERSION)) > Thomas > -- > Thomas Petazzoni, CTO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com >
diff --git a/package/Config.in b/package/Config.in index dc5ec56d6b..1a88da547d 100644 --- a/package/Config.in +++ b/package/Config.in @@ -449,6 +449,7 @@ endmenu source "package/freescale-imx/Config.in" source "package/fxload/Config.in" source "package/gadgetfs-test/Config.in" + source "package/gcnano-binaries/Config.in" source "package/gpm/Config.in" source "package/gpsd/Config.in" source "package/gptfdisk/Config.in" diff --git a/package/gcnano-binaries/gcnano-binaries.hash b/package/gcnano-binaries/gcnano-binaries.hash new file mode 100644 index 0000000000..fae7e56deb --- /dev/null +++ b/package/gcnano-binaries/gcnano-binaries.hash @@ -0,0 +1,2 @@ +sha256 19f3fe4e83ec95fd2ecb70d5cb03c7b00a13357966a9b6e56b59e5788c550c88 gcnano-binaries-c01642ed5e18cf09ecd905af193e935cb3be95ed.tar.gz +sha256 7d209718473d18f69f75adb7caf9cb5d4b0a31da068756aa011bea617de3dc57 EULA diff --git a/package/gcnano-binaries/gcnano-binaries.mk b/package/gcnano-binaries/gcnano-binaries.mk new file mode 100644 index 0000000000..806abd7840 --- /dev/null +++ b/package/gcnano-binaries/gcnano-binaries.mk @@ -0,0 +1,87 @@ +################################################################################ +# +# VIVANTE GCNANO BINARIES +# +################################################################################ + + +GCNANO_BINARIES_FILE_VERSION = 6.2.4.p4 +GCNANO_BINARIES_VERSION = c01642ed5e18cf09ecd905af193e935cb3be95ed +GCNANO_BINARIES_SITE = https://github.com/STMicroelectronics/gcnano-binaries.git +GCNANO_BINARIES_SITE_METHOD = git + +GCNANO_BINARIES_LICENSE = MIT, Vivante End User Software License Terms +GCNANO_BINARIES_LICENSE_FILES = EULA +GCNANO_BINARIES_REDISTRIBUTE = NO + +GCNANO_BINARIES_DEPENDENCIES = linux wayland libdrm + +GCNANO_BINARIES_INSTALL_STAGING = YES + +GCNANO_BINARIES_PROVIDES = libegl libgles + +define GCNANO_BINARIES_EXTRACT_HELPER + awk 'BEGIN { start = 0; } \ + /^EOEULA/ { start = 0; } \ + { if (start) print; } \ + /<<EOEULA/ { start = 1; }' \ + $(1) > $(@D)/EULA + cd $(@D) && sh $(1) --auto-accept + find $(@D)/$(basename $(notdir $(1))) -mindepth 1 -maxdepth 1 -exec mv {} $(@D) \; + rmdir $(@D)/$(basename $(notdir $(1))) +endef + + +define GCNANO_BINARIES_EXTRACT_CMDS +gzip -d -c $(GCNANO_BINARIES_DL_DIR)/gcnano-binaries-$(GCNANO_BINARIES_VERSION).tar.gz | tar --strip-components=1 -C $(@D) -xf - +tar --strip-components=1 -xJf $(@D)/gcnano-driver-$(GCNANO_BINARIES_FILE_VERSION).tar.xz -C $(@D) +$(call GCNANO_BINARIES_EXTRACT_HELPER,$(@D)/gcnano-userland-multi-$(GCNANO_BINARIES_FILE_VERSION)-20190626.bin) +endef + +GCNANO_BINARIES_MODULE_MAKE_OPTS = \ + KERNEL_DIR=$(LINUX_DIR) \ + SOC_PLATFORM=st-st\ + AQROOT=$(@D)\ + DEBUG=0 + +define GCNANO_BINARIES_INSTALL_STAGING_CMDS + cp $(@D)/usr/lib/pkgconfig/* $(STAGING_DIR)/usr/lib/pkgconfig/ + cp -r $(@D)/usr/lib/* $(STAGING_DIR)/usr/lib/ + cd $(STAGING_DIR)/usr/lib; \ + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ + ln -sf libEGL.so libEGL.so.1; \ + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ + ln -sf libgbm.so libgbm.so.1; \ + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ + ln -sf libGLESv2.so libGLESv2.so.2; \ + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ + ln -sf libVSC.6.2.4.multi.release.so libVSC.so + rm -f $(STAGING_DIR)/usr/lib/pkgconfig/wayland-egl.pc + cp -r $(@D)/usr/include/* $(STAGING_DIR)/usr/include/ +endef + +GCNANO_BINARIES_POST_INSTALL_TARGET_HOOKS += GCNANO_BINARIES_COPY_LIBS + +define GCNANO_BINARIES_COPY_LIBS + cp -r $(@D)/usr/lib/* $(TARGET_DIR)/usr/lib/ + cd $(TARGET_DIR)/usr/lib; \ + ln -sf gbm_viv.6.2.4.multi.release.so gbm_viv.so; \ + ln -sf libEGL.6.2.4.multi.release.so libEGL.so; \ + ln -sf libEGL.so libEGL.so.1; \ + ln -sf libGAL.6.2.4.multi.release.so libGAL.so; \ + ln -sf libgbm.6.2.4.multi.release.so libgbm.so; \ + ln -sf libgbm.so libgbm.so.1; \ + ln -sf libGLESv1_CM.6.2.4.multi.release.so libGLESv1_CM.so; \ + ln -sf libGLESv2.6.2.4.multi.release.so libGLESv2.so; \ + ln -sf libGLESv2.so libGLESv2.so.2; \ + ln -sf libGLSLC.6.2.4.multi.release.so libGLSLC.so; \ + ln -sf libOpenVG.6.2.4.multi.release.so libOpenVG.so; \ + ln -sf libVSC.6.2.4.multi.release.so libVSC.so; +endef + +$(eval $(kernel-module)) +$(eval $(generic-package))