Commit Graph

73348 Commits

Author SHA1 Message Date
Francois Perrad
e67ab71bf6 package/graphene: new package
a dependency for gtk4

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-17 17:47:51 +02:00
TIAN Yuanhao
f30386f508 package/crun: drop libgcrypt dependency
This reverts commit 4d5fd84496 (package/crun: add libgcrypt optional
dependency, 2022-12-30).

Since bump to 1.15, libgcrypt is not an optional dependency anymore as
it has been droped in 1.14 with
8d96f0884b

Signed-off-by: TIAN Yuanhao <tianyuanhao3@163.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-17 16:58:50 +02:00
Fred Lefranc
a22f17881c package/busybox: fix build with glibc 2.39
When glibc was bumped to version 2.39 in commit
b5680f53d6, it removed the deprecated
libcrypt support.

Until the upgrade of glibc to 2.39, Busybox could rely on the libcrypt
provided by glibc. Since version 2.39, glibc no longer provides
libcrypt, causing a build failure with Busybox configurations that
have CONFIG_USE_BB_CRYPT disabled.

To fix this, add the libxcrypt dependency to Busybox when
BR2_PACKAGE_LIBXCRYPT is selected. The user is still responsible for
enabling BR2_PACKAGE_LIBXCRYPT when their Busybox configuration has
CONFIG_USE_BB_CRYPT disabled.

Signed-off-by: Fred Lefranc <fred.lefranc+evs@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-17 16:57:29 +02:00
Andreas Ziegler
cd7c8a2528 package/openssh: fix typo in init script
Now that the sshd init script is nice & new & shiny, fix an ancient
typo, introduced with commit e0fc615 (add runlevel script for later use)

Signed-off-by: Andreas Ziegler <br015@umbiko.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-17 10:55:53 +02:00
Francois Perrad
0dc115478e package/pango: bump to version 1.54.0
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 23:29:29 +02:00
Francois Perrad
6763478511 package/libfribidi: bump to version 1.0.15
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 23:29:23 +02:00
Vincent Fazio
ec531a271b package/python3: use depth first search for directory removal
Previously, Python builds could intermittently fail when removing files
if `find` removed a directory before searching within it [0].

An arbitrary example:

  /tmp/tmp.h9KMUse5zO $ find . -type d -name __pycache__ -exec rm -rvf {} \; ; echo -e "RETURN CODE: $?"
  removed directory './a/b/c/d/e/__pycache__'
  find: ‘./a/b/c/d/e/__pycache__’: No such file or directory
  removed directory './a/b/c/d/e/f/__pycache__'
  find: ‘./a/b/c/d/e/f/__pycache__’: No such file or directory
  removed directory './a/b/c/d/e/f/g/__pycache__'
  RETURN CODE: 1

Now, pass the `-depth` argument to `find` so a depth-first search is
performed to avoid trying to search within an already deleted folder.

Fixes: 54d48c8cad ("package/python3: miscellaneous fixups")
Fixes: http://autobuild.buildroot.net/results/ba1d4213ae9912d53412ded6d8e257b67a4f7c0e/
Signed-off-by: Vincent Fazio <vfazio@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 23:28:44 +02:00
TIAN Yuanhao
531fc0a60e package/crun: bump to version 1.15
Signed-off-by: TIAN Yuanhao <tianyuanhao3@163.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 23:26:34 +02:00
Andreas Naumann
bcf05650bf package/evemu: needs autoreconf for python 3.12 compatibility
evemu ships with an ancient py-compile script (from 2011) depending
the imp module, which was finally removed in Python 3.12.
Set autoreconf in order to get an up to date version of py-compile
which automatically handles the different python versions.

This is a similar problem as in
42eae73ef1 package/cracklib: python needs autoreconf

Fixes:

 http://autobuild.buildroot.org/results/a52/a520583be6e86993d268d6535f727a352bd92028/

and many other configs where Python3 is selected and thus evemu
is configured to build the python-bindings.

Signed-off-by: Andreas Naumann <anaumann@ultratronik.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 23:25:58 +02:00
James Hilliard
3d7e6cdf54 package/libjcat: fix package name in comment
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 23:25:08 +02:00
Marcus Hoffmann
3d85e9df43 package/tio: bump to 3.5
Dependencies changed: inih dependency was removed, glib2 and lua added.
Tio's meson build system fails to find luajit, so exclude that,
otherwise all versions of lua >= 5.1 are supported.

Retested the build for sparc and sparc64 and the compile issues have
been resolved upstream by reworking the baudrate selection code quite a
while ago[1].

Disable installation of man pages with new build option.

[1] a23be7f2c2

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 14:42:05 +02:00
Marcus Hoffmann
34fbdb0d99 package/c-ares: bump to 1.32.2
Changelog: https://c-ares.org/changelog.html#1_32_2

License hash changed due to whitespace changes:
ce4c20afcb

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 14:42:03 +02:00
Marcus Hoffmann
bffb6a2339 package/nodejs: security bump to v20.15.1
Release Notes: https://nodejs.org/en/blog/release/v20.15.1

Fixes the following CVE's:

CVE-2024-36138 - Bypass incomplete fix of CVE-2024-27980 (High)
CVE-2024-22020 - Bypass network import restriction via data URL (Medium)
CVE-2024-22018 - fs.lstat bypasses permission model (Low)
CVE-2024-36137 - fs.fchown/fchmod bypasses permission model (Low)
CVE-2024-37372 - Permission model improperly processes UNC paths (Low)

Also these additional CVE's were fixed in the v20.12.1 and v20.12.2 releases [1][2]:

CVE-2024-27983 - Assertion failed in node::http2::Http2Session::~Http2Session() leads to HTTP/2 server crash- (High)
CVE-2024-27982 - HTTP Request Smuggling via Content Length Obfuscation - (Medium)
CVE-2024-27980 - Command injection via args parameter of child_process.spawn without shell option enabled on Windows

NodeJS tests are passing:
$ ./support/testing/run-tests -o ./outputs/ -k tests.package.test_nodejs -d dl
12:02:58 TestNodeJSModuleHostSrc                  Starting
12:02:58 TestNodeJSModuleHostSrc                  Building
13:17:15 TestNodeJSModuleHostSrc                  Building done
13:17:23 TestNodeJSModuleHostSrc                  Cleaning up
.13:17:23 TestNodeJSModuleHostBin                  Starting
13:17:23 TestNodeJSModuleHostBin                  Building
14:06:15 TestNodeJSModuleHostBin                  Building done
14:06:20 TestNodeJSModuleHostBin                  Cleaning up
.14:06:20 TestNodeJSBasic                          Starting
14:06:20 TestNodeJSBasic                          Building
14:55:40 TestNodeJSBasic                          Building done
14:55:45 TestNodeJSBasic                          Cleaning up

LICENSE hash changed due to changes in vendored components:

* copyright year update and adding spdx identifier [1]

[1] https://nodejs.org/en/blog/release/v20.12.1
[2] https://nodejs.org/en/blog/release/v20.12.2
[3] d5a316f5ea

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 14:42:00 +02:00
Joachim Wiberg
a4a1e36e1a package/sysklogd: new setting
Expose --with-dns-delay=SEC configure option to fine tune retry interval
to match that of the system resolver.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 14:41:58 +02:00
Joachim Wiberg
dd5bd455de package/sysklogd: bump to v2.6.0
- New command line flag -l to control klogctl(2) on/off and allow raw
   kernel logs to console, use with 'quiet' kernel cmdline option
 - Add reload command for systemd service
 - Add *.conf support for rotate_size and rotate_count
 - Add *.conf support for listen addr:port
 - Fix blocking delay for unresolvable DNS names when logging to remote
 - Fix failure to bind to not-yet-set IP address by retrying every 5 sec

Full ChangeLog at https://github.com/troglobit/sysklogd/releases/tag/v2.6.0

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 14:41:56 +02:00
James Hilliard
a845781866 package/flashrom: install to staging
This will be needed for the upcoming fwupd package.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 14:38:25 +02:00
James Hilliard
37dded43ae package/flashrom: switch to meson build system
The meson build system will be useful in future commits to have a
proper installation in staging with pkg-config files.

Drop Makefile patch which is no longer relevant.

Backport a patch removing _LARGEFILE64_SOURCE which can result in a
redefinition build error.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-16 14:38:24 +02:00
James Hilliard
e52605c092 package/libjcat: new package
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 21:49:20 +02:00
Marcus Hoffmann
f7aac1c008 package/picotool: new package
Add the raspberry pi picotool for interacting with rp2040 binaries and
devices.

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 21:42:49 +02:00
Marcus Hoffmann
5511e26b4f package/pico-sdk: new package
Add the pi-pico sdk as a dependency for picotool. This is a bit of a
weird package, because you normally clone the git repository and point
the picotool (or rp2040 firmware project) build to it.

For picotool specifically, only headers are used from the sdk, for
building a firmware project, it is included as source files via cmake,
so this pretty much has the same semantics for that as well.

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 21:42:48 +02:00
Nicolas Carrier
aacca7f063 package/pkg-generic.mk: local and override support in legal-info
Sources of packages which are using the 'local' _METHOD_SITE or
which declare an _OVERRIDE_SRC_DIR are not archived when generating
the legal-info target.
This is problematic since those packages are the most likely to
require being published, because it's highly probable that their
sources have been modified. A typical use case is a package (e.g. linux)
that is maintained as a git submodule of the BR2_EXTERNAL and with the
LINUX_OVERRIDE_SRCDIR set appropriately, or with a tool like repo
putting it in a well-known location.

This patch generates a tar.gz archive on the fly, containing the
result of the rsync of the package's source directory, using the
same arguments as during the preparation of a build.
Note that is not possible to archive the builddir, since it may
contain artifacts of previous compilations.

In order to create a tarball that is reproducible, we reuse the
mk_tar_gz function from the download helpers. We have to provide it with
the TAR variable. We also have to cd to the build directory first,
because the script generates a temporary file in the current directory.
That script needs a date. We unforuntately don't have a good
reproducible data. The timestamps of the files in the override srcdir
itself aren't useful either: if they come from git, they typically have
the time of checkout. Therefore, we fix the date at Jan 1, 1970 (which
we can do with @0).

The mk_tar_gz function could actually work directly in the override
srcdir without the need for an rsync - except for one limitation: it
doesn't have the equivalent of RSYNC_VCS_EXCLUSIONS. It would be nice to
refactor the script so it could accept a list of exclusions instead of a
single one and also work at any level instead of just the toplevel. But
that is for future improvement.

It is not possible to consider rsync as a "normal" download method
either (which would have solved the initial problem), because if we
do that:
 * the DL dir's content would be altered improperly
 * the rsync + tar gz overhead would be paid on compilation and is
   significant, for example, for a linux kernel
 * a hash file would be necessary, which would be a burden to
   maintain, for sources frequently modified

Signed-off-by: Nicolas Carrier <carrier.nicolas0@gmail.com>
[Arnout:
 - Drop the auxiliary variables: their use is contained within one code
   block and it's easier to read with being explicit.
 - Put it in an additional subdirectory .legal-info-rsync of the build
   directory, to reduce the chance of conflict with an existing
   file/directory.
 - Archive the directory (e.g. linux-custom) rather than its contents,
   so that it matches a normal tarball.
 - Use the mk_tar_gz function from download helpers to create a
   reproducible tarball.
 - Split long lines.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 19:40:15 +02:00
Brandon Maier
9b843284d2 support/testing: fix package/test_s6_networking.py
This test fails with the following error

  -sh: s6-tcpserver4: not found

In release 2.6.0.0 of s6-networking the `s6-tcpserver4` was unified into
a new `s6-tcpserver` command[1].

[1] https://github.com/skarnet/s6-networking/blob/master/NEWS#L33

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:49:52 +02:00
Luca Ceresoli
9ba1fa13e4 boot/uboot: allow taking the entire default environment from a text file
By default U-Boot builds a default environment from its own configuration
and a board-specific set of variables. However it also allows to bypass
this entirely and define the entire default environment from a text file.

Expose this feature to Buildroot. This allows to have a file e.g. in
board/.../uboot.env which contains an easy to maintain text file with the
wanted default environment, without patching the U-Boot source code.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:46:05 +02:00
Francois Perrad
99381a141e package/nano: bump to version 8.1
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:44:38 +02:00
Francois Perrad
ae1ddbabc9 package/gdbm: bump to version 1.24
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:44:19 +02:00
Francois Perrad
ebccc21303 package/lua: add tag Upstream in patches not sent upstream
Add "Upstream: N/A" tag for patches that were not sent upstream. These
are all patches that would not be acceptable for upstream.

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:43:49 +02:00
Francois Perrad
52df03ba50 package/lua: use Upstream: tag in patches that are upstream
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:43:47 +02:00
Francois Perrad
d501775773 package/lua: bump to version 5.4.7
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:43:46 +02:00
Thomas Petazzoni
69cbb563a1 package/tar: properly handle autoreconf
Commit 9a66711be1 ("package/tar: fix
linking with libiconv") added two patches that patch Makefile.am
files, but it forgot to add TAR_AUTORECONF = YES.

However, a gotcha is that TAR_AUTORECONF = YES would apply to both the
target tar, but also the host tar. But for host-tar, we can't accept
to do an autoreconf, because this would cause host-tar to have a
dependency on host-{autoconf,automake,libtool}, which in turn would
have a dependency on host-tar.

Since anyway the patches 0002/0003 that modify Makefile.am are only
useful to fix a libiconv problem that occurs when building target tar,
we disable autoreconf for host-tar, and we prevent automatic
autoreconf by touching the right Makefile.in files. This mess can be
dropped next time we update tar, as 0002/0003 will be part of the next
tar release.

Fixes:

  http://autobuild.buildroot.net/results/efdf7cf9ede810ed7f766cc4138b16054bc0c18a/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 16:37:42 +02:00
Kory Maincent
664f02a60c boot/optee-os: Add support to build with host-cmake
Some specific versions of OP-TEE need cmake on the host to build the scmi
firmware, like the newly release STMicroelectronics 3.19.0-stm32mp-r2
version.

To allow building such OP-TEE OS versions, this commit adds the option
BR2_TARGET_OPTEE_OS_NEEDS_CMAKE which when enabled ensures that host-cmake
is built before OP-TEE OS.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
[Arnout: use BR2_CMAKE_HOST_DEPENDENCY]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:34:23 +02:00
Romain Gantois
51aa8da4e5 package/gcnano-binaries: Add STM32MP2 support and bump to 6.4.15
Add initial support for STM32MP257 GPU drivers.

gcnano-binaries will be configured for STM32MP1 platforms on ARM 32-bits
and STM32MP2 on ARM 64-bits.

Update to the latest version of the gcnano-binaries blobs, which are
compatible with the last v6.1-stm32mp-r2 kernel from the
STMicroelectronics BSP.

Signed-off-by: Romain Gantois <romain.gantois@bootlin.com>
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:28:00 +02:00
Vincent Stehlé
64fb66537b Makefile: fix make help
Add missing ' to fix `make help'.

This fixes the following error:

  /bin/bash: -c: line 1: unexpected EOF while looking for matching `''
  make: *** [Makefile:1180: help] Error 2

Fixes: ca6c896bdd
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Steve Hay <me@stevenhay.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-15 16:25:34 +02:00
Dario Binacchi
6889056f1e support/scripts/genimage.sh: support creating a bmap image
The patch adds the possibility to create, in addition to the usual
image, an image of type bmap that drastically reduces the amount of
data that needs to be written to an SD card, resulting in time
savings.

It looks at whether BR2_PACKAGE_HOST_BMAP_TOOLS is enabled to decide
whether it should or not generate bmap tool images. It generates bmap
images for all images referenced in the genimage configuration file,
as long as they exist in $(BINARIES_DIR).

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 15:44:35 +02:00
Ben Hutchings
54c92715dd package/gnupg2: add host variant
Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 14:37:51 +02:00
Ben Hutchings
c0734f6861 package/libksba: add host variant
This is needed to support a host build of gnupg2.  It is not directly
selectable.

Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 14:35:44 +02:00
Ben Hutchings
e49102f934 package/libgcrypt: add host variant
This is needed to support a host build of gnupg2.  It is not directly
selectable.

Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 14:32:14 +02:00
Thomas Petazzoni
fc8355c7f5 package/libassuan: drop HOST_LIBGPGME_CONFIG_SCRIPTS
This variable was added in commit
62c7857dfa ("package/libassuan: add host
variant"), but in fact does not make sense for a host
package. Indeed, config scripts only need to be tweaked for target
packages, and in any case, the <pkg>_CONFIG_SCRIPTS variable is only
used during staging installation (to tweak the config scripts) and
during target installation (to remove them), and neither staging nor
target installation are relevant for host packages.

Therefore, let's remove this small piece of dead code.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 14:31:20 +02:00
Thomas Petazzoni
89ff62a0f4 package/libgpgme: drop HOST_LIBGPGME_CONFIG_SCRIPTS
This variable was added in commit
6a4ad23a07 ("package/libgpgme: add host
variant"), but in fact does not make sense for a host package. Indeed,
config scripts only need to be tweaked for target packages, and in any
case, the <pkg>_CONFIG_SCRIPTS variable is only used during staging
installation (to tweak the config scripts) and during target
installation (to remove them), and neither staging nor target
installation are relevant for host packages.

Therefore, let's remove this small piece of dead code.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 14:31:19 +02:00
Ben Hutchings
4574edef7f package/libnpth: add host variant
This is needed to support a host build of gnupg2.  It is not directly
selectable.

Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 14:31:15 +02:00
Marcus Hoffmann
2fe638af26 support/testing: add python-asn1crypto runtime test
Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 13:04:12 +02:00
Marcus Hoffmann
c306853074 package/tio: install bash-completions
See meson_options.txt file [1].

[1] https://github.com/tio/tio/blob/master/meson_options.txt

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:33:58 +02:00
Thomas Petazzoni
c53455ea4f package/qt5/qt5webengine-chromium: bump version after qtwebengine bump
In commit ca9e08277c ("package/qt5: bump
packages to latest kde submodule versions"), the version of Qt5 was
bumped to 5.15.14. This means that the version of qt5webengine being
built is now qtwebengine-v5.15.14-lts.tar.bz2.

However, qt5webengine-chromium is packaging a submodule of
qtwebengine, so we must keep them in sync, and therefore it should
have been updated.

The current version of qt5webengine-chromium,
0ad2814370799a2161057d92231fe3ee00e2fe98, was matching with
5.15.11-lts, but for 5.15.14-lts, we need to use
18c9261dc5b8aa57a0bdd5b62ce6f648cca1ef5e, as can be seen at:

  https://github.com/qt/qtwebengine/tree/v5.15.14-lts/src (thirdparty submodule)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:14:00 +02:00
Thomas Petazzoni
33b5412b78 package/qt5/qt5webengine: use bundled re2
When we use Buildroot's re2 package to build qt5webengine, there is an
issue at link time as the qt5webengine mistakenly uses the abseil-cpp
headers of its built-in copy rather than the ones of our abseil-cpp
library, built as a dependency of re2. However, we build our
abseil-cpp differently than the one bundled, and that causes some
conflicts.

Since teaching Chromium's build system to not use its own abseil-cpp
headers is an adventure we'd rather not engage into, we fallback to
use the bundled re2.

Therefore, we drop in Config.in all dependencies that were inherited
from Buildroot's re2 package. This warrants a few comments:

- BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS should be dropped because
  the list of architectures supported by our Buildroot abseil-cpp
  package may be different than the set of architectures supported by
  the bundled abseil-cpp in Chromium. In addition, the list of
  architectures in BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS is also a
  very limited subset of BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS, so
  this change will not expose the build of qt5webengine to additional
  architectures.

- We're dropping BR2_TOOLCHAIN_GCC_AT_LEAST_8 because it was inherited
  from re2. The main qt5 package anyway depends on gcc >= 5.x. We will
  figure out thanks to the autobuilders exactly which gcc version is
  needed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:59 +02:00
Thomas Petazzoni
3c998848b4 package/qt5/qt5webengine-chromium: fix build with recent libxml2
Backport upstream qtwebengine-chromium patch to fix:

./../../3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc: In function ‘xmlDoc* blink::DocLoaderFunc(const xmlChar*, xmlDictPtr, int, void*, xsltLoadType)’:
./../../3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc:127:32: error: invalid conversion from ‘void (*)(void*, xmlError*)’ {aka ‘void (*)(void*, _xmlError*)’} to ‘xmlStructuredErrorFunc’ {aka ‘void (*)(void*, const _xmlError*)’} [-fpermissive]
  127 |       xmlSetStructuredErrorFunc(console, XSLTProcessor::ParseErrorFunc);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                void (*)(void*, xmlError*) {aka void (*)(void*, _xmlError*)}

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:57 +02:00
Thomas Petazzoni
31d676229d package/qt5/qt5webengine: use bundled ffmpeg
Buildroot has moved to a modern ffmpeg, and the version of Chromium
part of qtwebengine is not ready to work with this modern version of
ffmpeg. While Chromium has been updated upstream to support a more
recent ffmpeg, it requires the backport of too many patches, so let's
use the bundled ffmpeg.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:56 +02:00
Thomas Petazzoni
430edbdc88 package/qt5/qt5webengine-chromium: add patch fixing a C++ build issue
Backport a small subset of an upstream patch to fix:

../../3rdparty/chromium/gpu/command_buffer/service/program_manager.cc: In member function ‘std::string gpu::gles2::Program::ProcessLogInfo(const std::string&)’:
../../3rdparty/chromium/gpu/command_buffer/service/program_manager.cc:623:25: error: ‘using re2::StringPiece = class absl::string_view’ {aka ‘class absl::string_view’} has no member named ‘as_string’
  623 |   return output + input.as_string();
      |                         ^~~~~~~~~

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:54 +02:00
Thomas Petazzoni
649101f6e6 package/qt5/qt5webengine-chromium: fix Python 3.12 issue in protobuf copy
Fixes:

Traceback (most recent call last):
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/components/resources/ssl/ssl_error_assistant/gen_ssl_error_assistant_proto.py", line 71, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/components/resources/ssl/ssl_error_assistant/gen_ssl_error_assistant_proto.py", line 68, in main
    return SSLErrorAssistantProtoGenerator().Run()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py", line 200, in Run
    self._ImportProtoModules(opts.path)
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py", line 107, in _ImportProtoModules
    self.ImportProtoModule()
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/components/resources/ssl/ssl_error_assistant/gen_ssl_error_assistant_proto.py", line 33, in ImportProtoModule
    import ssl_error_assistant_pb2
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/pyproto/components/security_interstitials/content/ssl_error_assistant_pb2.py", line 9, in <module>
    from google.protobuf import reflection as _reflection
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/pyproto/google/protobuf/reflection.py", line 51, in <module>
    from google.protobuf import message_factory
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/pyproto/google/protobuf/message_factory.py", line 49, in <module>
    from google.protobuf.internal import python_message as message_impl
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/pyproto/google/protobuf/internal/python_message.py", line 59, in <module>
    from six.moves import range
ModuleNotFoundError: No module named 'six.moves'

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:53 +02:00
Thomas Petazzoni
efc5e6ad52 package/qt5/qt5webengine-chromium: another fix for Python 3.12 issue
Further down the build:

FAILED: gen/components/resources/ssl/ssl_error_assistant/ssl_error_assistant.pb
/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/host-bin/python ../../3rdparty/chromium/components/resources/ssl/ssl_error_assistant/gen_ssl_error_assistant_proto.py -w -i ../../3rdparty/chromium/components/resources/ssl/ssl_error_assistant/ssl_error_assistant.asciipb -d gen/components/resources/ssl/ssl_error_assistant -o ssl_error_assistant.pb -p pyproto -p pyproto/components/security_interstitials/content/
Traceback (most recent call last):
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/components/resources/ssl/ssl_error_assistant/gen_ssl_error_assistant_proto.py", line 23, in <module>
    from binary_proto_generator import BinaryProtoGenerator
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py", line 12, in <module>
    import imp
ModuleNotFoundError: No module named 'imp'

Backport an upstream patch fixing this.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:51 +02:00
Kadir Yilmaz
ca7cedaa8c package/qt5/qt5webengine: use bundled icu
With the "-webengine-icu" config option qt5webengine uses icu headers
on the build host. Unfortunately, the build fails with:

/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/host-bin/python "../../3rdparty/chromium/build/toolchain/gcc_link_wrapper.py" --output="v8_snapshot/gen-regexp-special-case" -- /usr/bin/g++ -pie -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -m32 -pie -Wl,--disable-new-dtags -Wl,-O2 -Wl,--gc-sections -L/usr/lib -o "v8_snapshot/gen-regexp-special-case" -Wl,--start-group @"v8_snapshot/gen-regexp-special-case.rsp"  -Wl,--end-group  -ldl -lpthread -lrt -licui18n -licuuc -licudata
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libicui18n.so when searching for -licui18n
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libicui18n.a when searching for -licui18n
/usr/bin/ld: cannot find -licui18n
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libicuuc.so when searching for -licuuc
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libicuuc.a when searching for -licuuc
/usr/bin/ld: cannot find -licuuc
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libicudata.so when searching for -licudata
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libicudata.a when searching for -licudata
/usr/bin/ld: cannot find -licudata
/usr/bin/ld: skipping incompatible /usr/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
collect2: error: ld returned 1 exit status

So use the bundled icu instead, as it needs an icu with a bitness
matching the bitness of the target, and other complexities.

Signed-off-by: Kadir Yilmaz <kadir.c.yilmaz@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:50 +02:00
Thomas Petazzoni
638babd596 package/qt5/qt5webengine-chromium: fix another Python 3.12 issue
Further down the build, another issue:

Traceback (most recent call last):
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/core/release/../../3rdparty/chromium/tools/grit/grit.py", line 29, in <module>
    sys.exit(grit.grit_runner.Main(sys.argv[1:]))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/grit_runner.py", line 314, in Main
    return toolobject.Run(options, args[1:])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/tool/build.py", line 254, in Run
    self.res = grd_reader.Parse(opts.input,
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/grd_reader.py", line 231, in Parse
    handler.root.AssignFirstIds(filename_or_stream, defines)
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/node/misc.py", line 592, in AssignFirstIds
    src_root_dir, first_ids = _ReadFirstIdsFromFile(first_ids_filename,
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/node/misc.py", line 56, in _ReadFirstIdsFromFile
    first_ids_dict = eval(util.ReadFile(filename, 'utf-8'))
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/thomas/buildroot/buildroot/output/build/qt5webengine-5.15.14/src/3rdparty/chromium/tools/grit/grit/util.py", line 215, in ReadFile
    with io.open(abs(filename), mode, encoding=encoding) as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid mode: 'rU'

Let's backport an upstream Chromium commit fixing this.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-07-15 12:13:49 +02:00