diff --git a/classes/image-gcnano-link.bbclass b/classes/image-gcnano-link.bbclass new file mode 100644 index 0000000..abb5e4c --- /dev/null +++ b/classes/image-gcnano-link.bbclass @@ -0,0 +1,33 @@ +# Usage: add INHERIT += "image-gcnano-link" to your conf file + +GCNANO_USERLAND_VENDOR_DIR ?= "/vendor" +GCNANO_USERLAND_OUTPUT_LIBDIR = "${@'${GCNANO_USERLAND_VENDOR_DIR}/lib' if d.getVar('GCNANO_USERLAND_USE_VENDOR_DIR') == '1' else '${libdir}'}" + +gcnano_create_link() { + if [ -L ${IMAGE_ROOTFS}${libdir}/libEGL.so ]; + then + # link requested: + # libEGL.so.1 -> /vendor/lib/libEGL.so + if [ ! -L ${IMAGE_ROOTFS}/usr/lib/libEGL.so.1 ]; + then + LINK=$(readlink ${IMAGE_ROOTFS}${libdir}/libEGL.so) + ln -s $LINK ${IMAGE_ROOTFS}${libdir}/libEGL.so.1 + fi + # link requested: + # libgbm.so.1 -> /vendor/lib/libgbm.so + if [ ! -L ${IMAGE_ROOTFS}${libdir}/libgbm.so.1 ]; + then + LINK=$(readlink ${IMAGE_ROOTFS}${libdir}/libgbm.so) + ln -s $LINK ${IMAGE_ROOTFS}${libdir}/libgbm.so.1 + fi + # link requested: + # libGLESv2.so.2 -> /vendor/lib/libGLESv2.so + if [ ! -L ${IMAGE_ROOTFS}${libdir}/libGLESv2.so.2 ]; + then + LINK=$(readlink ${IMAGE_ROOTFS}${libdir}/libGLESv2.so) + ln -s $LINK ${IMAGE_ROOTFS}${libdir}/libGLESv2.so.2 + fi + fi +} + +IMAGE_PREPROCESS_COMMAND += "gcnano_create_link;" diff --git a/recipes-graphics/gcnano-userland/files/gcnano-userland-make-link.service b/recipes-graphics/gcnano-userland/files/gcnano-userland-make-link.service deleted file mode 100644 index 78c06e6..0000000 --- a/recipes-graphics/gcnano-userland/files/gcnano-userland-make-link.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Create link for gcnano-userland -Wants=systemd-udevd.service systemd-udev-trigger.service -After=systemd-remount-fs.service systemd-udevd.service - -[Service] -Type=oneshot -ExecStartPre=-/bin/ln -sf /usr/lib/libEGL.so /usr/lib/libEGL.so.1 -ExecStart=-/bin/ln -sf /usr/lib/libGLESv2.so /usr/lib/libGLESv2.so.2 -ExecStartPost=/bin/systemctl disable gcnano-userland-make-link.service - -[Install] -WantedBy=basic.target diff --git a/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc b/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc index 61084d5..528c32c 100644 --- a/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc +++ b/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc @@ -8,10 +8,12 @@ PROVIDES += "gcnano-userland virtual/libgles1 virtual/libgles2 virtual/egl virtu TAR_FILENAME = "gcnano-userland-${BACKEND}-${PV}-${GCNANO_USERLAND_FB_TARBALL_DATE}" -SRC_URI = "git://github.com/STMicroelectronics/gcnano-binaries.git;protocol=https;branch=gcnano-6.2.4_p4-binaries" -SRCREV = "c01642ed5e18cf09ecd905af193e935cb3be95ed" +SRC_URI = "git://github.com/STMicroelectronics/gcnano-binaries;protocol=https;branch=gcnano-6.4.1-binaries" +SRCREV = "eaff2c61bcc3936f8193a52ffe965bdcc6457a57" -PV = "6.2.4.p4" +PV = "6.4.1" + +GCNANO_USERLAND_FB_TARBALL_DATE = "20200402" S = "${WORKDIR}/git" @@ -74,10 +76,17 @@ clean_debug_file() { create_link() { prefix=$1 library_link=$2 - library_src=$3 + library_src_relative_path_to_dst=$3 library_dst=$4 - LINK=`readlink $prefix/$library_src/$library_link` - ln -sf $library_src/$LINK $prefix/$library_dst/$library_link + LINK=`readlink $prefix/$library_dst/$library_src_relative_path_to_dst/$library_link` + if [ -L $prefix/$library_dst/$library_src_relative_path_to_dst/$LINK ]; + then + # point on a link, need to get the path of link + SUBLINK=$(readlink $prefix/$library_dst/$library_src_relative_path_to_dst/$LINK) + ln -sf $library_src_relative_path_to_dst/$SUBLINK $prefix/$library_dst/$library_link + else + ln -sf $library_src_relative_path_to_dst/$LINK $prefix/$library_dst/$library_link + fi } do_install() { if [ ${GCNANO_USERLAND_USE_VENDOR_DIR} -eq 1 ]; @@ -89,16 +98,16 @@ do_install() { cd ${D}${libdir}/ if [ -e ${D}/${GCNANO_USERLAND_OUTPUT_LIBDIR}/gbm_viv.so ]; then - ln -sf ${GCNANO_USERLAND_OUTPUT_LIBDIR}/gbm_viv.so ${D}${libdir}/gbm_viv.so + ln -sf ../..${GCNANO_USERLAND_OUTPUT_LIBDIR}/gbm_viv.so ${D}${libdir}/gbm_viv.so fi if [ -e ${D}/${GCNANO_USERLAND_OUTPUT_LIBDIR}/libgbm_viv.so ]; then - ln -sf ${GCNANO_USERLAND_OUTPUT_LIBDIR}/libgbm_viv.so ${D}${libdir}/libgbm_viv.so + ln -sf ../..${GCNANO_USERLAND_OUTPUT_LIBDIR}/libgbm_viv.so ${D}${libdir}/libgbm_viv.so fi for link in `find ${D}/${GCNANO_USERLAND_OUTPUT_LIBDIR} -type l`; do library_link=`basename $link` - create_link ${D} $library_link ${GCNANO_USERLAND_OUTPUT_LIBDIR} ${libdir} + create_link ${D} $library_link ../..${GCNANO_USERLAND_OUTPUT_LIBDIR} ${libdir} done chown -R root.root ${D}/${GCNANO_USERLAND_OUTPUT_LIBDIR} ${D}${libdir}/ @@ -161,7 +170,7 @@ FILES_${PN} += "${GCNANO_USERLAND_OUTPUT_LIBDIR}/libwayland-viv*.so*" FILES_${PN} += "${GCNANO_USERLAND_OUTPUT_LIBDIR}/gbm_viv.so ${GCNANO_USERLAND_OUTPUT_LIBDIR}/gbm_viv.*.${GCNANO_TYPE}.so" FILES_${PN} += "${GCNANO_USERLAND_OUTPUT_LIBDIR}/libgbm_viv.so ${GCNANO_USERLAND_OUTPUT_LIBDIR}/libgbm_viv.*.${GCNANO_TYPE}.so" -FILES_${PN} += "${libdir}/" +FILES_${PN} += "${libdir}/lib*.so ${libdir}/lib*${SOLIBS} ${libdir}/gbm*" SUMMARY_${PN}-dev = "${SUMMARY_${PN}} - Development files" FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig/ ${libdir}/" @@ -179,8 +188,6 @@ gcnano_sysroot() { rm ${SYSROOT_DESTDIR}${libdir}/libwayland-egl.so* rm ${SYSROOT_DESTDIR}${libdir}/pkgconfig/wayland-egl.pc fi - fi } SYSROOT_PREPROCESS_FUNCS =+ "gcnano_sysroot" -#SYSROOT_DIRS_append =+ " ${GCNANO_USERLAND_OUTPUT_LIBDIR} " diff --git a/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-debug-stm32mp.bb b/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-debug-stm32mp.bb index edb28f0..a40430f 100644 --- a/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-debug-stm32mp.bb +++ b/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-debug-stm32mp.bb @@ -8,8 +8,6 @@ DEPENDS += " libdrm wayland " GCNANO_TYPE = "debug" -GCNANO_USERLAND_FB_TARBALL_DATE = "20181210" - do_install_append() { clean_release_file } diff --git a/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-stm32mp.bb b/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-stm32mp.bb index 072eb37..6e419d8 100644 --- a/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-stm32mp.bb +++ b/recipes-graphics/gcnano-userland/gcnano-userland-multi-binary-stm32mp.bb @@ -8,8 +8,6 @@ DEPENDS += " libdrm wayland " GCNANO_TYPE = "release" -GCNANO_USERLAND_FB_TARBALL_DATE = "20190626" - do_install_append() { clean_debug_file }