From patchwork Wed Jul 31 15:07:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ga=C3=ABl_PORTAY?= X-Patchwork-Id: 1967177 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WYwSL35lTz1yYq for ; Thu, 1 Aug 2024 01:07:30 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id AEB8D40E01; Wed, 31 Jul 2024 15:07:28 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id Ir85Js9JuYVE; Wed, 31 Jul 2024 15:07:27 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.34; helo=ash.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org D8AD74056F Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id D8AD74056F; Wed, 31 Jul 2024 15:07:26 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 457861BF23C for ; Wed, 31 Jul 2024 15:07:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 3196C817A2 for ; Wed, 31 Jul 2024 15:07:25 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id rbiVNonGlEAA for ; Wed, 31 Jul 2024 15:07:23 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a00:1450:4864:20::32f; helo=mail-wm1-x32f.google.com; envelope-from=gael.portay@gmail.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org 83CBE81344 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 83CBE81344 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by smtp1.osuosl.org (Postfix) with ESMTPS id 83CBE81344 for ; Wed, 31 Jul 2024 15:07:23 +0000 (UTC) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-4280c55e488so6617135e9.0 for ; Wed, 31 Jul 2024 08:07:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722438441; x=1723043241; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=OdUcE3rKdMU2wFSnQdbYiNPPXmxgYHRb90loIyEQSNQ=; b=NsX1mLMXKOgckjSTTTmOMDgDU/srjuuQUJOb6jlRzvt5zrYL7uF3u4JKeT8T6JcaI7 wSElCpAmA7+mp3e+8E52kxUNJ52irb7f8/XVZQzb07AxysMcPWVSxW+B0bcoNa5H1mSc fw9ZqleLerIle+Q+K1Tlub9nUvQAT0GNY1/vmfGjQ9Hoozit0rjjh4z8YhAUSNm5BomX avJwZa/Rv/jcPo/AeHw4ZOAjhRMlRjR8Q7akakRUM2mha2SmoDMkAaK3FBAI3bmDL9S6 viP6xqaAynHChZlPF+88NVDyizE+KqiFfvAMoEIo4nBzO1y56fwgGicJs4BrKNWUrcYW 2qqg== X-Gm-Message-State: AOJu0YyXcxj2QL0SzsaYV60JTGZKRB4TaAuP2K5N0OL1W94jY/mRHN8t 74I+CzAfvug+Il1av3HFJDeAsSwfGrx+2EwW8SFrN7SlFN6GFOaBv8dY80ivEDx1yw== X-Google-Smtp-Source: AGHT+IHxIeVCn30v7MOXMeC4t2NVXbnT7JB/BvsuNIBhKfLnnVY5+Mh7ukZdUDG+uADlbkBjpgcxQw== X-Received: by 2002:a05:600c:3c88:b0:426:711c:6591 with SMTP id 5b1f17b1804b1-428243e21aamr45316665e9.4.1722438440766; Wed, 31 Jul 2024 08:07:20 -0700 (PDT) Received: from localhost.localdomain ([2a01:e0a:ce:f2f0:3a7c:76ff:fe01:6f05]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4282baba4f1sm24403615e9.23.2024.07.31.08.07.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 31 Jul 2024 08:07:20 -0700 (PDT) From: " =?utf-8?q?Ga=C3=ABl_PORTAY?= " X-Google-Original-From: =?utf-8?q?Ga=C3=ABl_PORTAY?= To: buildroot@buildroot.org Date: Wed, 31 Jul 2024 17:07:14 +0200 Message-ID: <20240731150714.332503-1-gael.portay@rtone.fr> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722438441; x=1723043241; darn=buildroot.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=OdUcE3rKdMU2wFSnQdbYiNPPXmxgYHRb90loIyEQSNQ=; b=cDArzO1VjoM66z/JxebHSNX7V4Q9tk34O7/x1ER3FrvKxEFIeyRqsAavALgeu6uCZI 8q+y9besb4ASt5Ty7eH4KbCazA+ZSEIMgrvmAzfJbyKb8JworfwxbC8aq39BauU4BvZ0 SunbIcRyZmaU+X0KEBuXteVQj3z7EAglOfOUe5/UmjeHkrC+InQUXrtTXQumEGuoloG8 fmjSGEB6er5jCtVEoxY/qgBh+ndbRB1gM+R/O0uZN82gnHO6RNimOpzhy69nCADYOQpb OXReWy9+hzNjnPrzjil5BWlulCwg9vikci+V/WQMwIBuxt/R71/tyHSBRSf4U3rSsjlD 0w1Q== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=none dis=none) header.from=gmail.com X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=cDArzO1V Subject: [Buildroot] [PATCH 1/1] package/qt5webengine: set -feature-webengine-system-jpeg if jpeg-turbo X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Giulio Benetti , =?utf-8?q?Ga?= =?utf-8?q?=C3=ABl_PORTAY?= , Julien Corjon , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" The configure flag -feature-webengine-system-jpeg[1] checks if a jpeg library is in the sysroot. It compiles a test file linked against the symbols jpeg_crop_scanline() and jpeg_skip_scanlines()[2] that are specific to jpep-turbo. As a consequence, the configure scripts fails if the libjpeg is selected as the jpeg variant as the symbols mentionend above are not part of the jpeg library installed in the sysroots. ERROR: Feature 'webengine-system-jpeg' was enabled, but the pre-condition 'config.unix && features.system-jpeg && libs.webengine-jpeglib' failed. Additionally, see the log below, extracted from config.log: > /home/gportay/src/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -mtune=arm1176jzf-s -march=armv6 --sysroot=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot -w -fPIC -I. -I/home/gportay/src/buildroot/output/host/mkspecs/devices/linux-buildroot-g++ -o main.o main.cpp > main.cpp: In function ‘int main(int, char**)’: > main.cpp:12:5: error: ‘jpeg_crop_scanline’ was not declared in this scope; did you mean ‘jpeg_write_scanlines’? > 12 | jpeg_crop_scanline(nullptr, &dummy, &dummy); > | ^~~~~~~~~~~~~~~~~~ > | jpeg_write_scanlines > main.cpp:13:5: error: ‘jpeg_skip_scanlines’ was not declared in this scope; did you mean ‘jpeg_write_scanlines’? > 13 | jpeg_skip_scanlines(nullptr, dummy); > | ^~~~~~~~~~~~~~~~~~~ > | jpeg_write_scanlines > make[1]: *** [Makefile:334: main.o] Error 1 > make[1]: Leaving directory '/home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib' This sets the configure option -feature-webengine-system-jpeg and adds jpeg-turbo to the dependencies if jpeg-turbo is the selected variant. Note: Chromium bundles jpeg-turbo[3][4] if not using the jpeg library from the sysroot, or qt-jpeg[5]. [1]: https://github.com/qt/qtwebengine/blob/v5.15.14-lts/src/buildtools/configure.json#L609-L613 [2]: https://github.com/qt/qtwebengine/blob/v5.15.14-lts/src/buildtools/configure.json#L95-L116 [3]: https://github.com/qt/qtwebengine-chromium/tree/18c9261dc5b8aa57a0bdd5b62ce6f648cca1ef5e/chromium/third_party/libjpeg_turbo [4]: https://github.com/qt/qtwebengine-chromium/blob/18c9261dc5b8aa57a0bdd5b62ce6f648cca1ef5e/chromium/third_party/libjpeg.gni [5]: https://github.com/qt/qtwebengine/blob/v5.15.14-lts/src/buildtools/configure.json#L614-618 Fixes: looking for library webengine-jpeglib Trying source 0 (type pkgConfig) of library webengine-jpeglib ... + PKG_CONFIG_SYSROOT_DIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot PKG_CONFIG_LIBDIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig /home/gportay/src/buildroot/output/host/bin/pkg-config --exists --silence-errors libjpeg + PKG_CONFIG_SYSROOT_DIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot PKG_CONFIG_LIBDIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig /home/gportay/src/buildroot/output/host/bin/pkg-config --modversion libjpeg > 9.6.0 + PKG_CONFIG_SYSROOT_DIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot PKG_CONFIG_LIBDIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig /home/gportay/src/buildroot/output/host/bin/pkg-config --libs-only-L libjpeg > -L/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib + PKG_CONFIG_SYSROOT_DIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot PKG_CONFIG_LIBDIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig /home/gportay/src/buildroot/output/host/bin/pkg-config --libs-only-l libjpeg > -ljpeg + PKG_CONFIG_SYSROOT_DIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot PKG_CONFIG_LIBDIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig /home/gportay/src/buildroot/output/host/bin/pkg-config --cflags libjpeg > -I/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include + cd /home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib && PKG_CONFIG_SYSROOT_DIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot PKG_CONFIG_LIBDIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig /home/gportay/src/buildroot/output/host/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" -early "CONFIG += cross_compile" 'QMAKE_USE += webengine-jpeglib' 'QMAKE_LIBS_WEBENGINE_JPEGLIB = -L/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib -ljpeg' /home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib + cd /home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib && MAKEFLAGS= make > make[1]: Entering directory '/home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib' > /home/gportay/src/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -mtune=arm1176jzf-s -march=armv6 --sysroot=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot -w -fPIC -I. -I/home/gportay/src/buildroot/output/host/mkspecs/devices/linux-buildroot-g++ -o main.o main.cpp > main.cpp: In function ‘int main(int, char**)’: > main.cpp:12:5: error: ‘jpeg_crop_scanline’ was not declared in this scope; did you mean ‘jpeg_write_scanlines’? > 12 | jpeg_crop_scanline(nullptr, &dummy, &dummy); > | ^~~~~~~~~~~~~~~~~~ > | jpeg_write_scanlines > main.cpp:13:5: error: ‘jpeg_skip_scanlines’ was not declared in this scope; did you mean ‘jpeg_write_scanlines’? > 13 | jpeg_skip_scanlines(nullptr, dummy); > | ^~~~~~~~~~~~~~~~~~~ > | jpeg_write_scanlines > make[1]: *** [Makefile:334: main.o] Error 1 > make[1]: Leaving directory '/home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib' => source failed verification. Trying source 1 (type inline) of library webengine-jpeglib ... + cd /home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib && PKG_CONFIG_SYSROOT_DIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot PKG_CONFIG_LIBDIR=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/share/pkgconfig:/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/arm-buildroot-linux-gnueabihf/pkgconfig /home/gportay/src/buildroot/output/host/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" -early "CONFIG += cross_compile" 'QMAKE_USE += webengine-jpeglib' 'QMAKE_LIBS_WEBENGINE_JPEGLIB = -ljpeg' /home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib + cd /home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib && MAKEFLAGS= make clean && MAKEFLAGS= make > make[1]: Entering directory '/home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib' > rm -f main.o > rm -f *~ core *.core > make[1]: Leaving directory '/home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib' > make[1]: Entering directory '/home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib' > /home/gportay/src/buildroot/output/host/bin/arm-buildroot-linux-gnueabihf-g++ -c -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g0 -D_FORTIFY_SOURCE=1 -mtune=arm1176jzf-s -march=armv6 --sysroot=/home/gportay/src/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot -w -fPIC -I. -I/home/gportay/src/buildroot/output/host/mkspecs/devices/linux-buildroot-g++ -o main.o main.cpp > main.cpp: In function ‘int main(int, char**)’: > main.cpp:12:5: error: ‘jpeg_crop_scanline’ was not declared in this scope; did you mean ‘jpeg_write_scanlines’? > 12 | jpeg_crop_scanline(nullptr, &dummy, &dummy); > | ^~~~~~~~~~~~~~~~~~ > | jpeg_write_scanlines > main.cpp:13:5: error: ‘jpeg_skip_scanlines’ was not declared in this scope; did you mean ‘jpeg_write_scanlines’? > 13 | jpeg_skip_scanlines(nullptr, dummy); > | ^~~~~~~~~~~~~~~~~~~ > | jpeg_write_scanlines > make[1]: *** [Makefile:334: main.o] Error 1 > make[1]: Leaving directory '/home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/config.tests/webengine-jpeglib' => source failed verification. test config.qtwebengine_buildtools.libraries.webengine-jpeglib FAILED Signed-off-by: Gaël PORTAY --- package/qt5/qt5webengine/qt5webengine.mk | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package/qt5/qt5webengine/qt5webengine.mk b/package/qt5/qt5webengine/qt5webengine.mk index 529a83df6c..8c4a5c564d 100644 --- a/package/qt5/qt5webengine/qt5webengine.mk +++ b/package/qt5/qt5webengine/qt5webengine.mk @@ -71,7 +71,6 @@ QT5WEBENGINE_DEPENDENCIES += \ host-webp \ host-zlib \ freetype \ - jpeg \ lcms2 \ libevent \ libnss \ @@ -94,7 +93,6 @@ QT5WEBENGINE_CONF_OPTS += \ -feature-webengine-system-glib \ -feature-webengine-system-glibc \ -feature-webengine-system-harfbuzz \ - -feature-webengine-system-jpeg \ -feature-webengine-system-khr \ -feature-webengine-system-lcms2 \ -feature-webengine-system-libevent \ @@ -121,6 +119,11 @@ QT5WEBENGINE_CONF_OPTS += \ -no-feature-webengine-system-minizip \ -no-feature-webengine-system-gn +ifeq ($(BR2_PACKAGE_JPEG_TURBO),y) +QT5WEBENGINE_DEPENDENCIES += jpeg +QT5WEBENGINE_CONF_OPTS += -feature-webengine-system-jpeg +endif + ifeq ($(BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS),y) QT5WEBENGINE_CONF_OPTS += -webengine-proprietary-codecs else