Message ID | 20240724085442.134872-1-ruepp.simon@mailbox.org |
---|---|
State | New |
Headers | show |
Series | [v2] package/qt5/qt53d: fix compilation error | expand |
Hello Simon, On Wed, 24 Jul 2024 10:54:44 +0200 Simon Ruepp via buildroot <buildroot@buildroot.org> wrote: > Compiling the qt53d package currently fails since the required > source files of the assimp library are missing. Because of this, > QT53D_EXTRA_DOWNLOADS along with a post extract hook is used > to separately download and extract the missing files. > > Signed-off-by: Simon Ruepp <ruepp.simon@mailbox.org> Thanks for the patch. Could you document since when this is failing, i.e which Buildroot commit introduced this regression? Also, could you comment on how this will interact with: ifeq ($(BR2_PACKAGE_ASSIMP),y) QT53D_DEPENDENCIES += assimp endif that we have in qt53.mk. It seems like qt53d can use a system-provided assimp instead of a bundled copy of assimp: !ios:!tvos:!qcc:qtConfig(assimp):if(qtConfig(system-assimp)|android-clang|clang|win32-msvc|gcc) { SUBDIRS += assimp } (from src/plugins/sceneparsers/sceneparsers.pro). There is apparently a -assimp config option that allows to chose between "system", "qt" and "no". Also, I see that src/3rdparty/patches/ has a bunch of patches for assimp. Should these patches be applied? Are they important? Thanks a lot for your additional investigations :-) Thomas
Hello Simon, Gentle ping on the below questions, in order to be able to move forward with resolving this qt53d build issue. Thanks a lot for your contribution! Thomas On Wed, 24 Jul 2024 22:21:44 +0200 Thomas Petazzoni via buildroot <buildroot@buildroot.org> wrote: > Hello Simon, > > On Wed, 24 Jul 2024 10:54:44 +0200 > Simon Ruepp via buildroot <buildroot@buildroot.org> wrote: > > > Compiling the qt53d package currently fails since the required > > source files of the assimp library are missing. Because of this, > > QT53D_EXTRA_DOWNLOADS along with a post extract hook is used > > to separately download and extract the missing files. > > > > Signed-off-by: Simon Ruepp <ruepp.simon@mailbox.org> > > Thanks for the patch. Could you document since when this is failing, > i.e which Buildroot commit introduced this regression? > > Also, could you comment on how this will interact with: > > ifeq ($(BR2_PACKAGE_ASSIMP),y) > QT53D_DEPENDENCIES += assimp > endif > > that we have in qt53.mk. It seems like qt53d can use a system-provided > assimp instead of a bundled copy of assimp: > > !ios:!tvos:!qcc:qtConfig(assimp):if(qtConfig(system-assimp)|android-clang|clang|win32-msvc|gcc) { > SUBDIRS += assimp > } > > (from src/plugins/sceneparsers/sceneparsers.pro). There is apparently a > -assimp config option that allows to chose between "system", "qt" and > "no". > > Also, I see that src/3rdparty/patches/ has a bunch of patches for > assimp. Should these patches be applied? Are they important? > > Thanks a lot for your additional investigations :-) > > Thomas
Hello Thomas, this fails since commit ca9e08277c473de1d0119768661ce0ba96559a7a. I am currently on vacation and will be back in three weeks. During that period I unfortunately don't have the time to look into the problem any further. Maybe someone can help me out? Best regards Simon > Thomas Petazzoni <thomas.petazzoni@bootlin.com> hat am 02.08.2024 19:18 CEST geschrieben: > > > Hello Simon, > > Gentle ping on the below questions, in order to be able to move forward > with resolving this qt53d build issue. > > Thanks a lot for your contribution! > > Thomas > > On Wed, 24 Jul 2024 22:21:44 +0200 > Thomas Petazzoni via buildroot <buildroot@buildroot.org> wrote: > > > Hello Simon, > > > > On Wed, 24 Jul 2024 10:54:44 +0200 > > Simon Ruepp via buildroot <buildroot@buildroot.org> wrote: > > > > > Compiling the qt53d package currently fails since the required > > > source files of the assimp library are missing. Because of this, > > > QT53D_EXTRA_DOWNLOADS along with a post extract hook is used > > > to separately download and extract the missing files. > > > > > > Signed-off-by: Simon Ruepp <ruepp.simon@mailbox.org> > > > > Thanks for the patch. Could you document since when this is failing, > > i.e which Buildroot commit introduced this regression? > > > > Also, could you comment on how this will interact with: > > > > ifeq ($(BR2_PACKAGE_ASSIMP),y) > > QT53D_DEPENDENCIES += assimp > > endif > > > > that we have in qt53.mk. It seems like qt53d can use a system-provided > > assimp instead of a bundled copy of assimp: > > > > !ios:!tvos:!qcc:qtConfig(assimp):if(qtConfig(system-assimp)|android-clang|clang|win32-msvc|gcc) { > > SUBDIRS += assimp > > } > > > > (from src/plugins/sceneparsers/sceneparsers.pro). There is apparently a > > -assimp config option that allows to chose between "system", "qt" and > > "no". > > > > Also, I see that src/3rdparty/patches/ has a bunch of patches for > > assimp. Should these patches be applied? Are they important? > > > > Thanks a lot for your additional investigations :-) > > > > Thomas > > > > -- > Thomas Petazzoni, co-owner and CEO, Bootlin > Embedded Linux and Kernel engineering and training > https://bootlin.com
Hello Thomas, I did some further research and can now answer your remaining questions: > It seems like qt53d can use a system-provided > assimp instead of a bundled copy of assimp: > > !ios:!tvos:!qcc:qtConfig(assimp):if(qtConfig(system-assimp)|android-clang|clang|win32-msvc|gcc) { > SUBDIRS += assimp > } > > (from src/plugins/sceneparsers/sceneparsers.pro). There is apparently a > -assimp config option that allows to chose between "system", "qt" and > "no". I found the options you mentioned in the "config_help.txt" file located in the qt53d build directory and integrated them in the qt53d.mk with: ifeq ($(BR2_PACKAGE_ASSIMP),y) QT53D_DEPENDENCIES += assimp QT53D_CONF_OPTS += -system-assimp else QT53D_POST_EXTRACT_HOOKS += QT53D_ASSIMP_EXTRACT QT53D_CONF_OPTS += -qt-assimp endif But the build still fails when trying to use the system-provided version: make[4]: *** No rule to make target '/home/sr20608/src/buildroot/output/build/qt53d-9bf4d03e2515f7c454647d54542330b6e90f8191/src/3rdparty/assimp/src/code/Common/Assimp.cpp', needed by '.obj/Assimp.o'. Stop. > Also, I see that src/3rdparty/patches/ has a bunch of patches for > assimp. Should these patches be applied? Are they important? These patches don't seem to be important anymore since they already have been applied. Best regards Simon
diff --git a/package/qt5/qt53d/qt53d.hash b/package/qt5/qt53d/qt53d.hash index 65e6e8e380..49d6048eb0 100644 --- a/package/qt5/qt53d/qt53d.hash +++ b/package/qt5/qt53d/qt53d.hash @@ -1,5 +1,6 @@ # Locally calculated sha256 31b3e52fb0b28f1e99dd25342a0204d239f7f42bcb25fb56393956904ef412ea qt3d-9bf4d03e2515f7c454647d54542330b6e90f8191.tar.bz2 +sha256 00ec879857f511bed0c8b04ea4e7882a282051ec299245af487183c790e65539 qtquick3d-assimp-8f0c6b04b2257a520aaab38421b2e090204b69df.tar.bz2 # Hashes for license files: sha256 edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253 LICENSE.GPL diff --git a/package/qt5/qt53d/qt53d.mk b/package/qt5/qt53d/qt53d.mk index 8d9babd704..61e90b9360 100644 --- a/package/qt5/qt53d/qt53d.mk +++ b/package/qt5/qt53d/qt53d.mk @@ -11,6 +11,16 @@ QT53D_DEPENDENCIES = qt5declarative QT53D_INSTALL_STAGING = YES QT53D_SYNC_QT_HEADERS = YES +QT53D_ASSIMP_VERSION = 8f0c6b04b2257a520aaab38421b2e090204b69df +QT53D_ASSIMP_SOURCE = qtquick3d-assimp-$(QT53D_ASSIMP_VERSION).tar.bz2 +QT53D_EXTRA_DOWNLOADS = $(QT5_SITE)/qtquick3d-assimp/-/archive/$(QT53D_ASSIMP_VERSION)/$(QT53D_ASSIMP_SOURCE) + +define QT53D_ASSIMP_EXTRACT + $(call suitable-extractor,$(QT53D_ASSIMP_SOURCE)) $(QT53D_DL_DIR)/$(QT53D_ASSIMP_SOURCE) | \ + $(TAR) --strip-components=1 -C $(@D)/src/3rdparty/assimp/src $(TAR_OPTIONS) - +endef +QT53D_POST_EXTRACT_HOOKS += QT53D_ASSIMP_EXTRACT + ifeq ($(BR2_PACKAGE_ASSIMP),y) QT53D_DEPENDENCIES += assimp endif
Compiling the qt53d package currently fails since the required source files of the assimp library are missing. Because of this, QT53D_EXTRA_DOWNLOADS along with a post extract hook is used to separately download and extract the missing files. Signed-off-by: Simon Ruepp <ruepp.simon@mailbox.org> --- Changes v1 -> v2: - Use QT53D_EXTRA_DOWNLOADS and a post extract hook instead of adding a new package to fix the problem (suggested by Thomas) package/qt5/qt53d/qt53d.hash | 1 + package/qt5/qt53d/qt53d.mk | 10 ++++++++++ 2 files changed, 11 insertions(+)